actor Freezeman : VCBaseClass
{
Player.ScoreIcon "FREEMUGS"
player.startitem "BaseFlagPack", 1
player.startitem "IsFromMM7"
player.soundclass "freezemanc"
Player.ViewHeight 57
player.displayname "Freezeman"
player.startitem "FreezeCrackerBoss"
player.startitem "Base28Ammo", 28
player.startitem "CanThirdFire"
player.startitem "UltimateAttackItem4", 1
player.startitem "UltSoundWatcherSpawn4"
player.startitem "HasAnIntroPose"
player.startitem "FreezeEntrance"
player.startitem "NoHealthBar"
player.forwardmove 0.85, 0.85
player.sidemove 0.83, 0.83
player.jumpz 12
States
{
Animation3:
Spawn:
FREE A 0
FREE B 1 A_JumpIf(z-floorz>0, "Jumping")
FREE A 0 A_TakeInventory("VC_Timer",200)
FREE A 0 A_GiveInventory("VC_Timer",1)
FREE A 1 A_JumpIf(z-floorz>0, "Jumping")
FREE A 0 A_JumpIfInventory("VC_Timer",200,1)
Goto Spawn+3
FREE A 0 A_TakeInventory("VC_Timer",200)
FREE NNNNNNMMMMNNNNNNMMMMNNNNNNNNNN 1 A_JumpIf(z-floorz>0, "Jumping")
FREE A 0 A_TakeInventory("VC_Timer",200)
goto Spawn+2

See:
FREE B 0 A_TakeInventory("VC_Timer",200)
FREE B 0 A_SpawnItemEx("FreezeStepFX",-5,-12,0,-8)
FREE BBBBBCCCCC 1 A_JumpIf(z-floorz>0, "Jumping")
FREE D 0 A_SpawnItemEx("FreezeStepFX",-5,12,0,-8)
FREE DDDDDEEEEE 1 A_JumpIf(z-floorz>0, "Jumping")
Goto Spawn

Jumping:
FREE I 0 A_TakeInventory("VC_Timer",200)
FREE I 1 A_JumpIf(z-floorz<=0, "Spawn")
loop

Missile:
FREE F 0 A_JumpIfInventory("BaseCustomFlag1",1,"SuperCharge")
FREE F 1 A_JumpIf(z-floorz>0, "JumpingMissile")
FREE F 0 A_JumpIfInventory("BaseCustomFlag1",1,"SuperCharge")
FREE GGGGGGGGGGGGG 1 A_JumpIf(z-floorz>0, "JumpingMissile")
FREE A 0 A_TakeInventory("VC_Timer",200)
Goto Spawn+1

SuperCharge:
FREE KLKL 1 A_JumpIf(z-floorz>0, "JumpingSuperCharge")
loop

JumpingSuperCharge:
FRZ2 OPOP 1 A_JumpIf(z-floorz<=0, "SuperCharge")
loop

Animation5:
ShootDown:
FRZ2 M 0 A_JumpIf(z-floorz>0, "ShootDownAir")
FRZ2 MMNNNN 1 A_JumpIf(z-floorz>0, "Jumping")
FREE A 0 A_TakeInventory("VC_Timer",200)
goto Spawn+1

ShootDownAir:
FRZ2 KKLLLL 1 A_JumpIf(z-floorz<=0, "Spawn")
goto Jumping

Animation6:
ShootUp:
FRZ2 Q 0 A_JumpIf(z-floorz>0, "ShootUpAir")
FRZ2 QQQQQQ 1 A_JumpIf(z-floorz>0, "Jumping")
FREE A 0 A_TakeInventory("VC_Timer",200)
goto Spawn+1

ShootUpAir:
FRZ2 RRRRRR 1 A_JumpIf(z-floorz<=0, "Spawn")
goto Jumping

JumpingMissile:
FREE J 0 A_JumpIfInventory("BaseCustomFlag1",1,"SuperCharge")
FREE J 1 A_JumpIf(z-floorz<=0, "Missile")
FREE J 0 A_JumpIfInventory("BaseCustomFlag1",1,"SuperCharge")
FREE JJJJJJJJJ 1 A_JumpIf(z-floorz<=0, "Missile")
Goto Jumping

Animation1:
FRZ2 ABCDEFGGGGG 2
goto Spawn+2

Animation2:
FRZ2 ABCDEFGCCCC 1

A2Loop:
FRZ2 C 1
loop

Animation4:
FRZ2 ABCDEFGCCCCCCCCCCC 1
goto Spawn+2

Intro:
FREE Y 1
FREE Z 1
FRZ2 ABCDEFGCC 2
goto Spawn+2

ClassTimeStop:
PLAY A 0 SetPlayerProperty(0,1,4)
PLAY A 0 ACS_Execute(528,0)
FREE AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 1 A_Stop
PLAY A 0 SetPlayerProperty(0,0,4)
Goto pain+1
ClassPain:
FREE H 0 A_TakeInventory("VC_Timer",200)
FREE HHHHHHHHHH 2 A_SpawnItem("PainFX",0,3)
Goto Spawn+1

Death.JunkShield:
Death.JunkShieldGear:
Death.JunkManShield:
TNT1 A 0 A_SpawnItemEx("DeadTrashedFreezeMan",0,0,0,0,0,0,0,SXF_TRANSFERTRANSLATION)
TNT1 A 0 A_SpawnItemEx("DeadFreezeManTrash",0,0,0,0,0,0,0,SXF_TRANSFERTRANSLATION)
NOFX A 20 ACS_ExecuteAlways(999,0,0)
NOFX A 1 A_CheckPlayerDone
wait
ClassDeath:
NOFX A 0 A_StopSound(CHAN_WEAPON)
TNT1 A 0 A_SpawnItemEx("DeadFreezeMan",0,0,0,0,0,0,0,1)
NOFX A 20 ACS_ExecuteAlways(999,0,0)
NOFX A 1 A_CheckPlayerDone
wait
ClassIceDeath:
FREE A 35
NOFX A 0 A_SpawnItemEx("FrozenDeathFX",0,0,16)
NOFX A 1 A_CheckPlayerDone
wait
WeaponGetM:
CUTM H 0 A_JumpIfInTargetInventory("FreezeCrackerWepM",1,2)
CUTM H 0 A_GiveToTarget("WeaponGetter")
CUTM H 0 A_GiveToTarget("FreezeCrackerWepM")
goto ClassDeath
}
}

