// Decorate code for Geraldine
Actor Geraldine : PlayerPawn
{
     
+NOSKIN
+NOICEDEATH
+NODAMAGETHRUST
+QUICKTORETALIATE
+GHOST     
    Speed 1
    Health 100
    Radius 16
    Height 56
    Mass 700
	scale 0.9
    PainChance 256
    Player.ColorRange 112, 127
	Player.Maxhealth 100
	Player.Weaponslot 1, Geralpistol
	Player.Weaponslot 2, GeraldineRifle
	Player.Weaponslot 3, BHGen
	Player.Startitem "Clip1", 200
	Player.Startitem "Cell", 5
	Player.Startitem "SparkAmmo", 10
	Player.StartItem "BHGenElectroAmmo", 5
	Player.Startitem "GeraldineRifle"
	Player.Startitem "BHGen"
	Player.Startitem "Geralpistol"
    Player.DisplayName "Geraldine"
    Player.CrouchSprite "PLYC"
    Player.StartItem "IsHuman", 1
    Player.StartItem "Screamer", 0
    Player.ForwardMove 1.0, 1.0
    Player.SideMove 1.0, 1.0
    Player.SoundClass "Geraldine"
	Player.ScoreIcon "GERALST"
  Damagefactor "AntiAirbolt", 0.0
  Damagefactor "Sentinel", 0.0
	Damagefactor "GraveStalkerLure", 2.0
	Damagefactor "normal", 1.0
	Damagefactor "Sentinel", 0.0
	Damagefactor "MechPewPews", 0.0
	Damagefactor "MacheteSlicerino", 0.0
    Damagefactor "GasterSmokeHurt", 0.0
	Damagefactor "StrifeSuit", 0.0
    LimitedToTeam 0
    States
    {
 Spawn:
   GERL A 0 A_JumpIfInventory("GloomWatchStack",100,"GloomDeath")
   GERL A 45 Setplayerproperty(0,0,0)
   Loop
 See:
   GERL A 0 A_JumpIfInventory("GloomWatchStack",100,"GloomDeath")
   GERL A 0 A_JumpIfHealthlower(50,"INeedHealingSee")
   GERL A 5
   GERL B 5 A_SpawnItemEx ("GeraldineStomp", 0, 0, 0, 0, 0, -20, 0,0, 0)
   GERL C 5
   GERL D 5 A_SpawnItemEx ("GeraldineStomp", 0, 0, 0, 0, 0, -20, 0,0, 0)
   Goto Spawn
 INeedHealingSee:
   HUNT A 0 A_JumpIfInventory("GloomWatchStack",100,"GloomDeath")
   GERL A 0 A_SpawnItemEx("INeedHealingTrail",random(-20,20),random(-20,20),0,0,0,10)
   GERL A 5
   GERL B 5 A_SpawnItemEx ("GeraldineStomp", 0, 0, 0, 0, 0, -20, 0,0, 0)
   GERL C 5
   GERL D 5 A_SpawnItemEx ("GeraldineStomp", 0, 0, 0, 0, 0, -20, 0,0, 0)
   Goto Spawn
 Missile:
   GERL A 0 A_JumpIfInventory("GloomWatchStack",100,"GloomDeath")
   GERL F 6 Bright
   Goto Spawn
 Melee:
   GERL A 0 A_JumpIfInventory("GloomWatchStack",100,"GloomDeath")
   GERL F 6 Bright
   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)
	GERL 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)
	GERL 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 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)
	GERL 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_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.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:
	GERL A 0 A_JumpIfInventory("GloomWatchStack",100,"GloomDeath")
    GERL G 4
    GERL G 4 A_Pain
    Goto Spawn
	Pain.LoonaClawing:
	TNT1 A 0 A_GiveToTarget("Health",6)
	GERL G 20 Setplayerproperty(0,1,0)
	GERL 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)
	GERL G 20 Setplayerproperty(0,1,0)
	GERL 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)
	GERL G 20 Setplayerproperty(0,1,0)
	GERL 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.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.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
	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
  Pain.Creepstun:
    GERL G 0 A_Pain
	GERL G 0 A_GiveToTarget("health",5)
	GERL G 40 Setplayerproperty(0,1,0)
	GERL G 2 Setplayerproperty(0,0,0)
	Goto Spawn
  Death.Creeper:
	GERL A 0 A_PlaySoundEx("creeperattack", "Body")
	GERL A 0 A_SpawnItemEx("CreeperPopUp",0,0,10)
	GERL A 0 A_GiveToTarget("Creeperheal",1)
	TNT1 A 0 A_GiveToTarget("GhoulAmmo",1)
    GERL A 0 ACS_ExecuteAlways(997,0,1)
	goto DeathAnimAlt
  Death.Creepstun:
	GERL A 0 A_GiveToTarget("Unlock13",1)
	GERL A 0 A_GiveToTarget("CreepGotya",1)
	goto DeathAnimAlt
  Death.SjasScream:
  Death.FrostbiteWind:
  Death.EmtalicSaw:
  Death.LichFire:
    GERL A 0 A_GiveToTarget("KilledJ",1)
    Goto DeathAnim
  Death:
  DeathAnim:
	GERL A 0 A_GiveToTarget("KillBeep",1)
	GERL A 0 A_GiveInventory("ItemDeath",1)
	GERL A 0 A_TakeInventory("KilledCount",999)
    GERL A 0 A_GiveToTarget("KilledMe",1)
    GERL A 0 A_GiveToTarget("KilledGeraldine",1)
    GERL H 4
    GERL I 4 A_PlayerScream
    GERL J 4 A_NoBlocking
    GERL KLMNO 4
    GERL P -1
    Stop
  DeathAnimAlt:
	GERL A 0 A_GiveToTarget("KillIndicator",1)
	GERL A 0 A_GiveInventory("ItemDeath",1)
	GERL A 0 A_TakeInventory("KilledCount",999)
    GERL A 0 A_GiveToTarget("KilledMe",1)
    GERL A 0 A_GiveToTarget("KilledGeraldine",1)
    GERL H 4
    GERL I 4 A_PlayerScream
    GERL J 4 A_NoBlocking
    GERL KLMNO 4
    GERL P -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:
	GERL A 0 A_GiveToTarget("KillBeep",1)
	GERL A 0 A_GiveInventory("ItemDeath",1)
    GERL A 0 A_GiveToTarget("Crunched",1)
	GERL A 0 A_GiveToTarget("KilledMe",1)
	GERL A 0 A_GiveToTarget("KilledGeraldine",1)
	GERL 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 1 A_SpawnItemEx("GIBBER", 0, 0, 0, 0, 0, 0, 0, 160, 0)
	NULL A -1
	Stop
  Death.JitterAlt:
	GERL A 0 A_GiveToTarget("KillIndicator",1)
	GERL A 0 A_GiveInventory("ItemDeath",1)
    GERL A 0 A_GiveToTarget("Crunched",1)
	GERL A 0 A_GiveToTarget("KilledMe",1)
	GERL A 0 A_GiveToTarget("KilledGeraldine",1)
	GERL 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 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:
		GERL A 0 A_GiveToTarget("KilledR",1)
		GERL A 0 A_GiveToTarget("Health",100)
		GERL A 0 ACS_ExecuteAlways(997,0,2)
		GERL A 0 A_PlaySoundEx("RavagerAttack","Body")
		GERL A 0 A_SpawnItemEx("RavagerHit",0,0,32)
		Goto DeathAnimAlt
	Death.RavagerBall:
		GERL A 0 A_GiveToTarget("RavagerGotYa",1)
		GERL A 0 A_GiveToTarget("KilledJ",1)
		Goto DeathAnimAlt
	Death.Yurei:
		GERL A 0 A_GiveToTarget("KilledY",1)
		GERL A 0 A_PlaySoundEx("YureiKill1","Body",0,1)
		GERL A 0 ACS_ExecuteAlways(997,0,3)
		Goto DeathAnimAlt
	Death.YureiBall:
		GERL A 0 A_GiveToTarget("Health",10)
		GERL A 0 A_SpawnItemEx("BallFire")
		Goto Death.SjasScream
	Death.UboaRawrScream:
		Goto DeathAnimAlt
	Death.Misty:
	Death.Whiteface:
		GERL A 0 A_GiveToTarget("KillBeep",1)
		GERL A 0 A_GiveInventory("ItemDeath",1)
		GERL A 0 A_GiveToTarget("KilledMe",1)
		GERL A 0 A_GiveToTarget("KilledM",1)
		GERL HHHH 2 A_FadeOut(0.1)
		GERL A 0 A_PlayerScream
		GERL IIIIJJ 2 A_FadeOut(0.1)
		GERL A 0 A_NoBlocking
		NULL A -1
		Stop
	Death.Clowny:
		GERL A 0 ACS_ExecuteAlways(997,0,4)
		GERL A 0 A_GiveToTarget("KilledC",1)
		GERL A 0 A_GiveToTarget("ClownyAmmo",5)
		Goto DeathAnim
	Death.Mohoph:
		TNT1 A 0 A_GiveToTarget("MorphAmmo", 1)
		GERL A 0 A_GiveToTarget("TransGeraldine",1)
		GERL A 0 A_PlaySoundEx("MohophKill","Body")
		GERL A 0 ACS_ExecuteAlways(997,0,5)
		Goto DeathAnim
	Death.EmtalicWeak:
		GERL A 0 A_PlaySoundEx("RamSuccess","Body")
		Goto DeathAnim
	Death.Emtalic:
		GERL A 0  A_PlaySoundEx("RamSuccess","Body")
		Goto Death.Jitter
	Death.I1:
		GERL A 0 A_SpawnItemEx("Heart",0,0,32,random(2,3),momy,random(8,12),random(-180,180))
		GERL A 0 A_GiveToTarget("KilledI1",1)
		Goto DeathAnim
	Death.I2:
		GERL A 0 A_GiveToTarget("KillBeep",1)
		GERL A 0 A_GiveInventory("ItemDeath",1)
		GERL A 0 A_GiveToTarget("KilledMe",1)
		GERL A 0 A_GiveToTarget("KilledI2",1)
		GERL A 0 A_GiveToTarget("Clip",1)
		GERL G 0 SetPlayerProperty(0,1,4)
		GERL G 0 A_Stop
		GERL 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:
		GERL A 0 A_GiveToTarget("KillBeep",1)
		GERL A 0 A_GiveInventory("ItemDeath",1)
		GERL A 0 A_GiveToTarget("KilledMe",1)
		GERL A 0 A_GiveToTarget("KilledI3",1)
		GERL HHHHHHHH 1 A_SpawnItemEx("PainSmoke",0,random(-22,22),random(-22,22),random(2,4),momy,random(8,12),random(-180,180))
		GERL I 0 A_PlayerScream
		GERL IIIIIIII 1 A_SpawnItemEx("PainSmoke",0,random(-22,22),random(-22,22),random(2,4),momy,random(8,12),random(-180,180))
		GERL J 0 A_NoBlocking
		GERL JJJJJJJJKKKKKKKKLLLLLLLLMMMMMMMM 1 A_SpawnItemEx("PainSmoke",0,random(-22,22),random(-22,22),random(2,4),momy,random(8,12),random(-180,180))
		GERL NNNNNNN 3 A_SpawnItemEx("PainSmoke",0,random(-22,22),random(-22,22),random(2,4),momy,random(8,12),random(-180,180))
		GERL N -1
		Stop
	Death.I4:
		GERL A 0 A_GiveToTarget("KilledI4",1)
		Goto DeathAnim
	Death.I5:
		GERL A 0 A_GiveToTarget("KilledI5",1)
		Goto DeathAnim
	Pain.RavagerBall:
		GERL A 0 ACS_ExecuteAlways(920,0)
		Goto Pain
	Pain.YureiBall:
		GERL A 0 A_GiveToTarget("Health",10)
		GERL A 0 A_SpawnItemEx("BallFire")
		Goto Pain
	Pain.Emtalic:
		GERL A 0 A_PlaySoundEx("RamSuccess","Body")
		Goto Pain
	Pain.EmtalicWeak:
		GERL 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 GeraldineStomp : CyborgStomp
{
	DeathSound "GeraldineStep"
}

