actor FreezeCrackerBoss : BaseMM8BDMWep_CBM
{
tag "$TAGC_7A"
dropitem "FreezeCrackerWepCDropped"
Weapon.AmmoUse 4
Weapon.AmmoGive 0
Obituary "$OB_FREEZECRACKER"
weapon.ammotype "MrFreezeAmmo"
States
{
Spawn:
C_07 A 1
loop
Ready:
MRFA A 0 ACS_ExecuteAlways(998,0,DYE_FREEZEMAN)
goto Ready1
Ready1:
MRFA A 0 A_JumpIfInventory("MrFreezeAmmo",4,"Ready2")
MRFA A 4 A_WeaponReady(12)
MRFA A 0 A_GiveInventory("MrFreezeAmmo",1)
loop
Ready2:
MRFA A 0 A_JumpIfInventory("MrFreezeAmmo",28,"Ready3")
MRFA A 4 A_WeaponReady(8)
MRFA A 0 A_GiveInventory("MrFreezeAmmo",1)
loop
Ready3:
MRFA A 4 A_WeaponReady
MRFA A 0 A_GiveInventory("MrFreezeAmmo",1)
loop
Deselect:
MRFA AAAAAAAAAAAAAAAAAAAAAA 0 A_Lower
MRFA A 1 A_Lower
Loop
Select:
MRFA AAAAAAAAAAAAAAAAAAAAAA 0 A_Raise
MRFA A 1 A_Raise
Loop
Fire:
MRFA A 3 Offset(-20,18)
FireH:
MRFA A 0 A_JumpIfNoAmmo("FireEnd")
MRFA A 0 A_PlaySoundEx("weapon/freezecracker","Weapon")
MRFA A 0 A_GiveInventory("FreezemanMain_CI",1)
MRFA B 17 Offset(-20,18)//-21,26
MRFA A 0 A_Refire("FireH")
goto FireEnd
FireEnd:
MRFA A 5 Offset(-20,18)
Goto Ready1

Flash.AltCharge:
TNT1 A 0 A_JumpIfInventory("IsDead",1,"NoFlash")
TNT1 A 0 A_GiveInventory("MrFreezeAltCharge",1)
TNT1 A 0 A_TakeInventory("MrFreezeAmmo",1,1)
TNT1 A 0 A_SpawnItemEx("MrFreezeAltChargeFX",cos(-pitch)*20,8,32+(sin(-pitch)*20),cos(-pitch)*momx,momy,sin(-pitch)*momz,0,553,0)
TNT1 A 0 A_PlaySoundEx("weapon/ChillTrail","Weapon")
TNT1 A 2 
loop

AltFire:
MRFA A 0 A_JumpIfInventory("FreezeFireHold",1,"AltCancel")
//MRFA A 0 A_JumpIfInventory("MrFreezeAmmo",28,1)
//goto Ready1
MRFA A 0 A_GiveInventory("FreezeFireHold",1)
MRFA A 0 A_Refire(1)
MRFA A 0 A_GiveInventory("PowerMrFreezeSlow",1)
MRFA A 0 A_TakeInventory("MrFreezeAmmo",5)
MRFA A 0 ACS_ExecuteAlways(CORE_ACS_191,0,APROP_JumpZ,7,1)
MRFA A 0 A_GunFlash("Flash.AltCharge")
MRFA AAA 2 Offset(-3,30)//A_WeaponReady(7)
MRFA AAAA 2 Offset(-6,27)A_WeaponReady(7)
MRFA AAAA 2 Offset(-9,24)A_WeaponReady(7)
MRFA AAAA 2 Offset(-14,21)A_WeaponReady(7)
MRFA A 2 Offset(-20,18)A_WeaponReady(7)
goto AltfireAltfire

AltCancel:
MRFA A 0 A_GunFlash("NoFlash")
MRFA A 0 A_TakeInventory("MrFreezeAltCharge",99)
MRFA A 0 A_TakeInventory("FreezeFireHold",99)
MRFA A 0 A_Refire(1)
MRFA A 0 A_PlaySoundEx("weapon/ChillTrailEnd","Weapon")
MRFA A 0 A_SpawnItemEx("MrFreezeAltChargeCancel",cos(-pitch)*20,8,32+(sin(-pitch)*20),0,0,0,0,545,0)
MRFA A 2 Offset(20,46)
MRFA A 0 ACS_ExecuteAlways(CORE_ACS_191,0,APROP_JumpZ,10,1)
MRFA A 0 SetPlayerProperty(0,0,0)
MRFA A 2 Offset(10,39)A_TakeInventory("PowerMrFreezeSlow",1)
Goto Ready1
AltfireAltfire:
MRFA A 0 A_GunFlash("NoFlash")
MRFA A 0 A_TakeInventory("MrFreezeAltCharge",99)
MRFA A 0 A_TakeInventory("FreezeFireHold",99)
MRFA A 0 A_PlaySoundEx("weapon/freezecracker","Weapon")
MRFA A 0 A_TakeInventory("MrFreezeAmmo",28,1)
MRFA A 0 A_TakeInventory("PowerMrFreezeSlow",9)
MRFA A 0 A_GiveInventory("FreezemanAlt_CI",1)
MRFA B 25 Offset(-20,18)
MRFA A 0 ACS_ExecuteAlways(CORE_ACS_191,0,APROP_JumpZ,10,1)
MRFA A 0 SetPlayerProperty(0,0,0)
MRFA A 10 Offset(-10,25)
Goto Ready1
}
}

