actor Shademan : VCBaseClass
{
Player.ScoreIcon "SHDEMUGS"
player.startitem "BaseFlagPack", 1
player.displayname "Shademan"
player.soundclass "Shademanc"
player.startitem "NoiseCrushBoss"
player.startitem "UltimateAttackItem6"
player.startitem "UltSoundWatcherSpawn6"
player.startitem "Base112Ammo", 112
player.startitem "BaseAltfireAmmo", 112
player.startitem "IsFromMM7"
player.startitem "NoHealthBar"
player.viewheight 54
player.forwardmove 0.8, 0.8
player.sidemove 0.78, 0.78
player.jumpz 14
States
{
Animation18:
Spawn:
SHDE I 0 A_TakeInventory("ShadeFlightSpeed")
SHDE I 1 A_JumpIf(z-floorz>0,"Jumping")
SHDE I 0 A_TakeInventory("BaseCustomFlag1")
SHDE I 0 A_TakeInventory("ShadeManAirLinger")
SHDE I 0 A_JumpIfInventory("ShadeManUltActive",1,"Spawn.VANPookin")
Spawn2:
SHDE A 0 A_JumpIfInventory("ShadeManUltActive",1,"Spawn2.VANPookin")
SHDE A 1 A_JumpIf(z-floorz>0,"Jumping")
SHDE A 0 A_TakeInventory("BaseCustomFlag1")
SHDE A 0 A_TakeInventory("ShadeManAirLinger")
Goto Spawn2
Spawn.VANPookin:
VNPK B 0 A_JumpIf(momx>0.01||momy>0.01||momx<-0.01||momy<-0.01,"See.VANPookin")
VNPK B 1 A_JumpIf(z-floorz>0,"Jumping.VANPookin")
Animation0:
Spawn2.VANPookin:
VNPK A 0 A_JumpIf(momx>0.01||momy>0.01||momx<-0.01||momy<-0.01,"See.VANPookin")
Animation21:
VNPK A 1 A_JumpIf(z-floorz>0,"Jumping.VANPookin")
Goto Spawn2.VANPookin

See:
SHDE I 0 A_JumpIfInventory("ShadeManUltActive",1,"See.VANPookin")
SHDE I 0 A_TakeInventory("BaseCustomFlag1") SHDE I 0 A_TakeInventory("ShadeManAirLinger")
SHDE IIIIIJJJJJKKKKKLLLLL 1 A_JumpIf(z-floorz>0,"Jumping")
Goto Spawn
ShadeManFlight:
SHDE B 0 A_PlaySound("weapon/shadewing",0,1)
SHDE BBBBCCCCDDDDDEEEEE 1 A_JumpIf(z-floorz<=0,"Spawn")
loop

See.VANPookin:
VNPK BBCCDDEEFFGG 1 A_JumpIf(z-floorz>0, "Jumping.VANPookin")
Goto Spawn.VANPookin

Animation0:
VNPK A 1 A_JumpIf(z-floorz<=0,"Animation21")
wait

Animation19:
Jumping:
SHDE B 0 A_JumpIfInventory("BaseCustomFlag1",1,"ShadeManFlight")
SHDE B 1 A_JumpIf(z-floorz<=0,"Spawn")
loop
Jumping.VANPookin:
VNPK BBCC 1 A_JumpIf(z-floorz<=0,"Spawn.VANPookin")
loop

Animation20:
SHDE S 25
goto Jumping

Missile:
SHDE FFF 1 A_JumpIf(z-floorz>0, "JumpingMissile")
Missile2:
SHDE GGGGG 1 A_JumpIf(z-floorz>0, "JumpingMissile2")
Goto Spawn+2
JumpingMissile:
SHDE TTT 1 A_JumpIf(z-floorz<=0, "Missile")
JumpingMissile2:
SHDE TTTTT 1 A_JumpIf(z-floorz<=0, "Missile2")
Goto Jumping

Animation1:
StoneStare:
SHDE MNMNMNMNM 1 A_JumpIf(z-floorz>0, "JumpingStoneStare")
StoneStare2:
SHDE NMNMNMNMN 1 A_JumpIf(z-floorz>0, "JumpingStoneStare2")
Goto Spawn+2
JumpingStoneStare:
SDE2 ABABABABA 1 A_JumpIf(z-floorz<=0, "StoneStare")
JumpingStoneStare2:
SDE2 BABABABAB 1 A_JumpIf(z-floorz<=0, "StoneStare2")
Goto Jumping

Animation2:
ShadeSwoop:
SHDE OOOOO 1
Goto Spawn+2

Animation3: ShadeDrainA: SHDE PPPPP 1
Animation4: ShadeDrainB: SHDE QQQQQ 1
Animation5: ShadeDrainC: SHDE RRRRR 1
Goto Spawn+2

Animation6: VANPookinFireStartA: VNPK HHH 1
Animation7: VANPookinFireStartB: VNPK III 1
Animation8: VANPookinFireStartC: VNPK JJJ 1
Animation9: VANPookinFirePhaseD: VNPK KKK 1
Goto Spawn.VANPookin+2

Animation10:
VANPookinFire:
VNPK LLLLLLLLLL 1
Goto Spawn.VANPookin+2

Animation11: VANPookinSpinA: VNPK MMM 1
Animation12: VANPookinSpinB: VNPK NNN 1
Animation13: VANPookinSpinC: VNPK OOO 1
Animation14: VANPookinSpinD: VNPK PPP 1
Animation15: VANPookinSpinE: VNPK QQQ 1
Animation16: VANPookinSpinF: VNPK RRR 1
Animation17: VANPookinSpinG: VNPK SSS 1
Goto Spawn.VANPookin+2

ClassPain:
SHDE H 0 A_JumpIfInventory("ShadeManUltActive",1,"ClassPain.VANPookin")
SHDE H 2 A_SpawnItem("PainFX",0,3)
SHDE H 0 A_JumpIfInventory("BaseCustomFlag1",1,"ShadeManFlight")
SHDE HHHHHHHHH 2 A_SpawnItem("PainFX",0,3)
Goto Spawn+1
ClassPain.VANPookin:
VNPK TTTTTTTTTT 2 A_SpawnItem("PainFX",0,3)
Goto Spawn.VANPookin+1
Death.WildCoil:
Death.WildCoil2:
Death.WildCoilGear:
Death.SpringMan:
Death.SpringManUlt:
TNT1 A 0 A_JumpIfInventory("ShadeManUltActive",1,"ClassDeath.VANPookin")
TNT1 A 0 A_SpawnItemEx("DeadRecoiledShadeMan",0,0,0,0,0,0,0,SXF_TRANSFERTRANSLATION)
NOFX A 20 ACS_ExecuteAlways(999,0,0)
NOFX A 1 A_CheckPlayerDone
wait
ClassDeath: 
TNT1 A 0 A_JumpIfInventory("ShadeManUltActive",1,"ClassDeath.VANPookin")
TNT1 A 0 A_SpawnItemEx("DeadShadeMan",0,0,0,0,0,0,0,SXF_TRANSFERTRANSLATION)
NOFX A 20 ACS_ExecuteAlways(999,0,0)
NOFX A 1 A_CheckPlayerDone
wait
ClassDeath.VANPookin:
TNT1 A 0 ACS_NamedExecute("Class_Music_Changer",0,0,2)
TNT1 A 0 A_SpawnItemEx("VANPookinDeath",0,0,0,0,0,0,0,1)
NOFX A 20 ACS_ExecuteAlways(999,0,0)
NOFX A 1 A_CheckPlayerDone
wait
WeaponGetM:
SHDE H 0 A_JumpIfInTargetInventory("NoiseCrushWepM",1,2)
SHDE H 0 A_GiveToTarget("WeaponGetter")
SHDE H 0 A_GiveToTarget("NoiseCrushWepM")
goto ClassDeath
}
}

actor DeadShadeMan : DeadFreezeMan
{
meleerange 7846
States
{
Spawn:
SHDE H 0
"####" "#" 0
goto loopit
}
}

actor DeadRecoiledShadeMan
{
PROJECTILE
-NOGRAVITY
+THRUACTORS
+BOUNCEONWALLS
+NOEXPLODEFLOOR
+BOUNCEONCEILINGS
+DONTBLAST
WallBounceFactor 0.0
Gravity 1.0
height 32
radius 32
scale 2.5
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode")
TNT1 A 0 A_Recoil(20)
TNT1 A 0 ThrustThingZ(0,45,0,1)
SHDE H 1 Thing_SetTranslation(0, 7454)
SHDE H 1 Thing_SetTranslation(0, 7846)
Spawn2:
SHDE H 1 A_CheckFloor("Death") TNT1 A 0 Thing_SetTranslation(0, 7454)
SHDE H 1 A_CheckFloor("Death") TNT1 A 0 Thing_SetTranslation(0, 7846)
loop
Death:
TNT1 A 0 A_PlaySoundEx("mm7/dead","Auto")
TNT1 A 0 A_SpawnItemEX("CriticalDeathSpawner",0,0,0,0,0,0,0,SXF_TRANSFERTRANSLATION)
Stop
}
}

Actor ShademanOPPleaseNerf : PowerProtection
{
Powerup.Duration 0x7FFFFFFF
DamageFactor "NoiseCrush1", 0.0
DamageFactor "NoiseCrush2", 0.0
}

Actor ShadeChargeThing : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_JumpIfInventory("ShadeManCharged",1,"Nope")
TNT1 A 0 A_JumpIfInventory("WeaponCharge",1,"Nope")
TNT1 A 0 A_JumpIf(CheckClass("Shademan"),"UltCheck")
TNT1 A 0 A_JumpIf(CheckClass("MegamanV"),"WeaponCheck")
TNT1 A 0 A_JumpIf(CheckClass("ProtomanV"),"WeaponCheck")
TNT1 A 0 A_JumpIf(CheckClass("BassV"),"WeaponCheck")
TNT1 A 0 A_JumpIf(CheckClass("Duo"),"WeaponCheck")
Goto Nope
UltCheck:
TNT1 A 0 A_JumpIfInventory("ShadeManUltActive",1,"Nope")
Goto Success
WeaponCheck: 
TNT1 A 0 A_JumpIfInventory("IsUsingNoiseCrush",1,"Success2")
Goto Nope 
Success:
TNT1 A 0 A_GiveInventory("ShadeManCharged",1)
Goto Nope
Success2:
TNT1 A 0 A_GiveInventory("WeaponCharge",1)
Goto Nope
Nope:
TNT1 A 0
Stop
}
}

actor ShadeFlightEndTrigger : Powerup
{
    powerup.duration 4
}

