actor ChillSpikeBoss : BaseMM8BDMWep_CBM
{
	Tag "$TAGC_10D"
	dropitem "ChillSpikeWepCDropped"
	Weapon.AmmoUse 10
	Weapon.AmmoUse2 1
	Weapon.AmmoGive 60
	Obituary "$OB_CHILLCLOSE"
	Inventory.Pickupmessage "Whats cooler than being cool? ICE COLD! Alright alright alright alright alright alright alright alright alright alright alright alright alright alright alright alright!"
	weapon.ammotype "ChillSpikeBossAmmo"
	weapon.ammotype2 "ChillSlideBossAmmo"
	States
	{
		Spawn:
		C_10 G 1
		loop

		Ready:
		CLHD A 0 A_GunFlash
		CLHD A 0 ACS_ExecuteAlways(998,0,10903)
		Goto Ready1
		
		Flash:
		TNT1 AAAA 1 A_GiveInventory("ChillSlider_P")
		TNT1 A 0 A_JumpIfInventory("IsDead",1,"NoFlash")
		CLHD A 0 A_JumpIfInventory("ChillCornflakes",1,"FlashSND")
		CLHD A 0 A_JumpIfInventory("ChillAmmoStall",1,"Flash")
		TNT1 A 0 A_GiveInventory("ChillSlideBossAmmo",3)
		TNT1 A 0 A_StopSoundEx("SoundSlot7")
		loop
		FlashSND:
		TNT1 A 0 A_PlaySoundEx("weapon/ChillSkate","SoundSlot7")
		TNT1 AAAAAAAA 1 A_GiveInventory("ChillSlider_P")
		goto Flash

		Ready1:
		CLHD A 0 A_JumpIfInventory("ChillCornflakes",1,"Ready2")
		CLHD A 0 A_JumpIfInventory("ChillSlideBossAmmo",56,"Ready2")
		CLHD A 2 A_WeaponReady(WRF_NOSECONDARY|WRF_ALLOWRELOAD)
		CLHD A 0 //A_GiveInventory("ChillSpikeBossAmmo",1)
		loop
		
		Ready2:
		CLHD A 2 A_WeaponReady(WRF_ALLOWRELOAD)//(WRF_NOSECONDARY)
		CLHD A 0 //A_GiveInventory("ChillSpikeBossAmmo",1)
		goto Ready1

		Fire:
		CLHD A 0 A_WeaponReady(WRF_NOFIRE)
		CLHD A 0 A_TakeInventory("ChillAmmoCharger",99)
		CLHD A 0 A_JumpIfInventory("ChillCornflakes",1,"Fire2")
		CLHD A 1 A_JumpIfInventory("ChillSpikeBossAmmo",10,1)
		goto NoAmmo
		CLHD B 0 A_PlaySoundEx("weapon/chillstrike","Weapon")
		CLHD B 0 A_GiveInventory("ChillmanMain_CI")
		CLHD J 1
		CLHD K 1
		CLHD L 1
		CLHD M 2
		CLHD N 3
		CLHD O 2
		CLHD P 1
		CLHD Q 1
		CLHD A 10 A_WeaponReady(14)
		goto Ready1
		
		Fire2:
		CLHD A 0 A_WeaponReady(WRF_NOFIRE)
		PUMH P 0 ACS_NamedExecuteWithResult("BULL_SetState",1)
		TNT1 A 0 A_GiveInventory("ChillSalvoFX_P")
		CLHD A 0 A_PlaySound("weapon/chillsalvo","Weapon")
		CLHD A 1 Offset(2,48)A_Stop
		CLHD A 0 A_PlaySound("weapon/chillsalvo","Weapon")
		CLHD A 1 Offset(2,64)A_Stop
		CLHD A 0 A_PlaySound("weapon/chillsalvo","Weapon")
		CLHD A 1 Offset(2,80)A_Stop
		CLHD A 0 A_PlaySound("weapon/chillsalvo","Weapon")
		CLHD A 1 Offset(2,96)A_Stop
		CLHD A 0 A_PlaySound("weapon/chillsalvo","Weapon")
		CLHD A 1 Offset(2,112)A_Stop
		CLHD A 0 A_PlaySound("weapon/chillsalvo","Weapon")
		TNT1 A 1 A_Stop
		CLHD A 0 A_PlaySound("weapon/chillsalvo","Weapon")
		TNT1 A 1 A_Stop
		CLHD A 0 A_PlaySound("weapon/chillsalvo","Weapon")
		TNT1 AAAAA 1 A_Stop
		CLHD A 0 A_WeaponReady(WRF_NOFIRE)
		PUMH P 0 ACS_NamedExecuteWithResult("BULL_SetState",2)
		TNT1 A 0 A_SpawnItemEx("ChillSalvo_H")
		CLHD DEFG 1
		CLHD A 0 A_TakeInventory("ChillCornflakes",1)
		CLHD H 1
		CLHD I 1
		TNT1 A 4 A_GiveInventory("ChillSTOPFUCKINGSLIDING",1)
		CLHD A 0 A_GiveInventory("ChillAmmoStall",1)
		CLHD A 1 Offset(2,112)
		CLHD A 1 Offset(2,96)
		CLHD A 1 Offset(2,80)
		CLHD A 1 Offset(2,64)
		CLHD A 1 Offset(2,48)
		CLHD A 5 A_WeaponReady(14)
		goto Ready1
		
		NoAmmo:
		CLHD B 0 A_PlaySoundEx("weapon/chillshot","Weapon")
		CLHD B 0 A_GiveInventory("ChillmanMain2_CI")
		//CLHD BCDAAAA 3 //21
		CLHD B 1 offset(3,35)
		CLHD B 1 offset(8,40)
		CLHD C 1 offset(13,45)
		CLHD C 2 offset(18,50)
		CLHD B 1 offset(13,45)
		CLHD B 1 offset(8,40)
		CLHD A 1 offset(3,35)
		CLHD A 13 A_WeaponReady(14)
		goto Ready1
		
		Altfire:
		CLHD A 0 A_JumpIfInventory("ChillCornflakes",1,"PLEASESTOPIMBEGGINGYOUBLOCKANDIMPACTARECOMINGOUTSOONSTOPFUCKINGASKINGMEEEEE")
		NBOH A 0 A_JumpIfInventory("ChillSlideBossAmmo",56,"NoReloadCancellingOutOfThisOne")
		goto ReloadEnd
		NoReloadCancellingOutOfThisOne:
		CLHD A 0 A_TakeInventory("ChillAmmoCharger",99)
		CLHD B 0 A_GiveInventory("ChillSlideReset")
		CLHD B 0 A_PlaySoundEx("weapon/TenguM_Dash","Weapon")
		CLHD B 0 A_TakeInventory("ChillSlideBossAmmo",56)
		CLHD S 1 Offset(45, 35)A_GiveInventory("ChillSlide_P")
		CLHD S 1 Offset(93, 41)A_TakeInventory("ChillSlideReset")
		CLHD B 0 A_SpawnItemEx("ChillSlide_H")
		CLHD TTT 2 
		NBOH A 0 A_JumpIfInventory("ChillSpikeBossAmmo",1,"SlideEnd")
		CLHD TTTTTTTTT 2 
		SlideEnd:
		CLHD TTT 2 A_WeaponReady(WRF_NOSECONDARY|WRF_NOBOB)
		CLHD S 1 Offset(93, 41)
		CLHD S 1 Offset(45, 35)
		goto Ready1
		PLEASESTOPIMBEGGINGYOUBLOCKANDIMPACTARECOMINGOUTSOONSTOPFUCKINGASKINGMEEEEE:
		TNT1 A 0 A_PlaySoundEx("weapon/BoobeamBeep","SoundSlot7")
		CLHD A 0 A_TakeInventory("ChillCornflakes",1)
		CLHD A 0 A_GiveInventory("ChillAmmoStall",1)
		CLHD A 10 A_GiveInventory("ChillSTOPFUCKINGSLIDING",1)
		goto Ready1
		
		Reload:
		NBOH A 0 A_JumpIfInventory("ChillAmmoCharger",1,"ReloadEnd")
		CLHD A 0 A_JumpIfInventory("ChillSpikeBossAmmo",80,"Ready1")
		CLHD R 1 Offset(36,0)
		CLHD R 1 Offset(78,0)
		CLHD R 1 Offset(138,0)
		CLHD R 1 Offset(158,0)
		CLHD R 1 Offset(178,0)
		CLHD R 10 Offset(198,0)
		Reloading:
		TNT1 A 0 A_PlaySoundEx("weapon/ChillTrail","Weapon")
		CLHD A 0 Offset(198,0)A_GiveInventory("ChillAmmoCharger",1)
		TNT1 AA 0 A_SpawnItemEx("ChillShieldFX",Random(-40,40),Random(-40,40),Random(10,60),0,0,0,0,1)
		CLHD R 1 Offset(198,0)A_JumpIfInventory("ChillAmmoCharger",50,"ReloadEndShield")
		CLHD A 0 Offset(198,0)A_WeaponReady(WRF_ALLOWRELOAD|WRF_NOBOB)
		CLHD A 0 Offset(198,0)A_GiveInventory("ChillAmmoCharger",1)
		TNT1 AA 0 A_SpawnItemEx("ChillShieldFX",Random(-40,40),Random(-40,40),Random(10,60),0,0,0,0,1)
		CLHD R 1 Offset(198,0)A_JumpIfInventory("ChillAmmoCharger",50,"ReloadEndShield")
		CLHD A 0 Offset(198,0)A_WeaponReady(WRF_ALLOWRELOAD|WRF_NOBOB)
		loop
		ReloadEndShield:
		CLHD A 0 A_PlaySound("weapon/ChillIceForm",4,0.8)
		CLHD A 0 A_GiveInventory("ChillSpikeBossAmmo",80)
		CLHD A 0 A_TakeInventory("ChillCornFlakesWithNoMilk",999)
		CLHD A 0 A_GiveInventory("ChillShield",1)
		ReloadEnd:
		CLHD A 0 A_TakeInventory("ChillAmmoCharger",999)
		CLHD R 1 Offset(178,0)
		CLHD R 1 Offset(158,0)
		CLHD R 1 Offset(138,0)
		CLHD R 1 Offset(78,0)
		CLHD R 1 Offset(36,0)
		CLHD AAAAA 1 A_WeaponReady(WRF_NOFIRE)
		Goto Ready1
		
		//Reload:
		//CLHD A 1 A_FireCustomMissile("ChillStunner")
		//goto Ready1
	}
}