actor MrFreezeAmmo : Ammo
{
inventory.amount 1
inventory.maxamount 28
+INVENTORY.IGNORESKILL
}

actor FreezeFireHold : OnceC{}

actor MrFreezeAltCharge : Inventory
{
inventory.amount 1
inventory.maxamount 14
}

actor PowerMrFreezeSlow : PowerSpeed
{
powerup.duration 40
Speed 0.33
+POWERSPEED.NOTRAIL
}


actor MrFreezemanWalkFX
{
+MISSILE
+NOGRAVITY
+THRUACTORS
+DONTBLAST
+NOINTERACTION
+CLIENTSIDEONLY
damage 0
Radius 2
Height 2
scale 2.5
States
{
Spawn:
MRFB UVWXYZ 1
stop
}
}

actor MrFreezeCracker
{
translation "192:192=4:4", "198:198=69:69"
PROJECTILE
damagetype "FreezeM_Shot"
Obituary "$OB_FREEZECRACKER"
+SKYEXPLODE
+EXPLODEONWATER
+FORCEXYBILLBOARD
damage (130)//190
Radius 10
Height 10
speed 32
scale 2.5
States
{
Spawn:
MRFA M 0
MRFA M 2 A_SpawnItemEx("MrFreezeCrackerSpawnFX",0,0,0,0,0,0,0,1)//-1(20),8,32
MRFA N 0 A_SpawnItemEx("MrFreezeCrackerFXFall",-4,Random(-16,16),random(2,-6),0,0,0,0,1)
MRFA NNN 1 A_SpawnItemEx("MrFreezeCrackerFX",0,Random(-22,22),random(-20,20),0,0,0,0,1)
goto Spawn+2
Death:
TNT1 A 0 A_JumpIf(z-floorz<5,"Floor")
TNT1 A 0 A_JumpIf(z-ceilingz==0-10,"Ceiling")
TNT1 A 0 A_SpawnItemEx("MrFreezeCrackerBit",0,0,0,28,0,0,0,1)
TNT1 A 0 A_SpawnItemEx("MrFreezeCrackerBit",0,0,0,28,0,0,40,1)
TNT1 A 0 A_SpawnItemEx("MrFreezeCrackerBit",0,0,0,28,0,0,80,1)
TNT1 A 0 A_SpawnItemEx("MrFreezeCrackerBit",0,0,0,28,0,0,120,1)
TNT1 A 0 A_SpawnItemEx("MrFreezeCrackerBit",0,0,0,28,0,0,160,1)
TNT1 A 0 A_SpawnItemEx("MrFreezeCrackerBit",0,0,0,28,0,0,200,1)
TNT1 A 0 A_SpawnItemEx("MrFreezeCrackerBit",0,0,0,28,0,0,240,1)
TNT1 A 0 A_SpawnItemEx("MrFreezeCrackerBit",0,0,0,28,0,0,280,1)
TNT1 A 0 A_SpawnItemEx("MrFreezeCrackerBit",0,0,0,28,0,0,320,1)
TNT1 A 1 A_PlaySoundEx("weapon/freezecrackerhit","Weapon")
stop
Floor:
MRFA G 0 A_SpawnItemEx("MrFreezeSpikeF",0,0,0,0,0,0,0,1)
TNT1 A 0 A_SpawnItemEx("MrFreezeWaveWeak",35,0,0,14,0,0,0,1)
TNT1 A 0 A_SpawnItemEx("MrFreezeWaveWeak",35,0,0,14,0,0,120,1)
TNT1 A 0 A_SpawnItemEx("MrFreezeWaveWeak",35,0,0,14,0,0,240,1)
stop
Ceiling:
MRFA J 0 A_SpawnItemEx("MrFreezeSpikeCW",0,0,0,0,0,0,0,1)
TNT1 A 0 A_SpawnItemEx("MrFreezeWaveWeakCeil",35,0,0,14,0,0,0,1)
TNT1 A 0 A_SpawnItemEx("MrFreezeWaveWeakCeil",35,0,0,14,0,0,120,1)
TNT1 A 0 A_SpawnItemEx("MrFreezeWaveWeakCeil",35,0,0,14,0,0,240,1)
stop
XDeath:
TNT1 A 0 A_SpawnItemEx("MrFreezeBitFX_H",0,0,0,0,0,0,0,1)
TNT1 A 1
stop
}
}

