Actor DeadlyMalwareWep_NormalBar : NormalBar { Args 239, 222 }

Actor DeadlyMalwareWep : BaseMM8BDMWep //31291
{
//$Category MM8BDM-Weapons/Ranged
//$Title Deadly Malware
//$Sprite DMLWA0
Weapon.AmmoUse 4
Weapon.AmmoGive 28
Weapon.SlotNumber 2
Inventory.PickupMessage "$PU_DEADLYMALWARE"
Obituary "$OB_DEADLYMALWARESUPER"
Tag "$TAG_DEADLYMALWARE"
Weapon.AmmoType "DeadlyMalwareAmmo"
Inventory.Icon "DMLWV0"
Inventory.PickupSound "weapon/weaponup"
Scale 2.0
States
{
SpawnLoop:
DMLW A -1
loop

Ready:
DMLH A 0 ACS_NamedExecuteWithResult("CORE_WEAPONCOLOR",CLR_DEADLYMALWARE)
DMLH A 1 A_WeaponReady
Goto Ready+1

Deselect:
TNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Lower
DMLH A 1 A_Lower
Loop
Select:
TNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Raise
DMLH A 1 A_Raise
Loop

Fire:
DMLH A 0 A_JumpIfNoAmmo("NoAmmo")
DMLP A 0 A_PlaySoundEx("weapon/deadlymalwarefire","Weapon")
DMLH A 0 A_FireCustomMissile("DeadlyMalwareShot",0,1,8)
DMLH BDEFG 2
DMLH H 20
DMLH JKL 3
Goto Ready+1

Altfire:
DMLH A 0 A_JumpIfNoAmmo("NoAmmo")
DMLP A 0 A_PlaySoundEx("weapon/deadlymalwarefire","Weapon")
DMLH A 0 A_FireCustomMissile("DeadlyMalwareShot",0,1,8)
DMLH BDEFG 2
DMLH H 20
DMLH JKL 3
Goto Ready+1

NoAmmo:
DMLH A 1 ACS_Execute(979,0)
Goto Ready+1
}
}

actor DeadlyMalwareAmmo : Ammo
{
inventory.amount 1
inventory.maxamount 28
+INVENTORY.IGNORESKILL
}