actor DeadFreezeMan
{
PROJECTILE
+MISSILE
species "DeadBody"
+THRUSPECIES
+THRUACTORS
+NOGRAVITY
-NOEXPLODEFLOOR
+NOINTERACTION
scale 2.5
reactiontime 19
meleerange 839
mass 230
States
{
Spawn:
FREE H 0
"####" "#" 0
goto loopit

loopit:
"####" "#" 0 A_JumpIfInTargetInventory("LightTeamFlag",1,"loopit.L")
"####" "#" 0 A_JumpIfInTargetInventory("WilyTeamFlag",1,"loopit.W")
"####" "#" 0 A_JumpIfInTargetInventory("CossackTeamFlag",1,"loopit.C")
"####" "#" 0 A_JumpIfInTargetInventory("KingTeamFlag",1,"loopit.K")

loopit.N:
"####" "#" 1 Thing_SetTranslation(0, meleerange)
"####" "#" 1 Thing_SetTranslation(0, 7454)
"####" "#" 0 A_Countdown
loop

loopit.L:
"####" "#" 1 Thing_SetTranslation(0, mass)
"####" "#" 1 Thing_SetTranslation(0, 7454)
"####" "#" 0 A_Countdown
loop

loopit.W:
"####" "#" 1 Thing_SetTranslation(0, mass+1)
"####" "#" 1 Thing_SetTranslation(0, 7454)
"####" "#" 0 A_Countdown
loop

loopit.C:
"####" "#" 1 Thing_SetTranslation(0, mass+2)
"####" "#" 1 Thing_SetTranslation(0, 7454)
"####" "#" 0 A_Countdown
loop

loopit.K:
"####" "#" 1 Thing_SetTranslation(0, mass+3)
"####" "#" 1 Thing_SetTranslation(0, 7454)
"####" "#" 0 A_Countdown
loop

Death:
"####" "#" 0 A_SpawnItemEx("FakeDeathFXMM7",0,0,32)
"####" "#" 0 A_JumpIfInTargetInventory("LightTeamFlag",1,"Death.L")
"####" "#" 0 A_JumpIfInTargetInventory("WilyTeamFlag",1,"Death.W")
"####" "#" 0 A_JumpIfInTargetInventory("CossackTeamFlag",1,"Death.C")
"####" "#" 0 A_JumpIfInTargetInventory("KingTeamFlag",1,"Death.K")
"####" "#" 1 Thing_SetTranslation(0, meleerange)
"####" "#" 1 Thing_SetTranslation(0, 7454)
"####" "#" 1 Thing_SetTranslation(0, meleerange)
"####" "#" 1 Thing_SetTranslation(0, 7454)
"####" "#" 1 Thing_SetTranslation(0, meleerange)
"####" "#" 1 Thing_SetTranslation(0, 7454)
"####" "#" 1 Thing_SetTranslation(0, meleerange)
"####" "#" 0 A_PlaySoundEx("mm7/dead","Auto")
"####" "#" 1 Thing_SetTranslation(0, 7454)
"####" "#" 1 Thing_SetTranslation(0, meleerange)
"####" "#" 1 Thing_SetTranslation(0, 7454)
"####" "#" 1 Thing_SetTranslation(0, meleerange)
stop

Death.L:
"####" "#" 1 Thing_SetTranslation(0, mass)
"####" "#" 1 Thing_SetTranslation(0, 7454)
"####" "#" 1 Thing_SetTranslation(0, mass)
"####" "#" 1 Thing_SetTranslation(0, 7454)
"####" "#" 1 Thing_SetTranslation(0, mass)
"####" "#" 1 Thing_SetTranslation(0, 7454)
"####" "#" 1 Thing_SetTranslation(0, mass)
"####" "#" 0 A_PlaySoundEx("mm7/dead","Auto")
"####" "#" 1 Thing_SetTranslation(0, 7454)
"####" "#" 1 Thing_SetTranslation(0, mass)
"####" "#" 1 Thing_SetTranslation(0, 7454)
"####" "#" 1 Thing_SetTranslation(0, mass)
stop

Death.W:
"####" "#" 1 Thing_SetTranslation(0, mass+1)
"####" "#" 1 Thing_SetTranslation(0, 7454)
"####" "#" 1 Thing_SetTranslation(0, mass+1)
"####" "#" 1 Thing_SetTranslation(0, 7454)
"####" "#" 1 Thing_SetTranslation(0, mass+1)
"####" "#" 1 Thing_SetTranslation(0, 7454)
"####" "#" 1 Thing_SetTranslation(0, mass+1)
"####" "#" 0 A_PlaySoundEx("mm7/dead","Auto")
"####" "#" 1 Thing_SetTranslation(0, 7454)
"####" "#" 1 Thing_SetTranslation(0, mass+1)
"####" "#" 1 Thing_SetTranslation(0, 7454)
"####" "#" 1 Thing_SetTranslation(0, mass+1)
stop

Death.C:
"####" "#" 1 Thing_SetTranslation(0, mass+2)
"####" "#" 1 Thing_SetTranslation(0, 7454)
"####" "#" 1 Thing_SetTranslation(0, mass+2)
"####" "#" 1 Thing_SetTranslation(0, 7454)
"####" "#" 1 Thing_SetTranslation(0, mass+2)
"####" "#" 1 Thing_SetTranslation(0, 7454)
"####" "#" 1 Thing_SetTranslation(0, mass+2)
"####" "#" 0 A_PlaySoundEx("mm7/dead","Auto")
"####" "#" 1 Thing_SetTranslation(0, 7454)
"####" "#" 1 Thing_SetTranslation(0, mass+2)
"####" "#" 1 Thing_SetTranslation(0, 7454)
"####" "#" 1 Thing_SetTranslation(0, mass+2)
stop

Death.K:
"####" "#" 1 Thing_SetTranslation(0, mass+3)
"####" "#" 1 Thing_SetTranslation(0, 7454)
"####" "#" 1 Thing_SetTranslation(0, mass+3)
"####" "#" 1 Thing_SetTranslation(0, 7454)
"####" "#" 1 Thing_SetTranslation(0, mass+3)
"####" "#" 1 Thing_SetTranslation(0, 7454)
"####" "#" 1 Thing_SetTranslation(0, mass+3)
"####" "#" 0 A_PlaySoundEx("mm7/dead","Auto")
"####" "#" 1 Thing_SetTranslation(0, 7454)
"####" "#" 1 Thing_SetTranslation(0, mass+3)
"####" "#" 1 Thing_SetTranslation(0, 7454)
"####" "#" 1 Thing_SetTranslation(0, mass+3)
stop
}
}

actor DeadTrashedFreezeMan
{
PROJECTILE
+MISSILE
species "DeadBody"
+THRUSPECIES
+THRUACTORS
+NOGRAVITY
-NOEXPLODEFLOOR
+NOINTERACTION
scale 2.5
reactiontime 19
meleerange 839
mass 230
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode")
TNT1 A 0 A_PlaySoundEx("weapon/thunderbolt","Weapon")
Spawn2:
FREE H 1 Thing_SetTranslation(0, 7454)
FREE H 1 Thing_SetTranslation(0, meleerange)
FREE H 0 A_Countdown
loop

Death:
TNT1 A 0 A_PlaySoundEx("mm7/dead","Auto")
TNT1 A 0 A_SpawnItemEX("CriticalDeathSpawner",0,0,0,0,0,0,0,SXF_TRANSFERTRANSLATION)
TNT1 AAAAAAAAAA 0 A_SpawnItemEx("FreezeManJunkPiece",0,0,32,Random(7,14),0,Random(7,14),Random(0,359),SXF_TRANSFERTRANSLATION)
Stop
}
}

actor DeadFreezeManTrash : DeadTrashedFreezeMan
{
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode")
Spawn2:
JSHI AB 1
TNT1 A 0 A_Countdown
JSHI CD 1
TNT1 A 0 A_Countdown
JSHI EF 1
TNT1 A 0 A_Countdown
JSHI GH 1
TNT1 A 0 A_Countdown
JSHI IJ 1
TNT1 A 0 A_Countdown
JSHI KL 1
TNT1 A 0 A_Countdown
JSHI MN 1
TNT1 A 0 A_Countdown
JSHI OA 1
TNT1 A 0 A_Countdown
JSHI BC 1
TNT1 A 0 A_Countdown
JSHI DE 1
TNT1 A 0 A_Countdown
JSHI FG 1
TNT1 A 0 A_Countdown
JSHI HI 1
TNT1 A 0 A_Countdown
JSHI JK 1
TNT1 A 0 A_Countdown
JSHI LM 1
TNT1 A 0 A_Countdown
JSHI NO 1
TNT1 A 0 A_Countdown
JSHI AB 1
TNT1 A 0 A_Countdown
JSHI CD 1
TNT1 A 0 A_Countdown
JSHI EF 1
TNT1 A 0 A_Countdown
JSHI GH 1
TNT1 A 0 A_Countdown
loop

Death:
TNT1 A 0 A_PlaySoundEx("weapon/dustbreak","Body")
TNT1 A 0 A_PlaySoundEx("weapon/mm7explode","Voice")
TNT1 AAAAAAAAAA 0 A_SpawnItemEx("MM7ExplodeFX",0,0,0,Random(5,10),0,Random(-10,10),Random(0,359))
Stop
}
}

actor FreezeManJunkPiece
{
PROJECTILE
-NOGRAVITY
+THRUACTORS
+BOUNCEONWALLS
bouncefactor 1.0
Height 8
Radius 8
Scale 2.5
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode")
TNT1 A 1 A_Jump(256,"A","B")
wait
A:
JSHI V 1
wait
B:
JSHI W 1
wait
}
}

Actor FreezemanOPPleaseNerf : PowerProtection
{
	Powerup.Duration 0x7FFFFFFF
	DamageFactor "FreezeCracker", 0.0
}

Actor FreezemanHealThing : CustomInventory
{
	States
	{
		Pickup:
		TNT1 A 0 A_JumpIf(CheckClass("Freezeman"),"Success")
		Goto Nope
		Success:
		TNT1 A 0 A_JumpIfInventory("FreezemanHealing_P",1,"Nope")
		TNT1 A 0 A_GiveInventory("FreezemanHealing_P",1)
		TNT1 A 0 ACS_NamedExecuteAlways("VC_FreezemanHeal",0)
		TNT1 A 0 ACS_NamedExecuteWithResult("VC_SetState",4)
		Nope: TNT1 A 0
		Stop
	}
}
Actor FreezemanHealing_P : Powerup
{
	Powerup.Duration 14 //To stop overhealing and whatnot
}
Actor FreezemanHealSound_CI : CustomInventory
{
	States
	{
		Pickup:
		TNT1 A 0 A_PlaySoundEx("weapon/mm7heal","Freezeman")
		stop
	}
}

