actor Freezeman_W : BaseMM8BDMWep_CBM
{
tag "$TAGC_7A"
dropitem "FreezeCrackerWep"
Weapon.AmmoUse 4
Weapon.AmmoGive 0
Obituary "$OB_FREEZECRACKER"
weapon.ammotype "MrFreezeAmmo"
States
{
Spawn:
C_07 A 1
loop

Deselect:
MRFA A 0
goto DeselectSwap
Select:
MRFA A 0 A_TakeInventory("MrFreezeAltCharge")
goto SelectSwap

Ready:
MRFA A 0 ACS_NamedExecuteWithResult("core_weaponcolor",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

Fire:
MRFA A 3 Offset(-20,18)
FireH:
MRFA A 0 A_PlaySoundEx("weapons/mm7/freezecrackerfire","Weapon")
MRFA A 0 A_FireCustomMissile("MrFreezeCracker",0,1,8,0)
MRFA B 17 Offset(-20,18)//-21,26
MRFA A 0 A_JumpIfNoAmmo("FireEnd")
MRFA A 0 A_Refire("FireH")
goto FireEnd
FireEnd:
MRFA A 5 Offset(-20,18)
Goto Ready1

Flash.AltCharge:
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,1+8+32,0)
TNT1 A 2 A_PlaySoundEx("weapon/ChillTrail","Weapon")
loop

AltFire:
MRFA A 0 A_JumpIfInventory("VivifyFlag1",1,"AltCancel")
//MRFA A 0 A_JumpIfInventory("MrFreezeAmmo",28,1)
//goto Ready1
MRFA A 0 A_GiveInventory("VivifyFlag1",1)
MRFA A 0 A_Refire(1)
MRFA A 0 A_GiveInventory("PowerMrFreezeSlow",1)
MRFA A 0 A_TakeInventory("MrFreezeAmmo",5)
MRFA A 0 A_GiveInventory("CBM_Ratio7JumpPowerGiver",1)
MRFA A 0 A_GunFlash("Flash.AltCharge",1)
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",1)
MRFA A 0 A_TakeInventory("MrFreezeAltCharge")
MRFA A 0 A_TakeInventory("VivifyFlag1")
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,1+32)
MRFA A 2 Offset(20,46)
MRFA A 0 A_TakeInventory("CBM_Ratio7JumpPower")
MRFA A 2 Offset(10,39)A_TakeInventory("PowerMrFreezeSlow",1)
Goto Ready1
AltfireAltfire:
MRFA A 0 A_GunFlash("NoFlash",1)
MRFA A 0 A_TakeInventory("MrFreezeAltCharge")
MRFA A 0 A_TakeInventory("VivifyFlag1")
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_FireCustomMissile("MrFreezeSuperCracker",0,0,8,0)
MRFA B 25 Offset(-20,18)
MRFA A 0 A_TakeInventory("CBM_Ratio7JumpPower")
MRFA A 10 Offset(-10,25)
Goto Ready1
}
}

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

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

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


actor MrFreezemanWalkFX : BasicGraphicEffect
{
States
{
SpawnFrame:
MRFB UVWXYZ 1
stop
}
}

actor MrFreezeCracker : ProjSpawnFuncActor
{
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_SpawnItemEX("IcePitFreeze")
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)
TNT1 A 0 A_SpawnItemEx("MrFreezeCrackerBit",0,0,0,28,0,0,40)
TNT1 A 0 A_SpawnItemEx("MrFreezeCrackerBit",0,0,0,28,0,0,80)
TNT1 A 0 A_SpawnItemEx("MrFreezeCrackerBit",0,0,0,28,0,0,120)
TNT1 A 0 A_SpawnItemEx("MrFreezeCrackerBit",0,0,0,28,0,0,160)
TNT1 A 0 A_SpawnItemEx("MrFreezeCrackerBit",0,0,0,28,0,0,200)
TNT1 A 0 A_SpawnItemEx("MrFreezeCrackerBit",0,0,0,28,0,0,240)
TNT1 A 0 A_SpawnItemEx("MrFreezeCrackerBit",0,0,0,28,0,0,280)
TNT1 A 0 A_SpawnItemEx("MrFreezeCrackerBit",0,0,0,28,0,0,320)
TNT1 A 1 A_PlaySoundEx("weapons/mm7/freezecrackersplit","Weapon")
stop
Floor:
MRFA G 0 A_SpawnItemEx("MrFreezeSpikeF")
TNT1 A 0 A_SpawnItemEx("MrFreezeWaveWeak",35,0,0,14,0,0,0)
TNT1 A 0 A_SpawnItemEx("MrFreezeWaveWeak",35,0,0,14,0,0,120)
TNT1 A 0 A_SpawnItemEx("MrFreezeWaveWeak",35,0,0,14,0,0,240)
stop
Ceiling:
MRFA J 0 A_SpawnItemEx("MrFreezeSpikeCW")
TNT1 A 0 A_SpawnItemEx("MrFreezeWaveWeakCeil",35,0,0,14,0,0,0)
TNT1 A 0 A_SpawnItemEx("MrFreezeWaveWeakCeil",35,0,0,14,0,0,120)
TNT1 A 0 A_SpawnItemEx("MrFreezeWaveWeakCeil",35,0,0,14,0,0,240)
stop
XDeath:
TNT1 A 0 A_SpawnItemEx("MrFreezeBitFX_H",0,0,0,0,0,0,0,1)
TNT1 A 1
stop
}
}