Actor DeadlyMalwareShot : BasicProjectile
{
+BRIGHT
+SEEKERMISSILE
+SCREENSEEKER
+HITTRACER
+SHOOTABLE
+DONTDRAIN
+NOBLOOD
+THRUSPECIES
-NOBLOCKMAP
+FORCEXYBILLBOARD
Radius 16
Height 20
Speed 30
Health 1
Damage (1)
Species "DeadlyMalware"
DamageType "DeadlyMalwareInfect"
//DamageFactor "DeadlyMalwareInfect", 0.0 // Apparently does something extremely unusual that turns your own projectiles against you when they collide with an enemy's projectiles
// [Trill] +NOTARGETSWITCH fixes that by the way.
DamageFactor "DeadlyMalware", 0.0
Obituary "$OB_DEADLYMALWARESUPER"
Scale 3.5
States
{
Spawn:
DMLP A 0
// [Trill] This fixes an issue where Deadly Malware can chase allies.
DMLP A 0 A_GiveInventory("TracerAndTargetTeamsMatchCheck",1)
DMLP A 0 A_JumpIfInventory("TracerAndTargetTeamsMatchFlag", 1, 2)
DMLP A 0 A_JumpIf(true, 2)
DMLP A 0 A_RearrangePointers(AAPTR_DEFAULT, AAPTR_DEFAULT, AAPTR_NULL)
DMLP BCABCABCABC 1 A_ScaleVelocity(0.8)
DMLP ABCAB 1
DMLP D 0 A_PlaySoundEx("weapon/deadlymalwarehoming","Voice")
DMLP C 1 A_SetScale(4,4)
DMLP A 1 A_SetScale(6,6)
DMLP B 1 A_SetScale(8,8)
DMLP C 1 A_SetScale(12,12)
DMLP A 1 A_SetScale(8,8)
DMLP B 1 A_SetScale(6,6)
DMLP C 1 A_SetScale(4,4)
DMLP D 1 A_SetScale(1.5,1.5)
DMLP D 0 A_ScaleVelocity(5)
DMLP D 0 A_SetScale(2.5)
DMLP D 0 A_PlaySound("weapon/deadlymalwaremove",CHAN_VOICE,1,True)
SpawnLoop:
DMLP D 1 A_SpawnItemEx("DeadlyMalwareFX",Random(-16,16),0,Random(-16,16),0,0,0,0,SXF_WEPFXCOLOR)
DMLP D 0 A_SeekerMissile(0,90,SMF_LOOK|SMF_PRECISE|SMF_CURSPEED,256,30)
DMLP D 1
DMLP D 0 A_SeekerMissile(0,90,SMF_LOOK|SMF_PRECISE|SMF_CURSPEED,256,30)
DMLP D 1 A_SpawnItemEx("DeadlyMalwareFX",Random(-16,16),0,Random(-16,16),0,0,0,0,SXF_WEPFXCOLOR)
DMLP D 0 A_SeekerMissile(0,90,SMF_LOOK|SMF_PRECISE|SMF_CURSPEED,256,30)
DMLP D 1
DMLP D 0 A_SeekerMissile(0,90,SMF_LOOK|SMF_PRECISE|SMF_CURSPEED,256,30)
DMLP E 1 A_SpawnItemEx("DeadlyMalwareFX",Random(-16,16),0,Random(-16,16),0,0,0,0,SXF_WEPFXCOLOR)
DMLP E 0 A_SeekerMissile(0,90,SMF_LOOK|SMF_PRECISE|SMF_CURSPEED,256,30)
DMLP E 1
DMLP E 0 A_SeekerMissile(0,90,SMF_LOOK|SMF_PRECISE|SMF_CURSPEED,256,30)
DMLP E 1 A_SpawnItemEx("DeadlyMalwareFX",Random(-16,16),0,Random(-16,16),0,0,0,0,SXF_WEPFXCOLOR)
DMLP E 0 A_SeekerMissile(0,90,SMF_LOOK|SMF_PRECISE|SMF_CURSPEED,256,30)
DMLP E 1
DMLP E 0 A_SeekerMissile(0,90,SMF_LOOK|SMF_PRECISE|SMF_CURSPEED,256,30)
Loop

Crash:
XDeath:
DMLP A 0 A_StopSound(CHAN_VOICE)
DMLP A 0 A_CheckFlag("ISMONSTER","DetonateMonster",AAPTR_TRACER)
DMLP A 0 A_JumpIf(CheckClass("PlayerPawn",AAPTR_TRACER,1),1)
Goto Death
// [Trill] This fixes an issue where invulnerable players were erroneously exploded.
// Buffers were adjusted to account for the added tic below
TNT1 A 1 A_JumpIfInventory("DeadlyMalwareInfectPowerProtect",1,"Death",AAPTR_TRACER)
TNT1 A 0 A_GiveInventory("Once", 1)
TNT1 A 0 A_JumpIfInventory("DeadlyMalwareInfectedTimer",1,2,AAPTR_TRACER)
TNT1 A 1 A_JumpIfInventory("Once", 1, "SDeath")
Wait
// [Trill] End of fix.
TNT1 A 0 A_SpawnItemEx("DeadlyMalwareInfectedWatcher",0,0,0,0,0,0,0,SXF_WEPFXCOLOR|SXF_TRANSFERPOINTERS)
DMLP AAAAAAAA 0 A_SpawnItemEx("DeadlyMalwareFX",Random(-16,16),0,Random(-16,16),0,0,0,0,SXF_WEPFXCOLOR)
TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 1 // Buffer of 31 tics
Goto DetonateCheck

DetonateCheck:
TNT1 A 0 A_JumpIfInventory("CutterFlag",32,"SDeath") // 32 tics
TNT1 A 1 A_JumpIf(CallACS("DeadlyMalware_MovementKeysCheck",1) == True,"Detonate")
TNT1 A 0 A_GiveInventory("CutterFlag",1)
Loop

Detonate:
TNT1 A 0 A_PlaySoundEx("weapon/deadlymalwareevil","Voice")
TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 1 A_Warp(AAPTR_TRACER,0,0,40)
TNT1 A 0 A_JumpIf(CallACS("Core_TargetExists",1) == 0, "SDeath")
TNT1 A 0 A_PlaySoundEx("weapon/deadlymalwareexplode","Voice")
TNT1 A 0 A_SpawnItemEx("DeadlyMalwareExploder",0,0,0,0,0,0,0,SXF_WEPFXCOLOR)
Stop

DetonateMonster:
TNT1 A 0 A_SetScale(3.0,3.0)
TNT1 A 0 A_SetTranslucent(1.0,0)
TNT1 A 0 A_PlaySoundEx("weapon/deadlymalwareevil","Voice")
DMLP NOPQRSNOPQRSNOPQRSNOPQRSNOPQRSNOPQRSNOPQRSNOPQRSNO 1 A_Warp(AAPTR_TRACER,0,0,0)
TNT1 A 0 A_JumpIf(CallACS("Core_TargetExists",1) == 0, "SDeath")
TNT1 A 0 A_PlaySoundEx("weapon/deadlymalwareexplode","Voice")
TNT1 A 0 A_SpawnItemEx("DeadlyMalwareExploder",0,0,40,0,0,0,0,SXF_WEPFXCOLOR)
Stop

Death:
DMLP A 0 A_StopSound(CHAN_VOICE)
TNT1 A 0 A_PlaySoundEx("weapon/deadlymalwaredeath","Body")
TNT1 A 0 A_SetDamageType("DeadlyMalware")
DMLP A 0 A_SetScale(2.5)
TNT1 A 0 A_Explode(CallACS("burst_cbm_damage",15),72,0,0,36)
DMLP FGHI 1
DMLP JKLM 2
Stop

SDeath:
TNT1 A 0 A_StopSound(CHAN_VOICE)
TNT1 A 0
Stop
}
}

