ACTOR KXObliterator : PlayerPawn
{
  Health 350
  Player.Maxhealth 350
  Mass 1000
  PainChance 255
  bloodcolor "DarkRed"
  Species "Ghoul"
  Scale 1.1
  Player.WeaponSlot 1, KXObliteratorHand
  Player.DisplayName "Obliterator"
  Player.StartItem "KXObliteratorMana", 120
  Player.StartItem "KXObliteratorHand", 1
  Player.StartItem "KXObliteratorHand2", 1
  Player.StartItem "KXObliteratorHand3", 1
  Player.StartItem "IsGhoul", 1
  Player.StartItem "ObliteratorEnterButton", 1
  Player.StartItem "Screamer", 0
  Player.ForwardMove 1.0
  Player.SideMove 1.0
  Player.ScoreIcon "OBLITST"
  LimitedToTeam 1
  Damagefactor "melee", 0.9
  Damagefactor melee, 0.9
  Damagefactor "Divine", 0.5
  Damagefactor "Railgun", 0.8
  Damagefactor "CalebRevolver", 0.9
  Damagefactor "Termissiles", 0.7
  Damagefactor "SamDeagle", 0.6
  damagefactor "CryoXBow", 0.8
  Damagefactor "IlluNukeKABUUM", 0.5
  Damagefactor "Bluefire", 0.0
  Damagefactor "AntiAirBolt", 0.6
  Damagefactor "normal", 1.0
  Damagefactor "ChexWarrior", 0.6
  Damagefactor "PistolBullets", 0.6
  Damagefactor "ChexWarriorPistol", 0.6
  Damagefactor "IlluPewpewRifle", 1.0
  Damagefactor "Elecstorm", 1.0
  Damagefactor "Plasma", 0.6
  Damagefactor "ice", 0.6
  Damagefactor "ice2", 0.6
  Damagefactor "AltIce2", 0.6
  Damagefactor "fire2", 0.6
  Damagefactor "RenegadeFire", 0.7
  Damagefactor "minion", 0.0
  Damagefactor "AltFire2", 0.7
  Damagefactor "RevyRifleBullet", 0.8
  Damagefactor "KarStiglitz", 0.8
  Damagefactor "Grenade", 0.9
  Damagefactor "InariPlasma", 0.9
  Damagefactor "SamDeagle", 0.9
  Damagefactor "DutchShotgun", 0.5
  Damagefactor "ZombieIce", 0.0
  Damagefactor "ZombiePoison", 0.0
  Damagefactor "ZombieSlaps", 0.0
  Damagefactor "Tenebra", 0.0
  Damagefactor "Judgement", 0.0
  DamageFactor "Fire", 0.0
  DamageFactor "Jitter", 0.0
  DamageFactor "Obliterator", 0.0
  player.soundclass "KXObli"
  +NOSKIN
  +NOICEDEATH
  +QUICKTORETALIATE
  +DONTRIP
	states
	{
		Spawn:
			CBOS A 0 Setplayerproperty(0,0,4)
			TNT1 A 0 A_JumpIfInventory("GwenGoddessStack",100,"GwenGoddessDeath")
			CBOS A 0 A_JumpIfInventory("AriaInfluence",10,"Dancing")
			CBOS A 0 A_JumpIfInventory("GhoulDisableTrigger",15,"DisableTheGhoul")
			CBOS A 105
			TNT1 A 0 A_JumpIfInventory("GwenGoddessStack",100,"GwenGoddessDeath")
			CBOS A 0 A_JumpIfInventory("AriaInfluence",10,"Dancing")
			CBOS A 0 A_JumpIfInventory("GhoulDisableTrigger",15,"DisableTheGhoul")
			TNT1 A 0 A_PlaySound("cbaron/ready1",CHAN_WEAPON)
			TNT1 A 0 A_TakeInventory("KXObliteratorStaggerCounter",5)
			TNT1 A 0 A_GiveInventory("KXObliteratorMana",30)
			loop
		See:
			CBOS A 0 A_JumpIfHealthLower(100,"INeedHealingSee")
			CBOS A 0 A_Changeflag("shootable",true)
			TNT1 A 0 A_JumpIfInventory("GwenGoddessStack",100,"GwenGoddessDeath")
			CBOS A 0 A_JumpIfInventory("AriaInfluence",10,"Dancing")
			CBOS A 0 A_JumpIfInventory("GhoulDisableTrigger",15,"DisableTheGhoul")
			CBOS A 6
			CBOS B 0 A_PlaySound("cbaron/metal",CHAN_6,1.0)
			TNT1 A 0 A_JumpIfInventory("GwenGoddessStack",100,"GwenGoddessDeath")
			CBOS A 0 A_JumpIfInventory("AriaInfluence",10,"Dancing")
			CBOS A 0 A_JumpIfInventory("GhoulDisableTrigger",15,"DisableTheGhoul")
			CBOS A 0 A_GiveInventory("SawyerRageAmmo",1)
			CBOS A 0 A_JumpIfInventory("GhoulDisableTrigger",15,"DisableTheGhoul")
			CBOS B 6 
			CBOS A 0 A_JumpIfInventory("AriaInfluence",10,"Dancing")
			TNT1 A 0 A_JumpIfInventory("GwenGoddessStack",100,"GwenGoddessDeath")
			CBOS A 0 A_JumpIfInventory("GhoulDisableTrigger",15,"DisableTheGhoul")
			CBOS C 6 
			TNT1 A 0 A_JumpIfInventory("GwenGoddessStack",100,"GwenGoddessDeath")
			CBOS A 0 A_JumpIfInventory("AriaInfluence",10,"Dancing")
			CBOS A 0 A_JumpIfInventory("GhoulDisableTrigger",15,"DisableTheGhoul")
			CBOS C 0 A_GiveInventory("SawyerRageAmmo",1)
			CBOS A 0 A_JumpIfInventory("AriaInfluence",10,"Dancing")
			CBOS A 0 A_JumpIfInventory("GhoulDisableTrigger",15,"DisableTheGhoul")
			CBOS D 3
			CBOS D 3 A_PlaySound("cbaron/Step",CHAN_7,1.0)
			TNT1 A 0 A_JumpIfInventory("GwenGoddessStack",100,"GwenGoddessDeath")
			CBOS A 0 A_JumpIfInventory("AriaInfluence",10,"Dancing")
			CBOS A 0 A_JumpIfInventory("GhoulDisableTrigger",15,"DisableTheGhoul")
			Goto Spawn
		INeedHealingSee:
			CBOS A 0 A_Changeflag("shootable",true)
			TNT1 A 0 A_JumpIfInventory("GwenGoddessStack",100,"GwenGoddessDeath")
			CBOS A 0 A_JumpIfInventory("AriaInfluence",10,"Dancing")
			CBOS A 0 A_JumpIfInventory("GhoulDisableTrigger",15,"DisableTheGhoul")
			CBOS A 6
			CBOS B 0 A_PlaySound("cbaron/metal",CHAN_6,1.0)
			TNT1 A 0 A_JumpIfInventory("GwenGoddessStack",100,"GwenGoddessDeath")
			CBOS A 0 A_JumpIfInventory("AriaInfluence",10,"Dancing")
			CBOS A 0 A_JumpIfInventory("GhoulDisableTrigger",15,"DisableTheGhoul")
			CBOS A 0 A_GiveInventory("SawyerRageAmmo",1)
			CBOS A 0 A_JumpIfInventory("GhoulDisableTrigger",15,"DisableTheGhoul")
			CBOS B 6 
			TNT1 A 0 A_JumpIfInventory("GwenGoddessStack",100,"GwenGoddessDeath")
			CBOS B 0 A_SpawnItemEx("GhoulINeedHealingTrail",random(-20,20),random(-20,20),0,0,0,10)
			CBOS B 0 A_SpawnItemEx("64GhoulINeedHealingTrail",random(-20,20),random(-20,20),0,0,0,10)
			CBOS A 0 A_JumpIfInventory("AriaInfluence",10,"Dancing")
			CBOS A 0 A_JumpIfInventory("GhoulDisableTrigger",15,"DisableTheGhoul")
			CBOS C 6 
			TNT1 A 0 A_JumpIfInventory("GwenGoddessStack",100,"GwenGoddessDeath")
			CBOS A 0 A_JumpIfInventory("AriaInfluence",10,"Dancing")
			CBOS A 0 A_JumpIfInventory("GhoulDisableTrigger",15,"DisableTheGhoul")
			CBOS C 0 A_GiveInventory("SawyerRageAmmo",1)
			CBOS A 0 A_JumpIfInventory("AriaInfluence",10,"Dancing")
			CBOS A 0 A_JumpIfInventory("GhoulDisableTrigger",15,"DisableTheGhoul")
			CBOS D 3
			CBOS D 3 A_PlaySound("cbaron/Step",CHAN_7,1.0)
			TNT1 A 0 A_JumpIfInventory("GwenGoddessStack",100,"GwenGoddessDeath")
			CBOS B 0 A_SpawnItemEx("GhoulINeedHealingTrail",random(-20,20),random(-20,20),0,0,0,10)
			CBOS B 0 A_SpawnItemEx("64GhoulINeedHealingTrail",random(-20,20),random(-20,20),0,0,0,10)
			CBOS A 0 A_JumpIfInventory("AriaInfluence",10,"Dancing")
			CBOS A 0 A_JumpIfInventory("GhoulDisableTrigger",15,"DisableTheGhoul")
			Goto Spawn
		Dancing:
			CBOS A 0 A_Changeflag("shootable",true)
			CBOS A 0 A_TakeInventory("AriaInfluence",10)
			CBOS A 0 A_TakeInventory("GhoulDisableTrigger",15)
			CBOS A 0 Setplayerproperty(0,1,4)
			CBOS AAAAAAAAAAAAAAAA 1
			CBOS A 0 ThrustThingZ(0,20,0,0)
			CBOS A 0 ThrustThing(angle*random(0,224), 10, 0, 0)
			CBOS A 0 A_TakeInventory("AriaInfluence",10)
			CBOS A 0 A_TakeInventory("GhoulDisableTrigger",15)
			CBOS AAAAAAAAAAAAAAAA 1
			CBOS A 0 ThrustThingZ(0,20,0,0)
			CBOS A 0 ThrustThing(angle*random(0,224), 10, 0, 0)
			CBOS A 0 A_TakeInventory("AriaInfluence",10)
			CBOS A 0 A_TakeInventory("GhoulDisableTrigger",15)
			CBOS AAAAAAAAAAAAAAAA 1
			CBOS A 0 ThrustThingZ(0,20,0,0)
			CBOS A 0 ThrustThing(angle*random(0,224), 10, 0, 0)
			CBOS A 0 A_TakeInventory("AriaInfluence",10)
			CBOS A 0 A_TakeInventory("GhoulDisableTrigger",15)
			CBOS AAAAAAAAAAAAAAAA 1
			CBOS A 0 ThrustThingZ(0,20,0,0)
			CBOS A 0 ThrustThing(angle*random(0,224), 10, 0, 0)
			CBOS A 0 A_TakeInventory("AriaInfluence",10)
			CBOS A 0 A_TakeInventory("GhoulDisableTrigger",15)
			CBOS AAAAAAAAAAAAAAAA 1
			CBOS A 0 ThrustThingZ(0,20,0,0)
			CBOS A 0 ThrustThing(angle*random(0,224), 10, 0, 0)
			CBOS A 0 A_TakeInventory("AriaInfluence",10)
			CBOS A 0 A_TakeInventory("GhoulDisableTrigger",15)
			CBOS AAAAAAAAAAAAAAAA 1
			CBOS A 0 ThrustThingZ(0,20,0,0)
			CBOS A 0 ThrustThing(angle*random(0,224), 10, 0, 0)
			CBOS A 1 Setplayerproperty(0,0,4)
			CBOS A 0 A_TakeInventory("AriaInfluence",10)
			CBOS A 0 A_TakeInventory("GhoulDisableTrigger",15)
			Goto Spawn
		DisableTheGhoul:
			CBOS A 0 A_Changeflag("shootable",false)
			CBOS A 0 A_Changeflag("shootable",false)
			CBOS A 0 Setplayerproperty(0,1,4)
			CBOS A 0 A_TakeInventory("GhoulDisableTrigger",15)
			CBOS A 90 Bright
			CBOS A 0 A_TakeInventory("GhoulDisableTrigger",15)
			CBOS A 0 A_Changeflag("shootable",true)
			CBOS A 0 A_Changeflag("shootable",true)
			CBOS A 0 Setplayerproperty(0,0,4)
			CBOS A 0 Setplayerproperty(0,0,4)
			CBOS A 0 A_TakeInventory("GhoulDisableTrigger",15)
			Goto Spawn
		Pain:
			CBOS H 0 Setplayerproperty(0,0,4)
			TNT1 A 0 A_GiveInventory("KXObliteratorStaggerCooldown",1)
			TNT1 A 0 A_JumpIfInventory("GwenGoddessStack",100,"GwenGoddessDeath")
			CBOS H 6 A_Pain
			goto Spawn
	Pain.Vivi:
	CBOS A 0 A_SetPitch(pitch - 3.0)
	CBOS A 0 A_SetAngle(angle + (random(-50,50)/10))
	Goto Pain
	Pain.ViviMine:
	CBOS A 0 ThrustThingZ(0,70,0,0)
	Goto Pain
	Death.LoWangVampiric:
	TNT1 A 0 A_GiveToTarget("SWLoWangBloody",1)
	TNT1 A 0 A_JumpIfInventory("BloodCurseItem",1,"Death",AAPTR_TARGET)
	TNT1 A 0 A_GiveToTarget("Health",20)
	Goto Death
	Pain.KarStiglitz:
	CBOS A 0 A_GiveToTarget("Health",10)
	CBOS A 0 A_GiveToTarget("StigPowerAmmo",20)
	Goto pain
	Pain.DutchMagnum:
	JSKL G 0 A_GiveToTarget("DutchMagnumAmmo",1)
	Goto Pain
	Death.SkarletPistolDrain:
	TNT1 A 0 A_JumpIfInventory("BloodCurseItem",1,"Death",AAPTR_TARGET)
	TNT1 A 0 A_GiveToTarget("Health",50)
	Goto Death
	Death.SkarletVampiric:
	TNT1 A 0 A_JumpIfInventory("BloodCurseItem",1,"Death",AAPTR_TARGET)
	TNT1 A 0 A_GiveToTarget("Health",60)
	Goto Death
	Death.DoomChainSaw:
	TNT1 A 0 A_GiveToTarget("cell",50)
	TNT1 A 0 A_GiveToTarget("RocketAmmo",5)
	TNT1 A 0 A_GiveToTarget("clip",50)
	TNT1 A 0 A_GiveToTarget("Shell",10)
	Goto Death
	Death.D64Pistol:
	TNT1 A 0 A_GiveToTarget("D64UnmakerUpgrades",1)
	TNT1 A 0 A_GiveToTarget("Cell",150)
	TNT1 A 0 A_GiveToTarget("D64KilledCount",1)
	Goto DeathAnimAlt
	Death.Plasma:
	TNT1 A 0 A_GiveToTarget("CyborgFuel",25)
	Goto DeathAnim
	Death.Telefrag:
	Goto Death.UnmakerLaser
	Pain.AltIce2:
	CBOS A 0 A_Recoil(-5)
	Goto pain
		Missile:
			CBOS E 0 A_Changeflag("shootable",true)
			TNT1 A 0 A_JumpIfInventory("GwenGoddessStack",100,"GwenGoddessDeath")
			CBOS E 0 A_JumpIfInventory("AriaInfluence",10,"Dancing")
			CBOS E 0 A_JumpIfInventory("GhoulDisableTrigger",15,"DisableTheGhoul")
			CBOS FE 4
			goto Spawn
		 Meleer:
		    CBOS E 0 A_Changeflag("shootable",true)
			TNT1 A 0 A_JumpIfInventory("GwenGoddessStack",100,"GwenGoddessDeath")
			CBOS E 0 A_JumpIfInventory("AriaInfluence",10,"Dancing")
			CBOS E 0 A_JumpIfInventory("GhoulDisableTrigger",15,"DisableTheGhoul")
		    CBOS PQR 4
			Goto Spawn
		 JumpMelee:
		    CBOS E 0 A_Changeflag("shootable",true)
			TNT1 A 0 A_JumpIfInventory("GwenGoddessStack",100,"GwenGoddessDeath")
			CBOS E 0 A_JumpIfInventory("AriaInfluence",10,"Dancing")
			CBOS E 0 A_JumpIfInventory("GhoulDisableTrigger",15,"DisableTheGhoul")
		    CBOS P 10
			Goto Spawn
		 JumpMelee2:
		    CBOS E 0 A_Changeflag("shootable",true)
			TNT1 A 0 A_JumpIfInventory("GwenGoddessStack",100,"GwenGoddessDeath")
			CBOS E 0 A_JumpIfInventory("AriaInfluence",10,"Dancing")
			CBOS E 0 A_JumpIfInventory("GhoulDisableTrigger",15,"DisableTheGhoul")
		    CBOS R 10
			Goto Spawn
	Pain.GwenPlasma2:
		TNT1 A 0 A_JumpIfInventory("GwenGoddessStack",100,"GwenGoddessDeath")
		CBOS G 0 Setplayerproperty(0,0,4)
		CBOS G 0 A_Pain
		CBOS G 20 Setplayerproperty(0,1,0)
		CBOS G 2 Setplayerproperty(0,0,0)
		Goto See
	GwenGoddessDeath:
		TNT1 A 0 SetPlayerProperty(0,1,4)
		TNT1 A 0 A_SetTranslucent (1.0, 0)
		TNT1 A 0 A_SpawnItemEx("GwenTimeImplosionRing")
		CBOS H 0 A_StopSound(Chan_Weapon)
		TNT1 A 0 A_Playsound("Gwen/DivineExplosionSound",6,1,0,ATTN_NONE)
		CBOS G 24 SetPlayerProperty(0,1,4)
		TNT1 A 0 A_SpawnItemEx("GwenTimeExplosionRingDamageFX")
		TNT1 A 0 A_SpawnItemEx("GwenTimeExplosionRingDamage")
		TNT1 A 0 A_SpawnItemEx("GwenTimeExplosionRing")
		TNT1 A 0 A_SpawnItemEx("GwenTimeExplosionRingX")
		TNT1 A 0 A_SpawnItemEx("GwenThunderFX")
		TNT1 A 0 A_SpawnItemEx("GwenGoddessStateEXP")
		TNT1 AAAAAAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("GwenThunderFX_Spark2", 0, 0, 8, 0.01 * Random(-300, 300), 0.01 * Random(-300, 300), 0.01 * Random(0, 600), 0, 128, 0)
		TNT1 AAAAAAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("GwenThunderFX_Spark2", 0, 0, 8, 0.01 * Random(-300, 300), 0.01 * Random(-300, 300), 0.01 * Random(0, 600), 0, 128, 0)
		TNT1 AAAAAAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("GwenThunderFX_Spark2", 0, 0, 8, 0.01 * Random(-300, 300), 0.01 * Random(-300, 300), 0.01 * Random(0, 600), 0, 128, 0)
		TNT1 AAAAAAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("GwenThunderFX_Spark2", 0, 0, 8, 0.01 * Random(-300, 300), 0.01 * Random(-300, 300), 0.01 * Random(0, 600), 0, 128, 0)
		TNT1 AAAAAAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("GwenThunderFX_Spark2", 0, 0, 8, 0.01 * Random(-300, 300), 0.01 * Random(-300, 300), 0.01 * Random(0, 600), 0, 128, 0)
		TNT1 AAAAAAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("GwenThunderFX_Spark2", 0, 0, 8, 0.01 * Random(-300, 300), 0.01 * Random(-300, 300), 0.01 * Random(0, 600), 0, 128, 0)
		TNT1 AAAAAAAAAAAA 0 A_SpawnItemEx("KNThunderFX_Smoke", 0, 0, 0, 0.01 * Random(-125, 125), 0.01 * Random(-125, 125), 0.01 * Random(25, 245), 0, 128, 0)
		TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("GwenThunderFX_Spark", 0, 0, 8, 0.01 * Random(-300, 300), 0.01 * Random(-300, 300), 0.01 * Random(0, 600), 0, 128, 0)
		TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("GwenThunderFX_Spark", 0, 0, 8, 0.01 * Random(-300, 300), 0.01 * Random(-300, 300), 0.01 * Random(0, 600), 0, 128, 0)
		TNT1 A 0 DamageThing(100000)
		Goto Death
		Death:
	DeathAnim:
		TNT1 A 0 A_GiveToTarget("KillBeep",1)
		TNT1 A 0 A_SpawnItemEx("AdditionalGhoulDeathVFX")
		CBOS A 0 A_TakeInventory("RocketAmmo",999)
		CBOS A 0 A_TakeInventory("KilledCount",999)
		CBOS A 0 A_GiveToTarget("KilledMe",1)
		CBOS A 0 A_GiveToTarget("KilledEmtalic",1)
		CBOS H 0 A_StopSound(Chan_Weapon)
		CBOS H 0 A_PlayerScream
		CBOS H 35
		CBOS H 0 A_PlayerScream
		CBOS H 35
		CBOS H 0 A_PlayerScream
		CBOS H 35
		TNT1 A 0 A_PlaySound("supermissile/hit")
		TNT1 AAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("SuperMissileExplosion")
		CBOS I 8
		CBOS J 8 A_Scream
		TNT1 A 0 A_PlaySound("weapons/grenadeexplode")
		CBOS A 0 A_NoBlocking 
		CBOS A 0 A_SpawnItemEx("CYBGIBBER", 0, 0, 0, 0, 0, 0, 0, 161, 0)
		CBOS A 0 A_SpawnItemEx("GrenadeExplosion", 0, 0, 0, 0, 0, 0, 0, 160, 0)
		CBOS K 8 bright
		CBOS L 8 bright
		CBOS M 8 bright
		CBOS N 8 bright
		CBOS O -1
		Stop
	DeathAnimAlt:
		TNT1 A 0 A_GiveToTarget("KillIndicator",1)
		TNT1 A 0 A_SpawnItemEx("AdditionalGhoulDeathVFX")
		CBOS A 0 A_TakeInventory("RocketAmmo",999)
		CBOS A 0 A_TakeInventory("KilledCount",999)
		CBOS A 0 A_GiveToTarget("KilledMe",1)
		CBOS A 0 A_GiveToTarget("KilledEmtalic",1)
		CBOS H 0 A_StopSound(Chan_Weapon)
		CBOS H 0 A_PlayerScream
		CBOS H 35
		CBOS H 0 A_PlayerScream
		CBOS H 35
		CBOS H 0 A_PlayerScream
		CBOS H 35
		TNT1 A 0 A_PlaySound("supermissile/hit")
		TNT1 AAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("SuperMissileExplosion")
		CBOS I 8
		CBOS J 8 A_Scream
		TNT1 A 0 A_PlaySound("weapons/grenadeexplode")
		CBOS A 0 A_NoBlocking 
		CBOS A 0 A_SpawnItemEx("CYBGIBBER", 0, 0, 0, 0, 0, 0, 0, 161, 0)
		CBOS A 0 A_SpawnItemEx("GrenadeExplosion", 0, 0, 0, 0, 0, 0, 0, 160, 0)
		CBOS K 8 bright
		CBOS L 8 bright
		CBOS M 8 bright
		CBOS N 8 bright
		CBOS O -1
		Stop
	Death.ChexWarrior:
		CBOS G 0 A_TakeInventory("RocketAmmo",999)
		CBOS G 0 A_TakeInventory("KilledCount",999)
		CBOS G 0 A_GiveToTarget("KilledMe",1)
		CBOS G 0 A_GiveToTarget("KilledEmtalic",1)
		CBOS G 0 A_SpawnItemEx("ChexCereal",0,0,32,random(2,3),momy,random(8,12),random(-180,180))
		CBOS G 0 A_GiveToTarget("ChexArmorBonus",25)
		CBOS G 0 A_GiveToTarget("ChexBoop",1)
		CBOS H 0 A_StopSound(Chan_Weapon)
		CBOS G 0 A_Stop
		CBOS G 0 A_NoGravity
		CBOS G 0 A_ChangeFlag("DONTGIB",1)
		CBOS G 0 A_PlaySoundEx("Teleport/Chex",7)
		CBOS G 0 A_PlaySoundEx("Sawyer/pain", "Body")
		CBOS G 3 A_SpawnItem("BigZorch")
		CBOS G 3 A_SetTranslucent(0.9,0)
		CBOS G 0 A_Scream
		CBOS G 3 A_SetTranslucent(0.8,0)
		CBOS G 0 A_NoBlocking
		CBOS G 3 A_SetTranslucent(0.7,0)
		CBOS G 3 A_SetTranslucent(0.6,0)
		CBOS G 3 A_SetTranslucent(0.5,0)
		CBOS G 3 A_SetTranslucent(0.4,0)
		CBOS G 3 A_SetTranslucent(0.3,0)
		CBOS G 3 A_SetTranslucent(0.2,0)
		CBOS G 3 A_SetTranslucent(0.1,0) 
		TNT1 A 1 A_SetTranslucent(1,0)
		CBOS Z -1
		Stop
	Death.CarolineDamage:
		NULL A 0 A_SpawnItemEx("CarolineHeart",0,0,32,random(2,3),momy,random(8,12),random(-180,180))
		Goto Death.UnmakerLaser
	Death.MapGibber:
		TNT1 A 0 A_PlaySound("car/hit",chan_auto)
	Death.MapGibber2:
	Death.UnmakerLaser:
		TNT1 A 0 A_GiveToTarget("KillBeep",1)
		TNT1 A 0 A_SpawnItemEx("AdditionalGhoulDeathVFX")
		CBOS A 0 A_TakeInventory("KilledCount",999)
		CBOS A 0 A_GiveToTarget("KilledMe",1)
		CBOS A 0 A_GiveToTarget("KilledEmtalic",1)
		CBOS A 0 A_PlayerScream
		CBOS H 0 A_StopSound(Chan_Weapon)
		CBOS O 0 A_PlaySound("Caroline/SoulGibbage")
		CBOS H 0 A_PlayerScream
		CBOS H 35
		CBOS H 0 A_PlayerScream
		CBOS H 35
		CBOS H 0 A_PlayerScream
		CBOS H 35
		TNT1 A 0 A_PlaySound("supermissile/hit")
		TNT1 AAAAAAAAAA 0 A_SpawnItemEx("SuperMissileExplosion",frandom(-24,24),frandom(-24,24),frandom(0,60),0,0,0,0,SXF_NOCHECKPOSITION)
		CBOS I 8
		CBOS J 8 A_Scream
		TNT1 A 0 A_PlaySound("weapons/grenadeexplode")
		CBOS A 0 A_NoBlocking 
		CBOS A 0 A_SpawnItemEx("CYBGIBBER", 0, 0, 0, 0, 0, 0, 0, 161, 0)
		CBOS A 0 A_SpawnItemEx("GrenadeExplosion", 0, 0, 0, 0, 0, 0, 0, 160, 0)
		CBOS K 8 bright
		CBOS L 8 bright
		CBOS M 8 bright
		CBOS N 8 bright
		CBOS O -1
		Stop
	Death.MarineShotgun:
	CBOS E 0 A_GiveToTarget("grenadeammo",1)
	CBOS E 0 A_GiveToTarget("shell",3)
	CBOS E 0 A_GiveToTarget("clip",20)
	Goto DeathAnim
	Death.Marinemachinegun:
	CBOS E 0 A_GiveToTarget("grenadeammo",1)
	CBOS E 0 A_GiveToTarget("shell",3)
	CBOS E 0 A_GiveToTarget("clip",20)
	Goto Deathanim
	Death.Marinepistol:
	CBOS E 0 A_GiveToTarget("grenadeammo",1)
	CBOS E 0 A_GiveToTarget("shell",3)
	CBOS E 0 A_GiveToTarget("clip",20)
	Goto Deathanim
	Death.Grenade:
		CBOS E 0 A_GiveToTarget("KilledG",1)
		Goto DeathAnim
	Death.CrapPlasma:
		CBOS E 0 A_GiveToTarget("Unlock9",1)
		Goto DeathAnim
	Death.Ice2:
		CBOS A 0 A_GiveToTarget("KilledIce2",1)
		Goto DeathAnim
	Death.Fire2:
		CBOS A 0 A_GiveToTarget("KilledFire2",1)
		Goto DeathAnim
	Death.Railgun:
		CBOS A 0 A_GiveToTarget("KilledLightning",1)
		Goto DeathAnim
	Death.GhostTrap:
		CBOS A 0 A_GiveToTarget("KilledG",1)
		Goto DeathAnim
	Death.AltFire2:
		CBOS A 0 A_GiveToTarget("KilledAltFire2",1)
		Goto Death.Fire2
	Death.AltIce2:
		CBOS A 0 A_GiveToTarget("KilledAltIce2",1)
		Goto Death.Ice2
	Death.AltGrenade:
		CBOS A 0 A_GiveToTarget("KilledAltG",1)
		Goto Death.Grenade
	Death.Fire3:
		CBOS A 0 A_GiveToTarget("KilledFire3",1)
		Goto DeathAnim
	Death.Ice3:
		CBOS A 0 A_GiveToTarget("KilledIce3",1)
		Goto DeathAnim
	Death.Grenade2:
		CBOS A 0 A_GiveToTarget("KilledG2",1)
		Goto DeathAnim
	Pain.Drainer:
		CBOS A 0 A_GiveToTarget("Health",10)
		Goto Spawn
	Death.ChexWarriorPistol:
	Death.ChexWarriorChainsaw:
	Goto Death.ChexWarrior
	Death.RenegadeBullets:
	Death.RenegadeFire:
	Death.ArtilleryDamage:
		TNT1 A 0 A_GiveToTarget("RenegadeKillItem",1)
		Goto DeathAnimAlt
	Death.CalebDynamite:
		TNT1 A 0 A_GiveToTarget("KilledG",1)
	Death.CalebShotgun:
	Death.CalebRevolver:
		TNT1 A 0 A_GiveToTarget("Health",20)
		TNT1 A 0 A_SpawnItemEx("CalebHeart",0,0,32,random(2,3),momy,random(8,12),random(-180,180))
		TNT1 A 0 A_GiveToTarget("CalebHeartbeat",1)
		Goto DeathAnimAlt
	Pain.EngineerSaw:
	Pain.Ghosttrap:
	Pain.GBFire:
	Pain.Misty:
	Pain.GBSaw:
	Pain.GBString:
	Pain.GBNuke:
	Pain.Ice2:
	Pain.Ice:
	Pain.ElecStorm:
	Pain.AltFire2:
	Pain.AltIce2:
	Pain.Fire2:
	Pain.Doggo:
	Pain.LaraArrow:
	Pain.Wind2:
	Pain.Grenade:
	Pain.Grenade2:
	Pain.TemplarLightningRain:
	Pain.CarolineDamage:
	Pain.ChexWarrior:
	Pain.InariPlasma:
	Pain.Plasma:
	Pain.FlameProtect:
	Pain.DutchShotgun:
	Pain.KarenExplo:
	Pain.Sentinel:
	Pain.Divine:
	Pain.GwenPlasma3:
	Pain.MacheteSlicerino:
	Pain.AntiAirbolt:
	Pain.MechPewPews:
	Pain.RainbowNado:
		TNT1 A 0 ACS_NamedExecuteAlways("ChangeActivator",0)
		Goto Pain
	}
}

