actor Darkman4 : HighArmorClass
{
Player.ScoreIcon "DAR4MUGS"
player.startitem "BaseFlagPack", 1
player.displayname "Darkman4"
player.soundclass "Darkman4C"
player.startitem "HighArmor"
player.startitem "UltimateAttackItem3", 1
player.startitem "UltSoundWatcherSpawn3"
player.startitem "ProtoBusterBoss", 1
player.startitem "BaseCustomFlag1", 1
player.startitem "Dark4ShieldCount", 2
player.startitem "IsFromMM5"
player.forwardmove 0.75,0.75 
player.sidemove 0.73,0.73
Player.ViewHeight 53
player.jumpz 10
States
{
Animation0:
Spawn:
DAR4 B 0 A_JumpIfInventory("BaseCustomFlag1",1,"Spawn2")
DAR4 B 1 A_JumpIf(z-floorz>0,"Jumping")
DAR4 A 0 A_JumpIfInventory("BaseCustomFlag1",1,"Spawn2")
DAR4 A 1 A_JumpIf(z-floorz>0,"Jumping")
Goto Spawn+2
Spawn2:
PROM B 1 A_JumpIf(z-floorz>0,"Jumping2") PROM B 0 A_JumpIf(momx>0.1||momy>0.1||momx<-0.1||momy<-0.1,"See2")
PROM A 1 A_JumpIf(z-floorz>0,"Jumping2") PROM A 0 A_JumpIf(momx>0.1||momy>0.1||momx<-0.1||momy<-0.1,"See2")
PROM A 1 A_JumpIf(z-floorz>0,"Jumping2") PROM A 0 A_JumpIf(momx>0.1||momy>0.1||momx<-0.1||momy<-0.1,"See2")
PROM A 1 A_JumpIf(z-floorz>0,"Jumping2") PROM A 0 A_JumpIf(momx>0.1||momy>0.1||momx<-0.1||momy<-0.1,"See2")
PROM A 1 A_JumpIf(z-floorz>0,"Jumping2") PROM A 0 A_JumpIf(momx>0.1||momy>0.1||momx<-0.1||momy<-0.1,"See2")
PROM A 1 A_JumpIf(z-floorz>0,"Jumping2") PROM A 0 A_JumpIf(momx>0.1||momy>0.1||momx<-0.1||momy<-0.1,"See2")
PROM K 1 A_JumpIf(z-floorz>0,"Jumping2") PROM K 0 A_JumpIf(momx>0.1||momy>0.1||momx<-0.1||momy<-0.1,"See2")
PROM K 1 A_JumpIf(z-floorz>0,"Jumping2") PROM K 0 A_JumpIf(momx>0.1||momy>0.1||momx<-0.1||momy<-0.1,"See2")
PROM K 1 A_JumpIf(z-floorz>0,"Jumping2") PROM K 0 A_JumpIf(momx>0.1||momy>0.1||momx<-0.1||momy<-0.1,"See2")
PROM K 1 A_JumpIf(z-floorz>0,"Jumping2") PROM K 0 A_JumpIf(momx>0.1||momy>0.1||momx<-0.1||momy<-0.1,"See2")
PROM K 1 A_JumpIf(z-floorz>0,"Jumping2") PROM K 0 A_JumpIf(momx>0.1||momy>0.1||momx<-0.1||momy<-0.1,"See2")
Goto Spawn2+2

See:
DAR4 BBBBBBBCCCCCCCDDDDDDDEEEEEEE 1 A_JumpIf(z-floorz>0,"Jumping")
Goto Spawn+1
See2:
PROM BBBBBCCCCCDDDDDEEEEE 1 A_JumpIf(z-floorz>0,"Jumping2")
Goto Spawn2+1

Jumping:
DAR4 X 1 A_JumpIf(z-floorz<=0,"Land")
wait
Land:
DAR4 FFFFF 1 A_JumpIf(z-floorz>0,"Jumping")
Goto Spawn+2
Jumping2:
0PRO J 1 A_JumpIf(z-floorz<=0,"Spawn2")
wait

Animation1:
Missile:
DAR4 F 0 A_JumpIfInventory("BaseCustomFlag1",1,"Missile3")
DAR4 FFFFF 1 A_JumpIf(z-floorz>0,"JumpingMissile")
Animation2:
Missile2:
DAR4 G 0 A_JumpIfInventory("BaseCustomFlag1",1,"Missile4")
DAR4 GGGGG 1 A_JumpIf(z-floorz>0,"JumpingMissile2")
Goto Spawn+1
JumpingMissile:
DAR4 Y 0 A_JumpIfInventory("BaseCustomFlag1",1,"JumpingMissile3")
DAR4 YYYYY 1 A_JumpIf(z-floorz<=0,"Missile")
JumpingMissile2:
DAR4 Z 0 A_JumpIfInventory("BaseCustomFlag1",1,"JumpingMissile4")
DAR4 ZZZZZ 1 A_JumpIf(z-floorz<=0,"Missile2")
Goto Jumping

Animation3:
DisguisedFire:
Missile3:
PROM FFF 1 A_JumpIf(z-floorz>0,"JumpingMissile3")
Missile4:
PROM GGG 1 A_JumpIf(z-floorz>0,"JumpingMissile4")
Goto Spawn2+2
Animation4:
JumpingMissile3:
0PRO LLLLL 1 A_JumpIf(z-floorz<=0,"Missile3")
JumpingMissile4:
0PRO LLLLL 1 A_JumpIf(z-floorz<=0,"Missile4")
Goto Jumping2

Animation5:
WilyNumbersVStance:
PRTO MMMMMNNNNN 1 A_JumpIf(z-floorz>0,"JumpingWilyNumbersV")
loop
JumpingWilyNumbersV:
0PRO J 1 A_JumpIf(z-floorz<=0,"WilyNumbersVStance")
wait

Animation6:
DarkManPain:
DAR4 HHH 1
Goto Spawn+2
Animation7:
ProtoManPain:
PROM HHH 1
Goto Spawn+2

ClassPain:
DAR4 H 0 A_GiveInventory("VCOnce",1)
DAR4 H 0 A_JumpIfInventory("BaseCustomFlag1",1,"ClassPain2")
DAR4 HHHHHHHHHH 2 A_SpawnItem("PainFX",0,3)
Goto Spawn+2
ClassPain2:
PROM HHHHHHHHHH 2 A_SpawnItem("PainFX",0,3)
Goto Spawn+2

WeaponGetM:
ClassDeath:
DAR4 H 0 A_JumpIfInventory("BaseCustomFlag1",1,"ClassDeath2")
DAR4 H 0 A_StopSoundEx("Weapon")
DAR4 H 20 ACS_ExecuteAlways(999,0,0)
DAR4 H 0 A_PlayerScream
PLY1 H 0 A_SpawnItemEx("FakeDeathFX", 0, 0, 32)
NOFX A 1 A_CheckPlayerDone
wait
ClassDeath2:
PROM H 20 ACS_ExecuteAlways(999,0,0)
PROM H 0 A_PlayerScream
PLY1 H 0 A_SpawnItemEx("FakeDeathFX", 0, 0, 32)
NOFX A 1 A_CheckPlayerDone
wait
}
}

actor ProtoBusterBoss : VCBaseWeapon
{
Obituary "$OB_DARKMANFOUR1"
States
{
Ready:
TNT1 A 0
TNT1 A 0 A_SpawnItemEx("Dark4Shield",0,0,0,0,0,0,0)
TNT1 A 0 A_SpawnItemEx("Dark4Shield2",0,0,0,0,0,0,180)
goto Ready2
Ready2:
PROC D 1 A_WeaponReady
PROC D 0 A_JumpIfInventory("UltAttackFlag",1,"UltimateAttack")
loop
Deselect:
TNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Lower
PROC D 1 A_Lower
Goto Deselect
Select:
TNT1 A 0 A_GunFlash
TNT1 A 0 A_SpawnItemEx("DM4StartUpWhistle")
TNT1 A 0 ACS_ExecuteAlways(991,0,36)
TNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Raise
PROC D 1 A_Raise
Goto Select+2
Fire:
PROC D 0 A_PlaySoundEx("weapon/mbuster","SoundSlot5")
PROC D 0 A_PlaySoundEx("weapon/napalm","SoundSlot6")
PROC D 0 A_FireCustomMissile("DarkProtoShot",0,0,1,12)
PROC EEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEEDD 1 ACS_NamedExecuteWithResult("VC_SetState",3)
Goto Ready2
Altfire:
PROC D 0 A_JumpIfInventory("NoAltfire",1,"Ready2")
PROC D 0 A_TakeInventory("BaseCustomFlag1",1)
PROC D 0 A_GiveInventory("DarkBuster4Boss")
PROC D 0 ACS_NamedExecuteWithResult("VC_SetState",0)
PROC D 0 A_SpawnItemEx("DrillExplode",0,0,32)
PROC D 0 A_PlaySoundEx("weapon/napalm","Weapon")
PROC D 0 A_SpawnItemEx("DarkScarf",0,0,40,-10,0,4)
PROC D 0 A_TakeInventory("ProtoBusterBoss")
Goto Ready2
UltimateAttack:
PROC D 0 ACS_NamedExecuteAlways("VC_UltimateText",0,129) PROC D 0 A_PlaySoundEx("classes/ultimateactivation","Auto")
PROC D 0 A_GiveInventory("PowerUltBuildCooldown",1) PROC D 0 A_TakeInventory("UltAttackFlag",1) PROC D 0 A_SpawnItemEx("WilyNumbersVWatcher")
TNT1 A 0 A_SpawnItemEx("WNVStoneMan",96,0,0,0,0,0,45*0)
TNT1 A 0 A_SpawnItemEx("WNVChargeMan",96,0,0,0,0,0,45*1)
TNT1 A 0 A_SpawnItemEx("WNVWaveMan",96,0,0,0,0,0,45*2)
TNT1 A 0 A_SpawnItemEx("WNVStarMan",96,0,0,0,0,0,45*3)
TNT1 A 0 A_SpawnItemEx("WNVGravityMan",96,0,0,0,0,0,45*4)
TNT1 A 0 A_SpawnItemEx("WNVGyroMan",96,0,0,0,0,0,45*5)
TNT1 A 0 A_SpawnItemEx("WNVCrystalMan",96,0,0,0,0,0,45*6)
TNT1 A 0 A_SpawnItemEx("WNVNapalmMan",96,0,0,0,0,0,45*7)
PROC D 0 ACS_NamedExecuteWithResult("VC_SetState",5) PROC D 0 A_ChangeFlag("INVULNERABLE",True) PROC D 0 A_GiveInventory("InvProtection")
PROC D 1 Offset(-20,38)
PROC D 1 Offset(-40,44)
PROC D 1 Offset(-60,50)
PROC D 1 Offset(-80,56)
PROC D 1 Offset(-100,62)
PROC D 1 Offset(-120,68)
PROC D 1 Offset(-140,74)
PROC D 1 Offset(-160,80)
PROC D 1 Offset(-180,86)
TNT1 A 45 Offset(-200,92)
PROC D 1 Offset(-180,86)
PROC D 1 Offset(-160,80)
PROC D 1 Offset(-140,74)
PROC D 1 Offset(-120,68)
PROC D 1 Offset(-100,62)
PROC D 1 Offset(-80,56)
PROC D 1 Offset(-60,50)
PROC D 1 Offset(-40,44)
PROC D 1 Offset(-20,38)
TNT1 A 0 ACS_NamedExecuteWithResult("VC_SetState",0) TNT1 A 0 A_ChangeFlag("INVULNERABLE",False) PROC D 0 A_TakeInventory("InvProtection")
Goto Ready2
Flash:
TNT1 A 1 A_JumpIfInventory("IsDead",1,"EndFlash")
TNT1 A 0 A_JumpIfInventory("VCOnce",1,1)
loop
TNT1 A 0 A_GiveInventory("DarkNoWeaponBoss")
TNT1 A 0 A_TakeInventory("ProtoBusterBoss")
EndFlash:
TNT1 A 1
stop
}
}

