//	Mobility recoded
Actor Chillman : VCBaseClass
{
Player.ScoreIcon "CHILMUGS"
player.startitem "BaseFlagPack", 1
player.startitem "NormalArmor"
player.soundclass "ChillmanC"
player.displayname "Chillman"
player.jumpz 14
Player.ViewHeight 46
player.startitem "ChillSpikeBoss"
player.startitem "Base28Ammo", 28
player.startitem "BaseAltfireAmmo", 112
player.startitem "UltimateAttackItem1", 1
player.startitem "UltSoundWatcherSpawn1"
player.startitem "IsFromMM10"
States
{
Spawn:
CHIM A 0
CHIM B 1 A_JumpIf(z-floorz>0, "Jumping")
CHIM A 1 A_JumpIf(z-floorz>0, "Jumping")
Goto Spawn+2

See:
CHIM BBBBCCCCDDDDEEEE 1 A_JumpIf(z-floorz>0, "Jumping")
Goto Spawn

Jumping:
CHIM J 1 A_JumpIf(z-floorz<=0, "Land")
wait

Land:
CHIM III 1 A_JumpIf(z-floorz>0, "Jumping")
goto Spawn+2

Missile:
CHIM FFFGGGG 1 A_JumpIf(z-floorz>0, "JumpingMissile")
Goto Spawn+1

JumpingMissile:
CHIM KKKKKKK 1 A_JumpIf(z-floorz<=0, "Missile")
goto Jumping

Animation2:
CHIM L 5
CHIM MN 2
CHIM O 10
goto Jumping

Pain.TimeStop:
PLAY A 0 SetPlayerProperty(0,1,4)
PLAY A 0 ACS_Execute(528,0)
CHIM AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 1 A_Stop
PLAY A 0 SetPlayerProperty(0,0,4)
Goto pain+1

ClassPain:
CHIM HHHHHHHHHH 2 A_SpawnItem("PainFX",0,3)
Goto Spawn+1

ClassDeath:
CHIM H 20 ACS_ExecuteAlways(999,0,0)
CHIM H 0 A_PlayerScream
NOFX A 0 A_SpawnItemEx("FakeDeathFXMM9",0,0,32)
NOFX A 1 A_CheckPlayerDone
wait
ClassIceDeath:
CHIM A 35
NOFX A 0 A_SpawnItemEx("FrozenDeathFX",0,0,16)
NOFX A 1 A_CheckPlayerDone
wait
WeaponGetM:
CUTM H 0 A_JumpIfInTargetInventory("ChillSpikeWepM",1,2)
CUTM H 0 A_GiveToTarget("WeaponGetter")
CUTM H 0 A_GiveToTarget("ChillSpikeWepM")
goto ClassDeath
}
}