actor ChillSpikeBossAmmo : Ammo
{
	+INVENTORY.IGNORESKILL
	inventory.maxamount 80
	inventory.amount 1
}

actor ChillSlideBossAmmo : Ammo
{
	+INVENTORY.IGNORESKILL
	inventory.maxamount 224
	inventory.amount 1
}

actor ChillAmmoCharger : Inventory
{
	inventory.maxamount 50
	inventory.amount 1
}

actor ChillFly : Powerup {powerup.duration 4 inventory.maxamount 1}

actor ChillCornflakes : Powerup {powerup.duration 10}
actor ChillSTOPFUCKINGSLIDING : Powerup {powerup.duration 5}
actor ChillSalvoBreak : Powerup {powerup.duration 15}
actor ChillAmmoStall : Powerup{powerup.duration 50}

actor ChillSlideReset : Once {}

actor ChillShieldFX
{
PROJECTILE
+NOINTERACTION
Renderstyle "Translucent"
Alpha 0.8
Scale 2.5
States
{
Spawn:
TNT1 A 0
TNT1 A 0 A_Jump(256,"Spawn2","Spawn3","Spawn4","Spawn5")
Spawn2:
CHIB QQQQ 2 A_Fadeout
Stop
Spawn3:
CHIB RRRR 2 A_Fadeout
Stop
Spawn4:
CHIB SSSS 2 A_Fadeout
Stop
Spawn5:
CHIB TTTT 2 A_Fadeout
Stop
}
}

actor ChillmanSpikeShot
{
	Obituary "$OB_CHILLVOLVER"
	Translation "192:192=202:202", "198:198=207:207"
	DamageType "ChillM_Shot"
	PROJECTILE
	+SKYEXPLODE
	-NOGRAVITY
	Radius 13
	Height 13
	Damage (16)
	Speed 60
	Scale 2.5

	States
	{
		Spawn:
		TNT1 AA 0
		TNT1 A 0 ACS_NamedExecuteAlways("BULL_Tidifier", 0)
		TNT1 A 0 ThrustThingZ(0,8,0,1)
		X_AD ABC 1
		SpawnL:
		X_AD AABBCC 1 ThrustThingZ(0,4,1,1)
		loop
		
		Death:
		TNT1 A 0 A_CheckCeiling("Ceiling")
		TNT1 A 0 A_JumpIf(z-floorz<5, "Floor")
		TNT1 A 0 A_SpawnItemEx("ChillmanSpikeW",0,0,-(ceilingz-z < 32)*(32-(ceilingz-z)),0,0,0,0,1)
		stop
		
		XDeath:
		X_AD A 0 A_FaceTarget
		X_AD A 0 A_SpawnItemEx("ChillFloorSpikeSpawner",0,0,0,10,0,0,0,1)
		X_AD A 0 A_SpawnItemEx("ChillFloorSpikeSpawner",0,0,0,10,0,0,30,1)
		X_AD A 0 A_SpawnItemEx("ChillFloorSpikeSpawner",0,0,0,10,0,0,-30,1)
		
		Floor:
		X_AD A 0 A_SpawnItemEx("ChillFloorSpike",0,0,0,0,0,0,0,1)
		X_AD A 0 A_SpawnItemEx("ChillFloorSpikeSpawner",0,0,0,10,0,0,0,1)
		X_AD A 0 A_SpawnItemEx("ChillFloorSpikeSpawner",0,0,0,10,0,0,30,1)
		X_AD A 0 A_SpawnItemEx("ChillFloorSpikeSpawner",0,0,0,10,0,0,-30,1)
		stop
		
		Ceiling:
		X_AD A 0
		X_AD A 0 A_SpawnItemEx("ChillCeilingSpike",0,0,0,0,0,0,0,1)
		X_AD A 0 A_SpawnItemEx("ChillCeilingSpikeSpawner",0,0,0,10,0,0,0,1)
		X_AD A 0 A_SpawnItemEx("ChillCeilingSpikeSpawner",0,0,0,10,0,0,60,1)
		X_AD A 0 A_SpawnItemEx("ChillCeilingSpikeSpawner",0,0,0,10,0,0,120,1)
		X_AD A 0 A_SpawnItemEx("ChillCeilingSpikeSpawner",0,0,0,10,0,0,180,1)
		X_AD A 0 A_SpawnItemEx("ChillCeilingSpikeSpawner",0,0,0,10,0,0,240,1)
		X_AD A 0 A_SpawnItemEx("ChillCeilingSpikeSpawner",0,0,0,10,0,0,300,1)
		stop
	}
}

