actor Coldman : SemiHighArmorClass
{
	Player.ScoreIcon "COLDMUGS"
	player.startitem "BaseFlagPack", 1
	player.startitem "SemiHighArmor"
	player.soundclass "coldmanc"
	Player.ViewHeight 54
	player.displayname "Coldman"
	player.startitem "Base28Ammo",28
	player.startitem "IceWallBoss"
	player.startitem "UltimateAttackItem2"
	player.startitem "UltSoundWatcherSpawn2"
	Player.StartItem "ColdEntrance"
	player.startitem "IsFromMMB"
	player.startitem "NoHealthBar"
	States
	{
		Spawn:
		COLM A 0
		COLM B 1 A_JumpIf(z-floorz>0, "Jumping")
		COLM A 1 A_JumpIf(z-floorz>0, "Jumping")
		Goto Spawn+2
		
		See:
		COLM BBBBBCCCCCDDDDDEEEEE 1 A_JumpIf(z-floorz>0, "Jumping")
		Goto Spawn+1
		
		Jumping:
		COLM NNNNNNQQ 1 A_JumpIf(z-floorz<=0, "Land")
		
		Jumping2:
		COLM L 1 A_JumpIf(z-floorz<=0, "Land")
		wait
		
		Land:
		COLM NN 1 A_JumpIf(z-floorz>0, "Jumping")
		goto Spawn+2
		
		Missile:
		COLM FFFFFFFFF 1 A_JumpIf(z-floorz>0, "JumpingMissile")
		
		Missile2:
		COLM GGGGGGG 1 A_JumpIf(z-floorz>0, "JumpingMissile2")
		Goto Spawn+1
		
		JumpingMissile:
		COLM RRRRRRRRR 1 A_JumpIf(z-floorz<=0, "Missile")
		
		JumpingMissile2:
		COLM KKKKKKK 1 A_JumpIf(z-floorz<=0, "Missile2")
		Goto Jumping2
		
		Animation1:
		COLM L 0 A_JumpIf(momz<1,"A1Fall")
		COLM L 1 A_JumpIf(z-floorz<=0, "A1Land")
		loop
		
		A1Fall:
		COLM P 1 A_JumpIf(z-floorz<=0, "A1Land")
		wait
		
		Animation3:
		A1Land:
		COLM M 12
		goto Spawn+1
		
		Animation2:
		COLM N 4
		COLM O 10
		COLM N 4
		goto Spawn+1
		
		Animation4:
		COLM M 43
		COLM G 10
		goto Spawn+1
		
		Animation5:
		COLM FMMMMMM 2
		goto Spawn+1
		
		ClassTimeStop:
		COLM A 0 SetPlayerProperty(0,1,4)
		COLM A 0 ACS_Execute(528,0)
		COLM AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 1 A_Stop
		COLM A 0 SetPlayerProperty(0,0,4)
		Goto pain+1
		ClassPain:
		COLM HHHHHHHHHH 2 A_SpawnItem("PainFX",0,3)
		Goto Spawn+1
		
		Death.LightningBolt:
		Death.LightningBoltGear:
		Death.DynamoShocker:
		TNT1 A 0 A_SpawnItemEx("DeadStruckColdMan",0,0,0,0,0,0,0,SXF_TRANSFERTRANSLATION)
		NOFX A 20 ACS_ExecuteAlways(999,0,0)
		NOFX A 1 A_CheckPlayerDone
		wait
		ClassDeath:
		COLM H 20 ACS_ExecuteAlways(999,0,0)
		COLM H 0 A_PlayerScream
		COLM A 0 A_SpawnItemEx("FakeDeathFXMMB",0,0,32)
		NOFX A 1 A_CheckPlayerDone
		wait
		ClassIceDeath:
		COLM A 35
		NOFX A 0 A_SpawnItemEx("FrozenDeathFX",0,0,16)
		NOFX A 1 A_CheckPlayerDone
		wait
		WeaponGetM:
		CUTM H 0 A_JumpIfInTargetInventory("IceWallWepM",1,2)
		CUTM H 0 A_GiveToTarget("WeaponGetter")
		CUTM H 0 A_GiveToTarget("IceWallWepM")
		goto ClassDeath
	}
}

actor ColdEntrance : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_SpawnItemEx("ColdSpawnField")
TNT1 AAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("ColdAir",random(8,40),0,random(0,60),random(8,11),0,0,random(0,359))
TNT1 AAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("ColdAir",random(8,40),0,random(0,60),random(8,11),0,0,random(0,359))
TNT1 AAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("ColdAir",random(8,40),0,random(0,60),random(8,11),0,0,random(0,359))
stop
}
}

