//These are actors used for ClassBase0


actor DeadClassBundle : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_TakeInventory("UnSolid",999)
//TNT1 A 0 A_TakeInventory("PharaohCharge",999)
//TNT1 A 0 A_TakeInventory("PharaohChargeC",999)
TNT1 A 0 A_TakeInventory("WeaponCharge",999)
TNT1 A 0 A_GiveInventory("EndBossFlashStoppered",1)
TNT1 A 0 A_GiveInventory("CutterFlag",999)
TNT1 A 0 A_GiveInventory("IsDead",1)
TNT1 A 0 A_TakeInventory("WilyBurnTimer",999)
TNT1 A 0 A_TakeInventory("ConcreteTime",999)
TNT1 A 0 A_JumpIfInventory("SpawnTeleFragFlag",1,"DroppedStuff")
TNT1 AAA 0 A_SpawnItemEx("ClassJunkBit",0,0,0,random(1,10),0,random(3,12),random(0,359),1)
TNT1 A 0 A_SpawnItemEx("ScrewSpewer",0,0,0,0,0,0,0,1)
TNT1 A 0 A_GiveInventory("TrioExodiaDropPickup",1)//EvilRobot actor
DroppedStuff:
TNT1 A 0 SetPlayerProperty(0,0,4)
TNT1 A 0 A_NoBlocking
//TNT1 A 0 A_ChangeFlag("SOLID",0)
//TNT1 A 0 A_JumpIfInventory("NoStopDeathFlag",1,2)
//TNT1 A 0 A_Stop
TNT1 A 0 A_GiveToTarget("KilledMeStock",1)
TNT1 A 0 A_GiveToTarget("KilledMe",1)
TNT1 A 0 ACS_ExecuteAlways(999,0,0)
TNT1 A 0 A_JumpIfInventory("JoeHitFlag2",1,"ScoreBall")
DroppedBalls:
TNT1 A 0 A_JumpIfInventory("RiseDeathFlag",1,"Rising")
TNT1 A 0 A_JumpIfInventory("InstagibFlag",1,"Bonus")
TNT1 A 0 A_JumpIfInventory("FallingFlag",1,"Bonus")
stop
Bonus:
TNT1 A 0 A_SetTranslucent(0.0,0)
TNT1 A 0 //A_GiveInventory("",1)//Could do something
stop
Rising:
TNT1 A 0 //A_Stop
TNT1 A 0 A_ChangeFlag("NOGRAVITY",1)
stop
ScoreBall:
TNT1 A 0 A_SpawnItemEx("ScoreBallPickUp",0,0,32,0,0,10,0,1)
goto DroppedBalls
}
}


actor FrozenDeathFXC : FrozenDeathFX{Radius 16 Height 56}

actor FrozenDeathBitFX : BasicClientSide
{
Translation "192:192=4:4", "198:198=201:201", "3:8=72:72", "243:247=72:72", "208:215=4:4"
Scale 1.25
States
{
Spawn:
TNT1 A 0
TNT1 A 0 A_Jump(256,"Spawn1","Spawn2","Spawn3","Spawn4","Spawn5","Spawn6")
Spawn1:
BLIZ A 3 bright
TNT1 A 1
BLIZ B 3 bright
TNT1 A 1
BLIZ C 2 bright
stop
Spawn2:
TNT1 A 0 A_Jump(128,"Spawn2a")
MRFP EDC 3 bright
stop
Spawn2a:
MRFP CDE 3 bright
stop
Spawn3:
TNT1 A 0 A_Jump(128,"Spawn3a")
FLSA RST 3 bright
stop
Spawn3a:
FLSA USW 3 bright
stop
Spawn4:
TNT1 A 0 A_Jump(128,"Spawn4a")
FLSA UVW 3 bright
stop
Spawn4a:
FLSA RVT 3 bright
stop
Spawn5:
FCRA E 3 bright
TNT1 A 1
FCRA E 3 bright
TNT1 A 1
FCRA E 3 bright
stop
Spawn6:
FCRA IJJJ 2 bright
stop
End:
TNT1 A 0
stop
}
}



actor ConfettiDeath : Confetti{+THRUGHOST}

