actor BlizzardAttackBoss : BaseMM8BDMWep_CBM
{
tag "$TAGC_6A"
dropitem "BlizzardAttackWepCDropped"
Weapon.AmmoUse1 12
Weapon.AmmoUse2 100
Weapon.AmmoGive 0
//Weapon.SlotNumber 1
Obituary "$OB_BLIZZARDBOWL"
weapon.ammotype1 "BallAmmo"
weapon.ammotype2 "HotCoffeeAmmo"
+WEAPON.NOAUTOAIM
//inventory.icon "BSKIY"
States
{
Spawn:
C_06 A 1
loop
Ready:
BSKI E 0 ACS_ExecuteAlways(998,0,DYE_BLIZZARDMAN)
BSKI E 0 A_GunFlash
Ready1:
BSKI E 0 A_JumpIfInventory("BallAmmo",48,"Ready2")
BSKI E 1 A_WeaponReady(WRF_NOFIRE|WRF_ALLOWRELOAD)
BSKI E 0 A_GiveInventory("BallAmmo",2)
Goto Ready1
Ready2:
BSKI E 1 A_WeaponReady(WRF_ALLOWRELOAD)
BSKI E 0 A_GiveInventory("BallAmmo",2)
loop
Deselect:
TNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Lower
BSKI E 1 A_Lower
Loop
Select:
TNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Raise
BSKI E 1 A_Raise
Loop
Fire:
BSKI EE 1 
BSKI FF 1 
FireLoop:
BSKI E 0 A_JumpIfInventory("PowerRage_ST",1,"FireLoop_R")
BSKI E 0 A_JumpIfNoAmmo("FireLoopEnd")
BSKI E 0 A_PlaySoundEx("weapon/blizzboss","Weapon")
BSKI E 0 A_GiveInventory("BlizzardMainInv_CI",1)
BSKI GHGHGH 1
TNT1 A 0 A_Refire("FireLoop")
FireLoopEnd:
BSKI IJKLMEEEEE 1
Goto Ready1
FireLoop_R:
BSKI E 0 A_JumpIfNoAmmo("FireLoopEnd")
BSKI E 0 A_PlaySoundEx("weapon/blizzboss","Weapon")
BSKI E 0 A_GiveInventory("BlizzardMainInv_CI",1)
BSKI GHG 1
TNT1 A 0 A_Refire("FireLoop")
goto FireLoopEnd

Altfire:
BSKI A 0
BSKI A 0 A_GiveInventory("BlizzardChargeSound_P",1)
BSKI I 0 A_SpawnItemEx("HeavyWeatherWarper1",0,0,28,0,0,0,0,1)
BSKI I 0 A_SpawnItemEx("HeavyWeatherWarper2",0,0,28,0,0,0,0,1)
BSKI I 0 A_SpawnItemEx("HeavyWeatherWarper3",0,0,28,0,0,0,0,1)
BSKI I 0 A_SpawnItemEx("HeavyWeatherWarper4",0,0,28,0,0,0,0,1)
AltStartup:
BSKI A 0 A_GiveInventory("BlizzardChargeSound_P",1)
BSKI E 0 A_PlaySoundEx("weapon/blizzboss","Weapon")
BSKI B 1 OffSet(4,32)
BSKI B 1 OffSet(8,32)
BSKI B 2 OffSet(12,32)
BSKI A 1 OffSet(8,32)
BSKI A 1 OffSet(4,32)
BSKI A 0 A_GiveInventory("BlizzardChargeSound_P",1)
BSKI A 0 A_PlaySoundEx("weapon/blizzboss","Weapon")
BSKI C 1 OffSet(-4,32)
BSKI C 1 OffSet(-8,32)
BSKI C 2 OffSet(-12,32)
BSKI A 1 OffSet(-8,32)
BSKI A 1 OffSet(-4,32)
BSKI E 0 A_JumpIfInventory("CutterFlag",1,"AltfireLoop")
BSKI E 0 A_GiveInventory("CutterFlag",1)
loop
AltfireLoop:
BSKI A 1 A_GiveInventory("BlizzardChargeSound_P",1)
BSKI E 0 A_TakeInventory("CutterFlag",1)
TNT1 A 0 A_Refire("AltfireLoop")
BSKI E 0 A_PlaySoundEx("weapon/BlizzHeavyWeather","Body")
BSKI E 0 A_GiveInventory("HeavyWeatherFlag")
BSKI E 0 A_TakeInventory("BallAmmo",48)
BSKI FGHIJKLM 2
Goto Ready1

Reload:
BSKI E 0 A_JumpIfInventory("HotCoffeeAmmo",112,"Checking")
goto Ready1
Checking:
BSKI E 0 A_PlaySoundEx("weapon/BassCombine","Weapon")
BSKI E 0 A_GiveInventory("SelfTotallyFrozen",1)
TNT1 A 0 A_GiveInventory("BlizzardmanFlag",1)
BSKI E 0 A_JumpIfInventory("PowerRage_ST",1,"CheckingR")
BSKI E 1 OffSet(0,42)
BSKI E 1 OffSet(0,52)
BSKI E 1 OffSet(0,62)
BSKI E 1 OffSet(0,72)
BSKI E 1 OffSet(0,82)
BSKI E 1 OffSet(0,92)
BSKI E 1 OffSet(0,102)
BSKI E 1 OffSet(0,112)
BSKI E 1 OffSet(0,122)
goto RollingPrepare
CheckingR:
BSKI E 1 OffSet(0,52)
BSKI E 1 OffSet(0,72)
BSKI E 1 OffSet(0,92)
BSKI E 1 OffSet(0,112)
BSKI E 1 OffSet(0,132)
goto RollingPrepare
RollingPrepare:
TNT1 A 1 A_TakeInventory("CrackFlag",9)
TNT1 A 0 A_TakeInventory("UnSolid",1)
TNT1 A 0 A_ChangeFlag("SOLID",0)
TNT1 A 0 A_ChangeFlag("THRUACTORS",1)
TNT1 A 0 A_GiveInventory("InvulnerableOn_Pickup",1)
goto Rolling
Rolling:
TNT1 A 0 A_GiveInventory("BlizzardBowlSound_P",1)
TNT1 A 0 A_GiveInventory("BowlRecoilPickup")
TNT1 AAA 0 A_SpawnItemEX("BlizzardBowlFX",0,frandom(-28,28),0,frandom(1,15),0,frandom(1,7.5),frandom(160,200),1)
TNT1 A 0 A_SpawnItemEX("BlizzardBallCheck",0,0,8,momx,momy,momz,0,8)
TNT1 A 0 A_GiveInventory("BlizzardmanMelee_CI")
TNT1 A 0 A_JumpIfInventory("CrackFlag",1,"RollingSlam")

TNT1 A 0 A_GiveInventory("BallTimer",1)
BSKI E 0 A_TakeInventory("HotCoffeeAmmo",1)
TNT1 A 0 A_JumpIfInventory("HotCoffeeAmmo",1,"RollingCheck")
goto RollingStop
RollingCheck:
TNT1 A 1 A_JumpIfInventory("CrackFlag",1,"RollingSlam")
TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("Get_Button_M"),"RollingCancel")
TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("Get_Button_A"),"RollingCancel")
goto Rolling
RollingSlam:
TNT1 A 0 A_GiveInventory("SelfTotallyUnfrozen",1)
TNT1 A 0 A_Stop
TNT1 A 0 ThrustThingZ(0,70,0,0)
TNT1 A 0 ThrustThing(angle*256/360+128,40,1,0)
TNT1 AAAAAAAAA 0 A_SpawnItemEX("BlizzardBowlFX",-5,frandom(-28,28),frandom(0,56),frandom(1,15),0,frandom(-7.5,7.5),frandom(160,200),1)
TNT1 A 0 A_PlaySoundEx("weapon/blizzstrike","Body")
TNT1 A 0 A_TakeInventory("CrackFlag",999)
TNT1 A 0 A_GiveInventory("InvulnerableOff_Pickup",1)
TNT1 A 2 A_TakeInventory("BallTimer",999)
goto RollEnd
RollingCancel:
TNT1 A 0 A_JumpIfInventory("BlizzardSnowAmmo",14,1)
goto Rolling
TNT1 A 0 A_JumpIfInventory("CrackFlag",1,"RollingSlam")
TNT1 A 0 A_TakeInventory("BlizzardSnowAmmo",14)
TNT1 A 0 A_GiveInventory("BlizzardmanReload_CI")
TNT1 A 0 A_ScaleVelocity(.1)
TNT1 A 0 A_TakeInventory("BlizzardmanFlag",1)
TNT1 AAAAAAAAAA 1 A_PlaySoundEx("SMB3/Skid","Body")
RollingStop:
TNT1 A 0 A_GiveInventory("SelfTotallyUnfrozen",1)
TNT1 A 0 A_TakeInventory("CrackFlag",999)
TNT1 A 0 A_GiveInventory("InvulnerableOff_Pickup",1)
TNT1 A 2 A_TakeInventory("BallTimer",999)
goto RollEnd
RollEnd:
BSKI E 0 A_TakeInventory("HotCoffeeAmmo",56)
BSKI E 1 OffSet(0,122)
BSKI E 1 OffSet(0,107)
BSKI E 1 OffSet(0,92)
BSKI E 1 OffSet(0,77)A_TakeInventory("BlizzardmanFlag",1)
BSKI E 1 OffSet(0,62)
BSKI E 0 A_ChangeFlag("THRUACTORS",0)
BSKI E 0 A_SpawnItemEx("ResolidifyPlayer_H")
BSKI E 1 OffSet(0,47)
Goto Ready1
NoAmmo:
BSKI E 1
Goto Ready1
Flash:
TNT1 AAA 1 A_GiveInventory("PassiveSnow_AC",1)
TNT1 A 0 A_GiveInventory("HotCoffeeBowl_RC",1)
TNT1 A 0 A_JumpIfInventory("BlizzardSnowAmmo", 56, "Pickup5")
TNT1 A 0 A_JumpIfInventory("BlizzardSnowAmmo", 42, "Pickup4")
TNT1 A 0 A_JumpIfInventory("BlizzardSnowAmmo", 28, "Pickup3")
TNT1 A 0 A_JumpIfInventory("BlizzardSnowAmmo", 14, "Pickup2")
loop
Pickup5:
TNT1 A 0 A_SpawnItemEX("DocAirBodyFX",random(32,64),0,random(8,64),0,0,frandom(0.1,1.1),random(90,270),1,25)
goto Flash
Pickup4:
TNT1 A 0 A_SpawnItemEX("DocAirBodyFX",random(32,64),0,random(8,64),0,0,frandom(0.1,1.1),random(90,270),1,75)
goto Flash
Pickup3:
TNT1 A 0 A_SpawnItemEX("DocAirBodyFX",random(32,64),0,random(8,64),0,0,frandom(0.1,1.1),random(90,270),1,125)
goto Flash
Pickup2:
TNT1 A 0 A_SpawnItemEX("DocAirBodyFX",random(32,64),0,random(8,64),0,0,frandom(0.1,1.1),random(90,270),1,175)
goto Flash
}
}