actor ChillSpikeBoss : VCBaseWeapon
{
	Weapon.AmmoType "Base28Ammo"
	Weapon.AmmoType2 "BaseAltfireAmmo"
	Weapon.ammouse 3
	Obituary "$OB_CHILLMAN1"
	States
	{
		Ready:
		TNT1 A 0
		CHIH A 1 A_WeaponReady(WRF_NOSECONDARY*CallACS("VC_AmmoCheck",3,37)) CHIH A 0 A_JumpIfInventory("UltAttackFlag",1,"UltimateAttack")
		CHIH A 1 A_WeaponReady(WRF_NOSECONDARY*CallACS("VC_AmmoCheck",3,37)) CHIH A 0 A_JumpIfInventory("UltAttackFlag",1,"UltimateAttack")
		CHIH A 0 A_GiveInventory("Base28Ammo",1)
		CHIH A 0 A_GiveInventory("BaseAltfireAmmo",2)
		goto Ready
		
		Deselect:
		TNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Lower
		CHIH A 1 A_Lower
		Loop
		
		Select:
		TNT1 A 0 ACS_ExecuteAlways(991,0,1903)
		TNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Raise
		CHIH A 1 A_Raise
		Loop
		
		Fire:
		CHIH B 0 A_GiveInventory("ChillSpikeHandler")
		CHIH B 0 A_PlaySoundEx("weapon/chillshot","Weapon")
		CHIH B 1 offset(2,34)
		CHIH C 1 offset(6,38)
		CHIH C 1 offset(10,42)
		CHIH C 1 offset(14,46)
		CHIH C 1 offset(10,42)
		CHIH A 1 offset(6,38)
		CHIH A 1 offset(2,34)
		CHIH A 13 A_WeaponReady(14)
		goto Ready
		
		AltFire:
		RATU A 0 A_JumpIfInventory("NoAltfire",1,"Ready")
		CHIH A 0 A_CheckFloor("Altfire.Ground")
		CHIH A 0 A_JumpIf(callACS("core_CheckFooting")== 1 || (abs(z-floorz) < 30 && momz <= 0),"Altfire.Ground")//A_CheckFloor("Altfire.Ground")
		TNT1 A 0 A_Stop
		TNT1 A 0 A_SetGravity(0.0)
		TNT1 A 0 SetPlayerProperty(0,1,0)
		CHIH A 0 ACS_NamedExecuteWithResult("VC_SetState",2)
		CHIH A 1 Offset(2,48)
		CHIH A 1 Offset(2,64)
		CHIH A 1 Offset(2,80)
		CHIH A 1 Offset(2,96)
		CHIH A 1 Offset(2,112)
		CHIH A 0 A_WeaponReady(WRF_NOFIRE)
		TNT1 A 0 A_TakeInventory("BaseAltfireAmmo",37)
		TNT1 A 0 A_SpawnItemEx("ChillAlt1")
		CHIH D 1 A_PlaySoundEx("weapon/chillalt","Weapon")
		TNT1 A 0 A_SpawnItemEx("ChillAlt2")
		CHIH E 1 A_PlaySoundEx("weapon/chillalt","Weapon")
		TNT1 A 0 A_SpawnItemEx("ChillAlt3")
		CHIH F 1 A_PlaySoundEx("weapon/chillalt","Weapon")
		TNT1 A 0 A_SpawnItemEx("ChillAlt4")
		CHIH G 1 A_PlaySoundEx("weapon/chillalt","Weapon")
		TNT1 A 0 A_SpawnItemEx("ChillAlt5")
		CHIH H 1 A_PlaySoundEx("weapon/chillalt","Weapon")
		CHIH I 1
		TNT1 A 4
		CHIH A 1 Offset(2,112)
		CHIH A 1 Offset(2,96)
		TNT1 A 0 A_GiveInventory("ChillAltRelease",1)
		CHIH A 1 Offset(2,80)
		CHIH A 1 Offset(2,64)
		CHIH A 1 Offset(2,48)
		TNT1 A 0 A_GiveInventory("GravityRestore")
		TNT1 A 0 SetPlayerProperty(0,0,0)
		goto Ready
		
		Altfire.Ground:
		CHIH A 0 ACS_NamedExecuteWithResult("VC_SetState",1)
		CHIH A 0 ThrustThingZ(0,20,0,0)
		CHIH A 0 A_Recoil(CallACS("VC_XYMob",-40))
		CHIH A 0 A_PlaySoundEx("weapon/chilljump","Weapon")
		CHIH A 1 Offset(2,40) A_SpawnItemEx("ChillJumpHitbox", 0, 0, 0, momx, momy, momz, 0, SXF_ABSOLUTEMOMENTUM|SXF_NOCHECKPOSITION)
		CHIH A 1 Offset(4,46) A_SpawnItemEx("ChillJumpHitbox", 0, 0, 0, momx, momy, momz, 0, SXF_ABSOLUTEMOMENTUM|SXF_NOCHECKPOSITION)
		CHIH A 1 Offset(6,52) A_SpawnItemEx("ChillJumpHitbox", 0, 0, 0, momx, momy, momz, 0, SXF_ABSOLUTEMOMENTUM|SXF_NOCHECKPOSITION)
		CHIH A 1 Offset(8,58) A_SpawnItemEx("ChillJumpHitbox", 0, 0, 0, momx, momy, momz, 0, SXF_ABSOLUTEMOMENTUM|SXF_NOCHECKPOSITION)
		CHIH A 1 Offset(10,64) A_SpawnItemEx("ChillJumpHitbox", 0, 0, 0, momx, momy, momz, 0, SXF_ABSOLUTEMOMENTUM|SXF_NOCHECKPOSITION)
		CHIH A 1 Offset(12,70) A_SpawnItemEx("ChillJumpHitbox", 0, 0, 0, momx, momy, momz, 0, SXF_ABSOLUTEMOMENTUM|SXF_NOCHECKPOSITION)
		
		Altfire.GroundWait:
		CHIH A 0 A_SpawnItemEx("ChillJumpHitbox", 0, 0, 0, momx, momy, momz, 0, SXF_ABSOLUTEMOMENTUM|SXF_NOCHECKPOSITION)
		CHIH A 1 A_CheckFloor("Altfire.Landing")
		loop
		
		Altfire.Landing:
		CHIH A 0 A_PlaySoundEx("weapon/chillland","Weapon")
		CHIH A 1 Offset(12,78) A_TakeInventory("BaseAltfireAmmo",37)
		CHIH A 1 Offset(12,86)
		CHIH A 1 Offset(12,78)
		CHIH A 1 Offset(12,70)
		CHIH A 1 Offset(10,64)
		CHIH A 1 Offset(8,58)
		CHIH A 1 Offset(6,52)
		CHIH A 1 Offset(4,46)
		CHIH A 1 Offset(2,40)
		goto Ready
		
		UltimateAttack:
		TNT1 A 0 A_GiveInventory("ChillUltCooldown",1)
		TNT1 A 0 A_PlaySoundEx("classes/ultimateactivation","Auto")
		TNT1 A 0 ACS_NamedExecuteAlways("VC_UltimateText",0,90)
		TNT1 A 0 A_JumpIf(z-floorz>0,3)
		TNT1 A 0 ThrustThingZ(0,90,0,0)
		CHIH A 7
		TNT1 A 0 A_Stop
		TNT1 A 0 A_SetGravity(0.0)
		TNT1 A 0 SetPlayerProperty(0,1,0)
		CHIH A 0 ACS_NamedExecuteWithResult("VC_SetState",2)
		CHIH A 1 Offset(2,48)
		CHIH A 1 Offset(2,64)
		CHIH A 1 Offset(2,80)
		CHIH A 1 Offset(2,96)
		CHIH A 1 Offset(2,112)
		CHIH A 0 A_WeaponReady(WRF_NOFIRE)
		TNT1 A 0 A_SpawnItemEx("ChillUltHitbox")
		TNT1 A 0 A_TakeInventory("ShortUltimateAmmo",100)
		TNT1 A 0 A_SpawnItemEx("ChillUlt1")
		CHIH D 1 A_PlaySoundEx("weapon/chillalt","Weapon")
		TNT1 A 0 A_SpawnItemEx("ChillUlt2")
		CHIH E 1 A_PlaySoundEx("weapon/chillalt","Weapon")
		TNT1 A 0 A_SpawnItemEx("ChillUlt3")
		CHIH F 1 A_PlaySoundEx("weapon/chillalt","Weapon")
		TNT1 A 0 A_SpawnItemEx("ChillUlt4")
		CHIH G 1 A_PlaySoundEx("weapon/chillalt","Weapon")
		TNT1 A 0 A_SpawnItemEx("ChillUlt5")
		CHIH H 1 A_PlaySoundEx("weapon/chillalt","Weapon")
		CHIH I 1
		TNT1 A 4
		CHIH A 1 Offset(2,112)
		CHIH A 1 Offset(2,96)
		TNT1 A 0 A_GiveInventory("ChillAltRelease",1)
		CHIH A 1 Offset(2,80)
		CHIH A 1 Offset(2,64)
		CHIH A 1 Offset(2,48)
		TNT1 A 0 A_GiveInventory("GravityRestore")
		TNT1 A 0 SetPlayerProperty(0,0,0)
		BRNH B 0 A_TakeInventory("UltAttackFlag")
		goto Ready
		
		}
		}