actor GeraldineRifle : DoomWeapon
    {
 Weapon.SelectionOrder 1300
 Weapon.AmmoUse 1
 Weapon.AmmoGive 50
 Weapon.AmmoType "Clip1"
 Inventory.icon "TNT1A0"
 Inventory.PickupMessage "You got the Geraldine Rifle! Lock and load!"
 Obituary "%k wanted to teach %o a lesson."
 Decal "BulletChip"
 States
 {
 Ready:
   GERF A 1 A_WeaponReady
   Loop
 Deselect:
   GERF A 1 A_Lower
   Loop
 Select:
   GERF A 1 A_Raise
   Loop
   Fire:
	GERF B 0 A_PlayWeaponSound("GeraldineRifle/fire")
	GERF C 0 A_GunFlash
 	GERF B 0 Bright A_FireBullets(3,3,1,5,"BulletPuff2",1)
	TNT1 A 0 A_FireCustomMissile("LongRifleCaseSpawn",5,0,9,-3)
	GERF B 1 Bright
	GERF C 1 Bright
	GERF A 2
	GERF A 0 A_ReFire
	Goto Ready
 Flash:
   TNT1 A 4 Bright A_Light1
   TNT1 A 3 Bright A_Light2
   Goto LightDone
 Spawn:
   GERF A -1
   Stop
 }
}

