actor ClassBase2 : ClassBase1
{
damagefactor "Drowning", 1.0
damagefactor "Slime", 1.0
damagefactor "Fire", 1.0
damagefactor "Falling", 1.0
damagefactor "Ice", 1.0
damagefactor "Spiney", 1.0
damagefactor "Crush", 1.0
damagefactor "Beam", 1.0
damagefactor "PressBall", 1.0
damagefactor "BurnWave", 1.0

// [BG] To prevent every player from executing event scripts found in GND_BLCK.acs
// If event scripts arent used to handle some painstates, comment this flag out
//NOTE: THIS WILL CAUSE DAMAGE DISPLAY TO BREAK
//+NODAMAGEEVENTSCRIPT 

states
{
//Modders, if you want to replace Core or CBM damagetypes, put them here.
//This will allow the entire weakness checks in 'ClassBase3' to work without issue.
//[Celebi]

//Pain.TornadoM_Lift:
//"----" H 0 ThrustThingZ(0,22222,0,1)
//goto Pain+2

Pain.BlockM_Fist:
"----" H 0 A_PlaySoundEx("weapon/golembigslapped","SoundSlot5")
Pain.BlockM_BigBlock:
Pain.BlockM_Explode:
Pain.BlockM_Dig:
Pain.BlockM_Splat:
Pain.BlockM_Buster:
"----" H 0
Goto Pain+2

Death.BlockM_Fist:
"----" H 0 A_PlaySoundEx("weapon/golembigslapped","SoundSlot5")
"----" H 0 ThrustThingZ(0,120,0,0)
"----" H 0 A_SpawnItemEx("DeathConcreteM_BashHit",1)
goto FlingDeath

Pain.BlockM_Splat:
"----" H 0 ThrustThingZ(0,20,1,0)
Goto Pain+2

Death.BlockM_Splat:
"----" H 0 ThrustThingZ(0,20,1,0)
goto Death.Flatten

Pain.BlockM_Uppercut:
"----" H 0 ThrustThingZ(0,80,0,0)
Goto Pain+2

Death.BlockM_Uppercut:
"----" H 0 ThrustThingZ(0,160,0,0)
Goto FlingDeath

Pain.BlockM_Drop:
"----" H 0 ThrustThingZ(0,20,1,0)
"----" H 0 A_SpawnItemEx("ShockFX",4,0,32)
"----" H 0 A_GiveInventory("Shocked_18",1)
Goto Pain+2

Pain.BlockM_Rain:
"----" H 0 ThrustThingZ(0,20,1,0)
"----" H 0 A_GiveInventory("BlockRainProtect",1)
Goto Pain+2

Pain.PileDriver: 
"----" H 0 A_GiveInventory("PileDriverProtect",1)
Goto Pain+2 

Pain.ImpactM_Stomp:
"----" H 0 A_GiveInventory("ImpactM_StompProtect",1)
Goto Pain+2

Pain.ImpactM_Spike:
Goto Pain+2
Pain.ImpactM_DriverBoom: 
"----" H 0 A_GiveInventory("ImpactM_DriverProtect",1)
Goto Pain+2 
Pain.ImpactM_PileDriver:  
"----" H 0 ACS_NamedExecuteAlways("ImpactManArmorBreak",0,0,0,0) 
"----" H 0 A_GiveInventory("ImpactM_DriverProtect",1)
"----" H 0 A_GiveInventory("Impact_DEF_Break_P",1) 
"----" H 0 A_PlaySoundEx("weapon/hknucklehit","Body")
Goto Pain+2
Pain.ImpactM_PGBOOOOOOOOOOOOOM:
"----" H 0 ACS_NamedExecuteAlways("ImpactManArmorBreak",0,0,0,0) 
"----" H 0 A_GiveInventory("Impact_DEF_Break_P",1) 
"----" H 0 A_GiveInventory("ImpactNukeProtect",1)
Goto Pain+2

Pain.ImpactM_Traps:
"----" H 0 A_ScaleVelocity(.8)
"----" H 0 A_SpawnItemEx("ScrewBoltMiniPickup",0,0,32,Random(3,6),0,Random(6,12),Random(0,359),1)
"----" HHH 0 A_SpawnItemEx("PileDriverArmorBreakFX",random(-16,16),random(-16,16),Random(25,50),frandom(2,6),0,frandom(-0.5,7.55),frandom(1,359),1)
Goto Pain+2

Death.ImpactM_Stomp: 
Death.ImpactM_Spike: 
Death.ImpactM_DriverBoom: 
"----" H 0 
Goto Death
Death.ImpactM_PileDriver: 
"----" HH 0 A_SpawnItemEx("ScrewBoltPickup",0,0,32,Random(3,6),0,Random(6,12),Random(0,359),1)
goto Death.FlingDamageGib
Death.ImpactM_PGBOOOOOOOOOOOOOM:
"----" HH 0 A_SpawnItemEx("ScrewBoltPickup",0,0,32,Random(3,6),0,Random(6,12),Random(0,359),1)
Goto Death.MetalPress

Pain.ShadowM_Caltrop:
"----" H 0 A_GiveInventory("ShadowCaltropBleed_P",1)
goto Pain

Death.HSH_Drain:
"----" H 0 A_SpawnItemEx("KillHSH_DrainHit")
"----" H 0 A_PlaySoundEx("om/nom","SoundSlot5")
Goto Death

Pain.ColdM_Punch:
"----" H 0 A_SpawnItemEx("PainPharaohPunchHit",1)
"----" H 0 A_GiveInventory("ColdShoulderShatterer",1)
goto Pain

Pain.TrioAstroCrush:
"----" H 0 A_GiveInventory("GigaAstroCrushProtect",1)
goto Pain

Pain.Neptune_Shot:
Pain.Neptune_ShotBit:
"----" H 0 A_ScaleVelocity(.95)
goto Pain+2

Pain.Neptune_SaltQuake:
"----" H 0 A_GiveInventory("Neptune_SaltQuakeProtect",1)
Pain.Neptune_StompBig:
"----" H 0 A_ScaleVelocity(0.5)
Goto Pain+2

Pain.CrashM_Mine:
Pain.CrashM_Clash:
"----" H 0 A_ScaleVelocity(0.6)
Goto Pain+2

Pain.MagicM_Orb:
"----" H 0 A_ScaleVelocity(0.25)
Goto Pain+2

Pain.CommandoM_Wave:
"----" H 0 A_GiveInventory("CommandoM_WaveProtect",1)
Goto Pain+2

Pain.YellowDevilP:
"----" H 0 A_SpawnItemEx("PainYellowDevilPHit")
"----" H 0 ThrustThingZ(0,20,0,0)
Goto Pain+2
Death.YellowDevilP:
"----" H 0 A_SpawnItemEx("DeathYellowDevilPHit",1)
"----" H 0 ThrustThingZ(0,120,0,0)
goto Death.FlingDamageGib

Pain.HornetM_Slow:
"----" H 0 A_JumpIfInventory("PowerIceHornet",1,2)
"----" H 0 A_GiveInventory("HornetmanSlowPickup",1) 
"----" H 0 A_GiveInventory("PowerIceGiverHornet",1) 
"----" H 0 
Goto Pain+2

Pain.Roll_Swing:
"----" H 0 //A_GiveInventory("TempPitProtect_P",1)
"----" H 0 //ThrustThing(random(0,255),15,1,0)
"----" H 0 //ThrustThingZ(0,50,0,0)
"----" H 0 A_GiveToTarget("RollHyperDashAmmo",55)
"----" H 0 A_GiveToTarget("RollHealAmmo",4)
Goto Pain+2
Pain.Roll_Whiff:
"----" H 0 //A_GiveInventory("TempPitProtect_P",1)
"----" H 0 //ThrustThing(random(0,255),15,1,0)
"----" H 0 //ThrustThingZ(0,50,0,0)
"----" H 0 A_GiveToTarget("RollHyperDashAmmo",55)
Goto Pain+2
Death.Roll_Swing:
"----" H 0 A_GiveToTarget("RollHealAmmo",4)
Death.Roll_Whiff:
"----" H 0 A_GiveToTarget("RollHyperDashAmmo",55)
"----" H 0 ThrustThing(random(0,255),15,1,0)
"----" H 0 ThrustThingZ(0,50,0,0)
Goto Death.FlingDamage

Pain.FlameM_Pillar:
"----" H 0 A_GiveInventory("FlameM_PillarProtect",1)
goto Pain+2

Pain.AirM_Wall:
"----" H 0 A_GiveInventory("AirM_WallProtect",1)
Goto Pain+2

Pain.DocR_Buster:
"----" H 0 A_SpawnItemEx("PainDocR_BusterHit")
Goto Pain+2
Death.DocR_Buster:
"----" H 0 A_GiveToTarget("DocVirusAmmo",10)
Goto Death

Pain.WoodM_LeafRain:
"----" H 0 A_GiveInventory("WoodM_LeafRainProtect",1)
Goto Pain+2

Pain.DiveM_Mine:
"----" H 0 A_GiveInventory("DiveM_MineProtect",1)
Goto Pain+2

Pain.WindM_Shot:
"----" H 0 //A_GiveInventory("WindM_ShotProtect",1)
Goto Pain+2

Pain.JunkM_Cube:
"----" H 0 //A_GiveInventory("JunkM_CubeProtect",1)
Goto Pain+2

Pain.GroundM_Shot1:
Pain.GroundM_Shot2:
Pain.GroundM_Shot3:
"----" H 0 A_JumpIfInventory("GroundM_DrillProtect",1,2)
"----" H 0 A_PlaySoundEx("weapon/spreaddrillhit","SoundSlot5")
"----" H 0 A_GiveInventory("GroundM_DrillProtect",1)
Goto Pain+2

Pain.Quint_Rock:
"----" H 0 A_GiveInventory("Quint_RockProtect",1)
Goto Pain+2

Pain.LightRyu_Fire:
"----" H 0 A_GiveInventory("LightRyu_FireProtect",1)
"----" H 0 A_SpawnItemEx("PainLightRyu_FireHit",0,0,0,0,0,0,0,1)
Goto Pain+2

Pain.DrWily_Fire:
"----" H 0 A_SpawnItemEx("PainDrWily_FireHit",0,0,0,0,0,0,0,1)
Goto Pain+2

Pain.LightRyu_Kick:
"----" H 0 A_SpawnItemEx("PainLightRyu_KickHit")
Goto Pain+2
Pain.LightRyu_Hadoken:
"----" H 0 A_SpawnItemEx("PainLightRyu_HadokenHit")
Goto Pain+2
Death.LightRyu_Kick:Death.LightRyu_SpinKick:Death.LightRyu_Fire:Death.LightRyu_FireBurn:
"----" H 0 A_GiveToTarget("SuperComboGauge",1)
goto Death
Death.LightRyu_Hadoken:
"----" H 0 A_GiveToTarget("SuperComboGauge",4)
goto Death

Pain.GrenadeM_Nade:
"----" H 0 A_SpawnItemEx("PainGrenadeM_NadeHit")
goto Pain+2
Pain.GrenadeM_Bomb:
"----" H 0 A_SpawnItemEx("PainGrenadeM_BombHit")
goto Pain+2

Pain.BubbleM_Lead:
"----" H 0 A_ScaleVelocity(.85)
goto Pain+2

Pain.YellowDevilB:
Pain.FragBomber:Pain.SkullSniper:Pain.CentaurArrow:Pain.PlantTrapper2:Pain.DynamoTendrilZap:Pain.RainbowGalaxy:

Pain.ProtoM_Shot2:Pain.ProtoM_Shot3:Pain.MegaM_Shot3:Pain.MegaM_PowerFist2:Pain.MegaM_PowerFist3:
Pain.Duo_Fist1:Pain.Duo_Fist2:Pain.Duo_Fist3:

Pain.CutM_Cutter:Pain.GutsM_Rock:Pain.GutsM_RockBit:Pain.BombM_Boom:Pain.FireM_Storm:Pain.FireM_StormBit:
Pain.ElecM_Beam:Pain.ElecM_Zap:Pain.ElecM_TeleZap:Pain.OilM_Flame:Pain.OilM_Snap:

Pain.MetalM_Blade:Pain.MetalM_Chain:Pain.AirM_Shot:
Pain.HeatM_Toss:Pain.HeatM_Shot:Pain.WoodM_Leaf:Pain.WoodM_Shield:Pain.WoodM_Slam:
Pain.DrWily_Pan:Pain.DrWily_Elec:Pain.Alien_Boobeam:

Pain.NeedleM_Stab:Pain.GeminiM_Laser:Pain.HardM_Knuckle:
Pain.SnakeM_Snake:Pain.SnakeM_Snake2:

Pain.ToadM_Rain:Pain.DrillM_Bomb:Pain.PharaohM_Shot:Pain.PharaohM_Shot3:Pain.PharaohM_Wave:
Pain.DustM_Crush:Pain.DustM_CrushBit:Pain.DiveM_Tackle:Pain.SkullM_Shot:Pain.SkullM_ShotX:

Pain.WaveM_Water:Pain.StoneM_Hand:Pain.GyroM_Shot:Pain.ChargeM_Coal:
Pain.NapalmM_Missile:Pain.CrystalM_Eye:Pain.CrystalM_EyeShot:Pain.DM3_Shot:Pain.DM4_Shot:

Pain.BlizzardM_Shot:Pain.BlizzardM_Shot2:Pain.FlameM_Shot:Pain.KnightM_Mace:
Pain.PlantM_Toss:Pain.TomahawkM_Shot:

Pain.FreezeM_Shot:Pain.FreezeM_SpikeC:Pain.BurstM_Shot:Pain.BurstM_Boom:
Pain.CloudM_Shot:Pain.CloudM_Zapper:Pain.CloudM_Spark:Pain.CloudM_Charge:
Pain.SpringM_Fist:Pain.ShadeM_Shot:Pain.ShadeM_Shot2:

Pain.AstroM_Meteor:Pain.SearchM_Shot:Pain.SearchM_LockShot:Pain.SearchM_Disc:
Pain.FrostM_Shot:Pain.GrenadeM_Kamikaze:
Pain.Trio_Shot2:Pain.Trio_Shot3:Pain.TrioHomingSniper:

Pain.ConcreteM_TossBit:Pain.SplashW_Fish1:Pain.SplashW_Fish2:Pain.SplashW_Fish3:
Pain.PlugM_Ball:Pain.PlugM_Prong:Pain.PlugM_Plugged:Pain.MagmaM_Shot1:Pain.MagmaM_Shot2:
Pain.GalaxyM_Shot:

Pain.PumpM_ShieldToss:Pain.PumpM_Stream:Pain.CommandoM_Shot:Pain.CommandoM_Mine:Pain.NitroM_Shot:Pain.ChillSpikeClass:

Pain.AstroM_Shot:Pain.AstroM_CloneShot:Pain.DynamoM_Orb:Pain.DynamoM_Bolt:
Pain.DynamoM_TaggedBolt:Pain.DynamoM_DishZap:Pain.MagicM_Ball:Pain.King_ShieldDrop:

Pain.Mercury_Swipe:Pain.Mercury_Swipe2:Pain.Mercury_Blob:Pain.Mercury_Slam:
Pain.Venus_Bomb:Pain.Venus_Acid:Pain.Venus_BoomJump:Pain.Mars_Photon:Pain.Mars_Mortar:
Pain.Uranus_ShotBit:

Pain.HSH_ShotHot:

Pain.Enker_Shot:Pain.Enker_Shot2:Pain.Punk_Shot:Pain.Ballade_Shot:Pain.Ballade_Mine:
Pain.Quint_SakuLand:

"----" H 0
Goto Pain+2

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

//0.9x Hitstun
Pain.MegaM_Shot2:
Pain.SnakeM_Poke:
Pain.DrillM_DigUp:
Pain.WaveM_Shot:
Pain.TomahawkM_Feather:
Pain.AquaM_Shot:Pain.AquaM_TowerBit:Pain.AquaM_CannonBit:Pain.TrioWaterBalloon:
Pain.DynamoM_Dish:Pain.DynamoTendril:Pain.GroundM_DigUp:Pain.PirateM_Mine:
Pain.NitroM_Shot2:
Pain.Pluto_Shot:
"----" H 0
Goto Pain+2

Pain.GravityM_Up:
"----" H 0 A_GiveInventory("PainHitstun_90_P",1)
"----" H 0 A_JumpIfInventory("FlightDisableFlag",1,2)
"----" H 0 ThrustThingZ(0,70,0,0)
"----" H 0
goto Pain+2

Pain.Drowning:Pain.Slime:Pain.Fire:Pain.Falling:Pain.Ice:
"----" H 0
"----" H 0 A_JumpIfInventory("BeatCallCheck",1,"BeatAssist")
Pain.Spiney:
"----" H 0 A_JumpIfInventory("ShieldHits",1,"Pain1")
Pain.Crush:Pain.Beam:Pain.PressBall:Pain.BurnWave:
"----" H 0 A_JumpIfInventory("NoFallingRespawn_F",1,"Pain1")
//"----" H 0 A_GiveInventory("CBM_ArtiTeleportCheck_P")
Goto Pain+1
}
}