actor MrFreezeCrackerSpawnFX : BasicGraphicEffect
{
+FORCEXYBILLBOARD
States
{
SpawnFrame:
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 : BasicGraphicEffect
{
+NOTIMEFREEZE
+FORCEXYBILLBOARD
States
{
SpawnFrame:
TNT1 A 0
TNT1 A 0 A_Jump(256,1,2)
MRFA R 2
stop
MRFA S 2
stop
}
}

actor MrFreezeAltChargeCancel : BasicExplosion
{
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_SpawnItemEX("IcePitFreeze")
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")

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

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

TNT1 A 1
stop
}
}


actor MrFreezeSuperCrackerFX : BasicGraphicEffect
{
RenderStyle "Translucent"
Alpha 0.75
States
{
SpawnFrame:
MRFA M 6
stop
}
}

actor MrFreezeCrackerBit : ProjSpawnFuncActor
{
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 : ProjSpawnFuncActor
{
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
speed 14
Scale 2.5
States
{
Spawn:
MRFA U 0
MRFA UUUUUUUUUU 1 A_SpawnItemEx("MrFreezeWaveFX2",0,0,0,0,0,0,0,1)
MRFA T 0 A_CountDown
MRFA T 0 //ThrustThing(angle*256/360,0)
MRFA T 0 A_SpawnItemEx("MrFreezeSpikeF",0,0,0,0,0,0,0,1)
MRFA TTTTTTTTTT 1 A_SpawnItemEx("MrFreezeWaveFX1",0,0,0,0,0,0,0,1)
MRFA U 0 A_CountDown
MRFA U 0 //ThrustThing(angle*256/360,0)
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_SpawnItemEx("MrFreezeWaveFX2",0,0,0,0,0,0,0,1)
MRFA T 0 //ThrustThing(angle*256/360,0)
MRFA TTTTTTTTTT 1 A_SpawnItemEx("MrFreezeWaveFX1",0,0,0,0,0,0,0,1)
stop
}
}

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

actor MrFreezeWaveCeil : MrFreezeWave
{
-FLOORHUGGER
+CEILINGHUGGER
States
{
Spawn:
MRFA U 0
MRFA UUUUUUUUUU 1 A_SpawnItemEx("MrFreezeWaveFX2",0,0,0,0,0,0,0,1)
MRFA T 0 A_CountDown
MRFA T 0 //ThrustThing(angle*256/360,0)
MRFA T 0 A_SpawnItemEx("MrFreezeSpikeC",0,0,0,0,0,0,random(0,359),1)
MRFA TTTTTTTTTT 1 A_SpawnItemEx("MrFreezeWaveFX1",0,0,0,0,0,0,0,1)
MRFA U 0 A_CountDown
MRFA U 0 //ThrustThing(angle*256/360,0)
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_SpawnItemEx("MrFreezeWaveFX2",0,0,0,0,0,0,0,1)
MRFA T 0 //ThrustThing(angle*256/360,0)
MRFA TTTTTTTTTT 1 A_SpawnItemEx("MrFreezeWaveFX1",0,0,0,0,0,0,0,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
MRFA U 0 A_SpawnItemEx("MrFreezeSpikeCW",0,0,0,0,0,0,random(0,359),1)
stop
}
}

actor MrFreezeSpikeF : ProjSpawnFuncActor
{
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 0 ThrustThingZ(0,4,1,1)
MRFA L 1
wait
Death:
TNT1 A 0 A_PlaySoundEx("weapons/mm7/freezecrackersplit","Weapon")
TNT1 A 0 A_SpawnItemEx("MrFreezeCrackerBit",0,0,0,28,0,0,60)
TNT1 A 0 A_SpawnItemEx("MrFreezeCrackerBit",0,0,0,28,0,0,-60)
TNT1 A 0 A_SpawnItemEx("MrFreezeCrackerBit",0,0,0,28,0,0,120)
TNT1 A 0 A_SpawnItemEx("MrFreezeCrackerBit",0,0,0,28,0,0,-120)
TNT1 A 0 A_SpawnItemEx("MrFreezeCrackerBit",0,0,0,28,0,0,180)
TNT1 A 0 A_SpawnItemEx("MrFreezeCrackerBit",0,0,0,28,0,0,0)
TNT1 A 1
stop
XDeath:
TNT1 A 0 A_PlaySoundEx("weapons/mm7/freezecrackersplit","Weapon")
TNT1 A 0 A_SpawnItemEx("MrFreezeCrackerBitT",0,0,0,28,0,0,60)
TNT1 A 0 A_SpawnItemEx("MrFreezeCrackerBitT",0,0,0,28,0,0,-60)
TNT1 A 0 A_SpawnItemEx("MrFreezeCrackerBitT",0,0,0,28,0,0,120)
TNT1 A 0 A_SpawnItemEx("MrFreezeCrackerBitT",0,0,0,28,0,0,-120)
TNT1 A 0 A_SpawnItemEx("MrFreezeCrackerBitT",0,0,0,28,0,0,180)
TNT1 A 0 A_SpawnItemEx("MrFreezeCrackerBitT",0,0,0,28,0,0,0)

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 FreezeM_FrozenSndDelay : Powerup
{
Powerup.Duration 10
}

actor PainFreezeM_Frozen_P : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_JumpIfInventory("FreezeM_FrozenSndDelay",1,"Frozen")
TNT1 A 0 A_GiveInventory("FreezeM_FrozenSndDelay",1)
TNT1 A 0 A_PlaySound("weapon/ColdFrozen",5,1.0)
Frozen:
TNT1 A 0 A_JumpIfInventory("GroundIce_FreezemanF",1,3)
TNT1 A 0 A_SpawnItemEx("GroundIce_Freeze")
TNT1 A 0 ACS_NamedExecuteWithResult("core_groundplayer",0,1)
TNT1 A 0 A_GiveInventory("GroundIce_FreezemanF",1)
stop
}
}
actor PainFreezeM_Iced_P : CustomInventory
{
States
{
Pickup:
goto Frozen
}
}

actor GroundIce_Freeze : BasicPain_GroundedHit
{
States
{
Spawn:
TNT1 A 0
TNT1 A 1 A_GiveToTarget("GroundIce_Freeze_P")
TNT1 A 0 A_JumpIfInTargetInventory("GroundIce_FreezemanF",1,"Spawn")
Death:
TNT1 A 0
goto DeathEnd
}
}

actor GroundIce_FreezemanF : Powerup
{
+INVENTORY.ALWAYSPICKUP
Powerup.Duration 60
}

actor GroundIce_Freeze_P : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_Stop
TNT1 A 0 A_GiveInventory("DashingStraitjacket_F",1)
TNT1 A 0 A_SpawnItemEx("GroundIce_FreezeFX")
stop
}
}