actor ColdSpawnField : BasicClientSide
{
+FLOORHUGGER
renderstyle add
alpha 0.6
States
{
Spawn:
TNT1 A 0
TNT1 A 0 A_PlaySoundEx("weapon/coldfreeze","Body")
TNT1 A 0 A_PlaySoundEx("weapon/icewavespawn","Auto")
COLS IGHIGHIGH 2
COLS IIGGHH 1 A_FadeOut(0.09)
stop
}
}

Actor ColdmanOPPleaseNerf : PowerProtection
{
	Powerup.Duration 0x7FFFFFFF
	DamageFactor "IceWall", 0.0
}

actor DeadStruckColdMan
{
PROJECTILE
+MISSILE
species "DeadBody"
+THRUSPECIES
+THRUACTORS
+NOGRAVITY
-NOEXPLODEFLOOR
+NOINTERACTION
scale 2.5
reactiontime 55
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode")
Spawn2:
TNT1 A 0 A_PlaySoundEx("weapon/dynamorecharger","Weapon")
COLM STSTST 1 A_Countdown
loop

Death:
TNT1 A 0 A_PlaySoundEx("mm7/dead","Auto")
TNT1 A 2 A_SpawnItemEX("CriticalDeathSpawner",0,0,0,0,0,0,0,SXF_TRANSFERTRANSLATION)
Stop
}
}

