//////////////////////////////////////////////////////////////
///														   ///
///				  Freezer canon			       			   ///
///		script parts from BD's BFG10k & plasmagun		   ///
//////////////////////////////////////////////////////////////
Actor CatsFreezer : BrutalWeapon
{
  Radius 20
  Height 20
  Weapon.AmmoUse1 0
  Weapon.AmmoUse2 0
  Weapon.AmmoGive1 0
  Weapon.AmmoGive2 50
  Weapon.AmmoType1 "AmmoCell"
  Weapon.AmmoType2 "FreezerAmmo"
  Weapon.Kickback 100
  Weapon.SelectionOrder 3500
  Inventory.Pickupmessage "You got the Freezer ! (slot 6)"
  Obituary "%o was frozen by %k's Freezer"
  Tag "Freezer"
  States
  {
	
  Spawn:
    FRZR ABCBACBCACBACABACB 3
	Loop
  Ready:
  Ready2:
  Ready3:
  SteadY:
  	TNT1 A 0 A_JumpIfInventory("FreezerAmmo",1,2)
	Goto SteadY2
    FR1D A 0 A_CheckReload
    FR1D A 0 A_JumpIfInventory("Reloading",1,"Reload")
    FR1D A 0 A_JumpIfInventory("FreezerAmmo",1,2)
    Goto Reload
	
	FR1D A 0
    FR1D A 3 A_WeaponReady
	FR1D A 0 A_GunFlash
	FR1D A 0 A_PlaySound("FRZIDLE", 6,0.2,1)
	TNT1 A 0 A_JumpIfInventory("Reloading",1,"Reload")
	FR1D A 0 A_JumpIfInventory("Kicking",1,"DoKick")
        FR1D A 0 A_JumpIfInventory("Taunting",1,"Taunt")
		FR1D A 0 A_JumpIfInventory("Salute1", 1, "Salute")
		FR1D A 0 A_JumpIfInventory("Salute2", 1, "Salute")
		FR1D A 0 A_JumpIfInventory("TossGrenade",1,"TossGrenade")
		FR1D A 0 A_JumpIfInventory("IsRunning",1,"CheckSprint")
		FR1D A 0 A_JumpIfInventory("Unloading",1,"Unload")
		
		    FR1D B 3 A_WeaponReady
		FR1D A 0 A_PlaySound("FRZIDLE", 6,0.2,1)
		TNT1 A 0 A_JumpIfInventory("Reloading",1,"Reload")
	FR1D A 0 A_JumpIfInventory("Kicking",1,"DoKick")
        FR1D A 0 A_JumpIfInventory("Taunting",1,"Taunt")
		FR1D A 0 A_JumpIfInventory("Salute1", 1, "Salute")
		FR1D A 0 A_JumpIfInventory("Salute2", 1, "Salute")
		FR1D A 0 A_JumpIfInventory("TossGrenade",1,"TossGrenade")
		FR1D A 0 A_JumpIfInventory("IsRunning",1,"CheckSprint")
		FR1D A 0 A_JumpIfInventory("Unloading",1,"Unload")
		
		    FR1D C 3 A_WeaponReady
		FR1D A 0 A_PlaySound("FRZIDLE", 6,0.2,1)
		TNT1 A 0 A_JumpIfInventory("Reloading",1,"Reload")
	    FR1D A 0 A_JumpIfInventory("Kicking",1,"DoKick")
        FR1D A 0 A_JumpIfInventory("Taunting",1,"Taunt")
		FR1D A 0 A_JumpIfInventory("Salute1", 1, "Salute")
		FR1D A 0 A_JumpIfInventory("Salute2", 1, "Salute")
		FR1D A 0 A_JumpIfInventory("TossGrenade",1,"TossGrenade")
		FR1D A 0 A_JumpIfInventory("IsRunning",1,"CheckSprint")
		FR1D A 0 A_JumpIfInventory("Unloading",1,"Unload")
    Loop
	
	SteadY2:
	FRNA A 0
    FRNA A 3 A_WeaponReady
	FRNA A 0 A_GunFlash
	TNT1 A 0 A_StopSound(6)
	TNT1 A 0 A_JumpIfInventory("Reloading",1,"Reload")
	FRNA A 0 A_JumpIfInventory("Kicking",1,"DoKick")
        FRNA A 0 A_JumpIfInventory("Taunting",1,"Taunt")
		FRNA A 0 A_JumpIfInventory("Salute1", 1, "Salute")
		FRNA A 0 A_JumpIfInventory("Salute2", 1, "Salute")
		FRNA A 0 A_JumpIfInventory("TossGrenade",1,"TossGrenade")
		FRNA A 0 A_JumpIfInventory("IsRunning",1,"CheckSprint")
		
		
		    FRNA A 3 A_WeaponReady
		TNT1 A 0 A_JumpIfInventory("Reloading",1,"Reload")
	FRNA A 0 A_JumpIfInventory("Kicking",1,"DoKick")
        FRNA A 0 A_JumpIfInventory("Taunting",1,"Taunt")
		FRNA A 0 A_JumpIfInventory("Salute1", 1, "Salute")
		FRNA A 0 A_JumpIfInventory("Salute2", 1, "Salute")
		FRNA A 0 A_JumpIfInventory("TossGrenade",1,"TossGrenade")
		FRNA A 0 A_JumpIfInventory("IsRunning",1,"CheckSprint")
		
		
		    FRNA A 3 A_WeaponReady
		FRNA A 0 A_JumpIfInventory("Reloading",1,"Reload")
	FRNA A 0 A_JumpIfInventory("Kicking",1,"DoKick")
        FRNA A 0 A_JumpIfInventory("Taunting",1,"Taunt")
		FRNA A 0 A_JumpIfInventory("Salute1", 1, "Salute")
		FRNA A 0 A_JumpIfInventory("Salute2", 1, "Salute")
		FRNA A 0 A_JumpIfInventory("TossGrenade",1,"TossGrenade")
		FRNA A 0 A_JumpIfInventory("IsRunning",1,"CheckSprint")
		FRNA A 0 A_JumpIfInventory("FreezerAmmo",1,"Ready")
		
		
    Loop
	
Deselect:
	TNT1 A 0 A_StopSound(6)
	FZNA ABCD 1
	FZNA A 0 A_TakeInventory("TossGrenade", 1)
	FZNA A 0 A_TakeInventory("HasFreezerWeapon", 1)
	FZNA DDDDDDDDDDDDDDD 0 A_Lower
	TNT1 D 1 A_Lower
	Wait	

  Select:
	FR1D A 0 A_Giveinventory("GoSpecial",1)
  	FR1D A 0 A_Takeinventory("FistsSelected",1)
	FR1D A 0 A_Takeinventory("SawSelected",1)
	FR1D A 0 A_Takeinventory("ShotgunSelected",1)
	FR1D A 0 A_Takeinventory("SSGSelected",1)
	FR1D A 0 A_Takeinventory("MinigunSelected",1)
	FR1D A 0 A_Takeinventory("PlasmaGunSelected",1)
	FR1D A 0 A_Takeinventory("RocketLauncherSelected",1)
    FR1D A 0 A_Takeinventory("GrenadeLauncherSelected",1)
	FR1D A 0 A_Takeinventory("BFGSelected",1)
	FR1D A 0 A_Giveinventory("BFG10kSelected",1)
	FR1D A 0 A_Takeinventory("RailGunSelected",1)
	FR1D A 0 A_Takeinventory("SubMachineGunSelected",1)
	FR1D A 0 A_Takeinventory("RevenantLauncherSelected",1)
	FR1D A 0 A_Takeinventory("LostSoulSelected",1)
	FR1D A 0 A_Takeinventory("FlameCannonSelected",1)
	FR1D A 0 A_Takeinventory("HasBarrel",1)
	
	SelectAnimation:
		TNT1 A 1 A_Raise
		TNT1 AAAAAA 0 A_Raise
		FRDD A 1
	    FRDD A 0 A_JumpIfInventory("GoFatality", 1, "Steady")
		FRDD A 0 A_PlaySound("BFGREADY", 3)
        FRDD ABCDE 1
        FRDD A 0 A_GunFlash
		Goto Ready	
		
//Primary fire------------------------------------------------------------------		
  Fire:
    FR1D A 0 A_CheckReload
    FR1D A 0 A_JumpIfInventory("Reloading",1,"Reload")
    FR1D A 0 A_JumpIfInventory("FreezerAmmo",1,2)
    Goto NoAmmo
	TNT1 AAAA 0
    FRFI A 5 A_PlaySound("BEP", 4, 0.5)
    FRFI ABC 2 BRIGHT
	FRFI A 0 A_StopSound(4)
	
    Goto Hold +8
	
  Hold:	
    FR1D A 0 A_JumpIfInventory("FreezerAmmo",1,2)
    Goto NoAmmo
	TNT1 AAAA 0
    FRFI AABBC 1 BRIGHT
  	FR1D A 0 A_Giveinventory("HasFreezerWeapon",1)
	FR1D A 0 A_CheckReload
    FR1D A 0 A_JumpIfInventory("Reloading",1,"Reload")
    FRFI D 1 BRIGHT A_FireCustomMissile("BlueFlareSpawn",0,0,0,0)
	FRFI A 0 A_PlaySound("10KFIRE", 1)
	FRFI A 0 A_ZoomFactor(0.98)
    FRFI E 1 BRIGHT A_FireCustomMissile("CryoShot",0,0,0,0)
	FRFI A 0 A_ZoomFactor(1.0)
	FRFI A 0 A_Takeinventory("FreezerAmmo",2)
    FRFI F 1 BRIGHT A_FireCustomMissile("BlueFlareSpawn",0,0,0,0)
    FRFI F 0 A_ReFire
    FRFI GHIJ 2 A_PlaySound("10KSTOP", 4, 0.5)
	FR1D A 0 A_Takeinventory("HasFreezerWeapon",1)
    Goto Ready
  	
// Charging up secondary ------------------------------------------------------------

	AltFire:
        FR1D A 0 A_JumpIfInventory("Reloading",1,"Reload")
        FR1D A 0 A_JumpIfInventory("FreezerAmmo",33,2)
        Goto NoAmmo
        TNT1 AAA 0
		FR1D A 0 A_Giveinventory("HasFreezerWeapon",1)
		FR1D A 0 A_PlaySound("PLSCHARG")
		FRFI A 1 BRIGHT A_FireCustomMissile("BlueFlareSpawn",0,0,0,0)
		FRFI B 1 BRIGHT A_Takeinventory("FreezerAmmo",1)
		FRFI C 1 BRIGHT A_FireCustomMissile("BlueFlareSpawn",0,0,0,0)
		FRFI D 1 BRIGHT 
		FRFI A 1 BRIGHT A_FireCustomMissile("BlueFlareSpawn",0,0,0,0)
		FRFI B 1 BRIGHT A_Takeinventory("FreezerAmmo",1)
		FRFI C 1 BRIGHT A_FireCustomMissile("BlueFlareSpawn",0,0,0,0)
		FRFI D 1 BRIGHT 
		FRFI A 1 BRIGHT A_FireCustomMissile("BlueFlareSpawn",0,0,0,0)
		FRFI B 1 BRIGHT A_Takeinventory("FreezerAmmo",2)
		FRFI C 1 BRIGHT A_FireCustomMissile("BlueFlareSpawn",0,0,0,0)
		FRFI D 1 BRIGHT 
		FRFI A 1 BRIGHT A_FireCustomMissile("BlueFlareSpawn",0,0,0,0)
		FRFI B 1 BRIGHT A_Takeinventory("FreezerAmmo",3)
		FRFI C 1 BRIGHT A_FireCustomMissile("BlueFlareSpawn",0,0,0,0)
		FRFI D 1 BRIGHT 
		FRFI A 1 BRIGHT A_FireCustomMissile("BlueFlareSpawn",0,0,0,0)
		FRFI B 1 BRIGHT A_Takeinventory("FreezerAmmo",3)
		FRFI C 1 BRIGHT A_FireCustomMissile("BlueFlareSpawn",0,0,0,0)
		FRFI D 1 BRIGHT 
		FRFI A 1 BRIGHT A_FireCustomMissile("BlueFlareSpawn",0,0,0,0)
		FRFI B 1 BRIGHT A_Takeinventory("FreezerAmmo",4)
		FRFI C 1 BRIGHT A_FireCustomMissile("BlueFlareSpawn",0,0,0,0)
		FRFI D 1 BRIGHT
		FRFI A 1 BRIGHT A_FireCustomMissile("BlueFlareSpawn",0,0,0,0)
		FRFI B 1 BRIGHT A_Takeinventory("FreezerAmmo",4)
		FRFI C 1 BRIGHT A_FireCustomMissile("BlueFlareSpawn",0,0,0,0)
		FRFI D 1 BRIGHT
		FRFI A 1 BRIGHT A_FireCustomMissile("BlueFlareSpawn",0,0,0,0)
		FRFI B 1 BRIGHT A_Takeinventory("FreezerAmmo",5)
		FRFI C 1 BRIGHT A_FireCustomMissile("BlueFlareSpawn",0,0,0,0)
		FRFI D 1 BRIGHT
		FRFI A 1 BRIGHT A_FireCustomMissile("BlueFlareSpawn",0,0,0,0)
		FRFI B 1 BRIGHT A_Takeinventory("FreezerAmmo",5)
		FRFI C 1 BRIGHT A_FireCustomMissile("BlueFlareSpawn",0,0,0,0)
		FRFI D 1 BRIGHT
		FRFI A 1 BRIGHT A_FireCustomMissile("BlueFlareSpawn",0,0,0,0)
		FRFI B 1 BRIGHT A_Takeinventory("FreezerAmmo",6)
		FRFI C 1 BRIGHT A_FireCustomMissile("BlueFlareSpawn",0,0,0,0)
		FRFI D 1 BRIGHT

	PLSN A 0 A_PlaySound("PLSFULL", 6, 0.8, 1)
	PLSN A 0 A_ReFire

// Holding Charge ------------------------------------------------------------

AltHold:
	
	FR1D A 0 A_FireCustomMissile("BlueFlareSpawn",0,0,0,0)
	FR1D A 0 A_JumpIfInventory("Reloading",1,"Cancel")
	FRFI A 1 BRIGHT offset (0, 32)
	
	FR1D A 0 A_FireCustomMissile("BlueFlareSpawn",0,0,0,0)
	FR1D A 0 A_JumpIfInventory("Reloading",1,"Cancel")
	FRFI C 1 BRIGHT offset (0, 33)
	
	FR1D A 0 A_FireCustomMissile("BlueFlareSpawn",0,0,0,0)
	FR1D A 0 A_JumpIfInventory("Reloading",1,"Cancel")
	FRFI A 1 BRIGHT offset (1, 32)
	
	FR1D A 0 A_FireCustomMissile("BlueFlareSpawn",0,0,0,0)
	FR1D A 0 A_JumpIfInventory("Reloading",1,"Cancel")
	FRFI C 1 BRIGHT offset (-1, 32)
    
	FR1D A 0 A_ReFire

// Let Fly --------------------------------------------------------------------------

	FR1D A 0 A_StopSound(6)
	FRFI A 1 A_PlaySound("PLSALTFR")
	FR1D A 0 A_ZoomFactor(0.9)
	FRFI B 2 BRIGHT A_Recoil(3)
	FR1D A 0 A_StopSound(6)
	FR1D A 0 A_ZoomFactor(1.0)
	//FR1D A 0 A_FireCustomMissile("SmallFreezerBall", -8, 0, -1, 0, 0, random(-2,2))
	//FR1D A 0 A_FireCustomMissile("SmallFreezerBall", -6, 0, -1, 0, 0, random(-2,2))
	//FR1D A 0 A_FireCustomMissile("SmallFreezerBall", -4, 0, -1, 0, 0, random(-2,2))
	FR1D A 0 A_FireCustomMissile("FreezerBall", -2, 0, -1, 0, 0, random(-2,2))
	FR1D A 0 A_FireCustomMissile("FreezerBall", 0, 0, -1, 0, 0, 0)
	//FR1D A 0 A_FireCustomMissile("FreezerBall", 1, 0, -1, 0, 0, random(-2,2))
	FR1D A 0 A_FireCustomMissile("FreezerBall", 2, 0, -1, 0, 0, random(-2,2))
	//FR1D A 0 A_FireCustomMissile("SmallFreezerBall", 4, 0, -1, 0, 0, random(-2,2))
	//FR1D A 0 A_FireCustomMissile("SmallFreezerBall", 6, 0, -1, 0, 0, random(-2,2))
	//FR1D A 0 A_FireCustomMissile("SmallFreezerBall", 8, 0, -1, 0, 0, random(-2,2))
		FR1D A 0 A_FireCustomMissile("BlueFlareSpawn",-5,0,0,0)
        FRFI GGG 1
		FR1D A 0 A_SetPitch(pitch - 8.0)
        FR1D ABC 2 A_FireCustomMissile("SmokeSpawner",0,0,10,5)
		FRFI GHIJ 4
		FR1D ABC 2
        FR1D A 0 A_PlaySound("BEPBEP")
		FR1D A 0 A_PlaySound("BEPBEP", 6)
		FR1D A 0 A_Takeinventory("HasFreezerWeapon",1)
		Goto Ready
Cancel:

			FR1D A 0 A_TakeInventory("Reloading",1)
			FR1D A 0 A_StopSound(6)
			FR1D A 0 A_PlaySound("decharg", 5)

		FRFI A 1 BRIGHT A_FireCustomMissile("BlueFlareSpawn",0,0,0,0)
		FRFI B 1 BRIGHT A_Giveinventory("FreezerAmmo",1)
		FRFI C 1 BRIGHT A_FireCustomMissile("BlueFlareSpawn",0,0,0,0)
		FRFI D 1 BRIGHT 
		FRFI A 1 BRIGHT A_FireCustomMissile("BlueFlareSpawn",0,0,0,0)
		FRFI B 1 BRIGHT A_Giveinventory("FreezerAmmo",1)
		FRFI C 1 BRIGHT A_FireCustomMissile("BlueFlareSpawn",0,0,0,0)
		FRFI D 1 BRIGHT 
		FRFI A 1 BRIGHT A_FireCustomMissile("BlueFlareSpawn",0,0,0,0)
		FRFI B 1 BRIGHT A_Giveinventory("FreezerAmmo",2)
		FRFI C 1 BRIGHT A_FireCustomMissile("BlueFlareSpawn",0,0,0,0)
		FRFI D 1 BRIGHT 
		FRFI A 1 BRIGHT A_FireCustomMissile("BlueFlareSpawn",0,0,0,0)
		FRFI B 1 BRIGHT A_Giveinventory("FreezerAmmo",3)
		FRFI C 1 BRIGHT A_FireCustomMissile("BlueFlareSpawn",0,0,0,0)
		FRFI D 1 BRIGHT 
		FRFI A 1 BRIGHT A_FireCustomMissile("BlueFlareSpawn",0,0,0,0)
		FRFI B 1 BRIGHT A_Giveinventory("FreezerAmmo",3)
		FRFI C 1 BRIGHT A_FireCustomMissile("BlueFlareSpawn",0,0,0,0)
		FRFI D 1 BRIGHT 
		FRFI A 1 BRIGHT A_FireCustomMissile("BlueFlareSpawn",0,0,0,0)
		FRFI B 1 BRIGHT A_Giveinventory("FreezerAmmo",4)
		FRFI C 1 BRIGHT A_FireCustomMissile("BlueFlareSpawn",0,0,0,0)
		FRFI D 1 BRIGHT A_PlaySound("plscool", 7)
		FRFI A 1 BRIGHT A_FireCustomMissile("BlueFlareSpawn",0,0,0,0)
		FRFI B 1 BRIGHT A_Giveinventory("FreezerAmmo",4)
		FRFI C 1 BRIGHT A_FireCustomMissile("BlueFlareSpawn",0,0,0,0)
		FRFI D 1 BRIGHT
		FRFI A 1 BRIGHT A_FireCustomMissile("BlueFlareSpawn",0,0,0,0)
		FRFI B 1 BRIGHT A_Giveinventory("FreezerAmmo",5)
		FRFI C 1 BRIGHT A_FireCustomMissile("BlueFlareSpawn",0,0,0,0)
		FRFI D 1 BRIGHT
		FRFI A 1 BRIGHT A_FireCustomMissile("BlueFlareSpawn",0,0,0,0)
		FRFI B 1 BRIGHT A_Giveinventory("FreezerAmmo",5)
		FRFI C 1 BRIGHT A_FireCustomMissile("BlueFlareSpawn",0,0,0,0)
		FRFI D 1 BRIGHT
		FRFI A 1 BRIGHT A_FireCustomMissile("BlueFlareSpawn",0,0,0,0)
		FRFI B 1 BRIGHT A_Giveinventory("FreezerAmmo",6)
		FRFI C 1 BRIGHT A_FireCustomMissile("BlueFlareSpawn",0,0,0,0)
		FRFI D 1 BRIGHT

			FR1D A 0 A_TakeInventory("HasFreezerWeapon", 1)
			FR1D A 0 A_TakeInventory("Reloading",1)
			FR1D A 0 A_PlaySound("BEPBEP", 5, 1.2)
			FR1D A 0 A_ClearReFire
		Goto Ready				
  NoAmmo:
		FRNA A 0
		TNT1 A 0 A_StopSound(6)
		FRNA A 0 A_ZoomFactor(1.0)
		FRNA A 0 A_Takeinventory("Zoomed",1)
		FRNA A 0 A_Takeinventory("ADSmode",1)
		FRNA A 0 A_JumpIfInventory("TurboReload",1,"TurboReloadLoop")
		TNT1 A 0 A_PlaySound("weapons/empty", 4)
	NoAmmo2:
		FRNA A 0 A_JumpIfInventory("TossGrenade",1,"TossGrenade")
	    FRNA A 0 A_JumpIfInventory("Taunting",1,"Taunt")
		FRNA A 0 A_JumpIfInventory("Salute1", 1, "Salute")
		FRNA A 0 A_JumpIfInventory("Salute2", 1, "Salute")
		FRNA A 0 A_JumpIfInventory("IsRunning",1,"CheckSprint")
		FRNA A 0 A_JumpIfInventory("ExecuteDownedEnemy", 1, "DoExecution")
		FRNA A 0 A_JumpIfInventory("Kicking",1,"DoKick")
		FRNA A 5 A_WeaponReady(WRF_ALLOWRELOAD | WRF_NOFIRE)
		FRNA A 0 A_JumpIfInventory("Reloading",1,"Reload")
		FRNA A 0 A_JumpIfInventory("TurboReload",1,"TurboReloadLoop")
		TNT1 A 0 A_JumpIfInventory("NoAutoReload", 1, "NoAmmo2")
		FRNA A 0 A_JumpIfInventory("AmmoCell",1,"Reload")
		FRNA A 0 A_JumpIfInventory("FiredPrimary",1,"NoAmmo2")
		Goto SteadY2	
// --------------------------------------------------------------------------
//
//	Reload
//
// --------------------------------------------------------------------------

	Reload:
		TNT1 A 0 A_Takeinventory("Reloading",1)
		TNT1 A 0 A_JumpIfInventory("FreezerAmmo",50,"Ready")
		TNT1 A 0 A_JumpIfInventory("AmmoCell",1,1)
		Goto Ready
	
		TNT1 A 0 A_JumpIfInventory("TurboReload",1,"TurboReloadLoop")
		FRNA A 3
		TNT1 A 0 A_StopSound(6)
		//TNT1 A 0 A_FireCustomMissile("EmptyFreeze",-210,0,20,-20)
		FRNA A 1
		FRNA A 1 A_SetPitch(-0.2 + pitch)
		FRNA A 1 A_SetPitch(+0.2 + pitch)
		TNT1 A 0 A_PlaySound("PLREADY",1)
		FRRL BCDDEEFGHZZZZZZZZ 1
		FRRL ZZZZZZZZZHIIJJKLM 1
		FR1D A 0 A_PlaySound("FRZIDLE", 6,0.2,1)
		TNT1 A 0 A_StopSound(1)

	ReloadLoop:
		TNT1 A 0 A_JumpIfInventory("FreezerAmmo",50,"ReloadDone")
		TNT1 A 0 A_JumpIfInventory("AmmoCell",1,1)
		Goto ReloadDone
		TNT1 A 0 A_Giveinventory("FreezerAmmo",1)
		TNT1 A 0 A_Takeinventory("AmmoCell",1)
		Goto ReloadLoop

	ReloadDone:
		//TNT1 A 0 A_JumpIfInventory("RailgunPowerMode",1,1)
		//Goto Ready
		TNT1 A 0 A_PlaySound("BEP",5,0.7)
		FR1D ABC 3
		Goto Ready

	TurboReloadLoop:
		TNT1 A 0 A_JumpIfInventory("FreezerAmmo",50,5)
		TNT1 A 0 A_JumpIfInventory("AmmoCell",1,2)
		TNT1 A 0 A_Jump(256,3)
		TNT1 A 0 A_Giveinventory("FreezerAmmo",1)
		TNT1 A 0 A_Takeinventory("AmmoCell",1)
		Goto TurboReloadLoop
		TNT1 A 0 A_Refire
		Goto Ready

	Unload:

		FR1D A 0 A_Takeinventory("Unloading",1)
		FR1D A 0 A_JumpIfInventory("AmmoCell",1,7)
		Goto Ready
		TNT1 AAAAA 0
		FR1D A 0 A_PlaySound("BEP")
		FR1D ABC 1 A_WeaponReady(WRF_NOFIRE)
		PLSN A 0 A_PlaySound("BEP")
		FR1D ABC 1 A_WeaponReady(WRF_NOFIRE)
		TNT1 A 0 A_PlaySound("PLREADY",1)
        TNT1 AAAA 0
		FRRL MMLKJJIIHZZZZZZZZZ 1
		TNT1 A 0 A_StopSound(1)
		FRRL ZZZZZZZZHGFEEDDCB 1
		
		
	UnloadingSequence:
		FRRL A 0
		FRRL A 0 A_Takeinventory("Unloading",1)
		FRRL A 0 A_JumpIfInventory("FreezerAmmo",1,3)
		Goto Ready
        TNT1 AAAAAAA 0
		FRRL A 0 A_Takeinventory("FreezerAmmo",1)
		//FRRL A 0 A_Takeinventory("DoubleFreezerAmmo",1)
		FRRL A 0 A_Giveinventory("AmmoCell",1)
		Goto UnloadingSequence
		
//Baseweapon--------------------------------------------------------------------
	
  Taunt: //43 frames
		TNT1 A 0 A_GunFlash("TauntFlash")
		TNT1 A 5
		TNT1 A 0 A_JumpIfInventory("GenderFemale",1,3)
		TNT1 A 5 A_PlaySound("FUCK",2)
		TNT1 A 0 A_Jump(256,2)
		TNT1 A 5 A_PlaySound("FTAUNT",2)
		FUCK A 1
		TNT1 A 0 A_FireCustomMissile("Taunter",0,0,-1,0)
		TNT1 A 0 A_FireCustomMissile("Taunter",-9,0,-1,0)
		TNT1 A 0 A_FireCustomMissile("Taunter",9,0,-1,0)
		FUCK BCD 1 A_AlertMonsters
		FUCK E 15 A_Takeinventory("Taunting",1)
		FUCK DCBA 1
		TNT1 A 10
		TNT1 A 0 A_Jump(256,"Ready")
		Goto Ready
			
	
 DoKick:
		TNT1 A 0 A_JumpIfInventory("ExecuteDownedEnemy",1,"DoExecution")
		TNT1 A 0 A_JumpIf(momZ > 0,"AirKick")
		TNT1 A 0 A_JumpIf(momZ < 0,"AirKick")
		TNT1 A 0 A_JumpIf((ABS (VelY) < 1) && (ABS (VelX) < 1),2)
		TNT1 A 0 A_JumpIfInventory("IsCrouching",1,"SlideAttack")
		TNT1 A 0 A_GunFlash("KickFlash")
		TNT1 A 0 A_JumpIf(pitch > 10,"LowKickChecker1")
		Goto InitializeNormalKick
		
	LowKickChecker1:
		TNT1 A 0 A_JumpIf(pitch > 90,"InitializeNormalKick")
		TNT1 A 0 A_FireCustomMissile("KickAttackDetectDowned",0,0,0,0)
		
	InitializeNormalKick: //16 frames
		TNT1 A 0 A_PlaySound("KICK")
		TNT1 A 0 SetPlayerProperty(0,1,0)
		KICK BCD 1
		TNT1 A 0 A_jumpifinventory("PowerStrength",1,3)
		TNT1 A 0 A_FireCustomMissile("KickAttack",0,0,0,-7)
		TNT1 A 0 A_Jump(256,2)
		TNT1 A 0 A_FireCustomMissile("SuperKickAttack",0,0,0,-7)
		KICK H 5
		TNT1 A 0 A_Takeinventory("Kicking",1)
		KICK IGFEDCBA 1 
		TNT1 A 0 SetPlayerProperty(0,0,0)
		TNT1 A 0 A_JumpIfInventory("ExecuteDownedEnemy",1,"DoExecution")
		TNT1 A 0 A_JumpIfInventory("GoFatality",1,"Steady")
		TNT1 A 0 A_Jump(256,"Ready2")
		Goto Ready
	
  AirKick: //18 frames
		TNT1 A 0 A_GunFlash("AirKickFlash")
		TNT1 A 0 A_PlaySound("KICK")
		TNT1 A 0 A_Recoil(-6)
		KICK JKLMN 1
		TNT1 A 0 A_jumpifinventory("PowerStrength",1,3)
		TNT1 A 0 A_FireCustomMissile("AirKickAttack",0,0,0,-31)
		TNT1 A 0 A_Jump(256,2)
		TNT1 A 0 A_FireCustomMissile("SuperAirKickAttack",0,0,0,-31)
		KICK O 3
		TNT1 A 0 A_Takeinventory("Kicking",1)
		KICK PQRST 2
		TNT1 A 0 A_JumpIfInventory("GoFatality",1,"Steady")
		TNT1 A 0 A_Jump(256,"Ready2")
		Goto Ready
		
 	SlideAttack:
		TNT1 A 0 SetPlayerProperty(0,1,0)
		KICK A 0 A_Takeinventory("Kicking",1)
		TNT1 A 0 A_PlaySound("KICK")
		TNT1 A 0 A_Recoil (-6)
		TNT1 A 0 A_PlaySound("SlideKickStart", 5)
		TNT1 A 0 A_GunFlash("SlideKickStartFlash")
		KICK LMN 1
		TNT1 A 0 A_SetPItch(10)
        RIFF A 0 A_FireCustomMissile("SlideAttack", 0, 0, 0, 10)
        KICK O 1
		TNT1 A 0 A_Recoil (-2)
		TNT1 A 0 A_SetPItch(10)
		TNT1 A 0 A_JumpIfInventory("KickHasHit", 1, "FinishSlideHitWall")
		TNT1 A 0 A_JumpIfInventory("IsCrouching", 1, 1)
		Goto FinishSlide
		KICK O 1 A_FireCustomMissile("SlideAttack", 0, 0, 0, 10)
		TNT1 A 0 A_Recoil (-2)
		TNT1 A 0 A_SetPItch(10)
		TNT1 A 0 A_JumpIfInventory("KickHasHit", 1, "FinishSlideHitWall")
		TNT1 A 0 A_JumpIfInventory("IsCrouching", 1, 1)
		Goto FinishSlide
		
		KICK O 1 A_FireCustomMissile("SlideAttack", 0, 0, 0, 10)
		TNT1 A 0 A_Recoil (-2)
		TNT1 A 0 A_SetPItch(10)
		TNT1 A 0 A_JumpIfInventory("KickHasHit", 1, "FinishSlideHitWall")
		TNT1 A 0 A_JumpIfInventory("IsCrouching", 1, 1)
		Goto FinishSlide
		
		KICK O 1 A_FireCustomMissile("SlideAttack", 0, 0, 0, 10)
		TNT1 A 0 A_Recoil (-2)
		TNT1 A 0 A_SetPItch(10)
		TNT1 A 0 A_JumpIfInventory("KickHasHit", 1, "FinishSlideHitWall")
		TNT1 A 0 A_JumpIfInventory("IsCrouching", 1, 1)
		Goto FinishSlide
		
		KICK O 1 A_FireCustomMissile("SlideAttack", 0, 0, 0, 10)
		TNT1 A 0 A_Recoil (-2)
		TNT1 A 0 A_SetPItch(10)
		TNT1 A 0 A_JumpIfInventory("KickHasHit", 1, "FinishSlideHitWall")
		TNT1 A 0 A_JumpIfInventory("IsCrouching", 1, 1)
		Goto FinishSlide
		
		KICK O 1 A_FireCustomMissile("SlideAttack", 0, 0, 0, 10)
		TNT1 A 0 A_Recoil (-2)
		TNT1 A 0 A_SetPItch(10)
		TNT1 A 0 A_JumpIfInventory("KickHasHit", 1, "FinishSlideHitWall")
		TNT1 A 0 A_JumpIfInventory("IsCrouching", 1, 1)
		Goto FinishSlide
		
		KICK O 1 A_FireCustomMissile("SlideAttack", 0, 0, 0, 10)
		TNT1 A 0 A_Recoil (-2)
		TNT1 A 0 A_SetPItch(10)
		TNT1 A 0 A_JumpIfInventory("KickHasHit", 1, "FinishSlideHitWall")
		TNT1 A 0 A_JumpIfInventory("IsCrouching", 1, 1)
		Goto FinishSlide
		
		KICK O 1 A_FireCustomMissile("SlideAttack", 0, 0, 0, 10)
		TNT1 A 0 A_Recoil (-2)
		TNT1 A 0 A_SetPItch(10)
		TNT1 A 0 A_JumpIfInventory("KickHasHit", 1, "FinishSlideHitWall")
		TNT1 A 0 A_JumpIfInventory("IsCrouching", 1, 1)
		Goto FinishSlide
		
		KICK O 1 A_FireCustomMissile("SlideAttack", 0, 0, 0, 10)
		TNT1 A 0 A_Recoil (-2)
		TNT1 A 0 A_SetPItch(10)
		TNT1 A 0 A_JumpIfInventory("KickHasHit", 1, "FinishSlideHitWall")
		TNT1 A 0 A_JumpIfInventory("IsCrouching", 1, 1)
		Goto FinishSlide
		
		KICK O 1 A_FireCustomMissile("SlideAttack", 0, 0, 0, 10)
		TNT1 A 0 A_Recoil (-2)
		TNT1 A 0 A_SetPItch(10)
		TNT1 A 0 A_JumpIfInventory("KickHasHit", 1, "FinishSlideHitWall")
		TNT1 A 0 A_JumpIfInventory("IsCrouching", 1, 1)
		Goto FinishSlide
		
		KICK O 1 A_FireCustomMissile("SlideAttack", 0, 0, 0, 10)
		TNT1 A 0 A_Recoil (-2)
		TNT1 A 0 A_SetPItch(10)
		TNT1 A 0 A_JumpIfInventory("KickHasHit", 1, "FinishSlideHitWall")
		TNT1 A 0 A_JumpIfInventory("IsCrouching", 1, 1)
		Goto FinishSlide
		
		KICK O 1 A_FireCustomMissile("SlideAttack", 0, 0, 0, 10)
		TNT1 A 0 A_Recoil (-2)
		TNT1 A 0 A_SetPItch(10)
		TNT1 A 0 A_JumpIfInventory("KickHasHit", 1, "FinishSlideHitWall")
		TNT1 A 0 A_JumpIfInventory("IsCrouching", 1, 1)
		Goto FinishSlide
		
		KICK O 1 A_FireCustomMissile("SlideAttack", 0, 0, 0, 10)
		TNT1 A 0 A_Recoil (-2)
		TNT1 A 0 A_SetPItch(10)
		TNT1 A 0 A_JumpIfInventory("KickHasHit", 1, "FinishSlideHitWall")
		TNT1 A 0 A_JumpIfInventory("IsCrouching", 1, 1)
		TNT1 A 0 A_TAkeInventory("KickHasHit", 1)
		Goto FinishSlide
		
		
	FinishSlide:	
		TNT1 A 0
		TNT1 A 0 A_PlaySound("SlideKickStop", 5)
		TNT1 A 0 A_GunFlash("SlideKickEndFlash")
		KICK PQRST 2
		TNT1 A 0 A_JumpIfInventory("ExecuteDownedEnemy", 1, "DoExecution")
		TNT1 A 0 A_JumpIfInventory("GoFatality", 1, "Steady")
		RIBA A 0 A_Takeinventory("Kicking",1)
		TNT1 A 0 SetPlayerProperty(0,0,0)
		Goto GoingToReady	
		
	FinishSlideHitwall:	
		TNT1 A 0
		TNT1 A 0 A_Stop
		TNT1 A 0 A_GunFlash("SlideKickEndFlash")
		KICK PQRST 2
		TNT1 A 0 A_TAkeInventory("KickHasHit", 1)
		TNT1 A 0 A_JumpIfInventory("ExecuteDownedEnemy", 1, "DoExecution")
		TNT1 A 0 A_JumpIfInventory("GoFatality", 1, "Steady")
		RIBA A 0 A_Takeinventory("Kicking",1)
		TNT1 A 0 SetPlayerProperty(0,0,0)
		Goto GoingToReady
		
//Flashes-----------------------------------------------------------------------
	TauntFlash:
		FREK ABCD 1
		FREK EFGEGFEFGEFGFEGEGFGEFGEGFEFGEFGEFG 1						
		FREK DCBA 1
		FREK A 1
		Stop
		
 KickFlash:
		FREK ABCDE 1
		FREK EF 3
		FREK DCBA 1
		FREK A 1
		Stop

	AirKickFlash:
		FREK ABCDE 1
		FREK EF 4
		FREK EDCBA 1
		FREK A 1
		Stop

	SlideKickStartFlash:
		FREK ABCDE 1
		FREK EF 17
		Stop

	SlideKickEndFlash:
		FREK FEDCBA 2
		FREK A 1
		Stop
 
	GrenadeFlash:
		FREK BCDE 1
		Stop
		
 CheckSprint:
		FR1D A 1 A_WeaponReady(WRF_NOFIRE)
		FR1D A 0 A_JumpIfInventory("IsStandingStill", 1, "Ready3")
		FR1D A 0 A_JumpIfInventory("IsTacticalClass", 1, "StartSprint")
		Goto Ready
		
	StartSprint:
		FR1D A 1 A_WeaponReady(WRF_NOFIRE)
		FR1D A 0 A_Takeinventory("Zoomed",1)
		FR1D A 0 A_Takeinventory("ADSmode",1)
		FR1D A 0 A_ZoomFactor(1.0)
		FR1D A 0 A_JumpIfInventory("UsedStamina", 40, "StopSprintTired")
		
	Sprinting:	
		FR1D A 0 offset(-9,32) 
		FR1D A 0 offset(-9,32) A_JumpIfInventory("IsStandingStill", 1, "Ready3")
		FR1D A 0 offset(-9,32) A_JumpIfInventory("UsedStamina", 100, "StopSprintTired")
		PLAY A 0 offset(-9,32) ACS_ExecuteAlways(852, 0, 0, 0, 0)//Makes player faster.
		FR1D A 0 offset(-9,32) A_JumpIfInventory("PowerStrength", 1, 2)
		FR1D A 0 offset(-9,32) A_GiveInventory("UsedStamina", 16)
		FR1D A 0 offset(-9,32)
		FR1D A 1 offset(-9,34) A_SetPitch(pitch -0.5)
		FR1D A 1 offset(-6,36) A_SetPitch(pitch -0.5)
		FR1D A 1 offset(-3,38) A_SetPitch(pitch -0.5)
		FR1D A 1 offset(0,38) A_SetPitch(pitch -0.5)
		FR1D B 1 offset(3,36) A_SetPitch(pitch -0.5)
		FR1D B 1 offset(6,34) A_SetPitch(pitch -0.5)
		FR1D B 1 offset(9,32) A_SetPitch(pitch -0.5)
		FR1D A 0 offset(9,32) A_WeaponReady(WRF_NOBOB)
		FR1D A 0 A_JumpIfInventory("Kicking",1,"DoKick")
        FR1D A 0 A_JumpIfInventory("Taunting",1,"Taunt")
		FR1D A 0 offset(-9,32) A_GiveInventory("UsedStamina", 16)
		FR1D A 0 offset(9,33) A_SpawnItemEx("FootStep", 0, 0, 2, 0, 0, -4)
		FR1D B 1 offset(9,34) A_SetPitch(pitch +0.5)
		FR1D C 1 offset(6,36) A_SetPitch(pitch +0.5)
		FR1D C 1 offset(3,38) A_SetPitch(pitch +0.5)
		FR1D C 1 offset(0,38) A_SetPitch(pitch +0.5)
		FR1D C 1 offset(3,36) A_SetPitch(pitch -0.5)
		FR1D A 1 offset(6,34) A_SetPitch(pitch -0.5)
		FR1D A 0 offset(-9,32) A_WeaponReady(WRF_NOBOB)
		FR1D A 0 offset(-9,32) A_JumpIfInventory("IsRunning", 1, "Sprinting")
		Goto StopSprint
		
	StopSprintTired:
		FR1D A 1
		PLAY A 0 ACS_ExecuteAlways(853, 0, 0, 0, 0)//Makes player slower.
		FR1D A 0 A_PlaySound("Tired", 2)
		FR1D A 0 A_TakeInventory("UsedStamina", 2)
		FR1D A 5 A_WeaponReady
		FR1D A 0 A_TakeInventory("UsedStamina", 2)
		FR1D A 5 A_WeaponReady
		FR1D A 0 A_TakeInventory("UsedStamina", 2)
		FR1D A 5 A_WeaponReady
		FR1D A 0 A_TakeInventory("UsedStamina", 2)
		FR1D A 5 A_WeaponReady
		FR1D A 0 A_TakeInventory("UsedStamina", 2)
		FR1D A 5 A_WeaponReady
		Goto Ready
	StopSprint:
		FR1D A 1
		FR1D A 0 A_JumpIfInventory("UsedStamina", 60, "StopSprintTired")
		PLAY A 0 ACS_ExecuteAlways(853, 0, 0, 0, 0)//Makes player slower.
		Goto Ready
			
  }
}