actor ChillmanSpikeShotB : ChillmanSpikeShot{translation "192:192=205:205","198:198=74:74"}
actor ChillmanSpikeShotR : ChillmanSpikeShot{translation "192:192=171:171","198:198=41:41"}
actor ChillmanSpikeShotO : ChillmanSpikeShot{translation "192:192=104:104","198:198=128:128"}
actor ChillmanSpikeShotP : ChillmanSpikeShot{translation "192:192=229:229","198:198=232:232"}

actor ChillmanSpikeShot2 : ChillmanSpikeShot
{
	Obituary "$OB_CHILLVOLVER"
	damagetype "ChillM_ShotW"
	Speed 32
	States
		{
		Death:
		TNT1 A 0 A_CheckCeiling("Ceiling")
		TNT1 A 0 A_JumpIf(z-floorz<5, "Floor")
		TNT1 A 0 A_SpawnItemEx("ChillmanSpikeW_W",0,0,-(ceilingz-z < 32)*(32-(ceilingz-z)),0,0,0,0,1)
		stop
		
		XDeath:
		X_AD A 0 A_FaceTarget
		X_AD A 0 A_SpawnItemEx("ChillFloorSpikeSpawner_W",0,0,0,10,0,0,0,1)
		//X_AD A 0 A_SpawnItemEx("ChillFloorSpikeSpawner_W",0,0,0,10,0,0,30,1)
		//X_AD A 0 A_SpawnItemEx("ChillFloorSpikeSpawner_W",0,0,0,10,0,0,-30,1)
		
		Floor:
		X_AD A 0 A_SpawnItemEx("ChillFloorSpike",0,0,0,0,0,0,0,1)
		X_AD A 0 A_SpawnItemEx("ChillFloorSpikeSpawner_W",0,0,0,10,0,0,0,1)
		//X_AD A 0 A_SpawnItemEx("ChillFloorSpikeSpawner_W",0,0,0,10,0,0,30,1)
		//X_AD A 0 A_SpawnItemEx("ChillFloorSpikeSpawner_W",0,0,0,10,0,0,-30,1)
		stop
		
		Ceiling:
		X_AD A 0
		X_AD A 0 A_SpawnItemEx("ChillCeilingSpike",0,0,0,0,0,0,0,1)
		X_AD A 0 A_SpawnItemEx("ChillCeilingSpikeSpawner_W",0,0,0,10,0,0,0,1)
		X_AD A 0 A_SpawnItemEx("ChillCeilingSpikeSpawner_W",0,0,0,10,0,0,120,1)
		X_AD A 0 A_SpawnItemEx("ChillCeilingSpikeSpawner_W",0,0,0,10,0,0,240,1)
		stop
		}
}


actor ChillmanSpikeShot2B : ChillmanSpikeShot2{translation "192:192=205:205","198:198=74:74"}
actor ChillmanSpikeShot2R : ChillmanSpikeShot2{translation "192:192=171:171","198:198=41:41"}
actor ChillmanSpikeShot2O : ChillmanSpikeShot2{translation "192:192=104:104","198:198=128:128"}
actor ChillmanSpikeShot2P : ChillmanSpikeShot2{translation "192:192=229:229","198:198=232:232"}

actor ChillmanSpikeShotS : ChillmanSpikeShot
{
Obituary "$OB_CHILLSSALVO"
+NOGRAVITY
//damage (8)
damagetype "ChillM_Salvo"
states
{
		Spawn:
		TNT1 AA 0
		TNT1 A 0 ACS_NamedExecuteAlways("BULL_Tidifier", 0)
		SpawnL:
		X_AD ABC 2
		loop
}
}

actor ChillmanSpikeShotSB : ChillmanSpikeShotS{translation "192:192=205:205","198:198=74:74"}
actor ChillmanSpikeShotSR : ChillmanSpikeShotS{translation "192:192=171:171","198:198=41:41"}
actor ChillmanSpikeShotSO : ChillmanSpikeShotS{translation "192:192=104:104","198:198=128:128"}
actor ChillmanSpikeShotSP : ChillmanSpikeShotS{translation "192:192=229:229","198:198=232:232"}

actor ChillM_SalvoProtect : PowerProtection
{
Damagefactor "ChillM_Salvo", 0.26
Damagefactor "ChillM_Spike", 0.0
Powerup.duration 15//70
}

actor ChillM_AllSpikeProtect : PowerProtection
{
Damagefactor "ChillM_Spike", 0.56
Powerup.duration 10//70
}

actor ChillFloorSpikeSpawner
{
	PROJECTILE
	+FLOORHUGGER
	+THRUACTORS
	+DONTBLAST
	Radius 6
	Height 6
	ReactionTime 6
	States
	{
		Spawn:
		TNT1 A 0
		TNT1 A 0 ACS_NamedExecuteAlways("BULL_Tidifier", 0)
		TNT1 A 2
		SpawnX:
		TNT1 A 3 A_SpawnItemEx("ChillFloorSpike",0,0,0,0,0,0,0,1)
		TNT1 A 0 A_Countdown
		loop
		Death:
		TNT1 A 0
		stop
	}
}

actor ChillCeilingSpikeSpawner
{
	PROJECTILE
	+CEILINGHUGGER
	+THRUACTORS
	+DONTBLAST
	Radius 6
	Height 6
	ReactionTime 2
	States
	{
		Spawn:
		TNT1 A 0
		TNT1 A 0 ACS_NamedExecuteAlways("BULL_Tidifier", 0)
		TNT1 A 2
		SpawnX:
		TNT1 A 3 A_SpawnItemEx("ChillCeilingSpike",0,0,0,0,0,0,0,1)
		TNT1 A 0 A_Countdown
		loop
		Death:
		TNT1 A 0
		stop
	}
}

actor ChillFloorSpikeSpawner_W : ChillFloorSpikeSpawner{reactiontime 3}
actor ChillCeilingSpikeSpawner_W : ChillCeilingSpikeSpawner{reactiontime 1}

actor ChillFloorSpike
{
	Obituary "$OB_CHILLSPIKEF"
	DamageType "ChillM_Spike"
	PROJECTILE
	+FLOORHUGGER
	+THRUACTORS
	+DONTBLAST
	Scale 2.5
	Radius 6
	Height 8
	Damage (4)
	
	States
	{
		Spawn:
		TNT1 A 0
		TNT1 A 0 ACS_NamedExecuteAlways("BULL_Tidifier", 0)
		SpawnLOOP:
		X_AD M 0 A_PlaySound("weapon/chillspike",1,0.45)
		X_AD MM 2
		X_AD A 0 A_ChangeFlag(THRUACTORS,false)
		X_AD NNNNNNNNNNNN 2
		X_AD A 0 A_ChangeFlag(THRUACTORS,true)
		X_AD A 0 A_PlaySound("weapon/chillbreak",1,0.5)
		X_AD M 0 A_SpawnItemEx("ChillSpikeBreakGFX",0,0,8,random(2,6),0,random(4,5),frandom(0,360),1)
		stop
	}
}

actor ChillFloorSpike2 : ChillFloorSpike
{
states
{
		Spawn:
		TNT1 A 0
		TNT1 A 0 ACS_NamedExecuteAlways("BULL_Tidifier", 0)
		SpawnLOOP:
		X_AD M 0 A_PlaySound("weapon/chillspike",1,0.45)
		X_AD MM 2
		X_AD A 0 A_ChangeFlag(THRUACTORS,false)
		X_AD N 175
		X_AD A 0 A_ChangeFlag(THRUACTORS,true)
		X_AD A 0 A_PlaySound("weapon/chillbreak",1,0.5)
		X_AD M 0 A_SpawnItemEx("ChillSpikeBreakGFX",0,0,8,random(2,6),0,random(4,5),frandom(0,360),1)
		stop
		}
}