Actor NoiseCrushBoss : VCBaseWeapon
{
weapon.ammotype "Base112Ammo" weapon.ammotype2 "BaseAltfireAmmo" Obituary "$OB_SHADEMAN1"
const int DRAIN_THRUST = 10;
const int RECOIL = -1; const int RERAISE_THRUST = 8; const int LIFT_THRUST = 25;
const int SHADESWOOP_GRABBED_PITCH = 45; const int SHADESWOOP_GRABBED_DIST = 80;
States
{
Ready:
SHDW A 0 A_JumpIfInventory("BaseAltfireAmmo",28,"Ready.CanTF")
SHDW A 0 A_JumpIfInventory("ShadeManCharged",1,"Ready.Charged")
SHDW A 1 A_WeaponReady(WRF_NOPRIMARY*CallACS("VC_AmmoCheck",2,14)|WRF_NOSECONDARY*CallACS("VC_AmmoCheck",2,28)) SHDW A 0 A_JumpIfInventory("UltAttackFlag",1,"UltimateAttack")
SHDW A 1 A_WeaponReady(WRF_NOPRIMARY*CallACS("VC_AmmoCheck",2,14)|WRF_NOSECONDARY*CallACS("VC_AmmoCheck",2,28)) SHDW A 0 A_JumpIfInventory("UltAttackFlag",1,"UltimateAttack")
Goto GiveAmmo
Ready.CanTF:
SHDW A 0 A_JumpIfInventory("ShadeManCharged",1,"Ready.Charged.CanTF")
SHDW A 1 A_WeaponReady(WRF_NOPRIMARY*CallACS("VC_AmmoCheck",2,14)|WRF_NOSECONDARY*CallACS("VC_AmmoCheck",2,28)) SHDW A 0 A_JumpIfInventory("UltAttackFlag",1,"UltimateAttack") SHDW A 0 A_JumpIf(ACS_NamedExecuteWithResult("VC_CheckBtn",3)*ACS_NamedExecuteWithResult("VC_ShadeUser1Check")==3,"User1")
SHDW A 1 A_WeaponReady(WRF_NOPRIMARY*CallACS("VC_AmmoCheck",2,14)|WRF_NOSECONDARY*CallACS("VC_AmmoCheck",2,28)) SHDW A 0 A_JumpIfInventory("UltAttackFlag",1,"UltimateAttack") SHDW A 0 A_JumpIf(ACS_NamedExecuteWithResult("VC_CheckBtn",3)*ACS_NamedExecuteWithResult("VC_ShadeUser1Check")==3,"User1")
Goto GiveAmmo
Ready.Charged:
SHDW A 0 A_JumpIfInventory("BaseAltfireAmmo",28,"Ready.Charged.CanTF")
SHDW D 1 A_WeaponReady SHDW D 0 A_JumpIfInventory("UltAttackFlag",1,"UltimateAttack")
SHDW E 1 A_WeaponReady SHDW E 0 A_JumpIfInventory("UltAttackFlag",1,"UltimateAttack")
Goto GiveAmmo
Ready.Charged.CanTF:
SHDW D 1 A_WeaponReady SHDW D 0 A_JumpIfInventory("UltAttackFlag",1,"UltimateAttack") SHDW A 0 A_JumpIf(ACS_NamedExecuteWithResult("VC_CheckBtn",3)*ACS_NamedExecuteWithResult("VC_ShadeUser1Check")==3,"User1")
SHDW E 1 A_WeaponReady SHDW E 0 A_JumpIfInventory("UltAttackFlag",1,"UltimateAttack") SHDW A 0 A_JumpIf(ACS_NamedExecuteWithResult("VC_CheckBtn",3)*ACS_NamedExecuteWithResult("VC_ShadeUser1Check")==3,"User1")
Goto GiveAmmo
GiveAmmo:
SHDW A 0 A_JumpIfInventory("ShadeManCharged",1,"Ready") SHDW A 0 A_GiveInventory("Base112Ammo",1)
SHDW A 0 A_JumpIfInventory("BaseCustomFlag1",1,"Ready") SHDW A 0 A_GiveInventory("BaseAltfireAmmo",1)
Goto Ready
ReadyUlt:
TNT1 A 0 A_JumpIfInventory("VeryLongUltimateAmmo",1,1)
Goto UltEnd
VPKH A 1 A_GiveInventory("HalfDamageProtection")
VPKH A 0 A_JumpIf(ACS_NamedExecuteWithResult("VC_CheckBtn",4)==3,"GreenSpitHold")
VPKH A 0 A_JumpIfInventory("BaseAltfireAmmo",28,1)
Goto UltSkip
VPKH A 0 A_JumpIf(ACS_NamedExecuteWithResult("VC_CheckBtn",4)==5,"AltUlt")
VPKH A 0 A_JumpIf(ACS_NamedExecuteWithResult("VC_CheckBtn",3)==3,"RunawayPumpkinHold")
UltSkip:
VPKH A 0 A_GiveInventory("BaseAltfireAmmo",1)
Goto ReadyUlt

Deselect:
TNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Lower
SHDW A 1 A_Lower
Loop
Select:
TNT1 A 0 ACS_ExecuteAlways(998,0,7846)
TNT1 A 0 A_SpawnItemEx("ShadeManFlightWatcher")
TNT1 A 0 A_SpawnItemEx("NoiseCrushColorWatcher") 
TNT1 A 0 A_SpawnItemEx("NoiseCrushArmorWatcher")
TNT1 A 0 A_GiveInventory("ShademanOPPleaseNerf",1)
Select2:
TNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Raise
SHDW A 1 A_Raise
Loop

Fire:
SHDW A 0 A_GiveInventory("ShadeManMainPickUp",1)
SHDW BCBA 5
Goto Ready

GreenSpitHold:
VPKH B 0 A_PlaySoundEx("misc/door","Auto")
VPKH B 0 A_TakeInventory("HalfDamageProtection")
GreenSpitHoldB:
VPKH B 0 A_JumpIfInventory("Base112Ammo",37,"GreenSpitHold2")
VPKH B 0 A_JumpIfInventory("VeryLongUltimateAmmo",1,1)
Goto GreenSpitWeak
VPKH B 0 ACS_NamedExecuteWithResult("VC_SetState",6)
VPKH B 1 A_GiveInventory("Base112Ammo",1)
VPKH BB 1 A_JumpIf(ACS_NamedExecuteWithResult("VC_CheckBtn",4)==3,"GreenSpitHoldC")
Goto GreenSpitWeak
GreenSpitHoldC:
VPKH B 0 A_JumpIfInventory("Base112Ammo",37,"GreenSpitHold2")
VPKH B 0 A_JumpIfInventory("VeryLongUltimateAmmo",1,1)
Goto GreenSpitWeak
VPKH B 0 ACS_NamedExecuteWithResult("VC_SetState",6)
VPKH B 1 A_GiveInventory("Base112Ammo",2)
VPKH BB 1 A_JumpIf(ACS_NamedExecuteWithResult("VC_CheckBtn",4)==3,"GreenSpitHoldB")
Goto GreenSpitWeak
GreenSpitHold2:
VPKH C 0 A_PlaySoundEx("misc/door","Auto")
GreenSpitHold2B:
VPKH C 0 A_JumpIfInventory("Base112Ammo",74,"GreenSpitHold3")
VPKH C 0 A_JumpIfInventory("VeryLongUltimateAmmo",1,1)
Goto GreenSpitModerate
VPKH C 0 ACS_NamedExecuteWithResult("VC_SetState",7)
VPKH C 1 A_GiveInventory("Base112Ammo",1)
VPKH CC 1 A_JumpIf(ACS_NamedExecuteWithResult("VC_CheckBtn",4)==3,"GreenSpitHold2C")
Goto GreenSpitModerate
GreenSpitHold2C:
VPKH C 0 A_JumpIfInventory("Base112Ammo",74,"GreenSpitHold3")
VPKH C 0 A_JumpIfInventory("VeryLongUltimateAmmo",1,1)
Goto GreenSpitModerate
VPKH C 0 ACS_NamedExecuteWithResult("VC_SetState",7)
VPKH C 1 A_GiveInventory("Base112Ammo",2)
VPKH CC 1 A_JumpIf(ACS_NamedExecuteWithResult("VC_CheckBtn",4)==3,"GreenSpitHold2B")
Goto GreenSpitModerate
GreenSpitHold3:
VPKH D 0 A_PlaySoundEx("misc/door","Auto")
GreenSpitHold3B:
VPKH D 0 A_JumpIfInventory("Base112Ammo",112,"GreenSpitHold4")
VPKH D 0 A_JumpIfInventory("VeryLongUltimateAmmo",1,1)
Goto GreenSpitStrong
VPKH D 0 ACS_NamedExecuteWithResult("VC_SetState",8)
VPKH D 1 A_GiveInventory("Base112Ammo",1)
VPKH DD 1 A_JumpIf(ACS_NamedExecuteWithResult("VC_CheckBtn",4)==3,"GreenSpitHold3C")
Goto GreenSpitStrong
GreenSpitHold3C:
VPKH D 0 A_JumpIfInventory("Base112Ammo",112,"GreenSpitHold4")
VPKH D 0 A_JumpIfInventory("VeryLongUltimateAmmo",1,1)
Goto GreenSpitStrong
VPKH D 0 ACS_NamedExecuteWithResult("VC_SetState",8)
VPKH D 1 A_GiveInventory("Base112Ammo",2)
VPKH DD 1 A_JumpIf(ACS_NamedExecuteWithResult("VC_CheckBtn",4)==3,"GreenSpitHold3B")
Goto GreenSpitStrong
GreenSpitHold4:
VPKH E 0 A_PlaySoundEx("weapon/acidbarrier","Auto")
GreenSpitHold4B:
VPKH E 0 A_JumpIfInventory("VeryLongUltimateAmmo",1,1)
Goto GreenSpitStrongest
VPKH E 1 Offset(-1,32)ACS_NamedExecuteWithResult("VC_SetState",9)
VPKH E 1 Offset(-1,32)A_JumpIf(ACS_NamedExecuteWithResult("VC_CheckBtn",4)==3,"GreenSpitHold4C")
Goto GreenSpitStrongest
GreenSpitHold4C:
VPKH E 0 A_JumpIfInventory("VeryLongUltimateAmmo",1,1)
Goto GreenSpitStrongest
VPKH E 1 Offset(1,32)ACS_NamedExecuteWithResult("VC_SetState",9)
VPKH E 1 Offset(1,32)A_JumpIf(ACS_NamedExecuteWithResult("VC_CheckBtn",4)==3,"GreenSpitHold4B")
Goto GreenSpitStrongest
GreenSpitWeak:
VPKH E 0 A_WeaponReady(WRF_NOFIRE)
VPKH E 0 ACS_NamedExecuteWithResult("VC_SetState",10)
VPKH E 0 A_PlaySoundEx("weapon/pshot","SoundSlot1")
VPKH E 0 A_PlaySoundEx("weapon/oilshot","SoundSlot2")
VPKH E 0 A_TakeInventory("Base112Ammo",112)
VPKH E 0 A_FireCustomMissile("GreenSpitRM",0,0,0,14)
VPKH E 0 A_FireCustomMissile("GreenSpitRM",10,0,0,14)
VPKH E 0 A_FireCustomMissile("GreenSpitRM",-10,0,0,14)
Goto EndMainUlt
GreenSpitModerate:
VPKH E 0 A_WeaponReady(WRF_NOFIRE)
VPKH E 0 ACS_NamedExecuteWithResult("VC_SetState",10)
VPKH E 0 A_PlaySoundEx("weapon/pshot","SoundSlot1")
VPKH E 0 A_PlaySoundEx("weapon/oilshot","SoundSlot2")
VPKH E 0 A_TakeInventory("Base112Ammo",112)
VPKH E 0 A_FireCustomMissile("GreenSpit2RM",0,0,0,14)
Goto EndMainUlt
GreenSpitStrong:
VPKH E 0 A_WeaponReady(WRF_NOFIRE)
VPKH E 0 ACS_NamedExecuteWithResult("VC_SetState",10)
VPKH E 0 A_PlaySoundEx("weapon/pshot","SoundSlot1")
VPKH E 0 A_PlaySoundEx("weapon/oilshot","SoundSlot2")
VPKH E 0 A_TakeInventory("Base112Ammo",7)
VPKH E 4 A_FireCustomMissile("GreenSpit3RM",0,0,0,14)
VPKH E 0 A_JumpIfInventory("Base112Ammo",7,"GreenSpitStrong")
Goto EndMainUlt
GreenSpitStrongest:
VPKH E 0 A_WeaponReady(WRF_NOFIRE)
VPKH E 0 ACS_NamedExecuteWithResult("VC_SetState",10)
VPKH E 0 A_PlaySoundEx("weapon/pshot","SoundSlot1")
VPKH E 0 A_PlaySoundEx("weapon/oilshot","SoundSlot2")
VPKH E 0 A_TakeInventory("Base112Ammo",22)
VPKH E 7 A_FireCustomMissile("BubbleBatRM",0,0,0,14)
VPKH E 0 A_JumpIfInventory("Base112Ammo",22,"GreenSpitStrongest")
EndMainUlt:
VPKH EDCB 2 A_TakeInventory("Base112Ammo",112)
Goto ReadyUlt

Altfire:
SHDW A 0 A_JumpIfInventory("NoAltfire",1,"Ready")
SHDW A 0 A_JumpIfInventory("ShadeManCharged",1,"Fire")
SHDW A 0 A_JumpIfInventory("BaseCustomFlag1",1,"ShadeSwoop")
SHDW A 0 ACS_NamedExecuteWithResult("VC_SetState",1)
SHDW A 0 A_PlaySoundEx("weapon/SaturnAbsorbShot","Body")
SHDW A 0 A_TakeInventory("Base112Ammo",28)
SHDW A 0 A_FireCustomMissile("StoneStare",0,0,0,10)
SHDW A 1 Offset(4,36)
SHDW A 1 Offset(8,40)
SHDW A 1 Offset(12,44)
SHDW A 1 Offset(16,48)
SHDW A 1 Offset(20,52)
SHDW A 1 Offset(24,56)
SHDW A 15 Offset(28,60)
SHDW A 1 Offset(24,56)
SHDW A 1 Offset(20,52)
SHDW A 1 Offset(16,48)
SHDW A 1 Offset(12,44)
SHDW A 1 Offset(8,40)
SHDW A 1 Offset(4,36)
Goto Ready

ShadeSwoop:
SHDW A 0 A_JumpIfInventory("Base112Ammo",32,1)
Goto Ready
SHDW F 0 A_TakeInventory("ShadeFlightSpeed",1)
SHDW F 0 A_GiveInventory("ShadeSwooping")
SHDW F 1 OffSet(0,70)A_Stop SHDW F 0 ACS_NamedExecuteWithResult("VC_SetState",2) SHDW A 0 A_TakeInventory("Base112Ammo",8)
SHDW F 1 OffSet(0,70)A_Stop SHDW F 0 ACS_NamedExecuteWithResult("VC_SetState",2) SHDW A 0 A_TakeInventory("Base112Ammo",8)
SHDW F 1 OffSet(0,36)A_Stop SHDW F 0 ACS_NamedExecuteWithResult("VC_SetState",2) SHDW A 0 A_TakeInventory("Base112Ammo",8)
SHDW F 1 OffSet(0,36)A_Stop SHDW F 0 ACS_NamedExecuteWithResult("VC_SetState",2) SHDW A 0 A_TakeInventory("Base112Ammo",8)
SHDW F 0 A_PlaySoundEx("weapon/shadedive","Body")
Swooping:
SHDW F 0 A_JumpIfInventory("CutterFlag",105,"SwoopEnd")
SHDW F 0 A_GiveInventory("ShadeSwoopMovement")//SHDW F 0 A_Recoil(-3)
//SHDW F 0 ThrustThingZ(0,6,1,1)
SHDW F 0 ACS_NamedExecuteWithResult("VC_SetState",2)
SHDW F 0 A_JumpIfInventory("SuplexID",1,"SwoopSuplex")
SHDW F 0 A_SpawnItemEx("ShadeGrabberCheck",0,0,0,momx*1.05,momy*1.05,momz-1,0,8,0)
SHDW F 1 OffSet(0,2)A_JumpIf(floorz-z==0,"SwoopEnd")
SHDW F 0 A_GiveInventory("CutterFlag",1)
loop
SwoopSuplex:
SHDW FFF 1 A_changeVelocity(0,0,0,CVF_RELATIVE|CVF_REPLACE)
SHDW F 0 SetPlayerProperty(0,1,3)
SHDW F 0 A_TakeInventory("ShadeSwooping")
SHDW F 0 A_TakeInventory("CutterFlag",999)
SHDW F 0 A_GiveInventory("ShadeDraining",1)
SHDW F 0 A_GiveInventory("TempPitProtect_P")
SHDW F 0 A_GiveInventory("ShadeDrainSpeed",1)
SHDW F 0 A_GiveInventory("IsPerformingSuplex")
SHDW F 0 A_GiveInventory("HalfHalfDamageProtection")
SHDW F 0 ACS_NamedExecuteAlways("cbm_ZangiefStartGrab",0,CallACS("cbm_ZangiefCountInv",2)+999)
SwoopSuplexHold:
SHDW F 0 A_SpawnItemEx("ShadeDrainHitBox",40,0,-16,momx*1.05,momy*1.05,momz-1,0,8,0)
SHDW F 0 A_GiveInventory("CutterFlag",1)
SHDW F 0 A_JumpIfInventory("CutterFlag",6,"SuplexEscape")
SHDW F 1 OffSet(0,19)A_Jumpif(CallACS("cbm_ZangiefGrab",SHADESWOOP_GRABBED_PITCH,angle*256/360,SHADESWOOP_GRABBED_DIST)==0,"SuplexEscape") SHDW F 0 ACS_NamedExecuteWithResult("VC_SetState",3)SHDW F 0 ThrustThingZ(0,DRAIN_THRUST,0,0)
SHDW F 1 OffSet(0,19)A_Jumpif(CallACS("cbm_ZangiefGrab",SHADESWOOP_GRABBED_PITCH,angle*256/360,SHADESWOOP_GRABBED_DIST)==0,"SuplexEscape") SHDW F 0 ACS_NamedExecuteWithResult("VC_SetState",3)SHDW F 0 ThrustThingZ(0,DRAIN_THRUST,0,0)
SHDW F 1 OffSet(0,19)A_Jumpif(CallACS("cbm_ZangiefGrab",SHADESWOOP_GRABBED_PITCH,angle*256/360,SHADESWOOP_GRABBED_DIST)==0,"SuplexEscape") SHDW F 0 ACS_NamedExecuteWithResult("VC_SetState",3)SHDW F 0 ThrustThingZ(0,DRAIN_THRUST,0,0)
SHDW F 1 OffSet(0,19)A_Jumpif(CallACS("cbm_ZangiefGrab",SHADESWOOP_GRABBED_PITCH,angle*256/360,SHADESWOOP_GRABBED_DIST)==0,"SuplexEscape") SHDW F 0 ACS_NamedExecuteWithResult("VC_SetState",3)SHDW F 0 ThrustThingZ(0,DRAIN_THRUST,0,0)
SHDW F 1 OffSet(0,19)A_Jumpif(CallACS("cbm_ZangiefGrab",SHADESWOOP_GRABBED_PITCH,angle*256/360,SHADESWOOP_GRABBED_DIST)==0,"SuplexEscape") SHDW F 0 ACS_NamedExecuteWithResult("VC_SetState",4)SHDW F 0 ThrustThingZ(0,DRAIN_THRUST,0,0)
SHDW F 1 OffSet(0,19)A_Jumpif(CallACS("cbm_ZangiefGrab",SHADESWOOP_GRABBED_PITCH,angle*256/360,SHADESWOOP_GRABBED_DIST)==0,"SuplexEscape") SHDW F 0 ACS_NamedExecuteWithResult("VC_SetState",4)SHDW F 0 ThrustThingZ(0,DRAIN_THRUST,0,0)
SHDW F 1 OffSet(0,19)A_Jumpif(CallACS("cbm_ZangiefGrab",SHADESWOOP_GRABBED_PITCH,angle*256/360,SHADESWOOP_GRABBED_DIST)==0,"SuplexEscape") SHDW F 0 ACS_NamedExecuteWithResult("VC_SetState",4)SHDW F 0 ThrustThingZ(0,DRAIN_THRUST,0,0)
SHDW F 1 OffSet(0,19)A_Jumpif(CallACS("cbm_ZangiefGrab",SHADESWOOP_GRABBED_PITCH,angle*256/360,SHADESWOOP_GRABBED_DIST)==0,"SuplexEscape") SHDW F 0 ACS_NamedExecuteWithResult("VC_SetState",4)SHDW F 0 ThrustThingZ(0,DRAIN_THRUST,0,0)
SHDW F 1 OffSet(0,19)A_Jumpif(CallACS("cbm_ZangiefGrab",SHADESWOOP_GRABBED_PITCH,angle*256/360,SHADESWOOP_GRABBED_DIST)==0,"SuplexEscape") SHDW F 0 ACS_NamedExecuteWithResult("VC_SetState",5)SHDW F 0 ThrustThingZ(0,DRAIN_THRUST,0,0)
SHDW F 1 OffSet(0,19)A_Jumpif(CallACS("cbm_ZangiefGrab",SHADESWOOP_GRABBED_PITCH,angle*256/360,SHADESWOOP_GRABBED_DIST)==0,"SuplexEscape") SHDW F 0 ACS_NamedExecuteWithResult("VC_SetState",5)SHDW F 0 ThrustThingZ(0,DRAIN_THRUST,0,0)
SHDW F 1 OffSet(0,19)A_Jumpif(CallACS("cbm_ZangiefGrab",SHADESWOOP_GRABBED_PITCH,angle*256/360,SHADESWOOP_GRABBED_DIST)==0,"SuplexEscape") SHDW F 0 ACS_NamedExecuteWithResult("VC_SetState",5)SHDW F 0 ThrustThingZ(0,DRAIN_THRUST,0,0)
SHDW F 1 OffSet(0,19)A_Jumpif(CallACS("cbm_ZangiefGrab",SHADESWOOP_GRABBED_PITCH,angle*256/360,SHADESWOOP_GRABBED_DIST)==0,"SuplexEscape") SHDW F 0 ACS_NamedExecuteWithResult("VC_SetState",5)SHDW F 0 ThrustThingZ(0,DRAIN_THRUST,0,0)
SHDW F 1 OffSet(0,19)A_Jumpif(CallACS("cbm_ZangiefGrab",SHADESWOOP_GRABBED_PITCH,angle*256/360,SHADESWOOP_GRABBED_DIST)==0,"SuplexEscape") SHDW F 0 ACS_NamedExecuteWithResult("VC_SetState",5)SHDW F 0 ThrustThingZ(0,DRAIN_THRUST,0,0)
SHDW F 1 OffSet(0,19)A_Jumpif(CallACS("cbm_ZangiefGrab",SHADESWOOP_GRABBED_PITCH,angle*256/360,SHADESWOOP_GRABBED_DIST)==0,"SuplexEscape") SHDW F 0 ACS_NamedExecuteWithResult("VC_SetState",4)SHDW F 0 ThrustThingZ(0,DRAIN_THRUST,0,0)
SHDW F 1 OffSet(0,19)A_Jumpif(CallACS("cbm_ZangiefGrab",SHADESWOOP_GRABBED_PITCH,angle*256/360,SHADESWOOP_GRABBED_DIST)==0,"SuplexEscape") SHDW F 0 ACS_NamedExecuteWithResult("VC_SetState",4)SHDW F 0 ThrustThingZ(0,DRAIN_THRUST,0,0)
SHDW F 1 OffSet(0,19)A_Jumpif(CallACS("cbm_ZangiefGrab",SHADESWOOP_GRABBED_PITCH,angle*256/360,SHADESWOOP_GRABBED_DIST)==0,"SuplexEscape") SHDW F 0 ACS_NamedExecuteWithResult("VC_SetState",4)SHDW F 0 ThrustThingZ(0,DRAIN_THRUST,0,0)
SHDW F 1 OffSet(0,19)A_Jumpif(CallACS("cbm_ZangiefGrab",SHADESWOOP_GRABBED_PITCH,angle*256/360,SHADESWOOP_GRABBED_DIST)==0,"SuplexEscape") SHDW F 0 ACS_NamedExecuteWithResult("VC_SetState",4)SHDW F 0 ThrustThingZ(0,DRAIN_THRUST,0,0)
SHDW F 1 OffSet(0,19)A_Jumpif(CallACS("cbm_ZangiefGrab",SHADESWOOP_GRABBED_PITCH,angle*256/360,SHADESWOOP_GRABBED_DIST)==0,"SuplexEscape") SHDW F 0 ACS_NamedExecuteWithResult("VC_SetState",4)SHDW F 0 ThrustThingZ(0,DRAIN_THRUST,0,0)
loop
SwoopEnd:
SHDW F 1 A_SpawnItemEx("ShadeGrabberCheck",40,0,-16,momx*1.05,momy*1.05,momz-1,0,8,0) SHDW F 0 A_Recoil(RECOIL) SHDW F 0 A_JumpIfInventory("SuplexID",1,"SwoopSuplex") SHDW F 0 ACS_NamedExecuteWithResult("VC_SetState",2)
SHDW F 1 A_SpawnItemEx("ShadeGrabberCheck",40,0,-16,momx*1.05,momy*1.05,momz-1,0,8,0) SHDW F 0 A_Recoil(RECOIL) SHDW F 0 A_JumpIfInventory("SuplexID",1,"SwoopSuplex") SHDW F 0 ACS_NamedExecuteWithResult("VC_SetState",2)
SHDW F 1 A_SpawnItemEx("ShadeGrabberCheck",40,0,-16,momx*1.05,momy*1.05,momz-1,0,8,0) SHDW F 0 A_Recoil(RECOIL) SHDW F 0 A_JumpIfInventory("SuplexID",1,"SwoopSuplex") SHDW F 0 ACS_NamedExecuteWithResult("VC_SetState",2)
SHDW F 1 A_SpawnItemEx("ShadeGrabberCheck",40,0,-16,momx*1.05,momy*1.05,momz-1,0,8,0) SHDW F 0 A_Recoil(RECOIL) SHDW F 0 A_JumpIfInventory("SuplexID",1,"SwoopSuplex") SHDW F 0 ACS_NamedExecuteWithResult("VC_SetState",2)
SHDW F 1 A_SpawnItemEx("ShadeGrabberCheck",40,0,-16,momx*1.05,momy*1.05,momz-1,0,8,0) SHDW F 0 A_Recoil(RECOIL) SHDW F 0 A_JumpIfInventory("SuplexID",1,"SwoopSuplex") SHDW F 0 ACS_NamedExecuteWithResult("VC_SetState",2)
SHDW F 1 A_SpawnItemEx("ShadeGrabberCheck",40,0,-16,momx*1.05,momy*1.05,momz-1,0,8,0) SHDW F 0 A_Recoil(RECOIL) SHDW F 0 A_JumpIfInventory("SuplexID",1,"SwoopSuplex")
SHDW FF 0 A_TakeInventory("CutterFlag")
SHDW F 0 ACS_NamedExecuteWithResult("VC_SetState",20)
ReraiseHold:
SHDW F 0 A_JumpIfInventory("CutterFlag",15,"ReraiseEnd")
SHDW F 1 A_GiveInventory("CutterFlag",1)
SHDW F 0 A_Recoil(RECOIL)
SHDW F 0 ThrustThingZ(0,RERAISE_THRUST,0,1)
SHDW F 0 A_JumpIf(z-floorz>250, "ReraiseEnd")
loop
ReraiseEnd:
SHDW F 2 OffSet(0,18)A_Recoil(RECOIL)
SHDW F 2 OffSet(0,34)A_Recoil(RECOIL)
SHDW F 2 OffSet(0,50)A_Recoil(RECOIL)
SHDW F 2 OffSet(0,66)A_Recoil(RECOIL)
SHDW F 2 OffSet(0,82)A_Recoil(RECOIL)
Goto FlightEnd
SuplexEscape:
SHDW F 0 ThrustThingZ(0,50,0,1)
SHDW F 0 SetPlayerProperty(0,0,3)
SHDW F 0 A_TakeInventory("SuplexID",999)
SHDW F 0 A_TakeInventory("ShadeDraining",1)
SHDW F 0 A_TakeInventory("ZangiefAngle",255)
SHDW F 0 A_TakeInventory("TempPitProtect_P")
SHDW F 0 A_TakeInventory("ShadeDrainSpeed",1)
SHDW F 0 A_GiveInventory("ShadeGrabCancel",1)
SHDW F 0 A_TakeInventory("HalfHalfDamageProtection")
SHDW F 0 A_GiveInventory("ShadeFlightEndTrigger",1)
FlightEnd:
SHDW A 0 A_GiveInventory("ShadeFlightSpeed",1)
SHDW A 0 A_TakeInventory("CutterFlag",999)
SHDW A 1 OffSet(110,54)A_GiveInventory("ShadeReleaseConfirm",1)
SHDW A 2 OffSet(110,54)A_SpawnItemEx("ReSolidifier")
SHDW A 2 OffSet(60,40)A_TakeInventory("ShadeSwooping",999)
SHDW A 2 OffSet(22,34)A_TakeInventory("IsPerformingSuplex",999)
SHDW A 0 A_JumpIfInventory("BaseAltfireAmmo",1,1)
Goto EndAlt
SHDW AAA 0 A_GiveInventory("BaseCustomFlag1",1)
EndAlt:
SHDW A 20 A_WeaponReady(WRF_NOFIRE)
Goto Ready

AltUlt:
VPKH A 0 A_JumpIfInventory("NoAltfire",1,"ReadyUlt")
VPKH A 0 A_GiveInventory("VANPookinAltThirdOn")
VPKH A 0 A_JumpIf(floorz-z==0,"GreenFountainHold")
Goto PumpkinSlam
GreenFountainHold:
VPKH B 0 A_TakeInventory("HalfDamageProtection")
VPKH B 0 A_PlaySoundEx("misc/door","Auto")
VPKH BBBBBBBBBBBB 1 ACS_NamedExecuteWithResult("VC_SetState",6)
VPKH C 0 A_PlaySoundEx("misc/door","Auto")
VPKH CCCCCCCCCCCC 1 ACS_NamedExecuteWithResult("VC_SetState",7)
VPKH D 0 A_PlaySoundEx("misc/door","Auto")
VPKH DDDDDDDDDDDD 1 ACS_NamedExecuteWithResult("VC_SetState",8)
GreenFountainHoldFire:
VPKH E 0 A_JumpIfInventory("VeryLongUltimateAmmo",1,1)
Goto EndAltUlt
VPKH E 0 A_JumpIfInventory("BaseAltfireAmmo",1,1)
Goto EndAltUlt
VPKH E 0 A_TakeInventory("BaseAltfireAmmo",1)
VPKH E 0 A_PlaySoundEx("weapon/oilshot","SoundSlot1")
VPKH EE 1 Offset(-1,32)ACS_NamedExecuteWithResult("VC_SetState",11)
VPKH EEEEE 0 A_SpawnItemEx("GreenSpit4RM",16,0,40,20,0,Random(5,10),Random(0,359))
VPKH EE 1 Offset(-1,32)A_JumpIf(ACS_NamedExecuteWithResult("VC_CheckBtn",4)==5,"GreenFountainHoldFireB")
Goto EndAltUlt
GreenFountainHoldFireB:
VPKH E 0 A_JumpIfInventory("VeryLongUltimateAmmo",1,1)
Goto EndAltUlt
VPKH E 0 A_JumpIfInventory("BaseAltfireAmmo",1,1)
Goto EndAltUlt
VPKH E 0 A_TakeInventory("BaseAltfireAmmo",1)
VPKH E 0 A_PlaySoundEx("weapon/oilshot","SoundSlot1")
VPKH EE 1 Offset(1,32)ACS_NamedExecuteWithResult("VC_SetState",12)
VPKH EEEEE 0 A_SpawnItemEx("GreenSpit4RM",16,0,40,20,0,Random(5,10),Random(0,359))
VPKH EE 1 Offset(1,32)A_JumpIf(ACS_NamedExecuteWithResult("VC_CheckBtn",4)==5,"GreenFountainHoldFireC")
Goto EndAltUlt
GreenFountainHoldFireC:
VPKH E 0 A_JumpIfInventory("VeryLongUltimateAmmo",1,1)
Goto EndAltUlt
VPKH E 0 A_JumpIfInventory("BaseAltfireAmmo",1,1)
Goto EndAltUlt
VPKH E 0 A_TakeInventory("BaseAltfireAmmo",1)
VPKH E 0 A_PlaySoundEx("weapon/oilshot","SoundSlot1")
VPKH EE 1 Offset(-1,32)ACS_NamedExecuteWithResult("VC_SetState",13)
VPKH EEEEE 0 A_SpawnItemEx("GreenSpit4RM",16,0,40,20,0,Random(5,10),Random(0,359))
VPKH EE 1 Offset(-1,32)A_JumpIf(ACS_NamedExecuteWithResult("VC_CheckBtn",4)==5,"GreenFountainHoldFireD")
Goto EndAltUlt
GreenFountainHoldFireD:
VPKH E 0 A_JumpIfInventory("VeryLongUltimateAmmo",1,1)
Goto EndAltUlt
VPKH E 0 A_JumpIfInventory("BaseAltfireAmmo",1,1)
Goto EndAltUlt
VPKH E 0 A_TakeInventory("BaseAltfireAmmo",1)
VPKH E 0 A_PlaySoundEx("weapon/oilshot","SoundSlot1")
VPKH EE 1 Offset(1,32)ACS_NamedExecuteWithResult("VC_SetState",14)
VPKH EEEEE 0 A_SpawnItemEx("GreenSpit4RM",16,0,40,20,0,Random(5,10),Random(0,359))
VPKH EE 1 Offset(1,32)A_JumpIf(ACS_NamedExecuteWithResult("VC_CheckBtn",4)==5,"GreenFountainHoldFireE")
Goto EndAltUlt
GreenFountainHoldFireE:
VPKH E 0 A_JumpIfInventory("VeryLongUltimateAmmo",1,1)
Goto EndAltUlt
VPKH E 0 A_JumpIfInventory("BaseAltfireAmmo",1,1)
Goto EndAltUlt
VPKH E 0 A_TakeInventory("BaseAltfireAmmo",1)
VPKH E 0 A_PlaySoundEx("weapon/oilshot","SoundSlot1")
VPKH EE 1 Offset(-1,32)ACS_NamedExecuteWithResult("VC_SetState",15)
VPKH EEEEE 0 A_SpawnItemEx("GreenSpit4RM",16,0,40,20,0,Random(5,10),Random(0,359))
VPKH EE 1 Offset(-1,32)A_JumpIf(ACS_NamedExecuteWithResult("VC_CheckBtn",4)==5,"GreenFountainHoldFireF")
Goto EndAltUlt
GreenFountainHoldFireF:
VPKH E 0 A_JumpIfInventory("VeryLongUltimateAmmo",1,1)
Goto EndAltUlt
VPKH E 0 A_JumpIfInventory("BaseAltfireAmmo",1,1)
Goto EndAltUlt
VPKH E 0 A_TakeInventory("BaseAltfireAmmo",1)
VPKH E 0 A_PlaySoundEx("weapon/oilshot","SoundSlot1")
VPKH EE 1 Offset(1,32)ACS_NamedExecuteWithResult("VC_SetState",16)
VPKH EEEEE 0 A_SpawnItemEx("GreenSpit4RM",16,0,40,20,0,Random(5,10),Random(0,359))
VPKH EE 1 Offset(1,32)A_JumpIf(ACS_NamedExecuteWithResult("VC_CheckBtn",4)==5,"GreenFountainHoldFire")
Goto EndAltUlt
GreenFountainHoldFireG:
VPKH E 0 A_JumpIfInventory("VeryLongUltimateAmmo",1,1)
Goto EndAltUlt
VPKH E 0 A_JumpIfInventory("BaseAltfireAmmo",1,1)
Goto EndAltUlt
VPKH E 0 A_TakeInventory("BaseAltfireAmmo",1)
VPKH E 0 A_PlaySoundEx("weapon/oilshot","SoundSlot1")
VPKH EE 1 Offset(0,32)ACS_NamedExecuteWithResult("VC_SetState",17)
VPKH EEEEE 0 A_SpawnItemEx("GreenSpit4RM",16,0,40,20,0,Random(5,10),Random(0,359))
VPKH EE 1 Offset(0,32)A_JumpIf(ACS_NamedExecuteWithResult("VC_CheckBtn",4)==5,"GreenFountainHoldFire")
EndAltUlt:
VPKH A 0 A_TakeInventory("CutterFlag",999)
VPKH A 0 A_TakeInventory("VANPookinAltThirdOn")
VPKH A 0 ACS_NamedExecuteWithResult("VC_SetState",0)
VPKH EDCB 1
VPKH A 1 A_Jump(256,"ReadyUlt")
wait

PumpkinSlam:
VPKH A 0 ThrustThingZ(0,-60,0,0)
VPKH A 0 ACS_NamedExecuteWithResult("VC_SetState",0)
VPKH A 0 A_SpawnItemEx("PumpkinSlamHitBox",0,0,0,momx,momy,momz)
VPKH A 1 A_JumpIf(floorz-z==0,1)
loop
VPKH A 0 A_Quake(3,35,0,300)
VPKH A 0 A_PlaySoundEx("weapon/GutsmanQuake", "Body")
VPKH A 0 A_SpawnItemEx("ConcreteShockwaveRadius")
VPKH A 0 A_SpawnItemEx("VANPookinQuakeRadius")
VPKH A 0 A_SpawnItemEx("VANPookinCrushDamager",0,0,32)
VPKH A 1 Offset(0,38)A_stop
VPKH A 1 Offset(0,26)A_stop
VPKH A 1 Offset(0,38)A_stop
VPKH A 1 Offset(0,26)A_stop
VPKH A 1 Offset(0,38)A_stop
VPKH A 1 Offset(0,27)A_stop
VPKH A 1 Offset(0,37)A_stop
VPKH A 1 Offset(0,27)A_stop
VPKH A 1 Offset(0,37)A_stop
VPKH A 1 Offset(0,27)A_stop
VPKH A 1 Offset(0,36)A_stop
VPKH A 1 Offset(0,28)A_stop
VPKH A 1 Offset(0,36)A_stop
VPKH A 1 Offset(0,28)A_stop
VPKH A 1 Offset(0,36)A_stop
VPKH A 1 Offset(0,29)A_stop
VPKH A 1 Offset(0,35)A_stop
VPKH A 1 Offset(0,29)A_stop
VPKH A 1 Offset(0,35)A_stop
VPKH A 1 Offset(0,29)A_stop
VPKH A 1 Offset(0,34)A_stop
VPKH A 1 Offset(0,30)A_stop
VPKH A 1 Offset(0,34)A_stop
VPKH A 1 Offset(0,30)A_stop
VPKH A 1 Offset(0,33)A_stop
VPKH A 1 Offset(0,31)A_stop
VPKH A 1 Offset(0,33)A_stop
VPKH A 1 Offset(0,31)A_stop
VPKH A 1 Offset(0,33)A_stop
VPKH A 1 Offset(0,31)A_stop
VPKH A 1 A_stop
VPKH A 1 A_stop
VPKH A 1 A_stop
VPKH A 1 A_stop
VPKH A 1 A_stop
VPKH A 0 A_TakeInventory("CutterFlag",999)
VPKH A 0 A_TakeInventory("VANPookinAltThirdOn")
VPKH A 0 ACS_NamedExecuteWithResult("VC_SetState",0)
Goto ReadyUlt

User1:
SHDW A 0 A_JumpIfInventory("BaseCustomFlag1",1,"GainHeight")
SHDW A 0 A_GiveInventory("ShadeFlightSpeed",1)
SHDW A 0 A_JumpIf(z-floorz>8,"GiveFlight3")
SHDW A 0 ThrustThingZ(0,80,0,0)
SHDW A 0 A_SpawnItemEx("JupiterFlightGroundWind")
SHDW A 0 A_PlaySoundEx("weapon/superboost","Weapon")
SHDW A 0 A_JumpIfInventory("ShadeManCharged",1,"User1Start2")
SHDW AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 1 Offset(0,36)A_JumpIf(momz<0,"GiveFlight")
GiveFlight:
SHDW A 1 Offset(0,36)A_GiveInventory("BaseCustomFlag1")
SHDW A 1 Offset(0,40)
SHDW A 1 Offset(0,40)
SHDW A 1 Offset(0,36)
Goto Ready
User1Start2:
SHDW DEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDED 1 Offset(0,36)A_JumpIf(momz<0,"GiveFlight2")
GiveFlight2:
SHDW D 1 Offset(0,36)A_GiveInventory("BaseCustomFlag1")
SHDW E 1 Offset(0,40)
SHDW D 1 Offset(0,40)
SHDW E 1 Offset(0,36)
Goto Ready

GiveFlight3:
SHDW A 0 A_JumpIfInventory("ShadeManCharged",1,"GiveFlight3B")
SHDW A 1 Offset(0,36)A_GiveInventory("BaseCustomFlag1")
SHDW A 1 Offset(0,40)
SHDW A 1 Offset(0,40)
SHDW A 1 Offset(0,36)
Goto Ready
GiveFlight3B:
SHDW D 1 Offset(0,36)A_GiveInventory("BaseCustomFlag1")
SHDW E 1 Offset(0,40)
SHDW D 1 Offset(0,40)
SHDW E 1 Offset(0,36)
Goto Ready

GainHeight:
SHDW A 0 A_JumpIfInventory("BaseAltfireAmmo",1,1)
Goto Ready
SHDW A 0 A_JumpIfInventory("BaseCustomFlag1",1,1)
Goto Ready
SHDW A 0 A_PlaySoundEx("weapon/superboost","Weapon")
SHDW A 0 A_GiveInventory("BaseCustomFlag2")
SHDW A 0 A_JumpIfInventory("ShadeManCharged",1,"ChargedLift")
SHDW A 1 Offset(0,40)ThrustThingZ(0,LIFT_THRUST,0,0)
SHDW A 1 Offset(0,48)ThrustThingZ(0,LIFT_THRUST,0,0)
SHDW A 1 Offset(0,56)ThrustThingZ(0,LIFT_THRUST,0,0)
LiftHold:
SHDW A 0 A_JumpIfInventory("BaseAltfireAmmo",1,1)
goto LiftEnd
SHDW A 0 ThrustThingZ(0,LIFT_THRUST,0,0)
SHDW A 2 Offset(0,64)A_TakeInventory("BaseAltfireAmmo",1)
SHDW AA 1 Offset(0,64)A_JumpIf(ACS_NamedExecuteWithResult("VC_CheckBtn",3)==3,"LiftHold")
LiftEnd:
SHDW A 1 Offset(0,56)ThrustThingZ(0,(LIFT_THRUST/2),0,0)
SHDW A 1 Offset(0,48)ThrustThingZ(0,(LIFT_THRUST/2),0,0)
SHDW A 1 Offset(0,40)ThrustThingZ(0,(LIFT_THRUST/2),0,0)
SHDW A 0 A_TakeInventory("BaseCustomFlag2")
Goto LiftFinish
ChargedLift:
SHDW D 1 Offset(0,40)ThrustThingZ(0,LIFT_THRUST,0,0)
SHDW E 1 Offset(0,48)ThrustThingZ(0,LIFT_THRUST,0,0)
SHDW D 1 Offset(0,56)ThrustThingZ(0,LIFT_THRUST,0,0)
ChargedLiftHold:
SHDW D 0 A_JumpIfInventory("BaseAltfireAmmo",1,1)
goto ChargedLiftEnd
SHDW A 0 ThrustThingZ(0,LIFT_THRUST,0,0)
SHDW E 1 Offset(0,64)A_TakeInventory("BaseAltfireAmmo",1)
SHDW D 1 Offset(0,64)
SHDW ED 1 Offset(0,64)A_JumpIf(ACS_NamedExecuteWithResult("VC_CheckBtn",3)==3,"ChargedLiftHold")
ChargedLiftEnd:
SHDW E 1 Offset(0,56)ThrustThingZ(0,(LIFT_THRUST/2),0,0)
SHDW D 1 Offset(0,48)ThrustThingZ(0,(LIFT_THRUST/2),0,0)
SHDW E 1 Offset(0,40)ThrustThingZ(0,(LIFT_THRUST/2),0,0)
SHDW A 0 A_TakeInventory("BaseCustomFlag2")
LiftFinish:
SHDW A 0
Goto Ready

RunawayPumpkinHold:
VPKH A 0 SetPlayerProperty(0,1,4)
VPKH A 0 A_TakeInventory("VANPookinHit")
VPKH A 0 A_GiveInventory("HalfDamageProtection")
VPKH A 0 A_GiveInventory("VANPookinAltThirdOn")
RunawayPumpkinHoldB:
VPKH A 0 A_JumpIfInventory("VANPookinHit",1,"RunawayPumpkinRecoil")
VPKH A 0 A_JumpIfInventory("VeryLongUltimateAmmo",1,1)
Goto EndTFUlt
VPKH A 0 A_JumpIfInventory("BaseAltfireAmmo",1,1)
Goto EndTFUlt
VPKH A 0 A_PlaySoundEx("weapon/superboost","Weapon")
VPKH A 0 A_ChangeVelocity(cos(pitch)*35,0,0,CVF_RELATIVE|CVF_REPLACE)
VPKH A 0 A_SpawnItemEx("RunawayPumpkinWallCheck",32,0,12,momx,momy,momz,0,8)
VPKH A 0 A_SpawnItemEx("RunawayPumpkinHitBox",0,0,0,momx,momy,momz,0,8)
VPKH A 1 A_TakeInventory("BaseAltfireAmmo",1)
VPKH AA 1 A_JumpIf(ACS_NamedExecuteWithResult("VC_CheckBtn",3)==3,"RunawayPumpkinHoldB")
Goto EndTFUlt
RunawayPumpkinRecoil:
VPKH A 0 A_Stop
VPKH A 0 A_Recoil(15)
VPKH A 0 A_Quake(3,25,0,300)
VPKH A 0 ThrustThingZ(0,30,0,0)
VPKH A 0 A_PlaySoundEx("weapon/GutsmanQuake","Body")
VPKH A 1 Offset(0,34)SetPlayerProperty(0,0,4)
VPKH A 1 Offset(0,30)A_TakeInventory("VANPookinHit")
VPKH A 1 Offset(-2,32)A_TakeInventory("BaseAltfireAmmo")
VPKH A 1 Offset(2,32)A_TakeInventory("VANPookinAltThirdOn")
VPKH A 1 Offset(0,34)A_GiveInventory("HalfDamageProtection")
VPKH A 1 Offset(0,30)
VPKH A 1 Offset(-2,32)
VPKH A 1 Offset(2,32)
VPKH A 1 Offset(0,34)
VPKH A 1 Offset(0,30)
VPKH A 1 Offset(-2,32)
VPKH A 1 Offset(2,32)
Goto ReadyUlt
EndTFUlt:
VPKH A 0 SetPlayerProperty(0,0,4)
VPKH A 0 A_TakeInventory("VANPookinHit")
VPKH A 0 A_TakeInventory("BaseAltfireAmmo")
VPKH A 0 A_TakeInventory("VANPookinAltThirdOn")
VPKH AAAAAAAAAAAA 1 A_GiveInventory("HalfDamageProtection")
Goto ReadyUlt

UltimateAttack:
SHDW AA 1
SHDW A 0 A_GiveInventory("ShadeManColor",1)
SHDW A 0 A_PlaySoundEx("classes/ultimateactivation","Auto") SHDW A 0 ACS_NamedExecuteAlways("VC_UltimateText",0,61) SHDW A 0 A_ChangeFlag("INVULNERABLE",True)
SHDW A 0 A_GiveInventory("PowerUltBuildCooldown",1) SHDW A 0 A_GiveInventory("InvProtection",1) SHDW A 0 A_GiveInventory("ShadeManUltActive",1)
SHDW A 0 A_TakeInventory("UltAttackFlag",1) SHDW A 0 A_TakeInventory("BaseCustomFlag1",1) SHDW A 0 A_TakeInventory("HalfDamageProtection")
SHDW A 0 A_TakeInventory("Base112Ammo",112) SHDW A 0 A_TakeInventory("BaseAltfireAmmo",112) SHDW A 0 A_TakeInventory("ShadeManCharged") 
SHDW A 0 A_ChangeFlag("INVULNERABLE",True)  SHDW A 0 A_ChangeFlag("SOLID",False) SHDW A 0 A_TakeInventory("ShadeManArmor")
SHDW A 0 ACS_NamedExecute("Class_Music_Changer",0,0,0) SHDW A 0 A_SpawnItemEx("ShadeManDummy",0,0,0,0,0,0,0,1)
SHDW A 0 A_TakeInventory("VeryLongUltimateAmmo",100)
TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 1 A_SetTranslucent(0.0,0)
TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 1 A_SetTranslucent(0.0,0)
TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 1 A_SetTranslucent(0.0,0)
TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 1 A_SetTranslucent(0.0,0)
TNT1 A 0 ACS_ExecuteAlways(991,0,43)
TNT1 A 0 A_GunFlash
TNT1 A 0 HealThing(200,200)
TNT1 A 0 A_Quake(3,25,0,300)
TNT1 A 0 A_SetTranslucent(1.0,0)
TNT1 A 0 A_SpawnItemEx("Resolidifier")
TNT1 A 0 A_TakeInventory("CutterFlag",999)
TNT1 A 0 A_ChangeFlag("INVULNERABLE",False)
TNT1 A 0 A_TakeInventory("InvProtection",1)
TNT1 A 0 ACS_Execute(191,0,APROP_JumpZ,12,1)
TNT1 A 0 A_GiveInventory("VANPookinSpeed",1)
TNT1 A 0 A_SpawnItemEx("ShadeManUltWatcher")
TNT1 A 0 A_GiveInventory("BaseAltfireAmmo",112)
TNT1 A 0 A_SpawnItemEx("UltSpawnDamager",0,0,32)
TNT1 A 0 A_PlaySoundEx("weapon/napalm","Weapon")
TNT1 A 0 A_PlaySoundEx("weapon/junkend","Voice")
TNT1 A 0 A_PlaySoundEx("weapon/drillexplode","Body")
TNT1 A 0 ACS_NamedExecute("VC_ViewHeight",0,69)
TNT1 A 0 ACS_NamedExecute("Class_Music_Changer",0,0,1)
TNT1 A 0 ACS_NamedExecuteWithResult("VC_AdjustMaxHealth",200,0)
TNT1 A 0 A_GiveInventory("IsHuge")
TNT1 AAAAAAAAAAAAAAA 0 A_SpawnItemEx("DrillExplode",Random(-128,128),Random(-128,128),Random(0,80))
Goto ReadyUlt
UltEnd:
TNT1 A 0 HealThing(100,100)
TNT1 A 0 A_GunFlash("EndFlash")
TNT1 A 0 A_TakeInventory("VANPookinSpeed",1)
TNT1 A 0 ACS_Execute(191,0,APROP_JumpZ,14,1)
TNT1 A 0 A_TakeInventory("ShadeManUltActive",1)
TNT1 A 0 A_TakeInventory("PowerUltBuildCooldown",1)
TNT1 A 0 ACS_NamedExecute("VC_ViewHeight",0,51)
TNT1 A 0 ACS_NamedExecuteWithResult("VC_SetState",18)
TNT1 A 0 A_PlaySoundEx("weapon/shad_poof","SoundSlot2")
TNT1 A 0 ACS_ExecuteAlways(991,0,7846)
TNT1 A 0 ACS_NamedExecuteWithResult("VC_AdjustMaxHealth",100,0)
TNT1 A 0 A_TakeInventory("IsHuge")
TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("BubbleBatRMFX",32,0,Random(32,64),Random(3,15),0,0,random(0,359))
TNT1 AAAAAAAAAAAAAAAA 0 A_SpawnItemEx("ShadowPoof2",random(0,120),0,random(-20,100),0,0,0,random(0,359))
SHDW AA 1 A_TakeInventory("UltAttackFlag",1)
Goto Ready
Flash:
TNT1 A 1 A_JumpIfInventory("IsDead",1,"EndFlash")
loop
EndFlash:
TNT1 AAA 0 ACS_NamedExecute("Class_Music_Changer",0,0,2)
stop
}
}