actor GroundIce_FreezeFX : BasicGraphicEffect
{
Translation "192:192=4:4", "198:198=70:70"
States
{
Spawn:
MRFA F 0
MRFA F 1
stop
}
}

actor MrFreezeBitFX : BasicGraphicEffectM
{
-NOGRAVITY
+THRUACTORS
+FLOORCLIP
//Gravity 1.0
height 4
radius 4
Speed 15
States
{
SpawnFrame:
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
{
SpawnFrame:
MRFB Q 0
MRFB Q 30
stop
}
}
actor MrFreezeBitFX2 : MrFreezeBitFX
{
States
{
SpawnFrame:
MRFB R 0
MRFB R 30
stop
}
}
actor MrFreezeBitFX3 : MrFreezeBitFX
{
States
{
SpawnFrame:
MRFB S 0
MRFB S 30
stop
}
}
actor MrFreezeBitFX4 : MrFreezeBitFX
{
States
{
SpawnFrame:
MRFB T 0
MRFB T 30
stop
}
}


actor MrFreezeCrackerFXFall : BasicGraphicEffectM
{
-NOGRAVITY
+THRUACTORS
Gravity 0.2
States
{
SpawnFrame:
TNT1 A 0
TNT1 A 0 A_SetScale(ScaleX*(random(0,1)*2-1),ScaleY)
MRFB J random(4,5)
MRFB K random(13,14)
MRFB KKKK 1 A_Fadeout(0.2)
stop
}
}
actor MrFreezeCrackerFX : BasicGraphicEffect
{
States
{
SpawnFrame:
TNT1 A 0
TNT1 A 0 A_Jump(256,"Spawn1","Spawn2")
Spawn1:
MRFB GHI 4
stop
Spawn2:
MRFB EFI 4
stop
}
}


actor Freezeman_W_NormalBar : NormalBar {Args 4,203}
actor Freezeman_W_ScriptBar : ScriptBar {}