actor IceWallBoss : VCBaseWeapon
{
weapon.ammotype "Base28Ammo"
Obituary "$OB_COLDMAN1"
weapon.ammouse 4
States
{
Ready:
TNT1 A 0
COLH B 1 ACS_NamedExecuteWithResult("VC_SetState",5)
TNT1 A 0 A_GunFlash
COLH B 1

Ready2:
COLH B 0 A_JumpIfInventory("ColdWallActive",1,"Ready2.M2")
COLH B 1 A_WeaponReady(WRF_NOPRIMARY*CallACS("VC_AmmoCheck",0,4)) COLH A 0 A_JumpIfInventory("UltAttackFlag",1,"UltimateAttack") COLH B 0 A_JumpIf(ACS_NamedExecuteWithResult("VC_CheckBtn",3)*ACS_NamedExecuteWithResult("VC_ColdUser1Check")==3,"User1")
COLH B 1 A_WeaponReady(WRF_NOPRIMARY*CallACS("VC_AmmoCheck",0,4)) COLH A 0 A_JumpIfInventory("UltAttackFlag",1,"UltimateAttack") COLH B 0 A_JumpIf(ACS_NamedExecuteWithResult("VC_CheckBtn",3)*ACS_NamedExecuteWithResult("VC_ColdUser1Check")==3,"User1")
COLH B 1 A_WeaponReady(WRF_NOPRIMARY*CallACS("VC_AmmoCheck",0,4)) COLH A 0 A_JumpIfInventory("UltAttackFlag",1,"UltimateAttack") COLH B 0 A_JumpIf(ACS_NamedExecuteWithResult("VC_CheckBtn",3)*ACS_NamedExecuteWithResult("VC_ColdUser1Check")==3,"User1")
COLH B 0 A_GiveInventory("Base28Ammo",1)
goto Ready2

Ready2.M2:
COLH B 1 A_WeaponReady(WRF_NOPRIMARY) COLH A 0 A_JumpIfInventory("UltAttackFlag",1,"UltimateAttack") COLH B 0 A_JumpIf(ACS_NamedExecuteWithResult("VC_CheckBtn",3)*ACS_NamedExecuteWithResult("VC_ColdUser1Check")==3,"User1")
COLH B 1 A_WeaponReady(WRF_NOPRIMARY) COLH A 0 A_JumpIfInventory("UltAttackFlag",1,"UltimateAttack") COLH B 0 A_JumpIf(ACS_NamedExecuteWithResult("VC_CheckBtn",3)*ACS_NamedExecuteWithResult("VC_ColdUser1Check")==3,"User1")
COLH B 1 A_WeaponReady(WRF_NOPRIMARY) COLH A 0 A_JumpIfInventory("UltAttackFlag",1,"UltimateAttack") COLH B 0 A_JumpIf(ACS_NamedExecuteWithResult("VC_CheckBtn",3)*ACS_NamedExecuteWithResult("VC_ColdUser1Check")==3,"User1")
COLH B 0 A_GiveInventory("Base28Ammo",1)
goto Ready2

Deselect:
TNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Lower
COLH B 1 A_Lower
Loop

Select:
TNT1 A 0 A_GiveInventory("ColdmanOPPleaseNerf",1)
TNT1 A 0 ACS_ExecuteAlways(991,0,2923)
TNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Raise
COLH B 1 A_Raise
Loop

Fire:
TNT1 A 0 A_JumpIfInventory("ColdFreezeHit",1,"Fire1.Next")

Fire1.Next:
COLH B 0 A_JumpIfNoAmmo("NoAmmo")
COLH BG 1
ICWL H 0 A_PlaySoundEx("weapon/kickcharge","Auto")
COLH HI 1 A_SpawnItemEx("ColdWallStart1",56,0,8,momx,momy,momz,0,SXF_ABSOLUTEMOMENTUM)
COLH JK 1 A_SpawnItemEx("ColdWallStart2",56,0,8,momx,momy,momz,0,SXF_ABSOLUTEMOMENTUM)
ICWL H 0 A_PlaySoundEx("weapon/icewallspawn","Auto")
COLH KL 1 A_SpawnItemEx("ColdWallStart3",56,0,8,momx,momy,momz,0,SXF_ABSOLUTEMOMENTUM)
COLH LL 1 A_SpawnItemEx("ColdWallStart4",56,0,8,momx,momy,momz,0,SXF_ABSOLUTEMOMENTUM)
COLH LLLLL 1 A_SpawnItemEx("ColdWallStart4",56,0,8,momx,momy,momz,0,SXF_ABSOLUTEMOMENTUM)

Hold:
TOAD A 0 A_GiveInventory("ToadChargeDamageGive")
COLH L 1 A_SpawnItemEx("ColdWallStart4",56,0,8,momx,momy,momz,0,SXF_ABSOLUTEMOMENTUM)
COLH A 0 A_GiveInventory("ColdManCharge",1)
COLH A 0 A_JumpIfInventory("ColdManCharge",70,2)
COLH A 0 A_Refire
COLH L 0 A_PlaySoundEx("weapon/coldslide","Weapon")
COLH C 0 A_FireCustomMissile("ColdManIceWall",0,1,0,0)
TOAD A 0 A_GiveInventory("ToadChargeDamageTake")
COLH CCDEFEDC 1 A_ClearRefire
COLH B 10 A_TakeInventory("ColdManCharge",99)
Goto Ready2

Altfire:
RATU A 0 A_JumpIfInventory("ColdFreezeCooldown",1,"NoAmmo")
RATU A 0 A_JumpIfInventory("NoAltfire",1,"NoAmmo")
COLH C 0 ACS_NamedExecuteWithResult("VC_SetState",1)
COLH C 0 A_JumpIf(z-floorz>0, "Altfire.AirWait")
COLH C 0 ThrustThingZ(0,35,0,0)
COLH CDEFFFFF 1 ThrustThingZ(0,4,1,1)

Altfire.AirWait:
COLH F 0 A_GiveInventory("ColdWaterHandler")
COLH F 1 A_CheckFloor("Altfire.End")
loop

Altfire.End:
COLH F 0 A_PlaySoundEx("weapon/coldfreeze","Weapon")
COLH F 0 A_FireCustomMissile("ColdFreezeMark",0,0,0,8)
COLH EDC 2
COLH BBBBBBBBBBBBBBBBBBBB 1 A_JumpIfInventory("ColdFreezeHit",1,"Ready2")
goto Ready2

User1:
COLH B 0 A_GiveInventory("ColdTFHandler")
COLH B 1 Offset(0,36)
COLH B 1 Offset(0,44)
COLH B 1 Offset(0,52)
COLH B 4 Offset(0,56)
COLH B 0 A_PlaySoundEx("weapon/pshot","Weapon")
COLH BBBBBBBBBBBBBBBBBBBBBBBB 0 A_SpawnItemEx("ColdAir",20,0,55,random(1,3),0,random(0,2),random(0,359))
COLH B 5 A_SpawnItemEx("ColdManCloud",0,0,55,0,0,30)
COLH B 1 Offset(0,52)
COLH B 1 Offset(0,44)
COLH B 1 Offset(0,36)
goto Ready2

UltimateAttack:
TNT1 A 0 A_TakeInventory("MediumShortUltimateAmmo",200)
TNT1 A 0 ACS_NamedExecuteAlways("VC_UltimateText",0,75)
COLH C 0 ACS_NamedExecuteWithResult("VC_SetState",4)
TNT1 A 0 A_GiveInventory("ColdUltBuildCooldownGiver",1)
TNT1 A 0 A_PlaySoundEx("classes/ultimateactivation","Auto")
TNT1 A 0 A_PlaySoundEx("weapon/iceult","Weapon")
TNT1 A 0 A_SpawnItemEx("ColdManUltWall",24)
TNT1 A 0 A_SpawnItemEx("ColdUltWallSpawner",24,0,0,0,40)
TNT1 A 0 A_SpawnItemEx("ColdUltWallSpawner",24,0,0,0,-40)
TNT1 A 0 A_ChangeFlag("INVULNERABLE",1)
TNT1 A 0 A_GiveInventory("InvProtection",1)
TNT1 A 0 A_Stop
TNT1 A 0 SetPlayerProperty(0,1,0)
COLH B 1 Offset(0,36)
COLH B 1 Offset(0,44)
COLH B 1 Offset(0,52)
COLH B 40 Offset(0,56)
COLH C 0 A_GiveInventory("BaseCustomFlag1")
COLH CDEFEEDDCCBBB 1 A_WeaponReady(WRF_NOFIRE)
COLH B 0 A_TakeInventory("BaseCustomFlag1")
TNT1 A 0 A_ChangeFlag("INVULNERABLE",0)
TNT1 A 0 A_TakeInventory("InvProtection",1)
TNT1 A 0 A_TakeInventory("UltAttackFlag",1)
TNT1 A 0 SetPlayerProperty(0,0,0)
goto Ready2

Flash:
TNT1 A 1 A_TakeInventory("ColdFreezeCooldown",1)
TNT1 A 0 A_JumpIfInventory("IsDead",1,"NoFlash")
loop

NoAmmo:
COLH B 3 A_GiveInventory("Base28Ammo",1)
goto Ready2
}
}