actor ChillAltRelease : Powerup
{
Powerup.Duration 7
}

actor ChillManShot
{
+SKYEXPLODE
PROJECTILE
Radius 12
Height 12
Obituary "$OB_CHILLMAN1"
Scale 2.5
damagetype "ChillmanShot"
Damage (14)
Speed 50
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode")
XW_S ABC 2
goto Spawn+2
XDeath:
TNT1 A 0 A_SpawnItemEx("IcePitFreeze")
stop
Death:
TNT1 A 0 A_PlaySoundEx("weapon/chillspike","Body")
TNT1 A 0 A_Stop
TNT1 A 0 A_CheckFloor("Death.Floor")
TNT1 A 0 A_CheckCeiling("Death.Ceiling")
TNT1 A 0 A_SpawnItemEx("ChillManSpikeWall",-2,0,20,0,0,0,180,1)
TNT1 A 0 A_SpawnItemEx("ChillManSpikeWall",-2,0,0,0,0,0,180,1)
TNT1 A 0 A_SpawnItemEx("ChillManSpikeWall",-2,0,-20,0,0,0,180,1)
TNT1 A 2
stop
Death.Floor:
TNT1 A 0 A_SpawnItemEx("ChillManSpikeFloor",-20,0,0,0,0,0,0,1)
TNT1 A 0 A_SpawnItemEx("ChillManSpikeFloor",0,0,0,0,0,0,0,1)
TNT1 A 0 A_SpawnItemEx("ChillManSpikeFloor",20,0,0,0,0,0,0,1)
TNT1 A 2
stop
Death.Ceiling:
TNT1 A 0 A_SpawnItemEx("ChillManSpikeCeiling",-20,0,0,0,0,0,0,1)
TNT1 A 0 A_SpawnItemEx("ChillManSpikeCeiling",0,0,0,0,0,0,0,1)
TNT1 A 0 A_SpawnItemEx("ChillManSpikeCeiling",20,0,0,0,0,0,0,1)
TNT1 A 2
stop
}
}