actor BallAmmo : Ammo
{
inventory.amount 1
inventory.maxamount 336
+INVENTORY.IGNORESKILL
}

actor HotCoffeeAmmo : Ammo
{
inventory.amount 1
inventory.maxamount 112
+INVENTORY.IGNORESKILL
}

actor BlizzardSnowAmmo : Ammo
{
inventory.amount 1
inventory.maxamount 56
+INVENTORY.IGNORESKILL
}

actor HeavyWeatherFlag : Powerup
{
Powerup.Duration 5
}

actor BlizzardmanFlag : OnceC{}
actor BlizFireFlag : OnceC{}

actor CrackFlag : OnceC{}

actor BallTimer : Inventory
{
inventory.amount 1
inventory.maxamount 999
}

actor BlizzardChargeNoiseCD : Powerup
{
Powerup.Duration 20
}

actor BlizzardPassiveSnowCD : Powerup
{
Powerup.Duration 35
}

actor BlizzardBowlNoiseCD : Powerup
{
Powerup.Duration 3
}

actor BlizzardSnowSpamProtect : Powerup
{
Powerup.Duration 5
}

actor BlizzardChargeSound_P : CustomInventory
{
States
{
Pickup:
TNT1 A 0
TNT1 A 0 A_JumpIfInventory("BlizzardChargeNoiseCD",1,"Pickup2")
TNT1 A 0 A_PlaySound("weapon/BlizzFull","Body",0.9,0,1.35)
TNT1 A 0 A_GiveInventory("BlizzardChargeNoiseCD",1)
stop
Pickup2:
TNT1 A 0
stop
}
}