actor ShadeManMainPickUp : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_TakeInventory("Base112Ammo",14)
TNT1 A 0 A_JumpIfInventory("ShadeManCharged",1,"PickUp2")
TNT1 A 0 A_PlaySoundEx("weapon/NoiseC1","Weapon")
TNT1 A 0 A_FireCustomMissile("NoiseCrushRM",0,0,8,4)
stop
PickUp2:
TNT1 A 0 A_TakeInventory("ShadeManArmor",999)
TNT1 A 0 A_TakeInventory("ShadeManCharged",1)
TNT1 A 0 A_PlaySoundEx("weapon/NoiseC2","Weapon")
TNT1 A 0 A_FireCustomMissile("NoiseCrushRM2",0,0,8,4)
stop
}
}

actor NoiseCrushRM
{
PROJECTILE
+HEXENBOUNCE
+CANBOUNCEWATER
+USEBOUNCESTATE
+FORCEXYBILLBOARD
damagetype "ShadeMan"
Obituary "$OB_SHADEMAN1"
Radius 24
Height 24
damage (20)
speed 25
BounceFactor 1.0
bouncecount 2
scale 2.5
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode",1)
Spawn2:
TNT1 A 1 A_SpawnItemEx("NoiseCrushRMFXa")
TNT1 A 1 A_SpawnItemEx("NoiseCrushRMFXa2")
loop
Bounce:
TNT1 A 1 A_SpawnItemEx("NoiseCrushRMFXa")
TNT1 A 0 A_JumpIfCloser(48,"Charge")
TNT1 A 1 A_SpawnItemEx("NoiseCrushRMFXa2")
TNT1 A 0 A_JumpIfCloser(48,"Charge")
loop
Charge:
TNT1 A 0 A_JumpIfInTargetInventory("ShadeManUltActive",1,"End")
TNT1 A 0 A_GiveToTarget("ShadeManCharged")
TNT1 A 0 A_GiveToTarget("ShadeManArmor",105)
stop
XDeath:
TNT1 A 0 A_JumpIfInventory("IsACopywep",1,1,AAPTR_TRACER)
Goto End
TNT1 A 0 A_JumpIfInventory("LightTeamFlag",1,"LightCheck",AAPTR_TARGET)
TNT1 A 0 A_JumpIfInventory("WilyTeamFlag",1,"WilyCheck",AAPTR_TARGET)
TNT1 A 0 A_JumpIfInventory("CossackTeamFlag",1,"CossackCheck",AAPTR_TARGET)
TNT1 A 0 A_JumpIfInventory("KingTeamFlag",1,"KingCheck",AAPTR_TARGET)
Goto End
LightCheck:
TNT1 A 0 A_JumpIfInventory("LightTeamFlag",1,"GiveToCopyWep", AAPTR_TRACER)
TNT1 A 1 A_JumpIf(true,"End")
wait
WilyCheck:
TNT1 A 0 A_JumpIfInventory("WilyTeamFlag",1,"GiveToCopyWep", AAPTR_TRACER)
TNT1 A 1 A_JumpIf(true,"End")
wait
CossackCheck:
TNT1 A 0 A_JumpIfInventory("CossackTeamFlag",1,"GiveToCopyWep", AAPTR_TRACER)
TNT1 A 1 A_JumpIf(true,"End")
wait
KingCheck:
TNT1 A 0 A_JumpIfInventory("KingTeamFlag",1,"GiveToCopyWep", AAPTR_TRACER)
TNT1 A 1 A_JumpIf(true,"End")
wait
GiveToCopyWep:
TNT1 A 0 A_GiveInventory("ShadeChargeThing",1,AAPTR_TRACER)
End:
TNT1 A 0
stop
}
}