const int CHILLMAN_RAD = 20;

actor ChillmanSpikeW : ChillFloorSpike
{
var int user_angle;
damagetype "ChillM_SpikeW"
Obituary "$OB_CHILLSPIKEW"
-FLOORHUGGER
reactiontime 140
+BOUNCEONCEILINGS
damage (28)
Radius 10
Height 32
States
{
Spawn:
TNT1 A 0
TNT1 A 0 A_SetUserVar(user_angle,random(1,120))
X_AD F 0 A_PlaySoundEx("weapon/chillspike","Weapon")
X_AD F 0 A_SpawnItemEx("ChillmanSpikeFX_W1",0,cos(user_angle)*CHILLMAN_RAD,sin(user_angle)*CHILLMAN_RAD,0,0,0,0,1)
X_AD F 0 A_SpawnItemEx("ChillmanSpikeFX_W1",0,cos(user_angle+120)*CHILLMAN_RAD,sin(user_angle+120)*CHILLMAN_RAD,0,0,0,0,1)
X_AD F 0 A_SpawnItemEx("ChillmanSpikeFX_W1",0,cos(user_angle+240)*CHILLMAN_RAD,sin(user_angle+240)*CHILLMAN_RAD,0,0,0,0,1)
X_AD O 1
X_AD F 0 A_SpawnItemEx("ChillmanSpikeFX_W2",0,cos(user_angle)*CHILLMAN_RAD,sin(user_angle)*CHILLMAN_RAD,0,0,0,0,1)
X_AD F 0 A_SpawnItemEx("ChillmanSpikeFX_W2",0,cos(user_angle+120)*CHILLMAN_RAD,sin(user_angle+120)*CHILLMAN_RAD,0,0,0,0,1)
X_AD F 0 A_SpawnItemEx("ChillmanSpikeFX_W2",0,cos(user_angle+240)*CHILLMAN_RAD,sin(user_angle+240)*CHILLMAN_RAD,0,0,0,0,1)
X_AD O 1
X_AD F 0 A_SpawnItemEx("ChillmanSpikeFX_W2",0,cos(user_angle)*CHILLMAN_RAD,sin(user_angle)*CHILLMAN_RAD,0,0,0,0,1)
X_AD F 0 A_SpawnItemEx("ChillmanSpikeFX_W2",0,cos(user_angle+120)*CHILLMAN_RAD,sin(user_angle+120)*CHILLMAN_RAD,0,0,0,0,1)
X_AD F 0 A_SpawnItemEx("ChillmanSpikeFX_W2",0,cos(user_angle+240)*CHILLMAN_RAD,sin(user_angle+240)*CHILLMAN_RAD,0,0,0,0,1)
X_AD O 1
Spawn2:
X_AD F 0 A_PlaySoundEx("weapon/chillspike","Weapon")
X_AD F 0 A_SpawnItemEx("ChillmanSpikeFX_W1",0,cos(user_angle+60)*CHILLMAN_RAD,sin(user_angle+60)*(CHILLMAN_RAD),0,0,0,0,1)
X_AD F 0 A_SpawnItemEx("ChillmanSpikeFX_W1",0,cos(user_angle+180)*CHILLMAN_RAD,sin(user_angle+180)*(CHILLMAN_RAD),0,0,0,0,1)
X_AD F 0 A_SpawnItemEx("ChillmanSpikeFX_W1",0,cos(user_angle+300)*CHILLMAN_RAD,sin(user_angle+300)*(CHILLMAN_RAD),0,0,0,0,1)
X_AD G 0 A_SpawnItemEx("ChillmanSpikeFX_W2",0,cos(user_angle)*CHILLMAN_RAD,sin(user_angle)*CHILLMAN_RAD,0,0,0,0,1)
X_AD G 0 A_SpawnItemEx("ChillmanSpikeFX_W2",0,cos(user_angle+120)*CHILLMAN_RAD,sin(user_angle+120)*CHILLMAN_RAD,0,0,0,0,1)
X_AD G 0 A_SpawnItemEx("ChillmanSpikeFX_W2",0,cos(user_angle+240)*CHILLMAN_RAD,sin(user_angle+240)*CHILLMAN_RAD,0,0,0,0,1)
X_AD P 1 A_ChangeFlag(THRUACTORS,false)
Spawn3:
X_AD F 0 A_SpawnItemEx("ChillmanSpikeFX_W2",0,cos(user_angle)*CHILLMAN_RAD,sin(user_angle)*CHILLMAN_RAD,0,0,0,0,1)
X_AD F 0 A_SpawnItemEx("ChillmanSpikeFX_W2",0,cos(user_angle+60)*CHILLMAN_RAD,sin(user_angle+60)*CHILLMAN_RAD,0,0,0,0,1)
X_AD F 0 A_SpawnItemEx("ChillmanSpikeFX_W2",0,cos(user_angle+120)*CHILLMAN_RAD,sin(user_angle+120)*CHILLMAN_RAD,0,0,0,0,1)
X_AD G 0 A_SpawnItemEx("ChillmanSpikeFX_W2",0,cos(user_angle+180)*CHILLMAN_RAD,sin(user_angle+180)*CHILLMAN_RAD,0,0,0,0,1)
X_AD G 0 A_SpawnItemEx("ChillmanSpikeFX_W2",0,cos(user_angle+240)*CHILLMAN_RAD,sin(user_angle+240)*CHILLMAN_RAD,0,0,0,0,1)
X_AD G 0 A_SpawnItemEx("ChillmanSpikeFX_W2",0,cos(user_angle+300)*CHILLMAN_RAD,sin(user_angle+300)*CHILLMAN_RAD,0,0,0,0,1)
X_AD G 0 A_JumpIfInTargetInventory("ChillParkour",1,2)
X_AD G 0 A_JumpIfCloser(64,"Parkour")
X_AD P 1 A_CountDown
loop
Parkour:
X_AD G 0 A_GiveToTarget("ChillParkour",1)
X_AD P 1 A_CountDown
Goto Spawn3
Death:
TNT1 A 0 A_PlaySound("weapon/chillbreak",1,0.5)
Goto XDeath
XDeath:
TNT1 A 0 A_SpawnItemEx("ChillSpikeBreakGFX",0,0,28,-random(6,12),0,random(2,6),random(-6,6),1)
TNT1 A 0 A_SpawnItemEx("ChillSpikeBreakGFX",0,cos(user_angle)*CHILLMAN_RAD,sin(user_angle)*CHILLMAN_RAD+28,-random(6,12),0,random(2,6),random(-6, 6),1)
TNT1 A 0 A_SpawnItemEx("ChillSpikeBreakGFX",0,cos(user_angle+60)*CHILLMAN_RAD,sin(user_angle+60)*CHILLMAN_RAD+28,-random(6,12),0,random(2,6),random(-6, 6),1)
TNT1 A 0 A_SpawnItemEx("ChillSpikeBreakGFX",0,cos(user_angle+120)*CHILLMAN_RAD,sin(user_angle+120)*CHILLMAN_RAD+28,-random(6,12),0,random(2,6),random(-6, 6),1)
TNT1 A 0 A_SpawnItemEx("ChillSpikeBreakGFX",0,cos(user_angle+180)*CHILLMAN_RAD,sin(user_angle+180)*CHILLMAN_RAD+28,-random(6,12),0,random(2,6),random(-6, 6),1)
TNT1 A 0 A_SpawnItemEx("ChillSpikeBreakGFX",0,cos(user_angle+240)*CHILLMAN_RAD,sin(user_angle+240)*CHILLMAN_RAD+28,-random(6,12),0,random(2,6),random(-6, 6),1)
TNT1 A 0 A_SpawnItemEx("ChillSpikeBreakGFX",0,cos(user_angle+300)*CHILLMAN_RAD,sin(user_angle+300)*CHILLMAN_RAD+28,-random(6,12),0,random(2,6),random(-6, 6),1)
TNT1 A 1
stop
}
}