ACTOR KXObliteratorHand : Weapon 
{
 Weapon.SelectionOrder 800
 Obituary "%o was slaughtered by the obliterator %k, FOR LORD GOD KAISER"
 Inventory.PickupMessage ""
 Inventory.PickupSound "misc/pk_up"
 Weapon.AmmoUse 1
 Weapon.AmmoGive 0
 Weapon.UpSound "KXChange/Weapon"
 Weapon.AmmoType "KXObliteratorMana"
 Weapon.BobStyle Alpha
 Weapon.BobSpeed 2.0
 Weapon.BobRangeX 0.7
 Weapon.BobRangeY 0.5
 +WEAPON.NOAUTOAIM
 +WEAPON.AMMO_OPTIONAL
 +WEAPON.ALT_AMMO_OPTIONAL
 +INVENTORY.UNDROPPABLE
 Weapon.SlotNumber 1
 Tag "Flame Thrower"
  States
 {
  Spawn:
       TNT1 A -1
       Loop
  Ready:
       TNT1 A 0 A_JumpIfInventory("KXObliteratorJumpToken",1,"Jumping")
       KXOB A 1 A_WeaponReady(WRF_ALLOWRELOAD)
       goto ready
  Deselect:
       KXOB A 0 A_Lower
       Loop
  Select:
       KXOB A 0 A_Raise
       Loop
  Fire:
       TNT1 A 0 A_JumpIfNoAmmo("FireFail")
       KXOB ABC 2 A_WeaponReady(WRF_NOFIRE|WRF_NOSWITCH)
	   TNT1 A 0 A_Refire
	   Goto Ready
  Hold:
       TNT1 A 0 A_JumpIfNoAmmo("FireFail")
       KXOB E 0 A_PlaySound("Obliterator/FlameThrower",CHAN_WEAPON,1.0,TRUE)
       KXOB E 0 Bright A_FireCustomMissile("ObliteratorFlames",0,1,0,0)
	   TNT1 A 0 A_TakeInventory("KXObliteratorManaCooldown",1)
	   TNT1 A 0 A_GiveInventory("KXObliteratorManaCooldown",1)
	   TNT1 A 0 A_GiveInventory("KXObliteratorSoundToken",1)
	   KXOB D 1 Bright A_WeaponReady(WRF_NOFIRE|WRF_NOSWITCH)
       KXOB A 0 A_ReFire
	   TNT1 A 0 A_PlaySound("Obliterator/FlameThrowerEnd",CHAN_WEAPON)
	   KXO2 ABCD 3 Bright A_WeaponReady(WRF_NOFIRE|WRF_NOSWITCH)
       Goto Ready
  FireFail:
       TNT1 A 0 A_StopSound(CHAN_WEAPON)
	   TNT1 A 0 A_TakeInventory("KXObliteratorManaCooldown",1)
	   TNT1 A 0 A_GiveInventory("KXObliteratorManaCooldown",1)
	   TNT1 A 0 A_GiveInventory("KXObliteratorSoundToken",1)
	   TNT1 A 0 ACS_NamedExecuteAlways("KXObliteratorNoAmmoText",0,0,0,0)
	   KXOB AAAAAAAAAAAAAAAAAAAAAAAA 1 A_WeaponReady(WRF_NOFIRE|WRF_NOSECONDARY|WRF_NOSWITCH) 
	   Goto Ready
  AltFire:
  	   TNT1 A 0 A_JumpIfInventory("KXObliteratorDashCooldown",1,"Ready")
	   TNT1 A 0 A_JumpIfInventory("KXStaggeredToken",1,"Ready")
	   TNT1 A 0 ACS_NamedExecuteAlways("KXObliteratorDashScript",0,0)
	   TNT1 A 0 ACS_NamedExecuteAlways("KXObliteratorDashScript2",0,0,0,0)
	   TNT1 A 0 A_PlaySound("cbaron/dash",CHAN_7,1.0)
	   TNT1 A 0 ThrustThingZ(0,10,0,1)
	   TNT1 A 0 A_Recoil(random(-40,-50))
       Goto Ready
  Jumping:
       TNT1 A 0 ACS_NamedExecuteAlways("KXObliteratorJumpScript",0,0)
	   TNT1 A 0 A_TakeInventory("KXObliteratorJumpToken",1)
	   TNT1 A 0 SetPlayerProperty (0, 1, 0)
	   CBOS P 0 A_PlaySound("Obliterator/Roar",CHAN_AUTO,1.0,FALSE,ATTN_NONE)
	   KXOB AAA 8 ACS_NamedExecuteAlways("KXObliteratorSprite",0,1)
	   CBOS P 0 A_PlaySound("cbaron/jump")
	   TNT1 A 0 ThrustThingZ(0,40,0,1)
	   TNT1 A 0 A_Recoil(-50)
	   TNT1 A 0 SetPlayerProperty (0, 0, 0)
	   Goto Falling
  Falling:
       TNT1 A 0 ACS_NamedExecuteAlways("KXObliteratorSprite",0,2)
	   TNT1 A 0 A_GiveInventory("KXObliteratorIsJumping",1)
	   KXOB A 0 A_SpawnItemEx("KXObliteratorTrail",0,0,0,0,0,0,0,128) 
	   KXOB A 1 A_WeaponReady(WRF_NOFIRE|WRF_NOSWITCH)
	   KXOB A 0 A_JumpIfInventory("KXStopJumping",1,"FallingStomp")
	   KXOB A 0 A_JumpIf(Z==FloorZ && !MomZ,"Stomp")
	   Loop
  FallingStomp:
       TNT1 A 0 A_Stop
       KXOB A 0 A_SpawnItemEx("KXObliteratorTrail",0,0,0,0,0,0,0,128) 
	   KXOB A 1 A_WeaponReady(WRF_NOFIRE|WRF_NOSWITCH)
	   KXOB A 0 A_JumpIf(Z==FloorZ && !MomZ,"Stomp")
	   Goto FallingStomp+1
  Stomp:
        TNT1 A 0 A_SpawnItemEx("KXStompEffect",0,0,3,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION)
		TNT1 A 0 A_SpawnItemEx("KXStompEffect2",0,0,32,0,0,0,0,SXF_NOCHECKPOSITION)
		TNT1 A 0 A_SpawnItemEx("KXStompEffect2",8,0,32,0,0,0,0,SXF_NOCHECKPOSITION)
		TNT1 A 0 A_SpawnItemEx("KXStompEffect2",-8,0,32,0,0,0,0,SXF_NOCHECKPOSITION)
		TNT1 A 0 A_SpawnItemEx("KXStompEffect2",0,8,32,0,0,0,0,SXF_NOCHECKPOSITION)
		TNT1 A 0 A_SpawnItemEx("KXStompEffect2",0,-8,32,0,0,0,0,SXF_NOCHECKPOSITION)
		TNT1 A 0 A_PlaySound("cbaron/Stomp",CHAN_WEAPON,1.0,FALSE,ATTN_NONE)
		TNT1 A 0 A_TakeInventory("KXObliteratorIsJumping",1)
		TNT1 A 0 A_TakeInventory("KXStopJumping",1)
		KXOB A 20 A_WeaponReady(WRF_NOFIRE|WRF_NOSWITCH)
		Goto Ready
  Reload:
       TNT1 A 0 ACS_NamedExecuteAlways("KXObliteratorSprite",0,0)
	   TNT1 A 0 A_PlaySound("Obliterator/Melee",CHAN_WEAPON)
       KXOB GHIJKL 1 Bright A_WeaponReady(WRF_NOFIRE|WRF_NOSWITCH)
	   TNT1 A 0 Bright A_FireCustomMissile("ObliteratorMelee",-30,0,0,0,0,6)
	   TNT1 A 0 Bright A_FireCustomMissile("ObliteratorMelee",-25,0,0,0,0,5)
	   TNT1 A 0 Bright A_FireCustomMissile("ObliteratorMelee",-20,0,0,0,0,4)
	   KXOB M 1 Bright A_FireCustomMissile("ObliteratorMelee",-15,0,0,0,0,3)
	   TNT1 A 0 Bright A_FireCustomMissile("ObliteratorMelee",-10,0,0,0,0,2)
	   TNT1 A 0 Bright A_FireCustomMissile("ObliteratorMelee",-5,0,0,0,0,1)
	   TNT1 A 0 Bright A_FireCustomMissile("ObliteratorMelee",0,0,0,0,0,0)
	   KXOB N 1 Bright A_FireCustomMissile("ObliteratorMelee",5,0,0,0,0,-1)
	   TNT1 A 0 Bright A_FireCustomMissile("ObliteratorMelee",10,0,0,0,0,-2)
	   TNT1 A 0 Bright A_FireCustomMissile("ObliteratorMelee",15,0,0,0,0,-3)
	   TNT1 A 0 Bright A_FireCustomMissile("ObliteratorMelee",20,0,0,0,0,-4)
	   KXOB O 1 Bright A_FireCustomMissile("ObliteratorMelee",25,0,0,0,0,-5)
	   TNT1 A 0 Bright A_FireCustomMissile("ObliteratorMelee",30,0,0,0,0,-6)
	   KXOB PQR 1 Bright A_WeaponReady(WRF_NOFIRE|WRF_NOSWITCH)
	   KXOB A 5 A_WeaponReady(WRF_NOFIRE|WRF_NOSWITCH)
	   Goto Ready
  Flash:
       SNIF F 3 Bright A_Light2
       SNIF F 3 Bright A_Light1
       SNIF F 0 Bright A_Light0
       Goto LightDone     
       }
}