actor NoiseCrushRM2 : NoiseCrushRM
{
damagetype "ShadeMan2"
damage (35)
Radius 32
Height 32
bouncecount 1
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode",1)
Spawn2:
TNT1 A 1 A_SpawnItemEx("NoiseCrushRMFXb")
TNT1 A 1 A_SpawnItemEx("NoiseCrushRMFXb2")
loop
}
}

actor NoiseCrushRMFXa : BasicClientSide
{
Translation "4:4=138:138","192:192=104:104", "198:198=106:106"
+FORCEXYBILLBOARD
+BRIGHT
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode",1)
S7NC ABC 1
stop
}
}

actor NoiseCrushRMFXa2 : NoiseCrushRMFXa
{
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode",1)
S7NC DEF 1
stop
}
}

actor NoiseCrushRMFXb : NoiseCrushRMFXa
{
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode",1)
S7NC GHIJ 1
stop
}
}

actor NoiseCrushRMFXb2 : NoiseCrushRMFXa
{
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode",1)
S7NC KLEM 1
stop
}
}

actor NoiseCrushArmorWatcher
{
PROJECTILE
+NOINTERACTION
+NOCLIP
Damage(0)
Height 1
Radius 1
Speed 0
Scale 2.5
States
{
Spawn:
TNT1 A 3
SpawnNext:
TNT1 A 0 A_Warp(AAPTR_TARGET,0,0,0,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
TNT1 A 0 A_TakeFromTarget("HalfDamageProtection")
TNT1 A 0 A_JumpIfInTargetInventory("ShadeManUltActive",1,"Waiting")
TNT1 A 0 A_JumpIfInTargetInventory("IsTheTerminator",1,"Death")
TNT1 A 1 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0) == 0, "Death")
TNT1 A 0 A_JumpIfInTargetInventory("ShadeManArmor",1,"Spawn2")
loop
Spawn2:
TNT1 A 0 A_TakeFromTarget("ShadeManArmor",1)
TNT1 A 0 A_Warp(AAPTR_TARGET,0,0,0,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
TNT1 A 0 A_GiveToTarget("HalfDamageProtection")
TNT1 A 0 A_SpawnItemEx("NoiseCrushArmorFX",Random(-40,40),Random(-40,40),0,0,0,15)
TNT1 A 0 A_JumpIfInTargetInventory("IsTheTerminator",1,"Death")
TNT1 A 1 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0) == 0, "Death")
TNT1 A 0 A_JumpIfInTargetInventory("ShadeManArmor",1,"Spawn2")
Goto SpawnNext
Waiting:
TNT1 A 1 A_JumpIfInTargetInventory("IsTheTerminator",1,"Death")
TNT1 AAA 1 A_JumpIfInTargetInventory("ShadeManUltActive",1,"Waiting")
goto SpawnNext
Death:
TNT1 A 0 A_TakeFromTarget("HalfDamageProtection")
stop
}
}