ACTOR FreezerAmmo : Ammo
{
   Inventory.Amount 0
   Inventory.MaxAmount 50
   Ammo.BackpackAmount 0
   Ammo.BackpackMaxAmount 50
   Inventory.Icon "FRZRA0"
}

ACTOR FreezerBall : FastProjectile
{
	Radius 4
	Height 8
	Speed 52
	Damage 0
	Projectile
	DamageType "Freeze"
	RenderStyle Add
	//Translation "0:255=%[0,0,0]:[0,1,1]"
	Alpha 0.95
	+NODAMAGETHRUST
	+FORCEXYBILLBOARD
	+FORCERADIUSDMG
	+BOUNCEONFLOORS
	+BOUNCEONWALLS
	+BOUNCEONCEILINGS
	BounceType Grenade
	BounceFactor 1
	WallBounceFactor 1
	BounceCount 2
	DeathSound "weapons/cryobowhit"
	//MissileHeight 8
	Decal "IceScorch"
	States
	{
	Spawn:
		FRPJ ABC 1 Bright A_SpawnItemEx("FreezerTrailSparksSmall", random(5,-5), random(5,-5), random(5,-5), 0, 0, 0, 0, 128, 0) 
		TNT1 A 0 A_CustomMissile("BlueFlareSpawn",0,0,0,0)
		TNT1 A 0 A_CustomMissile ("Icetracer", 0, 0, random (0, 360), 2, random (0, 360))
		Loop
	Death:
		BXPL A 0 Bright A_StopSound(CHAN_BODY)
		BXPL A 0 Bright A_ChangeFlag("ICEDAMAGE", 1)
		BXPL A 0 Bright A_ChangeFlag("NODAMAGETHRUST", 0)
		BXPL A 0 Bright A_Explode(25*random(3,4),180, 0)  
		BXPL A 0 Bright A_Explode(random(20,25), 315, 0) 
		BXPL AAAAAAAAAAA 0 Bright A_SpawnItemEx("CryoSmoke", 0, 0, 0, random(10, 30)*0.1, 0, random(0, 10)*0.1, random(1,360), SXF_CLIENTSIDE|SXF_NOCHECKPOSITION)
		BXPL AAAAA 0 Bright A_SpawnItemEx("CryoSmoke3", 0, 0, 0, random(10, 30)*0.04, 0, random(0, 10)*0.04, random(1,360), SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,64)
		BXPL AAAAAAA 0 Bright A_SpawnItemEx("FreezerTrailSparksSmall", random(5,-5), random(5,-5), random(5,-5), random(10, 30)*0.04, 0, random(0, 10)*0.04, random(1,360), SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,64)
		BXPL AAAAAAA 0 Bright A_SpawnItemEx("CryoSmoke2", 0, 0, 0, random(10, 30)*0.04, 0, random(0, 10)*0.04, random(1,360), SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,64)
		BXPL ABCDEFGH 1 Bright
		BXPL IJKLLM 1 Bright A_FadeOut(0.1)
		Stop
	}
}