ACTOR KXObliteratorHand2 : KXObliteratorHand
{
Tag "Fireball Cannon"
Weapon.SlotNumber 2
Weapon.AmmoUse 10
States
{
  Fire:
       TNT1 A 0 A_JumpIfNoAmmo("FireFail")
       KXOB AB 3 A_WeaponReady(WRF_NOFIRE|WRF_NOSWITCH)
	   KXOB C 0 Bright A_FireCustomMissile("ObliteratorShot",0,1,0,0)
	   TNT1 A 0 A_TakeInventory("KXObliteratorManaCooldown",1)
	   TNT1 A 0 A_GiveInventory("KXObliteratorManaCooldown",1)
	   TNT1 A 0 A_GiveInventory("KXObliteratorSoundToken",1)
	   KXOB CD 2 A_WeaponReady(WRF_NOFIRE|WRF_NOSWITCH)
	   Goto Ready
  Hold:
       TNT1 A 0 A_JumpIfNoAmmo("FireFail")
       KXOB AB 3 A_WeaponReady(WRF_NOFIRE|WRF_NOSWITCH)
	   KXOB C 0 Bright A_FireCustomMissile("ObliteratorShot",0,1,0,0)
	   TNT1 A 0 A_TakeInventory("KXObliteratorManaCooldown",1)
	   TNT1 A 0 A_GiveInventory("KXObliteratorManaCooldown",1)
	   TNT1 A 0 A_GiveInventory("KXObliteratorSoundToken",1)
	   KXOB CD 2 A_WeaponReady(WRF_NOFIRE|WRF_NOSWITCH)
	   Goto Ready
  }
}