actor NoiseCrushArmorFX : BasicClientSide
{
+BRIGHT
Scale 2.5
+NOINTERACTION
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode",1)
SHDM A 5
stop
}
}

actor NoiseCrushColorWatcher
{
PROJECTILE
+NOINTERACTION
+NOCLIP
Damage(0)
Height 1
Radius 1
Speed 0
Scale 2.5
States
{
Spawn:
TNT1 A 3
SpawnNext:
TNT1 A 0 A_Warp(AAPTR_TARGET,0,0,0,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
TNT1 A 0 A_JumpIfInTargetInventory("IsTheTerminator",1,"Death")
TNT1 A 1 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0) == 0, "Death")
TNT1 A 0 A_JumpIfInTargetInventory("ShadeManCharged",1,"Spawn2")
TNT1 A 0 A_GiveToTarget("ShadeManColor")
loop
Spawn2:
TNT1 A 0 A_Warp(AAPTR_TARGET,0,0,0,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
TNT1 A 0 A_PlaySoundEx("weapon/MM4Charge","Weapon")
TNT1 A 0 A_JumpIfInTargetInventory("IsTheTerminator",1,"Death")
TNT1 A 1 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0) == 0, "Death") TNT1 A 0 A_JumpIfInTargetInventory("ShadeManCharged",1,1) Goto SpawnNext TNT1 A 0 A_GiveToTarget("ShadeManColor2")
TNT1 A 1 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0) == 0, "Death") TNT1 A 0 A_JumpIfInTargetInventory("ShadeManCharged",1,1) Goto SpawnNext TNT1 A 0 A_GiveToTarget("ShadeManColor")
loop
Death:
TNT1 A 0
stop
}
}