ACTOR SmallFreezerBall : FreezerBall
{
	Scale 0.5
	States
	{
	Spawn:
		FRPJ ABC 1 Bright A_SpawnItemEx("FreezerTrailSparksSmall", random(5,-5), random(5,-5), random(5,-5), 0, 0, 0, 0, 128, 0) 
		TNT1 A 0 A_CustomMissile("BlueFlareSpawn",0,0,0,0)
		TNT1 A 0 A_CustomMissile ("Icetracer", 0, 0, random (0, 360), 2, random (0, 360))
		FRPJ ABC 1 Bright A_SpawnItemEx("FreezerTrailSparksSmall", random(5,-5), random(5,-5), random(5,-5), 0, 0, 0, 0, 128, 0) 
		TNT1 A 0 A_CustomMissile("BlueFlareSpawn",0,0,0,0)
		TNT1 A 0 A_CustomMissile ("Icetracer", 0, 0, random (0, 360), 2, random (0, 360))
		FRPJ ABC 1 Bright A_SpawnItemEx("FreezerTrailSparksSmall", random(5,-5), random(5,-5), random(5,-5), 0, 0, 0, 0, 128, 0) 
		TNT1 A 0 A_CustomMissile("BlueFlareSpawn",0,0,0,0)
		TNT1 A 0 A_CustomMissile ("Icetracer", 0, 0, random (0, 360), 2, random (0, 360))
		FRPJ ABC 1 Bright A_SpawnItemEx("FreezerTrailSparksSmall", random(5,-5), random(5,-5), random(5,-5), 0, 0, 0, 0, 128, 0) 
		TNT1 A 0 A_CustomMissile("BlueFlareSpawn",0,0,0,0)
		TNT1 A 0 A_CustomMissile ("Icetracer", 0, 0, random (0, 360), 2, random (0, 360))
	Goto Death
	
	Death:		
		BXPL A 0 Bright A_StopSound(CHAN_BODY)
		BXPL A 0 Bright A_ChangeFlag("ICEDAMAGE", 1)
		BXPL A 0 Bright A_ChangeFlag("NODAMAGETHRUST", 0)
		//BXPL A 0 Bright A_Explode(5*random(2,3),10, 0)   
		BXPL AAAAAAAAAAA 0 Bright A_SpawnItemEx("CryoSmoke", 0, 0, 0, random(10, 30)*0.1, 0, random(0, 10)*0.1, random(1,360), SXF_CLIENTSIDE|SXF_NOCHECKPOSITION)
		BXPL AAAAA 0 Bright A_SpawnItemEx("CryoSmoke3", 0, 0, 0, random(10, 30)*0.04, 0, random(0, 10)*0.04, random(1,360), SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,64)
		BXPL AAAAAAA 0 Bright A_SpawnItemEx("FreezerTrailSparksSmall", random(5,-5), random(5,-5), random(5,-5), random(10, 30)*0.04, 0, random(0, 10)*0.04, random(1,360), SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,64)
		BXPL AAAAAAA 0 Bright A_SpawnItemEx("CryoSmoke2", 0, 0, 0, random(10, 30)*0.04, 0, random(0, 10)*0.04, random(1,360), SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,64)
		BXPL ABCDEFGH 1 Bright
		BXPL IJKLLM 1 Bright A_FadeOut(0.1)
	Stop
	
	}
}


