//Altfire now gives 50% armor instead of invul
//Altfire cooldown reduced: 8 seconds > 4 seconds
//Pls increase his HP to 116
//Mobility recoded
actor Blizzardman : SemiWeakArmorClass
{
	Player.ScoreIcon "BLIZMUGS"
	player.startitem "BaseFlagPack", 1
	player.soundclass "blizzardmanc"
	Player.ViewHeight 75
	projectilepassheight 82
	player.forwardmove 0.85,0.85
	player.sidemove 0.83,0.83
	player.displayname "Blizzardman"
	player.startitem "BlizzardAttackBoss"
	player.startitem "Base28Ammo", 14
	player.startitem "BaseAltfireAmmo", 112
	player.startitem "UltimateAttackItem2", 1
	player.startitem "UltSoundWatcherSpawn1"
	player.startitem "IsFromMM6"
	States
	{
		Animation2:
		Spawn:
		BLZZ A 0
		BLZZ C 1 A_JumpIf(z-floorz>0, "Jumping")
		BLZZ A 1 A_JumpIf(z-floorz>0, "Jumping")
		Goto Spawn+2
		
		See:
		BLZZ CCCCCCCCCCBBBBBAAAAA 1 A_JumpIf(z-floorz>0, "Jumping")
		goto Spawn+2
		
		Jumping:
		BLZZ R 0 A_JumpIfInventory("WeaponCharge",1,"Animation1")
		BLZZ R 1 A_JumpIf(z-floorz<=0, "Land")
		loop
		
		Land:
		BLZZ QQQ 1 A_JumpIf(z-floorz>0, "Jumping")
		goto Spawn+2
		
		Animation4:
		BLZZ CCCBBA 3
		goto Spawn
		
		Animation5:
		Missile:
		BLZZ FFFFFFFFF 1 A_JumpIf(z-floorz>0, "JumpingMissile")
		goto Spawn+1
		
		JumpingMissile:
		BLZZ SSSSSSSSS 1 A_JumpIf(z-floorz<=0, "Missile")
		goto Spawn+1
		
		Animation1:
		BLZZ IJK 1
		loop
		
		Animation6:
		BLZZ D 1
		BLZZ B 4
		BLZZ D 3
		BLZZ B 4
		BLZZ D 3
		BLZZ B 4
		BLZZ D 3
		BLZZ F 17
		goto Spawn+2
		
		
		Animation3:
		BLZZ L 1
		BLZZ M 6
		BLZZ L 1
		BLZZ N 1
		BLZZ O 1
		BLZZ P 6
		BLZZ O 1
		BLZZ N 1
		BLZZ L 1
		BLZZ M 6
		BLZZ L 1
		BLZZ N 1
		BLZZ O 1
		BLZZ F 11
		goto Spawn+2
		
		ClassTimeStop:
		PLAY A 0 SetPlayerProperty(0,1,4)
		PLAY A 0 ACS_Execute(528,0)
		BLZZ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 1 A_Stop
		PLAY A 0 SetPlayerProperty(0,0,4)
		Goto pain+1
		ClassPain:
		BLZZ H 0 A_JumpIfInventory("WeaponCharge",1,"ClassPain.Rolling")
		BLZZ HHHHHHHHHH 2 A_SpawnItem("PainFX",0,3)
		Goto Spawn+1
		ClassPain.Rolling:
		BLZZ I 0 A_SpawnItem("PainFX",0,3)
		BLZZ IJ 1
		BLZZ K 0 A_SpawnItem("PainFX",0,3)
		BLZZ KI 1
		BLZZ J 0 A_SpawnItem("PainFX",0,3)
		BLZZ JK 1
		Goto Animation1
		ClassDeath:
		BLZZ H 20 ACS_ExecuteAlways(999,0,0)
		BLZZ H 0 A_PlayerScream
		NOFX A 0 A_SpawnItemEx("FakeDeathFX",0,0,32)
		NOFX A 1 A_CheckPlayerDone
		wait
		ClassIceDeath:
		BLZZ A 35
		NOFX A 0 A_SpawnItemEx("FrozenDeathFX",0,0,16)
		NOFX A 1 A_CheckPlayerDone
		wait
		WeaponGetM:
		CUTM H 0 A_JumpIfInTargetInventory("BlizzardAttackWepM",1,2)
		CUTM H 0 A_GiveToTarget("WeaponGetter")
		CUTM H 0 A_GiveToTarget("BlizzardAttackWepM")
		goto ClassDeath
	}
}