Actor DarkProtoShot
{
PROJECTILE
damagetype "Darkman4ProtoShot"
Obituary "$OB_DARKMANFOUR1"
radius 8
height 8
Damage (50)
Speed 22
scale 2.5
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode")
6ULT X 1
wait
}
}

actor WNVStoneMan
{
Translation "192:192=241:241", "198:198=79:79", "208:215=0:0", "4:4=0:0", "168:168=0:0", "227:227=0:0", "52:52=0:0", "248:248=241:241"
PROJECTILE
+NOGRAVITY
+THRUACTORS
+INVULNERABLE
+LOOKALLAROUND
+SEEKERMISSILE
+NOTARGETSWITCH
+NOEXPLODEFLOOR
+BOUNCEONWALLS
+BOUNCEONCEILINGS
+DONTREFLECT
Gravity 1.0
Speed 0
radius 16
height 40
scale 2.5
const int RECL = -10;
const int THRST = 45;
const int X_VEL = 5;
const int Z_VEL = 25;
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode",1)
TNT1 A 0 A_PlaySoundEx("misc/teleport2","Auto")
TFOG AABBCC 1 A_Stop
TNT1 A 0 A_Recoil(RECL)
TNT1 A 0 ThrustThingZ(0,THRST,0,1)
TNT1 A 0 A_ChangeFlag("NOGRAVITY",False)
TNT1 A 0 A_Jump(256,"RobotMaster")
Goto RobotMaster
RobotMaster:
STOM J 2 
STOM J 1 A_CheckFloor("Looking")
wait
Looking:
TNT1 A 0 A_Stop
TNT1 A 0 A_JumpIfInTargetInventory("MediumUltimateAmmo",1,1)
Goto Death
STOM A 1 A_SeekerMissile(0,0,SMF_LOOK,256)
TNT1 A 0 A_JumpIfTargetInLOS("Missile",0,JLOSF_PROJECTILE)
Goto Looking+1
Missile:
TNT1 A 0 A_FaceTracer(0,0) STOM F 1 A_Stop TNT1 A 0 A_FaceTracer(0,0) STOM F 1 A_Stop
TNT1 A 0 A_FaceTracer(0,0) STOM G 1 A_Stop TNT1 A 0 A_FaceTracer(0,0) STOM G 1 A_Stop
TNT1 A 0 A_FaceTracer(0,0) STOM F 1 A_Stop TNT1 A 0 A_FaceTracer(0,0) STOM F 1 A_Stop
TNT1 A 0 A_FaceTracer(0,0) STOM G 1 A_Stop TNT1 A 0 A_FaceTracer(0,0) STOM G 1 A_Stop
TNT1 A 0 A_FaceTracer(0,0) STOM F 1 A_Stop TNT1 A 0 A_FaceTracer(0,0) STOM F 1 A_Stop
TNT1 A 0 A_FaceTracer(0,0) STOM G 1 A_Stop TNT1 A 0 A_FaceTracer(0,0) STOM G 1 A_Stop
TNT1 A 0 A_JumpIfTracerCloser(200,"Jump1")
TNT1 A 0 A_JumpIfTracerCloser(400,"Jump2")
TNT1 A 0 A_JumpIfTracerCloser(600,"Jump3")
TNT1 A 0 A_JumpIfTracerCloser(800,"Jump4")
TNT1 A 0 A_JumpIfTracerCloser(1000,"Jump5")
Goto Jump6
Jump1: TNT1 A 0 A_ChangeVelocity(X_VEL*1,0,Z_VEL,CVF_RELATIVE|CVF_REPLACE) Goto StoneJump
Jump2: TNT1 A 0 A_ChangeVelocity(X_VEL*2,0,Z_VEL,CVF_RELATIVE|CVF_REPLACE) Goto StoneJump
Jump3: TNT1 A 0 A_ChangeVelocity(X_VEL*3,0,Z_VEL,CVF_RELATIVE|CVF_REPLACE) Goto StoneJump
Jump4: TNT1 A 0 A_ChangeVelocity(X_VEL*4,0,Z_VEL,CVF_RELATIVE|CVF_REPLACE) Goto StoneJump
Jump5: TNT1 A 0 A_ChangeVelocity(X_VEL*5,0,Z_VEL,CVF_RELATIVE|CVF_REPLACE) Goto StoneJump
Jump5: TNT1 A 0 A_ChangeVelocity(X_VEL*6,0,Z_VEL,CVF_RELATIVE|CVF_REPLACE) Goto StoneJump
Jump6: TNT1 A 0 A_ChangeVelocity(X_VEL*7,0,Z_VEL,CVF_RELATIVE|CVF_REPLACE) Goto StoneJump
StoneJump:
STOM J 2
StoneJumpHold:
STOM J 0 ThrustThingZ(0,-4,0,1)
STOM J 1 A_CheckFloor("StoneLand")
loop
StoneLand:
TNT1 A 0 A_Quake(4,35,0,480)
TNT1 A 0 A_PlaySoundEx("weapon/WilyPressCrush","Auto")
TNT1 A 0 A_CustomMissile("WNVStoneManQuaker",0,0,0,CMF_AIMDIRECTION)
TNT1 AAAAAAAAAA 0 A_SpawnItemEx("WNVStoneManRock",random(32,180),0,4,0,0,random(3,15),random(0,360))
STOM MNOP 2 A_Stop
STOM P 17
STOM PONM 2
TNT1 A 0 A_RearrangePointers(AAPTR_DEFAULT,AAPTR_DEFAULT,AAPTR_NULL)
Goto Looking
Death:
TNT1 A 0 A_SpawnItemEx("WNVExit")
stop
}
}

Actor WNVStoneManQuaker
{
PROJECTILE
+NOCLIP
+FLOORHUGGER
+NOINTERACTION
+DONTREFLECT
Height 1
Radius 1
var int User_Turn;
var int User_X_Ofs;
var int User_Degrees;
States
{
Spawn:
TNT1 A 0
TNT1 A 0 A_SetUserVar("User_Turn",0)
TNT1 A 0 A_SetUserVar("User_X_Ofs",0)
TNT1 A 0 A_SetUserVar("User_Degrees",0)
TNT1 A 0 A_SpawnItemEx("WNVStoneManDamager",User_X_Ofs,0,0,0,0,0,User_Degrees+User_Turn,SXF_TRANSFERPOINTERS)
TNT1 A 0 A_SetUserVar("User_X_Ofs",User_X_Ofs+32)
Spawn2:
TNT1 A 0 A_SpawnItemEx("WNVStoneManDamager",User_X_Ofs,0,0,0,0,0,User_Degrees+User_Turn,SXF_TRANSFERPOINTERS)
TNT1 A 0 A_SetUserVar(User_Degrees,User_Degrees+18)
TNT1 A 0 A_JumpIf(user_degrees>=360,"Reset")
TNT1 A 1 A_JumpIf(true,"Spawn2")
wait
Reset:
TNT1 A 0 A_SetUserVar("User_Turn",User_Turn+45)
TNT1 A 0 A_SetUserVar("User_Degrees",0)
TNT1 A 0 A_SetUserVar("User_X_Ofs",User_X_Ofs+32)
TNT1 A 0 A_JumpIf(User_X_Ofs>=480,"End")
Goto Spawn2
End:
TNT1 A 0
stop
}
}

Actor WNVStoneManDamager
{
PROJECTILE
-NOBLOCKMAP
+DONTBLAST
+DONTREFLECT
+THRUSPECIES
+NOINTERACTION
damagetype "Darkman4WNVStone"
Obituary "$OB_DARKMANFOUR6"
species "DustManType"
damage (0)
Radius 8
Height 16
scale 2.5
States
{
Spawn:
TNT1 A 0
TNT1 A 1 A_Explode(50,300,0,0,100)
stop
}
}

actor WilyNumbersVStoneManProtect : PowerProtection
{
Powerup.Duration 10
DamageFactor "Darkman4WNVStone", 0.0
}

actor WNVStoneManRock : GutsQuakeDebris
{
Translation "216:216=241:241", "215:215=79:79"
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode")
TNT1 A 0 A_Jump(256,"S_1","S_2")
S_1:
S5PS A 70
stop
S_2:
S5PS B 70
stop
}
}

actor WNVChargeMan : WNVStoneMan
{
+STEPMISSILE
Maxstepheight 24
States
{
RobotMaster:
CHAM D 2
CHAM D 1 A_CheckFloor("Looking")
wait
Looking:
TNT1 A 0 A_Stop
TNT1 A 0 A_JumpIfInTargetInventory("MediumUltimateAmmo",1,1)
Goto Death
TNT1 A 0 A_JumpIfTargetInLOS("Missile",0,JLOSF_PROJECTILE)
CHRM A 1 A_SeekerMissile(0,0,SMF_LOOK,256)
Goto Looking+1
Missile:
TNT1 A 0 A_FaceTracer(0,0)
CHAM AABBCCBB 1 A_GiveInventory("WNVChargeManMovementPickUp",1)
TNT1 A 0 A_RearrangePointers(AAPTR_DEFAULT,AAPTR_DEFAULT,AAPTR_NULL)
Goto Looking
}
}

actor WNVChargeManMovementPickUp : CustomInventory
{
states
{
Pickup:
TNT1 A 0 A_SpawnItemEx("ChargeManHitBox",0,0,32,momx,momy,momz)
TNT1 A 0 A_JumpIf(z-floorz<8,"Pickup2")
TNT1 A 0 A_ChangeVelocity(cos(pitch)*20,0,momz,CVF_RELATIVE|CVF_REPLACE)
stop
Pickup2:
TNT1 A 0 A_ChangeVelocity(20,0,0,CVF_RELATIVE|CVF_REPLACE)
stop
}
}

actor ChargeManHitBox
{
PROJECTILE
+DONTBLAST
+DONTREFLECT
-NOBLOCKMAP
+THRUSPECIES
damagetype "Darkman4WNVCharge"
Obituary "$OB_DARKMANFOUR6"
Species "WilyNumbersV"
damage (18)
Radius 32
Height 32
Speed 0
scale 2.5
States
{
Spawn:
TNT1 A 0
TNT1 A 1
stop
}
}