actor ConfettiDeathSpawner : ConfettiSpawner{ReactionTime 9 States{
Spawn:
TNT1 AAA 0 A_SpawnItemEx("ConfettiDeath",random(-16, 16),random(-16, 16),Random(8, 16),random(-3,3), random(-3,3), random(1,-1),0)
TNT1 A 1 A_CountDown
Loop}}

actor DeathFX1C : DeathFX1
{
States
{
Spawn:
MMFX BCDEBCDEBCDEBCDEBCDEBCDEBCDEBCDEBCDEBCDE 2
stop
Death:
TNT1 A 0
stop
}
}

actor TFakeDeathFX1 : DeathFX1C
{
States
{
Spawn:
TMFX BCDEBCDEBCDEBCDEBCDEBCDEBCDEBCDEBCDEBCDE 2
stop
Spawn2:
TMFX BCDE 2//There is a wierd warning with this online, so the above method is placeholder.
TMFX B 0 A_CountDown
loop
}
}

Actor FakeDeathFXC : FakeDeathFX
{
States
{
Spawn:
TNT1 A 1//DeathFX1
PLAY Z 0 A_SpawnItemEx("DeathFX1C",0,0,0,0,0,15,0,0)
PLAY Z 0 A_SpawnItemEx("DeathFX1C",0,0,0,0,0,-15,0,0)
PLAY Z 0 A_SpawnItemEx("DeathFX1C",0,0,0,0,10.598,10.606,0,0)
PLAY Z 0 A_SpawnItemEx("DeathFX1C",0,0,0,0,-10.598,10.606,0,0)
PLAY Z 0 A_SpawnItemEx("DeathFX1C",0,0,0,0,10.606,-10.598,0,0)
PLAY Z 0 A_SpawnItemEx("DeathFX1C",0,0,0,0,-10.606,-10.598,0,0)
PLAY Z 0 A_SpawnItemEx("DeathFX1C",0,0,0,0,15,0,0,0)
PLAY Z 0 A_SpawnItemEx("DeathFX1C",0,0,0,0,-15,0,0,0)
PLAY Z 0 A_SpawnItemEx("DeathFX1C",0,0,0,0,0,5,0,0)
PLAY Z 0 A_SpawnItemEx("DeathFX1C",0,0,0,0,0,-5,0,0)
PLAY Z 0 A_SpawnItemEx("DeathFX1C",0,0,0,0,3.533,3.535,0,1)
PLAY Z 0 A_SpawnItemEx("DeathFX1C",0,0,0,0,-3.533,3.535,0,1)
PLAY Z 0 A_SpawnItemEx("DeathFX1C",0,0,0,0,3.535,-3.534,0,1)
PLAY Z 0 A_SpawnItemEx("DeathFX1C",0,0,0,0,-3.535,-3.534,0,1)
PLAY Z 0 A_SpawnItemEx("DeathFX1C",0,0,0,0,5,0,0,0)
PLAY Z 0 A_SpawnItemEx("DeathFX1C",0,0,0,0,-5,0,0,0)
TNT1 A 1
stop
}
}
Actor TFakeDeathFX : FakeDeathFX
{
States
{
Spawn:
TNT1 A 1
PLAY Z 0 A_SpawnItemEx("TFakeDeathFX1",0,0,0,0,0,15,0,1)
PLAY Z 0 A_SpawnItemEx("TFakeDeathFX1",0,0,0,0,0,-15,0,1)
PLAY Z 0 A_SpawnItemEx("TFakeDeathFX1",0,0,0,0,10.598,10.606,0,1)
PLAY Z 0 A_SpawnItemEx("TFakeDeathFX1",0,0,0,0,-10.598,10.606,0,1)
PLAY Z 0 A_SpawnItemEx("TFakeDeathFX1",0,0,0,0,10.606,-10.598,0,1)
PLAY Z 0 A_SpawnItemEx("TFakeDeathFX1",0,0,0,0,-10.606,-10.598,0,1)
PLAY Z 0 A_SpawnItemEx("TFakeDeathFX1",0,0,0,0,15,0,0,1)
PLAY Z 0 A_SpawnItemEx("TFakeDeathFX1",0,0,0,0,-15,0,0,1)
PLAY Z 0 A_SpawnItemEx("TFakeDeathFX1",0,0,0,0,0,5,0,1)
PLAY Z 0 A_SpawnItemEx("TFakeDeathFX1",0,0,0,0,0,-5,0,1)
PLAY Z 0 A_SpawnItemEx("TFakeDeathFX1",0,0,0,0,3.533,3.535,0,1)
PLAY Z 0 A_SpawnItemEx("TFakeDeathFX1",0,0,0,0,-3.533,3.535,0,1)
PLAY Z 0 A_SpawnItemEx("TFakeDeathFX1",0,0,0,0,3.535,-3.534,0,1)
PLAY Z 0 A_SpawnItemEx("TFakeDeathFX1",0,0,0,0,-3.535,-3.534,0,1)
PLAY Z 0 A_SpawnItemEx("TFakeDeathFX1",0,0,0,0,5,0,0,1)
PLAY Z 0 A_SpawnItemEx("TFakeDeathFX1",0,0,0,0,-5,0,0,1)
TNT1 A 1
stop
}
}