actor BlizzardAttackBoss : VCBaseWeapon
{
	Weapon.AmmoType2 "BaseAltfireAmmo"
	Weapon.ammouse 3
	Obituary "$OB_BLIZZARDMAN1"
	States
	{
		
		Ready:
		TNT1 A 0
		BSKI A 0 A_JumpIfInventory("BaseAltfireAmmo",28,"Ready.CanThird")
		BSKI A 1 A_GiveInventory("BlizzardReadyPickUp",1) BSKI A 0 A_JumpIfInventory("UltAttackFlag",1,"UltimateAttack")
		BSKI A 1 A_GiveInventory("BlizzardReadyPickUp",1) BSKI A 0 A_JumpIfInventory("UltAttackFlag",1,"UltimateAttack")
		BSKI A 0 A_GiveInventory("Base28Ammo",1)
		BSKI A 0 A_GiveInventory("BaseAltfireAmmo",2)
		goto Ready
		
		Ready.CanThird:
		BSKI A 1 A_GiveInventory("BlizzardReadyPickUp",1) BSKI A 0 A_JumpIf(CallACS("VC_CheckBtn",3)==3,"User1") BSKI A 0 A_JumpIfInventory("UltAttackFlag",1,"UltimateAttack")
		BSKI A 1 A_GiveInventory("BlizzardReadyPickUp",1) BSKI A 0 A_JumpIf(CallACS("VC_CheckBtn",3)==3,"User1") BSKI A 0 A_JumpIfInventory("UltAttackFlag",1,"UltimateAttack")
		BSKI A 0 A_GiveInventory("Base28Ammo",1)
		BSKI A 0 A_GiveInventory("BaseAltfireAmmo",2)
		goto Ready
		
		Deselect:
		TNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Lower
		BSKI A 1 A_Lower
		Loop

		Select:
		TNT1 A 0 ACS_ExecuteAlways(991,0,820)
		TNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Raise
		BSKI A 1 A_Raise
		Loop
		
		
		User1:
		TNT1 A 0 A_GiveInventory("BlizzardTFHandler",1)
		BSKI MLKJIHGFED 1 A_FireCustomMissile("BlizzardSkiHitbox",0,0,8,0)
		BSKI M 0 A_SpawnItemEx("BlizzardDust",-5,-12,0)
		BSKI M 0 A_SpawnItemEx("BlizzardDust",-5,12,0)
		BSKI A 20 A_ScaleVelocity(0.5)
		goto Ready
		
		
		Fire:
		BSKI A 0 A_PlaySoundEx("weapon/blizzardattack","Weapon")
		BSKI B 2 OffSet(4,32) A_SpawnItemEx("BlizzardManAttack1",0,0,50)
		BSKI B 2 OffSet(8,32)
		BSKI B 2 OffSet(12,32)
		BSKI A 0 A_PlaySoundEx("weapon/blizzardattack","Weapon")
		BSKI B 2 OffSet(12,32) A_SpawnItemEx("BlizzardManAttack2",0,0,50)
		BSKI B 2 OffSet(8,32)
		BSKI A 2 OffSet(4,32)
		BSKI A 0 A_PlaySoundEx("weapon/blizzardattack","Weapon")
		BSKI C 2 OffSet(-4,32) A_SpawnItemEx("BlizzardManAttack3",0,0,50)
		BSKI C 2 OffSet(-8,32)
		BSKI C 2 OffSet(-12,32)
		BSKI A 0 A_PlaySoundEx("weapon/blizzardattack","Weapon")
		BSKI C 2 OffSet(-12,32) A_SpawnItemEx("BlizzardManAttack4",0,0,50)
		BSKI C 2 OffSet(-8,32)
		BSKI A 2 OffSet(-4,32)
		BSKI A 0 A_GiveInventory("BaseCustomFlag1",1)
		BSKI A 0 A_FireCustomMissile("BlizzardManAttack5",10,1,-30,25)
		BSKI A 0 A_FireCustomMissile("BlizzardManAttack5",0,0,-10,25)
		BSKI A 0 A_FireCustomMissile("BlizzardManAttack5",0,0,10,25)
		BSKI A 0 A_FireCustomMissile("BlizzardManAttack5",-10,0,30,25)
		BSKI A 12 A_WeaponReady(WRF_NOFIRE)
		BSKI AAAA 1 A_TakeInventory("BaseCustomFlag1",999)
		Goto Ready+1
		
		
		Altfire:
		BSKI A 1 Offset(0,42) A_GiveInventory("BlizzardM2Handler")
		BSKI A 1 Offset(0,52)
		BSKI A 1 Offset(0,62)
		BSKI A 1 Offset(0,72)
		BSKI A 1 Offset(0,82)
		BSKI A 1 Offset(0,92)
		BSKI A 1 Offset(0,102)
		BSKI A 1 Offset(0,112)
		TNT1 A 5 ThrustThingZ(0,40,0,0)
		
		Altfire.AirLoop:
		TNT1 A 0 A_GiveInventory("CutterFlag",1)
		TNT1 A 0 A_JumpIfInventory("CutterFlag",280,"Altfire.Release")
		TNT1 A 1 A_CheckFloor("Altfire.Hold")
		loop
		
		Altfire.Hold:
		TNT1 A 0 A_GiveInventory("BlizzardChargeHandler",1)
		TNT1 A 2 A_PlaySoundEx("weapon/kickcharge","Weapon")
		TNT1 A 0 A_JumpIfInventory("BlizzardCharge",40,"Altfire.ReleasePre")
		TNT1 A 0 A_Refire("Altfire.Hold")
		
		Altfire.ReleasePre:
		TNT1 A 0 A_ChangeVelocity(30,0,momz,CVF_RELATIVE|CVF_REPLACE)
		
		Altfire.Release:
		TNT1 A 0 SetPlayerProperty(0,1,0)
		TNT1 A 0 A_PlaySoundEx("weapon/blizzardroll","Weapon")
		TNT1 A 0 A_GiveInventory("WeaponCharge",1)
		TNT1 A 0 A_JumpIfInventory("BaseCustomFlag2",1,"Altfire.Stop")
		TNT1 A 1 A_GiveInventory("BlizzardBowlHandler",1)
		TNT1 A 0 A_JumpIfInventory("BaseCustomFlag2",1,"Altfire.Stop")
		TNT1 A 1 A_GiveInventory("BlizzardBowlHandler",1)
		TNT1 A 0 A_JumpIfInventory("BaseCustomFlag2",1,"Altfire.Stop")
		TNT1 A 1 A_GiveInventory("BlizzardBowlHandler",1)
		TNT1 A 0 A_JumpIfInventory("BaseCustomFlag2",1,"Altfire.Stop")
		TNT1 A 1 A_GiveInventory("BlizzardBowlHandler",1)
		TNT1 A 0 A_JumpIfInventory("BaseCustomFlag2",1,"Altfire.Stop")
		TNT1 A 1 A_GiveInventory("BlizzardBowlHandler",1)
		TNT1 A 0 A_JumpIfInventory("BaseCustomFlag2",1,"Altfire.Stop")
		TNT1 A 1 A_GiveInventory("BlizzardBowlHandler",1)
		TNT1 A 0 A_JumpIfInventory("BaseCustomFlag2",1,"Altfire.Stop")
		TNT1 A 1 A_GiveInventory("BlizzardBowlHandler",1)
		TNT1 A 0 A_JumpIfInventory("WeaponCharge",30,"Altfire.End")
		loop
		
		Altfire.Stop:
		TNT1 A 0 A_PlaySoundEx("weapon/blizzardbowl","Weapon")
		TNT1 A 14 A_ChangeVelocity(-30,0,10,CVF_RELATIVE|CVF_REPLACE)
		
		Altfire.End:
		BSKI A 1 Offset(0,112) A_GiveInventory("BlizzardM2EndHandler")
		BSKI A 1 Offset(0,102)
		BSKI A 1 Offset(0,92)
		BSKI A 1 Offset(0,82)
		BSKI A 1 Offset(0,72)
		BSKI A 1 Offset(0,62)
		BSKI A 1 Offset(0,52)
		BSKI A 1 Offset(0,42)
		goto Ready
		
		
		UltimateAttack:
		TNT1 A 0 ACS_NamedExecuteAlways("VC_UltimateText",0,55)
		TNT1 A 0 ACS_NamedExecuteWithResult("VC_SetState",3)
		TNT1 A 0 A_GiveInventory("WindUltCooldown",1)
		TNT1 A 0 A_ChangeFlag("INVULNERABLE",1)
		TNT1 A 0 A_GiveInventory("InvProtection",1)
		TNT1 A 0 A_GiveInventory("NoSpeed",1)
		TNT1 A 0 A_SetGravity(0.0)
		CUTA A 0 A_PlaySoundEx("classes/ultimateactivation","Auto")
		TNT1 A 0 A_SpawnItemEx("MM6UltFXSpawner",0,0,28)
		BSKI AAAAAAAAAAAAAAAAAA 1 A_Stop
		BSKI A 0 A_PlaySoundEx("mm6/ult","Auto")
		TNT1 A 0 A_GiveInventory("WindUltCooldown",1)
		BSKI A 0 A_SpawnItemEx("BlizzardUltColorWatcher")
		BSKI NNNNAAAAAANNNNAAAA 1 A_Stop
		TNT1 A 0 A_TakeInventory("NoSpeed",999)
		TNT1 A 0 A_GiveInventory("GravityRestore")
		TNT1 A 0 A_TakeInventory("InvProtection",1)
		TNT1 A 0 A_GiveInventory("WindUltCooldown",1)
		BSKI B 0 A_TakeInventory("JumpCancler")
		TNT1 A 0 A_ChangeFlag("INVULNERABLE",0)
		TNT1 A 0 A_TakeInventory("MediumShortUltimateAmmo",999)
		TNT1 A 0 SetPlayerProperty(0,0,1)
		TNT1 A 0 ACS_NamedExecuteWithResult("VC_SetState",5)
		BSKI AAAA 0 A_SpawnItemEx("BlizzardManAttackUltStart",0,0,32,100,0,random(6,30),random(0,359))
		BSKI B 1 OffSet(4,32) A_PlaySoundEx("weapon/blizzardattack","Weapon")
		BSKI B 1 OffSet(8,32)
		BSKI B 1 OffSet(12,32)
		TNT1 A 0 ACS_NamedExecuteWithResult("VC_SetState",5)
		BSKI AAAA 0 A_SpawnItemEx("BlizzardManAttackUltStart",0,0,32,100,0,random(6,30),random(0,359))
		BSKI B 1 OffSet(12,32) A_PlaySoundEx("weapon/blizzardattack","Weapon")
		BSKI B 1 OffSet(8,32)
		BSKI A 1 OffSet(4,32)
		TNT1 A 0 ACS_NamedExecuteWithResult("VC_SetState",5)
		BSKI AAAA 0 A_SpawnItemEx("BlizzardManAttackUltStart",0,0,32,100,0,random(6,30),random(0,359))
		BSKI C 1 OffSet(-4,32) A_PlaySoundEx("weapon/blizzardattack","Weapon")
		BSKI C 1 OffSet(-8,32)
		BSKI C 1 OffSet(-12,32)
		TNT1 A 0 ACS_NamedExecuteWithResult("VC_SetState",5)
		BSKI AAAA 0 A_SpawnItemEx("BlizzardManAttackUltStart",random(0,500),0,random(30,300),0,0,0,random(0,359))
		BSKI C 1 OffSet(-12,32) A_PlaySoundEx("weapon/blizzardattack","Weapon")
		BSKI C 1 OffSet(-8,32)
		BSKI A 1 OffSet(-4,32)
		BSKI A 12 A_WeaponReady(WRF_NOFIRE)
		BSKI A 0 A_GiveInventory("BaseCustomFlag1",1)
		BSKI A 0 A_TakeInventory("UltAttackFlag",1)
		CUTA A 0 A_PlaySoundEx("weapon/combatmode","Auto")
		BSKI A 0 SetPlayerProperty(0,0,0)
		BSKI D 1 Offset(-4,0)
		BSKI D 1 Offset(4,0)
		BSKI D 1 Offset(-3,0)
		BSKI D 1 Offset(3,0)
		BSKI D 1 Offset(-2,0)
		BSKI D 1 Offset(2,0)
		BSKI D 1 Offset(-1,0)
		BSKI D 1 Offset(1,0)
		BSKI D 4 A_WeaponReady(WRF_NOFIRE)
		BSKI AAAA 1 A_TakeInventory("BaseCustomFlag1",999)
		Goto Ready+1
	}
}