actor PassiveSnow_AC : CustomInventory
{
States
{
Pickup:
TNT1 A 0
TNT1 A 0 A_JumpIfInventory("BlizzardmanFlag",1,"Pickup3")
TNT1 A 0 A_JumpIfInventory("BlizzardSnowAmmo",14,"Pickup3")
TNT1 A 0 A_JumpIfInventory("BlizzardPassiveSnowCD",1,"Pickup2")
TNT1 A 0 A_GiveInventory("BlizzardSnowAmmo",1)
TNT1 A 0 A_GiveInventory("BlizzardPassiveSnowCD",1)
stop
Pickup2:
TNT1 A 0
stop
Pickup3:
TNT1 A 0 A_GiveInventory("BlizzardPassiveSnowCD",1)
stop
}
}

actor BlizzardBowlSound_P : CustomInventory
{
States
{
Pickup:
TNT1 A 0
TNT1 A 0 A_JumpIfInventory("BlizzardBowlNoiseCD",1,"Pickup2")
TNT1 A 0 A_PlaySoundEx("weapon/blizzbowl","Body")
TNT1 A 0 A_GiveInventory("BlizzardBowlNoiseCD",1)
stop
Pickup2:
TNT1 A 0
stop
}
}

actor HotCoffeeBowl_RC : CustomInventory
{
States
{
Pickup:
TNT1 A 0
TNT1 A 0 A_JumpIfInventory("BlizzardmanFlag",1,"PickupN")
TNT1 A 0 A_JumpIfInventory("PowerRage_ST",1,"PickupR")
TNT1 A 0 A_GiveInventory("HotCoffeeAmmo",1)
stop
PickupR:
TNT1 A 0 A_GiveInventory("HotCoffeeAmmo",2)
stop
PickupN:
TNT1 A 0
stop
}
}

