// Decorate code for Liberator
Actor Liberator : PlayerPawn
{
     
+NOSKIN
+NOICEDEATH
+QUICKTORETALIATE
+GHOST    
    Health 150
	Player.Maxhealth 150
    Radius 16
    Height 56
    Mass 1000
	scale 0.5
    PainChance 256
	Player.Maxhealth 150
	bloodtype "BulletPuff"
	Player.ViewHeight 60
    Player.ColorRange 112, 127
    Player.StartItem "LiberatorPlasmaX"
	Player.StartItem "LibPlasma", 100
	Player.Weaponslot 1, LiberatorPlasmaX
    Player.DisplayName "Liberator"
    Player.StartItem "IsHuman", 1
    Player.StartItem "Screamer", 0
    Player.ForwardMove 0.9
    Player.SideMove 0.9
	Damagefactor "Justicar", 1.2
	Damagefactor "ZombieIce", 1.1
	Damagefactor "ZombiePoison", 2.0
	Damagefactor "BlueFire", 1.7
	Damagefactor "normal", 1.0
	DamageFactor "AmperLightning", 1.2
	DamageFactor "GhostTrap", 0.0
	Damagefactor "UboaRawrScream", 0.3
    Damagefactor "creeper", 0.3
	DamageFactor "SjasScream", 0.9
	Damagefactor "FrostbiteWind", 0.9
	Damagefactor "EmtalicSaw", 0.9
	Damagefactor "LichFire", 0.9
	Damagefactor "Ravager", 0.3
	DamageFactor "CreepStun", 3.0
	DamageFactor "Wendigo", 0.8
	DamageFactor "Jitter", 0.6
	Damagefactor "HarvesterAlt", 0.6
	Damagefactor "MorphRipperGib", 0.6
	Damagefactor "DarkVortex", 0.6
	Damagefactor "ImpostorJitter", 0.6
	Damagefactor "PuppetStrings", 0.6
	Damagefactor "LichIce", 0.6
	Damagefactor "LichLightning", 0.6
	Damagefactor "AsylumCannonBall", 0.6
	DamageFactor "Harvester", 0.6
	Damagefactor "Juglava", 1.2
	DamageFactor "Choke", 0.6 
	Damagefactor "JusticarSpike", 0.6
	Damagefactor "Ravagerball", 1.4
    Damagefactor "YureiBall", 1.4
	DamageFactor "Clowny", 1.1
	DamageFactor "Yurei", 0.8
	DamageFactor "Emtalic", 0.7
	Damagefactor "Hellzone", 1.0
	DamageFactor "EmtalicWeak", 1.0
	DamageFactor "I1", 0.9
	DamageFactor "I4", 0.9
	DamageFactor "I5", 0.9
	Damagefactor "Sentinel", 0.0
    Damagefactor "AntiAirbolt", 0.0
	Damagefactor "GraveStalkerLure", 1.3
	Damagefactor "MechPewPews", 0.0
	Damagefactor "MacheteSlicerino", 0.0
    Damagefactor "GasterSmokeHurt", 0.0
	Damagefactor "Judgement", 0.0
	Damagefactor "StrifeSuit", 0.0
    Player.SoundClass "Liberator"
	Player.ScoreIcon "LIBEST"
    LimitedToTeam 0
    States
    {
 Spawn:
		RROB A 0 A_JumpIfInventory("GloomWatchStack",100,"GloomDeath")	
		RROB A 16 Setplayerproperty(0,0,0)
		RROB A 0 A_JumpIfInventory("LibPlasma", 100, "Spawn")
		RROB A 0 ACS_ExecuteAlways(996,0)
		RROB A 0 A_GiveInventory("LibPlasma", 5)	
		RROB A 1
		Loop
 See:
   RROB A 0 A_JumpIfInventory("GloomWatchStack",100,"GloomDeath")	
   RROB A 0 A_JumpIfHealthlower(100,"INeedHealingSee")
   RROB A 8 A_SpawnItemEx ("TemplarStomp",0,0,0,0,0,-20,0,0,0) 
   RROB B 8 
   RROB C 8 A_SpawnItemEx ("TemplarStomp",0,0,0,0,0,-20,0,0,0) 
   RROB B 8
   Goto Spawn
 INeedHealingSee:
   RROB A 0 A_JumpIfInventory("GloomWatchStack",100,"GloomDeath")	
   RROB A 0 A_SpawnItemEx("INeedHealingTrail",random(-20,20),random(-20,20),0,0,0,10)
   RROB A 8 A_SpawnItemEx ("TemplarStomp",0,0,0,0,0,-20,0,0,0) 
   RROB B 8 
   RROB C 8 A_SpawnItemEx ("TemplarStomp",0,0,0,0,0,-20,0,0,0) 
   RROB B 8
   Goto Spawn
 Missile:
   RROB A 0 A_JumpIfInventory("GloomWatchStack",100,"GloomDeath")	
   RROB D 8 Bright
   Goto Spawn
 Melee:
   RROB A 0 A_JumpIfInventory("GloomWatchStack",100,"GloomDeath")	
   RROB 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)
	RROB E 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)
	RROB E 1 A_PlaySound("weapons/grenadeexplode")
	NULL A 0 A_NoBlocking 
	NULL A 0 A_SpawnItemEx("ROBGIBBER", 0, 0, 0, 0, 0, 0, 0, 161, 0)
	NULL A 1 A_SpawnItemEx("GrenadeExplosion", 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)
	RROB E 1 A_PlaySound("weapons/grenadeexplode")
	TNT1 A 0 A_PlaySound("TeleOther/activate",CHAN_6,1)
	TNT1 A 0 A_SpawnItem("TeleOtherFog")
	NULL A 0 A_NoBlocking 
	NULL A 0 A_SpawnItemEx("ROBGIBBER", 0, 0, 0, 0, 0, 0, 0, 161, 0)
	NULL A 1 A_SpawnItemEx("GrenadeExplosion", 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:
	RROB A 0 A_JumpIfInventory("GloomWatchStack",100,"GloomDeath")	
    RROB E 0 A_GiveInventory("Creeperpainboost",1)
    RROB E 4
    RROB E 4 A_Pain
    Goto Spawn
	Pain.LoonaClawing:
	TNT1 A 0 A_GiveToTarget("Health",8)
	RROB E 20 Setplayerproperty(0,1,0)
	RROB E 2 Setplayerproperty(0,0,0)
	Goto Spawn
	Pain.LoonaClawingLightSFX:
	TNT1 A 0 A_PlaySound("Bastet/ClawHitLight",CHAN_6)
	TNT1 A 0 A_GiveToTarget("Health",7)
	RROB E 20 Setplayerproperty(0,1,0)
	RROB E 2 Setplayerproperty(0,0,0)
	Goto Spawn
	Pain.LoonaClawingHeavySFX:
	TNT1 A 0 A_PlaySound("Bastet/ClawHitHeavy",CHAN_6)
	TNT1 A 0 A_GiveToTarget("Health",10)
	RROB E 20 Setplayerproperty(0,1,0)
	RROB E 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)
		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:
    RROB E 0 A_Pain
	RROB E 0 A_GiveToTarget("health",5)
	RROB E 40 Setplayerproperty(0,1,0)
	RROB E 2 Setplayerproperty(0,0,0)
	Goto Spawn
  Death.Creeper:
	RROB F 0 A_PlaySoundEx("creeperattack", "Body")
	TNT1 A 0 A_GiveToTarget("GhoulAmmo",1)
	RROB F 0 A_SpawnItemEx("CreeperPopUp",0,0,10)
	RROB F 0 A_GiveToTarget("Creeperheal",1)
    RROB F 0 ACS_ExecuteAlways(997,0,1)
	goto DeathAnimAlt
  Death.Creepstun:
	RROB F 0 A_GiveToTarget("Unlock13",1)
	RROB F 0 A_GiveToTarget("CreepGotya",1)
	goto DeathAnimAlt
  Death.SjasScream:
  Death.FrostbiteWind:
  Death.EmtalicSaw:
  Death.LichFire:
    RROB F 0 A_GiveToTarget("KilledJ",1)
    Goto DeathAnim
  Death:
  DeathAnim:
	RROB A 0 A_GiveToTarget("KillBeep",1)
	RROB A 0 A_GiveInventory("ItemDeath",1)
    RROB A 0 A_Settranslucent(1.0)
	RROB A 0 A_TakeInventory("KilledCount",999)
    RROB A 0 A_GiveToTarget("KilledMe",1)
    RROB A 0 A_GiveToTarget("KilledLiberator",1)
    RROB F 6
    RROB G 6 A_PlayerScream
    RROB H 6 A_NoBlocking
    RROB IK 6
    RROB L -1
    Stop
  DeathAnimAlt:
	RROB A 0 A_GiveToTarget("KillIndicator",1)
	RROB A 0 A_GiveInventory("ItemDeath",1)
    RROB A 0 A_Settranslucent(1.0)
	RROB A 0 A_TakeInventory("KilledCount",999)
    RROB A 0 A_GiveToTarget("KilledMe",1)
    RROB A 0 A_GiveToTarget("KilledLiberator",1)
    RROB F 6
    RROB G 6 A_PlayerScream
    RROB H 6 A_NoBlocking
    RROB IK 6
    RROB L -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:
	RROB A 0 A_GiveToTarget("KillBeep",1)
	RROB A 0 A_GiveInventory("ItemDeath",1)
    RROB A 0 A_GiveToTarget("Crunched",1)
	RROB A 0 A_GiveToTarget("KilledMe",1)
	RROB A 0 A_GiveToTarget("KilledLiberator",1)
	RROB G 1 A_PlaySound("weapons/grenadeexplode")
    NULL A 0 A_NoBlocking 
	NULL A 0 A_SpawnItemEx("ROBGIBBER", 0, 0, 0, 0, 0, 0, 0, 161, 0)
	NULL A 1 A_SpawnItemEx("GrenadeExplosion", 0, 0, 0, 0, 0, 0, 0, 160, 0)
	NULL A -1
	Stop
  Death.JitterAlt:
	RROB A 0 A_GiveToTarget("KillIndicator",1)
	RROB A 0 A_GiveInventory("ItemDeath",1)
    RROB A 0 A_GiveToTarget("Crunched",1)
	RROB A 0 A_GiveToTarget("KilledMe",1)
	RROB A 0 A_GiveToTarget("KilledLiberator",1)
	RROB G 1 A_PlaySound("weapons/grenadeexplode")
    NULL A 0 A_NoBlocking 
	NULL A 0 A_SpawnItemEx("ROBGIBBER", 0, 0, 0, 0, 0, 0, 0, 161, 0)
	NULL A 1 A_SpawnItemEx("GrenadeExplosion", 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:
		RROB A 0 A_GiveToTarget("KilledR",1)
		RROB A 0 A_GiveToTarget("Health",100)
		RROB A 0 ACS_ExecuteAlways(997,0,2)
		RROB A 0 A_PlaySoundEx("RavagerAttack","Body")
		RROB A 0 A_SpawnItemEx("RavagerHit",0,0,32)
		Goto DeathAnimAlt
	Death.RavagerBall:
		RROB A 0 A_GiveToTarget("RavagerGotYa",1)
		RROB A 0 A_GiveToTarget("KilledJ",1)
		Goto DeathAnimAlt
	Death.Yurei:
		RROB A 0 A_GiveToTarget("KilledY",1)
		RROB A 0 A_PlaySoundEx("YureiKill1","Body",0,1)
		RROB A 0 ACS_ExecuteAlways(997,0,3)
		Goto DeathAnimAlt
	Death.YureiBall:
		RROB A 0 A_GiveToTarget("Health",10)
		RROB A 0 A_SpawnItemEx("BallFire")
		Goto Death.SjasScream
	Death.UboaRawrScream:
		Goto DeathAnimAlt
	Death.Misty:
	Death.Whiteface:
		RROB A 0 A_GiveToTarget("KillBeep",1)
		RROB A 0 A_GiveInventory("ItemDeath",1)
	    RROB A 0 A_Settranslucent(1.0)
		RROB A 0 A_GiveToTarget("KilledMe",1)
		RROB A 0 A_GiveToTarget("KilledM",1)
		RROB FG 2 A_FadeOut(0.1)
		RROB A 0 A_PlayerScream
		RROB HI 2 A_FadeOut(0.1)
		RROB A 0 A_NoBlocking
		NULL A -1
		Stop
	Death.Clowny:
		RROB A 0 ACS_ExecuteAlways(997,0,4)
		RROB A 0 A_GiveToTarget("KilledC",1)
		RROB A 0 A_GiveToTarget("ClownyAmmo",5)
		Goto DeathAnim
	Death.Mohoph:
		TNT1 A 0 A_GiveToTarget("MorphAmmo", 1)
		RROB A 0 A_GiveToTarget("TransLiberator",1)
		RROB A 0 A_PlaySoundEx("MohophKill","Body")
		RROB A 0 ACS_ExecuteAlways(997,0,5)
		Goto DeathAnim
	Death.EmtalicWeak:
		RROB A 0 A_PlaySoundEx("RamSuccess","Body")
		Goto DeathAnim
	Death.Emtalic:
		RROB A 0  A_PlaySoundEx("RamSuccess","Body")
		Goto Death.Jitter
	Death.I1:
		RROB A 0 A_SpawnItemEx("Heart",0,0,32,random(2,3),momy,random(8,12),random(-180,180))
		RROB A 0 A_GiveToTarget("KilledI1",1)
		Goto DeathAnim
	Death.I2:
		RROB A 0 A_GiveToTarget("KillBeep",1)
		RROB A 0 A_GiveInventory("ItemDeath",1)
	    RROB A 0 A_Settranslucent(1.0)
		RROB A 0 A_GiveToTarget("KilledMe",1)
		RROB A 0 A_GiveToTarget("KilledI2",1)
		RROB A 0 A_GiveToTarget("Clip",1)
		RROB F 0 SetPlayerProperty(0,1,4)
		RROB F 0 A_Stop
		RROB FFFFFFFFFFFFF 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:
		RROB A 0 A_GiveToTarget("KillBeep",1)
		RROB A 0 A_GiveInventory("ItemDeath",1)
		RROB A 0 A_GiveToTarget("KilledMe",1)
		RROB A 0 A_GiveToTarget("KilledI3",1)
		RROB FFFFFFFF 1 A_SpawnItemEx("PainSmoke",0,random(-22,22),random(-22,22),random(2,4),momy,random(8,12),random(-180,180))
		RROB G 0 A_PlayerScream
		RROB HHHHHHHH 1 A_SpawnItemEx("PainSmoke",0,random(-22,22),random(-22,22),random(2,4),momy,random(8,12),random(-180,180))
		RROB I 0 A_NoBlocking
		RROB IIIIIIIJJJJJJKKKKK 1 A_SpawnItemEx("PainSmoke",0,random(-22,22),random(-22,22),random(2,4),momy,random(8,12),random(-180,180))
		RROB LLLLLLL 3 A_SpawnItemEx("PainSmoke",0,random(-22,22),random(-22,22),random(2,4),momy,random(8,12),random(-180,180))
		RROB L -1
		Stop
	Death.I4:
		RROB A 0 A_GiveToTarget("KilledI4",1)
		Goto DeathAnim
	Death.I5:
		RROB A 0 A_GiveToTarget("KilledI5",1)
		Goto DeathAnim
	Pain.RavagerBall:
		RROB A 0 ACS_ExecuteAlways(920,0)
		Goto Pain
	Pain.YureiBall:
		RROB A 0 A_GiveToTarget("Health",10)
		RROB A 0 A_SpawnItemEx("BallFire")
		Goto Pain
	Pain.Emtalic:
		RROB A 0 A_PlaySoundEx("RamSuccess","Body")
		Goto Pain
	Pain.EmtalicWeak:
		RROB 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 LiberatorPlasmaX : Weapon
    {
      Weapon.SelectionOrder 100
      Weapon.AmmoUse 0
	  Weapon.AmmoUse2 20
      Weapon.AmmoGive 40
      Weapon.AmmoType "LibPlasma"
	  Weapon.Ammotype2 "LibPlasma"
	  Obituary "%k left %o in the cold."
	  Inventory.icon "TNT1A0"
	  Weapon.Kickback 1500
	  +NOAUTOFIRE
      States
	  {
  Spawn:
    ETRN A -1
    Loop
  Ready:
    ETRN A 1 Bright A_WeaponReady
    Loop
  Deselect:
    ETRN A 1 A_Lower
    Loop
  Select:
    ETRN A 1 A_Raise
    Loop
	Fire:
	ETRN A 1 A_JumpIfInventory("LibPlasma",1,"NormalIceShots")
	ETRN A 1 A_JumpIfInventory("LibPlasma",0,"Halpicebeemz")
    Halpicebeemz:
	ETRN A 0 Bright
	ETRN B 1 Bright
	ETRN B 0 Bright A_FireCustomMissile("IcePuny",0,0,10,15)
	TNT1 A 0 Bright
	ETRN B 0 Bright A_PlayWeaponSound("Ibeam/firePuny")
	Goto FireFinish
	NormalIceShots:
    ETRN A 0 Bright A_TakeInventory("LibPlasma",1)
	ETRN B 1 Bright
	ETRN B 0 Bright A_FireCustomMissile("IceBolt",0,1,10,15)
	TNT1 A 0 Bright
	ETRN B 0 Bright A_PlayWeaponSound("Ibeam/fire")
     goto FireFinish
      FireFinish:
        TNT1 A 0 A_AlertMonsters
        TNT1 A 0 A_Light1
        ETRN C 1 BRIGHT A_WeaponReady(WRF_NOSECONDARY|WRF_NOPRIMARY|WRF_NOSWITCH)
        TNT1 A 0 A_Light0
        ETRN D 1 BRIGHT A_WeaponReady(WRF_NOSWITCH)
        TNT1 A 0 A_Light0
        ETRN D 1 BRIGHT A_WeaponReady(WRF_NOSWITCH)
        ETRN E 0 BRIGHT A_WeaponReady(WRF_NOSWITCH)
		ETRN F 1 BRIGHT A_WeaponReady(WRF_NOSWITCH)
		ETRN G 0 BRIGHT A_WeaponReady(WRF_NOSWITCH)
		ETRN H 1 BRIGHT A_WeaponReady(WRF_NOSWITCH)
		ETRN I 0 Bright A_WeaponReady(WRF_NOSWITCH)
		ETRN J 1 Bright A_WeaponReady(WRF_NOSWITCH)
		ETRN K 1 Bright A_WeaponReady(WRF_NOSWITCH)
		ETRN K 0 A_ReFire
		ETRN KJIHGFEDC 1 Bright
        Goto Ready
	altfire:
    ETRN A 0 Bright
	ETRN A 0 Bright A_Playsound("Ibeam/charging", CHAN_WEAPON)
	ETRN AAAAAAAAAAA 4 Bright
	ETRN B 1 Bright
	ETRN B 0 Bright A_PlayWeaponSound("Ibeam/chfire")
	ETRN B 0 A_FireCustommissile("IceBoltCharged",0,1,0,14)
	ETRN B 0 A_FireCustommissile("IceBoltCharged",30,0,0,14)
	ETRN B 0 A_FireCustommissile("IceBoltCharged",60,0,0,14)
	ETRN B 0 A_FireCustommissile("IceBoltCharged",90,0,0,14)
	ETRN B 0 A_FireCustommissile("IceBoltCharged",120,0,0,14)
	ETRN B 0 A_FireCustommissile("IceBoltCharged",150,0,0,14)
	ETRN B 0 A_FireCustommissile("IceBoltCharged",180,0,0,14)
	ETRN B 0 A_FireCustommissile("IceBoltCharged",-30,0,0,14)
	ETRN B 0 A_FireCustommissile("IceBoltCharged",-60,0,0,14)
	ETRN B 0 A_FireCustommissile("IceBoltCharged",-90,0,0,14)
	ETRN B 0 A_FireCustommissile("IceBoltCharged",-120,0,0,14)
	ETRN B 0 A_FireCustommissile("IceBoltCharged",-150,0,0,14)
	TNT1 A 0 Bright
    Goto FireFinish
  Flash:
    TNT1 A 1 A_Light1
    TNT1 A 1 A_Light2
    TNT1 A 1 A_Light1
    TNT1 A 1 A_Light0
    Stop
  }
}

actor IceBolt
{
    Radius 8
    Height 10
    Projectile
    +NOGRAVITY
    Speed 50
    Damage (5)
    Scale 0.25
    RenderStyle Add
    Alpha 0.95
    DeathSound "ibeam/hit"
    Decal DoomImpScorch
    DamageType "AltIce2"
    States
    {
      Spawn:
        TNT1 A 0 A_Weave(10, 0, 1.0, 0.0)
        TNT1 AA 0 A_SpawnItemEx("IceSpark",0,0,0,random(-200,200)/100.00,random(-200,200)/100.00,random(-200,400)/100.00,random(-180,180),160,0)
        TNT1 A 0 A_SpawnItemEx("IceTrailFlicker2",0,0,0,random(-100,100)/100.00,random(-100,100)/100.00,random(-100,100)/100.00,random(-180,180),160,0)
        ISHX A 1 BRIGHT A_SpawnItemEx("IceTrailFlicker",0,0,0,random(-100,100)/100.00,random(-100,100)/100.00,random(-100,100)/100.00,0,160,0)
        loop
	  XDeath:
		TNT1 A 0 A_GiveToTarget("HitBeep",1)
		Goto Death
      Death:
		TNT1 A 0 A_Custommissile("LiberatorIceShardMissile",0,0,100)
		TNT1 A 0 A_Custommissile("LiberatorIceShardMissile",0,0,80)
		TNT1 A 0 A_Custommissile("LiberatorIceShardMissile",0,0,60)
		TNT1 A 0 A_Custommissile("LiberatorIceShardMissile",0,0,40)
		TNT1 A 0 A_Custommissile("LiberatorIceShardMissile",0,0,20)
		TNT1 A 0 A_Custommissile("LiberatorIceShardMissile",0,0,0)
		TNT1 A 0 A_Custommissile("LiberatorIceShardMissile",0,0,-20)
		TNT1 A 0 A_Custommissile("LiberatorIceShardMissile",0,0,-40)
		TNT1 A 0 A_Custommissile("LiberatorIceShardMissile",0,0,-60)
		TNT1 A 0 A_Custommissile("LiberatorIceShardMissile",0,0,-80)
		TNT1 A 0 A_Custommissile("LiberatorIceShardMissile",0,0,-100)
        TNT1 A 0 A_SpawnItemEx("IceBoltExplosion",0,0,0,0,0,0,0,32)
        TNT1 AAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("IceSpark",0,0,0,random(-200,200)/100.00,random(-200,200)/100.00,random(-200,400)/100.00,random(-180,180),160,0)
        TNT1 AAAAAAAAAAAAA 0 A_CustomMissile("IceTrailFlicker",0,0,Random(-200,200),3,Random(-200,200))
        TNT1 AAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("MissileTrail",random(-100,100)/100.00,random(-100,100)/100.00,random(-100,100)/100.00,random(-200,200)/100.00,random(-200,200)/100.00,random(-200,200)/100.00,random(-180,180),160,128)
        TNT1 A 0 A_SpawnItemEx("IceBoltPuff",0,0,0,0,0,0,0,160)
        TNT1 A 1
        stop
    }
}

actor IceTrail
{
    Alpha 0.95
    Scale 0.3
    +NOINTERACTION
    +CLIENTSIDEONLY
    RenderStyle Add
    States
    {
      Spawn:
        TNT1 A 0
        TNT1 A 1

      Spawn1:
        TNT1 A 0
        TNT1 AA 0 A_SpawnItemEx("IceSpark",0,0,0,random(-200,200)/100.00,random(-200,200)/100.00,random(-200,400)/100.00,random(-180,180),160,0)
        TNT1 AAAA 1 BRIGHT A_SpawnItemEx("IceTrailFlicker",0,0,0,random(-200,200)/100.00,random(-200,200)/100.00,random(-200,200)/100.00,random(-180,180),160,0)
        TNT1 AAAAAAAAAA 1 BRIGHT A_FadeOut(0.05) //A_SpawnItemEx("IceTrailFlicker",0,0,0,random(-200,200)/100.00,random(-200,200)/100.00,random(-200,200)/100.00,random(-180,180),160,0)
        stop

      Nope:
        TNT1 A 1
        stop
    }
}

ACTOR IceBoltExplosion
{
    Radius 1
    Height 1
    Speed 0
    DamageType "Ice"
    +NOCLIP
    -SOLID
	+CLIENTSIDEONLY
    Obituary "%k left %o in the cold."
    States
    {
      Spawn:
        TNT1 A 0
        TNT1 A 1
        Stop
    }
}

actor IceBoltPuff
{
    Alpha 0.95
    Scale 0.5
    +NOINTERACTION
    +CLIENTSIDEONLY
    RenderStyle Add
    States
    {
      Spawn:
        TNT1 A 0
        IPFF ABCDEFGHIJKL 1 BRIGHT
        stop
    }
}

actor IceTrailFlicker : IceTrail
{
    Scale 0.02
    States
    {
      Spawn:
        TNT1 A 0
        ICHK ABC 2 BRIGHT A_FadeOut(0.15)
        stop

      Nope:
        TNT1 A 1
        stop
    }
}

actor IceTrailFlicker2 : IceTrail
{
    Scale 0.1
    States
    {
      Spawn:
        TNT1 A 0
        TNT1 AAA 1 BRIGHT A_SpawnItemEx("IceTrailFlicker",0,0,0,random(-200,200)/100.00,random(-200,200)/100.00,random(-200,200)/100.00,random(-180,180),160,0)
        TNT1 AAAAAAA 1 BRIGHT A_FadeOut(0.1)//A_SpawnItemEx("IceTrailFlicker",0,0,0,random(-200,200)/100.00,random(-200,200)/100.00,random(-200,200)/100.00,random(-180,180),160,0)
        stop

      Nope:
        TNT1 A 1
        stop
    }
}

actor IceTrailFlicker3 : IceTrail { Alpha 0.5 }

ACTOR IceSpark
{
    Radius 1
    Scale 0.01
    Gravity 0.25
    Speed 2
    Renderstyle Add
    Projectile
    
    +RANDOMIZE
    +NOTELEPORT
    //+EXPLODEONWATER
    //-CANBOUNCEWATER
    //+DONTSPLASH
    //+THRUACTORS
    //-NOGRAVITY
    //+DOOMBOUNCE
    +NOINTERACTION
	+CLIENTSIDEONLY
    States
    {
      Spawn:
        TNT1 A 0
        ICHK ABC 2 BRIGHT A_FadeOut(0.1)
        loop

      Nope:
        TNT1 A 1
        stop
    }
}

actor IceBoltCharged
{
    Radius 10
    Height 10
    Projectile
    +NOGRAVITY
	+RIPPER
	+bloodlessimpact
    Speed 10
    Damage (8)
    Scale 0.25
    RenderStyle Add
    Alpha 0.95
    DeathSound "ibeam/chit"
    Decal Scorch
    DamageType "AltIce2"
	Obituary "%k left %o in the cold."
    States
    {
      Spawn:
        TNT1 A 0 A_Weave(2, 2, 2.0, 1.0)
        TNT1 A 0 A_SpawnItemEx("IceSpark",0,0,0,random(-200,200)/100.00,random(-200,200)/100.00,random(-200,400)/100.00,random(-180,180),160,0)
        ISHX B 1 BRIGHT A_SpawnItemEx("IceTrailCharged",0,0,0,0,0,0,0,160)
		TNT1 A 0 A_SpawnItemEx("HunterFreezeSlow",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
        loop
      Death:
        TNT1 A 0
        TNT1 A 0 A_Stop
        TNT1 A 0 A_SpawnItemEx("IceBoltChargedExplosion",0,0,0,0,0,0,0,32)
        TNT1 AAAAAAAAAAAAA 0 A_SpawnItemEx("IceSpark",0,0,0,random(-200,200)/100.00,random(-200,200)/100.00,random(-200,400)/100.00,random(-180,180),160,0)
        TNT1 AAAAAAA 0 A_CustomMissile("IceTrail",0,0,Random(-200,200),3,Random(-200,200))
        TNT1 AAAAAAA 0 A_CustomMissile("IceTrailFlicker",0,0,Random(-200,200),3,Random(-200,200))
        TNT1 AAAAAAAAAAAAA 0 A_SpawnItemEx("MissileTrail",random(-100,100)/100.00,random(-100,100)/100.00,random(-100,100)/100.00,random(-200,200)/100.00,random(-200,200)/100.00,random(-200,200)/100.00,random(-180,180),160,128)
        TNT1 A 0 A_SpawnItemEx("IceBoltPuffCharged",0,0,0,0,0,0,0,160)
        TNT1 A 1
        stop
    }
}

ACTOR IceBoltChargedExplosion
{
    Radius 1
    Height 1
    Speed 0
    DamageType "AltIce2"
    +NOCLIP
    -SOLID
    Obituary "%k left %o in the cold."
    States
    {
      Spawn:
        TNT1 A 0
        TNT1 A 1 A_Explode(20,112,0)
        Stop
    }
}

actor IceBoltPuffCharged : IceBoltPuff { Scale 0.7 }

actor IceTrailCharged
{
    Alpha 0.95
    Scale 0.45
    +NOINTERACTION
    +CLIENTSIDEONLY
    RenderStyle Add
    States
    {
      Spawn:
        TNT1 A 0
        ISHX A 1 BRIGHT A_SpawnItemEx("IceTrail",0,0,0,random(-200,200)/100.00,random(-200,200)/100.00,random(-200,200)/100.00,random(-180,180),160,0)
        TNT1 A 0 A_FadeOut(0.1)
        ISHX A 1 BRIGHT A_SpawnItemEx("IceTrail",0,0,0,random(-200,200)/100.00,random(-200,200)/100.00,random(-200,200)/100.00,random(-180,180),160,0)
        TNT1 A 0 A_FadeOut(0.1)
        stop
      Nope:
        TNT1 A 1
        stop
    }
}


ACTOR LibPlasma : Ammo
{
    Inventory.Amount 100
    Inventory.MaxAmount 100
    Ammo.BackpackAmount 100
    Ammo.BackpackMaxAmount 100
    +NOGRAVITY
    States
    {
      Spawn:
        TNT1 A 5
        loop
    }
}

Actor IcePuny
{
	Radius 10
	Height 10
	Speed 35
	Damage (8)
	DamageType "AltIce2"
	RenderStyle Translucent
	Alpha 0.5
	Scale 1.0
	DeathSound "FSTFHIT2"
	Obituary "%k left %o in the cold."
	PROJECTILE
	States
	{
  Spawn:
    TNT1 A 0
    TNT1 A 1 A_SpawnItemEx("MageIceBallParticle", 0, 0, 0, Random(3, 4), 0, Random(-0.5, 0.5), Random(-15, 15), 128)
    Loop
  XDeath:
	TNT1 A 0 A_GiveToTarget("HitBeep",1)
	Goto Death
  Death:
    FFBL CDEFG 4 Bright
    Stop
  }
}

ACTOR LiberatorIceShardMissile
{
   Speed 32
   Damage (3)
   Radius 8
   Height 5
   RenderStyle Add
   Alpha 0.6
   Scale 0.5
   DamageType "AltIce2"
   PROJECTILE
   +BRIGHT
   +DONTBLAST
   +FORCERADIUSDMG
   States
   {
   Spawn:
      ICRD A 4
	  Stop
   XDeath:
	  TNT1 A 0 A_GiveToTarget("HitBeep",1)
	  Goto Death
   Death:
      TNT1 A 0
	  TNT1 A 0 A_PlaySound("ICEIMPCT")
	  TNT1 A 0 A_Jump(125,2) //Sometimes skips ice breaker spawn, else enemies will usually burst into shards of ice with no prior frozen anim.
	  TNT1 A 0 A_SpawnItem("LiberatorIceShardBreaker",0,0,0)
	  TNT1 AAA 0 A_SpawnItemEx("IceShardDebris",0,0,3,random(-2,2),random(-2,2),random(3,9),random(0,359),32)
      Stop
   }
}

Actor LiberatorIceShardBreaker //To break frozen targets.
{
    Speed 2
    Damage (0)
    Radius 10
    Height 10
	PROJECTILE
	Damagetype "AltIce2"
	+NOEXTREMEDEATH
	+DONTBLAST
	+STRIFEDAMAGE
	States
	{
	Spawn:
	  TNT1 A 1
	  Stop
    Death:
      TNT1 A 0
      Stop
   }
}