actor BlizzardCharge : inventory
{
	inventory.amount 1
	inventory.maxamount 40
}

actor BlizzardManAttack1
{
meleerange -30
scale 2.5
PROJECTILE
+NOINTERACTION
+NOCLIP
+CLIENTSIDEONLY
damage(0)
radius 5
height 5
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode")
TNT1 A 0 ACS_NamedExecuteAlways("core_shieldwarper", 0, 1)
TNT1 A 0 A_Jump(256, "Shield")
Goto Shield
Shield:
BLIZ AABB 1 A_Warp(AAPTR_TARGET,30,meleerange,60,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
loopit:
TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0) == 0, "Death")
BLIZ C 0 A_JumpIfInTargetInventory("BaseCustomFlag1",1,"Death")
BLIZ C 1 A_Warp(AAPTR_TARGET,30,meleerange,60,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
loop
Death:
TNT1 A 0 A_SpawnItemEx("IcePitFreeze")
stop
}
}

actor BlizzardManAttack2 : BlizzardManAttack1
{
meleerange -10
}

actor BlizzardManAttack3 : BlizzardManAttack1
{
meleerange 10
}

actor BlizzardManAttack4 : BlizzardManAttack1
{
meleerange 30
}

actor BlizzardManAttack5
{
	PROJECTILE
	+NOTARGETSWITCH
	+FORCEXYBILLBOARD
	Obituary "$OB_BLIZZARDMAN1"
	Radius 12
	Height 12
	scale 2.5
	damage (4)
	+SEEKERMISSILE
	damagetype "Blizzardman"
	speed 30
	States
	{
		Spawn:
		TNT1 AA 0 A_GiveInventory("ProjectileCode",1)
		BLIZ CCCCCCCCCCCCCCCCC 1 A_SeekerMissile(3,3,SMF_LOOK,128)
		loopit:
		BLIZ C 1
		loop
		
		Death:
		TNT1 A 0 A_SpawnItemEx("IcePitFreeze")
		stop
	}
}