actor BowlRecoilPickup : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_JumpIf(z-floorz==0,"Ground")
goto Air
Air:
TNT1 A 0 A_JumpIfInventory("PowerRage_ST",1,2)
TNT1 A 0 A_Recoil(-2.5)
stop
TNT1 A 0 A_Recoil(-3.75)
stop
Ground:
TNT1 A 0 A_JumpIfInventory("PowerRage_ST",1,2)
TNT1 A 0 A_Recoil(-7)
stop
TNT1 A 0 A_Recoil(-10.5)
stop
}
}


actor BlizzardAttackAim//"aim" lmao
{
Translation "198:198=193:193"
PROJECTILE
var int user_falloff;
+DONTSEEKINVISIBLE
+SEEKERMISSILE
//+DOOMBOUNCE
+FORCEXYBILLBOARD
Radius 8
Height 8
scale 2.5
damage (8-user_falloff)
Obituary "$OB_BLIZZARDATTACK"
damagetype "BlizzardM_Shot"
speed 35
States
{
Spawn:
TNT1 A 0
TNT1 A 0 ACS_NamedExecuteAlways("BULL_Tidifier", 0)
ICEB XXXXX 1
Spawn2:
ICEB YYYYYZZZZZ 1 A_SeekerMissile(1,4,3,64,2)
Death:
"----" "#" 0 A_FadeOut(.2)
"----" "#" 1 A_SetUserVar(user_falloff, user_falloff+1)
loop
XDeath:
TNT1 A 0
stop
}
}

actor BlizzardAttackAimB : BlizzardAttackAim{translation "198:198=74:74"}
actor BlizzardAttackAimR : BlizzardAttackAim{translation "198:198=41:41"}
actor BlizzardAttackAimO : BlizzardAttackAim{translation "198:198=128:128"}
actor BlizzardAttackAimP : BlizzardAttackAim{translation "198:198=232:232"}

actor BlizzardAttackAim2 : BlizzardAttackAim{speed 40}
actor BlizzardAttackAim3 : BlizzardAttackAim{speed 45}
actor BlizzardAttackAim4 : BlizzardAttackAim{speed 50}
actor BlizzardAttackAim5 : BlizzardAttackAim{speed 55}

actor BlizzardAttackAim2B : BlizzardAttackAim2{translation "198:198=74:74"}
actor BlizzardAttackAim2R : BlizzardAttackAim2{translation "198:198=41:41"}
actor BlizzardAttackAim2O : BlizzardAttackAim2{translation "198:198=128:128"}
actor BlizzardAttackAim2P : BlizzardAttackAim2{translation "198:198=232:232"}

actor BlizzardAttackAim3B : BlizzardAttackAim3{translation "198:198=74:74"}
actor BlizzardAttackAim3R : BlizzardAttackAim3{translation "198:198=41:41"}
actor BlizzardAttackAim3O : BlizzardAttackAim3{translation "198:198=128:128"}
actor BlizzardAttackAim3P : BlizzardAttackAim3{translation "198:198=232:232"}

actor BlizzardAttackAim4B : BlizzardAttackAim4{translation "198:198=74:74"}
actor BlizzardAttackAim4R : BlizzardAttackAim4{translation "198:198=41:41"}
actor BlizzardAttackAim4O : BlizzardAttackAim4{translation "198:198=128:128"}
actor BlizzardAttackAim4P : BlizzardAttackAim4{translation "198:198=232:232"}

actor BlizzardAttackAim5B : BlizzardAttackAim5{translation "198:198=74:74"}
actor BlizzardAttackAim5R : BlizzardAttackAim5{translation "198:198=41:41"}
actor BlizzardAttackAim5O : BlizzardAttackAim5{translation "198:198=128:128"}
actor BlizzardAttackAim5P : BlizzardAttackAim5{translation "198:198=232:232"}

actor BlizzardM_BowlProtect : PowerProtection
{
Powerup.Duration 5
DamageFactor "BlizzardM_Bowl", 0.0
DamageFactor "BlizzardM_SnowBall", 0.0
}