actor DelayPainFX : BasicHelper
{
States
{
Spawn:
TNT1 A 0
TNT1 AAAAAAAAA 2 A_GiveToTarget("PainFXItem",1)
stop
}
}

actor PainFXItem : CustomInventory
{
States
{
Pickup:
TNT1 A 1
TNT1 A 0 A_SpawnItem("PainFX",0,3)
stop
}
}

actor PainScaleVelocityC : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_JumpIfInventory("StunArmor",1,"Pickup3")
TNT1 A 0 A_JumpIfInventory("SemiStunArmor",1,"Pickup2")
TNT1 A 0 A_ScaleVelocity(0.75)
stop
Pickup2:
TNT1 A 0 A_ScaleVelocity(0.875)
stop
Pickup3:
TNT1 A 0
stop
}
}

actor PainScaleVelocityFlashBombC : PainScaleVelocityC 
{
States
{
Pickup:
TNT1 A 0 A_JumpIfInventory("StunArmor",1,"Pickup3")
TNT1 A 0 A_JumpIfInventory("SemiStunArmor",1,"Pickup2")
TNT1 A 0 A_ScaleVelocity(0.9)
stop
Pickup2:
TNT1 A 0 A_ScaleVelocity(0.95)
stop
}
}

actor PainStopC : PainScaleVelocityC 
{
States
{
Pickup:
TNT1 A 0 A_JumpIfInventory("StunArmor",1,"Pickup3")
TNT1 A 0 A_JumpIfInventory("SemiStunArmor",1,"Pickup2")
TNT1 A 0 A_Stop
stop
Pickup2:
TNT1 A 0 A_ScaleVelocity(0.50)
stop
}
}

actor PainRecoilC : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_JumpIfInventory("RecoilPowerC",1,"Pickup2")
TNT1 A 0 A_JumpIfInventory("StunArmor",1,"Pickup2")
TNT1 A 0 A_JumpIfInventory("SemiStunArmor",1,"Pickup2")
TNT1 A 0 A_Recoil(1)
TNT1 A 0 A_GiveInventory("RecoilPowerC",1)
stop
Pickup2:
TNT1 A 0
stop
}
}

actor RecoilPowerC : Powerup
{
Powerup.Duration 1
}

actor SelfTotallyFrozen : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_GiveInventory("SelfTotallyFrozenFlag",1)
TNT1 A 0 SetPlayerProperty(0,1,4)
stop
}
}

actor SelfTotallyFrozenFlag : Inventory
{
inventory.amount 1
inventory.maxamount 1
}

actor SelfStoppedTFFlag : Inventory
{
inventory.amount 1
inventory.maxamount 1
}

actor TotallyFrozenLook : Inventory
{
inventory.amount 1
inventory.maxamount 1
}

actor TotallyFrozenLookOnce : TotallyFrozenLook {}

actor SelfStoppedTF : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_GiveInventory("SelfStoppedTFFlag",1)
TNT1 A 0 SetPlayerProperty(0,1,4)
TNT1 A 0 ACS_ExecuteAlways(806,0)
TNT1 A 0 A_GiveInventory("TotallyFrozenLook",1)
stop
}
}

actor TimeStoppedTF : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_GiveInventory("TimeStoppedTFFlag",1)
TNT1 A 0 SetPlayerProperty(0,1,4)
TNT1 A 0 ACS_ExecuteAlways(806,0)
TNT1 A 0 A_GiveInventory("TotallyFrozenLook",1)
stop
}
}