ACTOR KXObliteratorHand3 : KXObliteratorHand
{
Tag "Fire Spread"
Weapon.SlotNumber 3
Weapon.AmmoUse 35
States
{
  Fire:
       
       TNT1 A 0 A_JumpIfNoAmmo("FireFail")
	   TNT1 A 0 A_TakeInventory("KXObliteratorMana",35)
	   TNT1 A 0 A_TakeInventory("KXObliteratorManaCooldown",1)
	   TNT1 A 0 A_GiveInventory("KXObliteratorManaCooldown",1)
	   TNT1 A 0 A_GiveInventory("KXObliteratorSoundToken",1)
       TNT1 A 0 ACS_NamedExecuteAlways("KXObliteratorSprite",0,0)
	   TNT1 A 0 A_PlaySound("Obliterator/Melee",CHAN_WEAPON)
       KXOB GHIJKL 1 Bright A_WeaponReady(WRF_NOFIRE|WRF_NOSWITCH)
	   TNT1 AAAAAAAAAAAAAAAAAAAA 0 Bright A_FireCustomMissile("ObliteratorFireBall2",frandom(-35,35),0,0,0,0,0)
	   KXOB MNOPQR 1 Bright A_WeaponReady(WRF_NOFIRE|WRF_NOSWITCH)
	   KXOB A 5 A_WeaponReady(WRF_NOFIRE|WRF_NOSWITCH)
	   Goto Ready
	   Goto Ready
  Hold:
       TNT1 A 0 A_JumpIfNoAmmo("FireFail")
       KXOB AB 3 A_WeaponReady(WRF_NOFIRE|WRF_NOSWITCH)
	   TNT1 A 0 A_TakeInventory("KXObliteratorManaCooldown",1)
	   TNT1 A 0 A_GiveInventory("KXObliteratorManaCooldown",1)
	   KXOB C 0 Bright A_FireCustomMissile("ObliteratorFlames",0,1,0,0)
	   KXOB CD 2 A_WeaponReady(WRF_NOFIRE|WRF_NOSWITCH)
	   Goto Ready
  }
}