actor ColdWallStart1
{
Radius 40
PROJECTILE
Height 60
health 5000
+NOBLOOD
Damage (0) // damage (1)
species "ColdWallType"
+THRUSPECIES
+SHOOTABLE
-NOBLOCKMAP
+DONTREFLECT
+GHOST
-NOGRAVITY
+NOEXPLODEFLOOR
+RIPPER
+DONTRIP
+NOTARGETSWITCH
+INVULNERABLE
scale 2.5
speed 0
renderstyle "translucent"
alpha 0.4
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode")
COLP F 2
stop
}
}

actor ColdWallStart2 : ColdWallStart1
{
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode")
COLP G 2
stop
}
}

actor ColdWallStart3 : ColdWallStart1
{
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode")
COLP H 2
stop
}
}

actor ColdWallStart4 : ColdWallStart1
{
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode")
COLP I 2
stop
}
}

actor ColdManIceWall
{
Obituary "$OB_COLDMAN1"
+MISSILE
+FORCEXYBILLBOARD
+NOEXPLODEFLOOR
-FLOORCLIP
-NOGRAVITY
+SHOOTABLE
+NOTARGETSWITCH
+BOUNCEONCEILINGS
-RIPPER
+STEPMISSILE
maxstepheight 8
+BOUNCEONWALLS
+BOUNCEONACTORS
+ALLOWBOUNCEONACTORS
bouncecount 4
BounceFactor 0.99
WallBounceFactor 0.99
Height 64
damagetype "Coldman"
species "ColdWallType"
WallBounceSound "weapon/coldslide"
damagefactor "Coldman", 0.0
damagefactor "ColdmanFreeze", 0.0
damagefactor "ColdmanCloud", 0.0
+THRUSPECIES
scale 2.5
damage (24)
radius 16
speed 25
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode")
COLP I 0 A_Recoil(-5)
COLP I 0 A_JumpIfInTargetInventory("ColdManCharge",70,"Scale2")
COLP I 0 A_JumpIfInTargetInventory("ColdManCharge",35,"Scale1")
Spawn2:
COLP I 0 ThrustThingZ(0,0,0,1)
loopit:
COLP I 0 A_JumpIfInTargetInventory("ColdFreezeHit",1,"loopit2")
COLP I 0 A_GiveInventory("CutterFlag",1)
COLP I 0 A_JumpIfInventory("CutterFlag",100,"Death")
COLP I 0 A_GiveToTarget("ColdWallActive_CI",1)
COLP I 0 A_SpawnItemEx("ColdAir", random(-5,5), random(-5,5), random(0,70))
COLP I 0 A_SpawnItemEx("IcePitFreeze")
COLP I 1 A_JumpIf(z-floorz>0, "Air")
loop
Air:
COLP I 0 A_SpawnItemEx("ColdAir", random(-5,5), random(-5,5), random(0,70))
COLP I 0 A_SpawnItemEx("IcePitFreeze")
COLP I 0 A_JumpIfInTargetInventory("ColdFreezeHit",1,"Air2")
COLP I 0 A_GiveToTarget("ColdWallActive_CI",1)
COLP I 1 A_JumpIf(z-floorz<=0, "Spawn2")
loop
//Pinpoint freeze hit states:
Spawn3:
COLP I 0 ThrustThingZ(0,0,0,1)
loopit2:
COLP I 0 A_TakeFromTarget("ColdWallActive",1)
COLP I 0 A_GiveInventory("CutterFlag",1)
COLP I 0 A_JumpIfInventory("CutterFlag",100,"Death")
COLP I 0 A_SpawnItemEx("ColdAir", random(-5,5), random(-5,5), random(0,70))
COLP I 0 A_SpawnItemEx("IcePitFreeze")
COLP I 1 A_JumpIf(z-floorz>0, "Air2")
loop
Air2:
COLP I 0 A_SpawnItemEx("ColdAir", random(-5,5), random(-5,5), random(0,70))
COLP I 0 A_SpawnItemEx("IcePitFreeze")
COLP I 0 A_TakeFromTarget("ColdWallActive",1)
COLP I 1 A_JumpIf(z-floorz<=0, "Spawn3")
loop
Death:
COLP J 0 A_ChangeFlag("NOINTERACTION",1)
COLP J 0 A_Stop
COLP JJJJJJJJJJJJ 0 A_SpawnItemEx("ColdAir",random(-16,16),random(-16,16),random(0,70),random(-5,5),random(-5,5),random(-5,5))
COLP J 0 A_PlaySoundEx("weapon/icewavespawn","Body")
COLP JKL 2 A_SpawnItemEx("IcePitFreeze") 
stop
Scale1:
TNT1 A 0 A_ScaleVelocity(2.0)
goto Spawn2
Scale2:
TNT1 A 0 A_ScaleVelocity(3.0)
goto Spawn2
}
}