actor WilyNumbersVChargeManProtect : PowerProtection
{
Powerup.Duration 8
DamageFactor "Darkman4WNVCharge", 0.0
}

actor WNVWaveMan : WNVStoneMan
{
States
{
RobotMaster:
WAVM J 2
WAVM J 1 A_CheckFloor("Looking")
wait
Looking:
TNT1 A 0 A_Stop
TNT1 A 0 A_JumpIfInTargetInventory("MediumUltimateAmmo",1,1)
Goto Death
TNT1 A 0 A_JumpIfTargetInLOS("Missile",0,JLOSF_PROJECTILE)
WAVM A 1 A_SeekerMissile(0,0,SMF_LOOK,256)
Goto Looking+1
Missile:
TNT1 A 0 A_FaceTracer(0,0) WAVM F 1 A_Stop
TNT1 A 0 A_FaceTracer(0,0) WAVM F 1 A_Stop
TNT1 A 0 A_FaceTracer(0,0) WAVM F 1 A_Stop
TNT1 A 0 A_FaceTracer(0,0) WAVM F 1 A_Stop
TNT1 A 0 A_FaceTracer(0,0) WAVM F 1 A_Stop
Missile.Waiting:
TNT1 A 0 A_JumpIfInTargetInventory("MediumUltimateAmmo",1,1)
Goto Death
TNT1 A 0 A_PlaySoundEx("weapon/waterwave","Weapon")
TNT1 A 0 A_CustomMissile("WaterWaveManSpawner",0,0,0,CMF_AIMDIRECTION)
TNT1 A 0 A_FaceTracer(0,0) WAVM I 1 A_Stop
TNT1 A 0 A_FaceTracer(0,0) WAVM I 1 A_Stop
TNT1 A 0 A_SeekerMissile(0,0,SMF_LOOK,256)
TNT1 A 0 A_JumpIfTargetInLOS("Missile.Waiting",0,JLOSF_PROJECTILE)
TNT1 A 0 A_RearrangePointers(AAPTR_DEFAULT,AAPTR_DEFAULT,AAPTR_NULL)
Goto Looking
}
}

actor WaterWaveManSpawner
{
Translation "193:193=241:241", "208:208=79:79"
PROJECTILE
-SOLID
-NOGRAVITY
+DONTBLAST
damagetype "Darkman4WNV"
Obituary "$OB_DARKMANFOUR6"
gravity 15.0
Damage (10)
speed 20
Height 4
Radius 6
Scale 2.5
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode")
SpawnLoop:
WVWA FGHIJ 4
loop
Death:
TNT1 A 0 A_CustomMissile("WaterWaveMan",0,0,0,2,0)
stop
}
}

actor WaterWaveMan
{
Translation "193:193=241:241", "208:208=79:79"
PROJECTILE
-NOGRAVITY
+STEPMISSILE
damagetype "Darkman4WNV"
Obituary "$OB_DARKMANFOUR6"
gravity 15.0
maxstepheight 15
Damage (10)
speed 25
Height 40
Radius 6
Scale 2.5
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode")
TNT1 A 1
TNT1 A 0 A_GiveInventory("Clip",1)
WVWA FFFFGGGGHHHH 1 A_JumpIf(z-floorz>8, "Fall")
SpawnLoop:
WVWA IIIIJJJJ 1 A_JumpIf(z-floorz>8, "Fall")
Goto SpawnLoop
Fall:
TNT1 A 0 A_ChangeFlag(NOGRAVITY, false)
WVWA IJ 4
Goto Fall+1
Crash:
XDeath:
TNT1 A 0
stop
Death:
TNT1 A 0 A_JumpIfInventory("Clip",1,"Continue")
TNT1 A 1
stop
Continue:
TNT1 A 0 A_CustomMissile("WaterWaveMan",0,0,0,2,0)
TNT1 A 1
stop
}
}

actor WNVStarMan : WNVStoneMan
{
States
{
RobotMaster:
STAM I 2
STAM I 1 A_CheckFloor("Looking")
wait
Looking:
TNT1 A 0 A_CheckFloor("Looking.Ground")
Goto Looking.Air
Looking.Ground:
TNT1 A 0 A_Stop
TNT1 A 0 A_JumpIfInTargetInventory("MediumUltimateAmmo",1,1)
Goto Death
TNT1 A 0 A_JumpIfTargetInLOS("Missile",0,JLOSF_PROJECTILE)
STAM A 1 A_SeekerMissile(0,0,SMF_LOOK,256)
Goto Looking.Ground+1
Looking.Air:
TNT1 A 0 A_Stop
TNT1 A 0 A_JumpIfInTargetInventory("MediumUltimateAmmo",1,1)
Goto Death
TNT1 A 0 A_JumpIfTargetInLOS("Missile",0,JLOSF_PROJECTILE)
STAM I 1 A_SeekerMissile(0,0,SMF_LOOK,256)
Goto Looking.Air+1
Missile:
TNT1 A 0 A_CheckFloor(1)
Goto Missile.Continue
TNT1 A 0 A_ChangeFlag("NOGRAVITY",True)
TNT1 A 0 A_ChangeVelocity(0,0,17,CVF_RELATIVE|CVF_REPLACE)
STAM IIIIIIII 1 A_FaceTracer(0,0)
TNT1 A 0 A_Stop
Missile.Continue:
TNT1 A 0 A_FaceTracer(0,0) STAM O 1 A_Stop
TNT1 A 0 A_FaceTracer(0,0) STAM O 1 A_Stop
TNT1 A 0 A_FaceTracer(0,0) STAM O 1 A_Stop
TNT1 A 0 A_FaceTracer(0,0) STAM O 1 A_Stop
TNT1 A 0 A_FaceTracer(0,0) STAM O 1 A_Stop
TNT1 A 0 A_FaceTracer(0,0) STAM P 1 A_Stop
TNT1 A 0 A_FaceTracer(0,0) STAM P 1 A_Stop
TNT1 A 0 A_FaceTracer(0,0) STAM P 1 A_Stop
TNT1 A 0 A_FaceTracer(0,0) STAM P 1 A_Stop
TNT1 A 0 A_FaceTracer(0,0) STAM P 1 A_Stop
TNT1 A 0 A_PlaySoundEx("weapon/starcrashdownstrong","Auto")
TNT1 A 0 A_CustomMissile("StarManCrasher",0,0,0,CMF_AIMDIRECTION,pitch)
TNT1 A 0 A_FaceTracer(0,0) STAM Q 1 A_Stop
TNT1 A 0 A_FaceTracer(0,0) STAM Q 1 A_Stop
TNT1 A 0 A_FaceTracer(0,0) STAM Q 1 A_Stop
TNT1 A 0 A_FaceTracer(0,0) STAM Q 1 A_Stop
TNT1 A 0 A_FaceTracer(0,0) STAM Q 1 A_Stop
TNT1 A 0 A_FaceTracer(0,0) STAM R 1 A_Stop
TNT1 A 0 A_FaceTracer(0,0) STAM R 1 A_Stop
TNT1 A 0 A_FaceTracer(0,0) STAM R 1 A_Stop
TNT1 A 0 A_FaceTracer(0,0) STAM R 1 A_Stop
TNT1 A 0 A_FaceTracer(0,0) STAM R 1 A_Stop
TNT1 A 0 A_FaceTracer(0,0) STAM S 1 A_Stop
TNT1 A 0 A_FaceTracer(0,0) STAM S 1 A_Stop
TNT1 A 0 A_FaceTracer(0,0) STAM S 1 A_Stop
TNT1 A 0 A_FaceTracer(0,0) STAM S 1 A_Stop
TNT1 A 0 A_FaceTracer(0,0) STAM S 1 A_Stop
TNT1 A 0 A_FaceTracer(0,0) STAM R 1 A_Stop
TNT1 A 0 A_FaceTracer(0,0) STAM R 1 A_Stop
TNT1 A 0 A_FaceTracer(0,0) STAM R 1 A_Stop
TNT1 A 0 A_FaceTracer(0,0) STAM R 1 A_Stop
TNT1 A 0 A_FaceTracer(0,0) STAM R 1 A_Stop
TNT1 A 0 A_RearrangePointers(AAPTR_DEFAULT,AAPTR_DEFAULT,AAPTR_NULL)
Goto Looking
}
}

actor StarManCrasher
{
Translation "217:217=241:241", "222:222=79:79"
PROJECTILE
+RIPPER
+DONTSPLASH
damagetype "Darkman4WNV"
Obituary "$OB_DARKMANFOUR6"
Damage (0)
Speed 25
Radius 4
Height 4
scale 2.5
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode",1)
STCR EFGH 1 A_Explode(10,120,0,0,120)
goto Spawn+2
}
}