actor MrFreezeCrackerB : MrFreezeCracker{translation "192:192=205:205","198:198=74:74"}
actor MrFreezeCrackerR : MrFreezeCracker{translation "192:192=171:171","198:198=41:41"}
actor MrFreezeCrackerO : MrFreezeCracker{translation "192:192=104:104","198:198=128:128"}
actor MrFreezeCrackerP : MrFreezeCracker{translation "192:192=229:229","198:198=232:232"}

actor MrFreezeCrackerSpawnFX : BasicClientSide
{
+FORCEXYBILLBOARD
States
{
Spawn:
MRFA OPQ 4
stop
}
}

actor MrFreezeBitFX_H : BasicClientSide
{
States
{
Spawn:
TNT1 A 0
TNT1 A 0 A_SpawnItemEx("MrFreezeBitFX1",random(-2,2),0,random(2,5),frandom(-2,2),random(-6,-9),frandom(1,6),0,1)
TNT1 A 0 A_SpawnItemEx("MrFreezeBitFX3",random(-2,2),0,random(4,7),frandom(-2,2),random(-2,-5),frandom(2,6.5),0,1)
TNT1 A 0 A_SpawnItemEx("MrFreezeBitFX2",random(-2,2),0,random(6,9),frandom(-2,2),random(-1,1),frandom(3,7),0,1)
TNT1 A 0 A_SpawnItemEx("MrFreezeBitFX4",random(-2,2),0,random(6,7),frandom(-2,2),random(2,5),frandom(2,6.5),0,1)
TNT1 A 0 A_SpawnItemEx("MrFreezeBitFX1",random(-2,2),0,random(2,5),frandom(-2,2),random(6,9),frandom(1,6),0,1)
stop
}
}

actor MrFreezeAltChargeFX
{
PROJECTILE
+DONTBLAST
+THRUACTORS
+NOINTERACTION
+NOTIMEFREEZE
+FORCEXYBILLBOARD
Height 2
Radius 2
scale 2.5
States
{
Spawn:
TNT1 A 0
TNT1 A 0 A_Jump(256,1,2)
MRFA R 2
stop
MRFA S 2
stop
}
}