actor BlizzardBallBox
{
PROJECTILE
Translation "192:192=4:4", "198:198=193:193"
Damagetype "BlizzardM_Bowl"
Obituary "$OB_BLIZZARDBOWL"
+DONTSPLASH
+DONTBLAST
+NOEXPLODEFLOOR
+THRUGHOST
+DONTREFLECT
+HITTRACER
damage (30)
Radius 52
Height 76
scale 2.5
States
{
Spawn:
TNT1 A 1
stop
Crash:
XDeath:
TNT1 A 0 A_JumpIfInTargetInventory("BlizzardSnowSpamProtect",1,"Death")
TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("cbm_istracerenemy")==1,"Give")
goto Death
Give:
TNT1 AAAAAAAAAAAAAA 0 A_SpawnItemEx("BlizzardSnowPickupAir",0,0,28,frandom(2,8),0,frandom(2,4),frandom(0,359),1)
TNT1 A 0 A_GiveToTarget("BlizzardSnowSpamProtect")
Death:
TNT1 A 1
Stop
}
}

actor BlizzardBallBoxB : BlizzardBallBox{translation "198:198=74:74", "192:192=205:205"}
actor BlizzardBallBoxR : BlizzardBallBox{translation "198:198=41:41", "192:192=171:171"}
actor BlizzardBallBoxO : BlizzardBallBox{translation "198:198=128:128", "192:192=104:104"}
actor BlizzardBallBoxP : BlizzardBallBox{translation "198:198=232:232", "192:192=229:229"}

actor BlizzardSnowball
{
PROJECTILE
Translation "192:192=4:4", "198:198=193:193"
Damagetype "BlizzardM_SnowBall"
Obituary "$OB_BLIZZARDBALL"
+DONTSPLASH
+DONTBLAST
+NOEXPLODEFLOOR
+THRUGHOST
+DONTREFLECT
+HITTRACER
-NOGRAVITY
+FORCEXYBILLBOARD
+STEPMISSILE
+BOUNCEONCEILINGS
bouncecount 10
maxstepheight 32
damage (30)
Radius 52
Height 76
scale 2.5
reactiontime 350
States
{
Spawn:
TNT1 AA 0
SpawnLOOP:
TNT1 A 0 A_PlaySoundEx("weapon/BlizzSnow","Body")
BLSN A 1 A_Countdown
TNT1 AAA 0 A_SpawnItemEX("BlizzardBowlFX",0,frandom(-28,28),0,frandom(1,15),0,frandom(1,7.5),frandom(160,200),1)
BLSN B 1 A_Countdown
TNT1 AAA 0 A_SpawnItemEX("BlizzardBowlFX",0,frandom(-28,28),0,frandom(1,15),0,frandom(1,7.5),frandom(160,200),1)
BLSN C 1 A_Countdown
TNT1 AAA 0 A_SpawnItemEX("BlizzardBowlFX",0,frandom(-28,28),0,frandom(1,15),0,frandom(1,7.5),frandom(160,200),1)
loop
Crash:
XDeath:
TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("cbm_istracerenemy")==1,"Give")
goto Death
Give:
TNT1 AAAAAAA 0 A_SpawnItemEx("BlizzardSnowPickupAir",0,0,28,frandom(2,8),0,frandom(2,4),frandom(0,359),1)
Death:
TNT1 A 0 A_PlaySoundEx("weapon/BlizzBash","Body")
BLSN DE 3
Stop
}
}

actor BlizzardSnowballB : BlizzardSnowball{translation "198:198=74:74", "192:192=205:205"}
actor BlizzardSnowballR : BlizzardSnowball{translation "198:198=41:41", "192:192=171:171"}
actor BlizzardSnowballO : BlizzardSnowball{translation "198:198=128:128", "192:192=104:104"}
actor BlizzardSnowballP : BlizzardSnowball{translation "198:198=232:232", "192:192=229:229"}

//You are a fucking ugly bitch. I want to stab you to death, and then play around with your blood.
//-a memento to me forgetting to check what I have Ctrl+C'd

actor BlizzardSnowPickupAir
{
PROJECTILE
Translation "198:198=193:193"
+THRUACTORS
+DONTBLAST
+DONTREFLECT
-NOGRAVITY
damage (0)
Radius 20
Height 10
scale 2.5
States
{
Spawn:
BLSN F 1
loop
Death:
TNT1 A 1 A_SpawnItemEx("BlizzardSnowPickup",0,0,0,0,0,0,0,1)
Stop
}
}