actor ShadeManColor : CustomInventory
{
inventory.amount 1
inventory.maxamount 1
+INVENTORY.AUTOACTIVATE
+COUNTITEM
+INVBAR
states
{
Pickup:
TNT1 A 0 A_JumpIfInventory("ShadeManUltActive",1,"Nope")
TNT1 A 1 ACS_ExecuteAlways(991,0,7846,0)
stop
Nope:
TNT1 A 0
stop
}
} 
actor ShadeManColor2 : ShadeManColor{states{Pickup:TNT1 A 0 A_JumpIfInventory("ShadeManUltActive",1,"Nope") TNT1 A 1 ACS_ExecuteAlways(991,0,850,0)stop}}

actor StoneStare
{
PROJECTILE
+FORCEXYBILLBOARD
damagetype "ShadeManAlt"
Obituary "$OB_SHADEMAN2"
Radius 24
Height 24
scale 2.5
damage (20)
speed 18
var int user_DIRECTION;
var int user_SPEED;
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode",1)
TNT1 A 0 A_SetUserVar("user_DIRECTION",1)
TNT1 A 0 A_SetUserVar("user_SPEED", 4)
TNT1 AA 1 A_Changevelocity(0, -(user_SPEED/2)*user_DIRECTION,0,1)
TNT1 A 0 A_Changevelocity(0, 3*user_SPEED*user_DIRECTION,0,1)
Spawn2:
SHA1 ABCD 2 A_SpawnItemEx("StoneStareFX")
SHA1 A 2 A_Changevelocity(0,-user_SPEED*user_DIRECTION,0,1) TNT1 A 0 A_SpawnItemEx("StoneStareFX")
SHA1 B 2 A_Changevelocity(0,-user_SPEED*user_DIRECTION,0,1) TNT1 A 0 A_SpawnItemEx("StoneStareFX")
SHA1 C 2 A_Changevelocity(0,-user_SPEED*user_DIRECTION,0,1) TNT1 A 0 A_SpawnItemEx("StoneStareFX")
SHA1 D 2 A_Changevelocity(0,-user_SPEED*user_DIRECTION,0,1) TNT1 A 0 A_SpawnItemEx("StoneStareFX")
SHA1 ABCD 2 A_SpawnItemEx("StoneStareFX")
SHA1 A 2 A_Changevelocity(0,user_SPEED*user_DIRECTION,0,1) TNT1 A 0 A_SpawnItemEx("StoneStareFX")
SHA1 B 2 A_Changevelocity(0,user_SPEED*user_DIRECTION,0,1) TNT1 A 0 A_SpawnItemEx("StoneStareFX")
SHA1 C 2 A_Changevelocity(0,user_SPEED*user_DIRECTION,0,1) TNT1 A 0 A_SpawnItemEx("StoneStareFX")
SHA1 D 2 A_Changevelocity(0,user_SPEED*user_DIRECTION,0,1) TNT1 A 0 A_SpawnItemEx("StoneStareFX")
loop
XDeath:
TNT1 A 0 A_GiveToTarget("Base112Ammo",14)
stop
}
}

actor StoneStareFX : BasicClientSide
{
+FORCEXYBILLBOARD
+BRIGHT
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode",1)
SHA2 ABCD 2
SHA3 ABCD 2
stop
}
}

actor StoneStareDebuff : PowerProtection
{
//Knight Man
Damagefactor "Knightman", 10.0
Damagefactor "KnightmanSpin", 10.0
Damagefactor "KnightmanCrush", 10.0
Damagefactor "KnightFullJump", 10.0 
Damagefactor "KnightmanSpinUlt", 10.0
Damagefactor "KnightCrush", 10.0

//Explosive attacks (classes)
Damagefactor "Bombman", 10.0
Damagefactor "BombmanDud", 10.0
Damagefactor "Crashman", 10.0
Damagefactor "CrashUser1", 10.0
Damagefactor "CrashUser1_LessAmmo", 10.0
Damagefactor "DocCrash", 10.0
Damagefactor "DrillBomb", 10.0
Damagefactor "DrillFrenzy", 10.0
Damagefactor "Napalmman", 10.0
Damagefactor "NapalmUlt", 10.0
Damagefactor "Burstman", 10.0
Damagefactor "BurstmanUlt", 10.0
Damagefactor "GrenademanM1", 10.0
Damagefactor "GrenadeAlt", 10.0
Damagefactor "TrioFlashBomb", 10.0
Damagefactor "PirateMan", 10.0
//Burner Man's Burner Grenade
Damagefactor "CommandoManBomb", 10.0
Damagefactor "Blastman", 10.0
Damagefactor "VenusMine1", 10.0
Damagefactor "VenusMine2", 10.0
Damagefactor "VenusMine3", 10.0 
Damagefactor "MarsMissile", 10.0
Damagefactor "BalladeUlt", 10.0

//Explosive attacks (copy weapons)
Damagefactor "HyperBomb", 10.0
Damagefactor "CrashBomb", 10.0
Damagefactor "DrillBomb", 10.0
Damagefactor "NapalmBomb", 10.0
Damagefactor "DangerWrap", 10.0
Damagefactor "FlashBomb", 10.0
Damagefactor "RemoteMine", 10.0
Damagefactor "CommandoBomb", 10.0
Damagefactor "ChainBlast", 10.0
Damagefactor "BubbleBomb", 10.0
Damagefactor "BalladeCracker", 10.0

Powerup.Duration -99
}

actor StoneStareDebuffPowerUp : BasicPowerupGiver
{
powerup.type "StoneStareDebuff"
}

actor InflictStoneStareDebuff : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_JumpIfInventory("StoneStareDebuff",1,"No")
TNT1 A 0 A_JumpIfInventory("LightTeamFlag",1,"TeamDebuff")
TNT1 A 0 A_JumpIfInventory("WilyTeamFlag",1,"TeamDebuff")
TNT1 A 0 A_JumpIfInventory("CossackTeamFlag",1,"TeamDebuff")
TNT1 A 0 A_JumpIfInventory("KingTeamFlag",1,"TeamDebuff")
Goto No
TeamDebuff:
TNT1 A 0 A_GiveInventory("StoneStareDebuffPowerUp",1)
No:
TNT1 A 0
stop
}
}

actor PowerStareStunColor : PowerUp
{
powerup.colormap 0.419,0.419,0.419,1.0,1.0,1.0
}

actor StareStunned : PowerupGiver
{
  inventory.maxamount 0
  powerup.duration -99
  powerup.type "PowerStareStunColor"
  +INVENTORY.AUTOACTIVATE
  +INVENTORY.ALWAYSPICKUP
  states
  {
  Spawn:
    TNT1 A 5
    loop
  }
}

actor StoneStareStunActivator : CustomInventory
{
+INVENTORY.AUTOACTIVATE
States
{
Pickup:
TNT1 A 0
TNT1 A 0 A_JumpIfInventory("StareStunnedCounter", 1, "No")
TNT1 A 0 A_Stop 
PLAY H 0 A_GiveInventory("StareStunned",1)
PLAY H 0 A_GiveInventory("ShadeManStareStunned",1)
PLAY H 0 A_GiveInventory("StareStunnedCounter",1)
PLAY H 0 ACS_NamedExecuteAlways("core_flyplayer",0,0,1)
PLAY H 0 ACS_NamedExecuteAlways("core_freezeplayer",0,0,1)
TNT1 A 0 A_SpawnItemEx("StoneStareStunnedWatcher")
TNT1 A 1
stop
No:
TNT1 A 0
stop
}
}

actor StareStunnedCounter : Powerup
{
powerup.duration 70
}

actor StoneStareStunnedWatcher
{
Height 0
Radius 0
+NOINTERACTION
-SOLID
+NOGRAVITY
+MISSILE
Renderstyle none
States
{
Spawn:
TNT1 A 0
TNT1 A 1 A_GiveToTarget("MovementFrozen3")
TNT1 A 0 A_JumpIfInTargetInventory("StareStunnedCounter", 1, "Spawn")
PLAY H 0 A_GiveToTarget("UnstunMeOnHit")
PLAY H 0 A_TakeFromTarget("PowerStareStunColor",999)
PLAY H 0 A_TakeFromTarget("StareStunned",999)
TNT1 A 5 A_GiveToTarget("StoneStareUnstun")
stop
}
}

actor StoneStareUnstun : CustomInventory
{
+INVENTORY.AUTOACTIVATE
States
{
Use:
PLAY H 0 ACS_NamedExecuteAlways("core_flyplayer",0,0,0)
PLAY H 0 ACS_NamedExecuteAlways("core_freezeplayer",0,0,0)
PLAY H 0 A_TakeFromTarget("PowerStareStunColor",999)
PLAY H 0 A_TakeFromTarget("StareStunned",999)
PLAY H 0 A_GiveInventory("MovementReturnFailsafe")
PLAY H 0 A_TakeFromTarget("StoneStareDebuff")
PLAY H 0 A_TakeInventory("StareStunnedCounter")
PLAY H 0 A_TakeInventory("ShadeManStareStunned",1)
PLAY H 0 A_GiveInventory("StoneStareProtect",1)
stop
}
}

actor StoneStareProtect : PowerProtection
{
powerup.duration -2
damagefactor "ShadeManAlt", 0.0
damagefactor "CentaurManFlash", 0.0
}

actor ShadeManFlightWatcher
{
Height 0
Radius 0
+NOINTERACTION
-SOLID
+NOGRAVITY
+MISSILE
Renderstyle none
States
{
Spawn:
TNT1 A 3
SpawnNext:
TNT1 A 0 A_TakeInventory("VC_Timer",999)
TNT1 A 0 A_JumpIfInTargetInventory("IsTheTerminator",1,"Death")
TNT1 A 1 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0) == 0, "Death")
TNT1 A 0 A_JumpIfInTargetInventory("BaseCustomFlag1",1,"Spawn2")
loop
Spawn2:
TNT1 A 0 A_JumpIfInTargetInventory("IsTheTerminator",1,"Death")
TNT1 A 1 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0) == 0, "Death") TNT1 A 0 A_JumpIfInTargetInventory("BaseAltfireAmmo",1,1) Goto Restart
TNT1 A 0 A_JumpIfInTargetInventory("BaseCustomFlag1",1,1) Goto Restart TNT1 A 0 A_JumpIfInventory("ShadeFlightEndTrigger",1,"Restart")
TNT1 A 1 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0) == 0, "Death") TNT1 A 0 A_JumpIfInTargetInventory("BaseAltfireAmmo",1,1) Goto Restart
TNT1 A 0 A_JumpIfInTargetInventory("BaseCustomFlag1",1,1) Goto Restart TNT1 A 0 A_JumpIfInventory("ShadeFlightEndTrigger",1,"Restart") TNT1 A 0 A_GiveToTarget("ShadeThruster")
TNT1 A 1 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0) == 0, "Death") TNT1 A 0 A_JumpIfInTargetInventory("BaseAltfireAmmo",1,1) Goto Restart
TNT1 A 0 A_JumpIfInTargetInventory("BaseCustomFlag1",1,1) Goto Restart TNT1 A 0 A_JumpIfInventory("ShadeFlightEndTrigger",1,"Restart")
TNT1 A 0 A_TakeFromTarget("BaseAltfireAmmo",1)
TNT1 A 1 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0) == 0, "Death") TNT1 A 0 A_JumpIfInTargetInventory("BaseAltfireAmmo",1,1) Goto Restart
TNT1 A 0 A_JumpIfInTargetInventory("BaseCustomFlag1",1,1) Goto Restart TNT1 A 0 A_JumpIfInventory("ShadeFlightEndTrigger",1,"Restart") TNT1 A 0 A_GiveToTarget("ShadeThruster")
TNT1 A 1 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0) == 0, "Death") TNT1 A 0 A_JumpIfInTargetInventory("BaseAltfireAmmo",1,1) Goto Restart
TNT1 A 0 A_JumpIfInTargetInventory("BaseCustomFlag1",1,1) Goto Restart TNT1 A 0 A_JumpIfInventory("ShadeFlightEndTrigger",1,"Restart")
TNT1 A 1 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0) == 0, "Death") TNT1 A 0 A_JumpIfInTargetInventory("BaseAltfireAmmo",1,1) Goto Restart
TNT1 A 0 A_JumpIfInTargetInventory("BaseCustomFlag1",1,1) Goto Restart TNT1 A 0 A_JumpIfInventory("ShadeFlightEndTrigger",1,"Restart") TNT1 A 0 A_GiveToTarget("ShadeThruster")
TNT1 A 0 A_TakeFromTarget("BaseAltfireAmmo",1)
loop
Restart:
TNT1 A 0 A_TakeFromTarget("BaseCustomFlag1")
TNT1 A 0 A_GiveToTarget("ShadeFlightCooldown",140)
TNT1 A 1 A_TakeFromTarget("ShadeFlightCooldown",1)
TNT1 A 0 A_GiveInventory("VC_Timer",1)
TNT1 A 0 A_JumpIfInventory("VC_Timer",140,"SpawnNext")
Goto Restart+2
Death:
TNT1 A 0
stop
}
}