actor ChillManShotUlt : ChillManShot
{
Obituary "$OB_CHILLMAN3"
damage(28)
damagetype "ChillmanFreeze"
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode")
XW_S A 0 A_GiveToTarget("ChillUltCooldown")
XW_S ALBMCN 2 A_SpawnItemEx("ChillSparkleFX", random(-16,16), random(-16,16), random(-16,16), 0, 0, 0, 0, 0, 128) 
goto Spawn+2
XDeath:
TNT1 A 0 A_SpawnItemEx("IcePitFreeze")
stop
Death:
TNT1 A 0 A_SpawnItemEx("IcePitFreeze")
TNT1 A 0 A_PlaySoundEx("weapon/chillspike","Body")
TNT1 A 0 A_Stop
TNT1 A 0 A_CheckFloor("Death.Floor")
TNT1 A 0 A_CheckCeiling("Death.Ceiling")
TNT1 AAAAAAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("ChillManSpikeWallUlt",0,random(-40,40),random(-40,40),0,0,0,180,1)
TNT1 A 2
stop
Death.Floor:
TNT1 AAAAAAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("ChillManSpikeFloorUlt",random(0,80),0,0,0,0,0,random(0,359),1)
TNT1 A 2
stop
Death.Ceiling:
TNT1 AAAAAAAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("ChillManSpikeCeilingUlt",random(0,80),0,0,0,0,0,random(0,359),1)
TNT1 A 2
stop
}
}

actor ChillManShot2 : ChillManShot
{
speed 25
-NOGRAVITY
}

actor ChillManSpikeFloor
{
PROJECTILE
Radius 4
Height 4
Obituary "$OB_CHILLMAN1"
Scale 2.5
+FLOORHUGGER
reactiontime 150
damagetype "Chillman"
Damage (7)
Speed 0
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode")
XW_S D 2 A_SpawnItemEx("IcePitFreeze")
loopit:
XW_S E 1 A_Countdown
loop
Death:
TNT1 A 0 A_PlaySoundEx("weapon/chillbreak","Body")
TNT1 A 0 A_SpawnItemEx("ChillBit1",0,0,0,random(-10,10),0,random(2,13),random(0,359),1)
TNT1 A 0 A_SpawnItemEx("ChillBit2",0,0,0,random(-10,10),0,random(2,13),random(0,359),1)
TNT1 A 2
stop
XDeath:
TNT1 A 0
stop
}
}

actor ChillManSpikeWall : ChillManSpikeFloor
{
-FLOORHUGGER
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode")
XW_S F 2
loopit:
XW_S G 1 A_Countdown
loop
}
}