actor BlizzardSnowPickup : CustomInventory
{
Radius 20
Height 10
inventory.pickupmessage "\cvShoveled up some snow."
inventory.amount 1
inventory.maxamount 1
+INVENTORY.AUTOACTIVATE
scale 2.5
States
{
Spawn:
TNT1 AA 0
Spawn2:
BLSN G 350 A_PlaySoundEx("misc/BlizzSnowLand","Body")
stop
Pickup:
TNT1 A 0 A_JumpIfInventory("BlizzardAttackBoss",1,"Shovel")
fail
Shovel:
TNT1 A 0 A_GiveInventory("BlizzardSnowAmmo",1)
TNT1 A 0 A_PlaySoundEx("weapon/BlizzPick","Item")
stop
}
}

actor BlizzardBallCheck
{
PROJECTILE
Damagetype "BlizzardM_Bowl"
Obituary "$OB_BLIZZARDBOWL"
+DONTSPLASH
+DONTBLAST
+DONTREFLECT
+NOEXPLODEFLOOR
+THRUGHOST
+DONTREFLECT
+SKYEXPLODE
+STEPMISSILE
maxstepheight 22
Damage (0)
radius 14//18
height 48//58
Speed 2
scale 2.5
States
{
Spawn:
TNT1 A 0
TNT1 A 1
stop
Crash:
XDeath:
TNT1 A 1
stop
Death:
TNT1 A 1 A_GiveToTarget("CrackFlag",1)
stop
}
}

actor BlizzardBowlFX : BasicClientSide
{
-NOINTERACTION
renderstyle add
-NOGRAVITY
+FORCEXYBILLBOARD
gravity 0.5
States
{
Spawn:
TNT1 AA 0
ICEB ZY 10
SpawnLOOP:
ICEB X 1 A_Fadeout
loop
}
}


actor BounceRangeChecker : BasicHelper
{
States
{
Spawn:
TNT1 A 0
TNT1 A 2
TNT1 A 1 A_JumpIfCloser(30,"Stopped")
stop
Stopped:
TNT1 A 1 A_GiveToTarget("BallTimer",999)
stop
}
}

actor HeavyWeatherWarper1
{
Translation "198:198=193:193"
PROJECTILE
damage (0)
var int user_dist;
var int user_a;
Radius 10
height 10
scale 2.5
renderstyle translucent
alpha 0.75
+THRUACTORS
+NOINTERACTION
+FORCEXYBILLBOARD
mass 0
accuracy 0
States
{
Spawn:
TNT1 AA 0
BZAT A 0 A_SetUserVar(user_a,accuracy)
BZAT A 0 A_SetUserVar(user_dist,mass)
BZAT A 0 A_JumpIfInTargetInventory("HeavyWeatherFlag",1,"Move")
BZAT A 0 A_SetUserVar(user_a,user_a+12)
BZAT A 0 A_GiveToTarget("CBM_TargetMarker",1)
BZAT A 1 A_JumpIf(ACS_ExecuteWithResult(C_CHECK_TARGET_OOC)==0,"Death")
BZAT A 0 A_Warp(AAPTR_Target, user_dist, 0, 28, user_a, WARPF_NOCHECKPOSITION)
BZAT A 0 A_JumpIf(user_dist>=60,"SpawnBack")
BZAT A 0 A_SetUserVar(user_dist,user_dist+2)

BZAT B 0 A_JumpIfInTargetInventory("HeavyWeatherFlag",1,"Move")
BZAT B 0 A_SetUserVar(user_a,user_a+12)
BZAT B 0 A_GiveToTarget("CBM_TargetMarker",1)
BZAT B 1 A_JumpIf(ACS_ExecuteWithResult(C_CHECK_TARGET_OOC)==0,"Death")
BZAT B 0 A_Warp(AAPTR_Target, user_dist, 0, 28, user_a, WARPF_NOCHECKPOSITION)
BZAT B 0 A_JumpIf(user_dist>=60,"SpawnBack")
BZAT B 0 A_SetUserVar(user_dist,user_dist+2)

SpawnForth:
BZAT C 0 A_JumpIfInTargetInventory("HeavyWeatherFlag",1,"Move")
BZAT C 0 A_SetUserVar(user_a,user_a+12)
BZAT C 0 A_GiveToTarget("CBM_TargetMarker",1)
BZAT C 1 A_JumpIf(ACS_ExecuteWithResult(C_CHECK_TARGET_OOC)==0,"Death")
BZAT C 0 A_Warp(AAPTR_Target, user_dist, 0, 28, user_a, WARPF_NOCHECKPOSITION)
BZAT C 0 A_JumpIf(user_dist>=60,"SpawnBack")
BZAT C 0 A_SetUserVar(user_dist,user_dist+2)
loop
SpawnBack:
BZAT C 0 A_JumpIfInTargetInventory("HeavyWeatherFlag",1,"Move")
BZAT C 0 A_SetUserVar(user_a,user_a+12)
BZAT C 0 A_GiveToTarget("CBM_TargetMarker",1)
BZAT C 1 A_JumpIf(ACS_ExecuteWithResult(C_CHECK_TARGET_OOC)==0,"Death")
BZAT C 0 A_Warp(AAPTR_Target, user_dist, 0, 28, user_a, WARPF_NOCHECKPOSITION)
BZAT C 0 A_JumpIf(user_dist<=20,"SpawnForth")
BZAT C 0 A_SetUserVar(user_dist,user_dist-2)
loop
Move:
BZAT C 2 ACS_ExecuteAlways(989,0,ACS_ExecuteWithResult(257)+100)
TNT1 A 0 A_SpawnItemEx("HeavyWeatherShot",0,0,0,cos(pitch)*60,0,-sin(pitch)*60,0,1)
Death:
TNT1 A 0
stop
}
}