Actor BHGen : Weapon
{
Weapon.SelectionOrder 2900
Weapon.AmmoUse 1
Weapon.AmmoGive 100
Weapon.AmmoUse2 1
Weapon.AmmoType2 "BHGenElectroAmmo"
Weapon.AmmoType "Cell"
+WEAPON.NOAUTOAIM
Inventory.PickupMessage "You got the Black Hole Generator!"
Obituary "%o got disintegrated by %k's Black Hole Generator."
Tag "Black Hole Generator"
Inventory.icon "TNT1A0"
States
{
Spawn:
	DCAN A -1
	Stop
Select:
	DMAT A 1 A_Raise
	Loop
Deselect:
	DMAT A 1 A_Lower
	Loop
Ready:
	DMAT A 60 A_WeaponReady
	DMAT A 0 A_GiveInventory("BHGenElectroAmmo", 1)
	Loop
Fire:
	DMAT A 30 A_PlayWeaponSound("DMC/Charge")
	DMAT A 10 Bright
	TNT1 A 0 A_PlayWeaponSound("DMC/Fire")
	TNT1 A 0 A_GunFlash
	DMAT B 4 Bright A_FireCustomMissile("DMBall",0,1,0,0)
	TNT1 A 0 A_Playsound("BHGen/fire")
	DMAT CD 4 Bright
	DMAT A 19
	Goto Ready
	AltFire:
	DMAT A 20 A_PlayWeaponSound("DMC/Charge")
	DMAT A 10 Bright
	TNT1 A 0 A_PlayWeaponSound("DMC/Fire2")
	TNT1 A 0 A_GunFlash
	DMAT B 4 Bright A_FireCustomMissile("BHGenShot2",0,1,0,0)
	TNT1 A 0 A_Playsound("BHGen/fire")
	DMAT CD 4 Bright
	DMAT A 8
	Goto Ready
Flash:
	TNT1 A 4 A_Light2
	TNT1 A 3 A_Light1
	TNT1 A 0 A_Light0
	Stop
}
}