Actor DeadlyMalwareFX  : BasicGraphicEffect
{
+BRIGHT
+FORCEXYBILLBOARD
RenderStyle Translucent
Scale 2.5
States
{
SpawnFrame:
TNT1 A 0 A_ChangeVelocity(Random(-3,3),Random(-3,3),Random(-3,3),CVF_RELATIVE)
DMLP ABC 2
DMLP B 0 A_ScaleVelocity(0.5)
DMLP B 0 A_SetScale(ScaleX-0.25,ScaleY-0.25)
DMLP B 0 A_FadeOut(0.25)
Loop
}
}

Actor DeadlyMalwareInfectPowerProtect : PowerProtection
{
DamageFactor "DeadlyMalwareInfect", 0.0
Powerup.Duration -3
}

Actor DeadlyMalwareInfectedTimer : Powerup
{
Powerup.Duration -2
}

Actor DeadlyMalwareInfectedWatcher : BasicExplosion //BasicWatcher [Trill] This fixes team colors for the effect.
{
Renderstyle Translucent
Scale 2.5
Alpha 0.75
ReactionTime 4
States
{
Spawn: // Buffer of 31 tics
DMLP TT 0
DMLP T 0 A_GiveInventory("DeadlyMalwareInfectPowerProtect",1,AAPTR_TRACER)
DMLP T 1 A_Warp(AAPTR_TRACER,0,0,0,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
DMLP T 0 A_JumpIfInventory("DeadlyMalwareInfectedTimer",1,2,AAPTR_TRACER)
DMLP T 0 A_Jump(256,"Death")
DMLP T 1 A_Warp(AAPTR_TRACER,0,0,0,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
DMLP T 0 A_JumpIfInventory("DeadlyMalwareInfectedTimer",1,2,AAPTR_TRACER)
DMLP T 0 A_Jump(256,"Death")
DMLP T 1 A_Warp(AAPTR_TRACER,0,0,0,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
DMLP T 0 A_JumpIfInventory("DeadlyMalwareInfectedTimer",1,2,AAPTR_TRACER)
DMLP T 0 A_Jump(256,"Death")
DMLP T 1 A_Warp(AAPTR_TRACER,0,0,0,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
DMLP T 0 A_JumpIfInventory("DeadlyMalwareInfectedTimer",1,2,AAPTR_TRACER)
DMLP T 0 A_Jump(256,"Death")
DMLP U 1 A_Warp(AAPTR_TRACER,0,0,0,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
DMLP U 0 A_JumpIfInventory("DeadlyMalwareInfectedTimer",1,2,AAPTR_TRACER)
DMLP U 0 A_Jump(256,"Death")
DMLP U 1 A_Warp(AAPTR_TRACER,0,0,0,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
DMLP U 0 A_JumpIfInventory("DeadlyMalwareInfectedTimer",1,2,AAPTR_TRACER)
DMLP U 0 A_Jump(256,"Death")
DMLP U 1 A_Warp(AAPTR_TRACER,0,0,0,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
DMLP U 0 A_JumpIfInventory("DeadlyMalwareInfectedTimer",1,2,AAPTR_TRACER)
DMLP U 0 A_Jump(256,"Death")
DMLP U 1 A_Warp(AAPTR_TRACER,0,0,0,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
DMLP U 0 A_JumpIfInventory("DeadlyMalwareInfectedTimer",1,2,AAPTR_TRACER)
DMLP U 0 A_Jump(256,"Death")
DMLP T 1 A_Warp(AAPTR_TRACER,0,0,0,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
DMLP T 0 A_JumpIfInventory("DeadlyMalwareInfectedTimer",1,2,AAPTR_TRACER)
DMLP T 0 A_Jump(256,"Death")
DMLP T 1 A_Warp(AAPTR_TRACER,0,0,0,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
DMLP T 0 A_JumpIfInventory("DeadlyMalwareInfectedTimer",1,2,AAPTR_TRACER)
DMLP T 0 A_Jump(256,"Death")
DMLP T 1 A_Warp(AAPTR_TRACER,0,0,0,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
DMLP T 0 A_JumpIfInventory("DeadlyMalwareInfectedTimer",1,2,AAPTR_TRACER)
DMLP T 0 A_Jump(256,"Death")
DMLP T 1 A_Warp(AAPTR_TRACER,0,0,0,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
DMLP T 0 A_JumpIfInventory("DeadlyMalwareInfectedTimer",1,2,AAPTR_TRACER)
DMLP T 0 A_Jump(256,"Death")
DMLP U 1 A_Warp(AAPTR_TRACER,0,0,0,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
DMLP U 0 A_JumpIfInventory("DeadlyMalwareInfectedTimer",1,2,AAPTR_TRACER)
DMLP U 0 A_Jump(256,"Death")
DMLP U 1 A_Warp(AAPTR_TRACER,0,0,0,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
DMLP U 0 A_JumpIfInventory("DeadlyMalwareInfectedTimer",1,2,AAPTR_TRACER)
DMLP U 0 A_Jump(256,"Death")
DMLP U 1 A_Warp(AAPTR_TRACER,0,0,0,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
DMLP U 0 A_JumpIfInventory("DeadlyMalwareInfectedTimer",1,2,AAPTR_TRACER)
DMLP U 0 A_Jump(256,"Death")
DMLP U 0 A_GiveInventory("DeadlyMalwareInfectPowerProtect",1,AAPTR_TRACER)
DMLP U 1 A_Warp(AAPTR_TRACER,0,0,0,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
DMLP U 0 A_JumpIfInventory("DeadlyMalwareInfectedTimer",1,2,AAPTR_TRACER)
DMLP U 0 A_Jump(256,"Death")
DMLP T 1 A_Warp(AAPTR_TRACER,0,0,0,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
DMLP T 0 A_JumpIfInventory("DeadlyMalwareInfectedTimer",1,2,AAPTR_TRACER)
DMLP T 0 A_Jump(256,"Death")
DMLP T 1 A_Warp(AAPTR_TRACER,0,0,0,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
DMLP T 0 A_JumpIfInventory("DeadlyMalwareInfectedTimer",1,2,AAPTR_TRACER)
DMLP T 0 A_Jump(256,"Death")
DMLP T 1 A_Warp(AAPTR_TRACER,0,0,0,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
DMLP T 0 A_JumpIfInventory("DeadlyMalwareInfectedTimer",1,2,AAPTR_TRACER)
DMLP T 0 A_Jump(256,"Death")
DMLP T 1 A_Warp(AAPTR_TRACER,0,0,0,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
DMLP T 0 A_JumpIfInventory("DeadlyMalwareInfectedTimer",1,2,AAPTR_TRACER)
DMLP T 0 A_Jump(256,"Death")
DMLP U 1 A_Warp(AAPTR_TRACER,0,0,0,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
DMLP U 0 A_JumpIfInventory("DeadlyMalwareInfectedTimer",1,2,AAPTR_TRACER)
DMLP U 0 A_Jump(256,"Death")
DMLP U 1 A_Warp(AAPTR_TRACER,0,0,0,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
DMLP U 0 A_JumpIfInventory("DeadlyMalwareInfectedTimer",1,2,AAPTR_TRACER)
DMLP U 0 A_Jump(256,"Death")
DMLP U 1 A_Warp(AAPTR_TRACER,0,0,0,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
DMLP U 0 A_JumpIfInventory("DeadlyMalwareInfectedTimer",1,2,AAPTR_TRACER)
DMLP U 0 A_Jump(256,"Death")
DMLP U 1 A_Warp(AAPTR_TRACER,0,0,0,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
DMLP U 0 A_JumpIfInventory("DeadlyMalwareInfectedTimer",1,2,AAPTR_TRACER)
DMLP U 0 A_Jump(256,"Death")
DMLP T 1 A_Warp(AAPTR_TRACER,0,0,0,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
DMLP T 0 A_JumpIfInventory("DeadlyMalwareInfectedTimer",1,2,AAPTR_TRACER)
DMLP T 0 A_Jump(256,"Death")
DMLP T 1 A_Warp(AAPTR_TRACER,0,0,0,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
DMLP T 0 A_JumpIfInventory("DeadlyMalwareInfectedTimer",1,2,AAPTR_TRACER)
DMLP T 0 A_Jump(256,"Death")
DMLP T 1 A_Warp(AAPTR_TRACER,0,0,0,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
DMLP T 0 A_JumpIfInventory("DeadlyMalwareInfectedTimer",1,2,AAPTR_TRACER)
DMLP T 0 A_Jump(256,"Death")
DMLP T 1 A_Warp(AAPTR_TRACER,0,0,0,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
DMLP T 0 A_JumpIfInventory("DeadlyMalwareInfectedTimer",1,2,AAPTR_TRACER)
DMLP T 0 A_Jump(256,"Death")
DMLP U 1 A_Warp(AAPTR_TRACER,0,0,0,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
DMLP U 0 A_JumpIfInventory("DeadlyMalwareInfectedTimer",1,2,AAPTR_TRACER)
DMLP U 0 A_Jump(256,"Death")
DMLP U 1 A_Warp(AAPTR_TRACER,0,0,0,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
DMLP U 0 A_JumpIfInventory("DeadlyMalwareInfectedTimer",1,2,AAPTR_TRACER)
DMLP U 0 A_Jump(256,"Death")
DMLP U 1 A_Warp(AAPTR_TRACER,0,0,0,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
DMLP U 0 A_JumpIfInventory("DeadlyMalwareInfectedTimer",1,2,AAPTR_TRACER)
DMLP U 0 A_Jump(256,"Death")
Goto SpawnLoop

SpawnLoop:
DMLP T 1 A_Warp(AAPTR_TRACER,0,0,0,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
DMLP T 0 A_JumpIf(CallACS("DeadlyMalware_MovementKeysCheck",1) == True,"Explode")
DMLP T 0 A_JumpIfInventory("DeadlyMalwareInfectedTimer",1,2,AAPTR_TRACER)
DMLP T 0 A_Jump(256,"Death")
DMLP T 1 A_Warp(AAPTR_TRACER,0,0,0,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
DMLP T 0 A_JumpIf(CallACS("DeadlyMalware_MovementKeysCheck",1) == True,"Explode")
DMLP T 0 A_JumpIfInventory("DeadlyMalwareInfectedTimer",1,2,AAPTR_TRACER)
DMLP T 0 A_Jump(256,"Death")
DMLP T 1 A_Warp(AAPTR_TRACER,0,0,0,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
DMLP T 0 A_JumpIf(CallACS("DeadlyMalware_MovementKeysCheck",1) == True,"Explode")
DMLP T 0 A_JumpIfInventory("DeadlyMalwareInfectedTimer",1,2,AAPTR_TRACER)
DMLP T 0 A_Jump(256,"Death")
DMLP T 1 A_Warp(AAPTR_TRACER,0,0,0,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
DMLP T 0 A_JumpIf(CallACS("DeadlyMalware_MovementKeysCheck",1) == True,"Explode")
DMLP T 0 A_JumpIfInventory("DeadlyMalwareInfectedTimer",1,2,AAPTR_TRACER)
DMLP T 0 A_Jump(256,"Death")
DMLP U 1 A_Warp(AAPTR_TRACER,0,0,0,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
DMLP U 0 A_JumpIf(CallACS("DeadlyMalware_MovementKeysCheck",1) == True,"Explode")
DMLP U 0 A_JumpIfInventory("DeadlyMalwareInfectedTimer",1,2,AAPTR_TRACER)
DMLP U 0 A_Jump(256,"Death")
DMLP U 1 A_Warp(AAPTR_TRACER,0,0,0,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
DMLP U 0 A_JumpIf(CallACS("DeadlyMalware_MovementKeysCheck",1) == True,"Explode")
DMLP U 0 A_JumpIfInventory("DeadlyMalwareInfectedTimer",1,2,AAPTR_TRACER)
DMLP U 0 A_Jump(256,"Death")
DMLP U 1 A_Warp(AAPTR_TRACER,0,0,0,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
DMLP U 0 A_JumpIf(CallACS("DeadlyMalware_MovementKeysCheck",1) == True,"Explode")
DMLP U 0 A_JumpIfInventory("DeadlyMalwareInfectedTimer",1,2,AAPTR_TRACER)
DMLP U 0 A_Jump(256,"Death")
DMLP U 1 A_Warp(AAPTR_TRACER,0,0,0,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
DMLP U 0 A_JumpIf(CallACS("DeadlyMalware_MovementKeysCheck",1) == True,"Explode")
DMLP U 0 A_JumpIfInventory("DeadlyMalwareInfectedTimer",1,2,AAPTR_TRACER)
DMLP U 0 A_Jump(256,"Death")
DMLP U 0 A_CountDown
Loop

Explode:
TNT1 A 0 A_JumpIf(CallACS("Core_TargetExists",1) == False, "SDeath")
TNT1 A 0 A_SetScale(3.0,3.0)
TNT1 A 0 A_SetTranslucent(1.0,0)
TNT1 A 0 A_TakeInventory("DeadlyMalwareInfectedTimer",1,999,AAPTR_TRACER)
TNT1 A 0 ACS_NamedExecuteWithResult("DeadlyMalware_FailedAnimation")
DMLP N 1 A_Warp(AAPTR_TRACER,0,0,0,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
DMLP O 1 A_Warp(AAPTR_TRACER,0,0,0,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
DMLP P 1 A_Warp(AAPTR_TRACER,0,0,0,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
DMLP Q 1 A_Warp(AAPTR_TRACER,0,0,0,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
DMLP R 1 A_Warp(AAPTR_TRACER,0,0,0,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
DMLP S 1 A_Warp(AAPTR_TRACER,0,0,0,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
DMLP N 1 A_Warp(AAPTR_TRACER,0,0,0,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
DMLP O 1 A_Warp(AAPTR_TRACER,0,0,0,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
DMLP P 1 A_Warp(AAPTR_TRACER,0,0,0,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
DMLP Q 1 A_Warp(AAPTR_TRACER,0,0,0,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
DMLP R 1 A_Warp(AAPTR_TRACER,0,0,0,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
DMLP S 1 A_Warp(AAPTR_TRACER,0,0,0,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
DMLP N 1 A_Warp(AAPTR_TRACER,0,0,0,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
DMLP O 1 A_Warp(AAPTR_TRACER,0,0,0,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
DMLP P 1 A_Warp(AAPTR_TRACER,0,0,0,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
DMLP Q 1 A_Warp(AAPTR_TRACER,0,0,0,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
DMLP R 1 A_Warp(AAPTR_TRACER,0,0,0,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
DMLP S 1 A_Warp(AAPTR_TRACER,0,0,0,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
DMLP N 1 A_Warp(AAPTR_TRACER,0,0,0,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
DMLP O 1 A_Warp(AAPTR_TRACER,0,0,0,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
DMLP P 1 A_Warp(AAPTR_TRACER,0,0,0,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
DMLP Q 1 A_Warp(AAPTR_TRACER,0,0,0,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
DMLP R 1 A_Warp(AAPTR_TRACER,0,0,0,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
DMLP S 1 A_Warp(AAPTR_TRACER,0,0,0,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
DMLP N 1 A_Warp(AAPTR_TRACER,0,0,0,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
DMLP O 1 A_Warp(AAPTR_TRACER,0,0,0,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
DMLP P 1 A_Warp(AAPTR_TRACER,0,0,0,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
DMLP Q 1 A_Warp(AAPTR_TRACER,0,0,0,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
DMLP R 1 A_Warp(AAPTR_TRACER,0,0,0,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
DMLP S 1 A_Warp(AAPTR_TRACER,0,0,0,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
DMLP N 1 A_Warp(AAPTR_TRACER,0,0,0,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
DMLP O 1 A_Warp(AAPTR_TRACER,0,0,0,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
DMLP P 1 A_Warp(AAPTR_TRACER,0,0,0,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
DMLP Q 1 A_Warp(AAPTR_TRACER,0,0,0,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
DMLP R 1 A_Warp(AAPTR_TRACER,0,0,0,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
DMLP S 1 A_Warp(AAPTR_TRACER,0,0,0,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
DMLP N 1 A_Warp(AAPTR_TRACER,0,0,0,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
DMLP O 1 A_Warp(AAPTR_TRACER,0,0,0,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
DMLP P 1 A_Warp(AAPTR_TRACER,0,0,0,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
DMLP Q 1 A_Warp(AAPTR_TRACER,0,0,0,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
DMLP R 1 A_Warp(AAPTR_TRACER,0,0,0,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
DMLP S 1 A_Warp(AAPTR_TRACER,0,0,0,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
DMLP N 1 A_Warp(AAPTR_TRACER,0,0,0,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
DMLP O 1 A_Warp(AAPTR_TRACER,0,0,0,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
DMLP P 1 A_Warp(AAPTR_TRACER,0,0,0,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
DMLP Q 1 A_Warp(AAPTR_TRACER,0,0,0,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
DMLP S 0
Goto SDeath

Death:
TNT1 A 0 A_JumpIf(CallACS("Core_TargetExists",1) == False, "SDeath")
TNT1 A 0 A_TakeInventory("DeadlyMalwareInfectedTimer",1,999,AAPTR_TRACER)
TNT1 A 0 ACS_NamedExecuteWithResult("DeadlyMalware_SecuredAnimation")
TNT1 A 0
Stop

SDeath:
TNT1 A 0
Stop
}
}

Actor DeadlyMalwareExploder : BasicExplosion
{
Obituary "$OB_DEADLYMALWARE"
DamageType "DeadlyMalware"
Renderstyle Normal
Alpha 1.0
Scale 2
States
{
Spawn:
TNT1 A 0
TNT1 A 0 A_Explode(CallACS("burst_cbm_damage",70),192,0,0,64)
TNT1 A 0 A_Quake(7,15,0,128,0)
TNT1 A 0 A_Quake(4,30,0,512,0)
DMLP VW 2
DMLP XYZ 3
DMLP "[^]" 4
TNT1 A 30
Stop
}
}