actor HeavyWeatherWarper2 : HeavyWeatherWarper1{accuracy 90}
actor HeavyWeatherWarper3 : HeavyWeatherWarper1{accuracy 180}
actor HeavyWeatherWarper4 : HeavyWeatherWarper1{accuracy 270}

actor HeavyWeatherShot
{
Translation "198:198=193:193"
PROJECTILE
+RIPPER
+FORCEXYBILLBOARD
Radius 15
Height 15
scale 2.5
damage (4)
Obituary "$OB_BLIZZARDHW"
damagetype "BlizzardM_HeavyWeather"
speed 60
States
{
Spawn:
TNT1 A 0
TNT1 A 0 ACS_NamedExecuteAlways("BULL_Tidifier", 0)
SpawnLOOP:
BZAT C 1 A_SpawnItemEx("HeavyWeatherFX",0,0,0,0,0,0,0,1)
loop
Death:
"----" "#" 1 A_FadeOut(.2)
loop
}
}

actor HeavyWeatherFX : BasicClientSide
{
renderstyle add
+FORCEXYBILLBOARD
alpha 0.5
scale 1.25
States
{
Spawn:
TNT1 AA 0
BZAT B 5
SpawnLOOP:
BZAT C 1 A_Fadeout
loop
}
}

actor BlizzardMainInv_CI : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_JumpIfInventory("BlizzardSnowAmmo",56,"Pickup5")
TNT1 A 0 A_JumpIfInventory("BlizzardSnowAmmo",42,"Pickup4")
TNT1 A 0 A_JumpIfInventory("BlizzardSnowAmmo",28,"Pickup3")
TNT1 A 0 A_JumpIfInventory("BlizzardSnowAmmo",14,"Pickup2")
Pickup1:
TNT1 A 0 A_GiveInventory("BlizzardmanMain_CI")
stop
Pickup5:
TNT1 A 0 A_GiveInventory("BlizzardmanMain5_CI")
stop
Pickup4:
TNT1 A 0 A_GiveInventory("BlizzardmanMain4_CI")
stop
Pickup3:
TNT1 A 0 A_GiveInventory("BlizzardmanMain3_CI")
stop
Pickup2:
TNT1 A 0 A_GiveInventory("BlizzardmanMain2_CI")
stop
}
}

actor BlizzardmanMain_CI : TeamColor_CI
{
states
{
FireX:
TNT1 A 0 A_FireCustomMissile("BlizzardAttackAim",0,1,frandom(-10,10),frandom(-8,8))
goto Done
FireB:
TNT1 A 0 A_FireCustomMissile("BlizzardAttackAimB",0,1,frandom(-10,10),frandom(-8,8))
goto Done
FireR:
TNT1 A 0 A_FireCustomMissile("BlizzardAttackAimR",0,1,frandom(-10,10),frandom(-8,8))
goto Done
FireO:
TNT1 A 0 A_FireCustomMissile("BlizzardAttackAimO",0,1,frandom(-10,10),frandom(-8,8))
goto Done
FireP:
TNT1 A 0 A_FireCustomMissile("BlizzardAttackAimP",0,1,frandom(-10,10),frandom(-8,8))
goto Done
}
}

actor BlizzardmanMain2_CI : TeamColor_CI
{
states
{
FireX:
TNT1 A 0 A_FireCustomMissile("BlizzardAttackAim2",0,1,frandom(-10,10),frandom(-8,8))
goto Done
FireB:
TNT1 A 0 A_FireCustomMissile("BlizzardAttackAim2B",0,1,frandom(-10,10),frandom(-8,8))
goto Done
FireR:
TNT1 A 0 A_FireCustomMissile("BlizzardAttackAim2R",0,1,frandom(-10,10),frandom(-8,8))
goto Done
FireO:
TNT1 A 0 A_FireCustomMissile("BlizzardAttackAim2O",0,1,frandom(-10,10),frandom(-8,8))
goto Done
FireP:
TNT1 A 0 A_FireCustomMissile("BlizzardAttackAim2P",0,1,frandom(-10,10),frandom(-8,8))
goto Done
}
}