actor WNVGravityMan : WNVStoneMan
{
States
{
RobotMaster:
GRAM I 2
GRAM I 1 A_CheckFloor("Looking")
wait
Looking:
TNT1 A 0 A_Stop
TNT1 A 0 A_JumpIfInTargetInventory("MediumUltimateAmmo",1,1)
Goto Death
TNT1 A 0 A_JumpIfTargetInLOS("Missile",0,JLOSF_PROJECTILE)
GRAM A 1 A_SeekerMissile(0,0,SMF_LOOK,256)
Goto Looking+1
Missile:
TNT1 A 0 A_FaceTracer(0,0) GRAM K 1 A_Stop
TNT1 A 0 A_FaceTracer(0,0) GRAM K 1 A_Stop
TNT1 A 0 A_FaceTracer(0,0) GRAM K 1 A_Stop
TNT1 A 0 A_FaceTracer(0,0) GRAM K 1 A_Stop
TNT1 A 0 A_FaceTracer(0,0) GRAM L 1 A_Stop
TNT1 A 0 A_FaceTracer(0,0) GRAM L 1 A_Stop
TNT1 A 0 A_FaceTracer(0,0) GRAM L 1 A_Stop
TNT1 A 0 A_FaceTracer(0,0) GRAM L 1 A_Stop
TNT1 A 0 A_FaceTracer(0,0) GRAM M 1 A_Stop
TNT1 A 0 A_FaceTracer(0,0) GRAM M 1 A_Stop
TNT1 A 0 A_FaceTracer(0,0) GRAM M 1 A_Stop
TNT1 A 0 A_FaceTracer(0,0) GRAM M 1 A_Stop
TNT1 A 0 A_JumpIfTracerCloser(200,"Jump1")
TNT1 A 0 A_JumpIfTracerCloser(400,"Jump2")
TNT1 A 0 A_JumpIfTracerCloser(600,"Jump3")
TNT1 A 0 A_JumpIfTracerCloser(800,"Jump4")
TNT1 A 0 A_JumpIfTracerCloser(1000,"Jump5")
Goto Jump6
Jump1: TNT1 A 0 A_ChangeVelocity(X_VEL*1,0,Z_VEL,CVF_RELATIVE|CVF_REPLACE) Goto GravityJump
Jump2: TNT1 A 0 A_ChangeVelocity(X_VEL*2,0,Z_VEL,CVF_RELATIVE|CVF_REPLACE) Goto GravityJump
Jump3: TNT1 A 0 A_ChangeVelocity(X_VEL*3,0,Z_VEL,CVF_RELATIVE|CVF_REPLACE) Goto GravityJump
Jump4: TNT1 A 0 A_ChangeVelocity(X_VEL*4,0,Z_VEL,CVF_RELATIVE|CVF_REPLACE) Goto GravityJump
Jump5: TNT1 A 0 A_ChangeVelocity(X_VEL*5,0,Z_VEL,CVF_RELATIVE|CVF_REPLACE) Goto GravityJump
Jump5: TNT1 A 0 A_ChangeVelocity(X_VEL*6,0,Z_VEL,CVF_RELATIVE|CVF_REPLACE) Goto GravityJump
Jump6: TNT1 A 0 A_ChangeVelocity(X_VEL*7,0,Z_VEL,CVF_RELATIVE|CVF_REPLACE) Goto GravityJump
GravityJump:
GRAM I 2
GravityJumpHold:
TNT1 A 0 ThrustThingZ(0,-4,0,1)
GRAM I 1 A_CheckFloor("GravityLand")
loop
GravityLand:
TNT1 A 0 A_PlaySoundEx("weapon/gravityhold","Weapon")
TNT1 A 0 A_CustomMissile("GravityManHolder",0,0,0,CMF_AIMDIRECTION)
TNT1 A 0 A_FaceTracer(0,0) GRAM M 1 A_Stop
TNT1 A 0 A_FaceTracer(0,0) GRAM M 1 A_Stop
TNT1 A 0 A_FaceTracer(0,0) GRAM M 1 A_Stop
TNT1 A 0 A_FaceTracer(0,0) GRAM M 1 A_Stop
TNT1 A 0 A_FaceTracer(0,0) GRAM L 1 A_Stop
TNT1 A 0 A_FaceTracer(0,0) GRAM L 1 A_Stop
TNT1 A 0 A_FaceTracer(0,0) GRAM L 1 A_Stop
TNT1 A 0 A_FaceTracer(0,0) GRAM L 1 A_Stop
TNT1 A 0 A_FaceTracer(0,0) GRAM K 1 A_Stop
TNT1 A 0 A_FaceTracer(0,0) GRAM K 1 A_Stop
TNT1 A 0 A_FaceTracer(0,0) GRAM K 1 A_Stop
TNT1 A 0 A_FaceTracer(0,0) GRAM K 1 A_Stop
TNT1 A 0 A_FaceTracer(0,0) GRAM A 1 A_Stop
TNT1 A 0 A_FaceTracer(0,0) GRAM A 1 A_Stop
TNT1 A 0 A_FaceTracer(0,0) GRAM A 1 A_Stop
TNT1 A 0 A_FaceTracer(0,0) GRAM A 1 A_Stop
TNT1 A 0 A_FaceTracer(0,0) GRAM A 1 A_Stop
TNT1 A 0 A_RearrangePointers(AAPTR_DEFAULT,AAPTR_DEFAULT,AAPTR_NULL)
Goto Looking
}
}

actor GravityManHolder
{
Obituary "$OB_DARKMANFOUR6"
damagetype "Darkman4WNVGravity"
States
{
Spawn:
TNT1 A 0
TNT1 A 0 A_SpawnItemEx("GravityManHolderFX")
TNT1 A 1 A_Explode(5, 1000,0)
TNT1 A 0 A_SpawnItemEx("GravityManHolderFX")
TNT1 A 1 A_Explode(5, 950,0)
TNT1 A 0 A_SpawnItemEx("GravityManHolderFX2")
TNT1 A 1 A_Explode(5, 900,0)
TNT1 A 0 A_SpawnItemEx("GravityManHolderFX2")
TNT1 A 1 A_Explode(5, 850,0)
TNT1 A 0 A_SpawnItemEx("GravityManHolderFX3")
TNT1 A 1 A_Explode(5, 800,0)
TNT1 A 0 A_SpawnItemEx("GravityManHolderFX3")
TNT1 A 1 A_Explode(5, 750,0)
stop
}
}

actor GravityManHolderFX
{
+NOINTERACTION
+NOGRAVITY
+CLIENTSIDEONLY
+FORCEXYBILLBOARD
-SOLID
scale 2.5
height 1
radius 1
reactiontime 60
var int user_angle;
States
{
Spawn:
TNT1 A 0
TNT1 A 0 A_SetUserVar("user_angle", random(0, 6))
SpawnLoop:
TNT1 A 0 A_SpawnItemEx("GravityManHolderParticle", 1000, 0, 512, 0, 0, -60, user_angle, SXF_ABSOLUTEANGLE|SXF_NOCHECKPOSITION|SXF_TRANSFERPOINTERS)
TNT1 A 0 A_SetUserVar("user_angle", user_angle + 6)
TNT1 A 0 A_Countdown
loop
Death:
TNT1 A 0
stop
}
}

actor GravityManHolderFX2 : GravityManHolderFX
{
States
{
Spawn:
TNT1 A 0
TNT1 A 0 A_SetUserVar("user_angle", random(0, 6))
SpawnLoop:
TNT1 A 0 A_SpawnItemEx("GravityManHolderParticle", 768, 0, 512, 0, 0, -60, user_angle, SXF_ABSOLUTEANGLE|SXF_NOCHECKPOSITION|SXF_TRANSFERPOINTERS)
TNT1 A 0 A_SetUserVar("user_angle", user_angle + 6)
TNT1 A 0 A_Countdown
loop
Death:
TNT1 A 0
stop
}
}

actor GravityManHolderFX3 : GravityManHolderFX
{
States
{
Spawn:
TNT1 A 0
TNT1 A 0 A_SetUserVar("user_angle", random(0, 6))
SpawnLoop:
TNT1 A 0 A_SpawnItemEx("GravityManHolderParticle", 512, 0, 512, 0, 0, -60, user_angle, SXF_ABSOLUTEANGLE|SXF_NOCHECKPOSITION|SXF_TRANSFERPOINTERS)
TNT1 A 0 A_SetUserVar("user_angle", user_angle + 6)
TNT1 A 0 A_Countdown
loop
Death:
TNT1 A 0
stop
}
}

actor GravityManHolderParticle
{
Translation "239:239=241:241", "4:4=79:79"
+CLIENTSIDEONLY
+NOINTERACTION
-SOLID
+NOGRAVITY
height 0
radius 0
Scale 7.0
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode")
GHOL A 15
stop
}
}

actor WNVGyroMan : WNVStoneMan
{
States
{
RobotMaster:
GYRM I 2
GYRM I 1 A_CheckFloor("Looking")
wait
Looking:
TNT1 A 0 A_CheckFloor("Looking.Ground")
Goto Looking.Air
Looking.Ground:
TNT1 A 0 A_Stop
TNT1 A 0 A_JumpIfInTargetInventory("MediumUltimateAmmo",1,1)
Goto Death
TNT1 A 0 A_JumpIfTargetInLOS("Missile",0,JLOSF_PROJECTILE)
GYRM A 1 A_SeekerMissile(0,0,SMF_LOOK,256)
Goto Looking.Ground+1
Looking.Air:
TNT1 A 0 A_Stop
TNT1 A 0 A_JumpIfInTargetInventory("MediumUltimateAmmo",1,1)
Goto Death
TNT1 A 0 A_JumpIfTargetInLOS("Missile",0,JLOSF_PROJECTILE)
GYRM I 1 A_SeekerMissile(0,0,SMF_LOOK,256)
TNT1 A 0 A_JumpIfTargetInLOS("Missile",0,JLOSF_PROJECTILE)
GYRM I 1 A_SeekerMissile(0,0,SMF_LOOK,256)
TNT1 A 0 A_JumpIfTargetInLOS("Missile",0,JLOSF_PROJECTILE)
GYRM J 1 A_SeekerMissile(0,0,SMF_LOOK,256)
TNT1 A 0 A_JumpIfTargetInLOS("Missile",0,JLOSF_PROJECTILE)
GYRM J 1 A_SeekerMissile(0,0,SMF_LOOK,256)
Goto Looking.Air+1
Missile:
TNT1 A 0 A_CheckFloor(1)
Goto Missile.Continue
TNT1 A 0 A_ChangeFlag("NOGRAVITY",True)
TNT1 A 0 A_ChangeVelocity(0,0,17,CVF_RELATIVE|CVF_REPLACE)
GYRM IIJJIIJJ 1 A_FaceTracer(0,0)
TNT1 A 0 A_Stop
Missile.Continue:
TNT1 A 0 A_FaceTracer(0,0) GYRM K 1 A_Stop
TNT1 A 0 A_FaceTracer(0,0) GYRM K 1 A_Stop
TNT1 A 0 A_FaceTracer(0,0) GYRM K 1 A_Stop
TNT1 A 0 A_FaceTracer(0,0) GYRM K 1 A_Stop
TNT1 A 0 A_FaceTracer(0,0) GYRM K 1 A_Stop
TNT1 A 0 A_PlaySoundEx("weapon/gyroattack","Auto")
TNT1 A 0 A_CustomMissile("GyroManAttacker",0,0,0,CMF_AIMDIRECTION,pitch)
TNT1 A 0 A_FaceTracer(0,0) GYRM L 1 A_Stop
TNT1 A 0 A_FaceTracer(0,0) GYRM L 1 A_Stop
TNT1 A 0 A_FaceTracer(0,0) GYRM L 1 A_Stop
TNT1 A 0 A_FaceTracer(0,0) GYRM L 1 A_Stop
TNT1 A 0 A_FaceTracer(0,0) GYRM L 1 A_Stop
TNT1 A 0 A_FaceTracer(0,0) GYRM L 1 A_Stop
TNT1 A 0 A_FaceTracer(0,0) GYRM L 1 A_Stop
TNT1 A 0 A_FaceTracer(0,0) GYRM L 1 A_Stop
TNT1 A 0 A_FaceTracer(0,0) GYRM L 1 A_Stop
TNT1 A 0 A_FaceTracer(0,0) GYRM L 1 A_Stop
TNT1 A 0 A_FaceTracer(0,0) GYRM L 1 A_Stop
TNT1 A 0 A_FaceTracer(0,0) GYRM L 1 A_Stop
TNT1 A 0 A_FaceTracer(0,0) GYRM L 1 A_Stop
TNT1 A 0 A_FaceTracer(0,0) GYRM L 1 A_Stop
TNT1 A 0 A_FaceTracer(0,0) GYRM L 1 A_Stop
TNT1 A 0 A_FaceTracer(0,0) GYRM L 1 A_Stop
TNT1 A 0 A_FaceTracer(0,0) GYRM L 1 A_Stop
TNT1 A 0 A_FaceTracer(0,0) GYRM L 1 A_Stop
TNT1 A 0 A_FaceTracer(0,0) GYRM L 1 A_Stop
TNT1 A 0 A_FaceTracer(0,0) GYRM L 1 A_Stop
TNT1 A 0 A_RearrangePointers(AAPTR_DEFAULT,AAPTR_DEFAULT,AAPTR_NULL)
Goto Looking
}
}