ACTOR CryoSmoke
{
    Radius 2
    Height 2
    +NOINTERACTION
    +FORCEXYBILLBOARD
    RenderStyle Shaded
    StencilColor "A0 FF FF"
    Alpha 0.8
    Scale 0.85
    States
    {
    Spawn:
		SMKO A 0
        SMK2 A 2 A_FadeOut (0.05)
        Wait
    }
}

Actor CryoSmoke2 : CryoSmoke { StencilColor "DD DD DD" Scale 0.7 Alpha 0.5 VSpeed 2.5
	States {
	Spawn:
		TNT1 A 0
		SMK2 A 6 A_FadeOut(0.04)
		Wait
	}
}

Actor CryoSmoke3 : CryoSmoke { StencilColor "AA FF FF" Scale 0.7 Alpha 0.4 VSpeed 2.25
	States {
	Spawn:
		TNT1 A 0
		TNT1 A 0 A_PlaySound("Weapons/FreezerRecharge")
		SMK2 A 6 A_FadeOut(0.04)
		Wait
	}
}

Actor MiniCryoSmoke1 : CryoSmoke { StencilColor "AA FF FF" Scale 0.7 Alpha 0.4 VSpeed 2.25
	Scale 0.25
	States {
	Spawn:
		TNT1 A 0
		TNT1 A 0 A_PlaySound("Weapons/FreezerRecharge")
		SMK2 A 6 A_FadeOut(0.04)
		Wait
	}
}