actor MrFreezeAltChargeCancel : BasicHelper
{
States
{
Spawn:
TNT1 A 0
TNT1 AAAAAAAA 0 A_SpawnItemEx("MrFreezemanWalkFX",frandom(1,10),0,frandom(-14,14),frandom(4,6),0,frandom(1,6),random(0,71)*5,1,32)
TNT1 AAAAAAAA 0 A_SpawnItemEx("MrFreezemanWalkFX",frandom(1,10),0,frandom(-14,14),frandom(4,6),0,frandom(-6,-1),random(0,71)*5,1,32)
TNT1 AAAAAAAA 0 A_SpawnItemEx("MrFreezeCrackerFX",frandom(1,10),0,frandom(-14,14),frandom(6,8),0,frandom(1,8),random(0,71)*5,1,32)
TNT1 AAAAAAAA 0 A_SpawnItemEx("MrFreezeCrackerFX",frandom(1,10),0,frandom(-14,14),frandom(6,8),0,frandom(-8,-1),random(0,71)*5,1,32)
stop
}
}


actor MrFreezeSuperCracker : MrFreezeCracker
{
damagetype "FreezeM_Frozen"
+RIPPER
Damage (50)
States
{
Spawn:
MRFA M 0
MRFA M 0 A_SpawnItemEx("MrFreezeCrackerSpawnFX",0,0,0,0,0,0,0,1)
MRFA M 1 A_SpawnItemEx("MrFreezeSuperCrackerFX",0,0,0,0,0,0,0,1)
MRFA M 0 A_SpawnItemEx("MrFreezeCrackerFXFall",-4,Random(-24,24),random(6,-8),0,0,0,0,1)
MRFA MM 0 A_SpawnItemEx("MrFreezeCrackerFX",0,Random(-26,26),random(-22,22),0,0,0,0,1)
goto Spawn+2
Death:
TNT1 A 0 A_PlaySoundEx("weapon/centaurflash","Item")
TNT1 A 0 A_PlaySoundEx("weapon/freezefloor","Weapon")
TNT1 A 0 A_JumpIf(z-floorz<0-z+ceilingz, "Floor")
TNT1 A 0 A_JumpIf(z-ceilingz<-10, 2)
TNT1 A 0 A_SpawnItemEx("MrFreezeSpikeC",0,0,0,0,0,0,0,1)

TNT1 A 0 A_SpawnItemEx("MrFreezeWaveCeil",35,0,0,14,0,0,60,1)
TNT1 A 0 A_SpawnItemEx("MrFreezeWaveCeil",35,0,0,14,0,0,-60,1)
TNT1 A 0 A_SpawnItemEx("MrFreezeWaveCeil",35,0,0,14,0,0,120,1)
TNT1 A 0 A_SpawnItemEx("MrFreezeWaveCeil",35,0,0,14,0,0,-120,1)
TNT1 A 0 A_SpawnItemEx("MrFreezeWaveCeil",35,0,0,14,0,0,180,1)
TNT1 A 0 A_SpawnItemEx("MrFreezeWaveCeil",35,0,0,14,0,0,0,1)
TNT1 A 0 A_SpawnItemEx("MrFreezeWaveCeil2",35,0,0,14,0,0,30,1)
TNT1 A 0 A_SpawnItemEx("MrFreezeWaveCeil2",35,0,0,14,0,0,90,1)
TNT1 A 0 A_SpawnItemEx("MrFreezeWaveCeil2",35,0,0,14,0,0,150,1)
TNT1 A 0 A_SpawnItemEx("MrFreezeWaveCeil2",35,0,0,14,0,0,210,1)
TNT1 A 0 A_SpawnItemEx("MrFreezeWaveCeil2",35,0,0,14,0,0,270,1)
TNT1 A 0 A_SpawnItemEx("MrFreezeWaveCeil2",35,0,0,14,0,0,330,1)
TNT1 A 1
stop
Floor:
TNT1 A 0 A_JumpIf(z-floorz>=5, 2)//5
TNT1 A 0 A_SpawnItemEx("MrFreezeSpikeF",0,0,0,0,0,0,0,1)

TNT1 A 0 A_SpawnItemEx("MrFreezeWave",35,0,0,14,0,0,0,1)
TNT1 A 0 A_SpawnItemEx("MrFreezeWave",35,0,0,14,0,0,60,1)
TNT1 A 0 A_SpawnItemEx("MrFreezeWave",35,0,0,14,0,0,-60,1)
TNT1 A 0 A_SpawnItemEx("MrFreezeWave",35,0,0,14,0,0,120,1)
TNT1 A 0 A_SpawnItemEx("MrFreezeWave",35,0,0,14,0,0,-120,1)
TNT1 A 0 A_SpawnItemEx("MrFreezeWave",35,0,0,14,0,0,180,1)
TNT1 A 0 A_SpawnItemEx("MrFreezeWave2",35,0,0,14,0,0,30,1)
TNT1 A 0 A_SpawnItemEx("MrFreezeWave2",35,0,0,14,0,0,90,1)
TNT1 A 0 A_SpawnItemEx("MrFreezeWave2",35,0,0,14,0,0,150,1)
TNT1 A 0 A_SpawnItemEx("MrFreezeWave2",35,0,0,14,0,0,210,1)
TNT1 A 0 A_SpawnItemEx("MrFreezeWave2",35,0,0,14,0,0,270,1)
TNT1 A 0 A_SpawnItemEx("MrFreezeWave2",35,0,0,14,0,0,330,1)

TNT1 A 1
stop
}
}