actor BlizzardmanMain3_CI : TeamColor_CI
{
states
{
FireX:
TNT1 A 0 A_FireCustomMissile("BlizzardAttackAim3",0,1,frandom(-10,10),frandom(-8,8))
goto Done
FireB:
TNT1 A 0 A_FireCustomMissile("BlizzardAttackAim3B",0,1,frandom(-10,10),frandom(-8,8))
goto Done
FireR:
TNT1 A 0 A_FireCustomMissile("BlizzardAttackAim3R",0,1,frandom(-10,10),frandom(-8,8))
goto Done
FireO:
TNT1 A 0 A_FireCustomMissile("BlizzardAttackAim3O",0,1,frandom(-10,10),frandom(-8,8))
goto Done
FireP:
TNT1 A 0 A_FireCustomMissile("BlizzardAttackAim3P",0,1,frandom(-10,10),frandom(-8,8))
goto Done
}
}

actor BlizzardmanMain4_CI : TeamColor_CI
{
states
{
FireX:
TNT1 A 0 A_FireCustomMissile("BlizzardAttackAim4",0,1,frandom(-10,10),frandom(-8,8))
goto Done
FireB:
TNT1 A 0 A_FireCustomMissile("BlizzardAttackAim4B",0,1,frandom(-10,10),frandom(-8,8))
goto Done
FireR:
TNT1 A 0 A_FireCustomMissile("BlizzardAttackAim4R",0,1,frandom(-10,10),frandom(-8,8))
goto Done
FireO:
TNT1 A 0 A_FireCustomMissile("BlizzardAttackAim4O",0,1,frandom(-10,10),frandom(-8,8))
goto Done
FireP:
TNT1 A 0 A_FireCustomMissile("BlizzardAttackAim4P",0,1,frandom(-10,10),frandom(-8,8))
goto Done
}
}

actor BlizzardmanMain5_CI : TeamColor_CI
{
states
{
FireX:
TNT1 A 0 A_FireCustomMissile("BlizzardAttackAim5",0,1,frandom(-10,10),frandom(-8,8))
goto Done
FireB:
TNT1 A 0 A_FireCustomMissile("BlizzardAttackAim5B",0,1,frandom(-10,10),frandom(-8,8))
goto Done
FireR:
TNT1 A 0 A_FireCustomMissile("BlizzardAttackAim5R",0,1,frandom(-10,10),frandom(-8,8))
goto Done
FireO:
TNT1 A 0 A_FireCustomMissile("BlizzardAttackAim5O",0,1,frandom(-10,10),frandom(-8,8))
goto Done
FireP:
TNT1 A 0 A_FireCustomMissile("BlizzardAttackAim5P",0,1,frandom(-10,10),frandom(-8,8))
goto Done
}
}

actor BlizzardmanMelee_CI : TeamColor_CI
{
states
{
FireX:
TNT1 A 0 A_SpawnItemEX("BlizzardBallBox",0,0,0,momx,momy,momz,0,8)
goto Done
FireB:
TNT1 A 0 A_SpawnItemEX("BlizzardBallBoxB",0,0,0,momx,momy,momz,0,8)
goto Done
FireR:
TNT1 A 0 A_SpawnItemEX("BlizzardBallBoxR",0,0,0,momx,momy,momz,0,8)
goto Done
FireO:
TNT1 A 0 A_SpawnItemEX("BlizzardBallBoxO",0,0,0,momx,momy,momz,0,8)
goto Done
FireP:
TNT1 A 0 A_SpawnItemEX("BlizzardBallBoxP",0,0,0,momx,momy,momz,0,8)
goto Done
}
}

actor BlizzardmanReload_CI : TeamColor_CI
{
states
{
FireX:
TNT1 A 0 A_SpawnItemEX("BlizzardSnowball",0,0,0,momx,momy,momz,0,8)
goto Done
FireB:
TNT1 A 0 A_SpawnItemEX("BlizzardSnowballB",0,0,0,momx,momy,momz,0,8)
goto Done
FireR:
TNT1 A 0 A_SpawnItemEX("BlizzardSnowballR",0,0,0,momx,momy,momz,0,8)
goto Done
FireO:
TNT1 A 0 A_SpawnItemEX("BlizzardSnowballO",0,0,0,momx,momy,momz,0,8)
goto Done
FireP:
TNT1 A 0 A_SpawnItemEX("BlizzardSnowballP",0,0,0,momx,momy,momz,0,8)
goto Done
}
}