Actor "Freezer Rifle" : Weapon
{
  SpawnID 30
  Weapon.PreferredSkin "Ionspray-Marine"
  Weapon.SelectionOrder 110
  Weapon.AmmoUse 1
  Weapon.AmmoUse2 1
  Weapon.AmmoGive 40
  Weapon.AmmoType "NewCell"
  Weapon.AmmoType2 "NewCell"
  Inventory.PickupMessage "Freezer Rifle"
  Inventory.PickupSound "freeze/pickup"
  Weapon.UpSound "freeze/up"
  Obituary "%o couldn't handle k's chilled weaponry."
  +INVENTORY.UNDROPPABLE
  Scale 0.8
  States
  {
  Spawn:
	RIPG A -1 
	Stop
  Ready:
    RIPE A 0 A_StopSound(CHAN_WEAPON)
    RIPR ABCD 4 A_WeaponReady
    Loop
  Deselect:
    RIPR A 1 A_Lower
    Loop
  Select:
    RIPR A 1 A_Raise
	Loop
  Fire:
    RIPE A 0 A_GunFlash
    TNT1 A 0 A_PlaySound("weapons/iceshot",5)
	TNT1 A 0 A_FireCustomMissile("NewFreezeBlast2",0.0,0)
	RIPE A 2 A_FireCustomMissile("NewFreezeBlast",0.0)
    RIPE B 2 
	RIPE C 2 
	TNT1 D 0 A_PlaySound("weapons/chill",5,1.0)
	RIPE EFGHI 6 A_Refire
    Goto Ready
  AltFire: 
    RIPE A 0 A_StopSound(CHAN_WEAPON)
    RIPE A 0 A_PlaySound ("freeze/altfire",6)
	RIPE A 1 BRIGHT A_FireCustomMissile("FlameShot",1,14,0,0,random(4.000,-4.000))
    RIPE A 0 A_PlaySound("freeze/althold",CHAN_WEAPON,1.0,True)
	Goto AltHold
  AltHold:
	RIPE CDE 1 BRIGHT A_FireCustomMissile("FlameShot",1,14,0,0,random(4.000,-4.000))
	TNT1 A 0 A_JumpIfNoAmmo("Empty")
	RIPE A 0 A_Refire
    RIPE A 0 A_StopSound(CHAN_WEAPON)
	RIPE A 0 A_PlaySound("freeze/altstop",CHAN_WEAPON)
	RIPE EFGHI 5 A_WeaponReady
	Goto Ready
  "Empty":
    RIPE A 0 A_StopSound(CHAN_WEAPON)
	RIPE EFGHI 5 A_WeaponReady
	Goto Ready
  Flash:
    RIPE A 3 Bright A_Light1
    Goto LightDone
    RIPE B 3 Bright A_Light1
    Goto LightDone
  Spawn:
    RIPG A -1
    Stop
  }
}

actor FreezeBlast
{
  Radius 13
  Height 8
  Speed 55
  Damage 12
  Projectile
  Species "Player"
  +RANDOMIZE
  +THRUSPECIES
  RenderStyle Add
  Alpha 0.75
  scale 0.9
  SeeSound "weapons/iceshot"
  DeathSound "weapons/icehit"
  Obituary "%o got frozen solid by %k."
  DamageType "Ice"
  States
  {
  Spawn:
    FBLS A 6 bright A_SpawnItem("FreezeBlastTrail")
    loop
  Death:
	FBLS BCDE 4 bright
    stop
  }
}

actor FreezeBlastTrail
{
  Radius 13
  Height 8
  Speed 20
  Damage 0
  Projectile
  +RANDOMIZE
  +CLIENTSIDEONLY
  RenderStyle Add
  Alpha 0.75
  SeeSound "weapons/iceshot"
  DeathSound "weapons/icehit"
  Obituary "%o got frozen solid by %k."
  States
  {
  Spawn:
    TNT1 A 0
	TNT1 A 0
    TNT1 A 1 A_JumpIf(ACS_ExecuteWithResult(304) == 1, "Toaster")
    TNT1 A 1
  Fade:
    FRTR ABC 6 bright A_FadeOut(0.2)
    Loop
  Toaster:
    FRTR ABC 6 bright
    Stop
  Death:
    FRTR ABC 4 bright
    Stop
  Toaster:
    TNT1 A 0
	Stop		
  }
}

actor RocketFire
{
 Height 2
 Radius 2
 Speed 3
 RenderStyle Add
 Alpha 0.9
 Scale 0.75
 +NOGRAVITY
 +FORCEXYBILLBOARD
 +DONTSPLASH
 +NOTELEPORT
 +NOBLOCKMAP
 +RIPPER
 +BLOODLESSIMPACT
 +CANNOTPUSH
 -BLOODSPLATTER
 -ACTIVATEPCROSS
 -ACTIVATEIMPACT
 -NOCLIP
 States
 {
 Spawn:
 	64P1 A 0
 	64P1 A 0 A_Jump(127, "Spawn2", "Spawn3")
 	64P1 ABCDEFGHIJKLMNOPQRSTUVWXYZ 1 BRIGHT
 	stop
 Spawn2:
 	64P2 ABCDEFGHIJKLMNOPQRSTUVWXYZ 1 BRIGHT
 	stop
 Spawn3:
 	64P3 ABCDEFGHIJKLMNOPQRSTUVWXYZ 1 BRIGHT
 	stop
 }
}

