ACTOR ProtonCharge : Ammo
{
+INVENTORY.IGNORESKILL
  Inventory.PickupMessage "Proton charge!"
  Inventory.Amount 250
  Inventory.MaxAmount 250//200
  Ammo.BackpackAmount 250
  Ammo.BackpackMaxAmount 250
  Inventory.Icon "CELLA0"
  States
  {
  Spawn:
    CELL A -1
    Stop
  }
}

Actor GhostBuster : PlayerPawn
{
	Health 100
	Player.Maxhealth 100
	Radius 16
	Height 56
	Mass 700
	+GHOST
	+QUICKTORETALIATE
	limitedtoteam 0
	player.sidemove 0.9
	PainChance 256
	player.soundclass "peter"
	Player.ColorRange 128, 151
	+NOSKIN
	player.scoreicon "GHOSTBS"
	+NOICEDEATH
	Player.DisplayName "Ghostbuster"
	Player.StartItem "GhostBusterPlasma"
	Player.StartItem "GhostBusterTraps"
	Player.StartItem "ProtonCharge", 250
	Player.StartItem "TrapAmmo", 15
	Player.StartItem "GBCancelItem"
	Player.StartItem "IsHuman", 1
	Player.StartItem "Screamer", 0
	Damagefactor "MechPewPews", 0.0
	DamageFactor "GhostTrap", 0.0
	Damagefactor "normal", 1.0
	Damagefactor "Sentinel", 0.0
	Damagefactor "GraveStalkerLure", 1.8
	Damagefactor "MacheteSlicerino", 0.0
    Damagefactor "GasterSmokeHurt", 0.0
	Damagefactor "StrifeSuit", 0.0
	States
	{
	Spawn:
		TNT1 A 0 ACS_NamedExecute("PlayerSpawn")
		PETE A 0 A_JumpIfInventory("GloomWatchStack",100,"GloomDeath")	
		PETE A 15 Setplayerproperty(0,0,0)
		PETE A 0 A_JumpIfInventory("ProtonCharge", 0, "Spawn")
		PETE A 0 ACS_ExecuteAlways(996, 0)
		PETE A 0 
		PETE A 0 A_GiveInventory("ProtonCharge", 10)
		loop
		PETE A 1
		Loop
	See:
		PETE A 0 A_JumpIfInventory("GloomWatchStack",100,"GloomDeath")	
		PETE A 0 A_JumpIfHealthLower(50,"INeedHealingSee")
		PETE AB 5
		PETE A 0 A_SpawnItemEx ("GhostbusterStomp", 0, 0, 0, 0, 0, -20, 0,0, 0) 
		PETE CD 5
		PETE A 0 A_SpawnItemEx ("GhostbusterStomp", 0, 0, 0, 0, 0, -20, 0,0, 0) 
		Goto Spawn
	INeedHealingSee:
		PETE A 0 A_JumpIfInventory("GloomWatchStack",100,"GloomDeath")	
		PETE A 0 A_SpawnItemEx("INeedHealingTrail",random(-20,20),random(-20,20),0,0,0,10)
		PETE AB 5
		PETE A 0 A_SpawnItemEx ("GhostbusterStomp", 0, 0, 0, 0, 0, -20, 0,0, 0) 
		PETE CD 5
		PETE A 0 A_SpawnItemEx ("GhostbusterStomp", 0, 0, 0, 0, 0, -20, 0,0, 0) 
		Goto Spawn
	Pain.TeleOtherPlant:
	TNT1 A 0 A_GiveInventory("TeleOtherPlanted",1)
	Goto Pain
	Pain.TeleOtherActivateDamage:
	TNT1 A 0 A_JumpIfInventory("TeleOtherPlanted",1,"TeleOtherSend")
	Goto Pain	
	TeleOtherSend:
	TNT1 A 0 A_TakeInventory("TeleOtherPlanted",1)
	TNT1 A 0 A_PlaySound("TeleOther/activate",CHAN_7,1)
	TNT1 A 0 A_SpawnItem("TeleOtherFog")
	TNT1 A 0 ACS_ExecuteAlways(466,0,2)
	PETE G 1 A_PlaySound("TeleOther/activate",CHAN_6,1)
	TNT1 A 0 A_SpawnItem("TeleOtherFog")
	Goto Pain
	Death.TeleOtherActivateDamage:
	TNT1 A 0 A_JumpIfInventory("TeleOtherPlanted",1,"TeleOtherSplode")
	TNT1 A 0 A_TakeInventory("TeleOtherPlanted",1)
	TNT1 A 0 A_PlaySound("TeleOther/activate",CHAN_7,1)
	TNT1 A 0 A_SpawnItem("TeleOtherFog")
	TNT1 A 0 A_GiveToTarget("KilledMe",1)
	PETE G 1 A_PlaySound("Gibbage/XSplat")
	NULL A 0 A_SpawnItemEx("Custom_GBBloodySkull", 0, 0, 48, 0.5, 0, 10, random(0,360), SXF_ABSOLUTEVELOCITY)
	NULL A 0 A_PlaySound("gibbage/playergib") 
	NULL A 0 A_NoBlocking 
	NULL A 0 A_SpawnItemEx("PLAYERBOOT", 0, 0, 11, 0, 0, 27, 33, 160, 0)
	NULL A 0 A_SpawnItemEx("PLAYERBOOT", 0, 0, 11, 0, 0, 27, -33, 160, 0)
	NULL A 0 A_SpawnItemEx("SHOTGUYARM", 0, 0, 25, 0, 0, 50, random(0,360), 160, 0)
	NULL A 0 A_SpawnItemEx("SHOTGUYARM", 0, 0, 36, 0, 0, 32, random(0,360), 160, 0)
	NULL A 1 A_SpawnItemEx("GIBBER", 0, 0, 0, 0, 0, 0, 0, 160, 0)
	NULL A -1
	Stop
	TeleOtherSplode:
	TNT1 A 0 A_TakeInventory("TeleOtherPlanted",1)
	TNT1 A 0 A_PlaySound("TeleOther/activate",CHAN_7,1)
	TNT1 A 0 A_SpawnItem("TeleOtherFog")
	TNT1 A 0 ACS_ExecuteAlways(466,0,2)
	TNT1 A 0 A_GiveToTarget("KilledMe",1)
	PETE G 1 A_PlaySound("Gibbage/XSplat")
	TNT1 A 0 A_PlaySound("TeleOther/activate",CHAN_6,1)
	TNT1 A 0 A_SpawnItem("TeleOtherFog")
	NULL A 0 A_SpawnItemEx("Custom_GBBloodySkull", 0, 0, 48, 0.5, 0, 10, random(0,360), SXF_ABSOLUTEVELOCITY)
	NULL A 0 A_PlaySound("gibbage/playergib") 
	NULL A 0 A_NoBlocking 
	NULL A 0 A_SpawnItemEx("PLAYERBOOT", 0, 0, 11, 0, 0, 27, 33, 160, 0)
	NULL A 0 A_SpawnItemEx("PLAYERBOOT", 0, 0, 11, 0, 0, 27, -33, 160, 0)
	NULL A 0 A_SpawnItemEx("SHOTGUYARM", 0, 0, 25, 0, 0, 50, random(0,360), 160, 0)
	NULL A 0 A_SpawnItemEx("SHOTGUYARM", 0, 0, 36, 0, 0, 32, random(0,360), 160, 0)
	NULL A 1 A_SpawnItemEx("GIBBER", 0, 0, 0, 0, 0, 0, 0, 160, 0)
	NULL A -1
	Stop
	Pain.Creepstun:
    PETE G 0 A_Pain
	PETE G 0 A_GiveToTarget("health",5)
	PETE G 40 Setplayerproperty(0,1,0)
	PETE G 2 Setplayerproperty(0,0,0)
		Goto Spawn
	Pain.Justicar:
	TNT1 A 0 A_custommissile("Justicarattack",14,0,random(0,360))
	TNT1 A 0 A_GiveToTarget("Health",1)
	TNT1 A 0 A_GiveToTarget("JusticarSecondaryAmmo",1)
	Goto pain
	Missile:
		PETE E 0 A_JumpIfInventory("GloomWatchStack",100,"GloomDeath")	
		PETE E 12
		PETE E 6
		Goto Spawn
	Pain.Choke:
		TNT1 A 0 A_GiveToTarget("Health",2)
		TNT1 A 0 A_GiveToTarget("ChokeCharging",1)
		Goto Pain
	Pain.JusticarSpike:
		TNT1 A 0 ACS_NamedExecuteAlways("ChangeActivator",0)
		TNT1 A 0 A_GiveToTarget("Health",2)
	Pain:
		PETE G 0 A_JumpIfInventory("GloomWatchStack",100,"GloomDeath")	
		PETE G 0 A_Pain
		PETE G 18
		Goto Spawn
	Pain.GloomWatcherLure:
	TNT1 A 0 ACS_ExecuteAlways(134)
	TNT1 A 0 A_Playsound("GloomWatcher/FeintAttack",CHAN_7)
	Goto pain
	Death.GloomWatcherlure:
	TNT1 A 0 ACS_ExecuteAlways(134)
	TNT1 A 0 A_Playsound("GloomWatcher/FeintAttack",CHAN_7)
	Goto Death.Jitter
	GloomDeath:
	TNT1 A 1 Damagething(99999,18)
	Goto Death
	Death.Fleshbent:
	TNT1 A 0 A_GiveToTarget("TentacleAmmo",2)
	TNT1 A 0 A_GiveToTarget("Soulscepter1",15)
	TNT1 A 0 A_GiveToTarget("Soulscepter2",50)
	Goto Death.Jitter
	Pain.LoonaClawing:
	TNT1 A 0 A_GiveToTarget("Health",6)
	PETE G 20 Setplayerproperty(0,1,0)
	PETE G 2 Setplayerproperty(0,0,0)
	Goto Spawn
	Pain.LoonaClawingLightSFX:
	TNT1 A 0 A_PlaySound("Bastet/ClawHitLight",CHAN_6)
	TNT1 A 0 A_GiveToTarget("Health",5)
	PETE G 20 Setplayerproperty(0,1,0)
	PETE G 2 Setplayerproperty(0,0,0)
	Goto Spawn
	Pain.LoonaClawingHeavySFX:
	TNT1 A 0 A_PlaySound("Bastet/ClawHitHeavy",CHAN_6)
	TNT1 A 0 A_GiveToTarget("Health",8)
	PETE G 20 Setplayerproperty(0,1,0)
	PETE G 2 Setplayerproperty(0,0,0)
	Goto Spawn
	Death.LoonaClawing:
	TNT1 A 0 A_PlaySound("Bastet/ClawHitHeavy",CHAN_6)
	TNT1 A 0 A_GiveToTarget("Health",50)
	Goto Death.Jitter
	Death.LoonaClawingLightSFX:
	TNT1 A 0 A_PlaySound("Bastet/ClawHitLight",CHAN_6)
	TNT1 A 0 A_GiveToTarget("Health",50)
	Goto Death.Jitter
	Death.LoonaClawingHeavySFX:
	TNT1 A 0 A_PlaySound("Bastet/ClawHitHeavy",CHAN_6)
	TNT1 A 0 A_GiveToTarget("Health",50)
	Goto Death.Jitter
	Pain.BastetClawing:
		TNT1 A 0 A_GiveToTarget("Health",4)
		Goto Pain
	Pain.BastetClawingLightSFX:
		TNT1 A 0 A_PlaySound("Bastet/ClawHitLight",CHAN_5)
		TNT1 A 0 A_GiveToTarget("Health",3)
		Goto Pain
	Pain.BastetClawingHeavySFX:
		TNT1 A 0 A_PlaySound("Bastet/ClawHitHeavy",CHAN_5)
		TNT1 A 0 A_GiveToTarget("Health",6)
		Goto Pain
	Pain.Sickle:
		TNT1 A 0 ACS_NamedExecuteAlways("ChangeActivator",0)
	Pain.Wendigo:
		TNT1 A 0 A_PlaySound("RAVEN1",CHAN_5)
		TNT1 A 0 A_SpawnItemEx ("GIB4", 0, 0, random(0,42), 0, 0, random(2,4), random(0,360), 128)
		TNT1 A 0 A_SpawnItemEx ("GIB4", 0, 0, random(0,42), 0, 0, random(2,4), random(0,360), 128)
		Goto Pain
	Death.Creeper:
		PETE A 0 A_PlaySoundEx("creeperattack", "Body")
		PETE A 0 A_SpawnItemEx("CreeperPopUp",0,0,10)
		TNT1 A 0 A_GiveToTarget("GhoulAmmo",1)
		PETE A 0 A_GiveToTarget("Creeperheal",1)
		PETE A 0 ACS_ExecuteAlways(997,0,1)
		Goto DeathAnimAlt
	Death.Creepstun:
		PETE A 0 A_GiveToTarget("Unlock13",1)
		PETE A 0 A_GiveToTarget("CreepGotya",1)
		Goto DeathAnimAlt
	Death.SjasScream:
	Death.FrostbiteWind:
	Death.EmtalicSaw:
	Death.LichFire:
		PETE A 0 A_GiveToTarget("KilledJ",1)
		Goto DeathAnim
	Death:
	DeathAnim:
		PETE A 0 A_GiveToTarget("KillBeep",1)
		PETE A 0 A_GiveInventory("ItemDeath",1)
		PETE A 0 A_TakeInventory("KilledCount",999)
		PETE A 0 A_GiveToTarget("KilledMe",1)
		PETE A 0 A_GiveToTarget("KilledGBuster",1)
		PETE H 7 A_GiveInventory("RocketAmmo",1)
		PETE I 7 A_PlayerScream
		PETE J 5 A_NoBlocking
		PETE KLM 5
		PETE N -1
		Stop
	DeathAnimAlt:
		PETE A 0 A_GiveToTarget("KillIndicator",1)
		PETE A 0 A_GiveInventory("ItemDeath",1)
		PETE A 0 A_TakeInventory("KilledCount",999)
		PETE A 0 A_GiveToTarget("KilledMe",1)
		PETE A 0 A_GiveToTarget("KilledGBuster",1)
		PETE H 7 A_GiveInventory("RocketAmmo",1)
		PETE I 7 A_PlayerScream
		PETE J 5 A_NoBlocking
		PETE KLM 5
		PETE N -1
		Stop
	Death.GhoulChainSaw:
	TNT1 A 0 A_GiveToTarget("Health",50)
	TNT1 A 0 A_GiveToTarget("BearTarpsAmmo",1)
	TNT1 A 0 A_GiveToTarget("SawyerRageammo",10)
	TNT1 A 0 A_GiveToTarget("DUMMY_SawyerBloodyChainsaw", 1)
	Goto Death.Jitter
	Death.BastetClawing:
	TNT1 A 0 A_PlaySound("Bastet/ClawHitHeavy",CHAN_6)
	TNT1 A 0 A_GiveToTarget("Health",30)
	Goto Death.Jitter
	Death.BastetClawingLightSFX:
	TNT1 A 0 A_PlaySound("Bastet/ClawHitLight",CHAN_6)
	TNT1 A 0 A_GiveToTarget("Health",30)
	Goto Death.Jitter
	Death.BastetClawingHeavySFX:
	TNT1 A 0 A_PlaySound("Bastet/ClawHitHeavy",CHAN_6)
	TNT1 A 0 A_GiveToTarget("Health",30)
	Goto Death.Jitter
	Death.Choke:
		TNT1 A 0 A_GiveToTarget("Health",25)
		TNT1 A 0 A_GiveToTarget("ChokeCharging",40)
	Goto Death.Jitter
	Death.JusticarSpike:
		TNT1 A 0 A_GiveToTarget("Health",15)
	Goto Death.Jitter
	Death.Sinistar:
		TNT1 A 0 A_GiveToTarget("SiniPrimary",1)
	Goto Death.Jitter
	Death.MapGibber:
		TNT1 A 0 A_PlaySound("car/hit",chan_auto)
	Death.MapGibber2:
	Death.Jitter:
		PETE A 0 A_GiveToTarget("KillBeep",1)
		PETE A 0 A_GiveInventory("ItemDeath",1)
		PETE A 0 A_GiveToTarget("KilledMe",1)
		PETE A 0 A_GiveToTarget("KilledGBuster",1)
		PETE A 0 A_GiveToTarget("Crunched",1)
		PETE G 0 A_GiveInventory("RocketAmmo",1)
		PETE G 1 A_PlaySound("Gibbage/XSplat")
		NULL A 0 A_PlaySound("Gibbage/PlayerGib") 
		NULL A 0 A_NoBlocking 
		NULL A 0 A_SpawnItemEx("PLAYERBOOT", 0, 0, 11, 0, 0, 27, 33, 160, 0)
		NULL A 0 A_SpawnItemEx("PLAYERBOOT", 0, 0, 11, 0, 0, 27, -33, 160, 0)
		NULL A 0 A_SpawnItemEx("SHOTGUYARM", 0, 0, 25, 0, 0, 50, random(0,360), 160, 0)
		NULL A 0 A_SpawnItemEx("SHOTGUYARM", 0, 0, 36, 0, 0, 32, random(0,360), 160, 0)
		NULL A 0 A_SpawnItemEx("Custom_GBBloodySkull", 0, 0, 48, 0.5, 0, 10, random(0,360), SXF_ABSOLUTEVELOCITY)
		NULL A 1 A_SpawnItemEx("GIBBER", 0, 0, 0, 0, 0, 0, 0, 160, 0)
		NULL A -1
		Stop
	Death.JitterAlt:
		PETE A 0 A_GiveToTarget("KillIndicator",1)
		PETE A 0 A_GiveInventory("ItemDeath",1)
		PETE A 0 A_GiveToTarget("KilledMe",1)
		PETE A 0 A_GiveToTarget("KilledGBuster",1)
		PETE A 0 A_GiveToTarget("Crunched",1)
		PETE G 0 A_GiveInventory("RocketAmmo",1)
		PETE G 1 A_PlaySound("Gibbage/XSplat")
		NULL A 0 A_PlaySound("Gibbage/PlayerGib") 
		NULL A 0 A_NoBlocking 
		NULL A 0 A_SpawnItemEx("PLAYERBOOT", 0, 0, 11, 0, 0, 27, 33, 160, 0)
		NULL A 0 A_SpawnItemEx("PLAYERBOOT", 0, 0, 11, 0, 0, 27, -33, 160, 0)
		NULL A 0 A_SpawnItemEx("SHOTGUYARM", 0, 0, 25, 0, 0, 50, random(0,360), 160, 0)
		NULL A 0 A_SpawnItemEx("SHOTGUYARM", 0, 0, 36, 0, 0, 32, random(0,360), 160, 0)
		NULL A 0 A_SpawnItemEx("Custom_GBBloodySkull", 0, 0, 48, 0.5, 0, 10, random(0,360), SXF_ABSOLUTEVELOCITY)
		NULL A 1 A_SpawnItemEx("GIBBER", 0, 0, 0, 0, 0, 0, 0, 160, 0)
		NULL A -1
		Stop
	Death.Harvester:
		TNT1 A 0 A_GiveToTarget("SoulHarvesterFragment",1)
		TNT1 A 0 A_GiveToTarget("KilledJ",1)
		Goto Death.Jitter
	Death.HarvesterRock:
		TNT1 A 0 ACS_NamedExecute("SilverFieldsBell",55)
		Goto DeathAnim
	Death.HarvesterAlt:
		TNT1 A 0 A_GiveToTarget("Crunched2",1)
		TNT1 A 0 ACS_NamedExecute("SilverFieldsBell",55)
		Goto Death.Jitter
	Death.Ravager:
		PETE A 0 A_GiveToTarget("KilledR",1)
		PETE A 0 A_GiveToTarget("Health",100)
		PETE A 0 ACS_ExecuteAlways(997,0,2)
		PETE A 0 A_PlaySoundEx("RavagerAttack","Body")
		PETE A 0 A_SpawnItemEx("RavagerHit",0,0,32)
		Goto DeathAnimAlt
	Death.RavagerBall:
		PETE A 0 A_GiveToTarget("RavagerGotYa",1)
		PETE A 0 A_GiveToTarget("KilledJ",1)
		Goto DeathAnimAlt
	Death.Yurei:
		PETE A 0 A_GiveToTarget("KilledY",1)
		PETE A 0 A_PlaySoundEx("YureiKill1","Body",0,1)
		PETE A 0 ACS_ExecuteAlways(997,0,3)
		Goto DeathAnimAlt
	Death.YureiBall:
		PETE A 0 A_GiveToTarget("Health",10)
		PETE A 0 A_SpawnItemEx("BallFire")
		Goto Death.SjasScream
	Death.UboaRawrScream:
		Goto DeathAnimAlt
	Death.Misty:
	Death.Whiteface:
		PETE A 0 A_GiveToTarget("KillBeep",1)
		PETE A 0 A_GiveInventory("ItemDeath",1)
		PETE A 0 A_GiveToTarget("KilledMe",1)
		PETE A 0 A_GiveToTarget("KilledM",1)
		PETE HHHHHHH 1 A_FadeOut(0.05)
		PETE A 0 A_PlayerScream
		PETE IIIIIIIJJJJJK 1 A_FadeOut(0.05)
		PETE A 0 A_NoBlocking
		NULL A -1
		Stop
	Death.Clowny:
		PETE A 0 ACS_ExecuteAlways(997,0,4)
		PETE A 0 A_GiveToTarget("KilledC",1)
		PETE A 0 A_GiveToTarget("ClownyAmmo",5)
		Goto DeathAnim
	Death.Mohoph:
		PETE A 0 A_GiveToTarget("TransGhostBuster",1)
		TNT1 A 0 A_GiveToTarget("MorphAmmo", 1)
		PETE A 0 A_PlaySoundEx("MohophKill","Body")
		PETE A 0 ACS_ExecuteAlways(997,0,5)
		Goto DeathAnim
	Death.EmtalicWeak:
		PETE A 0 A_PlaySoundEx("RamSuccess","Body")
		Goto DeathAnim
	Death.Emtalic:
		PETE A 0  A_PlaySoundEx("RamSuccess","Body")
		Goto Death.Jitter
	Death.I1:
		PETE A 0 A_SpawnItemEx("Heart",0,0,32,random(2,3),momy,random(8,12),random(-180,180))
		PETE A 0 A_GiveToTarget("KilledI1",1)
		Goto DeathAnim
	Death.I2:
		PETE A 0 A_GiveToTarget("KillBeep",1)
		PETE A 0 A_GiveInventory("ItemDeath",1)
		PETE A 0 A_GiveToTarget("KilledMe",1)
		PETE A 0 A_GiveToTarget("KilledI2",1)
		PETE A 0 A_GiveToTarget("Clip",1)
		PETE G 0 SetPlayerProperty(0,1,4)
		PETE G 0 A_Stop
		PETE GGGGGGGGGGGGGG 5 A_SpawnItemEx("PainSmoke",0,random(-22,22),random(-22,22),random(2,4),momy,random(8,12),random(-180,180))
		NULL A 0 A_PlayerScream
		NULL A 0 ACS_ExecuteAlways(997,0,6)
		NULL A 0 A_SpawnItemEx("PLAYERBOOT", 0, 0, 11, 0, 0, 27, 33, 160, 0)
		NULL A 0 A_SpawnItemEx("PLAYERBOOT", 0, 0, 11, 0, 0, 27, -33, 160, 0)
		NULL A 0 A_SpawnItemEx("SHOTGUYARM", 0, 0, 25, 0, 0, 50, random(0,360), 160, 0)
		NULL A 0 A_SpawnItemEx("SHOTGUYARM", 0, 0, 36, 0, 0, 32, random(0,360), 160, 0)
        NULL A 0 A_SpawnItemEx ("BoneShardSpawner1", 1, 1, random(8,32), random(0,5), random(0,5), random(8,18), random(0,360), SXF_NOCHECKPOSITION, 0)
        NULL A 0 A_SpawnItemEx ("BoneShardSpawner2", 1, 1, random(8,32), random(0,5), random(0,5), random(8,18), random(0,360), SXF_NOCHECKPOSITION, 0)
        NULL A 0 A_SpawnItemEx ("BoneShardSpawner3", 1, 1, random(8,32), random(0,5), random(0,5), random(8,18), random(0,360), SXF_NOCHECKPOSITION, 0)
        NULL A 0 A_SpawnItemEx ("BoneShardSpawner1", 1, 1, random(8,32), random(0,5), random(0,5), random(8,18), random(0,360), SXF_NOCHECKPOSITION, 0)
        NULL A 0 A_SpawnItemEx ("BoneShardSpawner2", 1, 1, random(8,32), random(0,5), random(0,5), random(8,18), random(0,360), SXF_NOCHECKPOSITION, 0)
        NULL A 0 A_SpawnItemEx ("BoneShardSpawner3", 1, 1, random(8,32), random(0,5), random(0,5), random(8,18), random(0,360), SXF_NOCHECKPOSITION, 0)
        NULL A 0 A_SpawnItemEx ("BoneShardSpawner1", 1, 1, random(8,32), random(0,5), random(0,5), random(8,18), random(0,360), SXF_NOCHECKPOSITION, 0)
        NULL A 0 A_SpawnItemEx ("BoneShardSpawner2", 1, 1, random(8,32), random(0,5), random(0,5), random(8,18), random(0,360), SXF_NOCHECKPOSITION, 0)
        NULL A 0 A_SpawnItemEx ("BoneShardSpawner3", 1, 1, random(8,32), random(0,5), random(0,5), random(8,18), random(0,360), SXF_NOCHECKPOSITION, 0)
        NULL A 0 A_SpawnItemEx ("BoneShardSpawner1", 1, 1, random(8,32), random(0,5), random(0,5), random(8,18), random(0,360), SXF_NOCHECKPOSITION, 0)
        NULL A 0 A_SpawnItemEx ("BoneShardSpawner2", 1, 1, random(8,32), random(0,5), random(0,5), random(8,18), random(0,360), SXF_NOCHECKPOSITION, 0)
        NULL A 0 A_SpawnItemEx ("BoneShardSpawner3", 1, 1, random(8,32), random(0,5), random(0,5), random(8,18), random(0,360), SXF_NOCHECKPOSITION, 0)
        NULL A 0 A_SpawnItemEx ("BoneShardSpawner1", 1, 1, random(8,32), random(0,5), random(0,5), random(8,18), random(0,360), SXF_NOCHECKPOSITION, 0)
        NULL A 0 A_SpawnItemEx ("BoneShardSpawner2", 1, 1, random(8,32), random(0,5), random(0,5), random(8,18), random(0,360), SXF_NOCHECKPOSITION, 0)
        NULL A 0 A_SpawnItemEx ("BoneShardSpawner3", 1, 1, random(8,32), random(0,5), random(0,5), random(8,18), random(0,360), SXF_NOCHECKPOSITION, 0)
        NULL A 0 A_SpawnItemEx ("BoneShardSpawner1", 1, 1, random(8,32), random(0,5), random(0,5), random(8,18), random(0,360), SXF_NOCHECKPOSITION, 0)
        NULL A 0 A_SpawnItemEx ("BoneShardSpawner2", 1, 1, random(8,32), random(0,5), random(0,5), random(8,18), random(0,360), SXF_NOCHECKPOSITION, 0)
        NULL A 0 A_SpawnItemEx ("BoneShardSpawner3", 1, 1, random(8,32), random(0,5), random(0,5), random(8,18), random(0,360), SXF_NOCHECKPOSITION, 0)
        NULL A 0 A_SpawnItemEx ("BoneShardSpawner1", 1, 1, random(8,32), random(0,5), random(0,5), random(8,18), random(0,360), SXF_NOCHECKPOSITION, 0)
        NULL A 0 A_SpawnItemEx ("BoneShardSpawner2", 1, 1, random(8,32), random(0,5), random(0,5), random(8,18), random(0,360), SXF_NOCHECKPOSITION, 0)
        NULL A 0 A_SpawnItemEx ("BoneShardSpawner3", 1, 1, random(8,32), random(0,5), random(0,5), random(8,18), random(0,360), SXF_NOCHECKPOSITION, 0)
        NULL A 0 A_SpawnItemEx ("BoneShardSpawner1", 1, 1, random(8,32), random(0,5), random(0,5), random(8,18), random(0,360), SXF_NOCHECKPOSITION, 0)
        NULL A 0 A_SpawnItemEx ("BoneShardSpawner2", 1, 1, random(8,32), random(0,5), random(0,5), random(8,18), random(0,360), SXF_NOCHECKPOSITION, 0)
        NULL A 0 A_SpawnItemEx ("BoneShardSpawner3", 1, 1, random(8,32), random(0,5), random(0,5), random(8,18), random(0,360), SXF_NOCHECKPOSITION, 0)
        NULL A 0 A_SpawnItemEx ("BoneShardSpawner1", 1, 1, random(8,32), random(0,5), random(0,5), random(8,18), random(0,360), SXF_NOCHECKPOSITION, 0)
        NULL A 0 A_SpawnItemEx ("BoneShardSpawner2", 1, 1, random(8,32), random(0,5), random(0,5), random(8,18), random(0,360), SXF_NOCHECKPOSITION, 0)
        NULL A 0 A_SpawnItemEx ("BoneShardSpawner3", 1, 1, random(8,32), random(0,5), random(0,5), random(8,18), random(0,360), SXF_NOCHECKPOSITION, 0)
        NULL A 0 A_SpawnItemEx ("BoneShardSpawner1", 1, 1, random(8,32), random(0,5), random(0,5), random(8,18), random(0,360), SXF_NOCHECKPOSITION, 0)
        NULL A 0 A_SpawnItemEx ("BoneShardSpawner2", 1, 1, random(8,32), random(0,5), random(0,5), random(8,18), random(0,360), SXF_NOCHECKPOSITION, 0)
        NULL A 0 A_SpawnItemEx ("BoneShardSpawner3", 1, 1, random(8,32), random(0,5), random(0,5), random(8,18), random(0,360), SXF_NOCHECKPOSITION, 0)
        NULL A 0 A_SpawnItemEx ("BoneShardSpawner1", 1, 1, random(8,32), random(0,5), random(0,5), random(8,18), random(0,360), SXF_NOCHECKPOSITION, 0)
        NULL A 0 A_SpawnItemEx ("BoneShardSpawner2", 1, 1, random(8,32), random(0,5), random(0,5), random(8,18), random(0,360), SXF_NOCHECKPOSITION, 0)
        NULL A 0 A_SpawnItemEx ("BoneShardSpawner3", 1, 1, random(8,32), random(0,5), random(0,5), random(8,18), random(0,360), SXF_NOCHECKPOSITION, 0)
        NULL A 0 A_SpawnItemEx ("BoneShardSpawner1", 1, 1, random(8,32), random(0,5), random(0,5), random(8,18), random(0,360), SXF_NOCHECKPOSITION, 0)
        NULL A 0 A_SpawnItemEx ("BoneShardSpawner2", 1, 1, random(8,32), random(0,5), random(0,5), random(8,18), random(0,360), SXF_NOCHECKPOSITION, 0)
        NULL A 0 A_SpawnItemEx ("BoneShardSpawner3", 1, 1, random(8,32), random(0,5), random(0,5), random(8,18), random(0,360), SXF_NOCHECKPOSITION, 0)
        NULL A 0 A_SpawnItemEx ("BoneShardSpawner1", 1, 1, random(8,32), random(0,5), random(0,5), random(8,18), random(0,360), SXF_NOCHECKPOSITION, 0)
        NULL A 0 A_SpawnItemEx ("BoneShardSpawner2", 1, 1, random(8,32), random(0,5), random(0,5), random(8,18), random(0,360), SXF_NOCHECKPOSITION, 0)
        NULL A 0 A_SpawnItemEx ("BoneShardSpawner3", 1, 1, random(8,32), random(0,5), random(0,5), random(8,18), random(0,360), SXF_NOCHECKPOSITION, 0)
        NULL A 0 A_SpawnItemEx ("BoneShardSpawner1", 1, 1, random(8,32), random(0,5), random(0,5), random(8,18), random(0,360), SXF_NOCHECKPOSITION, 0)
        NULL A 0 A_SpawnItemEx ("BoneShardSpawner2", 1, 1, random(8,32), random(0,5), random(0,5), random(8,18), random(0,360), SXF_NOCHECKPOSITION, 0)
        NULL A 0 A_SpawnItemEx ("BoneShardSpawner3", 1, 1, random(8,32), random(0,5), random(0,5), random(8,18), random(0,360), SXF_NOCHECKPOSITION, 0)
		NULL A 1 A_SpawnItemEx("GIBBER", 0, 0, 0, 0, 0, 0, 0, 160, 0)
		NULL A 1 A_SpawnItemEx("SkullGib",0,0,0,random(2,4),random(2,4),random(8,12),random(-180,180))
		NULL A 1 A_SpawnItemEx("ChestGib",0,0,0,random(2,4),random(2,4),random(8,12),random(-180,180))
		NULL AA 1 A_SpawnItemEx("ArmGib",0,0,0,random(2,4),random(2,4),random(8,12),random(-180,180))
		NULL AA 1 A_SpawnItemEx("HandGib",0,0,0,random(2,4),random(2,4),random(8,12),random(-180,180))
		NULL A 1 A_SpawnItemEx("CoccyxGib",0,0,0,random(2,4),random(2,4),random(8,12),random(-180,180))
		NULL AA 1 A_SpawnItemEx("LegGib",0,0,0,random(2,4),random(2,4),random(8,12),random(-180,180))
		NULL AAAAAA 1 A_SpawnItemEx("BoneGib",0,0,0,random(2,4),random(2,4),random(8,12),random(-180,180))
		NULL A -1 A_NoBlocking
		Stop
	Death.I3:
		PETE A 0 A_GiveToTarget("KillBeep",1)
		PETE A 0 A_GiveInventory("ItemDeath",1)
		PETE A 0 A_GiveToTarget("KilledMe",1)
		PETE A 0 A_GiveToTarget("KilledI3",1)
		PETE HHHHHHH 1 A_SpawnItemEx("PainSmoke",0,random(-22,22),random(-22,22),random(2,4),momy,random(8,12),random(-180,180))
		PETE I 0 A_PlayerScream
		PETE IIIIIII 1 A_SpawnItemEx("PainSmoke",0,random(-22,22),random(-22,22),random(2,4),momy,random(8,12),random(-180,180))
		PETE J 0 A_NoBlocking
		PETE JJJJJKKKKKLLLLLMMMMM 1 A_SpawnItemEx("PainSmoke",0,random(-22,22),random(-22,22),random(2,4),momy,random(8,12),random(-180,180))
		PETE NNNNNNN 3 A_SpawnItemEx("PainSmoke",0,random(-22,22),random(-22,22),random(2,4),momy,random(8,12),random(-180,180))
		PETE N -1
		Stop
	Death.I4:
		PETE A 0 A_GiveToTarget("KilledI4",1)
		Goto DeathAnim
	Death.I5:
		PETE A 0 A_GiveToTarget("KilledI5",1)
		Goto DeathAnim
	Pain.RavagerBall:
		PETE A 0 ACS_ExecuteAlways(920,0)
		Goto Pain
	Pain.YureiBall:
		PETE A 0 A_GiveToTarget("Health",10)
		PETE A 0 A_SpawnItemEx("BallFire")
		Goto Pain
	Pain.Emtalic:
		PETE A 0 A_PlaySoundEx("RamSuccess","Body")
		Goto Pain
	Pain.EmtalicWeak:
		PETE A 0 A_PlaySoundEx("RamSuccess","Body")
		Goto Pain
	Death.Tenebra:
		TNT1 A 0 A_GiveToTarget("Health",20)
		Goto DeathAnim
	Death.TenebraRail:
	Death.Telefrag:
	Death.Grenade:
	Death.Termissiles:
	Death.ChaosExpl12:
	Death.KarenExplo:
	Death.IlluNukeKABUUM:
	Death.CalebDynamite:
	Death.Wendigo:
	Death.MorphRipperGib:
	Death.DarkVortex:
	Death.ImpostorJitter:
	Death.PuppetStrings:
	Death.LichIce:
	Death.LichLightning:
	Death.AsylumCannonBall:
		Goto Death.Jitter
	Death.TrueDivine:
		TNT1 A 0 A_PlaySoundEx("SoulSnatchStinger",CHAN_AUTO,0,1)
		TNT1 A 0 A_SpawnItemEx("SoulSnatch")
		Goto Death.JitterAlt
	Death.Judgement:
		TNT1 A 0 A_SpawnItemEx("StellarisThunderFX")
		Goto Death.JitterAlt
	Death.VoltMelee:
	Death.AmperRail:
		TNT1 A 0 A_GiveToTarget("VoltRingAmmo",2)
		TNT1 A 0 A_GiveToTarget("AmperSpeedTokenCheck",1)
		Goto Death.Jitter
	Pain.FrostbiteWind:
	Pain.Ravager:
	Pain.Juglava:
	Pain.HarvesterRock:
	Pain.EmtalicSaw:
	Pain.MorphRipper:
	Pain.MorphRipperGib:
	Pain.I1:
	Pain.I3:
	Pain.ZombiePoison:
	Pain.Asylum:
	Pain.AsylumCannonBall:
	Pain.FleshlingMissile:
	Pain.DarkVortex:
	Pain.ImpostorJitter:
	Pain.BlueFire:
	Pain.PuppetStrings:
	Pain.LichFire:
	Pain.LichIce:
	Pain.LichLightning:
	Pain.Whiteface:
		TNT1 A 0 ACS_NamedExecuteAlways("ChangeActivator",0)
		Goto Pain
	}
}