actor BlizzardM2Handler : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_Stop
TNT1 A 0 A_GiveInventory("HalfDamageProtection",1)
//TNT1 A 0 A_ChangeFlag("INVULNERABLE",1)
TNT1 A 0 SetPlayerProperty(0,1,0)
TNT1 A 0 ACS_Execute(191,0,APROP_JumpZ,0,1)
TNT1 A 0 ACS_NamedExecuteWithResult("VC_SetState",1)
TNT1 A 0 A_TakeInventory("BaseAltfireAmmo",84)
TNT1 A 0 A_GiveInventory("BlizzardBowlSlowdown")
stop
}
}

actor BlizzardM2EndHandler : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_TakeInventory("HalfDamageProtection",999)
//TNT1 A 0 A_ChangeFlag("INVULNERABLE",0)
TNT1 A 0 SetPlayerProperty(0,0,0)
TNT1 A 0 SetPlayerProperty(0,0,4)
TNT1 A 0 ACS_Execute(191,0,APROP_JumpZ,10,1)
TNT1 A 0 A_TakeInventory("BlizzardCharge",999)
TNT1 A 0 A_TakeInventory("CutterFlag",999)
TNT1 A 0 A_TakeInventory("WeaponCharge",999)
TNT1 A 0 A_TakeInventory("BaseCustomFlag2",999)
TNT1 A 0 ACS_NamedExecuteWithResult("VC_SetState",2)
TNT1 A 0 A_TakeInventory("BlizzardBowlSlowdown")
TNT1 A 0 A_SpawnItemEx("BlizzardBowlWatcher")
stop
}
}