actor MrFreezeSuperCrackerB : MrFreezeSuperCracker{translation "192:192=205:205","198:198=74:74"}
actor MrFreezeSuperCrackerR : MrFreezeSuperCracker{translation "192:192=171:171","198:198=41:41"}
actor MrFreezeSuperCrackerO : MrFreezeSuperCracker{translation "192:192=104:104","198:198=128:128"}
actor MrFreezeSuperCrackerP : MrFreezeSuperCracker{translation "192:192=229:229","198:198=232:232"}


actor MrFreezeSuperCrackerFX : BasicClientSide
{
RenderStyle "Translucent"
Alpha 0.75
States
{
Spawn:
MRFA M 6
stop
}
}

actor MrFreezeCrackerBit
{
PROJECTILE
damagetype "FreezeM_ShotBit"
Obituary "$OB_FREEZECRACKER"
+FORCEXYBILLBOARD
damage (50)
Radius 6
Height 6
speed 28
scale 2.5
states
{
Spawn:
MRFA QO 4
MRFA P 32
loop
}
}

actor MrFreezeCrackerBitT : MrFreezeCrackerBit
{
+THRUACTORS
states
{
Spawn:
MRFA P 2
MRFA P 0 A_ChangeFlag(THRUACTORS,0)
MRFA QO 4
MRFA P 32
goto Spawn+2
}
}

actor MrFreezeWave
{
PROJECTILE
damagetype "FreezeM_Iced"
Obituary "$OB_FREEZECRACKER"
+FLOORHUGGER
+RIPPER
+THRUGHOST
+BOUNCEONFLOORS
+BOUNCEONWALLS
+BOUNCEONCEILINGS
+ALLOWBOUNCEONACTORS
+CANBOUNCEWATER
WallBounceFactor 1.0
Bouncecount 5
reactiontime 5
Damage (30)
Height 10
Radius 10
Scale 2.5
States
{
Spawn:
MRFA U 0
MRFA UUUUUUUUUU 1 A_GiveInventory("MrFreezeWave_P2",1)
MRFA U 0 A_CountDown
MRFA T 0 A_SpawnItemEx("MrFreezeSpikeF",0,0,0,0,0,0,0,1)
MRFA TTTTTTTTTT 1 A_GiveInventory("MrFreezeWave_P1",1)
MRFA T 0 A_CountDown
MRFA U 0 A_SpawnItemEx("MrFreezeSpikeF",0,0,0,0,0,0,0,1)
loop
}
}
actor MrFreezeWave2 : MrFreezeWave
{
Renderstyle "Translucent"
Alpha 0.6
States
{
Spawn:
MRFA U 0
MRFA UUUUUUUUUU 1 A_GiveInventory("MrFreezeWave_P2",1)
MRFA TTTTTTTTTT 1 A_GiveInventory("MrFreezeWave_P1",1)
stop
}
}