Actor IceTracer
{
  Height 0
  Radius 0
  Mass 0
  +Missile
  +NoBlockMap
 // -NoGravity
  +LowGravity
  +DontSplash
  +DoomBounce
  +FORCEXYBILLBOARD
  BounceFactor 0.2
  Gravity 0.1
  RenderStyle Add
  StencilColor "A0 FF FF"
  Scale 1
  //Speed 2
  Speed 0
  -DOOMBOUNCE
  RenderStyle Add
  Alpha 1
  States
  {
  Spawn:
  Death:
    SHEX AABBCCDDEE 1 Bright A_FadeOut(0.04)
    Stop
  }
}

ACTOR CryoShot : FastProjectile
{
	Radius 4
	Height 8
	Speed 125
	Damage 10
	Damagetype "Freeze"
	Projectile
	RenderStyle Add
	Alpha 0.9
	+FORCERADIUSDMG
	+NODAMAGETHRUST
	+NoExtremeDeath
	DeathSound "weapons/cryobowhit"
	MissileType "CryoTrail"
	MissileHeight 8
	Decal "IceScorch"
	States
	{
	Spawn:
		BSHT A 0 Bright A_SpawnItemEx("FreezerTrailSparksSmall", random(3,-3), 0, random(3,-3), 0, 0, 0, 0, 128, 0) 
		BSHT A 1 Bright A_SpawnItem("PlasmaFlare",0,0)
		TNT1 A 0 A_CustomMissile("BlueFlareSpawn",0,0,0,0)
		Loop
	Death:	

		BXPL A 0 Bright A_StopSound(CHAN_BODY)
		BXPL A 0 Bright A_ChangeFlag("ICEDAMAGE", 1)
		BXPL A 0 Bright A_ChangeFlag("NODAMAGETHRUST", 0)
		//BXPL A 0 Bright A_Explode(7, 8, 0) 
		//BXPL A 0 Bright A_Explode(14, 16, 0)
		BXPL AAA 0 Bright A_SpawnItemEx("MiniCryoSmoke1", 0, 0, 0, random(10, 30)*0.1, 0, random(0, 10)*0.1, random(1,360), SXF_CLIENTSIDE|SXF_NOCHECKPOSITION)
		BXPL AA 0 Bright A_SpawnItemEx("FreezerTrailSparksSmall", random(5,-5), 0, random(5,-5), random(10, 30)*0.04, 0, random(0, 10)*0.04, random(1,360), SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,64)
		BXPL A 0 Bright A_SpawnItemEx("MiniCryoSmoke1", 0, 0, 0, random(10, 30)*0.04, 0, random(0, 10)*0.04, random(1,360), SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,64)
		BXPL ABCDEFGH 1 Bright
		BXPL IJKLLM 1 Bright A_FadeOut(0.1)
		Stop
	}
}

ACTOR CryoTrail
{
	+NOINTERACTION
	Radius 4
	Height 8
	Renderstyle Add
	Alpha 0.5
	States
	{
	Spawn:
		BSHT AABBCDEFG 1 Bright
		Stop
	}
}


ACTOR FreezerTrailSparksSmall
{ 
    RenderStyle Add
    Scale 0.008
    Alpha 0.95
    +NOINTERACTION
    +NOGRAVITY
    +CLIENTSIDEONLY
    States
    {
    Spawn:
	YA36 B 0 NoDelay A_JumpIf(ScaleX <= 0, "NULL")
	YA36 B 0 A_SetScale(ScaleX-0.00075)
    YA36 B 3 bright A_ChangeVelocity (frandom(-0.8, 0.8), frandom(-0.8, 0.8), frandom(-0.8, 0.8), 0)
    YA36 B 1 bright A_FadeOut(0.05)
    Loop
    }
}