actor FreezeEntrance : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_SpawnItemEx("FreezeEntrySound")
TNT1 AAAAAAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("FreezeEntranceFX",random(0,24),0,random(0,64),random(0,5),0,random(-2,0),random(0,359))
stop
}
}

actor FreezeEntrySound
{
PROJECTILE
radius 1
height 1
+NOINTERACTION
+NOCLIP
+CLIENTSIDEONLY
States
{
Spawn:
TNT1 A 0
TNT1 A 0 A_PlaySoundEx("weapon/freezebreak","Body")
stop
}
}

actor FreezeEntranceFX
{
	PROJECTILE
	scale 2.5
	+CLIENTSIDEONLY
	-NOGRAVITY
	Height 4
	Radius 4
	+HEXENBOUNCE
	reactiontime 50
	bouncefactor 0.5
	bouncecount 6
	gravity 0.2
	States
	{
		Spawn:
		TNT1 AA 0 A_GiveInventory("ProjectileCode")
		TNT1 A 0 A_Jump(256,"S_1", "S_2")
		stop
		
		S_1:
		MRFP J 1
		TNT1 A 1 A_Countdown
		loop
		
		S_2:
		MRFP K 1
		TNT1 A 1 A_Countdown
		loop
	}
}

actor FreezeCrackerBoss : VCBaseWeapon
{
Weapon.AmmoUse 0
Weapon.Ammotype2 "BaseAltfireAmmo"
Obituary "$OB_FREEZEMAN1"
States
{
Ready:
TNT1 A 0
FREZ A 1 A_WeaponReady(WRF_NOSECONDARY*CallACS("VC_AmmoCheck",0,14)) FREZ A 0 A_JumpIfInventory("UltAttackFlag",1,"UltimateAttack") FREZ A 0 A_JumpIf(ACS_NamedExecuteWithResult("VC_CheckBtn",3)==3,"User1")
FREZ A 1 A_WeaponReady(WRF_NOSECONDARY*CallACS("VC_AmmoCheck",0,14)) FREZ A 0 A_JumpIfInventory("UltAttackFlag",1,"UltimateAttack") FREZ A 0 A_JumpIf(ACS_NamedExecuteWithResult("VC_CheckBtn",3)==3,"User1")
FREZ A 1 A_WeaponReady(WRF_NOSECONDARY*CallACS("VC_AmmoCheck",0,14)) FREZ A 0 A_JumpIfInventory("UltAttackFlag",1,"UltimateAttack") FREZ A 0 A_JumpIf(ACS_NamedExecuteWithResult("VC_CheckBtn",3)==3,"User1")
FREZ A 1 A_WeaponReady(WRF_NOSECONDARY*CallACS("VC_AmmoCheck",0,14)) FREZ A 0 A_JumpIfInventory("UltAttackFlag",1,"UltimateAttack") FREZ A 0 A_JumpIf(ACS_NamedExecuteWithResult("VC_CheckBtn",3)==3,"User1")
FREZ A 1 A_WeaponReady(WRF_NOSECONDARY*CallACS("VC_AmmoCheck",0,14)) FREZ A 0 A_JumpIfInventory("UltAttackFlag",1,"UltimateAttack") FREZ A 0 A_JumpIf(ACS_NamedExecuteWithResult("VC_CheckBtn",3)==3,"User1")
FREZ A 0 A_GiveInventory("Base28Ammo",1)
Goto Ready+1

Deselect:
TNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Lower
FREZ A 1 A_Lower
Loop

Select:
TNT1 A 0 A_GiveInventory("FreezemanOPPleaseNerf",1)
TNT1 A 0 ACS_ExecuteAlways(991,0,839)
SelectX:
TNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Raise
FREZ A 1 A_Raise
Loop

User1:
CUTA A 0 ACS_NamedExecuteWithResult("VC_SetState",2)
CUTA A 0 A_PlaySoundEx("classes/freezecool","Body")
FREZ A 1 Offset(0,52) A_GiveInventory("BaseCustomFlag2")
FREZ A 0 A_SpawnItemEx("FreezePoseHitbox")
FZST DD 1 Offset(0,42)
FZST D 12 Offset(0,32)
User1.Loop:
FZST D 1
FZST DD 1 A_JumpIf(ACS_NamedExecuteWithResult("VC_CheckBtn",3)==3,"User1.Loop")
FZST DD 1 Offset(0,42) A_TakeInventory("BaseCustomFlag2")
FZST D 0 ACS_NamedExecuteWithResult("VC_SetState",3)
FZST D 1 Offset(0,52)
goto Ready

Fire:
FREZ BC 1
FREZ A 0 A_JumpIfNoAmmo("NoAmmo")
FREZ E 1
FREZ A 0 A_PlaySoundEx("weapon/freezecracker","Weapon")
FREZ A 0 A_SpawnItemEx("FreezeFX",-1,8,32,0,0,0)
FREZ C 0 A_GiveInventory("Base28Ammo",1)
FREZ A 0 A_FireCustomMissile("FreezeManCracker",0,0,8,16)
FREZ FG 1
FREZ HD 2
FREZ D 6
FREZ CB 2
Goto Ready

Altfire:
RATU A 0 A_JumpIfInventory("NoAltfire",1,"NoAmmo")
FREZ BCD 1 A_GiveInventory("BaseCustomFlag1")
FREZ B 0 A_PlaySoundEx("weapon/icewaveloop","Weapon",1)

Altfire.Charge1:
TOAD A 0 A_GiveInventory("ToadChargeDamageGive")
FREZ I 0 A_SpawnItemEx("FreezeChargeFX",random(-40,40),random(-40,40),random(0,80))
FREZ I 1 A_GiveInventory("BaseAltfireAmmo",1)
FREZ J 0 A_SpawnItemEx("FreezeChargeFX",random(-40,40),random(-40,40),random(0,80))
FREZ J 1 A_GiveInventory("BaseAltfireAmmo",1)
FREZ J 0 A_Refire("Altfire.Charge2")
goto Altfire.Release

Altfire.Charge2:
FREZ K 0 A_SpawnItemEx("FreezeChargeFX",random(-40,40),random(-40,40),random(0,80))
FREZ K 1 A_GiveInventory("BaseAltfireAmmo",1)
FREZ L 0 A_SpawnItemEx("FreezeChargeFX",random(-40,40),random(-40,40),random(0,80))
FREZ L 1 A_GiveInventory("BaseAltfireAmmo",1)
FREZ L 0 A_Refire("Altfire.Charge1")
goto Altfire.Release

Altfire.Release:
TOAD A 0 A_GiveInventory("ToadChargeDamageTake")
TNT1 A 0 A_CheckFloor("Altfire.ReleaseGround")
TNT1 A 0 A_JumpIf(callACS("core_CheckFooting")== 1 || (abs(z-floorz) < 30 && momz <= 0),"Altfire.ReleaseGround")

Altfire.ReleaseAir:
FREZ BCD 1
TNT1 A 0 A_StopSound(CHAN_WEAPON)
FREZ H 0 A_GiveInventory("FreezeAirAltHandler")
FREZ H 0 A_PlaySoundEx("weapon/iceslasher","Weapon")
FREZ H 0 A_PlaySoundEx("weapon/icewallspawn","Body")
FREZ H 3 A_TakeInventory("Base28Ammo",14)
FREZ DCB 2 A_TakeInventory("BaseCustomFlag1")
FREZ AAAAAAA 3 A_WeaponReady(WRF_NOSECONDARY)
goto Ready

Altfire.ReleaseGround:
TNT1 A 0 A_StopSound(CHAN_WEAPON)
TNT1 A 0 ACS_NamedExecuteWithResult("VC_SetState",6)
FREZ KKKKKKKKKKKKKKKKKKKKKKKKK 0 A_SpawnItemEx("FreezeChargeFX",random(-40,40),random(-40,40),random(0,80),random(4,16),0,random(-12,12),random(0,359))
FREZ H 3 A_GiveInventory("FreezeGroundAltHandler")
FREZ DCBAA 3 A_TakeInventory("BaseCustomFlag1")
goto Ready



UltimateAttack:
TNT1 A 0 ACS_NamedExecuteAlways("VC_UltimateText",0,57)
CUTA A 0 ACS_NamedExecuteWithResult("VC_SetState",1)
CUTA A 0 A_PlaySoundEx("classes/ultimateactivation","Auto")
TNT1 A 0 A_GiveInventory("UltBuildCooldownGiver",1)
FREZ A 1 Offset(0,52) A_Stop
FZST DD 1 Offset(0,42) A_Stop
FZST DDDDDD 1 Offset(0,32) A_Stop
FZST DD 1 Offset(0,42) A_Stop
FZST D 1 Offset(0,52) A_Stop
FREZ AA 1 Offset(0,32) A_Stop
FREZ A 0 A_WeaponReady(WRF_NOFIRE)
CUTA A 0 A_TakeInventory("UltAttackFlag",1)
FREZ A 0 A_CheckFloor("Ult.Floor")

Ult.Air:
FREZ E 0
TNT1 A 0 A_GunFlash("Flash.AirTimer")
TNT1 A 0 ACS_NamedExecuteWithResult("VC_SetState",5)
FREZ EFGH 1 A_Stop
FREZ H 0 A_SpawnItemEx("FreezeShockwaveUlt",0,0,50,0,0,-25)
FREZ H 0 A_PlaySoundEx("weapon/iceslasher","Weapon")
FREZ H 0 A_PlaySoundEx("weapon/icewallspawn","Body")
FREZ EFGHEFGHEFGHEFGH 1 A_Stop
FREZ DCB 1
Goto Ready+1

Ult.Floor:
TNT1 A 0 A_GunFlash("Flash.FloorTimer")
TNT1 A 0 ACS_NamedExecuteWithResult("VC_SetState",6)
FREZ H 0 A_SpawnItemEx("FreezeColdEnergyUlt",0,0,50,0,0,25)
FREZ H 0 A_PlaySoundEx("weapon/iceslasher","Weapon")
FREZ H 0 A_PlaySoundEx("weapon/icewallspawn","Body")
FREZ EFGHEFGHEFGHEFGH 1 A_Stop
FREZ DCB 1
Goto Ready+1

Flash.FloorTimer:
TNT1 A 4 A_TakeInventory("MediumLongUltimateAmmo",3)
TNT1 A 0 A_JumpIfInventory("MediumLongUltimateAmmo",1,"Flash.FloorTimer")
NoFlash:
TNT1 A 0 A_TakeInventory("PowerUltBuildCooldown",1)
stop

Flash.AirTimer:
TNT1 A 1 A_TakeInventory("MediumLongUltimateAmmo",7)
TNT1 A 0 A_JumpIfInventory("MediumLongUltimateAmmo",1,"Flash.AirTimer")
goto NoFlash

NoAmmo:
FREZ A 5 A_GiveInventory("Base28Ammo",1)
goto Ready
}
}