actor ChillmanSpikeW_W : ChillmanSpikeW
{
damage (16)
States
{
Spawn:
TNT1 AA 0
TNT1 A 0 A_SetUserVar(user_angle,random(1,120))
X_AD F 0 A_PlaySoundEx("weapon/chillspike","Weapon")
X_AD F 0 A_SpawnItemEx("ChillmanSpikeFX_W1",0,cos(user_angle)*CHILLMAN_RAD,sin(user_angle)*CHILLMAN_RAD,0,0,0,0,1)
X_AD F 0 A_SpawnItemEx("ChillmanSpikeFX_W1",0,cos(user_angle+120)*CHILLMAN_RAD,sin(user_angle+120)*CHILLMAN_RAD,0,0,0,0,1)
X_AD F 0 A_SpawnItemEx("ChillmanSpikeFX_W1",0,cos(user_angle+240)*CHILLMAN_RAD,sin(user_angle+240)*CHILLMAN_RAD,0,0,0,0,1)
X_AD O 1
Spawn2:
X_AD G 0 A_SpawnItemEx("ChillmanSpikeFX_W2",0,cos(user_angle)*CHILLMAN_RAD,sin(user_angle)*CHILLMAN_RAD,0,0,0,0,1)
X_AD G 0 A_SpawnItemEx("ChillmanSpikeFX_W2",0,cos(user_angle+120)*CHILLMAN_RAD,sin(user_angle+120)*CHILLMAN_RAD,0,0,0,0,1)
X_AD G 0 A_SpawnItemEx("ChillmanSpikeFX_W2",0,cos(user_angle+240)*CHILLMAN_RAD,sin(user_angle+240)*CHILLMAN_RAD,0,0,0,0,1)
X_AD G 0 A_JumpIfInTargetInventory("ChillParkour",1,2)
X_AD G 0 A_JumpIfCloser(64,"Parkour")
X_AD P 0 A_ChangeFlag(THRUACTORS,false)
X_AD P 1 A_CountDown
loop
Parkour:
X_AD G 0 A_GiveToTarget("ChillParkour",1)
X_AD P 1 A_CountDown
Goto Spawn2
XDeath:
TNT1 A 0 A_SpawnItemEx("ChillSpikeBreakGFX",0,0,28,-random(6,12),0,random(2,6),random(-6,6),1)
TNT1 A 0 A_SpawnItemEx("ChillSpikeBreakGFX",0,cos(user_angle)*CHILLMAN_RAD,sin(user_angle)*CHILLMAN_RAD+28,-random(6,12),0,random(2,6),random(-6, 6),1)
TNT1 A 0 A_SpawnItemEx("ChillSpikeBreakGFX",0,cos(user_angle+120)*CHILLMAN_RAD,sin(user_angle+120)*CHILLMAN_RAD+28,-random(6,12),0,random(2,6),random(-6, 6),1)
TNT1 A 0 A_SpawnItemEx("ChillSpikeBreakGFX",0,cos(user_angle+240)*CHILLMAN_RAD,sin(user_angle+240)*CHILLMAN_RAD+28,-random(6,12),0,random(2,6),random(-6, 6),1)
TNT1 A 1
stop
}
}

actor ChillmanSpikeFX_W1 : BasicClientSide
{
States
{
Spawn:
X_AD O 3
stop
}
}
actor ChillmanSpikeFX_W2 : BasicClientSide
{
States
{
Spawn:
X_AD P 2
stop
}
}

actor ChillCeilingSpike : ChillFloorSpike
{
	Obituary "$OB_CHILLSPIKEC"
	DamageType "ChillM_SpikeC"
	-FLOORHUGGER
	+CEILINGHUGGER
	Radius 8
	Height 12
	Damage (12)
	States
	{
		Spawn:
		TNT1 A 0
		TNT1 A 0 ACS_NamedExecuteAlways("BULL_Tidifier", 0)
		SpawnLOOP:
		X_AD M 0 A_PlaySound("weapon/chillspike",1,0.35)
		X_AD QQ 2
		X_AD Q 0 A_ChangeFlag(THRUACTORS,false)
		X_AD RRRRRRRRRRRRRRR 2
		X_AD R 0 A_ChangeFlag(CEILINGHUGGER,false)
		X_AD R 0 A_ChangeFlag(NOGRAVITY,false)
		X_AD R 1
		wait
		
		Death:
		X_AD A 0 A_PlaySound("weapon/chillbreak",1,0.5)
		X_AD MM 0 A_SpawnItemEx("ChillSpikeBreakGFX",0,0,8,random(2,6),0,random(4,5),frandom(0,360),1)
		TNT1 A 5
		stop
	}
}

actor ChillSpikeBreakGFX : BasicClientside
{
	-NOGRAVITY
	Scale 2.5
	States
	{
		Spawn:
		TNT1 A 0
		TNT1 A 0 ACS_NamedExecuteAlways("BULL_Tidifier", 0)
		TNT1 A 0 A_Jump(256,1,11)
		X_AD KKKKKKKKKK 2 A_ChangeVelocity(0,0,-1.5,CVF_RELATIVE)
		stop
		X_AD LLLLLLLLLL 2 A_ChangeVelocity(0,0,-1.5,CVF_RELATIVE)
		stop
	}
}

actor ChillmanMain_CI : TeamColor_CI
{
states
{
FireX:
TNT1 A 0 A_FireCustomMissile("ChillmanSpikeShot",0,1,8)
goto Done
FireB:
TNT1 A 0 A_FireCustomMissile("ChillmanSpikeShotB",0,1,8)
goto Done
FireR:
TNT1 A 0 A_FireCustomMissile("ChillmanSpikeShotR",0,1,8)
goto Done
FireO:
TNT1 A 0 A_FireCustomMissile("ChillmanSpikeShotO",0,1,8)
goto Done
FireP:
TNT1 A 0 A_FireCustomMissile("ChillmanSpikeShotP",0,1,8)
goto Done
}
}

actor ChillmanMain2_CI : TeamColor_CI
{
states
{
FireX:
TNT1 A 0 A_FireCustomMissile("ChillmanSpikeShot2",0,1,8)
goto Done
FireB:
TNT1 A 0 A_FireCustomMissile("ChillmanSpikeShot2B",0,1,8)
goto Done
FireR:
TNT1 A 0 A_FireCustomMissile("ChillmanSpikeShot2R",0,1,8)
goto Done
FireO:
TNT1 A 0 A_FireCustomMissile("ChillmanSpikeShot2O",0,1,8)
goto Done
FireP:
TNT1 A 0 A_FireCustomMissile("ChillmanSpikeShot2P",0,1,8)
goto Done
}
}