actor TimeStoppedTFFlag : SelfTotallyFrozenFlag {}

actor WilyIceTotallyFrozen : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_GiveInventory("WilyIceTFFlag",1)
TNT1 A 0 SetPlayerProperty(0,1,4)
TNT1 A 0 ACS_ExecuteAlways(806,0)
TNT1 A 0 A_GiveInventory("TotallyFrozenLook",1)
stop
}
}

actor WilyIceTFFlag : SelfTotallyFrozenFlag {}

actor Unfreeze : CustomInventory
{
States
{
Pickup1:
TNT1 A 0 A_JumpIfInventory("SelfTotallyFrozenFlag",1,"PickupNo")
TNT1 A 0 A_JumpIfInventory("TimeStoppedTFFlag",1,"PickupNo")
TNT1 A 0 A_JumpIfInventory("WilyIceTFFlag",1,"PickupNo")
TNT1 A 0 A_JumpIfInventory("SelfStoppedTFFlag",1,"PickupNo")
TNT1 A 0 A_TakeInventory("TotallyFrozenLook",1)
TNT1 A 0 SetPlayerProperty(0,0,4)
stop
PickupNo:
TNT1 A 0
stop
}
}

actor SelfTotallyUnfrozen : Unfreeze
{
States
{
Pickup:
TNT1 A 0 A_TakeInventory("SelfTotallyFrozenFlag",1)
goto Pickup1
}
}

actor TimeStoppedUnfreeze : Unfreeze
{
States
{
Pickup:
TNT1 A 0 A_TakeInventory("TimeStoppedTFFlag",1)
goto Pickup1
}
}

actor WilyIceUnfreeze : Unfreeze
{
States
{
Pickup:
TNT1 A 0 A_TakeInventory("WilyIceTFFlag",1)
goto Pickup1
}
}

actor SelfStoppedUnfreeze : Unfreeze
{
States
{
Pickup:
TNT1 A 0 A_TakeInventory("SelfStoppedTFFlag",1)
goto Pickup1
}
}

actor AtomicOnce : PowerProtection
{
Powerup.Duration 7
damagefactor "normal", 1.0
damagefactor "AtomicFire3", 0.1
}

actor TempPitProtect : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_JumpIfInventory("TempPitProtectFlag",1,"Pickup2")
TNT1 A 0 A_ChangeFlag("NOBLOCKMONST",0)
TNT1 A 0 A_SpawnItemEx("TempPitProtectEnder")
Pickup2:
TNT1 A 0 A_GiveInventory("TempPitProtectFlag",1)
stop
}
}

actor TempPitProtectFlag : Powerup
{
Powerup.Duration 35
}

actor TempPitProtectEnder
{
Height 0
Radius 0
+NOINTERACTION
-SOLID
+NOGRAVITY
+MISSILE
States
{
Spawn:
TNT1 A 0
Spawn2:
TNT1 A 1
TNT1 A 0 A_JumpIfInTargetInventory("TempPitProtectFlag",1,"Spawn2")
TNT1 A 0 A_GiveToTarget("TempPitProtectEnd", 1)
stop
}
}

actor TempPitProtectEnd : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_JumpIfInventory("IsBot",1,"Pickup2")
TNT1 A 0 A_ChangeFlag("NOBLOCKMONST",1)
Pickup2:
TNT1 A 0
stop
}
}



/*
actor LowGravityEx : LowGravity replaces LowGravity
{
States
{
Pickup:
TNT1 A 1 ACS_ExecuteAlways(204,0,1)
stop
}
}

actor NormalGravityEx : NormalGravity replaces NormalGravity
{
States
{
Pickup:
TNT1 A 1 ACS_ExecuteAlways(204,0,0)
stop
}
}
*/

actor NormalGravityFlag : OnceC{}

actor LowGravityFlag : OnceC{}

actor EndBossFlashStoppered : OnceC{}

actor ScrewSpewer : BasicHelper
{
States
{
Spawn:
PLAY A 0
PLAY A 0 A_Jump(128,2)
PLAY A 0 A_SpawnItemEx("ScrewBoltBigPickup",0,0,0,random(1,3),0,random(10,15),random(0,359),1)
stop
PLAY AA 0 A_SpawnItemEx("ScrewBoltPickup",0,0,0,random(1,6),0,random(5,10),random(0,359),1)
stop
}
}