Actor KXObliteratorMana : Ammo
{
	Inventory.PickupMessage ""
	Inventory.Amount 1
	Inventory.MaxAmount 120
	Inventory.Icon "LVASB0"
	Ammo.BackPackAmount 120
	Ammo.BackPackMaxAmount 120
	+INVENTORY.IGNORESKILL
	States
	{
	Spawn:
		TNT1 A -1
		Stop
	}
}

Actor ObliteratorFlames
{
  Radius 6
  Height 8
  Speed 50
  Damage (4)
  Projectile
  RenderStyle Add
  DamageType Fire
  Alpha 1.0
  Scale 0.67
  DeathSound "Obliterator/FireHit"
  DamageType "Obliterator"
  States
  {
  Spawn:
    TNT1 A 1
    FRFX ABCD 1 bright A_Explode(1, 8, 0)
    TNT1 A 0 A_LowGravity
    FRFX EFG 1 bright A_Explode(1, 16, 0)
    FRFX HIJ 1 bright A_Explode(1, 32, 0)
	FRFX N 0 A_CustomMissile("ObliteratorFlames2", 0, 0, 0, 4)
    FRFX KLM 1 bright A_Explode(1, 64, 0)
    FRFX N 1 bright 
	FRFX O 1 bright
    Stop
  Death:
    FRFX HIJ 1 bright A_Explode(1, 32, 0)
    TNT1 A 0 A_CustomMissile("ObliteratorFlames2", 0, 0, 0, 4)
    FRFX KLM 1 bright A_Explode(1, 64, 0)
    FRFX NO 1 bright
    Stop
  }
}