actor MrFreezeWave_P1 : CustomInventory
{
States
{
Pickup:
TNT1 A 0 ThrustThing(angle*256/360,0)
TNT1 A 0 A_SpawnItemEx("MrFreezeWaveFX1",0,0,0,0,0,0,0,1)
stop
}
}
actor MrFreezeWave_P2 : CustomInventory
{
States
{
Pickup:
TNT1 A 0 ThrustThing(angle*256/360,0)
TNT1 A 0 A_SpawnItemEx("MrFreezeWaveFX2",0,0,0,0,0,0,0,1)
stop
}
}

actor MrFreezeWaveFX1 : BasicClientSide
{
RenderStyle "Translucent"
Alpha 0.6
states
{
Spawn:
TNT1 A 0
MRFA TTTTTT 1 A_Fadeout
stop
}
}
actor MrFreezeWaveFX2 : MrFreezeWaveFX1
{
states
{
Spawn:
TNT1 A 0
MRFA UUUUUU 1 A_Fadeout 
stop
}
}

actor MrFreezeWaveCeil : MrFreezeWave
{
-FLOORHUGGER
+CEILINGHUGGER
States
{
Spawn:
MRFA U 0
MRFA UUUUUUUUUU 1 A_GiveInventory("MrFreezeWave_P2",1)
MRFA U 0 A_CountDown
MRFA T 0 A_SpawnItemEx("MrFreezeSpikeC",0,0,0,0,0,0,random(0,359),1)
MRFA TTTTTTTTTT 1 A_GiveInventory("MrFreezeWave_P1",1)
MRFA T 0 A_CountDown
MRFA U 0 A_SpawnItemEx("MrFreezeSpikeC",0,0,0,0,0,0,random(0,359),1)
loop
}
}
actor MrFreezeWaveCeil2 : MrFreezeWaveCeil
{
Renderstyle "Translucent"
Alpha 0.6
States
{
Spawn:
MRFA U 0
MRFA UUUUUUUUUU 1 A_GiveInventory("MrFreezeWave_P2",1)
MRFA TTTTTTTTTT 1 A_GiveInventory("MrFreezeWave_P1",1)
Stop
}
}

actor MrFreezeWaveWeak : MrFreezeWave
{
damagetype "FreezeM_Shot"
Damage (30)
States
{
Spawn:
MRFA U 0
MRFA UUUUU 1
MRFA U 0 A_SpawnItemEx("MrFreezeSpikeF",0,0,0,0,0,0,0,1)
stop
}
}

actor MrFreezeWaveWeakCeil : MrFreezeWaveCeil
{
damagetype "FreezeM_Shot"
damage (30)
states
{
Spawn:
MRFA U 0
MRFA UUUUU 1
MRFP U 0 A_SpawnItemEx("MrFreezeSpikeCW",0,0,0,0,0,0,random(0,359),1)
stop
}
}

actor MrFreezeSpikeF
{
var int user_P;
PROJECTILE
damagetype "FreezeM_SpikeF"
Obituary "$OB_FREEZEICICLE"
+DONTBLAST
+FLOORHUGGER
damage (40+user_P*10)
Radius 9
Height 18
speed 26
scale 2.5
states
{
Spawn:
MRFA G 0
MRFA G 5 A_PlaySoundEx("weapon/blizzboss","Weapon")
MRFA H 5 A_SetUserVar("user_P",8)
MRFA I 78 A_SetUserVar("user_P",16)
MRFA H 5 A_SetUserVar("user_P",8)
MRFA G 5 A_SetUserVar("user_P",0)
stop
}
}