actor BlizzardBowlHandler : BaseMovement
{
States
{
itTimeGo:
TNT1 A 0 A_ChangeVelocity(CallACS("VC_XYMob",4.0),0,0,CVF_RELATIVE)
TNT1 A 0 A_SpawnItemEx("BlizzardWallCheck",2,0,21,25,0,0,0)
TNT1 A 0 A_JumpIfInventory("BlizzardCharge",40,"Pickup2")
TNT1 A 0 A_FireCustomMissile("BlizzardBowlHitbox",0,0,8,0)
stop

Pickup2:
TNT1 AA 0 A_SpawnItemEx("BlizzardBowlFX",0,random(-6,6),8,random(-5,0),random(-3,3),random(2,7),random(0,359))
TNT1 A 0 A_FireCustomMissile("BlizzardBowlHitbox2",0,0,8,0)
stop
}
}

actor BlizzardBowlFX : BasicClientSide
{
renderstyle add
gravity 0.2
alpha 0.8
+NOEXPLODEFLOOR
-NOGRAVITY
-NOINTERACTION
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode",1)
BLIZ C 35
stop
}
}

actor BlizzardBowlHitbox : BasicExplosion
{
Obituary "$OB_BLIZZARDMAN2"
damagetype "BlizzardBowl"
States
{
Spawn:
TNT1 A 0
TNT1 A 1 A_Explode(45,44,0,0,44)
stop
}
}