Actor DMBall
{
Radius 9
Height 8
Speed 17
Damage 2
Projectile
+RIPPER
+FORCEXYBILLBOARD
+NODAMAGETHRUST
+FORCERADIUSDMG
Renderstyle Translucent
Alpha 0.75
DeathSound "DMBall/Impact"
Decal BHoleDecal
DamageType "Sentinel"
States
{
Spawn:
	VOIP ABCDEF 2 Bright A_SpawnItem("DMBTrail",0,0,0)
	VOIP AA 1 Bright A_RadiusThrust(-220,130)
	TNT1 A 0 A_Explode(12,90,0)
	TNT1 A 0 A_SpawnItem("DMBTrail",0,0,0)
	VOIP BB 1 Bright A_RadiusThrust(-220,150)
	TNT1 A 0 A_Explode(12,90,0)
	TNT1 A 0 A_SpawnItem("DMBTrail",0,0,0)
	VOIP CC 1 Bright A_RadiusThrust(-220,150)
	TNT1 A 0 A_Explode(12,90,0)
	TNT1 A 0 A_SpawnItem("DMBTrail",0,0,0)
	VOIP DD 1 Bright A_RadiusThrust(-220,150)
	TNT1 A 0 A_Explode(12,90,0)
	TNT1 A 0 A_SpawnItem("DMBTrail",0,0,0)
	VOIP EE 1 Bright A_RadiusThrust(-220,150)
	TNT1 A 0 A_Explode(12,90,0)
	TNT1 A 0 A_SpawnItem("DMBTrail",0,0,0)
	VOIP FF 1 Bright A_RadiusThrust(-220,150)
	TNT1 A 0 A_Explode(12,90,0)
	TNT1 A 0 A_SpawnItem("DMBTrail",0,0,0)
	Goto Spawn+6
Death:
	TNT1 A 0 A_SpawnItem("BlackHole",0,0,0)
	TNT1 A 0 
	VORX ABCDEFGH 2 Bright
	Stop
}
}