actor ChillSalvo1_CI : TeamColor_CI
{
states
{
FireX:
TNT1 A 0 A_FireCustomMissile("ChillmanSpikeShotS",-90,1,0)
goto Done
FireB:
TNT1 A 0 A_FireCustomMissile("ChillmanSpikeShotSB",-90,1,0)
goto Done
FireR:
TNT1 A 0 A_FireCustomMissile("ChillmanSpikeShotSR",-90,1,0)
goto Done
FireO:
TNT1 A 0 A_FireCustomMissile("ChillmanSpikeShotSO",-90,1,0)
goto Done
FireP:
TNT1 A 0 A_FireCustomMissile("ChillmanSpikeShotSP",-90,1,0)
goto Done
}
}

actor ChillSalvo2_CI : TeamColor_CI
{
states
{
FireX:
TNT1 A 0 A_FireCustomMissile("ChillmanSpikeShotS",-45,1,0)
goto Done
FireB:
TNT1 A 0 A_FireCustomMissile("ChillmanSpikeShotSB",-45,1,0)
goto Done
FireR:
TNT1 A 0 A_FireCustomMissile("ChillmanSpikeShotSR",-45,1,0)
goto Done
FireO:
TNT1 A 0 A_FireCustomMissile("ChillmanSpikeShotSO",-45,1,0)
goto Done
FireP:
TNT1 A 0 A_FireCustomMissile("ChillmanSpikeShotSP",-45,1,0)
goto Done
}
}

actor ChillSalvo0_CI : TeamColor_CI
{
states
{
FireX:
TNT1 A 0 A_FireCustomMissile("ChillmanSpikeShotS",0,0,0)
goto Done
FireB:
TNT1 A 0 A_FireCustomMissile("ChillmanSpikeShotSB",0,0,0)
goto Done
FireR:
TNT1 A 0 A_FireCustomMissile("ChillmanSpikeShotSR",0,0,0)
goto Done
FireO:
TNT1 A 0 A_FireCustomMissile("ChillmanSpikeShotSO",0,0,0)
goto Done
FireP:
TNT1 A 0 A_FireCustomMissile("ChillmanSpikeShotSP",0,0,0)
goto Done
}
}

actor ChillSalvo3_CI : TeamColor_CI
{
states
{
FireX:
TNT1 A 0 A_FireCustomMissile("ChillmanSpikeShotS",45,1,0)
goto Done
FireB:
TNT1 A 0 A_FireCustomMissile("ChillmanSpikeShotSB",45,1,0)
goto Done
FireR:
TNT1 A 0 A_FireCustomMissile("ChillmanSpikeShotSR",45,1,0)
goto Done
FireO:
TNT1 A 0 A_FireCustomMissile("ChillmanSpikeShotSO",45,1,0)
goto Done
FireP:
TNT1 A 0 A_FireCustomMissile("ChillmanSpikeShotSP",45,1,0)
goto Done
}
}

actor ChillSalvo4_CI : TeamColor_CI
{
states
{
FireX:
TNT1 A 0 A_FireCustomMissile("ChillmanSpikeShotS",90,1,0)
goto Done
FireB:
TNT1 A 0 A_FireCustomMissile("ChillmanSpikeShotSB",90,1,0)
goto Done
FireR:
TNT1 A 0 A_FireCustomMissile("ChillmanSpikeShotSR",90,1,0)
goto Done
FireO:
TNT1 A 0 A_FireCustomMissile("ChillmanSpikeShotSO",90,1,0)
goto Done
FireP:
TNT1 A 0 A_FireCustomMissile("ChillmanSpikeShotSP",-12.86,1,0)
goto Done
}
}

actor ChillSalvoFX_P : CustomInventory
{
states
{
Pickup:
TNT1 AA 0
TNT1 A 0
TNT1 A 0 A_SpawnItemEx("ChillSalvoFX0",64,0,28,0,0,0,0,1)
TNT1 A 0 A_JumpIfInventory("ChillSpikeBossAmmo",40,"Salvo4")
TNT1 A 0 A_JumpIfInventory("ChillSpikeBossAmmo",30,"Salvo3")
TNT1 A 0 A_JumpIfInventory("ChillSpikeBossAmmo",20,"Salvo2")
TNT1 A 0 A_JumpIfInventory("ChillSpikeBossAmmo",10,"Salvo1")
stop
Salvo4:
TNT1 A 0 A_SpawnItemEx("ChillSalvoFX4",64,0,28,0,0,0,-90,1)
Salvo3:
TNT1 A 0 A_SpawnItemEx("ChillSalvoFX3",64,0,28,0,0,0,-45,1)
Salvo2:
TNT1 A 0 A_SpawnItemEx("ChillSalvoFX2",64,0,28,0,0,0,45,1)
Salvo1:
TNT1 A 0 A_SpawnItemEx("ChillSalvoFX1",64,0,28,0,0,0,90,1)
stop
}
}

actor ChillSalvo_H : BasicHelper
{
states
{
Spawn:
TNT1 AA 0
TNT1 A 0
TNT1 A 0 A_GiveToTarget("ChillSalvoBreak",1)
TNT1 A 0 A_JumpIfInTargetInventory("ChillSpikeBossAmmo",40,"Salvo4")
TNT1 A 0 A_JumpIfInTargetInventory("ChillSpikeBossAmmo",30,"Salvo3")
TNT1 A 0 A_JumpIfInTargetInventory("ChillSpikeBossAmmo",20,"Salvo2X")
TNT1 A 0 A_JumpIfInTargetInventory("ChillSpikeBossAmmo",10,"Salvo1X")
goto Salvo0
Salvo4:
TNT1 A 0 A_GiveToTarget("ChillSalvo4_CI",1)
TNT1 A 0 A_PlaySoundEx("weapon/chillshot","Weapon")
TNT1 A 1 A_GiveToTarget("ChillSalvoSlow",1)
Salvo3:
TNT1 A 0 A_GiveToTarget("ChillSalvo3_CI",1)
TNT1 A 0 A_PlaySoundEx("weapon/chillshot","Weapon")
TNT1 A 1 A_GiveToTarget("ChillSalvoSlow",1)
Salvo0:
TNT1 A 0 A_GiveToTarget("ChillSalvo0_CI",1)
TNT1 A 0 A_PlaySoundEx("weapon/chillshot","Weapon")
TNT1 A 1 A_GiveToTarget("ChillSalvoSlow",1)
TNT1 A 0 A_JumpIfInTargetInventory("ChillSpikeBossAmmo",20,"Salvo2")
TNT1 A 0 A_JumpIfInTargetInventory("ChillSpikeBossAmmo",10,"Salvo1")
stop
Salvo2:
TNT1 A 0 A_GiveToTarget("ChillSalvo2_CI",1)
TNT1 A 0 A_PlaySoundEx("weapon/chillshot","Weapon")
TNT1 A 1 A_GiveToTarget("ChillSalvoSlow",1)
Salvo1:
TNT1 A 0 A_GiveToTarget("ChillSalvo1_CI",1)
TNT1 A 0 A_PlaySoundEx("weapon/chillshot","Weapon")
TNT1 A 1 A_GiveToTarget("ChillSalvoSlow",1)
stop
Salvo2X:
TNT1 A 0 A_GiveToTarget("ChillSalvo0_CI",1)
TNT1 A 0 A_PlaySoundEx("weapon/chillshot","Weapon")
TNT1 A 1 A_GiveToTarget("ChillSalvoSlow",1)
TNT1 A 0 A_GiveToTarget("ChillSalvo2_CI",1)
TNT1 A 0 A_PlaySoundEx("weapon/chillshot","Weapon")
TNT1 A 1 A_GiveToTarget("ChillSalvoSlow",1)
TNT1 A 0 A_GiveToTarget("ChillSalvo1_CI",1)
TNT1 A 0 A_PlaySoundEx("weapon/chillshot","Weapon")
TNT1 A 1 A_GiveToTarget("ChillSalvoSlow",1)
stop
Salvo1X:
TNT1 A 0 A_GiveToTarget("ChillSalvo0_CI",1)
TNT1 A 0 A_PlaySoundEx("weapon/chillshot","Weapon")
TNT1 A 1 A_GiveToTarget("ChillSalvoSlow",1)
TNT1 A 0 A_GiveToTarget("ChillSalvo1_CI",1)
TNT1 A 0 A_PlaySoundEx("weapon/chillshot","Weapon")
TNT1 A 1 A_GiveToTarget("ChillSalvoSlow",1)
stop
}
}