actor GyroManAttacker
{
Translation "128:128=241:241", "208:208=79:79", "214:216=241:241"
PROJECTILE
+SEEKERMISSILE
+LOOKALLAROUND
+BOUNCEONWALLS
+NOEXPLODEFLOOR
+BOUNCEONCEILINGS
damagetype "Darkman4WNV"
Obituary "$OB_DARKMANFOUR6"
damage (4)
speed 50
Radius 24
Height 16
scale 3.5
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode")
Spawn.Waiting:
GYCS A 0 A_PlaySoundEx("weapon/gyroattack","Body")
GYRO ABCD 1 A_CheckFloor("Spawn2")
TNT1 A 0 A_GiveInventory("CutterFlag",1)
TNT1 A 0 A_JumpIfInventory("CutterFlag",5,1)
loop
Spawn2:
TNT1 A 0 A_ChangeFlag("HEXENBOUNCE",False)
TNT1 A 0 A_PlaySoundEx("weapon/gyroattack","Body")
GYRO ABCD 1 A_Stop
TNT1 A 0 A_GiveInventory("CutterFlag",1)
TNT1 A 0 A_JumpIfInventory("CutterFlag",8,1)
Goto Spawn2+1
TNT1 A 0 A_ChangeVelocity(50,0,0,CVF_RELATIVE)
TNT1 AAAAAA 0 A_SeekerMissile (90, 360, SMF_LOOK|SMF_PRECISE, 50, 8)
Spawn3:
TNT1 A 0 A_PlaySoundEx("weapon/gyroattack","Body")
GYRO ABCD 1
loop
Death:
MMFX BCDE 2
stop
}
}

actor WNVCrystalMan : WNVStoneMan
{
States
{
RobotMaster:
CRYM I 2
CRYM I 1 A_CheckFloor("Looking")
wait
Looking:
TNT1 A 0 A_Stop
TNT1 A 0 A_JumpIfInTargetInventory("MediumUltimateAmmo",1,1)
Goto Death
TNT1 A 0 A_JumpIfTargetInLOS("Missile",0,JLOSF_PROJECTILE)
CRYM A 1 A_SeekerMissile(0,0,SMF_LOOK,256)
Goto Looking+1
Missile:
TNT1 A 0 A_FaceTracer(0,0) CRYM M 1 A_Stop
TNT1 A 0 A_FaceTracer(0,0) CRYM M 1 A_Stop
TNT1 A 0 A_FaceTracer(0,0) CRYM M 1 A_Stop
TNT1 A 0 A_FaceTracer(0,0) CRYM M 1 A_Stop
TNT1 A 0 A_FaceTracer(0,0) CRYM M 1 A_Stop
TNT1 A 0 A_PlaySoundEx("crystalman/crystal","Body")
TNT1 A 0 A_SpawnItemEx("CrystalManBitFormFX",36,0,36)
TNT1 A 0 A_CustomMissile("CrystalManEyeBit",32,0,4,CMF_AIMDIRECTION,pitch+4)
TNT1 A 0 A_CustomMissile("CrystalManEyeBit",32,0,-4,CMF_AIMDIRECTION,pitch+4)
TNT1 A 0 A_CustomMissile("CrystalManEyeBit",32,0,4,CMF_AIMDIRECTION,pitch-4)
TNT1 A 0 A_CustomMissile("CrystalManEyeBit",32,0,-4,CMF_AIMDIRECTION,pitch-4)
TNT1 A 0 A_FaceTracer(0,0) CRYM N 1 A_Stop
TNT1 A 0 A_FaceTracer(0,0) CRYM N 1 A_Stop
TNT1 A 0 A_FaceTracer(0,0) CRYM N 1 A_Stop
TNT1 A 0 A_FaceTracer(0,0) CRYM N 1 A_Stop
TNT1 A 0 A_FaceTracer(0,0) CRYM N 1 A_Stop
TNT1 A 0 A_FaceTracer(0,0) CRYM M 1 A_Stop
TNT1 A 0 A_FaceTracer(0,0) CRYM M 1 A_Stop
TNT1 A 0 A_FaceTracer(0,0) CRYM M 1 A_Stop
TNT1 A 0 A_FaceTracer(0,0) CRYM M 1 A_Stop
TNT1 A 0 A_FaceTracer(0,0) CRYM M 1 A_Stop
TNT1 A 0 A_FaceTracer(0,0) CRYM M 1 A_Stop
TNT1 A 0 A_FaceTracer(0,0) CRYM M 1 A_Stop
TNT1 A 0 A_FaceTracer(0,0) CRYM M 1 A_Stop
TNT1 A 0 A_FaceTracer(0,0) CRYM M 1 A_Stop
TNT1 A 0 A_FaceTracer(0,0) CRYM M 1 A_Stop
TNT1 A 0 A_FaceTracer(0,0) CRYM A 1 A_Stop
TNT1 A 0 A_FaceTracer(0,0) CRYM A 1 A_Stop
TNT1 A 0 A_FaceTracer(0,0) CRYM A 1 A_Stop
TNT1 A 0 A_FaceTracer(0,0) CRYM A 1 A_Stop
TNT1 A 0 A_FaceTracer(0,0) CRYM A 1 A_Stop
TNT1 A 0 A_RearrangePointers(AAPTR_DEFAULT,AAPTR_DEFAULT,AAPTR_NULL)
Goto Looking
}
}

actor CrystalManBitFormFX
{
Translation "0:255=4:4"
scale 2.0
PROJECTILE
+NOINTERACTION
+NOCLIP
damage(0)
radius 5
height 5
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileFXCode",1)
MRCR ABCD 2
stop
}
}

actor CrystalManEyeBit
{
Translation "193:193=241:241", "208:208=79:79", "214:216=241:241"
PROJECTILE
+HEXENBOUNCE
damagetype "Darkman4WNV"
Obituary "$OB_DARKMANFOUR6"
BounceFactor 1.0
WallBounceFactor 1.0
Damage(16)
speed 40
Height 8
Radius 8
Scale 2.5
reactiontime 175
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode")
CRYE FFFFGGGGHHHHIIIIJJJJFFFFFFFF 1 A_CountDown
goto Spawn+2
Death:
MMFX BCDE 2 A_Stop
stop
}
}

actor WNVNapalmMan : WNVStoneMan
{
States
{
RobotMaster:
NAPM I 2
NAPM I 1 A_CheckFloor("Looking")
wait
Looking:
TNT1 A 0 A_Stop
TNT1 A 0 A_JumpIfInTargetInventory("MediumUltimateAmmo",1,1)
Goto Death
TNT1 A 0 A_JumpIfTargetInLOS("Missile",0,JLOSF_PROJECTILE)
NAPM A 1 A_SeekerMissile(0,0,SMF_LOOK,256)
Goto Looking+1
Missile:
TNT1 A 0 A_FaceTracer(0,0) NAPM J 1 A_Stop
TNT1 A 0 A_FaceTracer(0,0) NAPM J 1 A_Stop
TNT1 A 0 A_FaceTracer(0,0) NAPM J 1 A_Stop
TNT1 A 0 A_FaceTracer(0,0) NAPM J 1 A_Stop
TNT1 A 0 A_JumpIfTracerCloser(200,"Jump1")
TNT1 A 0 A_JumpIfTracerCloser(400,"Jump2")
TNT1 A 0 A_JumpIfTracerCloser(600,"Jump3")
TNT1 A 0 A_JumpIfTracerCloser(800,"Jump4")
TNT1 A 0 A_JumpIfTracerCloser(1000,"Jump5")
Goto Jump6
Jump1: TNT1 A 0 A_ChangeVelocity(X_VEL*1,0,Z_VEL,CVF_RELATIVE|CVF_REPLACE) Goto NapalmJump
Jump2: TNT1 A 0 A_ChangeVelocity(X_VEL*2,0,Z_VEL,CVF_RELATIVE|CVF_REPLACE) Goto NapalmJump
Jump3: TNT1 A 0 A_ChangeVelocity(X_VEL*3,0,Z_VEL,CVF_RELATIVE|CVF_REPLACE) Goto NapalmJump
Jump4: TNT1 A 0 A_ChangeVelocity(X_VEL*4,0,Z_VEL,CVF_RELATIVE|CVF_REPLACE) Goto NapalmJump
Jump5: TNT1 A 0 A_ChangeVelocity(X_VEL*5,0,Z_VEL,CVF_RELATIVE|CVF_REPLACE) Goto NapalmJump
Jump5: TNT1 A 0 A_ChangeVelocity(X_VEL*6,0,Z_VEL,CVF_RELATIVE|CVF_REPLACE) Goto NapalmJump
Jump6: TNT1 A 0 A_ChangeVelocity(X_VEL*7,0,Z_VEL,CVF_RELATIVE|CVF_REPLACE) Goto NapalmJump
NapalmJump:
NAPM I 2
GravityJumpHold:
TNT1 A 0 ThrustThingZ(0,-4,0,1)
NAPM I 1 A_CheckFloor("NapalmLand")
loop
NapalmLand:
TNT1 A 0 A_FaceTracer(0,0) NAPM J 1 A_Stop
TNT1 A 0 A_FaceTracer(0,0) NAPM J 1 A_Stop
TNT1 A 0 A_FaceTracer(0,0) NAPM J 1 A_Stop
TNT1 A 0 A_FaceTracer(0,0) NAPM J 1 A_Stop
TNT1 A 0 A_FaceTracer(0,0) NAPM J 1 A_Stop
TNT1 A 0 A_PlaySoundEx("weapon/mbuster","Body")
TNT1 A 0 A_PlaySoundEx("weapon/napalmrocket", "Weapon")
TNT1 A 0 A_SpawnItemEx("NapalmShotFX",8,0,56)
TNT1 A 0 A_CustomMissile("WNVNapalmMissile",56,0,0,CMF_AIMDIRECTION,pitch)
TNT1 A 0 A_FaceTracer(0,0) NAPM F 1 A_Stop
TNT1 A 0 A_FaceTracer(0,0) NAPM F 1 A_Stop
TNT1 A 0 A_FaceTracer(0,0) NAPM F 1 A_Stop
TNT1 A 0 A_FaceTracer(0,0) NAPM F 1 A_Stop
TNT1 A 0 A_FaceTracer(0,0) NAPM F 1 A_Stop
TNT1 A 0 A_FaceTracer(0,0) NAPM G 1 A_Stop
TNT1 A 0 A_FaceTracer(0,0) NAPM G 1 A_Stop
TNT1 A 0 A_FaceTracer(0,0) NAPM G 1 A_Stop
TNT1 A 0 A_FaceTracer(0,0) NAPM G 1 A_Stop
TNT1 A 0 A_FaceTracer(0,0) NAPM G 1 A_Stop
TNT1 A 0 A_FaceTracer(0,0) NAPM A 1 A_Stop
TNT1 A 0 A_FaceTracer(0,0) NAPM A 1 A_Stop
TNT1 A 0 A_FaceTracer(0,0) NAPM A 1 A_Stop
TNT1 A 0 A_FaceTracer(0,0) NAPM A 1 A_Stop
TNT1 A 0 A_FaceTracer(0,0) NAPM A 1 A_Stop
TNT1 A 0 A_GiveInventory("CutterFlag",1)
TNT1 A 0 A_JumpIfInventory("CutterFlag",3,1)
loop
TNT1 A 0 A_TakeInventory("CutterFlag",3)
TNT1 A 0 A_RearrangePointers(AAPTR_DEFAULT,AAPTR_DEFAULT,AAPTR_NULL)
Goto Looking
}
}