Actor DMBTrail
{
+NOGRAVITY
+FORCEXYBILLBOARD
+CLIENTSIDEONLY
RenderStyle Translucent
Alpha 0.70
Scale 0.7
States
{
Spawn:
	VORX ABCDEFGH 2 Bright A_FadeOut(0.1)
	Stop
}
}

Actor BlackHole
{
Radius 20
Height 20
Speed 0
Projectile
+NOCLIP
+NODAMAGETHRUST
+FORCEXYBILLBOARD
+FORCERADIUSDMG
RenderStyle Translucent
Alpha 0.85
Scale 1.5
ReactionTime 35
Damagetype "Sentinel"
Obituary "%o was wiped off the face of the Earth."	
States
{
Spawn:
	TNT1 A 0 A_CountDown
	TNT1 A 0 A_PlaySoundEx("BHole/Suck","Voice",1)
	BHOL A 1 Light("BHOLE_1")
	TNT1 A 0 A_Explode(12,150)
	BHOL B 1 Light("BHOLE_1")
	TNT1 A 0 A_Explode(12,150)
	BHOL C 1 Light("BHOLE_1")
	TNT1 A 0 A_Explode(12,150)
	BHOL D 1 Light("BHOLE_1")
	TNT1 A 0 A_Explode(12,150)
	BHOL E 1 Light("BHOLE_1")
	TNT1 A 0 A_Explode(12,150)
	BHOL F 1 Light("BHOLE_1")
	TNT1 A 0 A_Explode(12,150)
	BHOL G 1 Light("BHOLE_1")
	TNT1 A 0 A_Explode(12,150)
	BHOL H 1 Light("BHOLE_1")
	TNT1 A 0 A_Explode(12,150)
	BHOL I 1 Light("BHOLE_1")
	TNT1 A 0 A_Explode(12,150)
	Loop
Death:
	TNT1 A 0 A_StopSoundEx("Voice")
	TNT1 A 0 A_SpawnItem("BHSmoke",0,0,0)
	TNT1 A 0 A_SpawnItem("BHExplosion",0,0,0)
	TNT1 A 0 A_PlaySound("BHole/Explosion")
	BHOL A 1 Light("BHOLE_2") A_FadeOut(0.08)
	BHOL B 1 Light("BHOLE_3") A_FadeOut(0.08)
	BHOL C 1 Light("BHOLE_4") A_FadeOut(0.08)
	BHOL D 1 Light("BHOLE_5") A_FadeOut(0.08)
	BHOL E 1 Light("BHOLE_6") A_FadeOut(0.08)
	BHOL F 1 Light("BHOLE_7") A_FadeOut(0.08)
	BHOL G 1 Light("BHOLE_8") A_FadeOut(0.08)
	BHOL H 1 Light("BHOLE_9") A_FadeOut(0.08)
	BHOL I 1 Light("BHOLE_10") A_FadeOut(0.08)
	Stop
}
}