actor ChillSalvoFX1
{
PROJECTILE
+NOINTERACTION
+THRUACTORS
+DONTBLAST
+DONTREFLECT

+NOTIMEFREEZE
RenderStyle "translucent"
Alpha 0.7
Meleerange -90


Height 2
Radius 2
Scale 2.5
States
{
Spawn:
TNT1 A 0
TNT1 A 0
goto SpawnL
SpawnL:
CHIB K 0 A_JumpIf(ACS_ExecuteWithResult(C_CHECK_TARGET_OOC)==0,"Death")
CHIB K 0 A_JumpIfInTargetInventory("ChillSalvoBreak",1,"Death")
CHIB K 1 A_Warp(AAPTR_TARGET,64,0,28,Meleerange,24)
CHIB K 0 A_JumpIf(ACS_ExecuteWithResult(C_CHECK_TARGET_OOC)==0,"Death")
CHIB K 0 A_JumpIfInTargetInventory("ChillSalvoBreak",1,"Death")
CHIB K 1 A_Warp(AAPTR_TARGET,64,0,28,Meleerange,24)
CHIB K 0 A_JumpIf(ACS_ExecuteWithResult(C_CHECK_TARGET_OOC)==0,"Death")
CHIB K 0 A_JumpIfInTargetInventory("ChillSalvoBreak",1,"Death")
CHIB K 1 A_Warp(AAPTR_TARGET,64,0,28,Meleerange,24)

CHIB L 0 A_JumpIf(ACS_ExecuteWithResult(C_CHECK_TARGET_OOC)==0,"Death")
CHIB L 0 A_JumpIfInTargetInventory("ChillSalvoBreak",1,"Death")
CHIB L 1 A_Warp(AAPTR_TARGET,64,0,28,Meleerange,24)
CHIB L 0 A_JumpIf(ACS_ExecuteWithResult(C_CHECK_TARGET_OOC)==0,"Death")
CHIB L 0 A_JumpIfInTargetInventory("ChillSalvoBreak",1,"Death")
CHIB L 1 A_Warp(AAPTR_TARGET,64,0,28,Meleerange,24)
CHIB L 0 A_JumpIf(ACS_ExecuteWithResult(C_CHECK_TARGET_OOC)==0,"Death")
CHIB L 0 A_JumpIfInTargetInventory("ChillSalvoBreak",1,"Death")
CHIB L 1 A_Warp(AAPTR_TARGET,64,0,28,Meleerange,24)

CHIB M 0 A_JumpIf(ACS_ExecuteWithResult(C_CHECK_TARGET_OOC)==0,"Death")
CHIB M 0 A_JumpIfInTargetInventory("ChillSalvoBreak",1,"Death")
CHIB M 1 A_Warp(AAPTR_TARGET,64,0,28,Meleerange,24)
CHIB M 0 A_JumpIf(ACS_ExecuteWithResult(C_CHECK_TARGET_OOC)==0,"Death")
CHIB M 0 A_JumpIfInTargetInventory("ChillSalvoBreak",1,"Death")
CHIB M 1 A_Warp(AAPTR_TARGET,64,0,28,Meleerange,24)
CHIB M 0 A_JumpIf(ACS_ExecuteWithResult(C_CHECK_TARGET_OOC)==0,"Death")
CHIB M 0 A_JumpIfInTargetInventory("ChillSalvoBreak",1,"Death")
CHIB M 1 A_Warp(AAPTR_TARGET,64,0,28,Meleerange,24)
Loop

Death:
TNT1 A 0
TNT1 A 1
stop
}
}

actor ChillSalvoFX2 : ChillSalvoFX1{Meleerange -45}
actor ChillSalvoFX3 : ChillSalvoFX1{Meleerange 45}
actor ChillSalvoFX4 : ChillSalvoFX1{Meleerange 90}
actor ChillSalvoFX0 : ChillSalvoFX1{Meleerange 0}

actor XChillIcePuddle : BasicHelper
{

//+FLOORHUGGER
Reactiontime 72
RenderStyle "translucent"
Alpha 0.8
Scale 2.5
states
{
Spawn:
TNT1 A 0
TNT1 A 1
TNT1 A 0
TNT1 A 0
TNT1 A 0 A_PlaySound("weapon/ChillTrail",1,0.1)
goto SpawnL
SpawnL:
Y_AD J 0 A_JumpIf(ACS_ExecuteWithResult(C_CHECK_TARGET_OOC)==0,"Ending")
Y_AD JJ 0
Y_AD J 1
Y_AD J 0 A_Countdown
Loop
Ending:
TNT1 A 2
Stop

Death:
TNT1 A 0
TNT1 AA 0 A_SpawnItemEx("ChillSpikeBreakGFX",0,0,8,random(2,6),0,random(4,5),frandom(0,360),1)
TNT1 A 2 A_PlaySound("weapon/ChillTrailEnd",1,0.1)
stop
}
}

// [BG] Chillman fixes

actor ChillSlide_H : BasicHelper
{
States
{
Spawn:
TNT1 AA 0
TNT1 A 0 A_JumpIfInTargetInventory("ChillSlideReset",1,"Death")
TNT1 A 0 A_JumpIfInTargetInventory("ChillSTOPFUCKINGSLIDING",1,"Death")
TNT1 A 0 A_JumpIfInTargetInventory("ChillSpikeBossAmmo",1,"Icy")
TNT1 A 0 A_PlaySoundEx("weapon/ChillSkateEnd","SoundSlot7")
stop
Icy:
TNT1 A 1 A_TakeFromTarget("ChillSlideBossAmmo",1)
TNT1 A 0 A_GiveToTarget("ChillCornflakes",1)
TNT1 A 0 A_JumpIfInTargetInventory("ChillSlideBossAmmo",1,"Spawn")
stop
Death:
TNT1 A 0 A_TakeFromTarget("ChillCornflakes",1)
stop
}
}

actor ChillSalvoSlow : CustomInventory
{
States
{
Pickup:
Y_AX J 0 A_Stop//A_ScaleVelocity(0.25)
stop
}
}

actor ChillSlider_P : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_JumpIfInventory("ChillSpikeBossAmmo",1,"IsChillSliding")
goto WarmMilk
IsChillSliding:
Y_AX J 0 A_JumpIfInventory("ChillCornflakes",1,"Icy")
stop
WarmMilk:
TNT1 A 0 A_JumpIfInventory("ChillSpikeBossAmmo",1,"Nothing")//desync fix
IsMilkTooWarm:
X_AD M 0 A_SpawnItemEx("ChillBreakHelper",0,0,0,0,0,0,0,1)
stop
Icy:
TNT1 A 0 A_SpawnItemEx("MrFreezemanWalkFX",random(12,32),0,32+random(-12,12),0,0,0,frandom(0,359),1,96)
TNT1 A 0 A_JumpIf(z-floorz==0,"FloorIce")
goto Skycy
FloorIce:
TNT1 A 0 A_ChangeVelocity((momx)*1.0525,(momy)*1.0525,(momz),CVF_REPLACE)
TNT1 A 0 A_TakeInventory("ChillSlideBossAmmo",1)//doubled ammo consumption while grounded
X_AD M 0 A_SpawnItemEx("XChillIcePuddle",0,0,0,0,0,0,0,1)
stop
Skycy:
TNT1 A 0 
TNT1 A 0 A_ChangeVelocity((momx)*1.0325,(momy)*1.0325,(momz),CVF_REPLACE)
stop
Nothing:
TNT1 A 0 A_GiveInventory("ChillCornflakesWithNoMilk",1)
stop
}
}