actor ShadeThruster : CustomInventory
{
inventory.amount 1
inventory.maxamount 1
+INVENTORY.AUTOACTIVATE
+COUNTITEM
+INVBAR
states
{
Pickup:
TNT1 A 0 A_JumpIfInventory("ShadeSwooping",1,"Nope")
TNT1 A 0 A_JumpIfInventory("BaseCustomFlag2",1,"Nope")
TNT1 A 0 ThrustThingZ(0,1,1,0)
Nope:
TNT1 A 0
stop
}
}

actor ShadeGrabberCheck
{
+MISSILE
+NOBLOCKMAP
+NOGRAVITY
+NOEXPLODEFLOOR
+DONTBLAST
+DONTREFLECT
+HITTRACER
+THRUGHOST
Height 32
Radius 40
scale 1.0
renderstyle none
states
{
Spawn:
TNT1 A 0
TNT1 A 1
stop
Crash:
XDeath:
TNT1 A 0 A_ChangeFlag("THRUACTORS",1)
TNT1 A 0 A_CheckFlag("FLOORHUGGER","DeathK",8)
TNT1 A 0 A_JumpIfInventory("NoPushFlag",1,"DeathK",8)
TNT1 A 0 A_JumpIfInventory("ShadeSwooping",1,"DeathK",8)
TNT1 A 0 A_JumpIfInventory("HSHSuctionFlag",1,"DeathK",8)
TNT1 A 0 A_JumpIfInTargetInventory("SuplexID",1,"DeathI")
TNT1 A 0 A_JumpIfInventory("ShadeSwoopGrabbing",1,"DeathK",8)
TNT1 A 0 A_JumpIfInventory("IsPerformingSuplex",1,"DeathJ",8)
TNT1 A 1 A_JumpIf(ACS_NamedExecuteWithResult("cbm_istracerplayer")==1,"DeathCheck2")
stop
DeathCheck2:
TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(975,1)==1,"DeathCheck3")
goto GiveSuplex
DeathCheck3:
TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(143,ACS_ExecuteWithResult(147,0),1) == ACS_ExecuteWithResult(143,ACS_ExecuteWithResult(147,1),1),"DeathL")
goto GiveSuplex
GiveSuplex:
TNT1 A 0 A_ChangeFlag("THRUACTORS",1)
TNT1 A 0 A_CheckFlag("FLOORHUGGER","DeathK",8)
TNT1 A 0 A_JumpIfInTargetInventory("SuplexID",1,"DeathI")
TNT1 A 0 A_JumpIfInventory("IsPerformingSuplex",1,"DeathJ",8)
TNT1 A 0 A_GiveToTarget("IsPerformingSuplex",1)
TNT1 A 0 A_PlaySoundEx("KirbyNES/FoeGrab","Auto")
TNT1 A 0 A_GiveToTarget("ShadeSwoopGrabbing",1)
TNT1 A 0 A_GiveToTarget("SuplexID",(ACS_ExecuteWithResult(147,1)-1000)+1)
TNT1 A 1 A_GiveInventory("TempPitProtect_P",1,8)
TNT1 A 0 A_GiveInventory("ShademanGrabProtector",1,8)
Carry:
TNT1 A 0 A_GiveInventory("TempPitProtect_P",1,8)
TNT1 A 0 A_GiveInventory("Shocked",1,8)
TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0) == 0, "Death")
TNT1 A 1 A_GiveInventory("TempPitProtect_P",1,8)
TNT1 A 0 A_JumpIfInTargetInventory("ShadeReleaseConfirm",1,"StopCarry2")
TNT1 A 0 A_JumpIfInTargetInventory("ShadeGrabCancel",1,"StopCarryTerrain")
TNT1 A 1 A_JumpIfInTargetInventory("ShadeSwoopGrabbing",1,"Carry")
StopCarry:
TNT1 A 1 A_JumpIfInTargetInventory("ShadeReleaseConfirm",1,"StopCarry2")
TNT1 A 1 A_JumpIfInTargetInventory("ShadeReleaseConfirm",1,"StopCarry2")
TNT1 A 1 A_JumpIfInTargetInventory("ShadeReleaseConfirm",1,"StopCarry2")
TNT1 A 1 A_JumpIfInTargetInventory("ShadeReleaseConfirm",1,"StopCarry2")
goto StopCarryTerrain
StopCarry2:
TNT1 A 0 A_TakeFromTarget("IsPerformingSuplex",999)
TNT1 A 1 A_GiveInventory("TempPitProtect_P",1,8)
TNT1 A 0 A_TakeInventory("ShademanGrabProtector",1,0,8)
stop
StopCarryTerrain:
TNT1 A 0 A_TakeInventory("ShademanGrabProtector",1,0,8)
TNT1 A 0 A_TakeFromTarget("IsPerformingSuplex",999)
TNT1 A 0 A_GiveInventory("TempPitProtect_P",1,8)
TNT1 AAA 1
stop
DeathI:
TNT1 A 1 //A_LOG("FAILED, CAN'T GRAB SOMEONE BEING GRABBED!")
stop
DeathJ:
TNT1 A 1 //A_LOG("FAILED, CAN'T GRAB SOMEONE GRABBING!")
stop
DeathK:
TNT1 A 1 //A_LOG("FAILED, CAN'T GRAB SOMEONE DIGGING!")
stop
DeathL:
TNT1 A 1 //A_LOG("FAILED, CAN'T GRAB ALLIES!")
stop
Death:
TNT1 A 0 A_TakeInventory("ShademanGrabProtector",1,0,8)
TNT1 AAA 1
stop
}
}

actor ShadeDrainSpeed : PowerSpeed
{
+POWERSPEED.NOTRAIL
powerup.duration -999
Speed 0.40
}

actor ShadeDrainHitBox
{
PROJECTILE
+SKYEXPLODE
+DONTBLAST
+DONTREFLECT
-NOBLOCKMAP
+NOEXPLODEFLOOR
+THRUSPECIES
Damagetype "ShadeManDrain"
Obituary "$OB_SHADEMAN3"
Species "ProtoManShield"
species "GeminiClone"
species "PharaohShieldType"
species "CrystalManShieldType"
species "KingShield"
damage (6)
Speed 0
Height 24
Radius 32
scale 2.5
States
{
Spawn:
TNT1 A 0
TNT1 A 1
stop
XDeath:
TNT1 A 0
TNT1 A 0 A_PlaySoundEx("weapon/shadesuck","Auto")
TNT1 A 1 A_GiveToTarget("ShadeHealPickUp",1)
stop
}
}

actor ShadeHealPickUp : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_JumpIf(Health>0,"Pickup2")
stop
Pickup2:
TNT1 A 0 HealThing(6)
stop
}
}

actor ShadeGrabCancel : Powerup
{
Powerup.Duration 8
}

actor ShadeReleaseConfirm : Powerup
{
Powerup.Duration 20
}

Actor ShadeSwoopMovement : BaseMovement
{
states
{
itTimeGo:
SHDW F 0 A_Recoil(CallACS("VC_XYMob", -3.0))
SHDW F 0 ThrustThingZ(0,6,1,1)
stop
}
}

actor ShadeManDummy : BasicClientSide
{
+FORCEXYBILLBOARD
+BRIGHT
States
{
Spawn:
SHDE UUUVVVWWWXXX 3
SHDE WYZY 4
Spawn2:
SHDE W 4 A_FadeOut(0.05)
loop
}
}

actor VANPookinSpeed : PowerSpeed
{
+POWERSPEED.NOTRAIL
powerup.duration -999
Speed 1.50
}

actor UltSpawnDamager : BasicExplosion
{
damagetype "VANPookinSpawn"
Obituary "$OB_VANPOOKIN1"
States
{
Spawn:
TNT1 A 0
TNT1 A 1 A_Explode(15,96,0)
stop
}
}

actor GreenSpitRM
{
PROJECTILE
damagetype "VANPookin"
Obituary "$OB_VANPOOKIN2"
damage (14)
Radius 16
Height 16
speed 35
scale 2.5
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode",1)
TNT1 A 1
Spawn2:
VNPK U 1
loop
Death:
TNT1 A 0 A_SpawnItemEx("ExplosionEffect1")
stop
}
}

actor GreenSpit2RM : GreenSpitRM
{
Radius 24
Height 24
damage (0)
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode",1)
TNT1 A 1
Spawn2:
VNPK W 1
loop
Death:
TNT1 A 0 A_Explode(35,80,0,0,40)
TNT1 A 0 A_SpawnItemEx("DrillExplode")
TNT1 A 2 A_PlaySoundEx("weapon/napalm","Body")
stop
}
}

actor GreenSpit3RM : GreenSpitRM
{
Radius 16
Height 16
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode",1)
TNT1 A 1
Spawn2:
VNPK V 1
loop
}
}

actor BubbleBatRM : GreenSpitRM
{
Obituary "$OB_VANPOOKIN3"
+SEEKERMISSILE
+LOOKALLAROUND
species "VANPookinType"
+THRUSPECIES
+NOCLIP
Damage (30)
Radius 32
Height 32
Speed 20
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode",1)
TNT1 A 2
TNT1 A 0 A_ChangeFlag("NOCLIP",0)
Spawn2:
BBAT GHI 5
TNT1 AAAAAA 0 A_SeekerMissile (90, 360, SMF_LOOK|SMF_PRECISE, 50, 8)
loop
}
}

actor GreenSpit4RM : GreenSpitRM
{
damagetype "VANPookinFountain"
Obituary "$OB_VANPOOKIN4"
-NOGravity
Gravity 1.0
Damage (8)
}

actor GreenFountainProtect : PowerProtection
{
powerup.duration 1
damagefactor "VANPookinFountain", 0.0
}

actor PumpkinSlamHitBox
{
PROJECTILE
+SKYEXPLODE
+DONTBLAST
+DONTREFLECT
-NOBLOCKMAP
+NOEXPLODEFLOOR
Damagetype "VANPookinSlam"
Obituary "$OB_VANPOOKIN5"
damage (2)
Radius 24
Height 24
Speed 0
scale 2.5
States
{
Spawn:
TNT1 A 0
TNT1 A 1
stop
}
}

actor PumpkinSlamProtect : PowerProtection
{
powerup.duration 1
damagefactor "VANPookinSlam", 0.0
}


actor VANPookinQuakeRadius
{
PROJECTILE
+FLOORHUGGER
+NOINTERACTION
+NOCLIP
Damage(0)
Height 1
Radius 1
Speed 0
States
{
Spawn:
TNT1 A 0 A_SpawnItemEx("VANPookinQuakeRadiusRange",0,0,0,0,0,0,18) TNT1 A 0 A_SpawnItemEx("VANPookinQuakeRadiusRange",0,0,0,0,0,0,36)
TNT1 A 0 A_SpawnItemEx("VANPookinQuakeRadiusRange",0,0,0,0,0,0,54) TNT1 A 0 A_SpawnItemEx("VANPookinQuakeRadiusRange",0,0,0,0,0,0,72)
TNT1 A 0 A_SpawnItemEx("VANPookinQuakeRadiusRange",0,0,0,0,0,0,90) TNT1 A 0 A_SpawnItemEx("VANPookinQuakeRadiusRange",0,0,0,0,0,0,108)
TNT1 A 0 A_SpawnItemEx("VANPookinQuakeRadiusRange",0,0,0,0,0,0,126) TNT1 A 0 A_SpawnItemEx("VANPookinQuakeRadiusRange",0,0,0,0,0,0,144)
TNT1 A 0 A_SpawnItemEx("VANPookinQuakeRadiusRange",0,0,0,0,0,0,162) TNT1 A 0 A_SpawnItemEx("VANPookinQuakeRadiusRange",0,0,0,0,0,0,180)
TNT1 A 0 A_SpawnItemEx("VANPookinQuakeRadiusRange",0,0,0,0,0,0,198) TNT1 A 0 A_SpawnItemEx("VANPookinQuakeRadiusRange",0,0,0,0,0,0,216)
TNT1 A 0 A_SpawnItemEx("VANPookinQuakeRadiusRange",0,0,0,0,0,0,234) TNT1 A 0 A_SpawnItemEx("VANPookinQuakeRadiusRange",0,0,0,0,0,0,254)
TNT1 A 0 A_SpawnItemEx("VANPookinQuakeRadiusRange",0,0,0,0,0,0,270) TNT1 A 0 A_SpawnItemEx("VANPookinQuakeRadiusRange",0,0,0,0,0,0,288)
TNT1 A 0 A_SpawnItemEx("VANPookinQuakeRadiusRange",0,0,0,0,0,0,306) TNT1 A 0 A_SpawnItemEx("VANPookinQuakeRadiusRange",0,0,0,0,0,0,324)
TNT1 A 0 A_SpawnItemEx("VANPookinQuakeRadiusRange",0,0,0,0,0,0,342) TNT1 A 0 A_SpawnItemEx("VANPookinQuakeRadiusRange",0,0,0,0,0,0,360)
stop
}
}