Actor GhostbusterStomp : CyborgStomp
{
	DeathSound "GhostbusterStep"
}

    actor GhostBusterPlasma : weapon
    {
    Weapon.SlotNumber 1
    Weapon.SelectionOrder 100
    inventory.icon "GBGUN1"
    Weapon.AmmoUse 1
    Weapon.AmmoGive 200
    Weapon.AmmoType "ProtonCharge"
    obituary "%o was zapped by %k's proton pack."
    +WEAPON.NOAUTOAIM
    //Weapon.AmmoGive2 0
    //Weapon.AmmoType2 "TrapAmmo"
    Inventory.PickupMessage "You got the Proton Pack!"
    +INVENTORY.UNDROPPABLE
    +AMMO_OPTIONAL
    States
    {
    Spawn:
    BPAK A 400
    Loop
    Ready:
    PACK J 1
    PACK I 1
    PACK H 1
    PACK G 1
    PACK F 1
    PACK E 1
    PACK D 1 A_PlaySoundEx("pack/heatup","Weapon")
    PACK C 1
    PACK B 1
    PACK A 0 A_JumpIfInventory("GBCancel",1,"Downgrade")
    PACK A 1 A_WeaponReady
    Goto Ready + 9
    Select:
    TNT1 A 1 A_Raise
    Loop
    Deselect:
    PACK B 1
    PACK C 1
    PACK D 1
    PACK E 1
    PACK F 1
    PACK G 1
    PACK H 1
    PACK I 1
    PACK J 1
    TNT1 A 1 A_Lower
    Goto Deselect+9
    Fire:
    PACK D 0 A_JumpIfNoAmmo("Firefail")
    PACK B 1
    PACK C 1
    PACK D 1
    Goto Hold
    Hold:
    PACK D 0 A_JumpIfNoAmmo("Firefail2")
    PACK D 2 A_FireCustomMissile("GhostbusterBall", 0, 1, 8, 3)
    PACK D 1 A_Refire
    PACK D 3 A_ClearReFire
    PACK CBA 1
    Goto Ready+9
    Firefail:
    PACK D 0 A_ClearReFire
    PACK A 18 A_PlaySoundEx("weapons/cyborgfail","Voice")
    Goto Ready+9
    Firefail2:
    PACK D 0 A_ClearReFire
    PACK D 18 A_PlaySoundEx("weapons/cyborgfail","Voice")
    PACK CBA 1
    goto Ready+9
    Altfire:
    PACK A 0 A_JumpIfInventory("TransformAmmo",1,"Transform")
    PACK A 20 A_PlaySoundEx("gbupgradefail","Voice")
    Goto Ready+9
    Transform:
    PACK B 1
    PACK C 1
    PACK D 1
    PACK E 1
    PACK F 1
    PACK G 1
    PACK H 1
    PACK I 1
    PACK J 1 A_GiveInventory("AbsorbCount",1)
    PACK J 20 ACS_ExecuteAlways(981,0)
    Goto Ready
    Downgrade:
    PACK A 0 A_TakeInventory("GBCancel")
    Goto Ready+9
    }
    }

actor GBCancelItem : CustomInventory
{
inventory.amount 1
inventory.maxamount 1
+INVBAR
+INVENTORY.UNDROPPABLE
States
{
Spawn:
TNT1 A 0
stop
Use:
TNT1 A 0 A_GiveInventory("GBCancel",1)
fail
}
}


actor GBCancel : Inventory
{
inventory.amount 1
inventory.maxamount 1
States
{
Spawn:
TNT1 A 1
stop
}
}

actor UpgradeSound : CustomInventory
{
States
{
Spawn:
TNT1 A 1
loop
Pickup:
TNT1 A 0 A_PlaySoundEx("gbupgrade","Voice")
stop
}
}

actor KilledGBuster : KilledSjas
{
}

actor GhostBusterTraps : Weapon
{
Weapon.SlotNumber 2
Weapon.SelectionOrder 100
inventory.icon "GBTRAPZ"
Weapon.AmmoUse2 1
Weapon.AmmoGive 15
Weapon.AmmoType2 "TrapAmmo"
obituary "%o was caught in one of %k's ghost traps."
+WEAPON.NOAUTOAIM
//Weapon.AmmoGive2 0
//Weapon.AmmoType2 "TrapAmmo"
Inventory.PickupMessage "You got the Ghost Traps!"
+INVENTORY.UNDROPPABLE
+AMMO_OPTIONAL
+ALT_AMMO_OPTIONAL
States
{
Spawn:
BPAK A 400
loop
Select:
TRAP C 0 A_Raise
TRAP C 1 A_Raise
Loop
Deselect:
TRAP C 0 A_Lower
TRAP C 1 A_Lower
Loop
Ready:
TRAP C 1 A_WeaponReady
loop
Fire:
TRAP C 0 A_JumpIfInventory("GhostTrapCheck",1,"RaiseDet")
TRAP C 0 A_PlaySoundEx("weapons/trapdetonate","Voice")
TRAP D 5 A_GiveInventory("DetonateCheck",1)
TRAP C 10 A_TakeInventory("DetonateCheck",999)
Goto Ready
Altfire:
TRAP C 0 A_JumpIfInventory("GhostTrapCheck",1,"NewTrap")
TRAP C 0 A_JumpIfNoAmmo("NoAmmo")
TRAP C 0 A_GiveInventory("GhostTrapCheck",1)
TRAP C 1 offset (0, 40)
TRAP C 0 offset (0, 50)
TRAP C 1 offset (0, 60)
TRAP C 0 offset (0, 70)
TRAP C 1 offset (0, 80)
TRAP C 1 offset (0, 90)
Goto NewTrap
NewTrap:
TRAP A 1 offset (0, 60) A_JumpIfNoAmmo("RaiseDet")
TRAP A 0 offset (0, 50)
TRAP A 1 offset (0, 40)
TRAP A 0 offset (0, 0) A_TakeInventory("TrapAmmo",1)
TRAP B 1 offset (0, 0) A_SpawnItemEx("GhostTrap", 16, 4, 32, 0, 0, 0, 0, 16, 0)
TRAP B 1 offset (0, 20)
TRAP B 0 offset (0, 30)
TRAP B 1 offset (0, 40)
TRAP B 0 offset (0, 50)
TRAP B 1 offset (0, 60)
TRAP B 0 offset (0, 70)
TRAP B 1 offset (0, 80)
TRAP B 0 offset (0, 90)
TRAP B 1 offset (0, 100)
TNT1 AAA 1 offset (0, 100) A_WeaponReady
Goto RaiseDet
RaiseDet:
TRAP C 0 offset (0, 110) A_TakeInventory("GhostTrapCheck",999)
TRAP C 1 offset (0, 100)
TRAP C 0 offset (0, 90)
TRAP C 1 offset (0, 80)
TRAP C 0 offset (0, 70)
TRAP C 1 offset (0, 60)
TRAP C 0 offset (0, 50)
TRAP C 1 offset (0, 40)
Goto Ready
NoAmmo:
TRAP C 15 A_PlaySoundEx("weapons/grenadeno","Voice")
Goto Ready
}
}

actor AbsorbCount : Inventory
{
inventory.amount 1
inventory.maxamount 999
}

actor KilledMeGB : KilledMe replaces KilledMe
{
inventory.amount 1
inventory.maxamount 1
States
{
Spawn:
TNT1 A 1
loop
Pickup:
TNT1 A 0 A_GiveInventory("KilledCount",1)
TNT1 A 0 ACS_ExecuteAlways(978,0,0)
TNT1 A 0 ACS_ExecuteAlways(981,0,0)
stop
}
}

actor GhostBusterEcho : GhostBusterPlasma
{
Weapon.AmmoUse 4//6
inventory.icon "GBGUN3"
states
{
Spawn:
BPAK A 400
Loop
Ready:
PACK J 1
PACK I 1
PACK H 1 
PACK G 1 
PACK F 1 
PACK E 1 
PACK D 1 A_PlaySoundEx("pack/heatup","Weapon")
PACK C 1
PACK B 1
PACK A 0 A_JumpIfInventory("GBCancel",1,"Downgrade")
PACK A 15 A_WeaponReady
Goto Ready+9
Select:
TNT1 A 1 A_Raise
Loop
Deselect:
PACK B 1 
PACK C 1 
PACK D 1 
PACK E 1 
PACK F 1
PACK G 1 
PACK H 1 
PACK I 1 
PACK J 1 
TNT1 A 1 A_Lower 
Goto Deselect+9
Fire:
PACK D 0 A_JumpIfNoAmmo("Firefail")
PACK B 1 
PACK C 1
PACK D 1
PACK L 3
PACK M 3 A_PlaySoundEx("pack/change1","Weapon")
PACK T 3
PACK U 2
Goto Hold
Hold:
PACK D 0 A_JumpIfNoAmmo("Firefail2")
PACK O 0 A_PlaySoundEx("echoshot","Weapon")
PACK U 1 A_FireCustomMissile("EchoShot", 0, 1, 0, 3)
PACK U 1 offset (0, 37)
PACK U 1 offset (5, 42)
PACK U 1 offset (10, 47)
PACK U 1 offset (15, 75)
PACK U 1 offset (20, 52)
PACK U 1 offset (25, 57)
PACK U 1 offset (30, 62)
PACK U 1 offset (25, 57)
PACK U 1 offset (20, 52)
PACK U 1 offset (15, 75)
PACK U 1 offset (10, 47)
PACK U 1 offset (5, 42)
PACK U 1 offset (0, 37)
PACK U 1 offset (0, 32)
PACK D 0 //A_JumpIfNoAmmo("Firefail4")
PACK U 1 A_Refire
PACK T 1 A_ClearReFire
PACK M 3 A_PlaySoundEx("pack/change1","Weapon")
PACK CBA 1
Goto Ready+9
Firefail:
PACK U 0 A_ClearReFire
PACK A 18 A_PlaySound("weapons/cyborgfail")
Goto Ready+9
Firefail2:
PACK D 0 A_ClearReFire
PACK U 18 A_PlaySound("weapons/cyborgfail")
PACK T 3 A_PlaySoundEx("pack/change1","Weapon")
PACK M 3
PACK L 2
PACK CBA 1
goto Ready+9
Downgrade:
PACK B 1 
PACK C 1 
PACK D 1 
PACK E 1 
PACK F 1
PACK G 1 
PACK H 1 
PACK I 1
PACK J 1
PACK J 20 ACS_ExecuteAlways(981,0)
Goto Ready
}
}