actor WNVNapalmMissile
{
Translation "41:41=241:241", "208:208=79:79", "216:216=241:241", "93:94=79:79", "227:227=241:241"
PROJECTILE
damagetype "Darkman4WNV"
Obituary "$OB_DARKMANFOUR6"
Damage (0)
Speed 35
Radius 8
Height 16
Scale 2.5
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode",1)
NAMI A 0 A_PlaySoundEx("weapon/drillfly","Body")
NAMI AAA 1 A_SpawnItemEx("WNVNapalmMissileFX",-2,0,1,random(-1,0),random(-1,1),random(-1,1))
goto Spawn+2
Death:
NBOM A 0 A_Stop
NBOM A 0 A_PlaySoundEx("weapon/napalmnew", "Body")
NBOM A 0 A_PlaySoundEx("weapon/hyperbomb", "Weapon")
NBOM A 0 A_PlaySoundEx("weapon/drillexplode", "Auto")
NBOM A 0 A_ChangeFlag("NOGRAVITY",1)
NBOM D 0 A_Explode(40, 200, 0, 0, 50)
NAMI BCDEF 2
stop
}
}

actor WNVNapalmMissileFX : BasicClientSide
{
Translation "0:255=79:79"
renderstyle add
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileFXCode",1)
GRES EFE 2
GRES FFEEFF 1 A_FadeOut(0.20)
Goto Spawn+3
}
}

actor WNVExit : BasicClientSide
{
Translation "192:192=241:241", "198:198=79:79"
-NOCLIP
-NOGRAVITY
-NOEXPLODEFLOOR
+DOOMBOUNCE
-BOUNCEONFLOORS
radius 8
height 8
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode",1)
TNT1 A 0 A_PlaySoundEx("misc/teleport2","Body")
TFOG CCBB 1 A_Stop
TFOG AAAAAAAAAA 1 ThrustThingZ(0,9,0,1)
TFOG A 70
stop
}
}

actor WilyNumbersVWatcher
{
Height 0
Radius 0
+NOINTERACTION
-SOLID
+NOGRAVITY
+MISSILE
States
{
Spawn:
TNT1 A 0
TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0)==0,"Death")
TNT1 A 0 A_GiveToTarget("DisguisedDarkMan4UltBuildCooldownGiver",1)
TNT1 A 1 A_TakeFromTarget("MediumUltimateAmmo",1)
TNT1 A 0 A_JumpIfInTargetInventory("MediumUltimateAmmo",1,"Spawn")
Death:
TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 1 A_GiveToTarget("DisguisedDarkMan4UltBuildCooldownGiver",1)
stop
}
}

Actor DisguisedDarkMan4UltBuildCooldownGiver : UltBuildCooldownGiver
{
	Powerup.Duration -1
}

actor DarkNoWeaponBoss : VCBaseWeapon
{
States
{
Ready:
PROC D 0 A_ChangeFlag("INVULNERABLE",True)
PROC D 0 A_GiveInventory("InvProtection")
PROC D 0 SetPlayerProperty(0,1,4)
PROC D 0 A_SpawnItemEx("DrillExplode",0,0,32)
Ready2:
DKC4 A 1 ACS_NamedExecuteWithResult("VC_SetState",6) DKC4 A 0 A_GiveInventory("CutterFlag",1) PROC D 0 A_JumpIfInventory("CutterFlag",35,"Switch")
PROC D 1 ACS_NamedExecuteWithResult("VC_SetState",7) PROC D 0 A_GiveInventory("CutterFlag",1) PROC D 0 A_JumpIfInventory("CutterFlag",35,"Switch")
loop
Switch:
PROC D 0 A_JumpIfInventory("NoAltfire",1,"Ready")
PROC D 0 A_TakeInventory("BaseCustomFlag1",1)
PROC D 0 A_GiveInventory("DarkBuster4Boss")
PROC D 0 ACS_NamedExecuteWithResult("VC_SetState",0)
PROC D 0 A_PlaySoundEx("weapon/napalm","Weapon")
PROC D 0 A_SpawnItemEx("DarkScarf",0,0,40,-10,0,4)
PROC D 0 A_ChangeFlag("INVULNERABLE",False)
PROC D 0 A_TakeInventory("InvProtection")
PROC D 0 SetPlayerProperty(0,0,4)
PROC D 0 A_TakeInventory("DarkNoWeaponBoss")
Goto Ready
}
}

actor DarkBuster4Boss : VCBaseWeapon
{
Obituary "$OB_DARKMANFOUR2"
States
{
Ready:
TNT1 A 0
DKC4 A 1 A_ChangeFlag("INVULNERABLE",False)
DKC4 A 1 A_TakeInventory("InvProtection")
DKC4 A 1 SetPlayerProperty(0,0,4)
DKC4 A 7 A_GiveInventory("DM4ShieldActivateFlag")
Ready2:
DKC4 A 1 A_WeaponReady
TNT1 A 0 A_JumpIfInventory("UltAttackFlag",1,"UltimateAttack")
loop
Deselect:
TNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Lower
DKC4 A 1 A_Lower
Goto Deselect
Select:
TNT1 A 0 ACS_ExecuteAlways(991,0,811)
TNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Raise
DKC4 A 1 A_Raise
loop
Fire:
DKC4 B 0 A_GiveInventory("BaseCustomFlag2")
Hold:
DKC4 B 0 A_PlaySoundEx("weapon/napalm","Weapon")
DKC4 B 0 A_FireCustomMissile("Dark4Shot",0,0,1,18)
DKC4 BCCCBA 3
DKC4 A 0 A_Refire
DKC4 B 0 A_TakeInventory("BaseCustomFlag2")
Goto Ready2
AltFire:
DKC4 D 0 A_JumpIfInventory("NoAltfire",1,"Ready")
DKC4 D 0 A_JumpIfInventory("Dark4ShieldCount",2,1)
Goto Ready2
DKC4 DD 0 A_PlaySoundEX("weapon/shieldhum","Auto")
DKC4 D 0 A_TakeInventory("Dark4ShieldCount") 
DKC4 D 0 A_SpawnItemEx("DarkShieldShot",0,0,16,30,0,0,0)
DKC4 D 0 A_SpawnItemEx("DarkShieldShot",0,0,16,30,0,0,180)
DKC4 FGHIIIIIHGF 2
Goto Ready2
UltimateAttack:
DAR4 J 0 ACS_NamedExecuteAlways("VC_UltimateText",0,48) DAR4 J 0 A_PlaySoundEx("classes/ultimateactivation","Auto")
DAR4 J 0 A_GiveInventory("PowerUltBuildCooldown",1) DAR4 J 0 A_TakeInventory("UltAttackFlag",1) DAR4 J 0 A_PlaySoundEx("weapon/adaptercharge","Weapon")
DKC4 J 2 ACS_ExecuteAlways(991,0,812) DKC4 J 0 ACS_NamedExecuteWithResult("VC_SetState",1)
DKC4 B 2 ACS_ExecuteAlways(991,0,811) DKC4 B 0 ACS_NamedExecuteWithResult("VC_SetState",1)
DKC4 J 2 ACS_ExecuteAlways(991,0,812) DKC4 J 0 ACS_NamedExecuteWithResult("VC_SetState",1)
DKC4 B 2 ACS_ExecuteAlways(991,0,811) DKC4 B 0 ACS_NamedExecuteWithResult("VC_SetState",1)
DKC4 J 2 ACS_ExecuteAlways(991,0,812) DKC4 J 0 ACS_NamedExecuteWithResult("VC_SetState",1)
DKC4 B 2 ACS_ExecuteAlways(991,0,811) DKC4 B 0 ACS_NamedExecuteWithResult("VC_SetState",1)
DKC4 J 2 ACS_ExecuteAlways(991,0,812) DKC4 J 0 ACS_NamedExecuteWithResult("VC_SetState",1)
DKC4 B 2 ACS_ExecuteAlways(991,0,811) DKC4 B 0 ACS_NamedExecuteWithResult("VC_SetState",1)
DKC4 J 2 ACS_ExecuteAlways(991,0,812) DKC4 J 0 ACS_NamedExecuteWithResult("VC_SetState",1)
DKC4 B 2 ACS_ExecuteAlways(991,0,811) DKC4 B 0 ACS_NamedExecuteWithResult("VC_SetState",1)
DKC4 J 2 ACS_ExecuteAlways(991,0,812) DKC4 J 0 ACS_NamedExecuteWithResult("VC_SetState",1)
DKC4 B 2 ACS_ExecuteAlways(991,0,811) DKC4 B 0 ACS_NamedExecuteWithResult("VC_SetState",1)
DKC4 J 2 ACS_ExecuteAlways(991,0,812) DKC4 J 0 ACS_NamedExecuteWithResult("VC_SetState",1)
DKC4 B 2 ACS_ExecuteAlways(991,0,811) DKC4 B 0 ACS_NamedExecuteWithResult("VC_SetState",1)
DKC4 J 2 ACS_ExecuteAlways(991,0,812) DKC4 J 0 ACS_NamedExecuteWithResult("VC_SetState",1)
DKC4 B 2 ACS_ExecuteAlways(991,0,811) DKC4 B 0 ACS_NamedExecuteWithResult("VC_SetState",1)
DKC4 J 2 ACS_ExecuteAlways(991,0,812) DKC4 J 0 ACS_NamedExecuteWithResult("VC_SetState",1)
DKC4 B 2 ACS_ExecuteAlways(991,0,811) DKC4 B 0 ACS_NamedExecuteWithResult("VC_SetState",1)
DKC4 J 2 ACS_ExecuteAlways(991,0,812) DKC4 J 0 ACS_NamedExecuteWithResult("VC_SetState",1)
DKC4 B 2 ACS_ExecuteAlways(991,0,811) DKC4 B 0 ACS_NamedExecuteWithResult("VC_SetState",1)
DKC4 J 2 ACS_ExecuteAlways(991,0,812) DKC4 J 0 ACS_NamedExecuteWithResult("VC_SetState",1)
DKC4 B 2 ACS_ExecuteAlways(991,0,811) DKC4 B 0 ACS_NamedExecuteWithResult("VC_SetState",1)
DKC4 J 2 ACS_ExecuteAlways(991,0,812) DKC4 J 0 ACS_NamedExecuteWithResult("VC_SetState",1)
DKC4 B 2 ACS_ExecuteAlways(991,0,811) DKC4 B 0 ACS_NamedExecuteWithResult("VC_SetState",1)
DKC4 J 0 A_PlaySoundEx("weapon/coilfire1","Weapon",1) DKC4 J 0 ACS_ExecuteAlways(991,0,811)
DarkAssaultFire:
DKC4 C 1 Offset(8,28)A_FireCustomMissile("DarkAssaultShot",Random(-3,3),0,16,5,0,Random(-3,3))
DKC4 C 0 A_TakeInventory("MediumUltimateAmmo",3) DKC4 C 0 ACS_NamedExecuteWithResult("VC_SetState",2)
DKC4 C 1 Offset(4,34)A_FireCustomMissile("DarkAssaultShot",Random(-3,3),0,16,5,0,Random(-3,3))
DKC4 C 0 A_TakeInventory("MediumUltimateAmmo",4) DKC4 C 0 ACS_NamedExecuteWithResult("VC_SetState",2)
DKC4 C 1 Offset(2,40)A_FireCustomMissile("DarkAssaultShot",Random(-3,3),0,16,5,0,Random(-3,3))
DKC4 C 0 A_TakeInventory("MediumUltimateAmmo",3) DKC4 C 0 ACS_NamedExecuteWithResult("VC_SetState",2)
DKC4 C 1 Offset(6,36)A_FireCustomMissile("DarkAssaultShot",Random(-3,3),0,16,5,0,Random(-3,3))
DKC4 C 0 A_TakeInventory("MediumUltimateAmmo",4) DKC4 C 0 ACS_NamedExecuteWithResult("VC_SetState",2)
DKC4 C 0 A_JumpIfInventory("MediumUltimateAmmo",1,"DarkAssaultFire")
DKC4 C 0 A_StopSoundEx("Weapon")
DKC4 CCCCCCCCCCCBA 3
DKC4 A 0 A_TakeInventory("PowerUltBuildCooldown",1)
Goto Ready2
Flash:
TNT1 A 1 A_JumpIfInventory("IsDead",1,"EndFlash")
TNT1 A 0 A_JumpIfInventory("Dark4ShieldCount",2,1)
stop
TNT1 A 0 A_TakeInventory("WeaponCharge",1)
EndFlash:
TNT1 A 1
stop
}
}