Actor ObliteratorFlames2
{
  Radius 8
  Height 40
  Projectile
  RenderStyle Add
  DamageType Fire
  Alpha 0.90
  DamageType "Obliterator"
  -NoGravity
  +LowGravity
  +NoExplodeFloor
  +NoDamageThrust
  +ThruGhost
  States
  {
  Spawn:
    TNT1 A 0
    TNT1 A 0 A_Playsound("Obliterator/Flame")
    FLME ABCDEFG 1 Bright A_Explode(1, 48, 0)
	TNT1 A 0 A_SpawnItemEx("ObliteratorFlamesParticle",frandom(-4,4),frandom(-4,4),frandom(30,40),frandom(-1,1),frandom(-1,1),frandom(1,9),random(0,360))
    FLME HIJKLMN 1 Bright A_Explode(1, 48, 0)
	TNT1 A 0 A_SpawnItemEx("ObliteratorFlamesParticle",frandom(-4,4),frandom(-4,4),frandom(30,40),frandom(-1,1),frandom(-1,1),frandom(1,9),random(0,360))
    FLME A 0 A_Jump(24,"Death")
    Goto Spawn+2
  Death:
    FLME A 0 Bright A_Playsound("Obliterator/Flame")
    FLME ABCDEFGHIJKLMN 1 Bright A_FadeOut(0.04)
    Loop
  }
}

Actor ObliteratorFlamesParticle 
{
    Projectile
	+NoInteraction
	+NoBlockMap
	+ClientSideOnly
	+ThruActors
	Scale 0.33
	States
	{
  Spawn:
    TNT1 A 0
    TNT1 A 0 A_Jump(256,"One","Two")
  One:
    OBLF AABBCCDDEEFFGGHH 1 Bright A_FadeOut(0.04)
    Wait
  Two:
    OBLF IIJJKKLLMMNNOOPP 1 Bright A_FadeOut(0.04)
    Wait
  Death:
    "####" "#" 0 Bright A_SetScale(ScaleX*0.9)
    "####" "#" 1 Bright A_FadeOut(0.04)
    Loop
	}
}