actor BlizzardBowlProtect : PowerProtection
{
	Powerup.Duration 35
	DamageFactor "BlizzardBowl", 0.0
	DamageFactor "BlizzardBowl2", 0.0
}

actor BlizzardBowlHitbox2 : BlizzardBowlHitbox
{
damagetype "BlizzardBowl2"
}

actor BlizzardWallRush_CI : CustomInventory
{
states
{
Pickup:
TNT1 A 0 A_JumpIfInventory("NewWallSlam",1,"PickupNo")
TNT1 A 0 A_GiveInventory("NoNewWallSlam",1)
TNT1 A 0 A_GiveInventory("NewWallSlam",1)
TNT1 A 0 A_GiveInventory("WallSlamRealTimer",1)
TNT1 A 0 A_SpawnItemEX("BlizzardWallRushChecker")
stop
PickupNo:
TNT1 A 0
stop
}
}

actor BlizzardWallRushChecker : BaseWallRushChecker
{
DamageType "BlizzardSlam"
Obituary "$OB_BLIZZARDMAN2"
Decal WallCrack
states
{
DeathCheck:
TNT1 A 0 //A_JumpIfInventory("NewWallSlam",1,"Death",AAPTR_TRACER)
TNT1 A 0 A_SpawnItemEx("RaThorWallBonk")
TNT1 A 0 A_GiveInventory("WallSlamTimer",1)
TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("BlizzardSlamRocks",random(-8,8),random(-8,8),random(-8,8),random(-8,8),random(-8,8),random(-8,8))
TNT1 A 0 A_Quake(2,18,0,256)
TNT1 A 0 A_PlaySoundEx("misc/quake","Body")
TNT1 A 0 A_PlaySoundEx("weapon/wallrush","Weapon")
TNT1 A 0 A_Warp(AAPTR_TRACER,0,0,CallACS("TracerHeightGet")/2,0,0)
TNT1 A 0 A_Explode(15,12,0,0,12)
TNT1 A 18 A_GiveInventory("MovementReturnFailSafe",1,AAPTR_TRACER)
Death:
TNT1 AA 1 A_GiveInventory("MovementReturnFailSafe",1,AAPTR_TRACER) 
stop
}
}