actor Dark4Shot
{
Translation "202:202=216:216"
PROJECTILE
damagetype "Darkman4"
Obituary "$OB_DARKMANFOUR2"
species "Dark2ShieldType"
+THRUSPECIES
+THRUGHOST
Damage (18)
radius 10
height 10
Speed 30
scale 2.5
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode")
TNT1 A 2
TNT1 A 0 A_ChangeFlag("THRUGHOST",0)
DARS D 1
wait
}
}

actor Dark4Shield
{
Translation "202:202=216:216"
PROJECTILE
+GHOST
+RIPPER
+NOBLOOD
+DEFLECT
+DONTRIP
+THRUGHOST
+SHOOTABLE
-NOBLOCKMAP
+REFLECTIVE
+NORADIUSDMG
+DONTREFLECT
+THRUSPECIES
+INVULNERABLE
+NOINTERACTION
+NOTARGETSWITCH
Species "Dark2ShieldType"
damagetype "Darkman4Alt"
Obituary "$OB_DARKMANFOUR3"
Mass 9999
Damage (5)
Radius 16
Height 56
Speed 0
Scale 2.5
var int User_Angle;
const int X_OFS = 60;
const int ANGLE_TURN = 5;
const int ANGLE_TURN_2 = 10;
States
{
Spawn:
TNT1 AA 0
TNT1 A 3 A_SetUserVar(User_Angle,0)
SpawnWait:
TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0)==0,"End")
TNT1 A 1 A_JumpIfInTargetInventory("DM4ShieldActivateFlag",1,"Spawn2A")
loop
Spawn2A:
DSHO N 0 A_JumpIfInTargetInventory("BaseCustomFlag2",1,"Spawn3A")
DSHO N 0 A_JumpIfInTargetInventory("Dark4ShieldCount",2,1) Goto ShieldInvis
DSHO N 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0)==0,"End")
DSHO N 0 A_JumpIfInTargetInventory("IsDead",1,"End")
DSHO N 0 A_JumpIfInTargetInventory("IsTheTerminator",1,"End")
DSHO N 0 A_SpawnItemEx("DarkShieldBlocker",0,0,0,momx,momy,momz,0,SXF_ABSOLUTEMOMENTUM|SXF_NOCHECKPOSITION)
DSHO N 0 A_SpawnItemEx("Dark4ShieldDamager",0,0,0,momx,momy,momz,0,SXF_ABSOLUTEMOMENTUM|SXF_NOCHECKPOSITION)
DSHO N 1 A_Warp(AAPTR_TARGET,X_OFS,0,0,User_Angle,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION) DSHO N 0 A_SetUserVar(User_Angle,User_Angle+ANGLE_TURN)
DSHO N 1 A_Warp(AAPTR_TARGET,X_OFS,0,0,User_Angle,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION) DSHO N 0 A_SetUserVar(User_Angle,User_Angle+ANGLE_TURN)
Spawn2B:
DSHO O 0 A_JumpIfInTargetInventory("BaseCustomFlag2",1,"Spawn3B")
DSHO O 0 A_JumpIfInTargetInventory("Dark4ShieldCount",2,1) Goto ShieldInvis
DSHO O 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0)==0,"End")
DSHO O 0 A_JumpIfInTargetInventory("IsDead",1,"End")
DSHO O 0 A_JumpIfInTargetInventory("IsTheTerminator",1,"End")
DSHO O 0 A_SpawnItemEx("DarkShieldBlocker",0,0,0,momx,momy,momz,0,SXF_ABSOLUTEMOMENTUM|SXF_NOCHECKPOSITION)
DSHO O 0 A_SpawnItemEx("Dark4ShieldDamager",0,0,0,momx,momy,momz,0,SXF_ABSOLUTEMOMENTUM|SXF_NOCHECKPOSITION)
DSHO O 1 A_Warp(AAPTR_TARGET,X_OFS,0,0,User_Angle,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION) DSHO O 0 A_SetUserVar(User_Angle,User_Angle+ANGLE_TURN)
DSHO O 1 A_Warp(AAPTR_TARGET,X_OFS,0,0,User_Angle,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION) DSHO O 0 A_SetUserVar(User_Angle,User_Angle+ANGLE_TURN)
Spawn2C:
DSHO P 0 A_JumpIfInTargetInventory("BaseCustomFlag2",1,"Spawn3C")
DSHO P 0 A_JumpIfInTargetInventory("Dark4ShieldCount",2,1) Goto ShieldInvis
DSHO P 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0)==0,"End")
DSHO P 0 A_JumpIfInTargetInventory("IsDead",1,"End")
DSHO P 0 A_JumpIfInTargetInventory("IsTheTerminator",1,"End")
DSHO P 0 A_SpawnItemEx("DarkShieldBlocker",0,0,0,momx,momy,momz,0,SXF_ABSOLUTEMOMENTUM|SXF_NOCHECKPOSITION)
DSHO P 0 A_SpawnItemEx("Dark4ShieldDamager",0,0,0,momx,momy,momz,0,SXF_ABSOLUTEMOMENTUM|SXF_NOCHECKPOSITION)
DSHO P 1 A_Warp(AAPTR_TARGET,X_OFS,0,0,User_Angle,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION) DSHO P 0 A_SetUserVar(User_Angle,User_Angle+ANGLE_TURN)
DSHO P 1 A_Warp(AAPTR_TARGET,X_OFS,0,0,User_Angle,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION) DSHO P 0 A_SetUserVar(User_Angle,User_Angle+ANGLE_TURN)
Goto Spawn2A
Spawn3A:
DSHO N 0 A_JumpIfInTargetInventory("BaseCustomFlag2",1,1)
Goto Spawn2A
DSHO N 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0)==0,"End")
DSHO N 0 A_JumpIfInTargetInventory("IsDead",1,"End")
DSHO N 0 A_JumpIfInTargetInventory("IsTheTerminator",1,"End")
DSHO N 0 A_SpawnItemEx("DarkShieldBlocker2",0,0,0,momx,momy,momz,0,SXF_ABSOLUTEMOMENTUM|SXF_NOCHECKPOSITION)
DSHO N 0 A_SpawnItemEx("Dark4ShieldDamager",0,0,0,momx,momy,momz,0,SXF_ABSOLUTEMOMENTUM|SXF_NOCHECKPOSITION)
DSHO N 1 A_Warp(AAPTR_TARGET,X_OFS,0,0,User_Angle,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION) DSHO N 0 A_SetUserVar(User_Angle,User_Angle+ANGLE_TURN_2)
DSHO N 1 A_Warp(AAPTR_TARGET,X_OFS,0,0,User_Angle,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION) DSHO N 0 A_SetUserVar(User_Angle,User_Angle+ANGLE_TURN_2)
Spawn3B:
DSHO O 0 A_JumpIfInTargetInventory("BaseCustomFlag2",1,1)
Goto Spawn2B
DSHO O 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0)==0,"End")
DSHO O 0 A_JumpIfInTargetInventory("IsDead",1,"End")
DSHO O 0 A_JumpIfInTargetInventory("IsTheTerminator",1,"End")
DSHO O 0 A_SpawnItemEx("DarkShieldBlocker2",0,0,0,momx,momy,momz,0,SXF_ABSOLUTEMOMENTUM|SXF_NOCHECKPOSITION)
DSHO O 0 A_SpawnItemEx("Dark4ShieldDamager",0,0,0,momx,momy,momz,0,SXF_ABSOLUTEMOMENTUM|SXF_NOCHECKPOSITION)
DSHO O 1 A_Warp(AAPTR_TARGET,X_OFS,0,0,User_Angle,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION) DSHO O 0 A_SetUserVar(User_Angle,User_Angle+ANGLE_TURN_2)
DSHO O 1 A_Warp(AAPTR_TARGET,X_OFS,0,0,User_Angle,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION) DSHO O 0 A_SetUserVar(User_Angle,User_Angle+ANGLE_TURN_2)
Spawn3C:
DSHO P 0 A_JumpIfInTargetInventory("BaseCustomFlag2",1,1)
Goto Spawn2C
DSHO P 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0)==0,"End")
DSHO P 0 A_JumpIfInTargetInventory("IsDead",1,"End")
DSHO P 0 A_JumpIfInTargetInventory("IsTheTerminator",1,"End")
DSHO P 0 A_SpawnItemEx("DarkShieldBlocker2",0,0,0,momx,momy,momz,0,SXF_ABSOLUTEMOMENTUM|SXF_NOCHECKPOSITION)
DSHO P 0 A_SpawnItemEx("Dark4ShieldDamager",0,0,0,momx,momy,momz,0,SXF_ABSOLUTEMOMENTUM|SXF_NOCHECKPOSITION)
DSHO P 1 A_Warp(AAPTR_TARGET,X_OFS,0,0,User_Angle,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION) DSHO P 0 A_SetUserVar(User_Angle,User_Angle+ANGLE_TURN_2)
DSHO P 1 A_Warp(AAPTR_TARGET,X_OFS,0,0,User_Angle,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION) DSHO P 0 A_SetUserVar(User_Angle,User_Angle+ANGLE_TURN_2)
Goto Spawn3A
ShieldInvis:
TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0)==0,"End")
TNT1 A 0 A_JumpIfInTargetInventory("IsDead",1,"End")
TNT1 A 0 A_JumpIfInTargetInventory("IsTheTerminator",1,"End")
TNT1 A 1 A_Warp(AAPTR_TARGET,X_OFS,0,0,User_Angle,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
TNT1 AA 1 A_JumpIfInTargetInventory("Dark4ShieldCount",2,"Spawn2A")
loop
Pain:
TNT1 A 0 A_PlaySound("item/protoreflect")
stop
End:
TNT1 A 0
stop
}
}