actor PainFXC : PainFX replaces PainFX
{
States
{
Spawn:
MMFX A 0
MMFX A 0 A_JumpIfInTargetInventory("SuperEffective", 2, "SuperSound")
MMFX A 0 A_JumpIfInTargetInventory("SuperEffective", 1, "Super")
MMFX A 1
stop
Super:
TNT1 A 0 A_SpawnItem("PainFX2")
TNT1 A 1
stop
SuperSound:
MMFX A 0 A_TakeFromTarget("SuperEffective", 1)
TNT1 A 0 A_SpawnItem("PainFX3")
TNT1 A 1
stop
}
}

actor PainFX2 : PainFX
{
scale 3.5
States
{
Spawn:
MMFX A 0
MMFX A 1
stop
}
}

actor PainFX3 : PainFX2
{
States
{
Spawn:
MMFX A 0
MMFX A 0 A_PlaySoundEX("classes/super","Weapon")
MMFX A 1
stop
}
}

actor ImFrozenC : ImFrozen replaces ImFrozen
{
States
{
Spawn:
TNT1 AAAAAAAAAA 1 A_GiveToTarget("WasFrozenTodayFX",1)
TNT1 AAAAAAAAAA 1 A_GiveToTarget("WasFrozenTodayFX",1)
TNT1 AAAAAAAAAA 1 A_GiveToTarget("WasFrozenTodayFX",1)
TNT1 AAAAAAAAAA 1 A_GiveToTarget("WasFrozenTodayFX",1)
TNT1 AAAAAAAAAA 1 A_GiveToTarget("WasFrozenTodayFX",1)
TNT1 AAAAAAAAAA 1 A_GiveToTarget("WasFrozenTodayFX",1)
TNT1 A 1 A_GiveToTarget("ImNotFrozenNowC",1)
stop
}
}

actor ImNotFrozenNowC : ImNotFrozenNow replaces ImNotFrozenNow
{
States
{
Spawn:
TNT1 A 0
stop
Pickup:
TNT1 A 0 A_GiveInventory("WilyIceUnfreeze",1)
TNT1 A 0 A_TakeInventory("IceVision",1)
stop
}
}

actor WasFrozenTodayFX : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_SpawnItemEx("WasFrozenToday",0,0,36,0,0,0,0,1)
TNT1 A 1
stop
}
}

actor WasFrozenToday
{
RenderStyle "Translucent"
scale 5.0
Alpha 0.5
- SOLID
+NOGRAVITY
+CLIENTSIDEONLY
States
{
Spawn:
MRFP B 0
MRFP B 1
stop
}
}
/*
ACTOR TeleportFogC : TeleportFog2 replaces TeleportFog2
{
  States
  {
  Spawn:
    TFOG A 0
	TFOG A 0 A_SpawnItemEx("SpawnProtect")
	TFOG A 3 A_PlaySound("misc/teleport")
    TFOG BC 2
    Stop
}
}

actor SpawnProtect
{
+SOLID
//+CLIENTSIDEONLY
+SHOOTABLE
+DONTRIP
+NODAMAGE
+NOBLOOD
health 99999
+DONTBLAST
height 56
radius 16
scale 2.5
speed 0
States
{
Spawn:
TNT1 A 0
TNT1 A 1
stop
}
}
*/

actor SuperEffective : Inventory
{
inventory.amount 3
inventory.maxamount 3
}

actor SpecialDeathFlag :OnceC{}
//actor NoStopDeathFlag :OnceC{}
actor IceDeathFlag :OnceC{}
actor RiseDeathFlag :OnceC{}
actor RiseDeathFlag2 : Inventory
{
inventory.amount 1
inventory.maxamount 35
}
actor InstagibFlag : OnceC{}
actor FallingFlag : OnceC{}
actor SpawnTeleFragFlag : OnceC{}

actor StunArmor : OnceC{}
actor SemiStunArmor : StunArmor {}

actor StayLocked : OnceC{}

actor SpawningMisfire : OnceC{}

actor CustomBossAmmoBar : OnceC{}

actor GenericSoundFlag : Inventory
{
inventory.amount 1
inventory.maxamount 50
}

/*
actor Shocked2 : Shocked
{
powerup.duration 45
}
*/

actor Shocked_18 : PowerSpeed{powerup.duration 18 Speed 0.0}