Actor ObliteratorShot
{
	Radius 6
	Height 16
	Speed 48
	Alpha 1
	RenderStyle Add
	Damage (15)
	DamageType "SjasScream"
	SeeSound "JugulumAttack"
	Obituary "%o was roasted alive by %k."
	DeathSound "Imp/ShotX"
	Decal "Scorch"
	PROJECTILE
	+RANDOMIZE
	+SEEKERMISSILE
	States
	{
	Spawn:
		MANF AAA 1 bright A_SpawnItemEx("JuggPuff", -8, 0, 0, random(0 ,1), random(0 ,1), random (-1, 1), 0, 176)
		MANF BBB 1 bright A_SpawnItemEx("JuggPuff", -8, 0, 0, random(0 ,1), random(0 ,1), random (-1, 1), 0, 176)	
		Loop
	XDeath:
		TNT1 A 0 A_GiveToTarget("HitBeep",1)
		TNT1 A 0 A_Jump(256,"DeathCont")
		Goto DeathCont
	Death:
		TNT1 A 0 A_ChangeFlag("NOINTERACTION",1)
		TNT1 A 0 A_Stop
		TNT1 A 0 A_SeekerMissile(0,0,SMF_LOOK|SMF_CURSPEED,256)
		TNT1 A 0 A_JumpIfTargetInLOS("SplashBeep",360,JLOSF_PROJECTILE,113)
		TNT1 A 0 A_Jump(256,"DeathCont")
	SplashBeep:
		TNT1 A 0 A_GiveToTarget("HitBeep",1)
		TNT1 A 0 A_Jump(256,"DeathCont")
		Goto DeathCont
	DeathCont:
		MISL B 0 A_PlaySound("Vile/FireCrkl")
		MISL B 8 bright A_Explode(12,80,0)
		MISL C 6 bright
		MISL D 4 bright
		Stop
	}
}

Actor ObliteratorMelee
{
    Radius 8
    Height 8
    Speed 50
    Damage (5)
    RenderStyle Add
    DamageType "Obliterator"
    Projectile
	+BLOODSPLATTER
   States
  {
  Spawn:
    TNT1 A 0
	TNT1 AAA 1 Bright
	DEM1 A 0 A_Stop
  Death:
	PUFF B 1 Bright
    PUFF B 1 Bright A_FadeOut(0.1)
	Wait
  XDeath:
	TNT1 A 0 A_PlaySound("cbaron/DashHit",CHAN_AUTO,1.0)
	Stop
  }
}

ACTOR ObliteratorFireBall2 : DoomImpBall
{
  Speed 1
  Damage (0)
  +NOGRAVITY
  +Randomize
  +SEEKERMISSILE
  RenderStyle Add
  DamageType "Obliterator"
  States
  {
  Spawn:
    TNT1 A 0
    TNT1 A 0 A_ScaleVelocity(frandom(1.0,20.0))
    BAL1 AB 2 bright
    Goto Spawn+2
  XDeath:
	TNT1 A 0 A_GiveToTarget("HitBeep",1)
	TNT1 A 0 A_Jump(256,"DeathCont")
	Goto DeathCont
  Death:
	TNT1 A 0 A_ChangeFlag("NOINTERACTION",1)
	TNT1 A 0 A_Stop
	TNT1 A 0 A_SeekerMissile(0,0,SMF_LOOK|SMF_CURSPEED,256)
	TNT1 A 0 A_JumpIfTargetInLOS("SplashBeep",360,JLOSF_PROJECTILE,90)
	TNT1 A 0 A_Jump(256,"DeathCont")
	Goto DeathCont
  SplashBeep:
	TNT1 A 0 A_GiveToTarget("HitBeep",1)
	TNT1 A 0 A_Jump(256,"DeathCont")
	Goto DeathCont
  DeathCont:
    TNT1 A 0 A_Explode(10,64)
    BAL1 CDE 4 bright
    stop
  }
}

Actor KXStaggeredEffect : CustomInventory
{
	+Inventory.AlwaysPickup
	+Inventory.Quiet
	States
	{
	Spawn:
		TNT1 A 1
		Stop
	Pickup:
	    TNT1 A 0 A_SetBlend("99 99 0", 1.0, 5)
		NULL AAAAAAAA 0 A_SpawnItemEx ("CYBJUNK1", 1, 1, random(8,32), random(0,5), random(0,5), random(8,18), random(0,360), 161, 0)
        NULL AAAAAAAA 0 A_SpawnItemEx ("CYBJUNK2", 1, 1, random(8,32), random(0,5), random(0,5), random(8,18), random(0,360), 161, 0)
        NULL AAAAAAAA 0 A_SpawnItemEx ("CYBJUNK3", 1, 1, random(8,32), random(0,5), random(0,5), random(8,18), random(0,360), 161, 0)
        NULL AAAAAAAA 0 A_SpawnItemEx ("CYBJUNK4", 1, 1, random(8,32), random(0,5), random(0,5), random(8,18), random(0,360), 161, 0)
        NULL AAAAAAAA 0 A_SpawnItemEx ("CYBJUNK5", 1, 1, random(8,32), random(0,5), random(0,5), random(8,18), random(0,360), 161, 0)
		Stop
  }
}

Actor KXObliteratorDashCooldown : Inventory
{
	Inventory.MaxAmount 1
}

Actor KXObliteratorJumpCooldown : Inventory
{
	Inventory.MaxAmount 1
}

Actor KXObliteratorJumpToken : Inventory
{
	Inventory.MaxAmount 1
}

Actor KXObliteratorIsJumping : Inventory
{
	Inventory.MaxAmount 1
}

Actor KXObliteratorSoundToken : Inventory
{
	Inventory.MaxAmount 1
}

Actor KXStopJumping : Inventory
{
	Inventory.MaxAmount 1
}

Actor KXObliteratorManaCooldown : Powerup
{
	Powerup.Duration -4
}

Actor KXObliteratorStaggerCooldown : Powerup
{
	Powerup.Duration -3
}

Actor KXStaggeredToken : Inventory
{
	Inventory.MaxAmount 1
}

Actor KXObliteratorStaggerCounter : Inventory
{
	Inventory.Amount 1
	Inventory.MaxAmount 100
}

ACTOR KXObliteratorTrail
{   
    RenderStyle Translucent
	+NoGravity
    +ClientSideOnly
    +DontSplash
	+NoBlockMap
    +NoInteraction
	+Noclip
	Alpha 1.0
    States
    {
    Spawn:
      TNT1 A 1
	  CBOS P 1 A_FadeOut(0.05)
      Goto Spawn+1 
	  }
}

ACTOR KXObliteratorTrail2
{   
    RenderStyle Translucent
	+NoGravity
    +ClientSideOnly
    +DontSplash
	+NoBlockMap
    +NoInteraction
	+Noclip
	Alpha 1.0
    States
    {
    Spawn:
      TNT1 A 1
	  CBOS A 1 A_FadeOut(0.05)
      Goto Spawn+1 
	  }
}

ACTOR ObliteratorEnterButton : CustomInventory
{
  +Inventory.Quiet
  +INVBAR
  Inventory.Amount 1
  Inventory.MaxAmount 1
  States
  {
  Spawn:
    TNT1 A 1
    Stop
  Use:
	TNT1 A 0 A_JumpIfInventory("KXObliteratorIsJumping",1,"Stomping")
    TNT1 A 0 A_JumpIfInventory("KXObliteratorJumpCooldown",1,"Nothing")
	TNT1 A 0 A_JumpIfInventory("KXStaggeredToken",1,"Nothing")
	TNT1 A 0 A_GiveInventory("KXObliteratorJumpCooldown",1)
	TNT1 A 0 A_GiveInventory("KXObliteratorJumpToken",1)
	TNT1 A 0 
    Fail
  Stomping:
    TNT1 A 0 A_GiveInventory("KXStopJumping",1)
	TNT1 A 0 
    Fail
  Nothing:
    TNT1 A 0
    Fail
  }
}

ACTOR ObliteratorDashItem : CustomInventory
{
  +Inventory.AlwaysPickup
  +Inventory.Quiet
  States
  {
  Spawn:
    TNT1 A 1
    Stop
  Pickup:
	TNT1 A 0 A_SpawnItemEx("KXObliteratorTrail2", -10, 0, 0, 0, 0, 0, 0, SXF_CLIENTSIDE | SXF_NOCHECKPOSITION)
	Stop
  }
}