actor BlizzardSlamRocks : ThorSlamRocks
{
translation "208:208=4:4", "46:46=[60,188,252]:[60,188,252]", "8:8=[0,112,236]:[0,112,236]"
}

actor BlizzardWallCheck : NiceWallCheck
{
States
{
Death:
TNT1 A 0 A_JumpIfInTargetInventory("BaseCustomFlag2",1,"XDeath")
TNT1 A 0 A_GiveToTarget("BaseCustomFlag2")
Stop
}
}

actor BlizzardTFHandler : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_SpawnItemEx("BlizzardDust",-5,-12,0)
TNT1 A 0 A_SpawnItemEx("BlizzardDust",-5,12,0)
TNT1 A 0 A_Recoil(-40)
TNT1 A 0 A_TakeInventory("BaseAltfireAmmo",28)
TNT1 A 0 A_PlaySoundEx("weapon/kickcharge","Weapon")
TNT1 A 0 A_PlaySoundEx("weapon/blizzardski","Body")
TNT1 A 0 ACS_NamedExecuteWithResult("VC_SetState",4)
stop
}
}

actor BlizzardSkiHitbox : BasicExplosion
{
Obituary "$OB_BLIZZARDMAN3"
damagetype "BlizzardSki"
States
{
Spawn:
TNT1 A 0
TNT1 A 1 A_Explode(28,40,0,0,40)
stop
}
}

actor BlizzardSkiProtect : PowerProtection
{
	Powerup.Duration 18
	DamageFactor "BlizzardSki", 0.0
}

actor BlizzardManAttackUlt
{
	PROJECTILE
	+NOTARGETSWITCH
	+FORCEXYBILLBOARD
	Obituary "$OB_BLIZZARDMAN4"
	Radius 20
	Height 20
	scale 2.5
	damage (7)
	+SEEKERMISSILE
	damagetype "BlizzardUlt"
	speed 30
	States
	{
		Spawn:
		TNT1 AA 0 A_GiveInventory("ProjectileCode",1)
		BLIZ ABC 1 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0) == 0, "Death") //Forming
		
		Spawn2: //Waiting for flag
		TNT1 A 0 A_GiveToTarget("WindUltCooldown",1)
		TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0) == 0, "Death")
		ICLD H 1 A_JumpIfInTargetInventory("BaseCustomFlag1",1,"Spawn3")
		loop
		
		Spawn3: //Redirect to your aim
		ICLD HHH 0 A_GiveInventory("ControlVelocity")
		ICLD HHH 0 A_ChangeVelocity(cos(pitch)*(50+ACS_NamedExecuteWithResult("VC_FollowAimDirection")/30),0,-sin(pitch)*(50+ACS_NamedExecuteWithResult("VC_FollowAimDirection")/30),CVF_RELATIVE|CVF_REPLACE)
		ICLD H 1 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0) == 0, "Death")
		
		loopit: //Hunting down enemies -Fr3ak
		TNT1 A 0 A_GiveToTarget("WindUltCooldown",1)
		ICLD H 1 A_SeekerMissile(90,90,SMF_LOOK|SMF_PRECISE|SMF_CURSPEED,256)
		loop
		
		Death:
		TNT1 A 0 A_SpawnItemEx("IcePitFreeze")
		stop
	}
}