actor FlameStreamTrail : RocketFire
{
	Scale 0.36
	Alpha 0.32
	Damage 0
	DamageType "Ice"
	Species "Player"
	+MISSILE
	-ACTIVATEIMPACT
	-ACTIVATEPCROSS
	+THRUSPECIES
	States
	{
		Death:
			TNT1 AA 1
			stop
	}
}

ACTOR FlameShot 
{
	Radius 13
	Height 8
	Speed 25
	Damage 4
	Projectile
	+THRUSPECIES
	+RANDOMIZE
	+NOBOSSRIP
	+NODAMAGETHRUST
	-BLOODSPLATTER
	+BLOODLESSIMPACT
	Species "Player"
	RenderStyle Add
	Alpha 0.66
	Scale 0.5
	DeathSound "weapons/flamehit"
	Obituary "$OB_MPFLAMETHROWER"
	Decal "FlameScorch"
	DamageType "Ice"
	States
	{
	Spawn:
		TNT1 A 0 BRIGHT A_PlaySound("weapons/flamehit")
		TNT1 AAAA 1 BRIGHT A_SpawnItemEx("FlameStreamTrail", 0, 0, 0, Random(-1,1)+MOMX, Random(-1,1)+MOMY, Random(-1,1)+MOMZ, 0, SXF_CLIENTSIDE | SXF_ABSOLUTEMOMENTUM, 32)
        TNT1 A 1 BRIGHT A_SpawnItemEx("FlameStreamTrail", 0, 0, 0, Random(-2,2)+MOMX, Random(-2,2)+MOMY, Random(-2,2)+MOMZ, 0, SXF_CLIENTSIDE | SXF_ABSOLUTEMOMENTUM, 32)
		TNT1 A 0 BRIGHT A_SpawnItemEx("FlameStreamTrail", 0, 0, 0, Random(-3,3)+MOMX, Random(-3,3)+MOMY, Random(-3,3)+MOMZ, 0, SXF_CLIENTSIDE | SXF_ABSOLUTEMOMENTUM, 32)
		TNT1 A 1 BRIGHT A_SpawnItemEx("FlameStreamTrail", 0, 0, 0, Random(-3,3)+MOMX, Random(-3,3)+MOMY, Random(-3,3)+MOMZ, 0, SXF_CLIENTSIDE | SXF_ABSOLUTEMOMENTUM, 32)
		TNT1 A 0 BRIGHT A_SpawnItemEx("FlameStreamTrail", 0, 0, 0, Random(-3,3)+MOMX, Random(-3,3)+MOMY, Random(-3,3)+MOMZ, 0, SXF_CLIENTSIDE | SXF_ABSOLUTEMOMENTUM, 32)
		TNT1 A 1 BRIGHT A_SpawnItemEx("FlameStreamTrail", 0, 0, 0, Random(-4,4)+MOMX, Random(-4,4)+MOMY, Random(-4,4)+MOMZ, 0, SXF_CLIENTSIDE | SXF_ABSOLUTEMOMENTUM, 32)
		TNT1 A 18 BRIGHT
		Stop
	Death:
		TNT1 A 0
		stop
	}
}

Actor ZombieFlameShot : FlameShot
{
Species ""
-THRUSPECIES
States
{
Death:
		TNT1 A 0
		stop
	}
}

Actor FRZRFlameShot : FlameShot
{
Species "Fatsos"
+THRUSPECIES
States
{
Death:
		TNT1 A 0
		stop
	}
}

ACTOR FlameShot2 : FlameShot 
{
	Decal ""
	speed 25
	States
	{
	Death:
		TNT1 A 1
		Stop
	}
}

Actor NewZombieFreezeBlast
{
	PROJECTILE
    +RANDOMIZE
    Radius 13
    Height 8
    Speed 55
    Damage 12
	RenderStyle Translucent
	Scale 0.9
	Alpha 0.75
	 SeeSound "weapons/iceshot2"
    DeathSound "weapons/icehit2"
    DamageType "Ice"
	States 
	{
	Spawn:
        TNT1 A 0 Bright A_CustomMissile("ICBTrail",Random(4,6),Random(-2,2))
		ISHR A 2 Bright A_CustomMissile("ProjectileTrailParticleBlue",Random(4,6),Random(-2,2))
		TNT1 A 0 Bright A_CustomMissile("ICBTrail",Random(4,6),Random(-2,2))	
		ISHR B 2 Bright A_CustomMissile("ProjectileTrailParticleBlue",Random(4,6),Random(-2,2))
		Loop
	Death:
	    TNT1 A 0
		TNT1 AAA 0 A_CustomMissile("Kaboom6", 0, 0, random(0,360), 2, random(0,360))
		TNT1 AAAA 0 A_SpawnItemEx("IceDebris",0,0,0,Random(4,-4),Random(4,-4),Random(4,8),0,128)
		TNT1 AAA 0 Bright A_CustomMissile("Kaboom6", 0, 0, random(0,360), 2, random(0,360))
		Stop
	}
}

