///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//                              JaxOf7's moar amazing class bases.                                                                   //
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
actor ClassBase0 : PlayerPawn  //All Classes inherit from this in order to make pain states more manageable. To make a new class, refer to the guide file.
{
player.displayname "Copy Robot"
player.damagescreencolor "yellow"
player.maxhealth 100
player.forwardmove 0.8, 0.8
player.sidemove 0.78, 0.78
player.jumpz 10
+NOBLOOD
+DONTBLAST
//+NOSKIN
+NODAMAGETHRUST
//+GHOST
player.colorrange 0 0
mass 9999
damagefactor "Dummy", 0.0
gravity 0.8
scale 2.5
+QUICKTORETALIATE
Species "Megaman"
Player.MaxSkinSizeFactor 0, 0

var int user_wepangle;
var int user_weppitch;
var int user_wepangle2;//Dynamo

var int user_wepaimlimit;//SpectrumMystery

States
{
Spawn:
"----" A 0
"----" B 1
"----" A 1
Goto Spawn+2
See:
"----" BCDE 5
Goto Spawn
Missile:
"----" F 5
"----" G 4
goto Spawn

Pain.BotSight:
"----" B 5 HealThing(1)
Goto Spawn+2

//No Hitstun/Suffer Recoil
Pain.Buster:Pain.ChargeBuster:Pain.BassBuster:Pain.RockKick:
Pain.TrebleSentry:Pain.Treble:Pain.TrebleBoost:
Pain.OilSlider:
Pain.QuickBoomerang:Pain.Clash:
Pain.NeedleCannonB:Pain.MagnetMissile:
Pain.DiveMissile:
Pain.ChargeKick:Pain.Dark:Pain.StarCrash:Pain.CrystalEyeBitB:Pain.NapalmBombB:
Pain.YamatoSpear:Pain.CentaurFlash:
Pain.WildCoil:Pain.FreezeCracker:Pain.JunkShot:Pain.ScorchWheel:
Pain.TornadoHold:
Pain.CopyVision:Pain.SpreadDrillB4:
Pain.BusterRodG:Pain.MegaWaterS:Pain.HyperStormH:Pain.HSHFire:
Pain.ScrewCrusher:Pain.SakuRock:
Pain.Punch:Pain.GutsPunch:Pain.JunkPunch:Pain.ColdPunch:
Pain.Misc:
Pain.ClassPainLess:
"----" H 0
Goto Pain+1

//No Hitstun painstates/No recoil
Pain.WilyFireB2:
Pain.FireSpin:Pain.Oil:
Pain.AtomicfireB:
Pain.TopSpinB:
Pain.PharaohHold:Pain.RainFlushWeak:
Pain.GravityB2:Pain.StarCrashB:
Pain.PlantDrain:
Pain.ScorchWheelB:Pain.JunkShield:
Pain.WaterCannon:Pain.ThunderClawT:Pain.FlameSwordSpark:Pain.FlameSwordSpark2:Pain.FlameSwordSpark3:
Pain.BlackHoleBombB:
Pain.WaveBurner:Pain.WaveBurnerUW:Pain.IceWallB:Pain.SpreadDrillB:
Pain.BusterRodGW:
Pain.SakugarneB:
Pain.Crush:
Pain.ClassPainLess2:
"----" H 0
Goto Pain+2



//Semi scale velocity+Recoil
Pain.WindGyro:
Pain.ShadeDrain:
Pain.WaterBalloon:
Pain.FlashBomb:
Pain.RemoteMine:
Pain.IceWall:
Pain.ClassPainSemi:
"----" H 0 A_GiveInventory("PainScaleVelocityFlashBombC",1)
Goto Pain+1

//Semi scale velocity+No Recoil
Pain.FlashBombB:
Pain.ClassPainSemi2:
"----" H 0 A_GiveInventory("PainScaleVelocityFlashBombC",1)
Goto Pain+2

///////////////////
//Sound Based / Power Protects
///////////////////
Pain.AtomicFire3:
"----" H 0 A_GiveInventory("AtomicOnce",1)
Goto Pain

Pain.LeafFall:
"----" H 0 A_GiveInventory("LeafFallProtect",1)
Goto Pain

Pain.TopSpinC:
"----" H 0 A_GiveInventory("TopSpinCProtect",1)
Goto Pain+2

Pain.DiveMine:
"----" H 0 A_GiveInventory("DiveMineProtect",1)
Goto Pain+1

Pain.FlameBlastB:
"----" H 0 A_GiveInventory("FlameBlastProtectC",1)
Goto Pain

Pain.SlashClaw:
"----" H 0 A_PlaySoundEx("weapon/slashclawhit","SoundSlot5")
Goto Pain

Pain.ThunderClawT2:
"----" H 0 A_GiveInventory("ThunderClawT2Protect",1)
Goto Pain+2

Pain.FlameSword:
"----" H 0 A_GiveInventory("FlameSwordProtect",1)
"----" HH 0 A_SpawnItemEx("ScorchBit",0,0,0,random(-10,10),random(-10,10),random(10,15),random(0,360))
Goto Pain

Pain.ODuoWave:
"----" H 0 A_GiveInventory("ODuoWaveProtect",1)
Goto Pain+1

Pain.FlashBombT:
"----" H 0 A_GiveInventory("FlashBombTProtect",1)
goto Pain.FlashbombB

Pain.SpreadDrillB1:
Pain.SpreadDrill:
Pain.SpreadDrill2:
Pain.SpreadDrill3:
"----" H 0 A_JumpIfInventory("SpreadDrillProtectC",1,2)
"----" H 0 A_PlaySoundEx("weapon/spreaddrillhit","SoundSlot5")
"----" H 0 A_GiveInventory("SpreadDrillProtectC",1)
Goto Pain+1

Pain.RemoteMineB:
"----" H 0 A_GiveInventory("RemoteMineBProtect",1)
Goto Pain+2

Pain.FlameSwordB:
"----" H 0 A_SpawnItemEx("ScorchBit",0,0,0,random(-10,10),random(-10,10),random(10,15),random(0,360))
Goto Pain+1

Pain.TrioSpectrum:
"----" H 0 A_GiveInventory("TrioSpectrumPickup",1)
Goto Pain+2

Pain.LaserTrident:
"----" H 0 A_GiveInventory("LaserTridentProtect",1)
goto Pain

Pain.MagicCardBF:
"----" H 0 HealThing(1)
goto Pain.FlashbombB

///////////////////
//Movement Based (Stops/Slows)
///////////////////
Pain.ClassPainTimeStop:
Pain.TimeStop:
"----" A 0 A_GiveInventory("TimeStoppedTF",1)
"----" H 0 A_Jump(256, "TimeStopped")
Goto TimeStopped
TimeStopped:
"----" AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 1 A_Stop
Goto Pain+2

Pain.BrightB:
"----" H 0 A_SpawnItemEx("BossFlashStoppered")
Goto Pain+2

Pain.IceWallS:
"----" H 0 A_JumpIfInventory("GroundIceFlag",1,3)
"----" H 0 A_PlaySound("weapon/ColdFrozen",5,1.0)
"----" H 0 A_SpawnItemEx("GroundIce")
"----" H 0
Goto Pain+2
Pain.FreezeCrackerB:
"----" H 0 A_SpawnItemEx("GroundIce")
Goto Pain+2
Pain.IceWaveB:
"----" H 0 A_SpawnItemEx("GroundIceFrost")
Goto Pain+2

Pain.RemoteMineB2:
"----" H 0 A_GiveInventory("PainStopC",1)
Goto Pain+2
Pain.ThunderClawG:
Pain.CrashBomb:
"----" H 0 A_GiveInventory("PainStopC",1)
Goto Pain+1

Pain.TimeSlow:
"----" H 0 A_GiveInventory("Slowed",1)
Goto Pain+2
Pain.MegaIceBall:
"----" H 0 A_GiveInventory("PainStopC",1)
Pain.HornetHoney:
Pain.IceSlashSlow:
"----" H 0 A_GiveInventory("IcemanSlowPickup",1)
Goto Pain+2

Pain.ConcreteShot:
"----" H 0 A_JumpIfInventory("ConcreteVision",1,"ConcreteReset")
"----" H 0 A_GiveInventory("ConcreteVision",1)
"----" H 0 A_GiveInventory("ConcreteTime",105)
"----" H 0 A_SpawnItemEx("ConcreteWatcher")
goto Pain+1
ConcreteReset:
"----" H 0 A_GiveInventory("ConcreteTime",105)
goto Pain+1

Pain.BurnerShockW:
"----" H 0 A_SpawnItemEx("ShockFX",4,0,32)
"----" H 0 A_GiveInventory("Shocked_18",1)
"----" H 0 A_GiveInventory("BurnerTrapProtect",1)
Goto Pain+1
Pain.BurnerShock:
"----" H 0 A_GiveInventory("BurnerTrapProtect",1)
Pain.NeutralStopShock:
"----" H 0 A_Stop
Pain.CentaurShock:
Pain.JunkShock:
Pain.NeutralShock:
Pain.SparkShock:
Pain.ElectroNet:
"----" H 0 A_SpawnItemEx("ShockFX",4,0,32)
"----" H 0 A_GiveInventory("Shocked",1)
Goto Pain+1
Pain.SparkShockW:
Pain.NeutralShockW:
"----" H 0 A_SpawnItemEx("ShockFX",4,0,32)
"----" H 0 A_GiveInventory("Shocked_18",1)
Goto Pain+1

///////////////////
//Movement Based (Flings)
///////////////////
Pain.DangerTrap:
"----" H 0 A_SpawnItemEx("DangerTrapped")
Goto Pain+2
Pain.TornadoHoldB:
"----" H 0 A_SpawnItemEx("TornadoHeld")
goto Pain+2
Pain.Kamaitachi:
"----" H 0 A_JumpIfInventory("FlightDisableFlag",1,2)
"----" H 0 ThrustThingZ(0,40,0,0)
"----" H 0
Goto Pain+2
Pain.MWSLift:
"----" H 0 A_JumpIfInventory("FlightDisableFlag",1,2)
"----" H 0 ThrustThingZ(0,80,0,0)
"----" H 0 A_GiveInventory("MWSLiftProtect",1)
Goto Pain+2

Pain.WindStorm:
Pain.FlingDamage:
"----" H 0 //ThrustThing(random(0,255),50,1,0)
"----" H 0 ThrustThing(random(0,255),5,0,0)
"----" H 0 ThrustThingZ(0,30,0,0)
Goto Pain+1

Pain.TornadoBlow:
"----" H 0 ThrustThingZ(0,60,0,0)
goto Pain+1

Pain.GravityHold:
"----" H 0 A_ChangeVelocity(momx, momy, 0, CVF_REPLACE)
"----" H 0 A_JumpIf(z-floorz>180,"GravityForce4")
"----" H 0 A_JumpIf(z-floorz>128,"GravityForce3")
"----" H 0 A_JumpIf(z-floorz>32,"GravityForce2")
"----" H 0 A_JumpIf(z-floorz>8,"GravityForce1")
Goto GravityForceFinish
GravityForce4:
"----" H 0 A_GiveInventory("GravityForce4",1)
Goto GravityForceFinish
GravityForce3:
"----" H 0 A_GiveInventory("GravityForce3",1)
Goto GravityForceFinish
GravityForce2:
"----" H 0 A_GiveInventory("GravityForce2",1)
Goto GravityForceFinish
GravityForce1:
"----" H 0 A_GiveInventory("GravityForce1",1)
Goto GravityForceFinish
GravityForceFinish:
"----" H 0 A_CheckFloor(2)
"----" H 0 ThrustThingZ(0,150,1,0)
"----" H 0
Goto Pain+1

///////////////////
//Effect Based
///////////////////
Pain.FlashBulb:
Pain.FlashStopper:
"----" H 0 
"----" H 0 A_JumpIfInventory("BrightBlind", 1,3)
"----" H 0 A_GiveInventory("BrightBlind",125)
"----" H 0 ACS_ExecuteAlways(249, 0)
Goto Pain+1
"----" H 0 A_GiveInventory("BrightBlind",55)
Goto Pain+1

Pain.Drowning:
Pain.Fire:
Pain.Falling:
Pain.Slime:
"----" H 0
"----" H 0 A_JumpIfInventory("BeatCallCheck", 1, "BeatAssist")
Goto Pain+1
BeatAssist:
"----" H 0
"----" H 0 HealThing(2)
"----" H 0 ACS_ExecuteAlways(205,0)
Goto Pain+1

Pain.WilyFire:
"----" H 0 A_SpawnItemEx("ImOnFire")
"----" H 0 A_GiveInventory("FireVision",1)
Goto Pain+2
Pain.WilyIce:
"----" H 0 A_GiveInventory("WilyIceTotallyFrozen",1)
"----" H 0 A_TakeInventory("SuperEffective",1)
"----" H 0 A_GiveInventory("EndBossFlashStoppered",1)
"----" H 0 A_GiveInventory("TimeStoppedUnfreeze",1)
"----" H 0 A_SpawnItemEx("ImFrozen")
"----" H 0 A_GiveInventory("IceVision",1)
"----" H 0 A_Stop
"----" H 0 A_Jump(256, "Spawn")
Goto Spawn

///////////////////
//TID Soup Based
///////////////////

//Bonus Damage
Pain.MegaFireBall:
"----" H 0 A_SpawnItemEx("PainMegaFireBallHit",0,0,0,0,0,0,0,1)
Goto Pain+1

Pain.WilyFireB1:
"----" H 0 A_SpawnItemEx("PainWilyFireB1Hit",0,0,0,0,0,0,0,1)
Goto Pain+1

Pain.GravityB1:
"----" H 0// A_CheckFloor(2)
"----" H 0 A_SpawnItemEx("PainGravityB1Hit")
Goto Pain+2
"----" H 0
"----" H 0 ThrustThingZ(0,60,0,0)
Goto Pain+2
Pain.GravityS1:
"----" H 0 A_SpawnItemEx("PainGravityT1Hit")
Goto Pain+2
Pain.GravityT1:
"----" H 0 A_SpawnItemEx("PainGravityT1Hit")
Goto Pain+2

Pain.DynaTag:
"----" H 0 A_GiveInventory("DynaTagCooldown",1)
"----" H 0 A_SpawnItemEx("PainDynaTagHit")
"----" H 0 A_PlaySoundEx("classes/DynamoTag","Voice")
"----" H 0 HealThing(1)
Goto Pain+5

//Fling
Pain.DuoRam:
"----" H 0 A_SpawnItemEx("PainDuoRamHit")
"----" H 0 ThrustThingZ(0,28,0,0)
Goto Pain+2

Pain.MagPush:
"----" H 0 A_GiveInventory("HeHasMyPowerPower",1)
"----" H 0 A_SpawnItemEx("PainMagPushHit")
Goto Pain+2

Pain.KnightRush:
"----" H 0 A_SpawnItemEx("PainKnightRushHit")
Goto Pain.SparkShock

Pain.WindStormPull:
"----" H 0 ThrustThingZ(0,20,0,0)
"----" H 0 A_SpawnItemEx("PainWindStormPullHit")
Goto Pain+2
Pain.WindStormPush:
"----" H 0 ThrustThingZ(0,20,0,0)
"----" H 0 A_SpawnItemEx("PainWindStormPushHit")
Goto Pain+2

Pain.ODuoRam:
"----" H 0 A_GiveInventory("ODuoRamProtect",1)
"----" HH 0 A_SpawnItemEx("PainDuoRamHit")
Goto Pain+2

Pain.PiratePush:
"----" H 0 A_JumpIfInventory("PiratePushProtect",1,2)
"----" H 0 A_SpawnItemEx("PainPiratePushHit")
"----" H 0 A_GiveInventory("PiratePushProtect",1)
Goto Pain+2

Pain.MWSPush:
"----" H 0 A_SpawnItemEx("PainMWSPushHit")
Goto Pain+2

Pain.HyperStormHF:
"----" H 0 A_SpawnItemEx("PainHyperStormHFHit")
Goto Pain+2

//Give on-hit
Pain.RollShock:
"----" H 0 A_SpawnItemEx("PainRollHit")
Goto Pain.SparkShock
Pain.RollCleanse:
"----" H 0 A_SpawnItemEx("PainRollHit")
Goto Pain+1
Pain.RollSwing:
"----" H 0 A_GiveInventory("TempPitProtect",1)
"----" H 0 ThrustThing(random(0,255),15,1,0)
"----" H 0 ThrustThingZ(0,50,0,0)
Pain.RollSwing2:
"----" H 0 A_SpawnItemEx("PainRollHit")
Goto Pain+2
Death.RollShock:Death.RollCleanse:Death.RollSwing:Death.RollSwing2:
"----" H 0 A_GiveToTarget("RollHealAmmo",6)
goto Death

Pain.JoeTruck:
"----" H 0 A_GiveInventory("JoeHitItem",1)
goto Pain+2
Pain.Joe:Pain.JoeGrenade:Pain.JoeApache:
"----" H 0 A_GiveInventory("JoeHitItem",1)
goto Pain+1
Death.Joe:Death.JoeGrenade:
"----" H 0 A_GiveToTarget("JoeUpgradeAmmo",105)
Death.JoeTruck:Death.JoeApache:
"----" H 0 A_GiveInventory("JoeHitItem",1)
goto Death

Pain.ToadLeap:
"----" H 0 A_SpawnItemEx("PainToadLeapHit")
"----" H 0 A_GiveInventory("ToadLeapProtect",1)
Goto Pain+2
Death.ToadLeap:
"----" H 0 A_GiveToTarget("ToadLeap_Pickup",1)
goto Death

Death.SkullSniperX:
"----" H 0 A_GiveToTarget("SkullHyperDeathPickup",1)
goto Death

Pain.BlizzardBowl:
"----" H 0 A_SpawnItemEx("PainBlizzardBowlHit")
"----" H 0 A_GiveInventory("BlizzardBowlProtectC",1)
Goto Pain
Death.BlizzardBowl:
"----" H 0 A_GiveToTarget("CrackFlag",1)
goto Death

Pain.PlantBuster:
"----" H 0 A_SpawnItemEx("PainPlantBusterHit")
Goto Pain+1
Death.PlantBuster:
"----" H 0 A_GiveToTarget("LMSRegen",1)
Goto Death

Pain.FlashBombB1:
"----" H 0 A_SpawnItemEx("PainFlashBombB1Hit")
goto Pain.FlashBomb
Pain.FlashBombB2:
"----" H 0 A_SpawnItemEx("PainFlashBombB2Hit")
goto Pain.FlashBomb
Death.FlashBombB1:
"----" H 0 A_GiveToTarget("THATFELTGOODAMMO",2)
Goto Death
Death.FlashBombB2:
"----" H 0 A_GiveToTarget("THATFELTGOODAMMO",6)
Goto Death

Pain.MagicCardB:
"----" H 0 A_GiveInventory("MagicCardProtectC",1)
"----" H 0 A_GiveInventory("PainMagicCardBHit",1)
goto Pain
Death.MagicCardB:
"----" H 0 A_GiveToTarget("Health",6)
Goto Death

Pain.ScrewCrusherM:
"----" H 0 A_SpawnItemEx("PainScrewCrusherMHit",1)
goto Pain+2

Pain.HSHCold:
"----" H 0 A_SpawnItemEx("PainHSHColdHit")
Goto Pain+2
Death.HSHCold:
"----" H 0 A_GiveToTarget("HyperStormCold",25)
Goto Death

Pain.HSHSuck:
"----" H 0 A_SpawnItemEx("PainHSHSuckHit")
Goto Pain+2
Death.HSHSuck:
"----" H 0 A_GiveToTarget("Health",2)
Goto Death





/*Pain.Normal:Pain.ProtoBuster:Pain.MegaBuster3:Pain.DuoFist1:Pain.DuoFist2:Pain.DuoFist3:*/
Pain.MegaElecBall:/*Pain.MegaFireBall:*/Pain.MegaBombBall://Pain.MegaIceBall:
Pain.RollingCutter:Pain.SuperArm:Pain.IceSlasher:Pain.HyperBomb:Pain.FireStorm:Pain.ThunderBeam:/*Pain.OilSlider:*/Pain.OilFlame:
Pain.MetalBlade:Pain.AirShooter:Pain.BubbleLead:Pain.AtomicFire1:Pain.AtomicFire2:/*Pain.AtomicFire3:*/Pain.LeafShield:
Pain.GeminiLaser:Pain.HardKnuckle:Pain.TopSpin:Pain.SearchSnake:Pain.ShadowBlade:Pain.NeedleCannon:
Pain.RainFlush:Pain.DrillBomb:Pain.PharaohShot1:Pain.PharaohShot2:Pain.PharaohShot3:Pain.RingBoomerang:Pain.DustCrusher:Pain.DustCrusherBit:Pain.SkullBarrier:
Pain.WaterWave:Pain.PowerStone:Pain.GyroAttack:Pain.NapalmBomb:Pain.CrystalEye:Pain.CrystalEyeBit:Pain.DarkShot:
Pain.BlizzardAttack:Pain.FlameBlast:Pain.KnightCrush:Pain.SilverTomahawk:Pain.PlantBarrier:
/*Pain.FreezeCracker:*/Pain.FreezeCrackerBit:/*Pain.JunkShot:*/Pain.DangerWrap:Pain.ThunderBolt:Pain.WildCoil2:Pain.NoiseCrush1:Pain.NoiseCrush2:
Pain.MegaBall:Pain.AstroCrush:Pain.IceWave:Pain.ThunderClaw:/*Pain.ThunderClawT:*/Pain.WaterBalloon:Pain.HomingSniper:Pain.GrenadeSD:
Pain.PlugBall:Pain.HornetChaser:Pain.MagmaBazooka1:Pain.MagmaBazooka2:Pain.BlackHoleBomb:Pain.JewelSatellite:
Pain.SolarBlaze:
Pain.TenguBlade:Pain.MagicCard:Pain.LightningBolt:
Pain.MirrorBuster:Pain.MirrorBuster1:Pain.MirrorBuster2:Pain.MirrorBuster3:Pain.Sakugarne:Pain.BalladeCracker:
Pain.Mine:Pain.SkullSniper:Pain.SkullSniperX:Pain.CentaurArrow:
Pain.WilyLightning://Pain.TopSpinB:
Pain.Coal:
//Pain.Tango:Pain.FireTrap:Pain.FirePillar:
Pain.ClassPain:
Pain:
"----" H 0 A_GiveInventory("PainScaleVelocityC",1)
"----" H 0 A_GiveInventory("PainRecoilC",1)
"----" H 0 A_TakeInventory("SuperEffective",1)
"----" H 0 A_GiveInventory("EndBossFlashStoppered",1)
"----" H 0 A_Pain
"----" H 0 A_GiveInventory("TimeStoppedUnfreeze",1)
"----" H 0
"----" H 0 A_Jump(256, "ClassPain")
goto ClassPain
ClassPain:
"----" H 0
goto PainContinue
PainContinue:
//"----" H 1 A_SpawnItem("PainFX",0,3)
//"----" H 1// A_GiveInventory("PainRecoilC",1)
"----" "##########" 2 A_SpawnItem("PainFX",0,3)//HHHHHHHHHH
"----" H 1 
"----" H 0 A_Jump(256, "Spawn")
"----" H 1 A_Jump(256, "Spawn")
Goto Spawn

//Death states

Death.Ice:
Death.IceSlashSlow:Death.MegaIceBall:
Death.WilyIce:Death.TimeStop:
Death.IceWave:Death.IceWaveB:
Death.IceWallS:Death.ColdPunch:
Death.ClassPainTimeStop:Death.Thomas:
"----" H 0 A_GiveInventory("IceDeathFlag",1)
goto Death

Death.WindStorm:Death.WindStormPull:Death.WindStormPush:
Death.GravityHold:Death.GravityB1:Death.GravityT1:
Death.DangerTrap:
Death.TornadoHoldB:
Death.TornadoBlow:
Death.MWSLift:
"----" H 0 A_GiveInventory("RiseDeathFlag",1)
goto Death

Death.spawntelefrag:
"----" H 0 A_GiveInventory("SpawnTeleFragFlag",1)
goto Death
Death.instagib:
Death.GravityB2:
Death.Beam:Death.Telefrag:Death.Spiney:Death.Crush:Death.Suicide://Death.Extreme:Death.InstantDeath:
//Death.GravityHold:Death.GravityB1:Death.GravityB2:
"----" H 0 A_GiveInventory("InstagibFlag",1)
"----" H 0 A_SetTranslucent(0.0,0)
goto Death

Death.Fire:Death.Slime:Death.Drowning:Death.Exit:
Death:
"----" H 0 A_GiveInventory("DeadClassBundle")
"----" H 0 A_Jump(256,"DeathFix")
goto DeathFix

DeathFix://Used to show the H sprite for a class on death and check if a class should do a special death.
"----" H 0
"----" H 1
goto DeathContinue

ClassDeath://Used for special deaths. (such as grenademan)
"----" H 0
"----" H 1
goto MegaDeathEnd


ClassDeathM://Placeholder to fix desync online
"----" H 1
goto MegaDeathEnd
ClassDeathR:
"----" H 1
goto RiseDeath
ClassDeathRE:
"----" H 1
goto MegaDeathEnd
ClassDeathI:
"----" H 1
goto IceDeath

DeathContinue://Which state to hop to
"----" H 0
"----" H 0 A_JumpIfInventory("SpecialDeathFlag",1,"ClassDeath")
"----" H 0 A_JumpIfInventory("InstagibFlag",1,"MegaDeathEnd")
"----" H 0 A_JumpIfInventory("RiseDeathFlag",1,"RiseDeath")
"----" H 0 A_JumpIfInventory("IceDeathFlag",1,"IceDeath")
"----" H 19
"----" H 0
goto MegaDeathEnd

RiseDeath:
"----" H 1 ThrustThingZ(0,20,0,1)
"----" H 0 A_JumpIf(ceilingz-z<64,"MegaDeathEnd")
"----" H 0 A_GiveInventory("RiseDeathFlag2",1)
"----" H 0 A_JumpIfInventory("RiseDeathFlag2",35,"MegaDeathEnd")
Goto RiseDeath
IceDeath:
"----" H 0 ACS_ExecuteAlways(998,0,666,10)
"----" H 1 A_PlaySoundEx("CBM/freeze","Voice")
"----" HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH 1 A_SpawnItemEx("FrozenDeathBitFX",frandom(16,48),0,fRandom(16,48),0,0,0,random(0,359))
"----" H 0 A_PlaySoundEx("CBM/icebreak","Body")
"----" H 0 A_SpawnItemEx("FrozenDeathFXC",0,0,0)
goto DeathWait
Death.Falling:
"----" H 0 A_GiveInventory("FallingFlag",1)
"----" H 0 A_GiveInventory("DeadClassBundle")
"----" H 0 A_SetTranslucent(0.0,0)
"----" H 0 A_PlaySoundEx("*death","Voice")
goto DeathWait

MegaDeathEnd:
"----" H 0 A_ChangeVelocity(0,0,0,CVF_REPLACE)
"----" H 0 A_PlaySoundEx("*death","Voice")//A_XScream
"----" H 0 A_JumpIf(ACS_ExecuteWithResult(143,0)>=0,3)//Check if team game
"----" H 0 A_SpawnItemEx("FakeDeathFXC",0,0,32)
"----" H 0 A_Jump(256,2)
"----" H 0 A_SpawnItemEx("TFakeDeathFX",0,0,32,0,0,0,0,1)
"----" H 0
goto DeathWait

DeathWait:
PLAY Z 1 A_CheckPlayerDone
wait

DropWeapon:
"----" H 0
"----" H 0 A_Jump(256,"NoDropWeapon")
goto NoDropWeapon
NoDropWeapon:
PLAY Z 1 A_CheckPlayerDone
wait

PunkSpin:
"----" AVW 3
"----" XY 3
Goto PunkSpin+3
PunkStop:
"----" WV 5
Goto Spawn
EnkerRaise:
"----" Y 1
loop
EnkerAbsorb:
"----" Y 0 A_PlaySoundEx("weapon/mirrorabsorb","Voice")
"----" Y 0 A_GiveInventory("EnkerMirrorCount",1)
Goto EnkerAbsorb3
EnkerAbsorb3:
"----" Y 3 ACS_ExecuteAlways(998,0,65)
"----" Y 0 A_JumpIfInventory("EnkerMirrorCount",1,"EnkerAbsorb2")
Goto Spawn
EnkerAbsorb2:
"----" Y 3 ACS_ExecuteAlways(998,0,66)
"----" Y 0 A_JumpIfInventory("EnkerMirrorCount",1,"EnkerAbsorb3")
Goto Spawn
DarkLeap:
"----" Y 1 A_SpawnItemEx("DarkDamager")
"----" Y 0 A_JumpIf(z-floorz==0,"Spawn")
loop
BalladeJump:
"----" Y 5 A_SpawnItemEx("BalladeMelee")
loop
TheEnd:
"----" G 4
loop
CreditWalk:
"----" BCDE 8
loop
//AmmoGet:
//"----" Y 0 A_PlaySoundEx("weapon/mirrorabsorb","Voice")
//"----" Y 0 A_GiveInventory("MirrorCharge",7)
//EnkerClassAbsorb:
//"----" Y 35 
//"----" Y 0
//goto Spawn+1
}
}