actor Dark4Shield2 : Dark4Shield
{
States
{
Spawn:
TNT1 AA 0
TNT1 A 3 A_SetUserVar(User_Angle,180)
SpawnWait:
TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0)==0,"End")
TNT1 A 1 A_JumpIfInTargetInventory("DM4ShieldActivateFlag",1,"Spawn2A")
loop
}
}

actor Dark4ShieldDamager
{
species "Dark2ShieldType"
+THRUSPECIES
Projectile
Scale 2.5
Height 6
Radius 6
damagetype "Darkman4Alt"
Obituary "$OB_DARKMANFOUR3"
States
{
Spawn:
TNT1 A 0
TNT1 A 1 A_Explode(3, 45, 0)
stop
}
}

actor Dark4ShieldDamager2 : Dark4ShieldDamager
{
Obituary "$OB_DARKMANFOUR4"
States
{
Spawn:
TNT1 A 0
TNT1 A 1 A_Explode(4, 64, 0)
stop
}
}

actor DarkShieldShot
{
Translation "202:202=216:216"
PROJECTILE
+DONTREFLECT
+DONTBLAST
+RIPPER
+SKYEXPLODE
+THRUSPECIES
damagetype "Darkman4Alt"
Obituary "$OB_DARKMANFOUR4"
species "Dark2ShieldType"
Height 56
Radius 12
Damage (0)
Speed 30
scale 2.5
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode")
Spawn2:
DSHO N 0 A_SpawnItemEx("Dark4ShieldDamager2",0,0,0,momx,momy,momz,0,SXF_ABSOLUTEMOMENTUM|SXF_NOCHECKPOSITION)
DSHO N 1 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0)==0,"End") DSHO N 0 A_SpawnItemEx("DarkShield4Blocker",0,0,0,momx,momy,momz,0,SXF_ABSOLUTEMOMENTUM|SXF_NOCHECKPOSITION) 
DSHO N 1 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0)==0,"End") DSHO N 0 A_SpawnItemEx("DarkShield4Blocker",0,0,0,momx,momy,momz,0,SXF_ABSOLUTEMOMENTUM|SXF_NOCHECKPOSITION)
DSHO O 0 A_SpawnItemEx("Dark4ShieldDamager2",0,0,0,momx,momy,momz,0,SXF_ABSOLUTEMOMENTUM|SXF_NOCHECKPOSITION)
DSHO O 1 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0)==0,"End") DSHO O 0 A_SpawnItemEx("DarkShield4Blocker",0,0,0,momx,momy,momz,0,SXF_ABSOLUTEMOMENTUM|SXF_NOCHECKPOSITION)
DSHO O 1 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0)==0,"End") DSHO O 0 A_SpawnItemEx("DarkShield4Blocker",0,0,0,momx,momy,momz,0,SXF_ABSOLUTEMOMENTUM|SXF_NOCHECKPOSITION)
DSHO P 0 A_SpawnItemEx("Dark4ShieldDamager2",0,0,0,momx,momy,momz,0,SXF_ABSOLUTEMOMENTUM|SXF_NOCHECKPOSITION)
DSHO P 1 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0)==0,"End") DSHO P 0 A_SpawnItemEx("DarkShield4Blocker",0,0,0,momx,momy,momz,0,SXF_ABSOLUTEMOMENTUM|SXF_NOCHECKPOSITION)
DSHO P 1 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0)==0,"End") DSHO P 0 A_SpawnItemEx("DarkShield4Blocker",0,0,0,momx,momy,momz,0,SXF_ABSOLUTEMOMENTUM|SXF_NOCHECKPOSITION)
TNT1 A 0 A_GiveInventory("CutterFlag",1)
TNT1 A 0 A_JumpIfInventory("CutterFlag",6,1)
loop
Death:
TNT1 A 0 A_CustomMissile("DarkShieldShotReturn",0,0,0)
End:
TNT1 A 0
stop
}
}

actor DarkShieldShotReturn : DarkShieldShot
{
+MISSILE
+NOCLIP
const int SHIELD_RETURN_RADIUS = 64;
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode")
Spawn2:
DSHO N 0 A_FaceTarget DSHO N 0 A_JumpIfCloser(SHIELD_RETURN_RADIUS,"End") DSHO N 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0)==0,"Disappear")
DSHO N 0 A_SpawnItemEx("Dark4ShieldDamager2",0,0,0,momx,momy,momz,0,SXF_ABSOLUTEMOMENTUM|SXF_NOCHECKPOSITION)
DSHO N 1 ACS_NamedExecuteAlways("cbm_missileyank",0,52) DSHO N 0 A_SpawnItemEx("DarkShield4Blocker",0,0,0,momx,momy,momz,0,SXF_ABSOLUTEMOMENTUM|SXF_NOCHECKPOSITION)
DSHO N 1 ACS_NamedExecuteAlways("cbm_missileyank",0,52) DSHO N 0 A_SpawnItemEx("DarkShield4Blocker",0,0,0,momx,momy,momz,0,SXF_ABSOLUTEMOMENTUM|SXF_NOCHECKPOSITION)
DSHO O 0 A_FaceTarget DSHO O 0 A_JumpIfCloser(SHIELD_RETURN_RADIUS,"End") DSHO O 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0)==0,"Disappear")
DSHO O 0 A_SpawnItemEx("Dark4ShieldDamager2",0,0,0,momx,momy,momz,0,SXF_ABSOLUTEMOMENTUM|SXF_NOCHECKPOSITION)
DSHO O 1 ACS_NamedExecuteAlways("cbm_missileyank",0,52) DSHO O 0 A_SpawnItemEx("DarkShield4Blocker",0,0,0,momx,momy,momz,0,SXF_ABSOLUTEMOMENTUM|SXF_NOCHECKPOSITION)
DSHO O 1 ACS_NamedExecuteAlways("cbm_missileyank",0,52) DSHO O 0 A_SpawnItemEx("DarkShield4Blocker",0,0,0,momx,momy,momz,0,SXF_ABSOLUTEMOMENTUM|SXF_NOCHECKPOSITION)
DSHO P 0 A_FaceTarget DSHO P 0 A_JumpIfCloser(SHIELD_RETURN_RADIUS,"End") DSHO P 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0)==0,"Disappear")
DSHO P 0 A_SpawnItemEx("Dark4ShieldDamager2",0,0,0,momx,momy,momz,0,SXF_ABSOLUTEMOMENTUM|SXF_NOCHECKPOSITION)
DSHO P 1 ACS_NamedExecuteAlways("cbm_missileyank",0,52) DSHO P 0 A_SpawnItemEx("DarkShield4Blocker",0,0,0,momx,momy,momz,0,SXF_ABSOLUTEMOMENTUM|SXF_NOCHECKPOSITION)
DSHO P 1 ACS_NamedExecuteAlways("cbm_missileyank",0,52) DSHO P 0 A_SpawnItemEx("DarkShield4Blocker",0,0,0,momx,momy,momz,0,SXF_ABSOLUTEMOMENTUM|SXF_NOCHECKPOSITION)
DSHO P 0 A_CustomMissile("DarkShieldShotReturn",0,0,0)
stop
End:
TNT1 A 0 A_PlaySoundEx("weapon/adapterreturn","Voice")
TNT1 A 0 A_GiveToTarget("Dark4ShieldCount",1)
Disappear:
TNT1 A 1
stop
}
}


actor DarkShield4Blocker
{
PROJECTILE
-NOBLOCKMAP
+GHOST
+NOBLOOD
+DONTRIP
+SHOOTABLE
+NORADIUSDMG
+DONTREFLECT
+THRUSPECIES
Species "Dark2ShieldType"
health 99999
mass 99999
Height 64
Radius 18
Damage (0)
Speed 0
scale 2.5
painchance 256
States
{
Spawn:
TNT1 AA 0
TNT1 A 1
stop
Pain:
TNT1 A 0 A_Jump(256,"RepelFX1","RepelFX2","RepelFX3")
RepelFX3:
TNT1 AA 0 A_SpawnItemEx("Dark2Sparkle",0,0,random(0,64),random(1,3),0,random(0,-2),random(0,359))
RepelFX2:
TNT1 AA 0 A_SpawnItemEx("Dark2Sparkle",0,0,random(0,64),random(1,3),0,random(0,-2),random(0,359))
RepelFX1:
TNT1 AA 0 A_SpawnItemEx("Dark2Sparkle",0,0,random(0,64),random(1,3),0,random(0,-2),random(0,359))
TNT1 A 1 A_PlaySound("item/protoreflect")
stop
}
}


actor DarkAssaultShot : Dark4Shot
{
damagetype "Darkman4Ult"
Obituary "$OB_DARKMANFOUR5"
damage(10)
Speed 70
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode")
TNT1 A 1
TNT1 A 0 A_ChangeFlag("THRUGHOST",0)
DARS D 1 A_SpawnItemEx("Dark4ShotFX")
wait
}
}

actor Dark4ShotFX
{
scale 2.5
+CLIENTSIDEONLY
+NOINTERACTION
+DONTSPLASH
Damage (0)
height 0
radius 0
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode")
TNT1 A 2
DARS D 1 A_Fadeout(0.20)
wait
}
}

actor Dark4ShieldCount : Inventory
{
inventory.amount 1
inventory.maxamount 2
}

actor DarkScarf
{
PROJECTILE
+THRUACTORS
radius 4
height 4
scale 2.5
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode")
DSCF ABCDABCDABCDABCDABCDABCDABCDABCD 3 ThrustThingZ(0,1,0,1)
stop
}
}

actor DM4StartUpWhistle
{
PROJECTILE
+NOINTERACTION
+NOCLIP
Damage(0)
Height 1
Radius 1
Speed 0
scale 0.1
States
{
Spawn:
TNT1 A 0
TNT1 A 0 A_PlaySoundEx("misc/badwhistle","Body")
Spawn2:
TNT1 A 0 A_JumpIfInventory("CutterFlag",140,"End")
TNT1 A 1 A_Warp(AAPTR_TARGET,0,0,0,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
TNT1 A 0 A_GiveInventory("CutterFlag",1)
loop
End:
TNT1 A 0
stop
}
}

actor DM4ShieldActivateFlag : Powerup
{
Powerup.Duration 5
}