actor BlizzardDust : BasicClientSide
{
States
{
Spawn:
6SMO ABC 5
STOP
}
}

actor BlizzardUltColorWatcher
{
Height 0
Radius 0
+NOINTERACTION
-SOLID
+NOGRAVITY
+MISSILE
States
{
Spawn:
TNT1 A 0
TNT1 A 4 A_GiveToTarget("TotalWhiteColor")
TNT1 A 6 A_GiveToTarget("BlizzardManColor")
TNT1 A 4 A_GiveToTarget("TotalWhiteColor")
TNT1 AAA 1 A_GiveToTarget("BlizzardManColor")
stop
}
}

actor BlizzardManColor : CustomInventory
{
inventory.amount 1
inventory.maxamount 1
+INVENTORY.AUTOACTIVATE
+COUNTITEM
+INVBAR
states
{
Pickup:
TNT1 A 1 ACS_ExecuteAlways(991,0,820,0)
stop
}
}

actor BlizzardChargeHandler : CustomInventory
{
States
{
Pickup:
TNT1 A 0 ACS_NamedExecuteWithResult("VC_SetState",1)
TNT1 AAA 0 A_SpawnItemEx("NapalmHeadMissileFX",-2,0,4,random(-20,-12),random(-3,3),random(-1,4))
TNT1 A 0 A_GiveInventory("BlizzardCharge",1)
TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(975, 0)==2,"Pickup2")
stop

Pickup2:
TNT1 A 0 A_JumpIfInventory("BlizzardCharge",20,"Pickup3")
stop

Pickup3:
TNT1 A 0 A_TakeInventory("HalfDamageProtection",1)
TNT1 A 0 A_ChangeFlag("INVULNERABLE",0)
stop
}
}

actor BlizzardManAttackUltStart : RingRingSpawner
{
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode")
TNT1 A 1
Death:
TNT1 A 0 A_SpawnItemEx("BlizzardManAttackUlt")
stop
}
}

actor BlizzardBowlSlowdown : PowerSpeed
{
+POWERSPEED.NOTRAIL
Powerup.Duration 0x7FFFFFFD
Speed 0.0
}

actor BlizzardBowlCooldown : Ammo
{
inventory.amount 1
inventory.maxamount 280
+INVENTORY.IGNORESKILL
}

actor BlizzardBowlWatcher
{
+MISSILE
+NOGRAVITY
+NOINTERACTION
States
{
Spawn: 
TNT1 AA 0
TNT1 A 1 A_GiveToTarget("BlizzardBowlCooldown",280)
Goto Drain

Drain:
TNT1 A 1 A_TakeFromTarget("BlizzardBowlCooldown",2)
TNT1 A 0 A_JumpIfInTargetInventory("IsTheTerminator",1,"Death")
TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0) == 0, "Death")
TNT1 A 0 A_JumpIfInTargetInventory("BlizzardBowlCooldown",1,"Drain")
Goto Death

Death:
TNT1 A 0
TNT1 A 1
stop
}
}

actor BlizzardReadyPickUp : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_JumpIfInventory("BlizzardBowlCooldown",1,"Pickup2")
TNT1 A 0 A_WeaponReady(WRF_NOPRIMARY*CallACS("VC_AmmoCheck",0,3)|WRF_NOSECONDARY*CallACS("VC_AmmoCheck",3,84))
stop

Pickup2:
TNT1 A 0 A_WeaponReady(WRF_NOPRIMARY*CallACS("VC_AmmoCheck",0,3)|WRF_NOSECONDARY)
stop
}
}

actor BlizzardBowlHitFlag : VCOnce {}