actor FreezemanFX : BasicGraphicEffect
{
States
{
SpawnFrame:
FCRA ABC 1
stop
}
}

actor FreezeChargeFX : BasicGraphicEffect
{
scale 2.5
renderstyle add
States
{
SpawnFrame:
MRFP C 2
FCR7 IJ 1
stop
}
}

actor FreezemanFreezeBit2 : FreezeBit
{
Obituary "$OB_FREEZEMAN2"
Radius 10
Height 10
damage (2)
damagetype "Freezeman"
-THRUACTORS
states
{
Spawn:
MRFP CDE 4
FCR7 IJ 2 A_Stop
stop
}
}

actor FreezemanFreezeBit3 : FreezeBit
{
Obituary "$OB_FREEZEMAN3"
Radius 16
Height 16
damage (15)
damagetype "FreezemanUltFreeze"
-THRUACTORS
states
{
Spawn:
MRFP CDE 4
loop
}
}

actor FreezemanFloorFreeze : FreezeBit
{
Obituary "$OB_FREEZEMAN4"
damagetype "FreezemanFreeze"
+FLOORHUGGER
-THRUACTORS
radius 20
height 10
damage (5)
+RIPPER
speed 15
states
{
Spawn:
TNT1 A 0
MRFP HH 1 A_SpawnItemEx("FreezeEnergyFX",random(-16,16),random(-16,16),random(-16,16),random(-3,3),random(-3,3),random(-3,3),0,1)
MRFP H 0 A_FadeOut(0.16)
MRFP II 1 A_SpawnItemEx("FreezeEnergyFX",random(-16,16),random(-16,16),random(-16,16),random(-3,3),random(-3,3),random(-3,3),0,1)
MRFP I 0 A_FadeOut(0.16)
MRFP HH 1 A_SpawnItemEx("FreezeEnergyFX",random(-16,16),random(-16,16),random(-16,16),random(-3,3),random(-3,3),random(-3,3),0,1)
MRFP H 0 A_FadeOut(0.16)
MRFP II 1 A_SpawnItemEx("FreezeEnergyFX",random(-16,16),random(-16,16),random(-16,16),random(-3,3),random(-3,3),random(-3,3),0,1)
MRFP I 0 A_FadeOut(0.16)
MRFP HH 1 A_SpawnItemEx("FreezeEnergyFX",random(-16,16),random(-16,16),random(-16,16),random(-3,3),random(-3,3),random(-3,3),0,1)
MRFP H 0 A_FadeOut(0.16)
MRFP II 1 A_SpawnItemEx("FreezeEnergyFX",random(-16,16),random(-16,16),random(-16,16),random(-3,3),random(-3,3),random(-3,3),0,1)
MRFP I 0 A_FadeOut(0.16)
stop
}
}

actor FreezemanFloorFreeze2 : FreezemanFloorFreeze
{
reactiontime 2
States
{
Spawn:
TNT1 A 0
MRFP HH 1 A_SpawnItemEx("FreezeEnergyFX",random(-16,16),random(-16,16),random(-16,16),random(-3,3),random(-3,3),random(-3,3),0,1)
MRFP H 0 A_FadeOut(0.08)
MRFP II 1 A_SpawnItemEx("FreezeEnergyFX",random(-16,16),random(-16,16),random(-16,16),random(-3,3),random(-3,3),random(-3,3),0,1)
MRFP I 0 A_FadeOut(0.08)
MRFP HH 1 A_SpawnItemEx("FreezeEnergyFX",random(-16,16),random(-16,16),random(-16,16),random(-3,3),random(-3,3),random(-3,3),0,1)
MRFP H 0 A_FadeOut(0.08)
MRFP II 1 A_SpawnItemEx("FreezeEnergyFX",random(-16,16),random(-16,16),random(-16,16),random(-3,3),random(-3,3),random(-3,3),0,1)
MRFP I 0 A_FadeOut(0.08)
MRFP HH 1 A_SpawnItemEx("FreezeEnergyFX",random(-16,16),random(-16,16),random(-16,16),random(-3,3),random(-3,3),random(-3,3),0,1)
MRFP H 0 A_FadeOut(0.08)
MRFP II 1 A_SpawnItemEx("FreezeEnergyFX",random(-16,16),random(-16,16),random(-16,16),random(-3,3),random(-3,3),random(-3,3),0,1)
MRFP I 0 A_FadeOut(0.08)
MRFP I 0 A_Countdown
loop
}
}

actor FreezemanFloorFreeze3 : FreezemanFloorFreeze
{
reactiontime 3
States
{
Spawn:
TNT1 A 0
MRFP HH 1 A_SpawnItemEx("FreezeEnergyFX",random(-16,16),random(-16,16),random(-16,16),random(-3,3),random(-3,3),random(-3,3),0,1)
MRFP H 0 A_FadeOut(0.05)
MRFP II 1 A_SpawnItemEx("FreezeEnergyFX",random(-16,16),random(-16,16),random(-16,16),random(-3,3),random(-3,3),random(-3,3),0,1)
MRFP I 0 A_FadeOut(0.05)
MRFP HH 1 A_SpawnItemEx("FreezeEnergyFX",random(-16,16),random(-16,16),random(-16,16),random(-3,3),random(-3,3),random(-3,3),0,1)
MRFP H 0 A_FadeOut(0.05)
MRFP II 1 A_SpawnItemEx("FreezeEnergyFX",random(-16,16),random(-16,16),random(-16,16),random(-3,3),random(-3,3),random(-3,3),0,1)
MRFP I 0 A_FadeOut(0.05)
MRFP HH 1 A_SpawnItemEx("FreezeEnergyFX",random(-16,16),random(-16,16),random(-16,16),random(-3,3),random(-3,3),random(-3,3),0,1)
MRFP H 0 A_FadeOut(0.05)
MRFP II 1 A_SpawnItemEx("FreezeEnergyFX",random(-16,16),random(-16,16),random(-16,16),random(-3,3),random(-3,3),random(-3,3),0,1)
MRFP I 0 A_FadeOut(0.05)
MRFP I 0 A_Countdown
loop
}
}