actor ColdWallProtect : PowerProtection
{
Powerup.Duration 9
damagefactor "Coldman", 0.0
}

actor ColdWallActive : Powerup
{
Powerup.Duration 8
}

actor ColdCloudActive : Powerup
{
Powerup.Duration 8
}

actor ColdWallActive_CI : CustomInventory
{
States
{
Pickup:
TNT1 A 0
TNT1 A 0 A_JumpIfInventory("VC_CooldownCheat",1,"Pickup2")
TNT1 A 0 A_GiveInventory("ColdCloudActive")
stop
Pickup2:
TNT1 A 0
stop
}
}


actor ColdCloudActive_CI : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_LogInt(CallACS("core_gettarget"))
TNT1 A 0 A_JumpIfInventory("VC_CooldownCheat",1,"Pickup2")
TNT1 A 0 A_GiveInventory("ColdCloudActive")
stop
Pickup2:
TNT1 A 0
stop
}
}

actor ColdFreezeHit : Powerup
{
Powerup.Duration 14
}

actor ColdAir
{
scale 2.5
+NOINTERACTION
+CLIENTSIDEONLY
+NOCLIP
renderstyle translucent
alpha 0.9
Radius 3
Height 3
-SOLID
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileFXCode")
FR8F A 4 ThrustThingZ(0,4,1,0)
FR8F A 0 A_FadeOut(0.3)
FR8F B 4 ThrustThingZ(0,4,1,0)
FR8F A 0 A_FadeOut(0.3)
FR8F C 4 ThrustThingZ(0,4,1,0)
FR8F A 0 A_FadeOut(0.3)
stop
}
}

actor ColdAir2 : ColdAir
{
States
{
Spawn:
FR8F ABC 6
stop
}
}

actor ColdFreezeMark : FastProjectile
{
PROJECTILE
+SPECTRAL
Radius 1
Height 1
scale 2.5
-DONTBLAST
+RIPPER
+SKYEXPLODE
+DONTREFLECT
speed 1500
damage (0)
States
{
Spawn:
TNT1 A 1
Death:
TNT1 A 0 A_SpawnItemEx("ColdFreezeField",-2,0,0,0,0,0)
stop
}
}

actor ColdFreezeField
{
PROJECTILE
species "ColdWallType"
+THRUSPECIES
radius 1
height 1
speed 0
+RIPPER
+FLOORHUGGER
+DONTREFLECT
damagetype "ColdmanFreeze"
damage(0)
Obituary "$OB_COLDMAN2"
scale 2.5
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode")
TNT1 A 1 A_PlaySoundEx("classes/coldfreeze","Body")
COLS IIGGHHIIGGHHIIGGHHIIGGHHIIGGHH 1 A_Explode(10,48,0,0,48)
COLS IIGGHH 1 A_FadeOut(0.15)
stop
}
}

actor MovementFreeze3
{
PROJECTILE
+NOINTERACTION
-DONTBLAST
Scale 2.5
reactiontime 41
states
{
Spawn:
MRFF D 1 A_GiveToTarget("MovementFrozen",1)
MRFF D 0 A_GiveToTarget("IAmFrozen")
MRFF D 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0) == 0, "Death")
MRFF D 0 A_JumpIfInTargetInventory("ReleaseFromFreezes",1,"Death")
MRFF D 0 A_Countdown
loop
Death:
MRFF D 0 A_TakeFromTarget("ColdFreezeFlag",999)
MRFF D 0 A_GiveToTarget("MovementReturnFailsafe",1)
stop
}
}