actor MrFreezeSpikeC : MrFreezeSpikeF
{
damagetype "FreezeM_SpikeC"
Obituary "$OB_FREEZEICICLEC"
-DONTBLAST
-FLOORHUGGER
+NOGRAVITY
damage (110+user_P*10)
Height 9
states
{
Spawn:
MRFA J 0
MRFA J 5 A_PlaySoundEx("weapon/blizzboss","Weapon")
MRFA K 5 A_SetUserVar("user_P",12)
MRFA L 12 A_SetUserVar("user_P",24)
MRFA L 0 A_ChangeFlag("NOGRAVITY",0)
MRFA L 1
wait
Death:
TNT1 A 0 A_PlaySoundEx("weapon/freezecrackerhit","Weapon")
TNT1 A 0 A_SpawnItemEx("MrFreezeCrackerBit",0,0,0,28,0,0,60,1)
TNT1 A 0 A_SpawnItemEx("MrFreezeCrackerBit",0,0,0,28,0,0,-60,1)
TNT1 A 0 A_SpawnItemEx("MrFreezeCrackerBit",0,0,0,28,0,0,120,1)
TNT1 A 0 A_SpawnItemEx("MrFreezeCrackerBit",0,0,0,28,0,0,-120,1)
TNT1 A 0 A_SpawnItemEx("MrFreezeCrackerBit",0,0,0,28,0,0,180,1)
TNT1 A 0 A_SpawnItemEx("MrFreezeCrackerBit",0,0,0,28,0,0,0,1)
TNT1 A 1
stop
XDeath:
TNT1 A 0 A_PlaySoundEx("weapon/freezecrackerhit","Weapon")
TNT1 A 0 A_SpawnItemEx("MrFreezeCrackerBitT",0,0,0,28,0,0,60,1)
TNT1 A 0 A_SpawnItemEx("MrFreezeCrackerBitT",0,0,0,28,0,0,-60,1)
TNT1 A 0 A_SpawnItemEx("MrFreezeCrackerBitT",0,0,0,28,0,0,120,1)
TNT1 A 0 A_SpawnItemEx("MrFreezeCrackerBitT",0,0,0,28,0,0,-120,1)
TNT1 A 0 A_SpawnItemEx("MrFreezeCrackerBitT",0,0,0,28,0,0,180,1)
TNT1 A 0 A_SpawnItemEx("MrFreezeCrackerBitT",0,0,0,28,0,0,0,1)

TNT1 A 0 A_SpawnItemEx("MrFreezeBitFX_H",0,0,0,0,0,0,0,1)
TNT1 A 1
stop
}
}

actor MrFreezeSpikeCW : MrFreezeSpikeC
{
states
{
XDeath:
Death:
TNT1 A 0 A_SpawnItemEx("MrFreezeBitFX_H",0,0,0,0,0,0,0,1)
TNT1 A 1
stop
}
}

actor GroundIce_Freeze : BasicHelper
{
reactiontime 60
States
{
Spawn:
TNT1 A 0
TNT1 A 0 A_JumpIfInTargetInventory("IsDead",1,"Death")
TNT1 A 1 A_GiveToTarget("GroundIceStop",1)
TNT1 A 0 A_CountDown
loop
Death:
TNT1 A 0 A_GiveToTarget("FlightEnable",1)
TNT1 A 1 A_TakeFromTarget("GroundIceFlag")
stop
}
}

actor GroundIce_FreezeAir : GroundIce_Freeze
{
reactiontime 52
}

actor GroundIceFlag : OnceC{}

actor GroundIceStop : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_Stop
TNT1 A 0 A_GiveInventory("FlightDisable",1)
TNT1 A 0 A_GiveInventory("GroundIceFlag",1)
TNT1 A 0 A_SpawnItemEx("FrozenToFloorFX",0,0,0,0,0,0,0,1)
stop
}
}