actor GhostBusterBone : GhostBusterPlasma
{
Weapon.AmmoUse 34//36//30//40
inventory.icon "GBGUN4"
states
{
Spawn:
BPAK A 400
Loop
Ready:
PACK J 1
PACK I 1
PACK H 1 
PACK G 1 
PACK F 1 
PACK E 1 
PACK D 1 A_PlaySoundEx("pack/heatup","Weapon")
PACK C 1
PACK B 1
PACK A 0 A_JumpIfInventory("GBCancel",1,"Downgrade")
PACK A 1 A_WeaponReady
Goto Ready + 9
Select:
TNT1 A 1 A_Raise
Loop
Deselect:
PACK B 1 
PACK C 1 
PACK D 1 
PACK E 1 
PACK F 1
PACK G 1 
PACK H 1 
PACK I 1 
PACK J 1 
TNT1 A 1 A_Lower 
Goto Deselect+9
Fire:
PACK D 0 A_JumpIfNoAmmo("Firefail")
PACK A 0 A_GiveInventory("UsingBoneCannon",1)
PACK A 1
PACK B 1
PACK C 1
PACK D 1
PACK L 1
PACK M 1
PACK Q 1
PACK P 0 A_PlaySoundEx("pack/change1","Weapon")
PACK P 2
Goto Hold
Hold:
PACK P 1
PACK P 0 A_ReFire
PACK P 4 offset (30, 62)
PACK P 0 A_PlaySound ("boneshot", 6, 1.0, 0, ATTN_NORM)
PACK P 0 offset (30, 62) A_RailAttack(80, 8, 1, "white", "none", 1, 0, "RailPuff")
PACK P 3 offset (20, 52)
PACK P 3 offset (10, 47)
PACK P 3 offset (0, 37)
PACK P 14//12
PACK P 3
PACK Q 3
PACK M 3 A_PlaySoundEx("pack/change1","Weapon")
PACK CBA 1
PACK A 0 A_TakeInventory("UsingBoneCannon",999)
Goto Ready+9
Firefail:
PACK P 0 A_ClearReFire
PACK A 18 A_PlaySoundEx("weapons/cyborgfail","Weapon")
Goto Ready+9
Firefail2:
PACK D 0 A_ClearReFire
PACK P 18 A_PlaySound("weapons/cyborgfail")
PACK Q 3 A_PlaySoundEx("pack/change1","Weapon")
PACK M 3
PACK L 2
PACK CBA 1
goto Ready+9
Downgrade:
PACK B 1 
PACK C 1 
PACK D 1 
PACK E 1 
PACK F 1
PACK G 1 
PACK H 1 
PACK I 1
PACK J 1
PACK J 20 ACS_ExecuteAlways(981,0)
Goto Ready
}
}

actor UsingBoneCannon : Inventory
{
inventory.amount 1
inventory.maxamount 1
States
{
Spawn:
TNT1 A 1
loop
}
}

actor GhostBusterBlood : GhostBusterPlasma
{
Weapon.AmmoUse 2
inventory.icon "GBGUN5"
states
{
Spawn:
BPAK A 400
Loop
Ready:
PACK J 1
PACK I 1
PACK H 1 
PACK G 1 
PACK F 1 
PACK E 1 
PACK D 1 A_PlaySoundEx("pack/heatup","Weapon")
PACK C 1
PACK B 1
PACK A 0 A_JumpIfInventory("GBCancel",1,"Downgrade")
PACK A 1 A_WeaponReady
Goto Ready + 9
Select:
TNT1 A 1 A_Raise
Loop
Fire:
PACK D 0 A_JumpIfNoAmmo("Firefail")
PACK B 1 
PACK C 1
PACK D 1 
PACK L 3
PACK M 3 A_PlaySoundEx("pack/change1","Weapon")
PACK N 3
PACK O 2
Goto Hold
Deselect:
PACK B 1 
PACK C 1 
PACK D 1 
PACK E 1 
PACK F 1
PACK G 1 
PACK H 1 
PACK I 1 
PACK J 1 
TNT1 A 1 A_Lower 
Goto Deselect+9
Hold:
PACK D 0 A_JumpIfNoAmmo("Firefail2")
PACK R 2 A_FireCustomMissile("BloodSlimeX", random(-3,3), 1, 0, 3)
PACK S 2 A_FireCustomMissile("BloodSlimeX", random(-3,3), 0, 0, 3)
PACK O 0 A_PlaySoundEx("Slime1","Weapon")
PACK O 1 A_Refire
PACK N 3 A_ClearReFire
PACK M 3 A_PlaySoundEx("pack/change1","Weapon")
PACK CBA 1
Goto Ready+9
Firefail:
PACK A 0 A_ClearReFire
PACK A 18 A_PlaySoundEx("weapons/cyborgfail","Weapon")
Goto Ready+9
Firefail2:
PACK D 0 A_ClearReFire
PACK O 18 A_PlaySoundEx("weapons/cyborgfail","Weapon")
PACK N 3 A_PlaySoundEx("pack/change1","Weapon")
PACK M 3
PACK L 2
PACK CBA 1
goto Ready+9
Downgrade:
PACK B 1 
PACK C 1 
PACK D 1 
PACK E 1 
PACK F 1
PACK G 1 
PACK H 1 
PACK I 1
PACK J 1
PACK J 20 ACS_ExecuteAlways(981,0)
Goto Ready
}
}


actor GhostBusterIce : GhostBusterPlasma
{
Weapon.AmmoUse 6//8
inventory.icon "GBGUN6"
states
{
Spawn:
BPAK A 400
Loop
Ready:
PACK J 1
PACK I 1
PACK H 1 
PACK G 1 
PACK F 1 
PACK E 1 
PACK D 1 A_PlaySoundEx("pack/heatup","Weapon")
PACK C 1
PACK B 1
PACK A 0 A_JumpIfInventory("GBCancel",1,"Downgrade")
PACK A 1 A_WeaponReady
Goto Ready + 9
Select:
TNT1 A 1 A_Raise
Loop
Deselect:
PACK B 1 
PACK C 1 
PACK D 1 
PACK E 1 
PACK F 1
PACK G 1 
PACK H 1 
PACK I 1 
PACK J 1 
TNT1 A 1 A_Lower 
Goto Deselect+9
Fire:
PACK D 0 A_JumpIfNoAmmo("Firefail")
PACK B 1 
PACK C 1
PACK D 1
PACK L 3
PAC2 E 3 A_PlaySoundEx("pack/change1","Weapon")
Goto Hold
Hold:
PAC2 E 0 A_JumpIfNoAmmo("Firefail2")
PAC2 E 0 A_TakeInventory("ProtonCharge",8)
TNT1 A 0 A_PlayWeaponSound("icerain")
PAC2 ABCDCBA 2 A_SpawnItemEx("IceFallSpawner", random(-200,200), random(-200,200), 9999,0,0,0,0,SXF_NOCHECKPOSITION)
PAC2 E 3 A_Refire
PAC2 E 3 A_ClearReFire
PACK M 3 A_PlaySoundEx("pack/change1","Weapon")
PACK CBA 1
Goto Ready+9
Firefail:
PACK U 0 A_ClearReFire
PACK A 18 A_PlaySoundEx("weapons/cyborgfail","Weapon")
Goto Ready+9
Firefail2:
PAC2 E 0 A_ClearReFire
PAC2 E 18 A_PlaySoundEx("weapons/cyborgfail","Weapon")
PAC2 E 3 A_PlaySoundEx("pack/change1","Weapon")
PACK M 3
PACK L 2
PACK CBA 1
goto Ready+9
Downgrade:
PACK B 1 
PACK C 1 
PACK D 1 
PACK E 1 
PACK F 1
PACK G 1 
PACK H 1 
PACK I 1
PACK J 1
PACK J 20 ACS_ExecuteAlways(981,0)
Goto Ready
}
}

actor IceFallSpawner
{
+SKYEXPLODE
PROJECTILE
-SOLID
+NOGRAVITY
+CEILINGHUGGER
radius 1
height 8
speed 0
States
{
Spawn:
Death:
TNT1 A 0 
TNT1 AA 1 A_SpawnItemEx("IceFall",1,0,-1,0,0,-22)
stop
}
}