actor ChillManSpikeCeiling : ChillManSpikeFloor
{
//MONSTER
-FLOORHUGGER
+CEILINGHUGGER
gravity 2.3
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode")
XW_S H 2
loopit:
//XW_S I 0 A_SpawnItemEx("ChillCeilingDetector",0,0,-32,0,0,-20)
XW_S I 1 A_GiveInventory("CutterFlag",1)
XW_S I 0 A_JumpIfInventory("CutterFlag",150,"Falling")
loop
Falling:
XW_S I 0 A_ChangeFlag("CEILINGHUGGER",0)
XW_S I 1 A_ChangeFlag("NOGRAVITY",0)
loop
XDeath:
goto Death
}
}

actor ChillCeilingDetector
{
PROJECTILE
radius 32
height 32
scale 2.5
damage(0)
speed 20
+HITTRACER
+NOTARGETSWITCH
States
{
Spawn:
BASB A 1
loop
Death:
TNT1 A 0
stop
Crash:
XDeath:
TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("cbm_istracerenemy")==1,"GiveSuplex")
stop
GiveSuplex:
NAPA EFGHIJKL 1 A_GiveToTarget("CutterFlag",999)
stop
}
}

actor ChillManSpikeFloorUlt : ChillManSpikeFloor
{
Obituary "$OB_CHILLMAN3"
damage(21)
damagetype "ChillmanSpikeUlt"
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode")
XW_S D 2 A_SpawnItemEx("IcePitFreeze")
loopit:
XW_S O 0 A_GiveToTarget("ChillUltCooldown")
XW_S O 0 A_SpawnItemEx("ChillSparkleFX", random(-16,16), random(-16,16), random(0,8), 0, 0, 0, 0, 0, 128) 
XW_S OOEE 1 A_Countdown
loop
Death:
TNT1 A 0 A_PlaySoundEx("weapon/chillbreak","Body")
TNT1 A 0 A_SpawnItemEx("ChillBit1U",0,0,0,random(-10,10),0,random(2,13),random(0,359),1)
TNT1 A 0 A_SpawnItemEx("ChillBit2U",0,0,0,random(-10,10),0,random(2,13),random(0,359),1)
TNT1 A 2
stop
}
}

actor ChillManSpikeWallUlt : ChillManSpikeFloorUlt
{
-FLOORHUGGER
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode")
XW_S F 2
loopit:
XW_S P 0 A_GiveToTarget("ChillUltCooldown")
XW_S P 0 A_SpawnItemEx("ChillSparkleFX", random(-16,16), random(-16,16), random(-16,16), 0, 0, 0, 0, 0, 128) 
XW_S PPGG 1 A_Countdown
loop
}
}

actor ChillManSpikeCeilingUlt : ChillManSpikeFloorUlt
{
-FLOORHUGGER
+CEILINGHUGGER
gravity 2.3
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode")
XW_S H 2
loopit:
XW_S Q 0 A_GiveToTarget("ChillUltCooldown")
XW_S Q 0 A_SpawnItemEx("ChillSparkleFX", random(-16,16), random(-16,16), random(-16,16), 0, 0, 0, 0, 0, 128) 
XW_S QQII 1 A_GiveInventory("CutterFlag",1)
XW_S I 0 A_JumpIfInventory("CutterFlag",150,"Falling")
loop
Falling:
XW_S I 0 A_GiveToTarget("ChillUltCooldown")
XW_S I 0 A_SpawnItemEx("ChillSparkleFX", random(-16,16), random(-16,16), random(-16,16), 0, 0, 0, 0, 0, 128) 
XW_S I 0 A_ChangeFlag("CEILINGHUGGER",0)
XW_S QQII 1 A_ChangeFlag("NOGRAVITY",0)
loop
XDeath:
goto Death
}
}

actor ChillBit1 : BasicClientSide
{
reactiontime 100
gravity 2.0
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode")
XW_S J 1 ThrustThingZ(0,7,1,1)
XW_S J 0 A_Countdown
goto Spawn+2
}
}

actor ChillBit2 : ChillBit1
{
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode")
XW_S K 1 ThrustThingZ(0,7,1,1)
XW_S K 0 A_Countdown
goto Spawn+2
}
}

actor ChillBit1U : ChillBit1
{
reactiontime 25
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode")
XW_S JJRR 1 ThrustThingZ(0,7,1,1)
XW_S R 0 A_Countdown
goto Spawn+2
}
}