actor FrozenToFloorFX
{
-SOLID
+NOGRAVITY
+NOINTERACTION
+CLIENTSIDEONLY
Radius 2
Height 2
scale 2.5
States
{
Spawn:
MRFA F 0
MRFA F 1
stop
}
}

actor MrFreezeBitFX
{
+CLIENTSIDEONLY
+MISSILE
+DONTBLAST
+THRUACTORS
+DONTSPLASH
+FLOORCLIP
//Gravity 1.0
Damage (0)
height 4
radius 4
Speed 15
scale 2.5
States
{
Spawn:
TNT1 A 0
TNT1 A 0 A_Jump(256,1,2,3,4)
MRFB Q 30
stop
MRFB R 30
stop
MRFB S 30
stop
MRFB T 30
stop
}
}
actor MrFreezeBitFX1 : MrFreezeBitFX
{
States
{
Spawn:
MRFB Q 0
MRFB Q 30
stop
}
}
actor MrFreezeBitFX2 : MrFreezeBitFX
{
States
{
Spawn:
MRFB R 0
MRFB R 30
stop
}
}
actor MrFreezeBitFX3 : MrFreezeBitFX
{
States
{
Spawn:
MRFB S 0
MRFB S 30
stop
}
}
actor MrFreezeBitFX4 : MrFreezeBitFX
{
States
{
Spawn:
MRFB T 0
MRFB T 30
stop
}
}


actor MrFreezeCrackerFXFall
{
+CLIENTSIDEONLY
+MISSILE
+THRUACTORS
+DONTSPLASH
Gravity 0.2
Damage (0)
height 2
radius 2
scale 2.5
States
{
Spawn:
TNT1 A 0
TNT1 A 0 A_Jump(256,"Spawn1","Spawn2")
Spawn1:
CHIB Q 4
CHIB R 15
CHIB RRRR 1 A_Fadeout(0.2)
stop
Spawn2:
CHIB S 4
CHIB T 15
CHIB TTTT 1 A_Fadeout(0.2)
stop
}
}
actor MrFreezeCrackerFX : BasicClientSide
{
States
{
Spawn:
TNT1 A 0
TNT1 A 0 A_Jump(256,"Spawn1","Spawn2")
Spawn1:
X_7A GHI 4
stop
Spawn2:
X_7A VWI 4
stop
}
}



actor FreezemanMain_CI : TeamColor_CI
{
states
{
FireX:
TNT1 A 0 A_FireCustomMissile("MrFreezeCracker",0,1,8,0)
goto Done
FireB:
TNT1 A 0 A_FireCustomMissile("MrFreezeCrackerB",0,1,8,0)
goto Done
FireR:
TNT1 A 0 A_FireCustomMissile("MrFreezeCrackerR",0,1,8,0)
goto Done
FireO:
TNT1 A 0 A_FireCustomMissile("MrFreezeCrackerO",0,1,8,0)
goto Done
FireP:
TNT1 A 0 A_FireCustomMissile("MrFreezeCrackerP",0,1,8,0)
goto Done
}
}

actor FreezemanAlt_CI : TeamColor_CI
{
states
{
FireX:
TNT1 A 0 A_FireCustomMissile("MrFreezeSuperCracker",0,0,8,0)
goto Done
FireB:
TNT1 A 0 A_FireCustomMissile("MrFreezeSuperCrackerB",0,0,8,0)
goto Done
FireR:
TNT1 A 0 A_FireCustomMissile("MrFreezeSuperCrackerR",0,0,8,0)
goto Done
FireO:
TNT1 A 0 A_FireCustomMissile("MrFreezeSuperCrackerO",0,0,8,0)
goto Done
FireP:
TNT1 A 0 A_FireCustomMissile("MrFreezeSuperCrackerP",0,0,8,0)
goto Done
}
}