Actor BHSmoke : DMBTrail
{
Scale 2.2
+NOCLIP
+NOGRAVITY
+FORCEXYBILLBOARD
States
{
Spawn:
	BHXP ABCDEFGHIJKLMNO 2 A_FadeOut(0.03)
	Stop
}
}

Actor BHExplosion
{
+NOCLIP
+NOGRAVITY
+FORCEXYBILLBOARD
+CLIENTSIDEONLY
States
{
Spawn:
	DBX3 A 1 Light("BHEXP_1") 
	TNT1 A 0 A_FadeOut(0.13)
	DBX3 A 1 Light("BHEXP_2") 
	TNT1 A 0 A_FadeOut(0.13)
	DBX3 A 1 Light("BHEXP_3") 
	TNT1 A 0 A_FadeOut(0.13)
	DBX3 A 1 Light("BHEXP_4")
	TNT1 A 0 A_FadeOut(0.13)
	DBX3 A 1 Light("BHEXP_5")
	TNT1 A 0 A_FadeOut(0.13)
	DBX3 A 1 Light("BHEXP_6")
	TNT1 A 0 A_FadeOut(0.13)
	DBX3 A 1 Light("BHEXP_7")
	TNT1 A 0 A_FadeOut(0.13)
	DBX3 A 1 Bright
	TNT1 A 0 A_FadeOut(0.13)
	DBX3 A 1 Bright
	TNT1 A 0 A_FadeOut(0.13)
	DBX3 A 1 Bright
	TNT1 A 0 A_FadeOut(0.13)
	Stop
}
}

Actor Geralpistol : StrifeWeapon 
{
  Weapon.SelectionOrder 1900
  Weapon.AmmoUse 1
  Weapon.AmmoGive 10
  Weapon.Ammouse2 1
  Weapon.AmmoType "SparkAmmo"
  Weapon.AmmoType2 "SparkAmmo"
  Obituary "%k felt like killing %o in more ways than one."
  +WEAPON.WIMPY_WEAPON
  AttackSound "StrifePistol/Fire"
  Inventory.Pickupmessage "Picked up a pistol."
  Decal BulletChip
  Inventory.icon "TNT1A0"
  States
  {
  Ready:
    GISG B 10 A_WeaponReady
	GISG B 0 A_GiveInventory("SparkAmmo", 1)
    Loop
  Deselect:
    GISG B 1 A_Lower
    Loop
  Select:
    GISG B 1 A_Raise
    Loop
  Fire:
    GISG C 2 Offset(0,35)
    GISG C 2 Offset(0,33)
	TNT1 A 0 A_PlaySound("SPRPSHOT")
    GISG D 1 Bright Offset(0,28) A_GunFlash
    GISG D 1 A_FireCustomMissile("ScatterPShot", 0, 1, 0, 0, random(-3,3), 0)
    GISG E 2 Offset(0,27)
    GISG E 2 Offset(0,29)
    GISG C 0 Offset(0,32)
    GISG C 2 Offset(0,36) A_ReFire
    Goto Ready
	Altfire:
    GISG C 2 Offset(0,35)
    GISG C 2 Offset(0,33)
	TNT1 A 0 A_PlaySound("SPRPSHOT")
	TNT1 A 0 A_Playweaponsound("POSNWF")
    GISG D 2 Bright Offset(0,28) A_GunFlash
    GISG D 1 A_FireCustomMissile("ScatterPShot2", 0, 1, 0, 0, random(-3,3), 0)
    GISG E 2 Offset(0,27)
    GISG E 2 Offset(0,29)
    GISG C 1 Offset(0,32)
    GISG C 1 Offset(0,36) A_ReFire
    Goto Ready
  Flash:
    TNT1 A 7 A_Light1
    Goto LightDone
    TNT1 A 7 A_Light0
    Goto LightDone
  Spawn:
    GISG A -1
    Stop
  }
}