actor ChillBit2U : ChillBit1U
{
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode")
XW_S KKSS 1 ThrustThingZ(0,7,1,1)
XW_S S 0 A_Countdown
goto Spawn+2
}
}

actor ChillSpikeHandler : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_JumpIfInventory("Base28Ammo",3,"Pickup2")
TNT1 A 0 A_FireCustomMissile("ChillManShot2",0,0,0,8)
stop

Pickup2:
TNT1 A 0 A_FireCustomMissile("ChillManShot",0,1,0,8)
stop
}
}

actor ChillJumpHitbox
{
species "DustManType"
+THRUSPECIES
Obituary "$OB_CHILLMAN2"
PROJECTILE
+NOEXPLODEFLOOR
Radius 32
Height 32
scale 2.5
speed 0
damage (18)
Damagetype "ChillmanJump"
States
{
Spawn:
TNT1 A 2
stop
}
}

actor ChillmanJumpProtect : PowerProtection
{
	powerup.duration 25
	DamageFactor "ChillmanJump", 0.0
}

actor ChillUltCooldown : UltBuildCooldownGiver
{
Powerup.Duration 70
}

actor ChillAlt1
{
meleerange 60
scale 2.5
PROJECTILE
+NOINTERACTION
+NOCLIP
damage(0)
radius 5
height 5
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileFXCode",1)
TNT1 A 1
loopit:
CSVO A 1 A_Warp(AAPTR_TARGET,60,0,40,meleerange,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
CSVO A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0)==0,"Death")
CSVO A 0 A_JumpIfInTargetInventory("ChillAltRelease",1,"Finish")
CSVO B 1 A_Warp(AAPTR_TARGET,60,0,40,meleerange,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
CSVO B 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0)==0,"Death")
CSVO B 0 A_JumpIfInTargetInventory("ChillAltRelease",1,"Finish")
CSVO C 1 A_Warp(AAPTR_TARGET,60,0,40,meleerange,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
CSVO C 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0)==0,"Death")
CSVO C 0 A_JumpIfInTargetInventory("ChillAltRelease",1,"Finish")
loop
Death:
TNT1 A 0
stop
Finish:
TNT1 A 0 A_GiveToTarget("ChillAltHandler1")
stop
}
}

actor ChillAlt2 : ChillAlt1
{
meleerange 30
States
{
Finish:
TNT1 A 0 A_GiveToTarget("ChillAltHandler2")
stop
}
}

actor ChillAlt3 : ChillAlt1
{
meleerange 360
States
{
Finish:
TNT1 A 0 A_GiveToTarget("ChillAltHandler3")
stop
}
}

actor ChillAlt4 : ChillAlt1
{
meleerange 330
States
{
Finish:
TNT1 A 0 A_GiveToTarget("ChillAltHandler4")
stop
}
}

actor ChillAlt5 : ChillAlt1
{
meleerange 300
States
{
Finish:
TNT1 A 0 A_GiveToTarget("ChillAltHandler5")
stop
}
}

actor ChillUlt1
{
meleerange 60
scale 2.5
PROJECTILE
+NOINTERACTION
+NOCLIP
damage(0)
radius 5
height 5
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileFXCode",1)
TNT1 A 1
loopit:
CSVO A 1 A_Warp(AAPTR_TARGET,60,0,40,meleerange,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
CSVO A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0)==0,"Death")
CSVO A 0 A_JumpIfInTargetInventory("ChillAltRelease",1,"Finish")
CSVO D 1 A_Warp(AAPTR_TARGET,60,0,40,meleerange,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
CSVO D 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0)==0,"Death")
CSVO D 0 A_JumpIfInTargetInventory("ChillAltRelease",1,"Finish")
CSVO C 1 A_Warp(AAPTR_TARGET,60,0,40,meleerange,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
CSVO C 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0)==0,"Death")
CSVO C 0 A_JumpIfInTargetInventory("ChillAltRelease",1,"Finish")
CSVO E 1 A_Warp(AAPTR_TARGET,60,0,40,meleerange,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
CSVO E 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0)==0,"Death")
CSVO E 0 A_JumpIfInTargetInventory("ChillAltRelease",1,"Finish")
CSVO B 1 A_Warp(AAPTR_TARGET,60,0,40,meleerange,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
CSVO B 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0)==0,"Death")
CSVO B 0 A_JumpIfInTargetInventory("ChillAltRelease",1,"Finish")
CSVO F 1 A_Warp(AAPTR_TARGET,60,0,40,meleerange,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
CSVO F 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0)==0,"Death")
CSVO F 0 A_JumpIfInTargetInventory("ChillAltRelease",1,"Finish")
loop
Death:
TNT1 A 0
stop
Finish:
TNT1 A 0 A_GiveToTarget("ChillUltHandler1")
stop
}
}