actor ColdFreezeFlag : Inventory
{
Inventory.Amount 1
Inventory.MaxAmount 1
}

actor ColdFreezeProtect : PowerProtection
{
Powerup.Duration 41
damagefactor "Coldman", 1.5
damagefactor "ColdmanFreeze", 0.0
}

actor ColdManCloud
{
+MISSILE
+SEEKERMISSILE
+LOOKALLAROUND
-EXTREMEDEATH
+CANTSEEK
+NOGRAVITY
+THRUACTORS
+NOTARGETSWITCH
+SHOOTABLE
-QUICKTORETALIATE
height 32
radius 32
scale 2.5
speed 5
damage (8)
mass 99999
painchance 256
+RIPPER
damagetype "ColdmanCloud"
species "ColdWallType"
+THRUSPECIES
+HEXENBOUNCE
-DONTBLAST
-SOLID
+NOBLOOD
+SKYEXPLODE
bloodtype ""
health 40
damagefactor "Coldman", 0.0
damagefactor "ColdmanFreeze", 0.0
damagefactor "ColdmanCloud", 0.0
Obituary "$OB_COLDMAN3"
damagetype "ColdmanCloud"
BounceFactor 1.0
WallBounceFactor 1.0
reactiontime 20
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode")
SUKC AAAAAA 1 A_GiveToTarget("ColdCloudActive",1)
TNT1 A 0 A_PlaySoundEx("weapon/copyvision", "Item")
SUKC A 0 A_GiveToTarget("ColdCloudActive",1)
TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0) == 0, "Death")
SUKC A 1 A_Stop
SUKC A 0 A_GiveToTarget("ColdCloudActive_CI",1)
SUKC A 1 A_Stop
SUKC A 0 A_GiveToTarget("ColdCloudActive_CI",1)
SUKC A 1 A_Stop
SUKC B 0 A_GiveToTarget("ColdCloudActive_CI",1)
SUKC B 1 A_Stop
TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0) == 0, "Death")
SUKC B 0 A_GiveToTarget("ColdCloudActive_CI",1)
SUKC B 1 A_Stop
SUKC B 0 A_GiveToTarget("ColdCloudActive_CI",1)
SUKC B 1 A_Stop
SUKC C 0 A_GiveToTarget("ColdCloudActive_CI",1)
SUKC C 1 A_Stop
TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0) == 0, "Death")
SUKC C 0 A_GiveToTarget("ColdCloudActive_CI",1)
SUKC C 1 A_Stop
SUKC C 0 A_GiveToTarget("ColdCloudActive_CI",1)
SUKC C 1 A_Stop
SUKC C 0 A_ChangeFlag("THRUACTORS",0)
ASTB A 0 A_Recoil(-1)
ASTB A 0 A_ChangeFlag("NOBLOCKMAP",0)
ASTB A 0 A_ChangeFlag("SHOOTABLE",1)
loopit:
SUKC D 0 A_GiveToTarget("ColdCloudActive_CI",1)
SUKC D 1 A_SeekerMissile(2, 10, SMF_LOOK|SMF_PRECISE, 50, 10)
SUKC D 0 A_GiveToTarget("ColdCloudActive_CI",1)
SUKC D 1 A_SeekerMissile(2, 10, SMF_LOOK|SMF_PRECISE, 50, 10)
SUKC D 0 A_GiveToTarget("ColdCloudActive_CI",1)
SUKC D 1 A_SeekerMissile(2, 10, SMF_LOOK|SMF_PRECISE, 50, 10)
SUKC D 0 A_GiveToTarget("ColdCloudActive_CI",1)
SUKC D 1 A_SeekerMissile(2, 10, SMF_LOOK|SMF_PRECISE, 50, 10)
TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0) == 0, "Death")

SUKC E 0 A_GiveToTarget("ColdCloudActive_CI",1)
SUKC E 1 A_SeekerMissile(2, 10, SMF_LOOK|SMF_PRECISE, 50, 10)
SUKC E 0 A_GiveToTarget("ColdCloudActive_CI",1)
SUKC E 1 A_SeekerMissile(2, 10, SMF_LOOK|SMF_PRECISE, 50, 10)
SUKC E 0 A_GiveToTarget("ColdCloudActive_CI",1)
SUKC E 1 A_SeekerMissile(2, 10, SMF_LOOK|SMF_PRECISE, 50, 10)
SUKC E 0 A_GiveToTarget("ColdCloudActive_CI",1)
SUKC E 1 A_SeekerMissile(2, 10, SMF_LOOK|SMF_PRECISE, 50, 10)
TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0) == 0, "Death")