actor FreezemanFloorFreezeUlt : FreezemanFloorFreeze
{
Obituary "$OB_FREEZEMAN3"
damagetype "FreezemanUltFreeze2"
damage(6)
States
{
Spawn:
TNT1 A 0
MRFP H 0 A_SpawnItemEx("FloorUltHelper",0,0,0,momx,-20)
MRFP H 0 A_SpawnItemEx("FloorUltHelper",0,0,0,momx,20)
MRFP H 0 A_SpawnItemEx("IcePitFreeze")
MRFP HI 1 A_SpawnItemEx("FreezeEnergyFX2",random(-16,16),random(-16,16),random(-16,16),random(-3,3),random(-3,3),random(-3,3),0,1)
MRFP H 0 A_FadeOut(0.05)
loop
Death:
TNT1 A 0
stop
}
}

actor FloorUltHelper : FreezemanFloorFreezeUlt
{
damage(2)
-RIPPER
States
{
Spawn:
TNT1 A 0
MRFP HIHIH 1 A_FadeOut(0.16)
stop
}
}

actor FreezeManCracker : BasicProjectile
{
Obituary "$OB_FREEZEMAN1"
Radius 16
Height 16
scale 2.5
damage (16)
speed 40
damagetype "Freezeman"
States
{
Spawn:
TNT1 A 0
MRFP B 4 A_SpawnItemEx("FreezeCrackerFX", -8, Random(-22, 22), random(-20, 20))
loop
Death:
MMFX B 0 A_SpawnItemEx("AFreezeBit",0,0,0,28,0,0,60)
MMFX B 0 A_SpawnItemEx("AFreezeBit",0,0,0,28,0,0,-60)
MMFX B 0 A_SpawnItemEx("AFreezeBit",0,0,0,28,0,0,120)
MMFX B 0 A_SpawnItemEx("AFreezeBit",0,0,0,28,0,0,-120)
MMFX B 0 A_SpawnItemEx("AFreezeBit",0,0,0,28,0,0,180)
MMFX B 0 A_SpawnItemEx("AFreezeBit",0,0,0,28,0,0,0)
TNT1 A 2 A_PlaySoundEx("weapon/freezecrackerhit","Weapon")
stop
XDeath:
TNT1 A 0 A_SpawnItemEx("FreezeManCrackerFX",random(0,16),0,random(-8,8),random(0,9),0,random(1,4),random(0,359),1)
TNT1 A 0 A_SpawnItemEx("FreezeManCrackerFX",random(0,16),0,random(-8,8),random(0,9),0,random(1,4),random(0,359),1)
TNT1 A 0 A_SpawnItemEx("FreezeManCrackerFX",random(0,16),0,random(-8,8),random(0,9),0,random(1,4),random(0,359),1)
TNT1 A 0 A_SpawnItemEx("FreezeManCrackerFX",random(0,16),0,random(-8,8),random(0,9),0,random(1,4),random(0,359),1)
TNT1 A 0 A_SpawnItemEx("IcePitFreeze")
Stop
}
}

actor FreezeManCrackerFX
{
+MISSILE
+DONTBLAST
-NOGRAVITY
+THRUACTORS
+CLIENTSIDEONLY
+FLOORCLIP
+DONTSPLASH
Damage (0)
Height 4
Radius 4
reactiontime 70
Scale 2.5
States
{
Spawn:
TNT1 A 0
TNT1 A 0 A_Jump(256,"S_1", "S_2")
stop
		
S_1:
MRFP J 1 A_Countdown
loop
		
S_2:
MRFP K 1 A_Countdown
loop
}
}

actor AFreezeBit : BasicProjectile
{
Obituary "$OB_FREEZEMAN1"
Radius 6
Height 6
scale 2.5
damage (5)
damagetype "Freezeman"
speed 26
states
{
Spawn:
TNT1 A 0
MRFP CDE 4
FCR7 IJ 2 A_Stop
stop
Death:
TNT1 A 0 A_SpawnItemEx("IcePitFreeze")
stop
}
}

actor FreezeProvokeAnim : Powerup
{
+ADDITIVETIME
Powerup.Duration 2
}

actor FreezeColdEnergy1 : BasicProjectile
{
Obituary "$OB_FREEZEMAN2"
Radius 16
Height 16
scale 2.5
damage (6)
+RIPPER
+SKYEXPLODE
renderstyle add
speed 25
meleerange 1
damagetype "Freezeman"
States
{
Spawn:
TNT1 A 0
MRFP AA 0 A_SpawnItemEx("FreezeEnergyFX",random(-16,16),random(-16,16),random(-16,16),random(-3,3),random(-3,3),random(-3,3),0,1)
MRFP A 1 A_SpawnItemEx("FreezeEnergyFX",random(-16,16),random(-16,16),random(-16,16),random(-3,3),random(-3,3),random(-3,3),0,1)
MRFP A 0 A_GiveInventory("CutterFlag",1)
MRFP A 0 A_JumpIfInventory("CutterFlag",35,"Death.Ceiling")
loop
Death:
MRFP A 0 A_CheckCeiling("Death.Ceiling")
stop
Death.Ceiling:
MRFP AAAAAAAA 0 A_SpawnItemEx("FreezeEnergyFX",random(-16,16),random(-16,16),random(-16,16),random(-16,16),random(-16,16),random(-4,-1),0,1)
MRFP A 0 A_PlaySoundEx("weapon/icewavespawn","Body")
goto Death.CeilingLoop
Death.CeilingLoop:
TNT1 A 0 A_SpawnItemEx("FreezicleSpawner1",8,0,0,20,0,0,0*22.5)
TNT1 A 0 A_SpawnItemEx("FreezicleSpawner1",8,0,0,20,0,0,1*22.5)
TNT1 A 0 A_SpawnItemEx("FreezicleSpawner1",8,0,0,20,0,0,2*22.5)
TNT1 A 0 A_SpawnItemEx("FreezicleSpawner1",8,0,0,20,0,0,3*22.5)
TNT1 A 0 A_SpawnItemEx("FreezicleSpawner1",8,0,0,20,0,0,4*22.5)
TNT1 A 0 A_SpawnItemEx("FreezicleSpawner1",8,0,0,20,0,0,5*22.5)
TNT1 A 0 A_SpawnItemEx("FreezicleSpawner1",8,0,0,20,0,0,6*22.5)
TNT1 A 0 A_SpawnItemEx("FreezicleSpawner1",8,0,0,20,0,0,7*22.5)
TNT1 A 0 A_SpawnItemEx("FreezicleSpawner1",8,0,0,20,0,0,8*22.5)
TNT1 A 0 A_SpawnItemEx("FreezicleSpawner1",8,0,0,20,0,0,9*22.5)
TNT1 A 0 A_SpawnItemEx("FreezicleSpawner1",8,0,0,20,0,0,10*22.5)
TNT1 A 0 A_SpawnItemEx("FreezicleSpawner1",8,0,0,20,0,0,11*22.5)
TNT1 A 0 A_SpawnItemEx("FreezicleSpawner1",8,0,0,20,0,0,12*22.5)
TNT1 A 0 A_SpawnItemEx("FreezicleSpawner1",8,0,0,20,0,0,13*22.5)
TNT1 A 0 A_SpawnItemEx("FreezicleSpawner1",8,0,0,20,0,0,14*22.5)
TNT1 A 35 A_SpawnItemEx("FreezicleSpawner1",8,0,0,20,0,0,15*22.5)
TNT1 A 0 A_GiveInventory("WeaponCharge",1)
TNT1 A 0 A_JumpIfInventory("WeaponCharge",meleerange,"StopIt")
loop
StopIt:
TNT1 A 0
stop
}
}

actor FreezeColdEnergy2 : FreezeColdEnergy1
{
meleerange 2
}

actor FreezeColdEnergy3 : FreezeColdEnergy1
{
meleerange 3
}

actor FreezeColdEnergyUlt : FreezeColdEnergy1
{
Obituary "$OB_FREEZEMAN3"
States
{
Death.Ceiling:
MRFP AAAAAAAA 0 A_SpawnItemEx("FreezeEnergyFX",random(-16,16),random(-16,16),random(-16,16),random(-16,16),random(-16,16),random(-4,-1),0,1)
MRFP A 0 A_PlaySoundEx("weapon/icewavespawn","Body")
TNT1 A 3 A_SpawnItemEx("FreezicleSpawnerUlt",0,0,0,0,0,0,0,SXF_TRANSFERPOINTERS)
stop
}
}