actor ChillSlide_P : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_JumpIfInventory("ChillSpikeBossAmmo",1,"ChillSkate")
TNT1 A 0 A_GiveInventory("ChillAmmoStall",1)
ChillSkate:
TNT1 A 0 A_ChangeVelocity(40*cos(pitch),0,20*sin(-pitch),3)
stop
}
}

actor ChillBreakHelper : BasicHelper
{
+NOCLIP
States
{
Spawn:
TNT1 AA 0
TNT1 A 1 A_JumpIfInTargetInventory("ChillCornflakesWithNoMilk",1,"Death")//desync fix
Spawn2:
TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(C_CHECK_TARGET_OOC)==0,"Death")
TNT1 A 0 A_PlaySoundEx("weapon/ChillIceBrk","voice")
TNT1 AAAAAA 0 A_SpawnItemEx("ChillSpikeBreakGFX",0,0,48,random(12,16),0,random(9,11),frandom(0,360),1)
goto Death

Death:
TNT1 A 0 A_GiveToTarget("ChillCornflakesWithNoMilk",1)
stop
}
}

actor SpikesAndChillAmmo : Ammo
{
inventory.amount 1
inventory.maxamount 112
+INVENTORY.IGNORESKILL
}
actor ChillSlideAmmo : Ammo
{
inventory.amount 1
inventory.maxamount 336
+INVENTORY.IGNORESKILL
}

actor ChillHealthFlag : Inventory
{
inventory.amount 1
inventory.maxamount 65
}
actor ChillShield : Powerup
{
Powerup.Duration 5
}
actor ChillShieldCooldown : Inventory
{
inventory.amount 1
inventory.maxamount 140
}

actor ChillParkour : Powerup
{
Powerup.Duration 5
}
actor ChillCornflakesWithNoMilk : Powerup
{
Powerup.Duration 15
}
actor ChillSliding : OnceC {}
actor ChillSlideCount : Inventory
{
inventory.amount 1
inventory.maxamount 10
}
actor ChillSlideSpeed1 : PowerSpeed
{
+POWERSPEED.NOTRAIL
powerup.duration 3
speed 1.88//1.66//1.11//0.76
}
actor ChillSlideSpeed2 : ChillSlideSpeed1
{
speed 1.83//1.55//1.22//0.85
}
actor ChillSlideSpeed3 : ChillSlideSpeed1
{
speed 1.77//1.44//1.33//0.91
}
actor ChillPuddleDelay : Powerup
{
Powerup.Duration 3
}

actor ChillPuddleDelayACS_A : Powerup
{//duration between ally/enemy effects from ice trail
Powerup.Duration 2
}
actor ChillPuddleDelayACS_E : ChillPuddleDelayACS_A{}

actor ChillPuddleAllySpeed : PowerSpeed
{
Speed 1.5
powerup.duration 8
}

actor PowerChillmanSlow1 : PowerSpeed
{
Speed 0.70
powerup.duration 7
}
actor PowerChillmanSlow2 : PowerChillmanSlow1
{
powerup.duration 14
}
actor PowerChillmanSlow3 : PowerChillmanSlow1
{
powerup.duration 21
}

actor Chill_ItemCharge : Inventory
{
inventory.amount 1
inventory.maxamount 35
}
actor Chill_ItemCoolD : Inventory
{
inventory.amount 1
inventory.maxamount 105
}
actor Chill_ItemFlag : OnceC{}

actor ChillmanSuperItem : CustomInventory
{
inventory.amount 1
inventory.maxamount 1
inventory.icon "ChilIcon"
scale 2.0
inventory.pickupmessage "Chill Out."
+INVBAR
states
{
Spawn:
CHIB Z 1
loop
Use:
TNT1 A 0 A_JumpIfInventory("Chill_ItemCoolD",1,"No")
TNT1 A 0 A_JumpIfInventory("ChillShield",1,1)
Goto No
TNT1 A 0 A_GiveInventory("Chill_ItemFlag",1)
Fail
No:
TNT1 A 0 //A_PlaySoundEx("weapon/adapterchargeloop","SountSlot6")
fail
}
}

actor ChillParkourJump_P : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_SpawnItemEx("ChillParkourJump_H")
stop
}
}
actor ChillParkourJump_P2 : CustomInventory
{
States
{
Pickup:
TNT1 A 0 //A_SpawnItemEx("ChillParkourJump_H2",0,0,28,momx,momy,momz,0,9)
TNT1 A 0 A_SpawnItemEx("ChillParkourJump_H2",0,0,28,0,0,0,0,1)
stop
}
}

actor ChillParkourJump_H : BasicHelper
{
var int user_A;
States
{
Spawn:
TNT1 A 0
TNT1 A 2
TNT1 A 4 A_GiveToTarget("ChillParkourJump_P2",1)
stop
}
}

actor ChillParkourJump_H2 : BasicHelper
{
var int user_A;
States
{
Spawn:
TNT1 A 0
TNT1 A 1
TNT1 A 0 A_FaceTarget(0,0)
TNT1 A 2 A_SpawnItemEx("ChillParkourJumpFX",0,0,0,0,0,0,0,513)
stop
}
}



actor ChillParkourJumpFX : BasicClientSide
{
States
{
Spawn:
TNT1 A 0
TNT1 A 0 A_SpawnItemEx("ChillParkourJumpFX1",0,0,0,Cos(pitch)*25,0,-sin(pitch)*25,0,1)
TNT1 A 0 A_SpawnItemEx("ChillParkourJumpFX1",0,0,0,Cos(pitch)*28,0,-sin(pitch)*28,30,1)
TNT1 A 0 A_SpawnItemEx("ChillParkourJumpFX1",0,0,0,Cos(pitch)*28,0,-sin(pitch)*28,-30,1)
TNT1 A 0 A_SpawnItemEx("ChillParkourJumpFX1",0,0,0,Cos(pitch)*27,0,-sin(pitch)*27+13.5,15,1)
TNT1 A 0 A_SpawnItemEx("ChillParkourJumpFX1",0,0,0,Cos(pitch)*30,0,-sin(pitch)*27+13.5,-15,1)
TNT1 A 0 A_SpawnItemEx("ChillParkourJumpFX1",0,0,0,Cos(pitch)*27,0,-sin(pitch)*27-13.5,15,1)
TNT1 A 0 A_SpawnItemEx("ChillParkourJumpFX1",0,0,0,Cos(pitch)*27,0,-sin(pitch)*27-13.5,-15,1)

TNT1 A 0
stop
}
}

actor ChillParkourJumpFX1 : BasicClientSide
{
ReactionTime 5
States
{
Spawn:
TNT1 A 0 A_CountDown
TNT1 AAA 0 A_SpawnItemEx("MrFreezemanWalkFX",frandom(-24,24),frandom(-24,24),frandom(-12,12),frandom(-1,1),frandom(-1,1),frandom(-1,1),0,1)
TNT1 A 1
loop
}
}