ACTOR ScatterPShot : FastProjectile
{
   Speed 200
   Radius 4
   Height 4
   Damage (3*random(5,6))
   Damagetype "InariPlasma"
   Scale 0.25
   PROJECTILE
   +BRIGHT
   RenderStyle Add
   MissileHeight 8
   SeeSound "NDLSHOT"
   States
   {
   Spawn:
	  TNT1 A 0 A_SpawnItemEx("ScatterShotGlow", 0, 0, 0, 0, 0, 0, 0, 32)
      SPPJ A 1 Bright
      Loop
   XDeath:
	  TNT1 A 0 A_GiveToTarget("HitBeep",1)
      Goto Death
   Death:
      TNT1 A 0 A_SpawnItemEx("GBVFXPlasmaTrail",random(-5,5),random(-5,5),random(-5,5),0,0,0)
	  TNT1 A 0 A_PlaySound("SPRPIMPT")
	  TNT1 AAAA 0 A_CustomMissile("ScatterSpark",0,0,random(0,360),CMF_AIMDIRECTION,random(0,12))
      SPRI ABCDE 1 Bright
      Stop
   }
}

ACTOR ScatterPShot2 : FastProjectile
{
   Speed 180
   Radius 4
   Height 4
   Damage (3*random(6,7))
   Damagetype "InariPlasma"
   Scale 1.0
   PROJECTILE
   +BRIGHT
   RenderStyle Add
   MissileHeight 8
   SeeSound "POSNWF"
   Poisondamage 100
   +ADDITIVEPOISONDURATION
   +ADDITIVEPOISONDAMAGE
   States
   {
   Spawn:
	  TNT1 A 0 A_SpawnItemEx("GeraldineVFXPoisonTrail",random(-10,10),random(-10,10),random(-10,10),0,0,0)
	  TNT1 A 0 A_SpawnItemEx("GeraldineVFXPoisonTrail",random(-10,10),random(-10,10),random(-10,10),0,0,0)
      CSSF DE 1 Bright A_SpawnItemEx("PoisonTrailThingies")
      Loop
   XDeath:
	  TNT1 A 0 A_GiveToTarget("HitBeep",1)
      Goto Death
   Death:
      TNT1 A 0 A_SpawnItemEx("GeraldineVFXPoisonTrail")
	  TNT1 A 0 A_PlaySound("SPRPIMP2")
	  TNT1 AAAAAAA 0 A_CustomMissile("PoisonScatterSpark",0,0,random(0,360),CMF_AIMDIRECTION,random(0,12))
      CSSF FGHI 1 Bright 
      Stop
   }
}


Actor PoisonTrailThingies
{
	RenderStyle Add
	Alpha 0.8
    +NOGRAVITY
	+CLIENTSIDEONLY
	States
	{
	Spawn:
		CSSF DE 2 bright A_FadeOut(0.1)
		Loop
	Death:
		TNT1 A 0
		Stop
	}
}

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

ACTOR PoisonScatterSpark
{
   Speed 15
   Radius 4
   Height 4
   Scale 0.15
   Gravity 0.3
   PROJECTILE
   +BRIGHT
   -NOGRAVITY
   +DROPOFF 
   +THRUACTORS
   +CLIENTSIDEONLY
   RenderStyle Add
   States
   {
   Spawn:
      PAO1 A 1
      Loop
   Death:
      TNT1 A 0
	  TNT1 A 0 A_PlaySound("SPRPIMPT",5,0.12,0)
      PAO1 A 3 bright A_FadeOut(0.1)
      Stop
   }
}


ACTOR ScatterSpark
{
   Speed 15
   Radius 4
   Height 4
   Scale 0.15
   Gravity 0.3
   PROJECTILE
   +BRIGHT
   -NOGRAVITY
   +DROPOFF 
   +THRUACTORS
   RenderStyle Add
   States
   {
   Spawn:
      SPPJ A 1
	  TNT1 A 0 A_SpawnItemEx("ScatterShotGlowSmall", 0, 0, 0, 0, 0, 0, 0, 32)
	  TNT1 A 0 A_SpawnItemEx("ScatterShotXDMG", 0, 0, 0, 0, 0, 0, 0, 32)
      Loop
   Death:
      TNT1 A 0
	  TNT1 A 0 A_PlaySound("SPRPIMPT",5,0.12,0)
      SPRI ABCDE 1
      Stop
   }
}