actor ChillUlt2 : ChillUlt1
{
meleerange 30
States
{
Finish:
TNT1 A 0 A_GiveToTarget("ChillUltHandler2")
stop
}
}

actor ChillUlt3 : ChillUlt1
{
meleerange 360
States
{
Finish:
TNT1 A 0 A_GiveToTarget("ChillUltHandler3")
stop
}
}

actor ChillUlt4 : ChillUlt1
{
meleerange 330
States
{
Finish:
TNT1 A 0 A_GiveToTarget("ChillUltHandler4")
stop
}
}

actor ChillUlt5 : ChillUlt1
{
meleerange 300
States
{
Finish:
TNT1 A 0 A_GiveToTarget("ChillUltHandler5")
stop
}
}

actor ChillAltHandler1 : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_FireCustomMissile("ChillManShot",-40,0,0,8)
stop
}
}

actor ChillAltHandler2 : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_FireCustomMissile("ChillManShot",-20,0,0,8)
stop
}
}

actor ChillAltHandler3 : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_FireCustomMissile("ChillManShot",0,0,0,8)
stop
}
}

actor ChillAltHandler4 : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_FireCustomMissile("ChillManShot",20,0,0,8)
stop
}
}

actor ChillAltHandler5 : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_FireCustomMissile("ChillManShot",40,0,0,8)
stop
}
}

actor ChillUltHandler1 : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_FireCustomMissile("ChillManShotUlt",-40,0,0,8)
stop
}
}

actor ChillUltHandler2 : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_FireCustomMissile("ChillManShotUlt",-20,0,0,8)
stop
}
}

actor ChillUltHandler3 : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_FireCustomMissile("ChillManShotUlt",0,0,0,8)
stop
}
}

actor ChillUltHandler4 : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_FireCustomMissile("ChillManShotUlt",20,0,0,8)
stop
}
}

actor ChillUltHandler5 : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_FireCustomMissile("ChillManShotUlt",40,0,0,8)
stop
}
}

actor ChillFrozenWatcher
{
Height 0
Radius 0
+NOINTERACTION
-SOLID
+NOTARGETSWITCH
+NOGRAVITY
+MISSILE
ReactionTime 140
States
{
Spawn:
TNT1 A 0
TNT1 A 0 A_GiveToTarget("MovementFrozen3",1)
TNT1 A 0 A_GiveToTarget("ChillVision",1)
TNT1 A 1 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0)==0,"Death")
TNT1 A 0 A_GiveToTarget("MovementFrozen3",1)
TNT1 A 0 A_GiveToTarget("ChillVision",1)
TNT1 A 0 A_Countdown
loop
Death:
TNT1 A 0 A_TakeFromTarget("ChillUltFlag",999)
TNT1 A 0 A_TakeFromTarget("ChillColdCount",5)
TNT1 A 0 A_TakeFromTarget("ChillVision",999)
TNT1 A 0 A_GiveToTarget("MovementReturnFailsafe",1)
stop
}
}

actor ChillAltDoubleDamage : PowerProtection
{
	powerup.duration 140
	DamageFactor "ChillmanJump", 1.5
}

Actor ChillVision : PowerUp
{
	Powerup.Duration 9999
	//				  R    R    G    G    B    B
	Powerup.Colormap 0.3, 0.7, 0.7, 0.9, 1.0, 1.1
}