actor FreezicleSpawner1 : BasicProjectile
{
Radius 1
Height 1
scale 2.5
damage (0)
reactiontime 3
+NOINTERACTION
+SKYEXPLODE
+CEILINGHUGGER
States
{
Spawn:
TNT1 A 0
TNT1 A 2 A_SpawnItemEx("IcePitFreeze")
TNT1 AAAA 5 A_SpawnItemEx("Freezesicle")
stop
Death:
TNT1 A 0
stop
}
}

actor FreezicleSpawner2 : FreezicleSpawner1
{
reactiontime 6
}

actor FreezicleSpawner3 : FreezicleSpawner1
{
reactiontime 9
}

actor FreezicleSpawnerUlt : FreezicleSpawner1
{
-NOINTERACTION
reactiontime 108
States
{
Spawn:
TNT1 A 0
TNT1 AA 0 A_SpawnItemEx("FreezesicleUlt",random(0,900),0,0,0,0,0,random(0,359))
TNT1 AAA 1 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0) == 0, "Death")
TNT1 A 0 A_Countdown
loop
Death:
TNT1 A 0
stop
}
}

actor Freezesicle : BasicProjectile
{
Obituary "$OB_FREEZEMAN2"
+NOGRAVITY
+CEILINGHUGGER
-FLOORHUGGER
Radius 16
Height 16
scale 2.5
damage (5)
damagetype "Freezeman"
States
{
Spawn:
TNT1 A 0
TNT1 A 1
MRFC ABCC 3
MRFC C 0 A_ChangeFlag("CEILINGHUGGER",0)
MRFC C 0 A_ChangeFlag("NOGRAVITY",0)
loopit:
MRFC C 1 A_CheckFloor("Death")
MRFC C 0 A_ScaleVelocity(1.3)
loop
Death:
TNT1 A 0 A_PlaySoundEx("weapon/freezecrackerhit","Weapon")
TNT1 A 0 A_SpawnItemEx("FreezemanFreezeBit2",0,0,0,28,0,0,60)
TNT1 A 0 A_SpawnItemEx("FreezemanFreezeBit2",0,0,0,28,0,0,-60)
TNT1 A 0 A_SpawnItemEx("FreezemanFreezeBit2",0,0,0,28,0,0,120)
TNT1 A 0 A_SpawnItemEx("FreezemanFreezeBit2",0,0,0,28,0,0,-120)
TNT1 A 0 A_SpawnItemEx("FreezemanFreezeBit2",0,0,0,28,0,0,180)
TNT1 A 0 A_SpawnItemEx("FreezemanFreezeBit2",0,0,0,28,0,0,0)
TNT1 A 1 A_SpawnItemEx("IcePitFreeze")
stop
}
}

actor FreezesicleUlt : Freezesicle
{
Obituary "$OB_FREEZEMAN3"
damage (20)
gravity 4.0
damagetype "FreezemanUltFreeze"
States
{
Spawn:
TNT1 A 0
MRFC ABC 1
MRFC C 0 A_ChangeFlag("CEILINGHUGGER",0)
MRFC C 0 A_ChangeFlag("NOGRAVITY",0)
loopit:
MRFC C 1 A_CheckFloor("Death")
loop
XDeath:
TNT1 A 0 A_PlaySoundEx("weapon/centaurflash","Body")
TNT1 A 2
stop
Death:
TNT1 A 0 A_PlaySoundEx("weapon/centaurflash","Body")
TNT1 A 0 A_SpawnItemEx("FreezemanFreezeBit3",0,0,0,28,0,0,60)
TNT1 A 0 A_SpawnItemEx("FreezemanFreezeBit3",0,0,0,28,0,0,-60)
TNT1 A 0 A_SpawnItemEx("FreezemanFreezeBit3",0,0,0,28,0,0,120)
TNT1 A 0 A_SpawnItemEx("FreezemanFreezeBit3",0,0,0,28,0,0,-120)
TNT1 A 0 A_SpawnItemEx("FreezemanFreezeBit3",0,0,0,28,0,0,180)
TNT1 A 0 A_SpawnItemEx("FreezemanFreezeBit3",0,0,0,28,0,0,0)
TNT1 A 1 A_SpawnItemEx("IcePitFreeze")
stop
}
}

actor FreezeEnergyFX : BasicGraphicEffect
{
scale 2.4
renderstyle add
States
{
SpawnFrame:
MRFP AAA 1 A_SetScale(scalex-0.2,scaley-0.2)
MRFP A 0 A_FadeOut(0.25)
MRFP AAA 1 A_SetScale(scalex-0.2,scaley-0.2)
MRFP A 0 A_FadeOut(0.25)
MRFP AAA 1 A_SetScale(scalex-0.2,scaley-0.2)
MRFP A 0 A_FadeOut(0.25)
MRFP AAA 1 A_SetScale(scalex-0.2,scaley-0.2)
MRFP A 0 A_FadeOut(0.25)
stop
}
}

actor FreezeEnergyFX2 : FreezeEnergyFX
{
States
{
SpawnFrame:
MRFP AAA 1 A_SetScale(scalex-0.1,scaley-0.1)
MRFP A 0 A_FadeOut(0.12)
MRFP AAA 1 A_SetScale(scalex-0.1,scaley-0.1)
MRFP A 0 A_FadeOut(0.12)
MRFP AAA 1 A_SetScale(scalex-0.1,scaley-0.1)
MRFP A 0 A_FadeOut(0.12)
MRFP AAA 1 A_SetScale(scalex-0.1,scaley-0.1)
MRFP A 0 A_FadeOut(0.12)
MRFP AAA 1 A_SetScale(scalex-0.1,scaley-0.1)
MRFP A 0 A_FadeOut(0.12)
MRFP AAA 1 A_SetScale(scalex-0.1,scaley-0.1)
MRFP A 0 A_FadeOut(0.12)
MRFP AAA 1 A_SetScale(scalex-0.1,scaley-0.1)
MRFP A 0 A_FadeOut(0.12)
MRFP AAA 1 A_SetScale(scalex-0.1,scaley-0.1)
MRFP A 0 A_FadeOut(0.12)
stop
}
}

actor FreezeShockwaveA : BasicProjectile
{
Obituary "$OB_FREEZEMAN4"
Radius 16
Height 16
scale 2.5
damage (10)
+RIPPER
renderstyle add
speed 25
damagetype "FreezemanFreeze"
States
{
Spawn:
TNT1 A 0
MRFP AA 0 A_SpawnItemEx("FreezeEnergyFX",random(-16,16),random(-16,16),random(-16,16),random(-3,3),random(-3,3),random(-3,3),0,1)
MRFP A 1 A_SpawnItemEx("FreezeEnergyFX",random(-16,16),random(-16,16),random(-16,16),random(-3,3),random(-3,3),random(-3,3),0,1)
loop
Death:
TNT1 A 0 A_SpawnItemEx("IcePitFreeze")
MRFP A 0 A_CheckFloor("Death.Floor")
stop
Death.Floor:
MRFP A 0 A_PlaySoundEx("weapon/icewavebreak","Body")
MRFP A 0 A_SpawnItemEx("FreezemanFloorFreeze",24,0,0,20,0,0,0)
MRFP A 0 A_SpawnItemEx("FreezemanFloorFreeze",24,0,0,20,0,0,22.5)
MRFP A 0 A_SpawnItemEx("FreezemanFloorFreeze",24,0,0,20,0,0,45)
MRFP A 0 A_SpawnItemEx("FreezemanFloorFreeze",24,0,0,20,0,0,67.5)
MRFP A 0 A_SpawnItemEx("FreezemanFloorFreeze",24,0,0,20,0,0,90)
MRFP A 0 A_SpawnItemEx("FreezemanFloorFreeze",24,0,0,20,0,0,112.5)
MRFP A 0 A_SpawnItemEx("FreezemanFloorFreeze",24,0,0,20,0,0,135)
MRFP A 0 A_SpawnItemEx("FreezemanFloorFreeze",24,0,0,20,0,0,157.5)
MRFP A 0 A_SpawnItemEx("FreezemanFloorFreeze",24,0,0,20,0,0,180)
MRFP A 0 A_SpawnItemEx("FreezemanFloorFreeze",24,0,0,20,0,0,202.5)
MRFP A 0 A_SpawnItemEx("FreezemanFloorFreeze",24,0,0,20,0,0,225)
MRFP A 0 A_SpawnItemEx("FreezemanFloorFreeze",24,0,0,20,0,0,247.5)
MRFP A 0 A_SpawnItemEx("FreezemanFloorFreeze",24,0,0,20,0,0,270)
MRFP A 0 A_SpawnItemEx("FreezemanFloorFreeze",24,0,0,20,0,0,292.5)
MRFP A 0 A_SpawnItemEx("FreezemanFloorFreeze",24,0,0,20,0,0,315)
TNT1 A 1 A_SpawnItemEx("FreezemanFloorFreeze",24,0,0,20,0,0,337.5)
stop
}
}