actor IceFall
{
Height 5
Radius 5
scale 0.4
BounceFactor 0.3
BounceCount 4
PROJECTILE
Damage 6
-NOGRAVITY
+SEEKERMISSILE
Speed 46
reactiontime 30
States
{
Spawn:
BNT2 G 1 bright A_SpawnItemEx("IceFallTrail",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
BNT2 H 1 bright A_SpawnItemEx("IceFallTrail2",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
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,127)
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:
BNT2 A 0 A_PlaySound("imp/shotx")
BNT2 A 0 A_Explode(22, 90, 0)
BNT2 ABCDEF 3 bright
stop
}
}

actor IceFallTrail
{

-SOLID
scale 0.4
+NOGRAVITY
+BRIGHT
+CLIENTSIDEONLY
Height 0
Radius 0
renderstyle add
alpha 0.8
States
{
Spawn:
BNT2 G 1 A_FadeOut(0.15)
loop
}
}

actor IceFallTrail2 : IceFallTrail
{
States
{
Spawn:
BNT2 H 1 A_FadeOut(0.1)
stop
}
}

actor SoulFadefx
{

- SOLID
+NOGRAVITY
+CLIENTSIDEONLY
height 1
radius 1
scale 0.18
renderstyle translucent
alpha 1.0
translation "112:127=80:111"
States
{
Spawn:
OXPL ACEGIKM 1 A_FadeOut(0.2)
stop
}
}

actor EchoShot
{
Radius		10
Speed		32//25
Height		10
damage (30)
PROJECTILE
renderstyle none
seesound "echobounce"
+DOOMBOUNCE
bouncecount 3
bouncefactor 1.0
reactiontime 80
wallbouncefactor 1.0
states
{
Spawn:
TNT1 A 0 A_CountDown
TNT1 A 1 A_SpawnItem("EchoWave")
loop
XDeath:
TNT1 A 0 A_GiveToTarget("HitBeep",1)
Goto Death
Death:
PR2E OMKIGECA 1 bright A_FadeOut(0.04)
Stop
}
}

actor EchoWave
{

- SOLID
+NOGRAVITY
height 1
radius 1
scale 0.2
renderstyle translucent
alpha 1.0
translation "112:127=224:231"
states
{
Spawn:
PR2E OMKIGECA 1 bright A_FadeOut(0.04)
stop
}
}

ACTOR BloodslimeX
{
Radius		6
Height		12
Speed		60
Damage	(15)//9//20
PROJECTILE
-NOGRAVITY
alpha 1.0
SeeSound ""
States
{
Spawn:
TNT1 A 0 
TNT1 A 2 ThrustThingZ (0, random(0,8), random(0,1), 1)
XLIM BC 3 A_SpawnItem("NashGore_FlyingBloodTrail",0,0,0,1)
XLIM C 0 A_FadeOut(0.05)
Goto Spawn+3
XDeath:
TNT1 A 0 A_GiveToTarget("HitBeep",1)
Goto Death
Death:
TNT1 A 3 A_PlaySound("Slime1")
Stop
}
}

/*actor GhostTrapCheck : Inventory
{
Inventory.PickupMessage "GO GO JESUS RANGERS!"
  Inventory.Amount 1
  Inventory.MaxAmount 1
  Inventory.Icon "CELLA0"
    States
  {
  Spawn:
    CELL A -1
    Stop
  }
}

actor DetonateCheck : Inventory
{
Inventory.PickupMessage "GO GO JESUS RANGERS!"
  Inventory.Amount 1
  Inventory.MaxAmount 1
  Inventory.Icon "CELLA0"
    States
  {
  Spawn:
    CELL A -1
    Stop
  }
}*/


ACTOR TransformAmmo : Ammo
{
+INVENTORY.IGNORESKILL
  Inventory.PickupMessage "Proton charge!"
  Inventory.Amount 1
  Inventory.MaxAmount 100
  States
  {
  Spawn:
    CELL A -1
    Stop
  }
}

actor GhostBusterBall
{
	decal "ProtonDecal"
	scale 0.8
	renderstyle add
	alpha 0.80
	PROJECTILE
	+seekermissile
	+BRIGHT
	damagetype "Proton"
	speed 38
	radius 4
	height 4
	Damage (3)
	seesound "weapons/protonpackfire"
	deathsound "weapons/plasmax"
	States
	{
	Spawn:
		PROT B 0
		PROT A 1 A_GiveInventory("SpawnGhostBusterBallTrail",1)
		PROT B 1 A_SeekerMissile(45, 45,SMF_PRECISE|SMF_LOOK,220,3)
		PROT A 1 A_GiveInventory("SpawnGhostBusterBallTrail",1)
		PROT B 1 A_SeekerMissile(45, 45,SMF_PRECISE|SMF_LOOK,220,3)
		PROT A 1 A_GiveInventory("SpawnGhostBusterBallTrail",1)
		PROT B 1 A_SeekerMissile(45, 45,SMF_PRECISE|SMF_LOOK,220,3)
		PROT A 1 A_GiveInventory("SpawnGhostBusterBallTrail",1)
		PROT B 1 A_SeekerMissile(45, 45,SMF_PRECISE|SMF_LOOK,220,3)
		PROT A 1 A_GiveInventory("SpawnGhostBusterBallTrail",1)
		PROT B 1 A_SeekerMissile(45, 45,SMF_PRECISE|SMF_LOOK,220,3)
		PROT A 1 A_GiveInventory("SpawnGhostBusterBallTrail",1)
		PROT B 1 A_SeekerMissile(45, 45,SMF_PRECISE|SMF_LOOK,220,3)
		PROT A 1 A_GiveInventory("SpawnGhostBusterBallTrail",1)
		Stop
	XDeath:
		TNT1 A 0 A_GiveToTarget("HitBeep",1)
		Goto Death
	Death:
		PROT AB 2 bright A_Fadeout(0.1)
		Stop
	}
}

Actor SpawnGhostBusterBallTrail : CustomInventory
{
	+ALWAYSPICKUP
	States
	{
	Pickup:
		TNT1 A 0 A_SpawnItemEx("GBVFXPlasmaTrail",random(-10,10),random(-10,10),random(-10,10),0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
		TNT1 A 0 A_SpawnItemEx("GBVFXIcyTrail",random(-10,10),random(-10,10),random(-10,10),0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
		TNT1 A 0 A_SpawnItemEx("GhostBusterBallTrail",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
		Stop
	}
}

Actor GBVFXPlasmaTrail
{
	RenderStyle Add
	Alpha 0.7
	Scale 0.4
	+NOINTERACTION
	+NOBLOCKMAP
	+CLIENTSIDEONLY
	States
	{
	Spawn:
		PAO2 A 3 bright A_FadeOut(0.1)
		Loop
	Death:
		TNT1 A 0
		Stop
	}
}

Actor GBVFXIcyTrail
{
	Radius 0
	Height 0
	Damage 0
	scale 0.4
	Alpha 0.75
	RenderStyle Add
	+NOBLOCKMAP
	+nointeraction
	+CLIENTSIDEONLY
	States
	{
	Spawn:
		PAO3 A 3 bright A_FadeOut(0.2)
		Wait
	}
}

Actor GBVFXIcyTrail2
{
	Radius 0
	Height 0
	Damage 0
	scale 0.4
	Alpha 0.75
	RenderStyle Add
	+NOBLOCKMAP
	+nointeraction
	+CLIENTSIDEONLY
	States
	{
	Spawn:
		PAO3 A 3 bright A_FadeOut(0.1)
	}
}

Actor GhostBusterBallTrail
{   
  Radius 2
  Height 2
  Damage 0
  Scale 0.8
  Projectile
  -BloodSplatter
  +BloodlessImpact
  +CLIENTSIDEONLY
  RenderStyle Add
  Alpha 0.9
  States
  {
  Spawn:
    PROT AB 1 Bright A_fadeout (0.1)
    loop
  }
}

actor GhostTrap
{
radius 5
scale 0.8
height 16
renderstyle translucent
alpha 1.0
PROJECTILE
-CANBLAST
damagetype "Ghosttrap"//Grenade
- NOLIFTDROP
- NOGRAVITY
+SKYEXPLODE
Obituary "%o was caught in one of %k's ghost traps."
States
{
Spawn: 
GTRP E 1 A_JumpIfInTargetInventory("DetonateCheck", 1, "Death2")
GTRP E 0 A_GiveInventory("Trapcount",1)
GTRP E 0 A_JumpIfInventory("Trapcount",2100,"Spawn2")
GTRP E 0 A_JumpIf(waterlevel == 2, "FadeOut")
GTRP E 0 A_JumpIfInTargetInventory("RocketAmmo", 1, "Fadeout")
Loop
Spawn2:
GTRP E 0 A_SpawnItem("BulletPuff",0,6)
GTRP E 0 A_PlaySoundEx("weapons/trapzip", "Voice")
GTRP E 1 A_JumpIfInTargetInventory("DetonateCheck", 1, "Death2")
GTRP E 0 A_GiveInventory("Trapcount",1)
GTRP E 0 A_JumpIfInventory("Trapcount",2275,"Smoke")
GTRP E 0 A_JumpIf(waterlevel == 2, "FadeOut")
GTRP E 0 A_JumpIfInTargetInventory("RocketAmmo", 1, "Fadeout")
Goto Spawn2+2
Smoke:
GTRP H 0 A_PlaySoundEx("weapons/arrowexplode", "Voice")
GTRP H 0 A_SpawnItemEx("GBExplosion", 0, 0, 8, 0, 0, 0, 0, 128, 0) 
GTRP H 0 A_SpawnItemEx("GBFirey", random(-2,2), random(-2,2), 8, 0, 0, 1, 0, 128, 0) 
GTRP H 4 A_SpawnItemEx("GBSmokeLarge", random(-2,2), random(-2,2), 8, 0, 0, 1, 0, 128, 0) 
GTRP H 0 A_SpawnItemEx("GBFirey", random(-2,2), random(-2,2), 8, 0, 0, 1, 0, 128, 0) 
GTRP H 4 A_SpawnItemEx("GBSmokeLarge", random(-2,2), random(-2,2), 8, 0, 0, 1, 0, 128, 0) 
GTRP H 0 A_SpawnItemEx("GBFirey", random(-2,2), random(-2,2), 8, 0, 0, 1, 0, 128, 0) 
GTRP H 4 A_SpawnItemEx("GBSmokeLarge", random(-2,2), random(-2,2), 8, 0, 0, 1, 0, 128, 0) 
GTRP H 0 A_SpawnItemEx("GBFirey", random(-2,2), random(-2,2), 8, 0, 0, 1, 0, 128, 0) 
GTRP H 4 A_SpawnItemEx("GBSmokeLarge", random(-2,2), random(-2,2), 8, 0, 0, 1, 0, 128, 0) 
GTRP H 60
Goto Fadeout
Death:
GRTP E 0 A_PlaySound("weapons/traphit")
GTRP E 0 A_JumpIf(waterlevel == 2, "FadeOut")
GTRP E 0 A_ChangeFlag("MISSILE",0)
GTRP E 1 A_ChangeFlag("NOBLOCKMAP",0)
Goto Spawn
Death2:
GTRP A 0 A_PlaySound("weapons/trapcharge")
GTRP A 5
GTRP A 0 A_PlaySound("weapons/trap")
TNT1 A 0 A_SpawnItemEx("GBVFXIcyTrail2",random(-50,50),random(-50,50),random(-10,10),0,0,10)
TNT1 A 0 A_SpawnItemEx("GBVFXIcyTrail2",random(-50,50),random(-50,50),random(-10,10),0,0,10)
GTRP A 5 A_SpawnItemEx("GhostTrapFX", 0, 0, 0, 0, 0, 0, 0, SXF_TRANSFERTRANSLATION, 0)
TNT1 A 0 A_SpawnItemEx("GBVFXIcyTrail2",random(-50,50),random(-50,50),random(-10,10),0,0,10)
TNT1 A 0 A_SpawnItemEx("GBVFXIcyTrail2",random(-50,50),random(-50,50),random(-10,10),0,0,10)
GTRP A 4 A_Explode(13, 144, 0)
TNT1 A 0 A_SpawnItemEx("GBVFXIcyTrail2",random(-50,50),random(-50,50),random(-10,10),0,0,10)
TNT1 A 0 A_SpawnItemEx("GBVFXIcyTrail2",random(-50,50),random(-50,50),random(-10,10),0,0,10)
GTRP A 4 A_Explode(13, 144, 0)
TNT1 A 0 A_SpawnItemEx("GBVFXIcyTrail2",random(-50,50),random(-50,50),random(-10,10),0,0,10)
TNT1 A 0 A_SpawnItemEx("GBVFXIcyTrail2",random(-50,50),random(-50,50),random(-10,10),0,0,10)
GTRP A 4 A_Explode(13, 144, 0)
TNT1 A 0 A_SpawnItemEx("GBVFXIcyTrail2",random(-50,50),random(-50,50),random(-10,10),0,0,10)
TNT1 A 0 A_SpawnItemEx("GBVFXIcyTrail2",random(-50,50),random(-50,50),random(-10,10),0,0,10)
GTRP A 4 A_Explode(13, 144, 0)
TNT1 A 0 A_SpawnItemEx("GBVFXIcyTrail2",random(-50,50),random(-50,50),random(-10,10),0,0,10)
TNT1 A 0 A_SpawnItemEx("GBVFXIcyTrail2",random(-50,50),random(-50,50),random(-10,10),0,0,10)
GTRP A 4 A_Explode(13, 144, 0)
TNT1 A 0 A_SpawnItemEx("GBVFXIcyTrail2",random(-50,50),random(-50,50),random(-10,10),0,0,10)
TNT1 A 0 A_SpawnItemEx("GBVFXIcyTrail2",random(-50,50),random(-50,50),random(-10,10),0,0,10)
GTRP A 4 A_Explode(13, 144, 0)
TNT1 A 0 A_SpawnItemEx("GBVFXIcyTrail2",random(-50,50),random(-50,50),random(-10,10),0,0,10)
TNT1 A 0 A_SpawnItemEx("GBVFXIcyTrail2",random(-50,50),random(-50,50),random(-10,10),0,0,10)
GTRP A 4 A_Explode(13, 144, 0)
TNT1 A 0 A_SpawnItemEx("GBVFXIcyTrail2",random(-50,50),random(-50,50),random(-10,10),0,0,10)
TNT1 A 0 A_SpawnItemEx("GBVFXIcyTrail2",random(-50,50),random(-50,50),random(-10,10),0,0,10)
GTRP A 4 A_Explode(13, 144, 0)
TNT1 A 0 A_SpawnItemEx("GBVFXIcyTrail2",random(-50,50),random(-50,50),random(-10,10),0,0,10)
TNT1 A 0 A_SpawnItemEx("GBVFXIcyTrail2",random(-50,50),random(-50,50),random(-10,10),0,0,10)
GTRP A 4 A_Explode(13, 144, 0)
TNT1 A 0 A_SpawnItemEx("GBVFXIcyTrail2",random(-50,50),random(-50,50),random(-10,10),0,0,10)
TNT1 A 0 A_SpawnItemEx("GBVFXIcyTrail2",random(-50,50),random(-50,50),random(-10,10),0,0,10)
GTRP A 4 A_Explode(13, 144, 0)
TNT1 A 0 A_SpawnItemEx("GBVFXIcyTrail2",random(-50,50),random(-50,50),random(-10,10),0,0,10)
TNT1 A 0 A_SpawnItemEx("GBVFXIcyTrail2",random(-50,50),random(-50,50),random(-10,10),0,0,10)
GTRP A 4 A_Explode(13, 144, 0)
TNT1 A 0 A_SpawnItemEx("GBVFXIcyTrail2",random(-50,50),random(-50,50),random(-10,10),0,0,10)
TNT1 A 0 A_SpawnItemEx("GBVFXIcyTrail2",random(-50,50),random(-50,50),random(-10,10),0,0,10)
GTRP A 4 A_Explode(13, 144, 0)
TNT1 A 0 A_SpawnItemEx("GBVFXIcyTrail2",random(-50,50),random(-50,50),random(-10,10),0,0,10)
TNT1 A 0 A_SpawnItemEx("GBVFXIcyTrail2",random(-50,50),random(-50,50),random(-10,10),0,0,10)
GTRP A 4 A_Explode(13, 144, 0)
TNT1 A 0 A_SpawnItemEx("GBVFXIcyTrail2",random(-50,50),random(-50,50),random(-10,10),0,0,10)
TNT1 A 0 A_SpawnItemEx("GBVFXIcyTrail2",random(-50,50),random(-50,50),random(-10,10),0,0,10)
GTRP A 4 A_Explode(13, 144, 0)
TNT1 A 0 A_SpawnItemEx("GBVFXIcyTrail2",random(-50,50),random(-50,50),random(-10,10),0,0,10)
TNT1 A 0 A_SpawnItemEx("GBVFXIcyTrail2",random(-50,50),random(-50,50),random(-10,10),0,0,10)
GTRP A 4 A_Explode(13, 144, 0)
TNT1 A 0 A_SpawnItemEx("GBVFXIcyTrail2",random(-50,50),random(-50,50),random(-10,10),0,0,10)
TNT1 A 0 A_SpawnItemEx("GBVFXIcyTrail2",random(-50,50),random(-50,50),random(-10,10),0,0,10)
GTRP A 4 A_Explode(13, 144, 0)
TNT1 A 0 A_SpawnItemEx("GBVFXIcyTrail2",random(-50,50),random(-50,50),random(-10,10),0,0,10)
TNT1 A 0 A_SpawnItemEx("GBVFXIcyTrail2",random(-50,50),random(-50,50),random(-10,10),0,0,10)
GTRP A 4 A_Explode(13, 144, 0)
TNT1 A 0 A_SpawnItemEx("GBVFXIcyTrail2",random(-50,50),random(-50,50),random(-10,10),0,0,10)
TNT1 A 0 A_SpawnItemEx("GBVFXIcyTrail2",random(-50,50),random(-50,50),random(-10,10),0,0,10)
GTRP A 4 A_Explode(13, 144, 0)
TNT1 A 0 A_SpawnItemEx("GBVFXIcyTrail2",random(-50,50),random(-50,50),random(-10,10),0,0,10)
TNT1 A 0 A_SpawnItemEx("GBVFXIcyTrail2",random(-50,50),random(-50,50),random(-10,10),0,0,10)
GTRP A 4 A_Explode(13, 144, 0)
TNT1 A 0 A_SpawnItemEx("GBVFXIcyTrail2",random(-50,50),random(-50,50),random(-10,10),0,0,10)
TNT1 A 0 A_SpawnItemEx("GBVFXIcyTrail2",random(-50,50),random(-50,50),random(-10,10),0,0,10)
GTRP A 4 A_Explode(13, 144, 0)
TNT1 A 0 A_SpawnItemEx("GBVFXIcyTrail2",random(-50,50),random(-50,50),random(-10,10),0,0,10)
TNT1 A 0 A_SpawnItemEx("GBVFXIcyTrail2",random(-50,50),random(-50,50),random(-10,10),0,0,10)
GTRP A 4 A_Explode(13, 144, 0)
TNT1 A 0 A_SpawnItemEx("GBVFXIcyTrail2",random(-50,50),random(-50,50),random(-10,10),0,0,10)
TNT1 A 0 A_SpawnItemEx("GBVFXIcyTrail2",random(-50,50),random(-50,50),random(-10,10),0,0,10)
GTRP A 4 A_Explode(13, 144, 0)
TNT1 A 0 A_SpawnItemEx("GBVFXIcyTrail2",random(-50,50),random(-50,50),random(-10,10),0,0,10)
TNT1 A 0 A_SpawnItemEx("GBVFXIcyTrail2",random(-50,50),random(-50,50),random(-10,10),0,0,10)
GTRP A 4 A_Explode(13, 144, 0)
TNT1 A 0 A_SpawnItemEx("GBVFXIcyTrail2",random(-50,50),random(-50,50),random(-10,10),0,0,10)
TNT1 A 0 A_SpawnItemEx("GBVFXIcyTrail2",random(-50,50),random(-50,50),random(-10,10),0,0,10)
GTRP A 4 A_Explode(13, 144, 0)
TNT1 A 0 A_SpawnItemEx("GBVFXIcyTrail2",random(-50,50),random(-50,50),random(-10,10),0,0,10)
TNT1 A 0 A_SpawnItemEx("GBVFXIcyTrail2",random(-50,50),random(-50,50),random(-10,10),0,0,10)
GTRP A 4 A_Explode(13, 144, 0)
GTRP H 20
Goto Fadeout
Fadeout:
GTRP H 1 A_FadeOut(0.05)
Loop
}
}

actor GBExplosion
{
renderstyle translucent
alpha 1.0
scale 0.2
+NOGRAVITY
-SOLID
+NOBLOCKMAP
+CLIENTSIDEONLY
radius 1
height 1
States
{
Spawn:
NKXP BCDEFGHIJKLMNOPQRSTUV 2 bright A_FadeOut(0.04)
Stop
}
}
ACTOR GBSmokeLarge : BulletPuff
{
 
	Health		1
	RenderStyle Translucent
	Alpha		0
	Scale		.3
	+CLIENTSIDEONLY
	States
	{
	Spawn:
		NULL A 0
		Goto See
	See:
		NULL A 0 A_Jump(192,1)
		Goto See+7
		NULL A 0
		NULL A 0 A_Jump(128,1)
		Goto See+11
		NULL A 0
		NULL A 0 A_Jump(64,1)
		Goto See+15
		NULL A 0
		NULL A 0
		Goto See+19
		//-----------------------
		SMOK A 12 A_SetTranslucent(.15,0)
		SMOK A 12 A_SetTranslucent(.35,0)
		SMOK A 12 A_SetTranslucent(.5,0)
		SMOK A 1 A_Fadeout(.02)
		Wait
		SMOK B 12 A_SetTranslucent(.15,0)
		SMOK B 12 A_SetTranslucent(.35,0)
		SMOK B 12 A_SetTranslucent(.5,0)
		SMOK B 1 A_Fadeout(.025)
		Wait
		SMOK C 12 A_SetTranslucent(.15,0)
		SMOK C 12 A_SetTranslucent(.35,0)
		SMOK C 12 A_SetTranslucent(.5,0)
		SMOK C 1 A_Fadeout(.03)
		Wait
		SMOK D 12 A_SetTranslucent(.15,0)
		SMOK D 12 A_SetTranslucent(.35,0)
		SMOK D 12 A_SetTranslucent(.5,0)
		SMOK D 1 A_Fadeout(.035)
		Wait
	}
}

ACTOR GBFirey : BulletPuff
{

	Health		1
	RenderStyle Add
	Alpha		0
	Scale		.17
	Obituary "%o burned to death"
	+CLIENTSIDEONLY
	States
	{
	Spawn:
		NULL A 0
		NULL A 0
		Goto See
	See:
		NULL A 0 A_Jump(170,1)
		Goto See+7
		NULL A 0
		NULL A 0 A_Jump(85,1)
		Goto See+11
		NULL A 0
		NULL A 0
		Goto See+15
		//-----------------------
		BFIR B 5 Bright //A_PlaySound("Barrel/Fire")
		BFIR A 5 Bright A_SetTranslucent(.4,1)
		BFIR A 5 Bright A_SetTranslucent(.8,1)
		BFIR A 1 Bright A_Fadeout(.06)
		Wait
		BFIR B 5 Bright //A_PlaySound("Barrel/Fire")
		BFIR B 5 Bright A_SetTranslucent(.4,1)
		BFIR B 5 Bright A_SetTranslucent(.8,1)
		BFIR B 1 Bright A_Fadeout(.08)
		Wait
		BFIR B 5 Bright //A_PlaySound("Barrel/Fire")
		BFIR C 5 Bright A_SetTranslucent(.4,1)
		BFIR C 5 Bright A_SetTranslucent(.8,1)
		BFIR C 1 Bright A_Fadeout(.10)
		Wait
	}
}


actor GhostTrapFX
{
	scale 0.8
	renderstyle translucent
	alpha 0.5
	height 5
	radius 7
	+CLIENTSIDEONLY
	States
	{
	Spawn:
		GTRP BCDCDCDCDCDCDCDCDCDCDB 5 bright
		Stop 
	}
}

Actor GhostBusterSoul : GhostBusterPlasma
{
	Weapon.AmmoUse 7
	Inventory.Icon "GBGUN2"
	States
	{
	Spawn:
		BPAK A 400
		Loop
	Ready:
		PACK J 1
		PACK I 1
		PACK H 1 
		PACK G 1 
		PACK F 1 
		PACK E 1 
		PACK D 1 A_PlaySound("pack/heatup")
		PACK C 1
		PACK B 1
		PACK A 0 A_JumpIfInventory("GBCancel",1,"Downgrade")
		PACK A 1 A_WeaponReady
		Goto Ready+9
	Select:
		TNT1 A 1 A_Raise
		Loop
	Deselect:
		PACK B 1 
		PACK C 1 
		PACK D 1 
		PACK E 1 
		PACK F 1
		PACK G 1 
		PACK H 1 
		PACK I 1 
		PACK J 1 
		TNT1 A 1 A_Lower 
		Goto Deselect+9
	Fire:
		PACK D 0 A_JumpIfNoAmmo("Firefail")
		PACK B 1 
		PACK C 1
		PACK D 1 
		PACK L 3
		PACK M 3 A_PlaySound("pack/change1")
		PACK V 3
		PACK W 2
		Goto Hold
	Hold:
		PACK W 0 A_JumpIfNoAmmo("Firefail2")
		PACK W 0 A_TakeInventory("ProtonCharge",7)
		PACK W 2 A_FireCustomMissile("SoulBlast", 0, 0, 6, 3)
		PACK W 1 offset (0, 32)
		PACK W 1 offset (8, 37)
		PACK W 1 offset (11, 42)
		PACK W 1 offset (8, 37)
		PACK W 1 offset (0, 32)
		PACK W 1 A_Refire
		PACK V 3 A_ClearReFire
		PACK M 3 A_PlaySound("pack/change1")
		PACK CBA 1
		Goto Ready+9
	Firefail:
		PACK A 0 A_ClearReFire
		PACK A 18 A_PlaySound("weapons/cyborgfail")
		Goto Ready+9
	Firefail2:
		PACK W 0 A_ClearReFire
		PACK W 18 A_PlaySound("weapons/cyborgfail")
		PACK V 3 A_PlaySound("pack/change1")
		PACK M 3
		PACK L 2
		PACK CBA 1
		Goto Ready+9
	DownGrade:
		PACK B 1 
		PACK C 1 
		PACK D 1 
		PACK E 1 
		PACK F 1
		PACK G 1 
		PACK H 1 
		PACK I 1
		PACK J 1
		PACK J 20 ACS_ExecuteAlways(981,0)
		Goto Ready
	}
}

Actor SoulBlast
{
	Speed 35 
	Height	7
	Radius	6
	Scale 0.6
	Damage 7
	Alpha 0.8
	RenderStyle Add
	Translation "112:127=80:111"
	SeeSound "GBSoul"
	DeathSound "Weapons/ArrowExplode"
	PROJECTILE
	-SEEKERMISSILE
	States
	{
	Spawn:
		SPIR P 0
		SPIR P 1 A_Jump(256,0,5,10,15,20,25)
		SPIR PPPPP 0 A_BishopMissileWeave
		SPIR PPPPP 0 A_BishopMissileWeave
		SPIR PPPPP 0 A_BishopMissileWeave
		SPIR PPPPP 0 A_BishopMissileWeave
		SPIR PPPPP 0 A_BishopMissileWeave
		SPIR P 0
		Goto Flying
	Flying:
		SPIR P 0 A_SpawnItem("SoulFadefx")
		SPIR P 0 A_SeekerMissile (5, 15) 
		SPIR P 1 A_BishopMissileWeave
		Loop
	XDeath:
		OXPL A 0 A_GiveToTarget("HitBeep",1)
		Goto Death
	Death:
		OXPL ABCDEFGHIJKLM 1 A_FadeOut(0.01)
		Stop
	}
}

Actor GhostBusterBlood2 : GhostBusterPlasma
{
	Weapon.AmmoUse 6
	Inventory.Icon "GBGUN7"
	States
	{
	Spawn:
		BPAK A 400
		Loop
	Ready:
		PACK J 1
		PACK I 1
		PACK H 1 
		PACK G 1 
		PACK F 1 
		PACK E 1 
		PACK D 1 A_PlaySoundEx("pack/heatup","Weapon")
		PACK C 1
		PACK B 1
		PACK A 0 A_JumpIfInventory("GBCancel",1,"Downgrade")
		PACK A 1 A_WeaponReady
		Goto Ready + 9
	Select:
		TNT1 A 1 A_Raise
		Loop
	Deselect:
		PACK B 1 
		PACK C 1 
		PACK D 1 
		PACK E 1 
		PACK F 1
		PACK G 1 
		PACK H 1 
		PACK I 1 
		PACK J 1 
		TNT1 A 1 A_Lower 
	Goto Deselect+9
	Fire:
		PACK D 0 A_JumpIfNoAmmo("Firefail")
		PACK B 1 
		PACK C 1
		PACK D 1
		PACK L 3
		PAC2 E 3 A_PlaySoundEx("pack/change1","Weapon")
		Goto Hold
	Hold:
		PAC2 E 0 A_JumpIfNoAmmo("Firefail2")
		PAC2 E 0 A_TakeInventory("ProtonCharge",6)
		TNT1 A 0 A_PlayWeaponSound("Slime1")
		PAC2 ABCDCBA 2 A_SpawnItemEx("BloodFallSpawner", random(-150,150), random(-150,150), 9999,0,0,0,0,SXF_NOCHECKPOSITION)
		PAC2 E 3 A_Refire
		PAC2 E 3 A_ClearReFire
		PACK M 3 A_PlaySoundEx("pack/change1","Weapon")
		PACK CBA 1
		Goto Ready+9
	Firefail:
		PACK U 0 A_ClearReFire
		PACK A 18 A_PlaySoundEx("weapons/cyborgfail","Weapon")
		Goto Ready+9
	Firefail2:
		PAC2 E 0 A_ClearReFire
		PAC2 E 18 A_PlaySoundEx("weapons/cyborgfail","Weapon")
		PAC2 E 3 A_PlaySoundEx("pack/change1","Weapon")
		PACK M 3
		PACK L 2
		PACK CBA 1
		goto Ready+9
	Downgrade:
		PACK B 1 
		PACK C 1 
		PACK D 1 
		PACK E 1 
		PACK F 1
		PACK G 1 
		PACK H 1 
		PACK I 1
		PACK J 1
		PACK J 20 ACS_ExecuteAlways(981,0)
		Goto Ready
	}
}

Actor BloodFallSpawner
{
	Speed 0
	Radius 1
	Height 8
	PROJECTILE
	-SOLID
	+NOGRAVITY
	+SKYEXPLODE
	+CEILINGHUGGER
	States
	{
	Spawn:
	Death:
		TNT1 A 0 
		TNT1 AA 1 A_SpawnItemEx("BloodFall",1,0,-1,0,0,-22)
		Stop
	}
}

Actor BloodFall
{
	Speed 46
	Height 5
	Radius 5
	Damage 6
	BounceFactor 0.3
	BounceCount 4
	ReactionTime 30
	PROJECTILE
	-NOGRAVITY
	+SEEKERMISSILE
	States
	{
	Spawn:
		XLIM C 1 A_SpawnItemEx("BloodFallTrail",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
		XLIM B 1 A_SpawnItemEx("BloodFallTrail2",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
		XLIM C 1 A_SpawnItemEx("BloodFallTrail",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
		XLIM B 1 A_SpawnItemEx("BloodFallTrail2",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
		XLIM C 1 A_SpawnItemEx("BloodFallTrail",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
		XLIM B 1 A_SpawnItemEx("BloodFallTrail2",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
		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")
		Goto DeathCont
	SplashBeep:
		TNT1 A 0 A_GiveToTarget("HitBeep",1)
		TNT1 A 0 A_Jump(256,"DeathCont")
		Goto DeathCont
	DeathCont:
		XLIM A 0 A_PlaySound("Slime1")
		XLIM A 0 A_Explode(20, 80, 0)
		XLIM DE 3
		Stop
	}
}

Actor BloodFallTrail
{
	Height 0
	Radius 0
	Alpha 0.8
	
	-SOLID
	+NOGRAVITY
	+CLIENTSIDEONLY
	States
	{
	Spawn:
		XLIM BC 1 A_FadeOut(0.15)
		Loop
	}
}

Actor BloodFallTrail2 : BloodFallTrail
{
	States
	{
	Spawn:
		XLIM BC 1 A_FadeOut(0.1)
		Stop
	}
}

Actor GhostBusterSoul2 : GhostBusterPlasma
{
	Weapon.AmmoUse 6
	inventory.icon "GBGUN8"
	states
	{
	Spawn:
		BPAK A 400
		Loop
	Ready:
		PACK J 1
		PACK I 1
		PACK H 1 
		PACK G 1 
		PACK F 1 
		PACK E 1 
		PACK D 1 A_PlaySound("pack/heatup")
		PACK C 1
		PACK B 1
		PACK A 0 A_JumpIfInventory("GBCancel",1,"Downgrade")
		PACK A 1 A_WeaponReady
		Goto Ready + 9
	Select:
		TNT1 A 1 A_Raise
		Loop
	Deselect:
		PACK B 1 
		PACK C 1 
		PACK D 1 
		PACK E 1 
		PACK F 1
		PACK G 1 
		PACK H 1 
		PACK I 1 
		PACK J 1 
		TNT1 A 1 A_Lower 
		Goto Deselect+9
	Fire:
		PACK D 0 A_JumpIfNoAmmo("Firefail")
		PACK B 1 
		PACK C 1
		PACK D 1 
		PACK L 3
		PACK M 3 A_PlaySound("pack/change1")
		PACK V 3
		PACK W 2
	Hold:
		PACK W 0 A_JumpIfNoAmmo("Firefail2")
		PACK W 0 A_JumpIfInventory("DoublePistolChecker",1,"Double")
	Single:
		PACK W 0 A_FireCustomMissile("SoulBlast2",0,1,3)
		PACK W 0 A_GiveInventory("DoublePistolChecker",1)
		Goto End
	Double:
		PACK W 0 A_FireCustomMissile("SoulBlast2",15,1,3)
		PACK W 0 A_FireCustomMissile("SoulBlast2",-15,0,3)
		PACK W 0 A_TakeInventory("DoublePistolChecker",999)
		Goto End
	End:
		PACK W 2
		PACK W 1 offset (0, 32)
		PACK W 1 offset (8, 37)
		PACK W 1 offset (11, 42)
		PACK W 1 offset (8, 37)
		PACK W 1 offset (0, 32)
		PACK W 1 A_Refire
		PACK W 0 A_TakeInventory("DoublePistolChecker",999)
		PACK V 3 A_ClearReFire
		PACK M 3 A_PlaySound("pack/change1")
		PACK CBA 1
		Goto Ready+9		
	Firefail:
		PACK A 0 A_ClearReFire
		PACK A 18 A_PlaySound("weapons/cyborgfail")
		Goto Ready+9
	Firefail2:
		PACK W 0 A_ClearReFire
		PACK W 18 A_PlaySound("weapons/cyborgfail")
		PACK V 3 A_PlaySound("pack/change1")
		PACK M 3
		PACK L 2
		PACK CBA 1
		goto Ready+9
	Downgrade:
		PACK B 1 
		PACK C 1 
		PACK D 1 
		PACK E 1 
		PACK F 1
		PACK G 1 
		PACK H 1 
		PACK I 1
		PACK J 1
		PACK J 20 ACS_ExecuteAlways(981,0)
		Goto Ready
	}
}

Actor SoulBlast2
{
	Speed 35
	Damage 5
	Height	7
	Radius	6
	Scale 0.6
	RenderStyle Add
	DeathSound "Weapons/ArrowExplode"
	SeeSound "GBSoul"
	Alpha 0.8
	Translation "112:127=80:111"
	PROJECTILE
	+SEEKERMISSILE
	states
	{
	Spawn:
		SPIR P 0 A_SpawnItem("SoulFadefx")
		SPIR P 1 A_SeekerMissile(10,20)
		Loop
	XDeath:
		TNT1 A 0 A_GiveToTarget("HitBeep",1)
		Goto Death
	Death:
		OXPL ABCDEFGHIJKLM 1 A_FadeOut(0.01)
		Stop
	}
}

Actor GhostBusterFire : GhostBusterPlasma
{
	Weapon.AmmoUse 30
	Inventory.Icon "GBGUN9"
	States
	{
	Spawn:
		BPAK A 400
		Loop
	Ready:
		PACK J 1
		PACK I 1
		PACK H 1 
		PACK G 1 
		PACK F 1 
		PACK E 1 
		PACK D 1 A_PlaySoundEx("pack/heatup","Weapon")
		PACK C 1
		PACK B 1
		PACK A 0 A_JumpIfInventory("GBCancel",1,"Downgrade")
		PACK A 1 A_WeaponReady
		Goto Ready + 9
	Select:
		TNT1 A 1 A_Raise
		Loop
	Fire:
		PACK D 0 A_JumpIfNoAmmo("Firefail")
		PACK B 1 
		PACK C 1
		PACK D 1 
		PACK L 3
		PACK M 3 A_PlaySoundEx("pack/change1","Weapon")
		PACK N 3
		PACK O 2
		Goto Hold
	Deselect:
		PACK B 1 
		PACK C 1 
		PACK D 1 
		PACK E 1 
		PACK F 1
		PACK G 1 
		PACK H 1 
		PACK I 1 
		PACK J 1 
		TNT1 A 1 A_Lower 
		Goto Deselect+9
	Hold:
		PACK D 0 A_JumpIfNoAmmo("Firefail2")
		PAC2 E 26 A_FireCustomMissile("GBFire",random(-3,3),1,0,3)
		PACK O 1 A_Refire
		PACK N 3 A_ClearReFire
		PACK M 3 A_PlaySoundEx("pack/change1","Weapon")
		PACK CBA 1
		Goto Ready+9
	Firefail:
		PACK A 0 A_ClearReFire
		PACK A 18 A_PlaySoundEx("weapons/cyborgfail","Weapon")
		Goto Ready+9
	Firefail2:
		PACK D 0 A_ClearReFire
		PACK O 18 A_PlaySoundEx("weapons/cyborgfail","Weapon")
		PACK N 3 A_PlaySoundEx("pack/change1","Weapon")
		PACK M 3
		PACK L 2
		PACK CBA 1
		goto Ready+9
	Downgrade:
		PACK B 1 
		PACK C 1 
		PACK D 1 
		PACK E 1 
		PACK F 1
		PACK G 1 
		PACK H 1 
		PACK I 1
		PACK J 1
		PACK J 20 ACS_ExecuteAlways(981,0)
		Goto Ready
	}
}

Actor GBFire
{
	Speed 40
	Radius 5
	Height 5
	Scale 0.2
	Alpha 0.8
	RenderStyle Add
	Damage 0
	DamageType "Proton"
	Obituary "%o was zapped by %k's proton pack."
	SeeSound "CassattFlame"
	Decal "Scorch"
	PROJECTILE
	-NOGRAVITY
	States
	{
	Spawn:
		FNUK AB 3 bright
		Loop
	Death:
		TNT1 A 0 A_CustomMissile("GBFire2",0,0,0,2)
		TNT1 A 0 A_CustomMissile("GBFire2",0,0,45,2)
		TNT1 A 0 A_CustomMissile("GBFire2",0,0,90,2)
		TNT1 A 0 A_CustomMissile("GBFire2",0,0,135,2)
		TNT1 A 0 A_CustomMissile("GBFire2",0,0,180,2)
		TNT1 A 0 A_CustomMissile("GBFire2",0,0,-135,2)
		TNT1 A 0 A_CustomMissile("GBFire2",0,0,-90,2)
		TNT1 A 0 A_CustomMissile("GBFire2",0,0,-45,2)
		GLO6 A 1 bright A_SpawnItemEx("GrenadeExplosion", 0, 0, 0, 0, 0, 0, 0, 128, 0)
		Stop
	}
}

Actor GBFire2 : ArchvileFire
{
	Speed 5
	Damage 1
	Obituary "%o was zapped by %k's proton pack."
	PROJECTILE
	DamageType "GBFire"
	+MISSILE
	+RIPPER
	+BLOODLESSIMPACT
	States
	{
		FIRE A 2 bright A_StartFire
		FIRE B 2 bright A_Fire
		FIRE C 2 bright A_FireCrackle
		FIRE D 2 bright A_Fire
		FIRE E 2 bright A_FireCrackle
		FIRE FGH 2 bright A_Fire
		Stop
	}
}

Actor GhostBusterEcho2 : GhostBusterPlasma
{
	Weapon.AmmoUse 15
	inventory.icon "GBGUN10"
	states
	{
	Spawn:
		BPAK A 400
		Loop
	Ready:
		PACK J 1
		PACK I 1
		PACK H 1 
		PACK G 1 
		PACK F 1 
		PACK E 1 
		PACK D 1 A_PlaySoundEx("pack/heatup","Weapon")
		PACK C 1
		PACK B 1
		PACK A 0 A_JumpIfInventory("GBCancel",1,"Downgrade")
		PACK A 1 A_WeaponReady
		Goto Ready+9
	Select:
		TNT1 A 1 A_Raise
		Loop
	Deselect:
		PACK B 1 
		PACK C 1 
		PACK D 1 
		PACK E 1 
		PACK F 1
		PACK G 1 
		PACK H 1 
		PACK I 1 
		PACK J 1 
		TNT1 A 1 A_Lower 
		Goto Deselect+9
	Fire:
		PACK D 0 A_JumpIfNoAmmo("Firefail")
		PACK B 1 
		PACK C 1
		PACK D 1
		PACK L 3
		PACK M 3 A_PlaySoundEx("pack/change1","Weapon")
		PACK T 3
		PACK U 2
		Goto Hold
	Hold:
		PACK D 0 A_JumpIfNoAmmo("Firefail2")
		PACK O 0 A_PlaySoundEx("EchoShot","Weapon")
		PACK U 1 A_FireCustomMissile("EchoShot2",0,1,0,3)
		PACK U 1 offset (0, 37)
		PACK U 1 offset (5, 42)
		PACK U 1 offset (10, 47)
		PACK U 1 offset (15, 75)
		PACK U 1 offset (20, 52)
		PACK U 1 offset (25, 57)
		PACK U 1 offset (30, 62)
		PACK U 1 offset (25, 57)
		PACK U 1 offset (20, 52)
		PACK U 1 offset (15, 75)
		PACK U 1 offset (10, 47)
		PACK U 1 offset (5, 42)
		PACK U 1 offset (0, 37)
		PACK U 30 offset (0, 32)
		PACK U 1 A_Refire
		PACK T 3 A_ClearReFire
		PACK M 3 A_PlaySoundEx("pack/change1","Weapon")
		PACK CBA 1
		Goto Ready+9
	Firefail:
		PACK U 0 A_ClearReFire
		PACK A 18 A_PlaySound("weapons/cyborgfail")
		Goto Ready+9
	Firefail2:
		PACK D 0 A_ClearReFire
		PACK U 18 A_PlaySound("weapons/cyborgfail")
		PACK T 3 A_PlaySoundEx("pack/change1","Weapon")
		PACK M 3
		PACK L 2
		PACK CBA 1
		goto Ready+9
	Downgrade:
		PACK B 1 
		PACK C 1 
		PACK D 1 
		PACK E 1 
		PACK F 1
		PACK G 1 
		PACK H 1 
		PACK I 1
		PACK J 1
		PACK J 20 ACS_ExecuteAlways(981,0)
		Goto Ready
	}
}

Actor EchoShot2
{
	Speed 20
	Radius 15
	Height 15
	Damage 0
	BounceCount 3
	BounceFactor 1.0
	ReactionTime 80
	RenderStyle None
	SeeSound "EchoBounce"
	WallBounceFactor 1.0
	PROJECTILE
	+DOOMBOUNCE
	States
	{
	Spawn:
		TNT1 A 0 A_CountDown
		TNT1 AAAAAAAAAAAAAAA 1 A_SpawnItem("EchoWave2")
		Goto Death
	Death:
		TNT1 A 0 A_Stop
		TNT1 A 0 A_CustomMissile("EchoShot3",0,0,0,2)
		TNT1 A 0 A_CustomMissile("EchoShot3",0,0,45,2)
		TNT1 A 0 A_CustomMissile("EchoShot3",0,0,90,2)
		TNT1 A 0 A_CustomMissile("EchoShot3",0,0,135,2)
		TNT1 A 0 A_CustomMissile("EchoShot3",0,0,180,2)
		TNT1 A 0 A_CustomMissile("EchoShot3",0,0,-135,2)
		TNT1 A 0 A_CustomMissile("EchoShot3",0,0,-90,2)
		TNT1 A 0 A_CustomMissile("EchoShot3",0,0,-45,2)
		TNT1 A 1
		Stop
	}
}

Actor EchoShot3 : EchoShot
{
	Damage (20)
}

Actor EchoWave2
{
	Height 1
	Radius 1
	Scale 0.4
	Alpha 1.0
	RenderStyle Translucent
	Translation "112:127=224:231"
	
	-SOLID
	+NOGRAVITY
	States
	{
	Spawn:
		PR2E OMKIGECA 1 bright A_FadeOut(0.04)
		stop
	}
}

Actor GhostBusterDrain : GhostBusterPlasma
{
	Weapon.AmmoUse 10
	inventory.icon "GBGUN11"
	states
	{
	Spawn:
		BPAK A 400
		Loop
	Ready:
		PACK J 1
		PACK I 1
		PACK H 1 
		PACK G 1 
		PACK F 1 
		PACK E 1 
		PACK D 1 A_PlaySoundEx("pack/heatup","Weapon")
		PACK C 1
		PACK B 1
		PACK A 0 A_JumpIfInventory("GBCancel",1,"Downgrade")
		PACK A 1 A_WeaponReady
		Goto Ready+9
	Select:
		TNT1 A 1 A_Raise
		Loop
	Deselect:
		PACK B 1 
		PACK C 1 
		PACK D 1 
		PACK E 1 
		PACK F 1
		PACK G 1 
		PACK H 1 
		PACK I 1 
		PACK J 1 
		TNT1 A 1 A_Lower 
		Goto Deselect+9
	Fire:
		PACK D 0 A_JumpIfNoAmmo("Firefail")
		PACK B 1 
		PACK C 1
		PACK D 1
		PACK L 3
		PACK M 3 A_PlaySoundEx("pack/change1","Weapon")
		PACK T 3
		PACK U 2
		Goto Hold
	Hold:
		PACK D 0 A_JumpIfNoAmmo("Firefail2")
		PACK U 1 A_FireCustomMissile("HPDrainer",0,1,0,3)
		PACK U 1 offset (0, 37)
		PACK U 1 offset (5, 42)
		PACK U 1 offset (10, 47)
		PACK U 1 offset (15, 75)
		PACK U 1 offset (20, 52)
		PACK U 1 offset (25, 57)
		PACK U 1 offset (30, 62)
		PACK U 1 offset (25, 57)
		PACK U 1 offset (20, 52)
		PACK U 1 offset (15, 75)
		PACK U 1 offset (10, 47)
		PACK U 1 offset (5, 42)
		PACK U 1 offset (0, 37)
		PACK U 3 offset (0, 32)
		PACK U 1 A_Refire
		PACK T 3 A_ClearReFire
		PACK M 3 A_PlaySoundEx("pack/change1","Weapon")
		PACK CBA 1
		Goto Ready+9
	Firefail:
		PACK U 0 A_ClearReFire
		PACK A 18 A_PlaySound("weapons/cyborgfail")
		Goto Ready+9
	Firefail2:
		PACK D 0 A_ClearReFire
		PACK U 18 A_PlaySound("weapons/cyborgfail")
		PACK T 3 A_PlaySoundEx("pack/change1","Weapon")
		PACK M 3
		PACK L 2
		PACK CBA 1
		goto Ready+9
	Downgrade:
		PACK B 1 
		PACK C 1 
		PACK D 1 
		PACK E 1 
		PACK F 1
		PACK G 1 
		PACK H 1 
		PACK I 1
		PACK J 1
		PACK J 20 ACS_ExecuteAlways(981,0)
		Goto Ready
	}
}

Actor HPDrainer
{
	Speed 60
	Radius 4
	Height 4
	Scale 0.1
	Alpha 0.8
	Damage (15)
	DamageType "Drainer"
	RenderStyle Translucent
	SeeSound "weapons/protonpackfire"
	DeathSound "weapons/plasmax"
	PROJECTILE
	+RANDOMIZE
	States
	{
	Spawn:
		HPDR A 1 bright
		Loop
	XDeath:
		TNT1 A 0 A_GiveToTarget("HitBeep",1)
		Goto Death
	Death:
		HPDR ZZZZZ 1 A_SpawnItemEx("BlizzardExplode",random(20,-20),random(20,-20),random(20,-20))
		Stop
	}
}

Actor GhostBusterSmoke : GhostBusterPlasma
{
	Weapon.AmmoUse 3
	Inventory.Icon "GBGUN12"
	States
	{
	Spawn:
		BPAK A 400
		Loop
	Ready:
		PACK J 1
		PACK I 1
		PACK H 1 
		PACK G 1 
		PACK F 1 
		PACK E 1 
		PACK D 1 A_PlaySoundEx("pack/heatup","Weapon")
		PACK C 1
		PACK B 1
		PACK A 0 A_JumpIfInventory("GBCancel",1,"Downgrade")
		PACK A 1 A_WeaponReady
		Goto Ready + 9
	Select:
		TNT1 A 1 A_Raise
		Loop
	Fire:
		PACK D 0 A_JumpIfNoAmmo("Firefail")
		PACK B 1 
		PACK C 1
		PACK D 1 
		PACK L 3
		PACK M 3 A_PlaySoundEx("pack/change1","Weapon")
		PACK N 3
		PACK O 2
		Goto Hold
	Deselect:
		PACK B 1 
		PACK C 1 
		PACK D 1 
		PACK E 1 
		PACK F 1
		PACK G 1 
		PACK H 1 
		PACK I 1 
		PACK J 1 
		TNT1 A 1 A_Lower 
		Goto Deselect+9
	Hold:
		PACK D 0 A_JumpIfNoAmmo("Firefail2")
		PAC2 E 0 A_PlaySoundEx("MistySpin","Body")
		PAC2 E 0 A_TakeInventory("Protoncharge",3)
		PAC2 E 5 A_FireCustomMissile("GhostSmoke",1,0,3)
		PACK O 1 A_Refire
		PACK N 3 A_ClearReFire
		PACK M 3 A_PlaySoundEx("pack/change1","Weapon")
		PACK CBA 1
		Goto Ready+9
	Firefail:
		PACK A 0 A_ClearReFire
		PACK A 18 A_PlaySoundEx("weapons/cyborgfail","Weapon")
		Goto Ready+9
	Firefail2:
		PACK D 0 A_ClearReFire
		PACK O 18 A_PlaySoundEx("weapons/cyborgfail","Weapon")
		PACK N 3 A_PlaySoundEx("pack/change1","Weapon")
		PACK M 3
		PACK L 2
		PACK CBA 1
		goto Ready+9
	Downgrade:
		PACK B 1 
		PACK C 1 
		PACK D 1 
		PACK E 1 
		PACK F 1
		PACK G 1 
		PACK H 1 
		PACK I 1
		PACK J 1
		PACK J 20 ACS_ExecuteAlways(981,0)
		Goto Ready
	}
}

Actor GhostSmoke
{

	Damage 2
	Speed 10
	Radius 10
	RenderStyle Translucent
	DamageType "Misty"
	Obituary "%o was zapped by %k's proton pack."
	Alpha 0.7
	Scale 0.5
	Height 10
	PROJECTILE
	+RIPPER
	+DOOMBOUNCE
	+BLOODLESSIMPACT
	States
	{
	Spawn:
		SMIS AAAAAAAAAAAAAAA 5 A_FadeOut(0.05)
		Stop
	Death:
		SMIS X 0
		Stop
	}
}

Actor GhostBusterStrength : GhostBusterPlasma
{
	Weapon.AmmoUse 3
	Inventory.Icon "GBGUN13"
	States
	{
	Spawn:
		BPAK A 400
		Loop
	Ready:
		PACK J 1
		PACK I 1
		PACK H 1 
		PACK G 1 
		PACK F 1 
		PACK E 1 
		PACK D 1 A_PlaySoundEx("pack/heatup","Weapon")
		PACK C 1
		PACK B 1
		PACK A 0 A_JumpIfInventory("GBCancel",1,"Downgrade")
		PACK A 1 A_WeaponReady
		Goto Ready + 9
	Select:
		TNT1 A 1 A_Raise
		Loop
	Deselect:
		PACK B 1 
		PACK C 1 
		PACK D 1 
		PACK E 1 
		PACK F 1
		PACK G 1 
		PACK H 1 
		PACK I 1 
		PACK J 1 
		TNT1 A 1 A_Lower 
		Goto Deselect+9
	Fire:
		PACK D 0 A_JumpIfNoAmmo("Firefail")
		PACK B 1 
		PACK C 1
		PACK D 1
		Goto Hold
	Hold:
		PACK D 0 A_JumpIfNoAmmo("Firefail2")
		PACK D 3 A_FireCustomMissile("GhostBusterSuperBall",0,1,8,3)
		PACK D 1 A_Refire
		PACK D 3 A_ClearReFire
		PACK CBA 1
		Goto Ready+9
	Firefail:
		PACK D 0 A_ClearReFire
		PACK A 18 A_PlaySoundEx("weapons/cyborgfail","Voice")
		Goto Ready+9
	Firefail2:
		PACK D 0 A_ClearReFire
		PACK D 18 A_PlaySoundEx("weapons/cyborgfail","Voice")
		PACK CBA 1
		goto Ready+9
	Downgrade:
		PACK B 1 
		PACK C 1 
		PACK D 1 
		PACK E 1 
		PACK F 1
		PACK G 1 
		PACK H 1 
		PACK I 1
		PACK J 1
		PACK J 20 ACS_ExecuteAlways(981,0)
		Goto Ready
	}
}

Actor GhostBusterSuperBall : GhostBusterBall
{
	Scale 1.85
	Damage (15)
}

Actor GhostBusterRandom : GhostBusterPlasma
{
	Weapon.AmmoUse 10
	Inventory.Icon "GBGUN14"
	States
	{
	Spawn:
		BPAK A 400
		Loop
	Ready:
		PACK J 1
		PACK I 1
		PACK H 1 
		PACK G 1 
		PACK F 1 
		PACK E 1 
		PACK D 1 A_PlaySoundEx("pack/heatup","Weapon")
		PACK C 1
		PACK B 1
		PACK A 0 A_JumpIfInventory("GBCancel",1,"Downgrade")
		PACK A 1 A_WeaponReady
		Goto Ready+9
	Select:
		TNT1 A 1 A_Raise
		Loop
	Deselect:
		PACK B 1 
		PACK C 1 
		PACK D 1 
		PACK E 1 
		PACK F 1
		PACK G 1 
		PACK H 1 
		PACK I 1 
		PACK J 1 
		TNT1 A 1 A_Lower 
	Goto Deselect+9
	Fire:
		PACK D 0 A_JumpIfNoAmmo("Firefail")
		PACK B 1 
		PACK C 1
		PACK D 1
		PACK L 3
		PAC2 E 3 A_PlaySoundEx("pack/change1","Weapon")
		Goto Hold
	Hold:
		PAC2 E 0 A_JumpIfNoAmmo("Firefail2")
		PACK B 0 ACS_ExecuteAlways(905,0,0) 
		PAC2 E 0 A_TakeInventory("ProtonCharge",10)
		PAC2 E 0 A_JumpIfInventory("BusterAttack",15,"Iodsa")
		PAC2 E 0 A_JumpIfInventory("BusterAttack",14,"Emtalic")
		PAC2 E 0 A_JumpIfInventory("BusterAttack",13,"Clowny")
		PAC2 E 0 A_JumpIfInventory("BusterAttack",12,"Misty")
		PAC2 E 0 A_JumpIfInventory("BusterAttack",11,"Yurei")
		PAC2 E 0 A_JumpIfInventory("BusterAttack",10,"SoulHarvester")
		PAC2 E 0 A_JumpIfInventory("BusterAttack",9,"Jugulum")
		PAC2 E 0 A_JumpIfInventory("BusterAttack",8,"Ravager")
		PAC2 E 0 A_JumpIfInventory("BusterAttack",7,"Eyesore")
		PAC2 E 0 A_JumpIfInventory("BusterAttack",6,"FrostBite")
		PAC2 E 0 A_JumpIfInventory("BusterAttack",5,"Choke")
		PAC2 E 0 A_JumpIfInventory("BusterAttack",4,"Jitterskull")
		PAC2 E 0 A_JumpIfInventory("BusterAttack",3,"Creeper")
		PAC2 E 0 A_JumpIfInventory("BusterAttack",2,"Sjas")
		PAC2 E 0 A_JumpIfInventory("BusterAttack",1,"Normal")
		Goto Normal
	Normal:
		PACK P 0 A_TakeInventory("BusterAttack",999)
		PACK DDDDDD 2 A_FireCustomMissile("GhostBusterBall",0,0,8,3)
		PACK D 6
		PACK D 1 A_Refire
		PACK D 3 A_ClearReFire
		PACK CBA 1
		Goto Ready+9
	Sjas:
		PACK P 0 A_TakeInventory("BusterAttack",999)
		PACK O 0 A_PlaySoundEx("EchoShot","Weapon")
		PACK U 1 A_FireCustomMissile("EchoShot",0,0,0,3)
		PACK U 1 offset (0, 37)
		PACK U 1 offset (5, 42)
		PACK U 1 offset (10, 47)
		PACK U 1 offset (15, 75)
		PACK U 1 offset (20, 52)
		PACK U 1 offset (25, 57)
		PACK U 1 offset (30, 62)
		PACK U 1 offset (25, 57)
		PACK U 1 offset (20, 52)
		PACK U 1 offset (15, 75)
		PACK U 1 offset (10, 47)
		PACK U 1 offset (5, 42)
		PACK U 1 offset (0, 37)
		PACK U 6 offset (0, 32)
		PACK U 1 A_Refire
		PACK T 3 A_ClearReFire
		PACK M 3 A_PlaySoundEx("pack/change1","Weapon")
		PACK CBA 1
		Goto Ready+9
	Creeper:
		PACK P 0 A_TakeInventory("BusterAttack",999)
		PACK W 2 A_FireCustomMissile("SoulBlast",0,0,6,3)
		PACK W 1 offset (0, 32)
		PACK W 1 offset (8, 37)
		PACK W 1 offset (11, 42)
		PACK W 1 offset (8, 37)
		PACK W 1 offset (0, 32)
		PACK W 2 A_FireCustomMissile("SoulBlast",0,0,6,3)
		PACK W 1 offset (0, 32)
		PACK W 1 offset (8, 37)
		PACK W 1 offset (11, 42)
		PACK W 1 offset (8, 37)
		PACK W 1 offset (0, 32)
		PACK W 1 A_Refire
		PACK V 3 A_ClearReFire
		PACK M 3 A_PlaySound("pack/change1")
		PACK CBA 1
		Goto Ready+9
	Jitterskull:
		PACK P 0 A_TakeInventory("BusterAttack",999)
		PACK P 0 A_PlayWeaponSound("boneshot")
		PACK P 3 offset (30, 62) A_RailAttack(80,8,0,"white","none",1,0,"RailPuff") 
		PACK P 3 offset (20, 52)
		PACK P 3 offset (10, 47)
		PACK P 3 offset (0, 37)
		PACK P 6
		PACK P 3 A_Refire
		PACK Q 3 A_ClearReFire
		PACK M 3 A_PlaySoundEx("pack/change1","Weapon")
		PACK CBA 1
		Goto Ready+9
	Choke:
		PACK P 0 A_TakeInventory("BusterAttack",999)
		PACK R 2 A_FireCustomMissile("BloodSlimeX", random(-3,3), 0, 0, 3)
		PACK S 2 A_FireCustomMissile("BloodSlimeX", random(-3,3), 0, 0, 3)
		PACK O 0 A_PlaySoundEx("Slime1","Weapon")
		PACK R 2 A_FireCustomMissile("BloodSlimeX", random(-3,3), 0, 0, 3)
		PACK S 2 A_FireCustomMissile("BloodSlimeX", random(-3,3), 0, 0, 3)
		PACK O 0 A_PlaySoundEx("Slime1","Weapon")
		PACK R 2 A_FireCustomMissile("BloodSlimeX", random(-3,3), 0, 0, 3)
		PACK S 2 A_FireCustomMissile("BloodSlimeX", random(-3,3), 0, 0, 3)
		PACK O 0 A_PlaySoundEx("Slime1","Weapon")
		PACK O 1 A_Refire
		PACK N 3 A_ClearReFire
		PACK M 3 A_PlaySoundEx("pack/change1","Weapon")
		PACK CBA 1
		Goto Ready+9
	FrostBite:
		PACK P 0 A_TakeInventory("BusterAttack",999)
		TNT1 A 0 A_PlayWeaponSound("icerain")
		PAC2 ABCDCBAABCDCBA 2 A_SpawnItemEx("IceFallSpawner", random(-200,200), random(-200,200), 9999,0,0,0,0,SXF_NOCHECKPOSITION)
		PAC2 E 3 A_Refire
		PAC2 E 3 A_ClearReFire
		PACK M 3 A_PlaySoundEx("pack/change1","Weapon")
		PACK CBA 1
		Goto Ready+9
	Eyesore:
		PACK P 0 A_TakeInventory("BusterAttack",999)
		TNT1 A 0 A_PlayWeaponSound("Slime1")
		PAC2 ABCDCBAABCDCBA 2 A_SpawnItemEx("BloodFallSpawner", random(-150,150), random(-150,150), 9999,0,0,0,0,SXF_NOCHECKPOSITION)
		PAC2 E 3 A_Refire
		PAC2 E 3 A_ClearReFire
		PACK M 3 A_PlaySoundEx("pack/change1","Weapon")
		PACK CBA 1
		Goto Ready+9
	Ravager:
		PACK P 0 A_TakeInventory("BusterAttack",999)
		PACK W 0 A_FireCustomMissile("SoulBlast2",0,0,3)
		PACK W 2
		PACK W 1 offset (0, 32)
		PACK W 1 offset (8, 37)
		PACK W 1 offset (11, 42)
		PACK W 1 offset (8, 37)
		PACK W 1 offset (0, 32)
		PACK W 0 A_FireCustomMissile("SoulBlast2",15,0,3)
		PACK W 0 A_FireCustomMissile("SoulBlast2",-15,0,3)
		PACK W 2
		PACK W 1 offset (0, 32)
		PACK W 1 offset (8, 37)
		PACK W 1 offset (11, 42)
		PACK W 1 offset (8, 37)
		PACK W 6 offset (0, 32)
		PACK W 1 A_Refire
		PACK W 0 A_TakeInventory("DoublePistolChecker",999)
		PACK V 3 A_ClearReFire
		PACK M 3 A_PlaySound("pack/change1")
		PACK CBA 1
		Goto Ready+9
	Jugulum:
		PACK P 0 A_TakeInventory("BusterAttack",999)
		PAC2 E 18 A_FireCustomMissile("GBFire",random(-3,3),0,0,3)
		PACK O 1 A_Refire
		PACK N 3 A_ClearReFire
		PACK M 3 A_PlaySoundEx("pack/change1","Weapon")
		PACK CBA 1
		Goto Ready+9
	SoulHarvester:
		PACK P 0 A_TakeInventory("BusterAttack",999)
		PACK O 0 A_PlaySoundEx("EchoShot","Weapon")
		PACK U 1 A_FireCustomMissile("EchoShot2",0,0,0,3)
		PACK U 1 offset (0, 37)
		PACK U 1 offset (5, 42)
		PACK U 1 offset (10, 47)
		PACK U 1 offset (15, 75)
		PACK U 1 offset (20, 52)
		PACK U 1 offset (25, 57)
		PACK U 1 offset (30, 62)
		PACK U 1 offset (25, 57)
		PACK U 1 offset (20, 52)
		PACK U 1 offset (15, 75)
		PACK U 1 offset (10, 47)
		PACK U 1 offset (5, 42)
		PACK U 1 offset (0, 37)
		PACK U 6 offset (0, 32)
		PACK U 1 A_Refire
		PACK T 3 A_ClearReFire
		PACK M 3 A_PlaySoundEx("pack/change1","Weapon")
		PACK CBA 1
		Goto Ready+9
	Yurei:
		PACK P 0 A_TakeInventory("BusterAttack",999)
		PACK U 1 A_FireCustomMissile("HPDrainer",0,1,0,3)
		PACK U 1 offset (0, 37)
		PACK U 1 offset (5, 42)
		PACK U 1 offset (10, 47)
		PACK U 1 offset (15, 75)
		PACK U 1 offset (20, 52)
		PACK U 1 offset (25, 57)
		PACK U 1 offset (30, 62)
		PACK U 1 offset (25, 57)
		PACK U 1 offset (20, 52)
		PACK U 1 offset (15, 75)
		PACK U 1 offset (10, 47)
		PACK U 1 offset (5, 42)
		PACK U 1 offset (0, 37)
		PACK U 4 offset (0, 32)
		PACK U 1 A_Refire
		PACK T 3 A_ClearReFire
		PACK M 3 A_PlaySoundEx("pack/change1","Weapon")
		PACK CBA 1
		Goto Ready+9
	Misty:
		PACK P 0 A_TakeInventory("BusterAttack",999)
		PAC2 E 0 A_PlaySoundEx("MistySpin","Body")
		PAC2 EE 3 A_FireCustomMissile("GhostSmoke",random(-7,7),0,0,3)
		PAC2 E 0 A_PlaySoundEx("MistySpin","Body")
		PAC2 EE 3 A_FireCustomMissile("GhostSmoke",random(-7,7),0,0,3)
		PACK O 1 A_Refire
		PACK N 3 A_ClearReFire
		PACK M 3 A_PlaySoundEx("pack/change1","Weapon")
		PACK CBA 1
		Goto Ready+9
	Clowny:
		PACK P 0 A_TakeInventory("BusterAttack",999)
		PACK DDDD 3 A_FireCustomMissile("GhostBusterSuperBall",0,0,8,3)
		PACK D 6
		PACK D 1 A_Refire
		PACK D 3 A_ClearReFire
		PACK CBA 1
		Goto Ready+9
	Emtalic:
		PACK P 0 A_TakeInventory("BusterAttack",999)
		PACK P 0 A_PlayWeaponSound("SawGearThrow")
		PACK P 2 offset (30, 62) A_FireCustomMissile("SawMill",random(2,-2),0,8,3) 
		PACK P 2 offset (20, 52) A_FireCustomMissile("SawMill",random(2,-2),0,8,3) 
		PACK PPP 2 offset (10, 47) A_FireCustomMissile("SawMill",random(2,-2),0,8,3) 
		PACK P 3 A_Refire
		PACK Q 3 A_ClearReFire
		PACK M 3 A_PlaySoundEx("pack/change1","Weapon")
		PACK CBA 1
		Goto Ready+9
	Iodsa:
		PACK P 0 A_TakeInventory("BusterAttack",999)
		TNT1 A 0 A_PlayWeaponSound("GBSoul")
		PAC2 A 3 A_FireCustomMissile("RaiseNuke",0,0,8,3)
		PAC2 A 3 offset (30, 62)
		PAC2 A 3 offset (20, 52)
		PAC2 A 3 offset (10, 47)
		PAC2 A 6 offset (0, 37)
		PAC2 E 3 A_Refire
		PAC2 E 3 A_ClearReFire
		PACK M 3 A_PlaySoundEx("pack/change1","Weapon")
		PACK CBA 1
		Goto Ready+9
	Firefail:
		PACK P 0 A_TakeInventory("BusterAttack",999)
		PACK U 0 A_ClearReFire
		PACK A 18 A_PlaySoundEx("weapons/cyborgfail","Weapon")
		Goto Ready+9
	Firefail2:
		PACK P 0 A_TakeInventory("BusterAttack",999)
		PAC2 E 0 A_ClearReFire
		PAC2 E 18 A_PlaySoundEx("weapons/cyborgfail","Weapon")
		PAC2 E 3 A_PlaySoundEx("pack/change1","Weapon")
		PACK M 3
		PACK L 2
		PACK CBA 1
		goto Ready+9
	Downgrade:
		PACK P 0 A_TakeInventory("BusterAttack",999)
		PACK B 1 
		PACK C 1 
		PACK D 1 
		PACK E 1 
		PACK F 1
		PACK G 1 
		PACK H 1 
		PACK I 1
		PACK J 1
		PACK J 20 ACS_ExecuteAlways(981,0)
		Goto Ready
	}
}

Actor BusterAttack : Inventory
{
	Inventory.Amount 1
	Inventory.MaxAmount 999
}

Actor GhostBusterSaw : GhostBusterPlasma
{
	Weapon.AmmoUse 1
	Inventory.Icon "GBGUN15"
	States
	{
	Spawn:
		BPAK A 400
		Loop
	Ready:
		PACK J 1
		PACK I 1
		PACK H 1 
		PACK G 1 
		PACK F 1 
		PACK E 1 
		PACK D 1 A_PlaySoundEx("pack/heatup","Weapon")
		PACK C 1
		PACK B 1
		PACK A 0 A_JumpIfInventory("GBCancel",1,"Downgrade")
		PACK A 1 A_WeaponReady
		Goto Ready + 9
	Select:
		TNT1 A 1 A_Raise
		Loop
	Deselect:
		PACK B 1 
		PACK C 1 
		PACK D 1 
		PACK E 1 
		PACK F 1
		PACK G 1 
		PACK H 1 
		PACK I 1 
		PACK J 1 
		TNT1 A 1 A_Lower 
		Goto Deselect+9
	Fire:
		PACK D 0 A_JumpIfNoAmmo("Firefail")
		PACK M 0 A_PlaySoundEx("pack/change1","Weapon")
		Goto Hold
	Hold:
		PACK P 0 A_JumpIfNoAmmo("Firefail2")
		PACK P 0 A_PlayWeaponSound("SawGearThrow")
		PACK P 2 offset (30, 62) A_FireCustomMissile("SawMill",random(2,-2),1,8,3) 
		PACK P 2 offset (20, 52) A_FireCustomMissile("SawMill",random(2,-2),1,8,3) 
		PACK P 2 offset (10, 47) A_FireCustomMissile("SawMill",random(2,-2),1,8,3) 
		PACK P 3 A_Refire
		PACK Q 3 A_ClearReFire
		PACK M 3 A_PlaySoundEx("pack/change1","Weapon")
		PACK CBA 1
		Goto Ready+9
	Firefail:
		PACK P 0 A_ClearReFire
		PACK A 18 A_PlaySoundEx("weapons/cyborgfail","Weapon")
		Goto Ready+9
	Firefail2:
		PACK D 0 A_ClearReFire
		PACK P 18 A_PlaySound("weapons/cyborgfail")
		PACK Q 3 A_PlaySoundEx("pack/change1","Weapon")
		PACK M 3
		PACK L 2
		PACK CBA 1
		goto Ready+9
	Downgrade:
		PACK B 1 
		PACK C 1 
		PACK D 1 
		PACK E 1 
		PACK F 1
		PACK G 1 
		PACK H 1 
		PACK I 1
		PACK J 1
		PACK J 20 ACS_ExecuteAlways(981,0)
		Goto Ready
	}
}

Actor SawMill
{
	Radius 5
	Height 10
	Speed 40
	Scale 0.12
	Damage (10)
	BounceCount 0
	SeeSound "SawGearThrow"
	PROJECTILE
	DamageType "GBSaw"
	-NOGRAVITY
	+RIPPER
	States
	{
	Spawn:
		SWBD ABCD 2
		Loop
	Death:
		TNT1 A 1
		Stop
	}
}

Actor GhostBusterNuke : GhostBusterPlasma
{
	Weapon.AmmoUse 45
	Inventory.Icon "GBGUN16"
	States
	{
	Spawn:
		BPAK A 400
		Loop
	Ready:
		PACK J 1
		PACK I 1
		PACK H 1 
		PACK G 1 
		PACK F 1 
		PACK E 1 
		PACK D 1 A_PlaySoundEx("pack/heatup","Weapon")
		PACK C 1
		PACK B 1
		PACK A 0 A_JumpIfInventory("GBCancel",1,"Downgrade")
		PACK A 1 A_WeaponReady
		Goto Ready + 9
	Select:
		TNT1 A 1 A_Raise
		Loop
	Deselect:
		PACK B 1 
		PACK C 1 
		PACK D 1 
		PACK E 1 
		PACK F 1
		PACK G 1 
		PACK H 1 
		PACK I 1 
		PACK J 1 
		TNT1 A 1 A_Lower 
	Goto Deselect+9
	Fire:
		PACK D 0 A_JumpIfNoAmmo("Firefail")
		PACK B 1 
		PACK C 1
		PACK D 1
		PACK L 3
		PAC2 E 3 A_PlaySoundEx("pack/change1","Weapon")
		Goto Hold
	Hold:
		PAC2 E 0 A_JumpIfNoAmmo("Firefail2")
		TNT1 A 0 A_PlayWeaponSound("GBSoul")
		PAC2 A 3 A_FireCustomMissile("RaiseNuke",0,1,8,3)
		PAC2 A 3 offset (30, 62)
		PAC2 A 3 offset (20, 52)
		PAC2 A 3 offset (10, 47)
		PAC2 A 35 offset (0, 37)
		PAC2 E 3 A_Refire
		PAC2 E 3 A_ClearReFire
		PACK M 3 A_PlaySoundEx("pack/change1","Weapon")
		PACK CBA 1
		Goto Ready+9
	Firefail:
		PACK U 0 A_ClearReFire
		PACK A 18 A_PlaySoundEx("weapons/cyborgfail","Weapon")
		Goto Ready+9
	Firefail2:
		PAC2 E 0 A_ClearReFire
		PAC2 E 18 A_PlaySoundEx("weapons/cyborgfail","Weapon")
		PAC2 E 3 A_PlaySoundEx("pack/change1","Weapon")
		PACK M 3
		PACK L 2
		PACK CBA 1
		goto Ready+9
	Downgrade:
		PACK B 1 
		PACK C 1 
		PACK D 1 
		PACK E 1 
		PACK F 1
		PACK G 1 
		PACK H 1 
		PACK I 1
		PACK J 1
		PACK J 20 ACS_ExecuteAlways(981,0)
		Goto Ready
	}
}

Actor RaiseNuke
{
	Speed 30
	Radius 7
	Height 5
	Scale 0.3
	BounceCount 2
	BounceFactor 0.3
	ReactionTime 5
	SeeSound "GBSoul"
	PROJECTILE
	+DOOMBOUNCE
	+BOUNCEONACTORS
	-NOGRAVITY
	+BRIGHT
	+EXPLODEONWATER
	+SKYEXPLODE
	Scale 1.0
	States
	{
	Spawn:
		GLO6 A 1 bright
		Loop
	Death:
        TNT1 A 0 A_PlaySound("BigExplosion")
		RKEX AB 2 A_SpawnItemEx("RaiseBoom",0,0,0)
		RKEX C 2 A_SpawnItemEx("RaiseBoom",0,0,10)
		RKEX D 2 A_SpawnItemEx("RaiseBoom",0,0,20)
		RKEX EF 2 A_SpawnItemEx("RaiseBoom",0,0,30)
		RKEX GHI 2 A_SpawnItemEx("RaiseBoom",0,0,40)
		RKEX JK 2 A_SpawnItemEx("RaiseBoom",0,0,50)
		RKEX L 2 A_SpawnItemEx("RaiseBoom",0,0,60)
		RKEX M 2 A_SpawnItemEx("RaiseBoom",0,0,70)
		RKEX N 2 A_SpawnItemEx("RaiseBoom",0,0,80)
		RKEX OPQ 2 A_SpawnItemEx("RaiseBoom",0,0,90)
		RKEX RSTU 2 A_FadeOut
		Stop
	}
}

Actor RaiseBoom
{
	DamageType "GBNuke"
	States
	{
	Spawn:
		TNT1 A 0
		TNT1 A 1 A_Explode(120,90,1)
		Stop
	Death:
		TNT1 A 0
		Stop
	}
}

actor GhostBusterSovereign : GhostBusterPlasma
{
Weapon.AmmoUse 5//10
states
{
Spawn:
BPAK A 400
Loop
Ready:
PACK J 1
PACK I 1
PACK H 1 
PACK G 1 
PACK F 1 
PACK E 1 
PACK D 1 A_PlaySound("pack/heatup")
PACK C 1
PACK B 1
PACK A 0 A_JumpIfInventory("GBCancel",1,"Downgrade")
PACK A 1 A_WeaponReady
Goto Ready + 9
Select:
TNT1 A 1 A_Raise
Loop
Deselect:
PACK B 1 
PACK C 1 
PACK D 1 
PACK E 1 
PACK F 1
PACK G 1 
PACK H 1 
PACK I 1 
PACK J 1 
TNT1 A 1 A_Lower 
Goto Deselect+9
Fire:
PACK D 0 A_JumpIfNoAmmo("Firefail")
PACK B 1 
PACK C 1
PACK D 1 
PACK L 3
PACK M 3 A_PlaySound("pack/change1")
PACK V 3
PACK W 2
Goto Hold
Hold:
PACK W 0 A_JumpIfNoAmmo("Firefail2")
TNT1 A 0 A_PlayWeaponSound("GBSoul")
PACK W 0 Bright A_FireCustomMissile("GBDiscipleShot1",8,1,5,0)
PACK W 0 Bright A_FireCustomMissile("GBDiscipleShot1",4,0,5,0)
PACK W 0 Bright A_FireCustomMissile("GBDiscipleShot1",0,0,5,0)
PACK W 0 Bright A_FireCustomMissile("GBDiscipleShot1",-4,0,5,0)
PACK W 0 Bright A_FireCustomMissile("GBDiscipleShot1",-8,0,5,0)
PACK W 2 
PACK W 1 offset (0, 32)
PACK W 1 offset (8, 37)
PACK W 1 offset (11, 42)
PACK W 1 offset (8, 37)
PACK W 1 offset (0, 32)
PACK W 1 A_Refire
PACK V 3 A_ClearReFire
PACK M 3 A_PlaySound("pack/change1")
PACK CBA 1
Goto Ready+9
Firefail:
PACK A 0 A_ClearReFire
PACK A 18 A_PlaySound("weapons/cyborgfail")
Goto Ready+9
Firefail2:
PACK W 0 A_ClearReFire
PACK W 18 A_PlaySound("weapons/cyborgfail")
PACK V 3 A_PlaySound("pack/change1")
PACK M 3
PACK L 2
PACK CBA 1
goto Ready+9
Downgrade:
PACK B 1 
PACK C 1 
PACK D 1 
PACK E 1 
PACK F 1
PACK G 1 
PACK H 1 
PACK I 1
PACK J 1
PACK J 20 ACS_ExecuteAlways(981,0)
Goto Ready
}
}

ACTOR GBDiscipleShot1
{
   Radius 8
   Height 16
   Speed 45
   Damage (6)
   Damagetype "Proton"
   RENDERSTYLE ADD
   ALPHA 0.67
   PROJECTILE
   DeathSound "DSDISHT1"
   Obituary "%o was zapped by %k's proton pack."
   Decal "WizardScorch"
   States
   {
   Spawn:
      CFX2 ABCD 2 Bright A_CustomMissile("DSFX1",0,0,0,0)
      loop
   XDeath:
	  TNT1 A 0 A_GiveToTarget("HitBeep",1)
      Goto Death
   Death:
      CFX2 EFGHI 3 Bright
      stop
   }
}

Actor GhostBusterImposter : GhostBusterPlasma
{
	Weapon.AmmoUse 30
	States
	{
	Spawn:
		BPAK A 400
		Loop
	Ready:
		PACK J 1
		PACK I 1
		PACK H 1 
		PACK G 1 
		PACK F 1 
		PACK E 1 
		PACK D 1 A_PlaySoundEx("pack/heatup","Weapon")
		PACK C 1
		PACK B 1
		PACK A 0 A_JumpIfInventory("GBCancel",1,"Downgrade")
		PACK A 1 A_WeaponReady
		Goto Ready + 9
	Select:
		TNT1 A 1 A_Raise
		Loop
	Deselect:
		PACK B 1 
		PACK C 1 
		PACK D 1 
		PACK E 1 
		PACK F 1
		PACK G 1 
		PACK H 1 
		PACK I 1 
		PACK J 1 
		TNT1 A 1 A_Lower 
	Goto Deselect+9
	Fire:
		PACK D 0 A_JumpIfNoAmmo("Firefail")
		PACK B 1 
		PACK C 1
		PACK D 1
		PACK L 3
		PAC2 E 3 A_PlaySoundEx("pack/change1","Weapon")
		Goto Hold
	Hold:
		PAC2 E 0 A_JumpIfNoAmmo("Firefail2")
		TNT1 A 0 A_PlayWeaponSound("GBSoul")
			PAC2 A 2 A_FireCustomMissile("GBImposterProj",180,1)
	PAC2 A 2 A_FireCustomMissile("GBImposterProj",160,0)
	PAC2 A 2 A_FireCustomMissile("GBImposterProj",140,0)
	PAC2 A 2 A_FireCustomMissile("GBImposterProj",120,0)
	PAC2 A 2 A_FireCustomMissile("GBImposterProj",100,0)
	PAC2 A 2 A_FireCustomMissile("GBImposterProj",80,0)
	PAC2 A 2 A_FireCustomMissile("GBImposterProj",60,0)
	PAC2 A 2 A_FireCustomMissile("GBImposterProj",40,0)
	PAC2 A 2 A_FireCustomMissile("GBImposterProj",20,0)
	PAC2 A 2 A_FireCustomMissile("GBImposterProj",0,0)
	PAC2 A 2 A_FireCustomMissile("GBImposterProj",-20,0)
	PAC2 A 2 A_FireCustomMissile("GBImposterProj",-40,0)
	PAC2 A 2 A_FireCustomMissile("GBImposterProj",-60,0)
	PAC2 A 2 A_FireCustomMissile("GBImposterProj",-80,0,0)
	PAC2 A 2 A_FireCustomMissile("GBImposterProj",-100,0)
	PAC2 A 2 A_FireCustomMissile("GBImposterProj",-120,0)
	PAC2 A 2 A_FireCustomMissile("GBImposterProj",-140,0)
	PAC2 A 2 A_FireCustomMissile("GBImposterProj",-160,0)
	PAC2 A 2 A_FireCustomMissile("GBImposterProj",-180,0)
	PAC2 A 2 A_FireCustomMissile("GBImposterProj",-160,0)
	PAC2 A 2 A_FireCustomMissile("GBImposterProj",-140,0)
	PAC2 A 2 A_FireCustomMissile("GBImposterProj",-120,0)
	PAC2 A 2 A_FireCustomMissile("GBImposterProj",-100,0)
	PAC2 A 2 A_FireCustomMissile("GBImposterProj",-80,0)
	PAC2 A 2 A_FireCustomMissile("GBImposterProj",-60,0)
	PAC2 A 2 A_FireCustomMissile("GBImposterProj",-40,0)
	PAC2 A 2 A_FireCustomMissile("GBImposterProj",-20,0)
	PAC2 A 2 A_FireCustomMissile("GBImposterProj",0,0)
	PAC2 A 2 A_FireCustomMissile("GBImposterProj",20,0)
	PAC2 A 2 A_FireCustomMissile("GBImposterProj",40,0)
	PAC2 A 2 A_FireCustomMissile("GBImposterProj",60,0)
	PAC2 A 2 A_FireCustomMissile("GBImposterProj",80,0)
	PAC2 A 2 A_FireCustomMissile("GBImposterProj",100,0)
	PAC2 A 2 A_FireCustomMissile("GBImposterProj",120,0)
	PAC2 A 2 A_FireCustomMissile("GBImposterProj",140,0)
	PAC2 A 2 A_FireCustomMissile("GBImposterProj",160,0)
	PAC2 A 2 A_FireCustomMissile("GBImposterProj",180,0)
		PAC2 E 3 A_Refire
		PAC2 E 3 A_ClearReFire
		PACK M 3 A_PlaySoundEx("pack/change1","Weapon")
		PACK CBA 1
		Goto Ready+9
	Firefail:
		PACK U 0 A_ClearReFire
		PACK A 18 A_PlaySoundEx("weapons/cyborgfail","Weapon")
		Goto Ready+9
	Firefail2:
		PAC2 E 0 A_ClearReFire
		PAC2 E 18 A_PlaySoundEx("weapons/cyborgfail","Weapon")
		PAC2 E 3 A_PlaySoundEx("pack/change1","Weapon")
		PACK M 3
		PACK L 2
		PACK CBA 1
		goto Ready+9
	Downgrade:
		PACK B 1 
		PACK C 1 
		PACK D 1 
		PACK E 1 
		PACK F 1
		PACK G 1 
		PACK H 1 
		PACK I 1
		PACK J 1
		PACK J 20 ACS_ExecuteAlways(981,0)
		Goto Ready
	}
}

ACTOR GBImposterProj
{
  Health 9
  Radius 12
  Height 8
  Speed 30
  Damage 5
  Damagetype "Proton"
  Scale .75
  Alpha .5
  Projectile
  RenderStyle Add
  Obituary "%o was zapped by %k's proton pack."
  SeeSound "weapons/skulprojshot"
  DeathSound "weapons/skulprojdeath" 
  States
  {
  Spawn:
    SKPJ A 3 BRIGHT
    SKPJ B 3 BRIGHT
    SKPJ C 3 BRIGHT
    SKPJ D 3 BRIGHT
    Loop
  XDeath:
    TNT1 A 0 A_GiveToTarget("HitBeep",1)
    Goto Death
  Death:
    SKPJ EFGHIJ 3 BRIGHT
    SKPJ K -1
    Stop
  }
}

actor GhostBusterLamia : GhostBusterPlasma
{
Weapon.AmmoUse 5//6
states
{
Spawn:
BPAK A 400
Loop
Ready:
PACK J 1
PACK I 1
PACK H 1 
PACK G 1 
PACK F 1 
PACK E 1 
PACK D 1 A_PlaySoundEx("pack/heatup","Weapon")
PACK C 1
PACK B 1
PACK A 0 A_JumpIfInventory("GBCancel",1,"Downgrade")
PACK A 1 A_WeaponReady
Goto Ready + 9
Select:
TNT1 A 1 A_Raise
Loop
Deselect:
PACK B 1 
PACK C 1 
PACK D 1 
PACK E 1 
PACK F 1
PACK G 1 
PACK H 1 
PACK I 1 
PACK J 1 
TNT1 A 1 A_Lower 
Goto Deselect+9
Fire:
PACK D 0 A_JumpIfNoAmmo("Firefail")
PACK B 1 
PACK C 1
PACK D 1
PACK L 3
PACK M 3 A_PlaySoundEx("pack/change1","Weapon")
PACK T 3
PACK U 2
Goto Hold
Hold:
PACK D 0 A_JumpIfNoAmmo("Firefail2")
PACK O 0 A_PlayWeaponSound("Weapons/WandOfEmbers/Fire")
PACK U 0 A_FireCustomMissile("GBWandOfEmbersBall", Random(-5, -3), 0, 0, 0, 0, Random(-2, 2))
PACK U 0 A_FireCustomMissile("GBWandOfEmbersBall", Random(5, 3), 0, 0, 0, 0, Random(-2, 2))
PACK U 0 A_FireCustomMissile("GBWandOfEmbersBall", Random(-3, 3), 0, 0, 0, 0, Random(3, 1))
PACK U 0 A_FireCustomMissile("GBWandOfEmbersBall", Random(-3, 3), 0, 0, 0, 0, Random(-3, -1))
PACK U 0 A_FireCustomMissile("GBWandOfEmbersBall", 0, 1, 0, 0, 0, 0)
PACK U 1 offset (0, 37)
PACK U 1 offset (5, 42)
PACK U 1 offset (10, 47)
PACK U 1 offset (15, 75)
PACK U 1 offset (20, 52)
PACK U 1 offset (25, 57)
PACK U 1 offset (30, 62)
PACK U 1 offset (25, 57)
PACK U 1 offset (20, 52)
PACK U 1 offset (15, 75)
PACK U 1 offset (10, 47)
PACK U 1 offset (5, 42)
PACK U 1 offset (0, 37)
PACK U 1 offset (0, 32)
PACK D 0 //A_JumpIfNoAmmo("Firefail4")
PACK U 1 A_Refire
PACK T 1 A_ClearReFire
PACK M 3 A_PlaySoundEx("pack/change1","Weapon")
PACK CBA 1
Goto Ready+9
Firefail:
PACK U 0 A_ClearReFire
PACK A 18 A_PlaySound("weapons/cyborgfail")
Goto Ready+9
Firefail2:
PACK D 0 A_ClearReFire
PACK U 18 A_PlaySound("weapons/cyborgfail")
PACK T 3 A_PlaySoundEx("pack/change1","Weapon")
PACK M 3
PACK L 2
PACK CBA 1
goto Ready+9
Downgrade:
PACK B 1 
PACK C 1 
PACK D 1 
PACK E 1 
PACK F 1
PACK G 1 
PACK H 1 
PACK I 1
PACK J 1
PACK J 20 ACS_ExecuteAlways(981,0)
Goto Ready
}
}

Actor GBWandOfEmbersBall
{
  Radius 4
  Height 4
  Speed 40
  Damage (8)
  DamageType "Proton"
  RenderStyle Add
  Alpha 0.75
  Scale 0.75
  Projectile
  +SEEKERMISSILE
  -BloodSplatter
  +BloodlessImpact
  Obituary "%o was zapped by %k's proton pack."
  DeathSound "Weapons/WandOfEmbers/Hit1"
  Decal EmberWandScorch
  States
  {
  Spawn:
    PYTL A 1 bright A_SpawnItemEx("WandOfEmbersTrail",0,0,0,0,0,0)
	PYTL A 1 bright A_Seekermissile(40,60,0,256,8)
    loop
  XDeath:
    TNT1 A 0 A_GiveToTarget("HitBeep",1)
    Goto Death
  Death:
    BRBA KLMNOPQRSTUVWX 1 bright
    stop
  }
}

actor GhostBusterAmorbis : GhostBusterPlasma
{
Weapon.AmmoUse 10
states
{
Spawn:
BPAK A 400
Loop
Ready:
PACK J 1
PACK I 1
PACK H 1 
PACK G 1 
PACK F 1 
PACK E 1 
PACK D 1 A_PlaySound("pack/heatup")
PACK C 1
PACK B 1
PACK A 0 A_JumpIfInventory("GBCancel",1,"Downgrade")
PACK A 1 A_WeaponReady
Goto Ready + 9
Select:
TNT1 A 1 A_Raise
Loop
Deselect:
PACK B 1 
PACK C 1 
PACK D 1 
PACK E 1 
PACK F 1
PACK G 1 
PACK H 1 
PACK I 1 
PACK J 1 
TNT1 A 1 A_Lower 
Goto Deselect+9
Fire:
PACK D 0 A_JumpIfNoAmmo("Firefail")
PACK B 1 
PACK C 1
PACK D 1 
PACK L 3
PACK M 3 A_PlaySound("pack/change1")
PACK V 3
PACK W 2
Goto Hold
Hold:
PACK W 0 A_JumpIfNoAmmo("Firefail2")
TNT1 A 0 A_PlayWeaponSound("GBSoul")
PACK W 0 Bright A_FireCustomMissile("GBCobraStaffSnake",0,1,5,0)
PACK W 2 
PACK W 1 offset (0, 32)
PACK W 1 offset (8, 37)
PACK W 1 offset (11, 42)
PACK W 1 offset (8, 37)
PACK W 1 offset (0, 32)
PACK W 1 A_Refire
PACK V 3 A_ClearReFire
PACK M 3 A_PlaySound("pack/change1")
PACK CBA 1
Goto Ready+9
Firefail:
PACK A 0 A_ClearReFire
PACK A 18 A_PlaySound("weapons/cyborgfail")
Goto Ready+9
Firefail2:
PACK W 0 A_ClearReFire
PACK W 18 A_PlaySound("weapons/cyborgfail")
PACK V 3 A_PlaySound("pack/change1")
PACK M 3
PACK L 2
PACK CBA 1
goto Ready+9
Downgrade:
PACK B 1 
PACK C 1 
PACK D 1 
PACK E 1 
PACK F 1
PACK G 1 
PACK H 1 
PACK I 1
PACK J 1
PACK J 20 ACS_ExecuteAlways(981,0)
Goto Ready
}
}

Actor GBCobraStaffSnake
{
scale 0.5
radius 5
height 10
speed 23
damage (15)
deathsound "Amorbis/CobraDeath"
activesound "Amorbis/CobraTrail"
DamageType "Proton"
PROJECTILE
+SEEKERMISSILE
states
  {
  Spawn:
  TNT1 A 0
  TNT1 A 0 A_LoopActiveSound
  C_H2 AAAAA 1 Bright A_SpawnItemEx("CobraStaffTail",-12,0,0,0,0,0,0,SXF_CLIENTSIDE)
  Goto SpawnLoop
  SpawnLoop:
  C_H2 A 0 A_SpawnItemEx("CobraStaffTail",-12,0,0,0,0,0,0,SXF_CLIENTSIDE)
  C_H2 A 0 A_SeekerMissile(2,3)
  C_H2 A 1 Bright A_Weave(4.5,0,2.0,0.0)
  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,127)
  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:
  C_H2 A 1 bright A_Jump(128,"Style2")
  C_H2 C 4 Bright A_Explode(5,90,0)	
  C_H2 D 4 Bright
  C_H2 E 4 Bright
  C_H2 F 4 Bright
  stop
  Style2:
  C_H2 I 4 Bright A_Explode(5,90,0)
  C_H2 J 4 Bright
  C_H2 K 4 Bright
  C_H2 L 4 Bright
  C_H2 M 4 Bright A_FadeOut(1.5/30.0)
  Stop
  }
}

Actor GhostBusterFleshJudge : GhostBusterPlasma
{
	Weapon.AmmoUse 5
	Obituary "%o was zapped by %k's proton pack."
	States
	{
	Spawn:
		BPAK A 400
		Loop
	Ready:
		PACK J 1
		PACK I 1
		PACK H 1 
		PACK G 1 
		PACK F 1 
		PACK E 1 
		PACK D 1 A_PlaySoundEx("pack/heatup","Weapon")
		PACK C 1
		PACK B 1
		PACK A 0 A_JumpIfInventory("GBCancel",1,"Downgrade")
		PACK A 1 A_WeaponReady
		Goto Ready + 9
	Select:
		TNT1 A 1 A_Raise
		Loop
	Deselect:
		PACK B 1 
		PACK C 1 
		PACK D 1 
		PACK E 1 
		PACK F 1
		PACK G 1 
		PACK H 1 
		PACK I 1 
		PACK J 1 
		TNT1 A 1 A_Lower 
	Goto Deselect+9
	Fire:
		PACK D 0 A_JumpIfNoAmmo("Firefail")
		PACK B 1 
		PACK C 1
		PACK D 1
		PACK L 3
		PAC2 E 3 A_PlaySoundEx("pack/change1","Weapon")
		Goto Hold
	Hold:
		PAC2 E 0 A_JumpIfNoAmmo("Firefail2")
		TNT1 A 0 A_PlayWeaponSound("GBSoul")
		TNT1 A 0 A_TakeInventory("ProtonCharge",10)
		PAC2 E 4 Bright A_CustomPunch(6, 1, 0, "GBSoulScepterPuff", 400, 1)
		PAC2 E 4 Bright
		PAC2 E 4 Bright A_CustomPunch(6, 1, 0, "GBSoulScepterPuff", 400, 1)
		PAC2 E 4 Bright
		PAC2 E 4 Bright A_CustomPunch(6, 1, 0, "GBSoulScepterPuff", 400, 1)
		PAC2 E 3 A_Refire
		PAC2 E 3 A_ClearReFire
		PACK M 3 A_PlaySoundEx("pack/change1","Weapon")
		PACK CBA 1
		Goto Ready+9
	Firefail:
		PACK U 0 A_ClearReFire
		PACK A 18 A_PlaySoundEx("weapons/cyborgfail","Weapon")
		Goto Ready+9
	Firefail2:
		PAC2 E 0 A_ClearReFire
		PAC2 E 18 A_PlaySoundEx("weapons/cyborgfail","Weapon")
		PAC2 E 3 A_PlaySoundEx("pack/change1","Weapon")
		PACK M 3
		PACK L 2
		PACK CBA 1
		goto Ready+9
	Downgrade:
		PACK B 1 
		PACK C 1 
		PACK D 1 
		PACK E 1 
		PACK F 1
		PACK G 1 
		PACK H 1 
		PACK I 1
		PACK J 1
		PACK J 20 ACS_ExecuteAlways(981,0)
		Goto Ready
	}
}

Actor GBSoulScepterPuff
{
  Radius 3
  Height 3
  +NoClip
  +AlwaysPuff
  +PuffOnActors
  +NoGravity
  +BloodlessImpact
  -BloodSplatter
  +DontSplash
  +PUFFGETSOWNER
  Obituary "%o was zapped by %k's proton pack."
  Damagetype "Proton"
  States
  {
  Spawn:
  Melee:
    SSPF ABCD 1 Bright A_SpawnItemEx("HunterFreezeSlow",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
    Stop
  XDeath:
	TNT1 A 0 A_GiveToTarget("HitBeep",1)
    SSPF ABCD 1 Bright A_SpawnItemEx("HunterFreezeSlow",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
    Stop
  Death:
    TNT1 A 0 A_SpawnItemEx("HunterFreezeSlow",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
    Stop
  }
}

Actor GhostBusterTerrorPuppet : GhostBusterPlasma
{
	Weapon.AmmoUse 1
	States
	{
	Spawn:
		BPAK A 400
		Loop
	Ready:
		PACK J 1
		PACK I 1
		PACK H 1 
		PACK G 1 
		PACK F 1 
		PACK E 1 
		PACK D 1 A_PlaySoundEx("pack/heatup","Weapon")
		PACK C 1
		PACK B 1
		PACK A 0 A_JumpIfInventory("GBCancel",1,"Downgrade")
		PACK A 1 A_WeaponReady
		Goto Ready + 9
	Select:
		TNT1 A 1 A_Raise
		Loop
	Deselect:
		PACK B 1 
		PACK C 1 
		PACK D 1 
		PACK E 1 
		PACK F 1
		PACK G 1 
		PACK H 1 
		PACK I 1 
		PACK J 1 
		TNT1 A 1 A_Lower 
		Goto Deselect+9
	Fire:
PACK D 0 A_JumpIfNoAmmo("Firefail")
PACK B 1 
PACK C 1
PACK D 1
PACK L 3
PACK M 3 A_PlaySoundEx("pack/change1","Weapon")
PACK Q 3
PACK P 2
		Goto Hold
	Hold:
		PACK P 0 A_JumpIfNoAmmo("Firefail2")
		PACK P 0 offset (30, 62) A_TakeInventory("ProtonCharge",50)
		PACK P 0 offset (30, 62) A_FireCustomMissile("GBPuppetString", 0, 0, 8)
		PACK P 6 offset (30, 62)
		PACK P 6 offset (20, 52)
		PACK P 6 offset (10, 47) 
		PACK P 4 A_Refire
		PACK Q 3 A_ClearReFire
		PACK M 3 A_PlaySoundEx("pack/change1","Weapon")
		PACK CBA 1
		Goto Ready+9
	Firefail:
		PACK P 0 A_ClearReFire
		PACK A 18 A_PlaySoundEx("weapons/cyborgfail","Weapon")
		Goto Ready+9
	Firefail2:
		PACK D 0 A_ClearReFire
		PACK P 18 A_PlaySound("weapons/cyborgfail")
		PACK Q 3 A_PlaySoundEx("pack/change1","Weapon")
		PACK M 3
		PACK L 2
		PACK CBA 1
		goto Ready+9
	Downgrade:
		PACK B 1 
		PACK C 1 
		PACK D 1 
		PACK E 1 
		PACK F 1
		PACK G 1 
		PACK H 1 
		PACK I 1
		PACK J 1
		PACK J 20 ACS_ExecuteAlways(981,0)
		Goto Ready
	}
}

Actor GBPuppetString
{
	PROJECTILE
	+FLOORHUGGER
	+RIPPER
	+BLOODLESSIMPACT
	Speed 15
	Damage (0)
	Radius 6
	Height 16
	reactiontime 80
	Obituary "%o was zapped by %k's proton pack."
	SeeSound "pupp/string1"
	states
	{
	Spawn:
		TNT1 A 1 A_SpawnItemEx("GBPuppetStringMissile",0,0,0,momx,momy,32,0,SXF_ABSOLUTEMOMENTUM)//A_CustomMissile("PuppetStringMissile",0,0,0,CMF_TRACKOWNER|CMF_AIMDIRECTION,90)
		TNT1 A 0 A_PlaySoundEx("pupp/stringloop","body",0,-1)
		TNT1 A 0 A_CountDown
		loop
	Death:
		TNT1 A 1  A_PlaySoundEx("pupp/string2","body",0)
		stop
	}
}

Actor GBPuppetStringMissile : FastProjectile
{
	PROJECTILE
	+RIPPER
	+BLOODLESSIMPACT
	+FORCEYBILLBOARD
	DamageType "GBString"
	speed 75
	damage (3)
	Obituary "%o was zapped by %k's proton pack."
	radius 6
	height 16
	xscale 0.3
	states
	{
	Spawn:
		//TNT1 A 1
		STRI A 1 bright
		loop
		//goto Spawn+1
	Death:
		TNT1 A 1
		stop
	}
}



Actor GBWolfDog
{
	PROJECTILE
	+FLOORCLIP
	-NOGRAVITY
	+FLOORHUGGER
	+BLOODSPLATTER
	Damage (20)
	Speed 25
	SeeSound "dog/spawn"
	Radius 16
	Height 18
	Scale 0.6
	Obituary "%o was zapped by %k's proton pack."
	renderstyle translucent
	alpha 0.9
	states
	{
	Spawn:
		WDOG AA 1 A_SpawnItemEx("WolfDogShadow_A")
		WDOG BB 1 A_SpawnItemEx("WolfDogShadow_B")
		WDOG CC 1 A_SpawnItemEx("WolfDogShadow_C")
		WDOG DD 1 A_SpawnItemEx("WolfDogShadow_D")
		WDOG EE 1 A_SpawnItemEx("WolfDogShadow_E")
		WDOG FF 1 A_SpawnItemEx("WolfDogShadow_F")
		WDOG F 0 A_PlaySoundEx("dog/walk","body",0)
		WDOG AA 1 A_SpawnItemEx("WolfDogShadow_A")
		WDOG BB 1 A_SpawnItemEx("WolfDogShadow_B")
		WDOG CC 1 A_SpawnItemEx("WolfDogShadow_C")
		WDOG DD 1 A_SpawnItemEx("WolfDogShadow_D")
		WDOG EE 1 A_SpawnItemEx("WolfDogShadow_E")
		WDOG FF 1 A_SpawnItemEx("WolfDogShadow_F")
		WDOG F 0 A_PlaySoundEx("dog/walk","body",0)
		WDOG AA 1 A_SpawnItemEx("WolfDogShadow_A")
		WDOG BB 1 A_SpawnItemEx("WolfDogShadow_B")
		WDOG CC 1 A_SpawnItemEx("WolfDogShadow_C")
		WDOG DD 1 A_SpawnItemEx("WolfDogShadow_D")
		WDOG EE 1 A_SpawnItemEx("WolfDogShadow_E")
		WDOG FF 1 A_SpawnItemEx("WolfDogShadow_F")
		WDOG F 0 A_PlaySoundEx("dog/walk","body",0)
		WDOG AA 1 A_SpawnItemEx("WolfDogShadow_A")
		WDOG BB 1 A_SpawnItemEx("WolfDogShadow_B")
		WDOG CC 1 A_SpawnItemEx("WolfDogShadow_C")
		WDOG DD 1 A_SpawnItemEx("WolfDogShadow_D")
		WDOG EE 1 A_SpawnItemEx("WolfDogShadow_E")
		WDOG FF 1 A_SpawnItemEx("WolfDogShadow_F")
		WDOG F 0 A_Stop
		goto Death
	Death:
		WDSH C 0 A_PlaySoundEx("dog/vanish","body",0)
		WDSH C 1 A_Fadeout(0.03)
		goto Death+1
	XDeath:
		TNT1 A 0 A_GiveToTarget("HitBeep",1)
		WDSH C 0 A_PlaySoundEx("dog/hit","body",0)
		WDSH C 1 A_Fadeout(0.03)
		goto XDeath+1
	}
}

Actor GhostBusterNarake : GhostBusterPlasma
{
	Weapon.AmmoUse 6
	States
	{
	Spawn:
		BPAK A 400
		Loop
	Ready:
		PACK J 1
		PACK I 1
		PACK H 1 
		PACK G 1 
		PACK F 1 
		PACK E 1 
		PACK D 1 A_PlaySoundEx("pack/heatup","Weapon")
		PACK C 1
		PACK B 1
		PACK A 0 A_JumpIfInventory("GBCancel",1,"Downgrade")
		PACK A 1 A_WeaponReady
		Goto Ready + 9
	Select:
		TNT1 A 1 A_Raise
		Loop
	Deselect:
		PACK B 1 
		PACK C 1 
		PACK D 1 
		PACK E 1 
		PACK F 1
		PACK G 1 
		PACK H 1 
		PACK I 1 
		PACK J 1 
		TNT1 A 1 A_Lower 
	Goto Deselect+9
	Fire:
		PACK D 0 A_JumpIfNoAmmo("Firefail")
		PACK B 1 
		PACK C 1
		PACK D 1
		PACK L 3
		PAC2 E 3 A_PlaySoundEx("pack/change1","Weapon")
		Goto Hold
	Hold:
		PAC2 E 0 A_JumpIfNoAmmo("Firefail2")
		PAC2 E 0 A_TakeInventory("ProtonCharge",30)
		PAC2 A 1 A_FireCustomMissile("GBWolfDog", 0, 0, 8)
		PAC2 B 3
		PAC2 C 3
		PAC2 D 3
		PAC2 A 3
		PAC2 E 3 A_Refire
		PAC2 E 3 A_ClearReFire
		PACK M 3 A_PlaySoundEx("pack/change1","Weapon")
		PACK CBA 1
		Goto Ready+9
	Firefail:
		PACK U 0 A_ClearReFire
		PACK A 18 A_PlaySoundEx("weapons/cyborgfail","Weapon")
		Goto Ready+9
	Firefail2:
		PAC2 E 0 A_ClearReFire
		PAC2 E 18 A_PlaySoundEx("weapons/cyborgfail","Weapon")
		PAC2 E 3 A_PlaySoundEx("pack/change1","Weapon")
		PACK M 3
		PACK L 2
		PACK CBA 1
		goto Ready+9
	Downgrade:
		PACK B 1 
		PACK C 1 
		PACK D 1 
		PACK E 1 
		PACK F 1
		PACK G 1 
		PACK H 1 
		PACK I 1
		PACK J 1
		PACK J 20 ACS_ExecuteAlways(981,0)
		Goto Ready
	}
}

actor GhostBusterBlazeSpawn : GhostBusterPlasma
{
Weapon.AmmoUse 50//6
+NOAUTOFIRE
states
{
Spawn:
BPAK A 400
Loop
Ready:
PACK J 1
PACK I 1
PACK H 1 
PACK G 1 
PACK F 1 
PACK E 1 
PACK D 1 A_PlaySoundEx("pack/heatup","Weapon")
PACK C 1
PACK B 1
PACK A 0 A_JumpIfInventory("GBCancel",1,"Downgrade")
PACK A 1 A_WeaponReady
Goto Ready + 9
Select:
TNT1 A 1 A_Raise
Loop
Deselect:
PACK B 1 
PACK C 1 
PACK D 1 
PACK E 1 
PACK F 1
PACK G 1 
PACK H 1 
PACK I 1 
PACK J 1 
TNT1 A 1 A_Lower 
Goto Deselect+9
Fire:
PACK D 0 A_JumpIfNoAmmo("Firefail")
PACK B 1 
PACK C 1
PACK D 1
PACK L 3
PACK M 3 A_PlaySoundEx("pack/change1","Body")
PACK T 3
PACK U 2
PACK D 0 A_JumpIfNoAmmo("Firefail2")
Goto Hold
Hold:
PACK O 0 A_PlayWeaponSound("SPRKFM1")
PACK U 0 A_FireCustomMissile("GBCombustionPellet2", 0, 0, 6, 0)
PACK U 3 A_FireCustomMissile("GBCombustionPellet", 0, 1, 6, 0)
PACK U 1 offset (0, 37)
PACK U 1 offset (5, 42)
PACK U 1 offset (10, 47)
PACK U 1 offset (15, 75)
PACK U 1 offset (20, 52)
PACK U 1 offset (25, 57)
PACK U 1 offset (30, 62)
PACK U 1 offset (25, 57)
PACK U 1 offset (20, 52)
PACK U 1 offset (15, 75)
PACK U 1 offset (10, 47)
PACK U 1 offset (5, 42)
PACK U 1 offset (0, 37)
PACK U 1 offset (0, 32)
PACK U 25
PACK U 1 
PACK T 1
PACK M 3 A_PlaySoundEx("pack/change1","Body")
PACK CBA 1
Goto Ready+9
Firefail:
PACK U 0 A_ClearReFire
PACK A 18 A_PlaySound("weapons/cyborgfail",1)
Goto Ready+9
Firefail2:
PACK D 0 A_ClearReFire
PACK U 18 A_PlaySound("weapons/cyborgfail",1)
PACK T 3 A_PlaySoundEx("pack/change1","Body")
PACK M 3
PACK L 2
PACK CBA 1
goto Ready+9
Downgrade:
PACK B 1 
PACK C 1 
PACK D 1 
PACK E 1 
PACK F 1
PACK G 1 
PACK H 1 
PACK I 1
PACK J 1
PACK J 20 ACS_ExecuteAlways(981,0)
Goto Ready
}
}

ACTOR GBCombustionPellet
{
   Speed 70
   Damage (30)
   Height 20
   Radius 20
   DeathSound "SPRKBM1"
   Obituary "%o was zapped by %k's proton pack."
   Projectile
   +SEEKERMISSILE
   States
   {
   Spawn:
      SPPJ A 10 BRIGHT A_SpawnItemEx("CombustionAttackTrail", 0, 0, 0, 0, 0, 0, 0, 128)
	  TNT1 A 0 A_Playsound("SPRKXM1",3,1,0,ATTN_NONE)
      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,209)
	  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_Playsound("SPRKBM1",3,1,0)
      TNT1 AA 0 A_SpawnItemEx("SuperMissileExplosionLarge",0,0,0,0,0,0,0,160)
      TNT1 A 0 A_SpawnItemEx("MSuperMissileExplosionVeryLarge",0,0,0,0,0,0,0,160)
      TNT1 A 1 A_Explode(40,148)
      Stop 
   } 
} 

ACTOR GBCombustionPellet2
{
   Speed 63
   Damage (0)
   Height 20
   Radius 20
   DeathSound "SPRKBM1"
   DamageType "Proton"
   Obituary "%o was zapped by %k's proton pack."
   Projectile
   States
   {
   Spawn:
      TNT1 A 1 Bright A_SpawnItemEx("BlazeSpawnFiringTrail",0,0,1,0,0,0,0,160)
	  TNT1 A 0 A_SpawnItemEx("BlazeSpawnFiringTrail",0,0,1,random(-50,50)/100.00,random(-50,50)/100.00,random(-50,50)/100.00,0,160)
      loop
   Death:
      TNT1 A 0
      Stop 
   } 
}

actor BotGhostBusterPlasma : GhostBusterPlasma//Weapon
{
Weapon.SlotNumber 1
Weapon.SelectionOrder 100
inventory.icon "GBGUN1"
Weapon.AmmoUse 1
Weapon.AmmoGive 200
Weapon.AmmoType "ProtonCharge"
obituary "%o was zapped by %k's proton pack."
+WEAPON.NOAUTOAIM
//Weapon.AmmoGive2 0
//Weapon.AmmoType2 "TrapAmmo"
Inventory.PickupMessage "You got the Proton Pack!"
+INVENTORY.UNDROPPABLE
+AMMO_OPTIONAL
States
{
Spawn:
BPAK A 400
Loop
Ready:
PACK J 1
PACK I 1
PACK H 1 
PACK G 1 
PACK F 1 
PACK E 1 
PACK D 1 A_PlaySoundEx("pack/heatup","Weapon")
PACK C 1
PACK B 1
PACK D 0 A_TakeInventory("BotAttack",255)
PACK D 0 A_GiveInventory("BotReady",1)
PACK A 0 A_JumpIfInventory("GBCancel",1,"Downgrade")
PACK A 1 A_WeaponReady
Goto Ready + 9
Fire:
PACK D 0 A_JumpIfNoAmmo("Firefail")
PACK D 0 A_GiveInventory("BotAttack",1)
PACK D 0 A_TakeInventory("BotReady",255)
PACK B 1 
PACK C 1
PACK D 1
Goto Hold
Hold:
PACK D 0 A_JumpIfNoAmmo("Firefail2")
PACK D 3 A_FireCustomMissile("GhostbusterBall", 0, 1, 8, 3)//2
PACK D 3 A_FireCustomMissile("GhostbusterBall", 0, 0, 8, 3)//2
TNT1 A 0 A_Jump(12,"ThrowTrap")//35
PACK D 1 A_Refire
PACK D 3 A_ClearReFire
PACK CBA 1
Goto Ready+9
ThrowTrap:
//TRAP C 0 A_JumpIfInventory("GhostTrapCheck",1,"NewTrap")
//TRAP C 0 A_JumpIfNoAmmo("NoAmmo")
TNT1 A 0 A_JumpIfInventory("GBTrapDelayer",1,"Hold")
PACK J 0 A_GiveInventory("GhostTrapCheck",1)
PACK J 0 A_GiveInventory("GBTrapDelayer",1)
PACK J 1 offset (0, 40)
PACK J 1 offset (0, 50)
PACK J 1 offset (0, 60)
PACK J 1 offset (0, 70)
PACK J 1 offset (0, 80)
PACK J 1 offset (0, 90)
TRAP A 1 offset (0, 60) //A_JumpIfNoAmmo("RaiseDet")
TRAP A 1 offset (0, 50)
TRAP A 1 offset (0, 40)
TRAP A 0 offset (0, 0) //A_TakeInventory("TrapAmmo",1)
TRAP B 1 offset (0, 0) A_SpawnItemEx("GhostTrap", 16, 4, 32, 6, 0, 0, 0, 16, 0)
TRAP B 1 offset (0, 20)
TRAP B 1 offset (0, 30)
TRAP B 1 offset (0, 40)
TRAP B 1 offset (0, 50)
TRAP B 1 offset (0, 60)
TRAP B 1 offset (0, 70) A_GiveInventory("DetonateCheck",1)
TRAP B 1 offset (0, 80) 
TRAP B 1 offset (0, 90)
TRAP B 1 offset (0, 100)//
PACK J 1 offset (0, 100)
PACK J 1 offset (0, 90)
PACK J 1 offset (0, 80)
PACK J 1 offset (0, 70)
PACK J 1 offset (0, 60)
PACK J 1 offset (0, 50)
PACK J 1 offset (0, 40) A_TakeInventory("DetonateCheck",100)
//TNT1 AAA 1 offset (0, 100) A_WeaponReady
Goto Fire
Firefail:
PACK D 0 A_GiveInventory("BotAttack",1)
//PACK D 0 A_GiveInventory("BotReady",1)
PACK D 0 A_ClearReFire
PACK A 18 A_PlaySoundEx("weapons/cyborgfail","Voice")
Goto Ready+9
Firefail2:
PACK D 0 A_GiveInventory("BotAttack",1)
//PACK D 0 A_GiveInventory("BotReady",1)
PACK D 0 A_ClearReFire
PACK D 18 A_PlaySoundEx("weapons/cyborgfail","Voice")
PACK CBA 1
goto Ready+9
}
}

actor BotGhostBusterEcho : GhostBusterPlasma
{
Weapon.AmmoUse 4//6
inventory.icon "GBGUN3"
states
{
Spawn:
BPAK A 400
Loop
Ready:
PACK J 1
PACK I 1
PACK H 1 
PACK G 1 
PACK F 1 
PACK E 1 
PACK D 1 A_PlaySoundEx("pack/heatup","Weapon")
PACK C 1
PACK B 1
PACK D 0 A_TakeInventory("BotAttack",255)
PACK D 0 A_GiveInventory("BotReady",1)
PACK A 0 A_JumpIfInventory("GBCancel",1,"Downgrade")
PACK A 1 A_WeaponReady
Goto Ready + 9
Select:
TNT1 A 1 A_Raise
Loop
Deselect:
PACK B 1 
PACK C 1 
PACK D 1 
PACK E 1 
PACK F 1
PACK G 1 
PACK H 1 
PACK I 1 
PACK J 1 
TNT1 A 1 A_Lower 
Goto Deselect+9
Fire:
PACK D 0 A_JumpIfNoAmmo("Firefail")
PACK D 0 A_GiveInventory("BotAttack",1)
PACK D 0 A_TakeInventory("BotReady",255)
PACK B 1 
PACK C 1
PACK D 1
PACK L 3
PACK M 3 A_PlaySoundEx("pack/change1","Weapon")
PACK T 3
PACK U 2
Goto Hold
Hold:
PACK D 0 A_JumpIfNoAmmo("Firefail2")
PACK O 0 A_PlaySoundEx("echoshot","Weapon")
PACK U 1 A_FireCustomMissile("EchoShot", 0, 1, 0, 3)
PACK U 1 offset (0, 37)
PACK U 1 offset (5, 42)
PACK U 1 offset (10, 47)
PACK U 1 offset (15, 75)
PACK U 1 offset (20, 52)
PACK U 1 offset (25, 57)
PACK U 1 offset (30, 62)
PACK U 1 offset (25, 57)
PACK U 1 offset (20, 52)
PACK U 1 offset (15, 75)
PACK U 1 offset (10, 47)
PACK U 1 offset (5, 42)
PACK U 1 offset (0, 37)
PACK U 3 offset (0, 32)
TNT1 A 0 A_Jump(12,"ThrowTrap")
PACK D 0 //A_JumpIfNoAmmo("Firefail4")
PACK U 1 A_Refire
PACK T 3 A_ClearReFire
PACK M 3 A_PlaySoundEx("pack/change1","Weapon")
PACK CBA 1
Goto Ready+9
Firefail:
PACK D 0 A_GiveInventory("BotAttack",1)
//PACK D 0 A_GiveInventory("BotReady",1)
PACK U 0 A_ClearReFire
PACK A 18 A_PlaySound("weapons/cyborgfail")
Goto Ready+9
Firefail2:
PACK D 0 A_GiveInventory("BotAttack",1)
//PACK D 0 A_GiveInventory("BotReady",1)
PACK D 0 A_ClearReFire
PACK U 18 A_PlaySound("weapons/cyborgfail")
PACK T 3 A_PlaySoundEx("pack/change1","Weapon")
PACK M 3
PACK L 2
PACK CBA 1
goto Ready+9
Downgrade:
PACK B 1 
PACK C 1 
PACK D 1 
PACK E 1 
PACK F 1
PACK G 1 
PACK H 1 
PACK I 1
PACK J 1
PACK J 20 ACS_ExecuteAlways(981,0)
Goto Ready
ThrowTrap:
//TRAP C 0 A_JumpIfInventory("GhostTrapCheck",1,"NewTrap")
//TRAP C 0 A_JumpIfNoAmmo("NoAmmo")
TNT1 A 0 A_JumpIfInventory("GBTrapDelayer",1,"Hold")
PACK J 0 A_GiveInventory("GhostTrapCheck",1)
PACK J 0 A_GiveInventory("GBTrapDelayer",1)
PACK J 1 offset (0, 40)
PACK J 1 offset (0, 50)
PACK J 1 offset (0, 60)
PACK J 1 offset (0, 70)
PACK J 1 offset (0, 80)
PACK J 1 offset (0, 90)
TRAP A 1 offset (0, 60) //A_JumpIfNoAmmo("RaiseDet")
TRAP A 1 offset (0, 50)
TRAP A 1 offset (0, 40)
TRAP A 0 offset (0, 0) //A_TakeInventory("TrapAmmo",1)
TRAP B 1 offset (0, 0) A_SpawnItemEx("GhostTrap", 16, 4, 32, 6, 0, 0, 0, 16, 0)
TRAP B 1 offset (0, 20)
TRAP B 1 offset (0, 30)
TRAP B 1 offset (0, 40)
TRAP B 1 offset (0, 50)
TRAP B 1 offset (0, 60)
TRAP B 1 offset (0, 70) A_GiveInventory("DetonateCheck",1)
TRAP B 1 offset (0, 80) 
TRAP B 1 offset (0, 90)
TRAP B 1 offset (0, 100)//
PACK J 1 offset (0, 100)
PACK J 1 offset (0, 90)
PACK J 1 offset (0, 80)
PACK J 1 offset (0, 70)
PACK J 1 offset (0, 60)
PACK J 1 offset (0, 50)
PACK J 1 offset (0, 40) A_TakeInventory("DetonateCheck",100)
//TNT1 AAA 1 offset (0, 100) A_WeaponReady
Goto Fire
}
}

actor BotGhostBusterBlood : GhostBusterPlasma
{
Weapon.AmmoUse 2
inventory.icon "GBGUN5"
states
{
Spawn:
BPAK A 400
Loop
Ready:
PACK J 1
PACK I 1
PACK H 1 
PACK G 1 
PACK F 1 
PACK E 1 
PACK D 1 A_PlaySoundEx("pack/heatup","Weapon")
PACK C 1
PACK B 1
PACK A 0 A_JumpIfInventory("GBCancel",1,"Downgrade")
PACK D 0 A_TakeInventory("BotAttack",255)
PACK D 0 A_GiveInventory("BotReady",1)
PACK A 1 A_WeaponReady
Goto Ready + 9
Select:
TNT1 A 1 A_Raise
Loop
Fire:
PACK D 0 A_JumpIfNoAmmo("Firefail")
PACK D 0 A_GiveInventory("BotAttack",1)
PACK D 0 A_TakeInventory("BotReady",255)
PACK B 1 
PACK C 1
PACK D 1 
PACK L 3
PACK M 3 A_PlaySoundEx("pack/change1","Weapon")
PACK N 3
PACK O 2
Goto Hold
Deselect:
PACK B 1 
PACK C 1 
PACK D 1 
PACK E 1 
PACK F 1
PACK G 1 
PACK H 1 
PACK I 1 
PACK J 1 
TNT1 A 1 A_Lower 
Goto Deselect+9
Hold:
PACK D 0 A_JumpIfNoAmmo("Firefail2")
PACK R 2 A_FireCustomMissile("BloodSlime", random(-3,3), 1, 0, 3)
PACK S 2 A_FireCustomMissile("BloodSlime", random(-3,3), 0, 0, 3)
PACK O 0 A_PlaySoundEx("Slime1","Weapon")
TNT1 A 0 A_Jump(12,"ThrowTrap")
PACK O 1 A_Refire
PACK N 3 A_ClearReFire
PACK M 3 A_PlaySoundEx("pack/change1","Weapon")
PACK CBA 1
Goto Ready+9
Firefail:
PACK D 0 A_GiveInventory("BotAttack",1)
//PACK D 0 A_GiveInventory("BotReady",1)
PACK A 0 A_ClearReFire
PACK A 18 A_PlaySoundEx("weapons/cyborgfail","Weapon")
Goto Ready+9
Firefail2:
PACK D 0 A_GiveInventory("BotAttack",1)
//PACK D 0 A_GiveInventory("BotReady",1)
PACK D 0 A_ClearReFire
PACK O 18 A_PlaySoundEx("weapons/cyborgfail","Weapon")
PACK N 3 A_PlaySoundEx("pack/change1","Weapon")
PACK M 3
PACK L 2
PACK CBA 1
goto Ready+9
Downgrade:
PACK B 1 
PACK C 1 
PACK D 1 
PACK E 1 
PACK F 1
PACK G 1 
PACK H 1 
PACK I 1
PACK J 1
PACK J 20 ACS_ExecuteAlways(981,0)
Goto Ready
ThrowTrap:
//TRAP C 0 A_JumpIfInventory("GhostTrapCheck",1,"NewTrap")
//TRAP C 0 A_JumpIfNoAmmo("NoAmmo")
TNT1 A 0 A_JumpIfInventory("GBTrapDelayer",1,"Hold")
PACK J 0 A_GiveInventory("GhostTrapCheck",1)
PACK J 0 A_GiveInventory("GBTrapDelayer",1)
PACK J 1 offset (0, 40)
PACK J 1 offset (0, 50)
PACK J 1 offset (0, 60)
PACK J 1 offset (0, 70)
PACK J 1 offset (0, 80)
PACK J 1 offset (0, 90)
TRAP A 1 offset (0, 60) //A_JumpIfNoAmmo("RaiseDet")
TRAP A 1 offset (0, 50)
TRAP A 1 offset (0, 40)
TRAP A 0 offset (0, 0) //A_TakeInventory("TrapAmmo",1)
TRAP B 1 offset (0, 0) A_SpawnItemEx("GhostTrap", 16, 4, 32, 6, 0, 0, 0, 16, 0)
TRAP B 1 offset (0, 20)
TRAP B 1 offset (0, 30)
TRAP B 1 offset (0, 40)
TRAP B 1 offset (0, 50)
TRAP B 1 offset (0, 60)
TRAP B 1 offset (0, 70) A_GiveInventory("DetonateCheck",1)
TRAP B 1 offset (0, 80) 
TRAP B 1 offset (0, 90)
TRAP B 1 offset (0, 100)//
PACK J 1 offset (0, 100)
PACK J 1 offset (0, 90)
PACK J 1 offset (0, 80)
PACK J 1 offset (0, 70)
PACK J 1 offset (0, 60)
PACK J 1 offset (0, 50)
PACK J 1 offset (0, 40) A_TakeInventory("DetonateCheck",100)
//TNT1 AAA 1 offset (0, 100) A_WeaponReady
Goto Fire
}
}

actor BotGhostBusterIce : GhostBusterPlasma
{
Weapon.AmmoUse 6//8
inventory.icon "GBGUN6"
states
{
Spawn:
BPAK A 400
Loop
Ready:
PACK J 1
PACK I 1
PACK H 1 
PACK G 1 
PACK F 1 
PACK E 1 
PACK D 1 A_PlaySoundEx("pack/heatup","Weapon")
PACK C 1
PACK B 1
PACK A 0 A_JumpIfInventory("GBCancel",1,"Downgrade")
PACK D 0 A_TakeInventory("BotAttack",255)
PACK D 0 A_GiveInventory("BotReady",1)
PACK A 1 A_WeaponReady
Goto Ready + 9
Select:
TNT1 A 1 A_Raise
Loop
Deselect:
PACK B 1 
PACK C 1 
PACK D 1 
PACK E 1 
PACK F 1
PACK G 1 
PACK H 1 
PACK I 1 
PACK J 1 
TNT1 A 1 A_Lower 
Goto Deselect+9
Fire:
PACK D 0 A_JumpIfNoAmmo("Firefail")
PACK D 0 A_GiveInventory("BotAttack",1)
PACK D 0 A_TakeInventory("BotReady",255)
PACK B 1 
PACK C 1
PACK D 1
PACK L 3
PAC2 E 3 A_PlaySoundEx("pack/change1","Weapon")
Goto Hold
Hold:
PAC2 E 0 A_JumpIfNoAmmo("Firefail2")
PAC2 E 0 A_TakeInventory("ProtonCharge",6)//8
TNT1 A 0 A_PlayWeaponSound("icerain")
PAC2 ABCDCBA 2 A_SpawnItemEx("IceFallSpawner", random(-200,200), random(-200,200), 9999,0,0,0,0,SXF_NOCHECKPOSITION)
TNT1 A 0 A_Jump(12,"ThrowTrap")
PAC2 E 3 A_Refire
PAC2 E 3 A_ClearReFire
PACK M 3 A_PlaySoundEx("pack/change1","Weapon")
PACK CBA 1
Goto Ready+9
Firefail:
PACK D 0 A_GiveInventory("BotAttack",1)
//PACK D 0 A_GiveInventory("BotReady",1)
PACK U 0 A_ClearReFire
PACK A 18 A_PlaySoundEx("weapons/cyborgfail","Weapon")
Goto Ready+9
Firefail2:
PACK D 0 A_GiveInventory("BotAttack",1)
//PACK D 0 A_GiveInventory("BotReady",1)
PAC2 E 0 A_ClearReFire
PAC2 E 18 A_PlaySoundEx("weapons/cyborgfail","Weapon")
PAC2 E 3 A_PlaySoundEx("pack/change1","Weapon")
PACK M 3
PACK L 2
PACK CBA 1
goto Ready+9
Downgrade:
PACK B 1 
PACK C 1 
PACK D 1 
PACK E 1 
PACK F 1
PACK G 1 
PACK H 1 
PACK I 1
PACK J 1
PACK J 20 ACS_ExecuteAlways(981,0)
Goto Ready
ThrowTrap:
//TRAP C 0 A_JumpIfInventory("GhostTrapCheck",1,"NewTrap")
//TRAP C 0 A_JumpIfNoAmmo("NoAmmo")
TNT1 A 0 A_JumpIfInventory("GBTrapDelayer",1,"Hold")
PACK J 0 A_GiveInventory("GhostTrapCheck",1)
PACK J 0 A_GiveInventory("GBTrapDelayer",1)
PACK J 1 offset (0, 40)
PACK J 1 offset (0, 50)
PACK J 1 offset (0, 60)
PACK J 1 offset (0, 70)
PACK J 1 offset (0, 80)
PACK J 1 offset (0, 90)
TRAP A 1 offset (0, 60) //A_JumpIfNoAmmo("RaiseDet")
TRAP A 1 offset (0, 50)
TRAP A 1 offset (0, 40)
TRAP A 0 offset (0, 0) //A_TakeInventory("TrapAmmo",1)
TRAP B 1 offset (0, 0) A_SpawnItemEx("GhostTrap", 16, 4, 32, 6, 0, 0, 0, 16, 0)
TRAP B 1 offset (0, 20)
TRAP B 1 offset (0, 30)
TRAP B 1 offset (0, 40)
TRAP B 1 offset (0, 50)
TRAP B 1 offset (0, 60)
TRAP B 1 offset (0, 70) A_GiveInventory("DetonateCheck",1)
TRAP B 1 offset (0, 80) 
TRAP B 1 offset (0, 90)
TRAP B 1 offset (0, 100)//
PACK J 1 offset (0, 100)
PACK J 1 offset (0, 90)
PACK J 1 offset (0, 80)
PACK J 1 offset (0, 70)
PACK J 1 offset (0, 60)
PACK J 1 offset (0, 50)
PACK J 1 offset (0, 40) A_TakeInventory("DetonateCheck",100)
//TNT1 AAA 1 offset (0, 100) A_WeaponReady
Goto Fire
}
}

actor BotGhostBusterSoul : GhostBusterPlasma
{
Weapon.AmmoUse 7//10
inventory.icon "GBGUN2"
states
{
Spawn:
BPAK A 400
Loop
Ready:
PACK J 1
PACK I 1
PACK H 1 
PACK G 1 
PACK F 1 
PACK E 1 
PACK D 1 A_PlaySound("pack/heatup")
PACK C 1
PACK B 1
PACK A 0 A_JumpIfInventory("GBCancel",1,"Downgrade")
PACK D 0 A_TakeInventory("BotAttack",255)
PACK D 0 A_GiveInventory("BotReady",1)
PACK A 1 A_WeaponReady
Goto Ready + 9
Select:
TNT1 A 1 A_Raise
Loop
Deselect:
PACK B 1 
PACK C 1 
PACK D 1 
PACK E 1 
PACK F 1
PACK G 1 
PACK H 1 
PACK I 1 
PACK J 1 
TNT1 A 1 A_Lower 
Goto Deselect+9
Fire:
PACK D 0 A_JumpIfNoAmmo("Firefail")
PACK D 0 A_GiveInventory("BotAttack",1)
PACK D 0 A_TakeInventory("BotReady",255)
PACK B 1 
PACK C 1
PACK D 1 
PACK L 3
PACK M 3 A_PlaySound("pack/change1")
PACK V 3
PACK W 2
Goto Hold
Hold:
PACK W 0 A_JumpIfNoAmmo("Firefail2")
PACK W 0 A_TakeInventory("ProtonCharge",5)
PACK W 2 A_FireCustomMissile("SoulBlast", 0, 0, 6, 3)
PACK W 1 offset (0, 32)
PACK W 1 offset (8, 37)
PACK W 1 offset (11, 42)
PACK W 1 offset (8, 37)
PACK W 1 offset (0, 32)
TNT1 A 0 A_Jump(12,"ThrowTrap")
PACK W 1 A_Refire
PACK V 3 A_ClearReFire
PACK M 3 A_PlaySound("pack/change1")
PACK CBA 1
Goto Ready+9
Firefail:
PACK D 0 A_GiveInventory("BotAttack",1)
//PACK D 0 A_GiveInventory("BotReady",1)
PACK A 0 A_ClearReFire
PACK A 18 A_PlaySound("weapons/cyborgfail")
Goto Ready+9
Firefail2:
PACK D 0 A_GiveInventory("BotAttack",1)
//PACK D 0 A_GiveInventory("BotReady",1)
PACK W 0 A_ClearReFire
PACK W 18 A_PlaySound("weapons/cyborgfail")
PACK V 3 A_PlaySound("pack/change1")
PACK M 3
PACK L 2
PACK CBA 1
goto Ready+9
Downgrade:
PACK B 1 
PACK C 1 
PACK D 1 
PACK E 1 
PACK F 1
PACK G 1 
PACK H 1 
PACK I 1
PACK J 1
PACK J 20 ACS_ExecuteAlways(981,0)
Goto Ready
ThrowTrap:
//TRAP C 0 A_JumpIfInventory("GhostTrapCheck",1,"NewTrap")
//TRAP C 0 A_JumpIfNoAmmo("NoAmmo")
TNT1 A 0 A_JumpIfInventory("GBTrapDelayer",1,"Hold")
PACK J 0 A_GiveInventory("GhostTrapCheck",1)
PACK J 0 A_GiveInventory("GBTrapDelayer",1)
PACK J 1 offset (0, 40)
PACK J 1 offset (0, 50)
PACK J 1 offset (0, 60)
PACK J 1 offset (0, 70)
PACK J 1 offset (0, 80)
PACK J 1 offset (0, 90)
TRAP A 1 offset (0, 60) //A_JumpIfNoAmmo("RaiseDet")
TRAP A 1 offset (0, 50)
TRAP A 1 offset (0, 40)
TRAP A 0 offset (0, 0) //A_TakeInventory("TrapAmmo",1)
TRAP B 1 offset (0, 0) A_SpawnItemEx("GhostTrap", 16, 4, 32, 6, 0, 0, 0, 16, 0)
TRAP B 1 offset (0, 20)
TRAP B 1 offset (0, 30)
TRAP B 1 offset (0, 40)
TRAP B 1 offset (0, 50)
TRAP B 1 offset (0, 60)
TRAP B 1 offset (0, 70) A_GiveInventory("DetonateCheck",1)
TRAP B 1 offset (0, 80) 
TRAP B 1 offset (0, 90)
TRAP B 1 offset (0, 100)//
PACK J 1 offset (0, 100)
PACK J 1 offset (0, 90)
PACK J 1 offset (0, 80)
PACK J 1 offset (0, 70)
PACK J 1 offset (0, 60)
PACK J 1 offset (0, 50)
PACK J 1 offset (0, 40) A_TakeInventory("DetonateCheck",100)
//TNT1 AAA 1 offset (0, 100) A_WeaponReady
Goto Fire
}
}

ACTOR Bloodslime
{
Radius		6
Height		12
Speed		60
Damage	(12)//9//20
PROJECTILE
-NOGRAVITY
renderstyle translucent
alpha 1.0
SeeSound ""
States
{
Spawn:
TNT1 A 0 
TNT1 A 2 ThrustThingZ (0, random(0,8), random(0,1), 1)
SLIM BC 3 A_SpawnItem("NashGore_FlyingBloodTrail",0,0,0,1)
SLIM C 0 A_FadeOut(0.05)
Goto Spawn+3
Death:
TNT1 A 3 A_PlaySound("Slime1")
Stop
}
}

actor GhostTrapCheck : Inventory
{
Inventory.PickupMessage "GO GO JESUS RANGERS!"
  Inventory.Amount 1
  Inventory.MaxAmount 1
  Inventory.Icon "CELLA0"
    States
  {
  Spawn:
    CELL A -1
    Stop
  }
}

actor DetonateCheck : Inventory
{
Inventory.PickupMessage "GO GO JESUS RANGERS!"
  Inventory.Amount 1
  Inventory.MaxAmount 1
  Inventory.Icon "CELLA0"
    States
  {
  Spawn:
    CELL A -1
    Stop
  }
}


actor Trapcount : Inventory
{
inventory.amount 1
inventory.maxamount 2275
states
{
Spawn:
PLAY A 1
loop
}
}

actor TrapAmmo : Ammo
{
  inventory.pickupmessage "Picked up a new trap."
  inventory.amount 1
  inventory.maxamount 25//50
  inventory.icon "GTRPE0"
  ammo.backpackamount 1
  ammo.backpackmaxamount 25
  +INVENTORY.IGNORESKILL
  states
  {
  Spawn:
    GTRP E -1
    stop
  }
}

actor GBTrapDelayer : PowerDamage
{
damagefactor "nothing", 1.0
powerup.duration 42//35//85
//inventory.icon "JMORPH"
}