SUKC F 0 A_GiveToTarget("ColdCloudActive_CI",1)
SUKC F 1 A_SeekerMissile(2, 10, SMF_LOOK|SMF_PRECISE, 50, 10)
SUKC F 0 A_GiveToTarget("ColdCloudActive_CI",1)
SUKC F 1 A_SeekerMissile(2, 10, SMF_LOOK|SMF_PRECISE, 50, 10)
SUKC F 0 A_GiveToTarget("ColdCloudActive_CI",1)
SUKC F 1 A_SeekerMissile(2, 10, SMF_LOOK|SMF_PRECISE, 50, 10)
SUKC F 0 A_GiveToTarget("ColdCloudActive_CI",1)
SUKC F 1 A_SeekerMissile(2, 10, SMF_LOOK|SMF_PRECISE, 50, 10)
TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0) == 0, "Death")

SUKC E 0 A_GiveToTarget("ColdCloudActive_CI",1)
SUKC E 1 A_SeekerMissile(2, 10, SMF_LOOK|SMF_PRECISE, 50, 10)
SUKC E 0 A_GiveToTarget("ColdCloudActive_CI",1)
SUKC E 1 A_SeekerMissile(2, 10, SMF_LOOK|SMF_PRECISE, 50, 10)
SUKC E 0 A_GiveToTarget("ColdCloudActive_CI",1)
SUKC E 1 A_SeekerMissile(2, 10, SMF_LOOK|SMF_PRECISE, 50, 10)
SUKC E 0 A_GiveToTarget("ColdCloudActive_CI",1)
SUKC E 1 A_SeekerMissile(2, 10, SMF_LOOK|SMF_PRECISE, 50, 10)
TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0) == 0, "Death")
TNT1 A 0 A_Countdown
loop
Pain:
SUKC A 0 A_LogInt(CallACS("core_gettarget"))
SUKC A 0 A_PlaySoundEx("weapon/mm7pain","Body")
TNT1 A 1 A_SpawnItem("PainFX",0,3)
Goto loopit
Death:
SUKC A 0 A_LogInt(CallACS("core_gettarget"))
SUKC A 0 A_ChangeFlag("NOINTERACTION",1)
SUKC CCCCBBBBAAAAAAAAAAAAAA 1 A_Stop
NBOM A 0 A_PlaySoundEx("weapon/napalm", "Weapon")
MMFX BCDE 2
stop
}
}

actor ColdCloudVision : PowerUp
{
	Powerup.Color 255 255 255, 0.8
	powerup.duration 0x7fffffff
}

actor ColdCloudWatcher
{
Height 0
Radius 0
+NOINTERACTION
-SOLID
+NOGRAVITY
+MISSILE
States
{
Spawn:
TNT1 A 0 
TNT1 A 2 A_GiveToTarget("ColdCloudFX")
TNT1 A 0 A_JumpIfInTargetInventory("PowerColdSlow", 1, "Spawn")
Death:
TNT1 A 0 A_TakeFromTarget("ColdCloudVision")
stop
}
}

actor ColdSlower : PowerupGiver
{
powerup.duration 210
powerup.type "PowerColdSlow"
+INVENTORY.AUTOACTIVATE
+INVENTORY.ALWAYSPICKUP
states
{
Pickup:
TNT1 A 0 
TNT1 A 175
stop
}
}

actor PowerColdSlow : PowerSpeed
{
Speed 0.6
}

actor ColdCloudProtect : PowerProtection
{
Powerup.Duration 210
damagefactor "ColdmanCloud", 0.0
}

actor ColdCloudFX : CustomInventory
{
+INVENTORY.AUTOACTIVATE
-INVBAR
States
{
Use:
TNT1 A 0
TNT1 AA 0 A_SpawnItemEx("ColdAir", random(-16, 16), random(-16, 16), Random(0,40))
stop
}
}