ACTOR ScatterShotXDMG
{                 
   Speed 2
   Radius 6
   Height 7
   Damage (2*random(3,4))
   PROJECTILE
   +NODAMAGETHRUST
   DamageType "InariPlasma"
   States
   {
   Spawn:
      TNT1 A 1
      Stop
   Death:
      TNT1 A 0
      Stop
   }
}

//AESTHETIC EFFECTS

ACTOR ScatterShotGlow
{
   +NOINTERACTION
   +THRUACTORS
   +CLIENTSIDEONLY
   RenderStyle Add
   Alpha 0.4
   Scale 0.25
   States
   {
   Spawn:
      TNT1 A 0
	  SPGL A 1 Bright
      Stop
   }
}

ACTOR ScatterShotGlowSmall : ScatterShotGlow
{
   Scale 0.1
}

actor BHGenShot2 : fastprojectile
{
  Damage (40)
  DeathSound "TSLPRJC2"
  RenderStyle Add
  alpha 0.5
  height 10
  radius 10
  speed 70
  Decal none
  Damagetype "InariPlasma"
  ExplosionRadius 128
  ExplosionDamage 40
  Obituary "%o got distracted by %k's pretty lights."
  -EXTREMEDEATH
  +SEEKERMISSILE
  States
  {
  Spawn: 
    MRS2 A 1 bright A_SpawnItem("TeslaTail1")
	NULL AAAAAAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("TeslaExtra3",0,0,0,random(-4,4),random(-4,4),random(-4,4),random(1,360))
	MRS2 B 1 bright A_SpawnItem("TeslaExtra3")
	NULL AAAAAAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("TeslaTail1",0,0,0,random(-4,4),random(-4,4),random(-4,4),random(1,360))
    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,180)
	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:
	NULL A 0 A_Explode
	NULL AAAAAAAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("TeslaExtra3",0,0,0,random(-4,4),random(-4,4),random(-4,4),random(1,360))
	NULL AAAAAAAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("TeslaTail",0,0,0,random(-4,4),random(-4,4),random(-4,4),random(1,360))
	NULL AAAAAAAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("TeslaExtra3",0,0,0,random(-4,4),random(-4,4),random(-4,4),random(1,360))
	NULL AAAAAAAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("TeslaTail",0,0,0,random(-4,4),random(-4,4),random(-4,4),random(1,360))
	NULL AAAAAAAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("TeslaExtra3",0,0,0,random(-4,4),random(-4,4),random(-4,4),random(1,360))
	NULL AAAAAAAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("TeslaTail",0,0,0,random(-4,4),random(-4,4),random(-4,4),random(1,360))
	MRS2 CDEFG 2 bright
	Stop
  }
}

Actor TeslaExtra
{
	Projectile
	Damage 0
	+BLOODLESSIMPACT
	+CLIENTSIDEONLY
	Speed 0
	Radius 1
	Height 1
	Scale 0.4
	
	RenderStyle Add
	States
	{
	Spawn:
		ZAPR ABC 1 Bright
		NULL A 0 A_Jump(160,1)
		Loop
		ZAPR ABC 1 Bright
		ZAPR DE 1 Bright A_FadeOut
		Wait
	Death:
		NULL A 1
		Stop
	}
}
Actor Teslatail
{
	Projectile
	Damage 0
	+BLOODLESSIMPACT
	+NOGRAVITY
	+CLIENTSIDEONLY
	Speed 0
	Radius 1
	Height 1
	Scale 0.10
	RenderStyle Add
	States
	{
	Spawn:
		MRS2 AB 1 bright A_FadeOut
		wait
	}
}
Actor TeslaExtra1 : TeslaExtra
{
Scale 0.3
}
Actor TeslaExtra3 : TeslaExtra
{
Scale 0.8
}
Actor Teslatail1 : Teslatail
{
Scale 0.6
}

actor SparkAmmo : ammo
{
inventory.amount 1
inventory.maxamount 10
ammo.backpackmaxamount 0
}

actor BHGenElectroAmmo : cell
{
inventory.amount 1
inventory.maxamount 5
ammo.backpackmaxamount 0
}