actor ChillDeathFX : BasicClientSide
{
reactiontime 100
gravity 2.0
States
{
Spawn:
TNT1 A 0
TNT1 A 0 A_Jump(256,"S_1","S_2","S_3")
S_1:
CSVO G 1 ThrustThingZ(0,7,1,1)
CSVO G 0 A_Countdown
loop
S_2:
CSVO H 1 ThrustThingZ(0,7,1,1)
CSVO H 0 A_Countdown
loop
S_3:
CSVO I 1 ThrustThingZ(0,7,1,1)
CSVO I 0 A_Countdown
loop
}
}

actor ChillUltFlag : Inventory
{
inventory.amount 1
inventory.maxamount 1
}

actor ChillSparkleFX : BasicClientSide
{
renderstyle add
alpha 0.75
states
{
Spawn:
FLAS ABC 3
stop
}
}

actor ChillDebuffWatcher
{
Height 0
Radius 0
+NOINTERACTION
-SOLID
+NOGRAVITY
+MISSILE
States
{
Spawn:
TNT1 A 0
TNT1 A 1 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists")==0,"Death")
TNT1 A 0 A_JumpIfInTargetInventory("ChillColdCount",2,"Spawn2")
TNT1 A 0 A_JumpIfInTargetInventory("ChillDebuffTimer",1,"Spawn")
TNT1 A 1
Death:
TNT1 A 0 A_TakeFromTarget("ChillVision")
TNT1 A 0 A_TakeFromTarget("ChillColdCount",999)
stop
Spawn2:
TNT1 A 0
TNT1 A 1 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists")==0,"Death")
TNT1 A 0 A_JumpIfInTargetInventory("ChillColdCount",3,"Spawn3")
TNT1 A 0 A_JumpIfInTargetInventory("ChillDebuffTimer",1,"Spawn2")
TNT1 A 1
goto Death
Spawn3:
TNT1 A 0
TNT1 A 0 A_GiveToTarget("ChillAirGiver")
TNT1 A 1 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists")==0,"Death")
TNT1 A 0 A_JumpIfInTargetInventory("ChillColdCount",4,"Spawn4")
TNT1 A 0 A_JumpIfInTargetInventory("ChillDebuffTimer",1,"Spawn3")
TNT1 A 1
goto Death
Spawn4:
TNT1 A 0
TNT1 A 0 A_GiveToTarget("ChillAirGiver")
TNT1 A 1 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists")==0,"Death")
TNT1 A 0 A_JumpIfInTargetInventory("ChillColdCount",5,"Spawn5")
TNT1 A 0 A_JumpIfInTargetInventory("ChillDebuffTimer",1,"Spawn4")
TNT1 A 1
goto Death
Spawn5:
TNT1 A 0
TNT1 A 1 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists")==0,"Death")
TNT1 A 0 A_JumpIfInTargetInventory("ChillDebuffTimer",1,"Spawn5")
TNT1 A 1
goto Death
}
}

actor ChillDebuffTimer : Powerup
{
Powerup.Duration 140
}

actor ChillColdCount : Inventory
{
Inventory.Amount 1
Inventory.MaxAmount 5
}

actor ChillAir
{
scale 2.5
+NOINTERACTION
+CLIENTSIDEONLY
+NOCLIP
-FLOORCLIP
renderstyle translucent
alpha 0.9
Radius 3
Height 3
-SOLID
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileFXCode")
FR9F A 0 ThrustThingZ(0,1,1,1)
FR9F AAAAAAAA 1 A_FadeOut(0.04)
FR9F B 0 ThrustThingZ(0,1,1,1)
FR9F BBBBBBBB 1 A_FadeOut(0.04)
FR9F C 0 ThrustThingZ(0,1,1,1)
FR9F CCCCCCCC 1 A_FadeOut(0.04)
stop
}
}

actor ChillAirGiver : CustomInventory
{
states
{
Pickup:
TNT1 A 0 A_SpawnItemEx("ChillAir",random(0,40),0,random(0,8),0,0,random(0,-3),random(0,359))
stop
}
}

actor ChillUltHitbox : BasicExplosion
{
Obituary "$OB_CHILLMAN3"
damagetype "ChillmanFreeze"
States
{
Spawn:
TNT1 A 0
TNT1 A 0 A_SpawnItemEx("IcePitFreeze")
TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("ChillAir",random(40,48),0,random(0,40),random(1,3),0,random(-4,4),random(-90,90))
TNT1 A 1 A_Explode(12,32,0,0,32)
stop
}
}