actor ColdManUltWall
{
Obituary "$OB_COLDMAN4"
+MISSILE
+FORCEXYBILLBOARD
+NOEXPLODEFLOOR
-NOGRAVITY
-FLOORCLIP
+STEPMISSILE
+SHOOTABLE
-RIPPER
+NOTARGETSWITCH
+BOUNCEONCEILINGS
maxstepheight 8
+BOUNCEONWALLS
+BOUNCEONACTORS
+ALLOWBOUNCEONACTORS
bouncecount 4
BounceFactor 0.99
WallBounceFactor 0.99
Height 64
damagetype "Coldman"
species "ColdWallType"
WallBounceSound "weapon/coldslide"
damagefactor "Coldman", 0.0
damagefactor "ColdmanFreeze", 0.0
damagefactor "ColdmanCloud", 0.0
+THRUSPECIES
scale 2.5
damage (40)//&Ze
radius 16
speed 25
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode")
COLP FGH 1 A_GiveToTarget("ColdUltBuildCooldownGiver")
SpawnLoop:
COLP I 0 A_SpawnItemEx("IcePitFreeze")
COLP I 1 A_JumpIfInTargetInventory("BaseCustomFlag1",1,"Go")
COLP I 0 A_GiveToTarget("ColdUltBuildCooldownGiver")
COLP I 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0) == 0, "Death")
loop
Go:
COLP I 0 A_Recoil(-25)
Spawn2:
COLP I 0 ThrustThingZ(0,0,0,1)
loopit:
COLP I 0 A_GiveInventory("CutterFlag",1)
COLP I 0 A_GiveToTarget("ColdUltBuildCooldownGiver")
COLP I 0 A_JumpIfInventory("CutterFlag",100,"Death")
COLP I 0 A_SpawnItemEx("ColdAir", random(-5,5), random(-5,5), random(0,70))
COLP I 0 A_SpawnItemEx("IcePitFreeze")
COLP I 1 A_JumpIf(z-floorz>0, "Air")
loop
Air:
COLP I 0 A_SpawnItemEx("ColdAir", random(-5,5), random(-5,5), random(0,70))
COLP I 0 A_SpawnItemEx("IcePitFreeze")
COLP I 0 A_GiveToTarget("ColdUltBuildCooldownGiver")
COLP I 1 A_JumpIf(z-floorz<=0, "Spawn2")
loop
Death:
COLP J 0 A_ChangeFlag("NOINTERACTION",1)
COLP J 0 A_Stop
COLP JJJJJJJJJJJJ 0 A_SpawnItemEx("ColdAir",random(-16,16),random(-16,16),random(0,70),random(-5,5),random(-5,5),random(-5,5))
COLP J 0 A_PlaySoundEx("weapon/icewavespawn","Body")
COLP JKL 2 A_SpawnItemEx("IcePitFreeze")
stop
}
}

actor ColdUltWallSpawner
{
PROJECTILE
radius 20
height 20
+NOEXPLODEFLOOR
+THRUACTORS
+FLOORHUGGER
reactiontime 35
damage(0)
States
{
Spawn:
TNT1 A 0
TNT1 A 0 A_PlaySoundEx("weapon/coldult","Auto")
TNT1 AAAAAAAAAAAA 0 A_SpawnItemEx("ColdAir",random(-16,16),random(-16,16),random(0,70),random(-5,5),random(-5,5),random(-5,5))
TNT1 A 1 A_SpawnItemEx("ColdManUltWall",0,0,0)
TNT1 A 0 A_Countdown
loop
Death:
TNT1 A 0
stop
}
}

actor ColdUltBuildCooldownGiver : UltBuildCooldownGiver
{
	Powerup.Duration 50
}

actor ColdDeathAirSpawner
{
scale 2.5
+NOINTERACTION
+NOCLIP
-FLOORCLIP
Radius 3
Height 3
reactiontime 43
-SOLID
States
{
Spawn:
TNT1 A 0
TNT1 AAAAA 0 A_SpawnItemEx("ColdDeathAir",random(0,40),0,random(8,56),random(-1,1),0,random(0,-1),random(0,359))
TNT1 A 1 A_SpawnItemEx("ColdDeathAir",random(0,40),0,random(8,56),random(-1,1),0,random(0,-1),random(0,359))
TNT1 A 0 A_Countdown
loop
}
}

actor ColdDeathAir
{
translation "0:255=4:4"
scale 2.5
+CLIENTSIDEONLY
renderstyle translucent
+NOEXPLODEFLOOR
gravity 0.05
Radius 3
Height 3
-SOLID
States
{
Spawn:
FR8F A 0 
FR8F ABC 10
FR8F CCCCC 1 A_FadeOut(0.2)
stop
}
}

actor ColdWaterHandler : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_JumpIfInventory("IsUnderWater",1,"Pickup2")
stop

Pickup2:
TNT1 A 0 ThrustThingZ(0,9,1,1)
stop
}
}

actor ColdManCharge : Inventory
{
Inventory.Amount 1
Inventory.MaxAmount 70
}

actor ColdTFHandler : CustomInventory
{
States
{
Pickup:
TNT1 A 0 ACS_NamedExecuteWithResult("VC_SetState",2)
stop
}
}

actor ColdFreezeCooldown : Inventory
{
Inventory.Amount 1
Inventory.MaxAmount 70
}

actor ColdFreezeHitHandler : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_GiveInventory("ColdFreezeHit")
TNT1 A 0 A_GiveInventory("ColdFreezeCooldown",70)
stop
}
}

actor ColdWallHitHandler : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_TakeInventory("ColdFreezeCooldown",0)
stop
}
}