actor FreezeShockwaveB : FreezeShockwaveA
{
States
{
Death.Floor:
MRFP A 0 A_PlaySoundEx("weapon/icewavebreak","Body")
MRFP A 0 A_SpawnItemEx("FreezemanFloorFreeze2",24,0,0,20,0,0,0)
MRFP A 0 A_SpawnItemEx("FreezemanFloorFreeze2",24,0,0,20,0,0,22.5)
MRFP A 0 A_SpawnItemEx("FreezemanFloorFreeze2",24,0,0,20,0,0,45)
MRFP A 0 A_SpawnItemEx("FreezemanFloorFreeze2",24,0,0,20,0,0,67.5)
MRFP A 0 A_SpawnItemEx("FreezemanFloorFreeze2",24,0,0,20,0,0,90)
MRFP A 0 A_SpawnItemEx("FreezemanFloorFreeze2",24,0,0,20,0,0,112.5)
MRFP A 0 A_SpawnItemEx("FreezemanFloorFreeze2",24,0,0,20,0,0,135)
MRFP A 0 A_SpawnItemEx("FreezemanFloorFreeze2",24,0,0,20,0,0,157.5)
MRFP A 0 A_SpawnItemEx("FreezemanFloorFreeze2",24,0,0,20,0,0,180)
MRFP A 0 A_SpawnItemEx("FreezemanFloorFreeze2",24,0,0,20,0,0,202.5)
MRFP A 0 A_SpawnItemEx("FreezemanFloorFreeze2",24,0,0,20,0,0,225)
MRFP A 0 A_SpawnItemEx("FreezemanFloorFreeze2",24,0,0,20,0,0,247.5)
MRFP A 0 A_SpawnItemEx("FreezemanFloorFreeze2",24,0,0,20,0,0,270)
MRFP A 0 A_SpawnItemEx("FreezemanFloorFreeze2",24,0,0,20,0,0,292.5)
MRFP A 0 A_SpawnItemEx("FreezemanFloorFreeze2",24,0,0,20,0,0,315)
TNT1 A 1 A_SpawnItemEx("FreezemanFloorFreeze2",24,0,0,20,0,0,337.5)
stop
}
}

actor FreezeShockwaveC : FreezeShockwaveA
{
States
{
Death.Floor:
MRFP A 0 A_PlaySoundEx("weapon/icewavebreak","Body")
MRFP A 0 A_SpawnItemEx("FreezemanFloorFreeze3",24,0,0,20,0,0,0)
MRFP A 0 A_SpawnItemEx("FreezemanFloorFreeze3",24,0,0,20,0,0,22.5)
MRFP A 0 A_SpawnItemEx("FreezemanFloorFreeze3",24,0,0,20,0,0,45)
MRFP A 0 A_SpawnItemEx("FreezemanFloorFreeze3",24,0,0,20,0,0,67.5)
MRFP A 0 A_SpawnItemEx("FreezemanFloorFreeze3",24,0,0,20,0,0,90)
MRFP A 0 A_SpawnItemEx("FreezemanFloorFreeze3",24,0,0,20,0,0,112.5)
MRFP A 0 A_SpawnItemEx("FreezemanFloorFreeze3",24,0,0,20,0,0,135)
MRFP A 0 A_SpawnItemEx("FreezemanFloorFreeze3",24,0,0,20,0,0,157.5)
MRFP A 0 A_SpawnItemEx("FreezemanFloorFreeze3",24,0,0,20,0,0,180)
MRFP A 0 A_SpawnItemEx("FreezemanFloorFreeze3",24,0,0,20,0,0,202.5)
MRFP A 0 A_SpawnItemEx("FreezemanFloorFreeze3",24,0,0,20,0,0,225)
MRFP A 0 A_SpawnItemEx("FreezemanFloorFreeze3",24,0,0,20,0,0,247.5)
MRFP A 0 A_SpawnItemEx("FreezemanFloorFreeze3",24,0,0,20,0,0,270)
MRFP A 0 A_SpawnItemEx("FreezemanFloorFreeze3",24,0,0,20,0,0,292.5)
MRFP A 0 A_SpawnItemEx("FreezemanFloorFreeze3",24,0,0,20,0,0,315)
TNT1 A 1 A_SpawnItemEx("FreezemanFloorFreeze3",24,0,0,20,0,0,337.5)
stop
}
}

actor FreezeShockwaveUlt : FreezeShockwaveA
{
Obituary "$OB_FREEZEMAN3"
damagetype "FreezemanUltFreeze2"
damage (3)
States
{
Death.Floor:
MRFP A 0 A_SpawnItemEx("IcePitFreeze")
MRFP A 0 A_PlaySoundEx("misc/icemachinecharge","Body")
MRFP A 0 A_SpawnItemEx("FreezemanFloorFreezeUlt",24,0,0,20,0,0,0)
MRFP A 0 A_SpawnItemEx("FreezemanFloorFreezeUlt",24,0,0,20,0,0,15)
MRFP A 0 A_SpawnItemEx("FreezemanFloorFreezeUlt",24,0,0,20,0,0,30)
MRFP A 0 A_SpawnItemEx("FreezemanFloorFreezeUlt",24,0,0,20,0,0,45)
MRFP A 0 A_SpawnItemEx("FreezemanFloorFreezeUlt",24,0,0,20,0,0,60)
MRFP A 0 A_SpawnItemEx("FreezemanFloorFreezeUlt",24,0,0,20,0,0,75)
MRFP A 0 A_SpawnItemEx("FreezemanFloorFreezeUlt",24,0,0,20,0,0,90)
MRFP A 0 A_SpawnItemEx("FreezemanFloorFreezeUlt",24,0,0,20,0,0,105)
MRFP A 0 A_SpawnItemEx("FreezemanFloorFreezeUlt",24,0,0,20,0,0,120)
MRFP A 0 A_SpawnItemEx("FreezemanFloorFreezeUlt",24,0,0,20,0,0,135)
MRFP A 0 A_SpawnItemEx("FreezemanFloorFreezeUlt",24,0,0,20,0,0,150)
MRFP A 0 A_SpawnItemEx("FreezemanFloorFreezeUlt",24,0,0,20,0,0,165)
MRFP A 0 A_SpawnItemEx("FreezemanFloorFreezeUlt",24,0,0,20,0,0,180)
MRFP A 0 A_SpawnItemEx("FreezemanFloorFreezeUlt",24,0,0,20,0,0,195)
MRFP A 0 A_SpawnItemEx("FreezemanFloorFreezeUlt",24,0,0,20,0,0,210)
MRFP A 0 A_SpawnItemEx("FreezemanFloorFreezeUlt",24,0,0,20,0,0,225)
MRFP A 0 A_SpawnItemEx("FreezemanFloorFreezeUlt",24,0,0,20,0,0,240)
MRFP A 0 A_SpawnItemEx("FreezemanFloorFreezeUlt",24,0,0,20,0,0,255)
MRFP A 0 A_SpawnItemEx("FreezemanFloorFreezeUlt",24,0,0,20,0,0,270)
MRFP A 0 A_SpawnItemEx("FreezemanFloorFreezeUlt",24,0,0,20,0,0,285)
MRFP A 0 A_SpawnItemEx("FreezemanFloorFreezeUlt",24,0,0,20,0,0,300)
MRFP A 0 A_SpawnItemEx("FreezemanFloorFreezeUlt",24,0,0,20,0,0,315)
MRFP A 0 A_SpawnItemEx("FreezemanFloorFreezeUlt",24,0,0,20,0,0,330)
TNT1 A 1 A_SpawnItemEx("FreezemanFloorFreezeUlt",24,0,0,20,0,0,345)
stop
}
}

actor MovementFreeze
{
PROJECTILE
+NOINTERACTION
-DONTBLAST
Scale 2.5
reactiontime 36
states
{
Spawn:
MRFF D 0
MRFF D 1 A_GiveToTarget("MovementFrozen",1)
MRFF D 0 A_GiveToTarget("IAmFrozen")
MRFF D 0 A_JumpIfInTargetInventory("IsDead",1,"Death")
MRFF D 0 A_JumpIfInTargetInventory("IsTheTerminator",1,"Death")
MRFF D 0 A_JumpIfInTargetInventory("ReleaseFromFreezes",1,"Death")
MRFF D 0 A_Countdown
loop
Death:
MRFF D 0 A_GiveToTarget("MovementReturnFailsafe",1)
stop
}
}