Actor NewFreezeBlast
{
	PROJECTILE
    +RANDOMIZE
	+THRUSPECIES
	Species "Player"
    Radius 13
    Height 8
    Speed 55
    Damage 12
	RenderStyle add
	Alpha 0.75
	 SeeSound "weapons/iceshot2"
    DeathSound "weapons/icehit2"
    DamageType "Ice"
	States 
	{
	Spawn:
        TNT1 A 0 Bright A_CustomMissile("ICBTrail",Random(4,6),Random(-2,2))
		ISHR A 2 Bright A_CustomMissile("ProjectileTrailParticleBlue",Random(4,6),Random(-2,2))
		TNT1 A 0 Bright A_CustomMissile("ICBTrail",Random(4,6),Random(-2,2))	
		ISHR B 2 Bright A_CustomMissile("ProjectileTrailParticleBlue",Random(4,6),Random(-2,2))
		Loop
	Death:
	    TNT1 A 0
		TNT1 AAA 0 A_CustomMissile("Kaboom6", 0, 0, random(0,360), 2, random(0,360))
		TNT1 AAAA 0 A_SpawnItemEx("IceDebris",0,0,0,Random(4,-4),Random(4,-4),Random(4,8),0,128)
		TNT1 AAA 0 Bright A_CustomMissile("Kaboom6", 0, 0, random(0,360), 2, random(0,360))
		Stop
	}
}

ACTOR NewFreezeBlast2 : NewFreezeBlast 
{
  Damage 1
  DamageType "None"
  States {
	Spawn:
        TNT1 A 1
		Loop
	Death:
	    TNT1 A 1
		Stop
	}
}

ACTOR ICBTrail
{
  Radius 8
  Height 16
  Scale 0.30
  RenderStyle Add
  Alpha 0.67
  PROJECTILE
  +CLIENTSIDEONLY
  +Randomize
  states
  {
  Spawn:
  	TNT1 A 0
    TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(304) == 1, "Toaster")
    PLSS JKLMNOPQRSTUVWXYZ 2 Bright A_FadeOut
    goto death
  Death:
    TNT1 A 0 A_SpawnItemEx("IceSparkle", 0, 0, 0, random(-2, 2), random(-2, 2), random(-1, 1),0,128)
    TNT1 A 0 A_SpawnItemEx("IceSparkle", 0, 0, 0, random(-2, 2), random(-2, 2), random(-1, 1),0,128)
    TNT1 A 0 A_SpawnItemEx("IceSparkle", 0, 0, 0, random(-2, 2), random(-2, 2), random(-1, 1),0,128)
    PLSS JKLMNOPQRSTUVWXYZ 2 Bright A_FadeOut(0,05)
    goto death+3
  Toaster:
    TNT1 A 0
	Stop		
  }
}

Actor IceSparkle
{
  renderstyle translucent
  alpha 0.5
  radius 0
  height 0
  +NOGRAVITY
  +NOBLOCKMAP
  +NOLIFTDROP
  +NOTARGET
  +DONTSQUASH
  +NOTELEOTHER
  +NONSHOOTABLE
  +CLIENTSIDEONLY
  States
  {
  Spawn:
    ICE2 A 0
    ICE2 A 0 
    ICE2 ABC 4 A_FadeOut(0.10)
    Goto Spawn+1
  }
}
Actor FrozenWind
{
+MISSILE
+DONTSPLASH
+CLIENTSIDEONLY
+NOBLOCKMAP
+NOGRAVITY
+NOTELEPORT
+FORCEXYBILLBOARD
+THRUACTORS
RenderStyle Add
Scale 0.4
States
{
Spawn:
PLSS JKLMNOPQRSTUVWXYZ 2 Bright A_FadeOut
	}
}

ACTOR IceDebris
{
Radius 3
Scale 0.4
+MISSILE
+CLIENTSIDEONLY
+DOOMBOUNCE
+NOTELEPORT
+FORCEXYBILLBOARD
+THRUACTORS
+DROPOFF
BounceCount 3
BounceFactor 0.4
WallBounceFactor 0.3
States
{
Spawn:
	TNT1 A 0
	TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(304) == 1, "Toaster")
	ICEC AB 2
	Loop
Death:
	TNT1 A 0
	TNT1 A 0 A_Jump(128,3,5)
	ICEC C 50
	ICEC C 5 A_FadeOut(0.10)
	Goto Death+3
	ICEC C 50
	ICEC C 5 A_FadeOut(0.10)
	Goto Death+5
	ICEC D 50
	ICEC D 5 A_FadeOut(0.10)
	Goto Death+7
Toaster:
	TNT1 A 0
	Stop
	}
}