Actor KXStompEffect
{
	+ClientSideOnly
	+NoBlockMap
	+NoTeleport
    +DontSplash
	+Noclip
    +ThruActors
	+NoInteraction
	Speed 0
	Radius 0
	Height 0
	States
	{
	Spawn:
		TNT1 A 0
		TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("KXDustParticle2",0,0,2,frandom(-10,10),frandom(-10,10),frandom(0,15),random(1,360),SXF_NOCHECKPOSITION)
		TNT1 AAAAAAAAAAAAAAA 0 A_SpawnItemEx("KXDustParticle3",0,0,2,frandom(-10,10),frandom(-10,10),frandom(0,5),random(1,360),SXF_NOCHECKPOSITION)
		TNT1 A 0 A_SpawnItemEx("KXStompEffectProj",0,0,5,15,0,0,0,SXF_NOCHECKPOSITION)
		TNT1 A 0 A_SpawnItemEx("KXStompEffectProj",0,0,5,15,0,0,10,SXF_NOCHECKPOSITION)
		TNT1 A 0 A_SpawnItemEx("KXStompEffectProj",0,0,5,15,0,0,20,SXF_NOCHECKPOSITION)
		TNT1 A 0 A_SpawnItemEx("KXStompEffectProj",0,0,5,15,0,0,30,SXF_NOCHECKPOSITION)
		TNT1 A 0 A_SpawnItemEx("KXStompEffectProj",0,0,5,15,0,0,40,SXF_NOCHECKPOSITION)
		TNT1 A 0 A_SpawnItemEx("KXStompEffectProj",0,0,5,15,0,0,50,SXF_NOCHECKPOSITION)
		TNT1 A 0 A_SpawnItemEx("KXStompEffectProj",0,0,5,15,0,0,60,SXF_NOCHECKPOSITION)
		TNT1 A 0 A_SpawnItemEx("KXStompEffectProj",0,0,5,15,0,0,70,SXF_NOCHECKPOSITION)
		TNT1 A 0 A_SpawnItemEx("KXStompEffectProj",0,0,5,15,0,0,80,SXF_NOCHECKPOSITION)
		TNT1 A 0 A_SpawnItemEx("KXStompEffectProj",0,0,5,15,0,0,90,SXF_NOCHECKPOSITION)
		TNT1 A 0 A_SpawnItemEx("KXStompEffectProj",0,0,5,15,0,0,100,SXF_NOCHECKPOSITION)
		TNT1 A 0 A_SpawnItemEx("KXStompEffectProj",0,0,5,15,0,0,110,SXF_NOCHECKPOSITION)
		TNT1 A 0 A_SpawnItemEx("KXStompEffectProj",0,0,5,15,0,0,120,SXF_NOCHECKPOSITION)
		TNT1 A 0 A_SpawnItemEx("KXStompEffectProj",0,0,5,15,0,0,130,SXF_NOCHECKPOSITION)
		TNT1 A 0 A_SpawnItemEx("KXStompEffectProj",0,0,5,15,0,0,140,SXF_NOCHECKPOSITION)
		TNT1 A 0 A_SpawnItemEx("KXStompEffectProj",0,0,5,15,0,0,150,SXF_NOCHECKPOSITION)
		TNT1 A 0 A_SpawnItemEx("KXStompEffectProj",0,0,5,15,0,0,160,SXF_NOCHECKPOSITION)
		TNT1 A 0 A_SpawnItemEx("KXStompEffectProj",0,0,5,15,0,0,170,SXF_NOCHECKPOSITION)
		TNT1 A 0 A_SpawnItemEx("KXStompEffectProj",0,0,5,15,0,0,180,SXF_NOCHECKPOSITION)
		TNT1 A 0 A_SpawnItemEx("KXStompEffectProj",0,0,5,15,0,0,190,SXF_NOCHECKPOSITION)
		TNT1 A 0 A_SpawnItemEx("KXStompEffectProj",0,0,5,15,0,0,200,SXF_NOCHECKPOSITION)
		TNT1 A 0 A_SpawnItemEx("KXStompEffectProj",0,0,5,15,0,0,210,SXF_NOCHECKPOSITION)
		TNT1 A 0 A_SpawnItemEx("KXStompEffectProj",0,0,5,15,0,0,220,SXF_NOCHECKPOSITION)
		TNT1 A 0 A_SpawnItemEx("KXStompEffectProj",0,0,5,15,0,0,230,SXF_NOCHECKPOSITION)
		TNT1 A 0 A_SpawnItemEx("KXStompEffectProj",0,0,5,15,0,0,240,SXF_NOCHECKPOSITION)
		TNT1 A 0 A_SpawnItemEx("KXStompEffectProj",0,0,5,15,0,0,250,SXF_NOCHECKPOSITION)
		TNT1 A 0 A_SpawnItemEx("KXStompEffectProj",0,0,5,15,0,0,260,SXF_NOCHECKPOSITION)
		TNT1 A 0 A_SpawnItemEx("KXStompEffectProj",0,0,5,15,0,0,270,SXF_NOCHECKPOSITION)
		TNT1 A 0 A_SpawnItemEx("KXStompEffectProj",0,0,5,15,0,0,280,SXF_NOCHECKPOSITION)
		TNT1 A 0 A_SpawnItemEx("KXStompEffectProj",0,0,5,15,0,0,290,SXF_NOCHECKPOSITION)
		TNT1 A 0 A_SpawnItemEx("KXStompEffectProj",0,0,5,15,0,0,300,SXF_NOCHECKPOSITION)
		TNT1 A 0 A_SpawnItemEx("KXStompEffectProj",0,0,5,15,0,0,310,SXF_NOCHECKPOSITION)
		TNT1 A 0 A_SpawnItemEx("KXStompEffectProj",0,0,5,15,0,0,320,SXF_NOCHECKPOSITION)
		TNT1 A 0 A_SpawnItemEx("KXStompEffectProj",0,0,5,15,0,0,330,SXF_NOCHECKPOSITION)
		TNT1 A 0 A_SpawnItemEx("KXStompEffectProj",0,0,5,15,0,0,340,SXF_NOCHECKPOSITION)
		TNT1 A 0 A_SpawnItemEx("KXStompEffectProj",0,0,5,15,0,0,350,SXF_NOCHECKPOSITION)
		Stop
	}
}

Actor KXStompEffect2
{
	DamageType "Obliterator"
	DeathType "Jitter"
	States
	{
	Spawn:
		TNT1 A 0
		TNT1 A 1 A_Explode(500,175,0,0,90)
		Stop
	}
}

ACTOR KXStompEffectProj
{
	Speed 0
	Damage (0)
	Radius 1
	Height 1
	RenderStyle Translucent
	Alpha 1.0
	Projectile
	+DropOff
	-NoGravity
	+FloorHugger
	+ThruActors
	+NoInteraction
	+NoBlockMap
	+ClientSideOnly
	States
	{
	Spawn:
		IDGA A 0 Bright A_SetScale(ScaleX*0.9)
		IDGA A 1 Bright A_FadeOut(0.1)
		Loop
	}
}

Actor KXDustParticle2
{
    Projectile
	Damage 0
	+NoBlockMap
	+BloodlessImpact
	+ClientSideOnly
    -BloodSplatter
    +DontSplash
    +ForceXYBillBoard
	-NoGravity
	+ThruActors
	Speed 0
	Radius 1
	Height 1
	Gravity 0.9
	RenderStyle Normal
	Alpha 1.0
	Scale 0.4
	States
	{
  Spawn:
    TNT1 A 0
    TNT1 A 0 A_Jump(256,"One", "Two", "Three", "Four", "Five", "Six", "Seven")
    Loop
  One:
	CYST A 1 Bright 
	Loop
  Two:
	CYST B 1 Bright 
	Loop
  Three:
	CYST C 1 Bright 
	Loop
  Four:
	CYST D 1 Bright 
	Loop
  Five:
	CYST E 1 Bright 
	Loop
  Six:
	CYST F 1 Bright 
	Loop
  Seven:
	CYST G 1 Bright 
	Loop
  Death:
	HRKE ABCDE 2 
	Stop
	}
}

Actor KXDustParticle3 : KXDustParticle2
{
	Scale 0.33
	+DoomBounce
	States
	{
  Spawn:
  Death:
    KDUS B 0 Bright A_SetScale(ScaleX+0.03)
    KDUS B 1 Bright A_FadeOut(0.04)
    Loop
	}
}