actor MovementFreeze2
{
RenderStyle "Translucent"
PROJECTILE
+NOINTERACTION
-DONTBLAST
Scale 5.0
Alpha 0.6
reactiontime 30
states
{
Spawn:
TNT1 A 0
MRFA B 1 A_GiveToTarget("MovementFrozen2",1)
MRFF D 0 A_GiveToTarget("IAmFrozen")
MRFF D 0 A_JumpIfInTargetInventory("IsDead",1,"Death")
MRFF D 0 A_JumpIfInTargetInventory("IsTheTerminator",1,"Death")
MRFF D 0 A_JumpIfInTargetInventory("ReleaseFromFreezes",1,"Death")
MRFF D 0 A_Countdown
loop
Death:
MRFA A 0 A_GiveToTarget("MovementReturnFailsafe",1)
MRFA A 0 A_GiveToTarget("StunImmunity")
MRFA A 0 A_TakeFromTarget("FreezeVision",1)
TNT1 AAAAAAAAAAAA 0 A_SpawnItemEx("FreezeChargeFX",0,0,0,random(-10,10),random(-10,10),random(10,15),random(0,360))
stop
}
}

actor ReleaseFromFreezes : Powerup
{
Powerup.Duration 3
}

actor IAmFrozen : Powerup
{
Powerup.Duration 2
}

actor FreezemanFreezeProtect : PowerProtection
{
Powerup.Duration 35
damagefactor "FreezemanFreeze", 0.0
}

actor FreezeTauntDamage : PowerProtection
{
Powerup.Duration 210
damagefactor "FreezemanPose", 1000.0
}

actor FreezeVision : PowerUp
{
Powerup.Duration 1200
Powerup.Color Blue, 0.5
}

actor WeakToAllFire : PowerProtection
{
	Powerup.Duration 210
	damagefactor "MegaUppercutBurn", 1000.0
	damagefactor "FiremanAlt", 1000.0
	damagefactor "Fireman", 1000.0
	damagefactor "FiremanUlt", 1000.0
	damagefactor "HotDog", 1000.0
	damagefactor "HeatmanPillar", 1000.0
	damagefactor "HeatmanTackle", 1000.0
	damagefactor "HeatmanAfterBurnPillar", 1000.0
	damagefactor "HeatmanAfterBurnTackle", 1000.0
	damagefactor "Heatman", 1000.0
	damagefactor "HeatmanSurge", 1000.0
	damagefactor "HeatmanSurge2", 1000.0
	damagefactor "HeatmanSurgeBurn", 1000.0
	damagefactor "AlienBreath", 1000.0
	damagefactor "PharaohmanWave", 1000.0
	damagefactor "PharaohmanWaveCounter", 1000.0
	damagefactor "PharaohUlt", 1000.0
	damagefactor "Flameman", 1000.0
	damagefactor "FlamemanBurn", 1000.0
	damagefactor "TurbomanWheel", 1000.0
	damagefactor "TurbomanBurn", 1000.0
	damagefactor "Turboman", 1000.0
	damagefactor "SwordMan", 1000.0
	damagefactor "SwordMan2", 1000.0
	damagefactor "SwordManAlt", 1000.0
	damagefactor "SwordManTF2", 1000.0
	damagefactor "SwordManTF", 1000.0
	damagefactor "SwordManUlt", 1000.0
	damagefactor "Burnerman", 1000.0
	damagefactor "BurnermanLunge", 1000.0
	damagefactor "BurnerFlames", 1000.0
	damagefactor "BurnermanBurn", 1000.0
	damagefactor "MagmaManBazooka", 1000.0
	damagefactor "MagmamanChangkey", 1000.0
	damagefactor "Magmaman", 1000.0
	damagefactor "Solarman", 1000.0
	damagefactor "SolarWave", 1000.0
	damagefactor "SolarInferno", 1000.0
	damagefactor "SolarSun", 1000.0
	damagefactor "SolarSun2", 1000.0
	damagefactor "DrWilyUltFire", 1000.0
	damagefactor "DragonFlame", 1000.0
	damagefactor "DragonBurn", 1000.0
	damagefactor "DragonBreath", 1000.0
	damagefactor "FireStorm", 1000.0
	damagefactor "FireSpin", 1000.0
	damagefactor "AtomicFire1", 1000.0
	damagefactor "AtomicFire2", 1000.0
	damagefactor "AtomicFire3", 1000.0
	damagefactor "PharaohShot1", 1000.0
	damagefactor "PharaohShot2", 1000.0
	damagefactor "PharaohShot3", 1000.0
	damagefactor "PharaohHold", 1000.0
	damagefactor "FlameBlast", 1000.0
	damagefactor "ScorchWheel", 1000.0
	damagefactor "FlameSword", 1000.0
	damagefactor "FlameSwordSpark", 1000.0
	damagefactor "WaveBurner", 1000.0
	damagefactor "MagmaBazooka1", 1000.0
	damagefactor "MagmaBazooka2", 1000.0
	damagefactor "FireTrap", 1000.0
	damagefactor "FirePillar", 1000.0
}

actor MovementDirectFreeze
{
RenderStyle "Translucent"
PROJECTILE
+NOINTERACTION
-DONTBLAST
reactiontime 210
Scale 5.0
Alpha 0.6
states
{
Spawn:
TNT1 A 0
MRFA B 1 A_GiveToTarget("MovementFrozen2",1)
MRFA F 0 A_JumpIfInTargetInventory("IsDead",1,"Death")
MRFA A 0 A_Countdown
loop
Death:
MRFA A 0 A_GiveToTarget("MovementReturnFailsafe",1)
MRFA A 0 A_TakeFromTarget("FreezeVision",1)
TNT1 AAAAAAAAAAAA 0 A_SpawnItemEx("FreezeChargeFX",0,0,0,random(-10,10),random(-10,10),random(10,15),random(0,360))
stop
}
}

actor FreezePoseHitbox
{
species "DustManType"
+THRUSPECIES
Obituary "$OB_FREEZEMAN5"
PROJECTILE
+NOEXPLODEFLOOR
+RIPPER
Radius 32
Height 32
scale 2.5
speed 0
damage (1)
Damagetype "FreezemanPose"
States
{
Spawn:
TNT1 A 0
TNT1 A 1
stop
}
}

actor FreezeAirAltHandler : CustomInventory
{
States
{
Pickup:
TNT1 A 0 ACS_NamedExecuteWithResult("VC_SetState",5)
TNT1 A 0 A_JumpIfInventory("BaseAltfireAmmo",112,"Pickup3")
TNT1 A 0 A_JumpIfInventory("BaseAltfireAmmo",56,"Pickup2")
TNT1 A 0 A_SpawnItemEx("FreezeShockwaveA",0,0,40,0,0,-25)
TNT1 A 0 A_TakeInventory("BaseAltfireAmmo",112)
stop

Pickup2:
TNT1 A 0 A_SpawnItemEx("FreezeShockwaveB",0,0,40,0,0,-25)
TNT1 A 0 A_TakeInventory("BaseAltfireAmmo",112)
stop

Pickup3:
TNT1 A 0 A_SpawnItemEx("FreezeShockwaveC",0,0,40,0,0,-25)
TNT1 A 0 A_TakeInventory("BaseAltfireAmmo",112)
stop
}
}

actor FreezeGroundAltHandler : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_TakeInventory("Base28Ammo",14)
TNT1 A 0 A_PlaySoundEx("weapon/iceslasher","Weapon")
TNT1 A 0 A_PlaySoundEx("weapon/icewallspawn","Body")
TNT1 A 0 A_JumpIfInventory("BaseAltfireAmmo",112,"Pickup3")
TNT1 A 0 A_JumpIfInventory("BaseAltfireAmmo",56,"Pickup2")
TNT1 A 0 A_SpawnItemEx("FreezeColdEnergy1",0,0,50,0,0,25)
TNT1 A 0 A_TakeInventory("BaseAltfireAmmo",112)
stop

Pickup2:
TNT1 A 0 A_SpawnItemEx("FreezeColdEnergy2",0,0,50,0,0,25)
TNT1 A 0 A_TakeInventory("BaseAltfireAmmo",112)
stop

Pickup3:
TNT1 A 0 A_SpawnItemEx("FreezeColdEnergy3",0,0,50,0,0,25)
TNT1 A 0 A_TakeInventory("BaseAltfireAmmo",112)
stop
}
}

actor FreezeStepFX : BasicGraphicEffect
{
States
{
SpawnFrame:
MRFP LM 2
stop
}
}