actor VANPookinQuakeRadiusRange
{
PROJECTILE
+FLOORHUGGER
+NOINTERACTION
+NOCLIP
Damage(0)
Height 1
Radius 1
Speed 0
States
{
Spawn:
TNT1 A 0 A_SpawnItemEx("VANPookinQuakeRadiusExplode",18) TNT1 A 0 A_SpawnItemEx("VANPookinQuakeRadiusExplode",36)
TNT1 A 0 A_SpawnItemEx("VANPookinQuakeRadiusExplode",54) TNT1 A 0 A_SpawnItemEx("VANPookinQuakeRadiusExplode",72)
TNT1 A 0 A_SpawnItemEx("VANPookinQuakeRadiusExplode",90) TNT1 A 0 A_SpawnItemEx("VANPookinQuakeRadiusExplode",108)
TNT1 A 0 A_SpawnItemEx("VANPookinQuakeRadiusExplode",126) TNT1 A 0 A_SpawnItemEx("VANPookinQuakeRadiusExplode",144)
TNT1 A 0 A_SpawnItemEx("VANPookinQuakeRadiusExplode",162) TNT1 A 0 A_SpawnItemEx("VANPookinQuakeRadiusExplode",180)
TNT1 A 0 A_SpawnItemEx("VANPookinQuakeRadiusExplode",198) TNT1 A 0 A_SpawnItemEx("VANPookinQuakeRadiusExplode",216)
TNT1 A 0 A_SpawnItemEx("VANPookinQuakeRadiusExplode",234) TNT1 A 0 A_SpawnItemEx("VANPookinQuakeRadiusExplode",252)
TNT1 A 0 A_SpawnItemEx("VANPookinQuakeRadiusExplode",270) TNT1 A 0 A_SpawnItemEx("VANPookinQuakeRadiusExplode",288)
TNT1 A 0 A_SpawnItemEx("VANPookinQuakeRadiusExplode",306) TNT1 A 0 A_SpawnItemEx("VANPookinQuakeRadiusExplode",324)
TNT1 A 0 A_SpawnItemEx("VANPookinQuakeRadiusExplode",342) TNT1 A 0 A_SpawnItemEx("VANPookinQuakeRadiusExplode",360)
stop
}
}

actor VANPookinQuakeRadiusExplode
{
PROJECTILE
+DONTBLAST
+DONTREFLECT
-NOBLOCKMAP
Obituary "$OB_VANPOOKIN6"
damagetype "VANPookinSlammed"
damage (10)
Radius 16
Height 16
Speed 0
scale 2.5
States
{
Spawn:
TNT1 A 1
stop
Death:
XDeath:
stop
}
}

actor VANPookinQuakeProtect : PowerProtection
{
powerup.duration -1
damagefactor "VANPookinSlammed", 0.0
}

actor VANPookinCrushDamager : BasicExplosion
{
damagetype "VANPookinCrush"
Obituary "$OB_VANPOOKIN5"
States
{
Spawn:
TNT1 A 0
TNT1 A 1 A_Explode(40,80,0,0,40)
stop
}
}

actor RunawayPumpkinHitBox
{
PROJECTILE
+SKYEXPLODE
+DONTBLAST
+DONTREFLECT
-NOBLOCKMAP
+NOEXPLODEFLOOR
Damagetype "VANPookinRam"
Obituary "$OB_VANPOOKIN7"
damage (40)
Radius 24
Height 24
Speed 0
scale 2.5
States
{
Spawn:
TNT1 A 0
TNT1 A 1
stop
Death:
TNT1 A 0
stop
}
}

actor RunawayPumpkinWallCheck : NiceWallCheck//: RunawayPumpkinHitBox
{
+STEPMISSILE
maxstepheight 34
radius 32
height 32
damage(0)
States
{
Death:
TNT1 A 0 A_GiveToTarget("VANPookinHit",1)
XDeath:
TNT1 A 0
stop
}
}

actor RunawayPumpkinProtect : PowerProtection
{
powerup.duration -1
damagefactor "VANPookinRam", 0.0
}

actor ShadeManUltWatcher
{
PROJECTILE
+NOINTERACTION
+NOCLIP
Damage(0)
Height 1
Radius 1
Speed 0
Scale 2.5
States
{
Spawn:
TNT1 AA 0
TNT1 AAA 1 A_JumpIfInTargetInventory("IsDead",1,"Death")
TNT1 A 0 A_TakeFromTarget("VeryLongUltimateAmmo",1) 
TNT1 A 0 A_JumpIfInTargetInventory("VeryLongUltimateAmmo",1,"Spawn")
Spawn2:
TNT1 AA 0
TNT1 A 1 A_JumpIfInTargetInventory("IsDead",1,"Death")
TNT1 A 0 A_TakeInventory("VeryLongUltimateAmmo")
TNT1 A 0 A_JumpIfInTargetInventory("ShadeManUltActive",1,"Spawn2")
Death:
TNT1 A 0 ACS_NamedExecute("Class_Music_Changer",0,0,2)
stop
}
}

actor BubbleBatRMFX : BasicClientSide
{
+Missile
+NOGRAVITY
reactiontime 10
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode",1)
BBAT GGGGGHHHHHIIIII 1 ThrustThingZ(0,2,0,1)
TNT1 A 0 A_Countdown
loop
}
}

actor VANPookinDeath
{
-MISSILE
-SKYEXPLODE
+SOLID
+THRUACTORS
+NOGRAVITY
+DONTSPLASH
Gravity 1.0
Damage (0)
height 1
radius 1
scale 2.5
const int VEL = 2;
const int OFS = 80;
const int TIMER = 105;
const float SCLE = 1.2;
const int EXPL_DEG = 36;
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode")
Spawn2:
TNT1 A 0 A_PlaySoundEx("weapon/mm7enemyexplode", "SoundSlot5")
TNT1 A 0 A_SpawnItemEx("MM7ExplosionSingle",Random(-OFS,OFS),Random(-OFS,OFS),Random(0,OFS),0,0,0,Random(0,359))
VNPK AAAAAA 1 A_GiveInventory("CutterFlag",1) 
VNPK A 0 A_StopSoundEx("SoundSlot7")
TNT1 A 0 A_JumpIfInventory("CutterFlag",TIMER,"WhichDeath")
TNT1 A 0 A_PlaySoundEx("weapon/mm7enemyexplode", "SoundSlot6")
TNT1 A 0 A_SpawnItemEx("MM7ExplosionSingle",Random(-OFS,OFS),Random(-OFS,OFS),Random(0,OFS),0,0,0,Random(0,359))
VNPK AAAAAA 1 A_GiveInventory("CutterFlag",1)
VNPK A 0 A_StopSoundEx("SoundSlot5")
TNT1 A 0 A_PlaySoundEx("weapon/mm7enemyexplode", "SoundSlot7")
TNT1 A 0 A_JumpIfInventory("CutterFlag",TIMER,"WhichDeath")
TNT1 A 0 A_SpawnItemEx("MM7ExplosionSingle",Random(-OFS,OFS),Random(-OFS,OFS),Random(0,OFS),0,0,0,Random(0,359))
VNPK AAAAAA 1 A_GiveInventory("CutterFlag",1)
VNPK A 0 A_StopSoundEx("SoundSlot6")
TNT1 A 0 A_JumpIfInventory("CutterFlag",TIMER,"WhichDeath")
loop
WhichDeath:
TNT1 A 0 A_TakeInventory("CutterFlag",TIMER)
TNT1 A 1 A_Jump(256,"Ground","Air")
wait
Ground:
TNT1 A 0 A_ChangeVelocity(VEL,0,VEL,CVF_RELATIVE|CVF_REPLACE)
TNT1 A 0 A_PlaySoundEx("weapon/mm7enemyexplode", "SoundSlot5")
TNT1 A 0 A_SpawnItemEx("MM7ExplosionSingle",Random(-OFS,OFS),Random(-OFS,OFS),Random(0,OFS),0,0,0,Random(0,359))
VNPK AAAAAA 1 A_GiveInventory("CutterFlag",1)
VNPK A 0 A_StopSoundEx("SoundSlot7")
TNT1 A 0 A_JumpIfInventory("CutterFlag",TIMER,"Halt")
TNT1 A 0 A_PlaySoundEx("weapon/mm7enemyexplode", "SoundSlot6")
TNT1 A 0 A_SpawnItemEx("MM7ExplosionSingle",Random(-OFS,OFS),Random(-OFS,OFS),Random(0,OFS),0,0,0,Random(0,359))
VNPK AAAAAA 1 A_GiveInventory("CutterFlag",1)
VNPK A 0 A_StopSoundEx("SoundSlot5")
TNT1 A 0 A_JumpIfInventory("CutterFlag",TIMER,"Halt")
TNT1 A 0 A_PlaySoundEx("weapon/mm7enemyexplode", "SoundSlot7")
TNT1 A 0 A_SpawnItemEx("MM7ExplosionSingle",Random(-OFS,OFS),Random(-OFS,OFS),Random(0,OFS),0,0,0,Random(0,359))
VNPK AAAAAA 1 A_GiveInventory("CutterFlag",1)
VNPK A 0 A_StopSoundEx("SoundSlot6")
TNT1 A 0 A_JumpIfInventory("CutterFlag",TIMER,"Halt")
Goto Ground+1
Halt:
VNPK A 45 A_stop
TNT1 A 0 A_ChangeFlag("NOGRAVITY",False)
VNPK A 1 A_CheckFloor("Death")
wait
Air:
TNT1 A 0 A_ChangeFlag("MISSILE",True)
TNT1 A 0 A_ChangeFlag("SKYEXPLODE",True)
TNT1 A 0 A_ChangeVelocity(1,0,0,CVF_RELATIVE|CVF_REPLACE)
AirHold:
TNT1 A 0 A_PlaySoundEx("weapon/mm7enemyexplode", "SoundSlot5") 
TNT1 A 0 A_SpawnItemEx("MM7ExplosionSingle",Random(-OFS,OFS),Random(-OFS,OFS),Random(0,OFS),0,0,0,Random(0,359))
VNPK AAA 2 A_scaleVelocity(SCLE)
VNPK A 0 A_StopSoundEx("SoundSlot7")
TNT1 A 0 A_PlaySoundEx("weapon/mm7enemyexplode", "SoundSlot6")
TNT1 A 0 A_SpawnItemEx("MM7ExplosionSingle",Random(-OFS,OFS),Random(-OFS,OFS),Random(0,OFS),0,0,0,Random(0,359))
VNPK AAA 2 A_scaleVelocity(SCLE)
VNPK A 0 A_StopSoundEx("SoundSlot5")
TNT1 A 0 A_PlaySoundEx("weapon/mm7enemyexplode", "SoundSlot7")
TNT1 A 0 A_SpawnItemEx("MM7ExplosionSingle",Random(-OFS,OFS),Random(-OFS,OFS),Random(0,OFS),0,0,0,Random(0,359))
VNPK AAA 2 A_scaleVelocity(SCLE)
VNPK A 0 A_StopSoundEx("SoundSlot6")
loop
Death:
TNT1 A 0 A_Quake(4,35,0,500)
TNT1 A 0 A_PlaySoundEx("mm7/dead","Auto")
TNT1 A 0 A_PlaySoundEx("weapon/GutsmanQuake","Body")
TNT1 A 0 A_SpawnItemEx("FakeDeathFXMM7",0,0,32,0,0,0,EXPL_DEG*1,1)
TNT1 A 0 A_SpawnItemEx("FakeDeathFXMM7",0,0,32,0,0,0,EXPL_DEG*2,1)
TNT1 A 0 A_SpawnItemEx("FakeDeathFXMM7",0,0,32,0,0,0,EXPL_DEG*3,1)
TNT1 A 0 A_SpawnItemEx("FakeDeathFXMM7",0,0,32,0,0,0,EXPL_DEG*4,1)
TNT1 A 0 A_SpawnItemEx("FakeDeathFXMM7",0,0,32,0,0,0,EXPL_DEG*5,1)
TNT1 A 0 A_SpawnItemEx("FakeDeathFXMM7",0,0,32,0,0,0,EXPL_DEG*6,1)
TNT1 A 0 A_SpawnItemEx("FakeDeathFXMM7",0,0,32,0,0,0,EXPL_DEG*7,1)
TNT1 A 0 A_SpawnItemEx("FakeDeathFXMM7",0,0,32,0,0,0,EXPL_DEG*8,1)
TNT1 A 0 A_SpawnItemEx("FakeDeathFXMM7",0,0,32,0,0,0,EXPL_DEG*9,1)
TNT1 A 0 A_SpawnItemEx("FakeDeathFXMM7",0,0,32,0,0,0,EXPL_DEG*10,1)
TNT1 A 35
stop
}
}

Actor MM7ExplosionSingle : BasicClientSide
{
Scale 2.5
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode")
7EXP ABCDEF 2
stop
}
}

actor ShadeManCharged : Inventory
{
inventory.amount 1
inventory.maxamount 1
}
actor ShadeManStareStunned : ShadeManCharged {}
actor ShadeSwooping : ShadeManCharged {}
actor ShadeSwoopGrabbing : ShadeManCharged {}
actor ShadeManAirLinger : ShadeManCharged {}
actor ShadeManUltActive : ShadeManCharged {}
actor ShadeDraining : ShadeManCharged {}
actor VANPookinAltThirdOn : ShadeManCharged {}
actor VANPookinHit : ShadeManCharged {}

actor ShadeManArmor : Inventory
{
inventory.amount 1
inventory.maxamount 105
}

actor ShadeFlightAnimHandler : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_TakeInventory("BaseCustomFlag1")
TNT1 A 0 ACS_NamedExecuteWithResult("VC_SetState",19)
stop
}
}

actor ShadeFlightHandler : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_JumpIfInventory("BaseAltfireAmmo",1,"Pickup2")
stop

Pickup2:
TNT1 A 0 A_GiveInventory("BaseCustomFlag1")
stop
}
}

actor ShadeFlightSpeed : PowerSpeed
{
+POWERSPEED.NOTRAIL
Powerup.Duration -999
Speed  1.5
}

actor ShadeManFlightTurnOffPickUp : CustomInventory
{
states
{
Pickup:
TNT1 A 0 A_GiveInventory("JumpCancler",1)
TNT1 A 0 A_TakeInventory("BaseCustomFlag1",1)
TNT1 A 0 A_GiveInventory("ShadeManAirLinger",1)
TNT1 A 0 A_GiveInventory("ShadeFlightAnimHandler",1)
stop
}
}

actor ShadeFlightCooldown : Inventory
{
inventory.amount 1
inventory.maxamount 140
}

actor ShademanGrabProtector : GrabProtectionBase
{
	DamageFactor "ShadeManDrain", 1.0
}