Actor HEMDeathKnight 30305
{
Monster
Scale 1.25
Health 2500
Height 64
Radius 30
Mass 5000
Speed 8
MaxStepHeight 32
MaxDropOffHeight 32
Reactiontime 24
PainChance 64
PainChance "Crush", 256
PainChance "Explosion", 100
PainChance "Mine", 100
PainChance "NuclearFire", 100
MeleeRange 150
+BOSS
+BOSSDEATH
+DONTMORPH
+DONTRIP
+NORADIUSDMG
-NOINFIGHTING
-NOPAIN
+NoFear
+NOBLOOD
+FLOORCLIP
+NOTARGET
+LOOKALLAROUND
+ALWAYSFAST
+MISSILEMORE
+MISSILEEVENMORE
+QUICKTORETALIATE
+DONTHARMSPECIES
Species "SS"
Damagetype "SS"
DamageFactor "SS", 0.0
DamageFactor "Extreme", 0.0
DamageFactor "Legendary", 0.2
DamageFactor "Legendary1", 0.2
DamageFactor 0.4
DropItem "PortableMedkit" 256
DropItem "PortableMedCell", 256, 1
DropItem "PortableMedCellPack", 256, 1
DropItem "ArmorPlate" 256
DropItem "ArmorPlate" 256
DropItem "ArmorPlate" 256
DropItem "AmmoPack", 256
DropItem "AmmoPack", 256
DropItem "AmmoPack", 256
DropItem "ArmorCharge", 256
DropItem "ArmorCharge", 256
DropItem "ArmorCharge", 256
DropItem "PureRage", 256
DropItem "PureRage", 256
DropItem "PureRage", 256
DropItem "Megapack", 256
SeeSound "DeathKnight/see"
ActiveSound "DeathKnight/idle"
PainSound "DeathKnight/pain"
DeathSound "DeathKnight/death"
Tag "\cmDeath \cgKnight"
Obituary "%o was terminated by a Death Knight."
HitObituary "%o's body wasn't able to be identified after being shot by a Death Knight."
var int user_currenthp;
var int user_lcounter;
var int user_Acounter;
var int user_counter;
var int user_music;
var int user_taunt;
States
	{
	Spawn:
		DTKN A 1
		TNT1 A 0 A_ChangeFlag(NOPAIN,0)
		TNT1 A 0 A_SetUserVar("user_Acounter",430)
		TNT1 A 0 A_SetUserVar("user_currenthp",ACS_NamedExecuteWithResult("Hem_GetCurrentHealth"))
	SpawnLoop:
		DTKN A 10 A_Look
		TNT1 A 0 A_JumpIf(user_currenthp > ACS_NamedExecuteWithResult("Hem_GetCurrentHealth"),"Idle")
		Loop
	Idle:
		TNT1 A 0
		TNT1 A 0 A_ChangeFlag(NOPAIN,0)
		TNT1 A 0 A_JumpIfInventory("MarineKilled",1,"Rekt")
	IdleLoop:
		TNT1 A 0 A_SetUserVar("user_currenthp",ACS_NamedExecuteWithResult("Hem_GetCurrentHealth"))
		DTKN AB 5 A_Wander
		TNT1 A 0 A_Look
		TNT1 A 0 A_SpawnItemEx("DeathKnightStep",0,0,5,0,0,-20)
		DTKN CD 5 A_Wander
		TNT1 A 0 A_Look
		TNT1 A 0 A_SpawnItemEx("DeathKnightStep",0,0,5,0,0,-20)
		DTKN AB 5 A_Wander
		TNT1 A 0 A_Look
		TNT1 A 0 A_SpawnItemEx("DeathKnightStep",0,0,5,0,0,-20)
		DTKN CD 5 A_Wander
		TNT1 A 0 A_Look
		TNT1 A 0 A_SpawnItemEx("DeathKnightStep",0,0,5,0,0,-20)
		TNT1 A 0 A_Jump(128,17,35)
		DTKN AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 1 A_Look
		TNT1 A 0 A_JumpIf(user_currenthp > ACS_NamedExecuteWithResult("Hem_GetCurrentHealth"),"Avoid")
		TNT1 A 0 A_Jump(128,17,35)
		DTKN AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 1 A_Look
		TNT1 A 0 A_JumpIf(user_currenthp > ACS_NamedExecuteWithResult("Hem_GetCurrentHealth"),"Avoid")
		TNT1 A 0 A_SetUserVar("user_Acounter",user_Acounter-3)
		TNT1 A 0 A_JumpIf(user_Acounter < 1,"ChangeMusic")
		TNT1 A 0 A_SpawnItemEx("DeathKnightStep",0,0,5,0,0,-20)
		Loop
	ChangeMusic:
		TNT1 A 0
		TNT1 A 0 A_SetUserVar("user_Acounter",430)
		TNT1 A 0 A_SetUserVar("user_music",0)
		TNT1 A 0 A_ClearTarget
		Goto Idle
	See:
		TNT1 A 0
		TNT1 A 0 A_ChangeFlag(NOPAIN,0)
		TNT1 A 0 A_SetUserVar("user_currenthp",ACS_NamedExecuteWithResult("Hem_GetCurrentHealth"))
		TNT1 A 0 A_JumpIfInventory("MarineKilled",1,"Rekt")
		Goto SeeLoop
	SeeLoop:
		TNT1 A 0 A_SetUserVar("user_currenthp",ACS_NamedExecuteWithResult("Hem_GetCurrentHealth"))
		TNT1 A 0 A_JumpIf(user_music == 1,3)
		TNT1 A 0 ACS_NamedExecuteAlways("StartMonsterMusic",0,805)
		TNT1 A 0 A_SetUserVar("user_music",1)
		DTKN AB 5 A_Chase
		TNT1 A 0 A_JumpIfInTargetLOS("Avoid",360,JLOSF_DEADNOJUMP,1000)
		TNT1 A 0 A_SpawnItemEx("DeathKnightStep",0,0,5,0,0,-20)
		TNT1 A 0 A_JumpIf((user_currenthp - ACS_NamedExecuteWithResult("Hem_GetCurrentHealth")) > 100,"PainAttack")
		TNT1 A 0 A_JumpIf(user_currenthp > ACS_NamedExecuteWithResult("Hem_GetCurrentHealth"),"Missile")
		DTKN CD 5 A_Chase
		TNT1 A 0 A_JumpIfInTargetLOS("Avoid",360,JLOSF_DEADNOJUMP,1000)
		TNT1 A 0 A_SpawnItemEx("DeathKnightStep",0,0,5,0,0,-20)
		TNT1 A 0 A_SetUserVar("user_Acounter",user_Acounter-1)
		TNT1 A 0 A_JumpIf(user_Acounter < 1,"ChangeMusic")
		TNT1 A 0 A_JumpIf((user_currenthp - ACS_NamedExecuteWithResult("Hem_GetCurrentHealth")) > 100,"PainAttack")
		TNT1 A 0 A_JumpIf(user_currenthp > ACS_NamedExecuteWithResult("Hem_GetCurrentHealth"),"Missile")
		Loop
	Melee:
		TNT1 A 0
		TNT1 A 0 A_TakeInventory("Tic",3)
		TNT1 A 0 A_ChangeFlag(NOPAIN,1)
		TNT1 A 0 A_Punch
		TNT1 A 0 A_Jump(255,"DoubleHexaTaunt","GoBack")
		Goto DoubleHexa
	Missile:
		TNT1 A 0
		TNT1 A 0 A_ChangeFlag(NOPAIN,1)
		TNT1 A 0 A_JumpIf(user_taunt == 0,"Missile2")
		TNT1 A 0 A_PlaySound("DeathKnight/action",CHAN_VOICE,1.0,0,ATTN_NONE)
		TNT1 A 0 A_SetUserVar("user_taunt",0)
	Missile2:
		TNT1 A 0
		TNT1 A 0 A_SetUserVar("user_Acounter",430)
		TNT1 A 0 A_JumpIfTargetInLOS("GoCloser",90,JLOSF_CLOSENOJUMP|JLOSF_DEADNOJUMP|JLOSF_TARGETLOS,0,2000)
		TNT1 A 0 A_JumpIfTargetInLOS("FireDeathKnight15K",90,JLOSF_CLOSENOJUMP|JLOSF_DEADNOJUMP|JLOSF_TARGETLOS,0,1500)
		TNT1 A 0 A_JumpIfTargetInLOS("BFG10KandChainguns",90,JLOSF_CLOSENOJUMP|JLOSF_DEADNOJUMP|JLOSF_TARGETLOS,0,1000)
		TNT1 A 0 A_JumpIfTargetInLOS("ChainAndRocketGuns",90,JLOSF_CLOSENOJUMP|JLOSF_DEADNOJUMP|JLOSF_TARGETLOS,0,500)
		TNT1 A 0 A_JumpIfTargetInLOS("DoubleHexa",90,JLOSF_DEADNOJUMP|JLOSF_TARGETLOS,500,0)
	GoCloser:
		TNT1 A 0 A_FaceTarget
		TNT1 A 0 A_PlaySound("DeathKnight/jump",CHAN_BODY,1.0,0)
		DTKN P 20 A_Recoil(-40)
		TNT1 A 0 A_JumpIfInventory("Tic",3,"See")
		TNT1 A 0 A_GiveInventory("Tic",1)
		TNT1 A 0 A_JumpIfTargetInLOS("Missile2",90,JLOSF_DEADNOJUMP|JLOSF_TARGETLOS)
		Goto See
	ChainAndRocketGuns:
		TNT1 A 0 A_TakeInventory("Tic",1)
		TNT1 A 0 A_SetUserVar("user_lcounter",0)
		TNT1 A 0 A_CheckFlag(FRIENDLY,5)
		TNT1 A 0 A_TakeInventory("ProjHitCheck",1)
		TNT1 A 0 A_TakeInventory("ProjMissCheck",1)
		TNT1 A 0 A_FaceTarget
		TNT1 A 0 A_CustomMissile("ss-hit-testing",32,0,0,CMF_TRACKOWNER|CMF_CHECKTARGETDEAD)
		DTKN EEEEEEEEEEEEEEEEEEEE 1 A_FaceTarget
		TNT1 A 0 A_CheckFlag(FRIENDLY,"ChainAndRocketGunsLoop")
		TNT1 A 0 A_JumpIfInventory("ProjHitCheck",1,"ChainAndRocketGunsLoop")
		TNT1 A 0 A_JumpIfInventory("ProjMissCheck",1,"Avoid")
		TNT1 A 0 A_Jump(256,"ChainAndRocketGunsEnd")
	ChainAndRocketGunsLoop:
		TNT1 A 0 A_SetUserVar("user_currenthp",ACS_NamedExecuteWithResult("Hem_GetCurrentHealth"))
		TNT1 A 0 Bright A_CustomMissile("MonsterTracer",Random(36,44),0,Random(5,-5),0)
		TNT1 A 0 A_SpawnItemEx("RifleCasing",10,24,40,Random(2,6),0,Random(1,3),Random(80,90),SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 A 0 A_SpawnItemEx("RifleCasing",10,-24,40,Random(2,6),0,Random(1,3),Random(-80,-90),SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 A 0 A_CustomBulletAttack(22.5,0,2,random(1,5)*5,"SSBulletPuff",8192,CBAF_NORANDOM)
		TNT1 A 0 A_CustomMissile("SSMissile",62,-18,0,CMF_TRACKOWNER)
		DTKN F 3 Bright A_PlaySound("hitler/fire",CHAN_WEAPON,1.0,0)
		TNT1 A 0 A_FaceTarget
		TNT1 A 0 A_JumpIfCloser(300,"DoubleHexa")
		TNT1 A 0 A_MonsterRefire(0,"ChainAndRocketGunsEnd")
		TNT1 A 0 A_JumpIf((user_currenthp - ACS_NamedExecuteWithResult("Hem_GetCurrentHealth")) > 100,"PainAttack")
		TNT1 A 0 Bright A_CustomMissile("MonsterTracer",Random(36,44),0,Random(5,-5),0)
		TNT1 A 0 A_SpawnItemEx("RifleCasing",10,24,40,Random(2,6),0,Random(1,3),Random(80,90),SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 A 0 A_SpawnItemEx("RifleCasing",10,-24,40,Random(2,6),0,Random(1,3),Random(-80,-90),SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 A 0 A_CustomBulletAttack(22.5,0,2,random(1,5)*5,"SSBulletPuff",8192,CBAF_NORANDOM)
		TNT1 A 0 A_CustomMissile("SSMissile",62,18,0,CMF_TRACKOWNER)
		DTKN G 3 Bright A_PlaySound("hitler/fire",CHAN_WEAPON,1.0,0)
		TNT1 A 0 A_FaceTarget
		TNT1 A 0 A_JumpIfCloser(300,"DoubleHexa")
		TNT1 A 0 A_MonsterRefire(0,"ChainAndRocketGunsEnd")
		TNT1 A 0 A_JumpIf((user_currenthp - ACS_NamedExecuteWithResult("Hem_GetCurrentHealth")) > 100,"PainAttack")
		TNT1 A 0 Bright A_CustomMissile("MonsterTracer",Random(36,44),0,Random(5,-5),0)
		TNT1 A 0 A_SpawnItemEx("RifleCasing",10,24,40,Random(2,6),0,Random(1,3),Random(80,90),SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 A 0 A_SpawnItemEx("RifleCasing",10,-24,40,Random(2,6),0,Random(1,3),Random(-80,-90),SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 A 0 A_CustomBulletAttack(22.5,0,2,random(1,5)*5,"SSBulletPuff",8192,CBAF_NORANDOM)
		TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("Hem_InstakillCVAR") == 0,2)
		TNT1 A 0 A_CustomMissile("SSMissile",62,-18,0,CMF_TRACKOWNER)
		DTKN F 3 Bright A_PlaySound("hitler/fire",CHAN_WEAPON,1.0,0)
		TNT1 A 0 A_FaceTarget
		TNT1 A 0 A_JumpIfCloser(300,"DoubleHexa")
		TNT1 A 0 A_MonsterRefire(0,"ChainAndRocketGunsEnd")
		TNT1 A 0 A_JumpIf((user_currenthp - ACS_NamedExecuteWithResult("Hem_GetCurrentHealth")) > 100,"PainAttack")
		TNT1 A 0 Bright A_CustomMissile("MonsterTracer",Random(36,44),0,Random(5,-5),0)
		TNT1 A 0 A_SpawnItemEx("RifleCasing",10,24,40,Random(2,6),0,Random(1,3),Random(80,90),SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 A 0 A_SpawnItemEx("RifleCasing",10,-24,40,Random(2,6),0,Random(1,3),Random(-80,-90),SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 A 0 A_CustomBulletAttack(22.5,0,2,random(1,5)*5,"SSBulletPuff",8192,CBAF_NORANDOM)
		TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("Hem_InstakillCVAR") == 0,2)
		TNT1 A 0 A_CustomMissile("SSMissile",62,18,0,CMF_TRACKOWNER)
		DTKN G 3 Bright A_PlaySound("hitler/fire",CHAN_WEAPON,1.0,0)
		TNT1 A 0 A_FaceTarget
		TNT1 A 0 A_JumpIfCloser(300,"DoubleHexa")
		TNT1 A 0 A_MonsterRefire(0,"ChainAndRocketGunsEnd")
		TNT1 A 0 A_JumpIf((user_currenthp - ACS_NamedExecuteWithResult("Hem_GetCurrentHealth")) > 100,"PainAttack")
		TNT1 A 0 A_SetUserVar("user_lcounter",user_lcounter+1)
		TNT1 A 0 A_JumpIf(user_lcounter > 20,"ChainAndRocketGunsEnd")
		TNT1 A 0 A_JumpIfCloser(1000,"ChainAndRocketGunsLoop")
		Goto ChainAndRocketGunsEnd
	ChainAndRocketGunsEnd:
		DTKN E 15
		TNT1 A 0 A_Jump(128,2)
		TNT1 A 0 A_SetUserVar("user_taunt",1)
		TNT1 A 0 A_Jump(128,"DoubleHexa2")
		TNT1 A 0
		Goto See
	FireDeathKnight15K:
		TNT1 A 0 A_TakeInventory("Tic",1)
		TNT1 A 0 A_CheckFlag(FRIENDLY,6)
		TNT1 A 0 A_TakeInventory("ProjHitCheck",1)
		TNT1 A 0 A_TakeInventory("ProjMissCheck",1)
		TNT1 A 0 A_FaceTarget
		TNT1 A 0 A_CustomMissile("ss-hit-testing",40,-24,0,CMF_TRACKOWNER|CMF_CHECKTARGETDEAD)
		TNT1 A 0 A_CustomMissile("ss-hit-testing",40,24,0,CMF_TRACKOWNER|CMF_CHECKTARGETDEAD)
		DTKN EEEEEEEEEEEEEEEEEEEE 1 A_FaceTarget
		TNT1 A 0 A_SetUserVar("user_lcounter",0)
		TNT1 A 0 A_CheckFlag(FRIENDLY,"FireDeathKnight15KLoop")
		TNT1 A 0 A_JumpIfInventory("ProjHitCheck",1,"FireDeathKnight15KLoop")
		TNT1 A 0 A_JumpIfInventory("ProjMissCheck",1,"Avoid")
		TNT1 A 0 A_Jump(256,"FireDeathKnight15KEnd")
	FireDeathKnight15KLoop:
		TNT1 A 0 A_SetUserVar("user_currenthp",ACS_NamedExecuteWithResult("Hem_GetCurrentHealth"))
		DTKN H 1 A_FaceTarget
		DTKN H 1 A_PlaySound("weapons/bfg15kfire",CHAN_WEAPON,1.0,0)
		DTKN H 1 BRIGHT A_CustomMissile("DeathKnight15K",40,-24,random(4,-8),CMF_TRACKOWNER)
		DTKN H 1 BRIGHT A_CustomMissile("DeathKnight15K",40,24,random(4,-8),CMF_TRACKOWNER)
		DTKN H 4 A_FaceTarget
		DTKN H 1 A_MonsterRefire(0,"FireDeathKnight15KEnd")
		TNT1 A 0 A_JumpIfCloser(300,"DoubleHexa")
		TNT1 A 0 A_JumpIf((user_currenthp - ACS_NamedExecuteWithResult("Hem_GetCurrentHealth")) > 100,"PainAttack")
		TNT1 A 0 A_SetUserVar("user_lcounter",user_lcounter+1)
		TNT1 A 0 A_JumpIf(user_lcounter > 40,"FireDeathKnight15KEnd")
		TNT1 A 0 A_JumpIfCloser(2000,2)
		TNT1 A 0 A_Jump(256,"FireDeathKnight15KEnd")
		TNT1 A 0
		Loop
	FireDeathKnight15KEnd:
		DTKN E 15 A_SetUserVar("user_lcounter",0)
		TNT1 A 0 A_Jump(128,2)
		TNT1 A 0 A_SetUserVar("user_taunt",1)
		TNT1 A 0 A_Jump(128,"DoubleHexa2")
		TNT1 A 0
		GoTo See
	BFG10KandChainguns:
		TNT1 A 0 A_TakeInventory("Tic",1)
		DTKN EEEEEEEEEEEEEEE 1 A_FaceTarget
		TNT1 A 0 A_SetUserVar("user_lcounter",0)
		TNT1 A 0 A_PlaySound("weapons/charge15k",CHAN_WEAPON,1.0,0)
		DTKN E 8 A_FaceTarget
	BFG10KandChaingunsLoop:
		TNT1 A 0 A_SetUserVar("user_currenthp",ACS_NamedExecuteWithResult("Hem_GetCurrentHealth"))
		TNT1 A 0 Bright A_CustomMissile("MonsterTracer",Random(36,44),0,Random(5,-5),0)
		TNT1 A 0 A_SpawnItemEx("RifleCasing",10,24,40,Random(2,6),0,Random(1,3),Random(80,90),SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 A 0 A_SpawnItemEx("RifleCasing",10,-24,40,Random(2,6),0,Random(1,3),Random(-80,-90),SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 A 0 A_CustomBulletAttack(22.5,0,2,random(1,5)*5,"SSBulletPuff",8192,CBAF_NORANDOM)
		TNT1 A 0 A_CustomMissile("DeathKnight10K",62,-18,random(4,-8),CMF_TRACKOWNER)
		DTKN F 3 Bright A_PlaySound("hitler/fire",CHAN_WEAPON,1.0,0)
		TNT1 A 0 A_PlaySound("weapons/bfg15kfire",7,1.0,0)
		DTKN F 3 Bright A_MonsterRefire(0,"BFG10KandChaingunsEnd")
		TNT1 A 0 A_JumpIf((user_currenthp - ACS_NamedExecuteWithResult("Hem_GetCurrentHealth")) > 100,"PainAttack")
		TNT1 A 0 Bright A_CustomMissile("MonsterTracer",Random(36,44),0,Random(5,-5),0)
		TNT1 A 0 A_SpawnItemEx("RifleCasing",10,24,40,Random(2,6),0,Random(1,3),Random(80,90),SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 A 0 A_SpawnItemEx("RifleCasing",10,-24,40,Random(2,6),0,Random(1,3),Random(-80,-90),SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 A 0 A_CustomBulletAttack(22.5,0,2,random(1,5)*5,"SSBulletPuff",8192,CBAF_NORANDOM)
		TNT1 A 0 A_CustomMissile("DeathKnight10K",62,18,random(4,-8),CMF_TRACKOWNER)
		DTKN G 3 Bright A_PlaySound("hitler/fire",CHAN_WEAPON,1.0,0)
		TNT1 A 0 A_PlaySound("weapons/bfg15kfire",7,1.0,0)
		DTKN G 3 Bright A_MonsterRefire(0,"BFG10KandChaingunsEnd")
		TNT1 A 0 A_JumpIf((user_currenthp - ACS_NamedExecuteWithResult("Hem_GetCurrentHealth")) > 100,"PainAttack")
		TNT1 A 0 Bright A_CustomMissile("MonsterTracer",Random(36,44),0,Random(5,-5),0)
		TNT1 A 0 A_SpawnItemEx("RifleCasing",10,24,40,Random(2,6),0,Random(1,3),Random(80,90),SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 A 0 A_SpawnItemEx("RifleCasing",10,-24,40,Random(2,6),0,Random(1,3),Random(-80,-90),SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 A 0 A_CustomBulletAttack(22.5,0,2,random(1,5)*5,"SSBulletPuff",8192,CBAF_NORANDOM)
		TNT1 A 0 A_CustomMissile("DeathKnight10K",62,-18,random(4,-8),CMF_TRACKOWNER)
		DTKN F 3 Bright A_PlaySound("hitler/fire",CHAN_WEAPON,1.0,0)
		TNT1 A 0 A_PlaySound("weapons/bfg15kfire",7,1.0,0)
		DTKN F 3 Bright A_MonsterRefire(0,"BFG10KandChaingunsEnd")
		TNT1 A 0 A_JumpIf((user_currenthp - ACS_NamedExecuteWithResult("Hem_GetCurrentHealth")) > 100,"PainAttack")
		TNT1 A 0 Bright A_CustomMissile("MonsterTracer",Random(36,44),0,Random(5,-5),0)
		TNT1 A 0 A_SpawnItemEx("RifleCasing",10,24,40,Random(2,6),0,Random(1,3),Random(80,90),SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 A 0 A_SpawnItemEx("RifleCasing",10,-24,40,Random(2,6),0,Random(1,3),Random(-80,-90),SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 A 0 A_CustomBulletAttack(22.5,0,2,random(1,5)*5,"SSBulletPuff",8192,CBAF_NORANDOM)
		TNT1 A 0 A_CustomMissile("DeathKnight10K",62,18,random(4,-8),CMF_TRACKOWNER)
		DTKN G 3 Bright A_PlaySound("hitler/fire",CHAN_WEAPON,1.0,0)
		TNT1 A 0 A_PlaySound("weapons/bfg15kfire",7,1.0,0)
		DTKN G 3 Bright A_MonsterRefire(0,"BFG10KandChaingunsEnd")
		TNT1 A 0 A_JumpIf((user_currenthp - ACS_NamedExecuteWithResult("Hem_GetCurrentHealth")) > 100,"PainAttack")
		TNT1 A 0 A_SetUserVar("user_lcounter",user_lcounter+1)
		TNT1 A 0 A_JumpIf(user_lcounter > 30,"BFG10KandChaingunsEnd")
		TNT1 A 0 A_JumpIfCloser(1500,"BFG10KandChaingunsLoop")
		Goto BFG10KandChaingunsEnd
	BFG10KandChaingunsEnd:
		DTKN E 15 A_PlaySound("weapons/bfg15kcooldown",CHAN_WEAPON,1.0,0)
		TNT1 A 0 A_Jump(128,2)
		TNT1 A 0 A_SetUserVar("user_taunt",1)
		TNT1 A 0 A_Jump(128,"DoubleHexa2")
		TNT1 A 0
		GoTo See
	DoubleHexa:
		TNT1 A 0 A_ChangeFlag(NOPAIN,1)
		DTKN E 5 A_FaceTarget
		DTKN E 1 A_PlaySound("weapons/hsgfire",CHAN_WEAPON,1.0,0)
		DTKN E 4 A_PlaySound("weapons/hsgfire",7,1.0,0)
		TNT1 AAAAAAAAAAAA 0 Bright A_CustomMissile("MonsterTracer2",Random(36,44),24,Random(6,-6),0)
		TNT1 AAAAAAAAAAAA 0 Bright A_CustomMissile("MonsterTracer2",Random(36,44),-24,Random(6,-6),0)
		DTKN H 1 Bright A_CustomBulletAttack(15.4,10.6,78,Random(1,4)*3,"SSBulletPuff")
		DTKN H 4 Bright A_CustomBulletAttack(15.4,10.6,78,Random(1,4)*3,"SSBulletPuff")
		DTKN E 10 A_FaceTarget
		TNT1 AAAAAA 0 A_SpawnItemEx("SSGShellCasing",10,24,40,Random(2,4),Random(-3,-6),Random(3,6),0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 AAAAAA 0 A_SpawnItemEx("SSGShellCasing",10,-24,40,Random(2,4),Random(-3,-6),Random(3,6),0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 A 0 A_SetUserVar("user_currenthp",ACS_NamedExecuteWithResult("Hem_GetCurrentHealth"))
		DTKN E 5
		TNT1 A 0 A_Jump(192,3)
		TNT1 A 0 A_PlaySound("DeathKnight/taunt1",CHAN_VOICE,1.0,0)
		TNT1 A 0 A_SetUserVar("user_taunt",0)
		TNT1 A 0
		Goto See
	DoubleHexa2:
		TNT1 A 0 A_ChangeFlag(NOPAIN,1)
		DTKN E 5 A_FaceTarget
		DTKN E 1 A_PlaySound("weapons/hsgfire",CHAN_WEAPON,1.0,0)
		DTKN E 4 A_PlaySound("weapons/hsgfire",7,1.0,0)
		TNT1 AAAAAAAAAAAA 0 Bright A_CustomMissile("MonsterTracer2",Random(36,44),24,Random(6,-6),0)
		TNT1 AAAAAAAAAAAA 0 Bright A_CustomMissile("MonsterTracer2",Random(36,44),-24,Random(6,-6),0)
		DTKN H 1 Bright A_CustomBulletAttack(15.4,10.6,78,Random(1,4)*3,"SSBulletPuff")
		DTKN H 4 Bright A_CustomBulletAttack(15.4,10.6,78,Random(1,4)*3,"SSBulletPuff")
		DTKN E 10 A_FaceTarget	
		TNT1 AAAAAA 0 A_SpawnItemEx("SSGShellCasing",10,24,40,Random(2,4),Random(-3,-6),Random(3,6),0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 AAAAAA 0 A_SpawnItemEx("SSGShellCasing",10,-24,40,Random(2,4),Random(-3,-6),Random(3,6),0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 A 0 A_SetUserVar("user_currenthp",ACS_NamedExecuteWithResult("Hem_GetCurrentHealth"))
		DTKN E 5
		Goto See
	DoubleHexaTaunt:
		TNT1 A 0 A_ChangeFlag(NOPAIN,1)
		DTKN E 5 A_FaceTarget
		DTKN E 1 A_PlaySound("weapons/hsgfire",CHAN_WEAPON,1.0,0)
		DTKN E 4 A_PlaySound("weapons/hsgfire",7,1.0,0)
		TNT1 AAAAAAAAAAAA 0 Bright A_CustomMissile("MonsterTracer2",Random(36,44),24,Random(6,-6),0)
		TNT1 AAAAAAAAAAAA 0 Bright A_CustomMissile("MonsterTracer2",Random(36,44),-24,Random(6,-6),0)
		DTKN H 1 Bright A_CustomBulletAttack(15.4,10.6,78,Random(1,4)*3,"SSBulletPuff")
		DTKN H 4 Bright A_CustomBulletAttack(15.4,10.6,78,Random(1,4)*3,"SSBulletPuff")
		DTKN E 10 A_FaceTarget
		TNT1 AAAAAA 0 A_SpawnItemEx("SSGShellCasing",10,24,40,Random(2,4),Random(-3,-6),Random(3,6),0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 AAAAAA 0 A_SpawnItemEx("SSGShellCasing",10,-24,40,Random(2,4),Random(-3,-6),Random(3,6),0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		DTKN E 5 A_FaceTarget
		DTKN E 1 A_PlaySound("weapons/hsgfire",CHAN_WEAPON,1.0,0)
		DTKN E 4 A_PlaySound("weapons/hsgfire",CHAN_AUTO,1.0,0)
		TNT1 AAAAAAAAAAAA 0 Bright A_CustomMissile("MonsterTracer2",Random(36,44),24,Random(6,-6),0)
		TNT1 AAAAAAAAAAAA 0 Bright A_CustomMissile("MonsterTracer2",Random(36,44),-24,Random(6,-6),0)
		DTKN H 1 Bright A_CustomBulletAttack(15.4,10.6,78,Random(1,4)*3,"SSBulletPuff")
		DTKN H 4 Bright A_CustomBulletAttack(15.4,10.6,78,Random(1,4)*3,"SSBulletPuff")
		DTKN E 10 A_FaceTarget
		TNT1 AAAAAA 0 A_SpawnItemEx("SSGShellCasing",10,24,40,Random(2,4),Random(-3,-6),Random(3,6),0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 AAAAAA 0 A_SpawnItemEx("SSGShellCasing",10,-24,40,Random(2,4),Random(-3,-6),Random(3,6),0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 A 0 A_SetUserVar("user_currenthp",ACS_NamedExecuteWithResult("Hem_GetCurrentHealth"))
		DTKN E 5 A_FaceTarget
		TNT1 A 0 A_JumpIfInventory("MarineKilled",1,"Rekt")
		TNT1 A 0 A_Jump(100,3)
		TNT1 A 0 A_PlaySound("DeathKnight/taunt2",CHAN_VOICE,1.0,0)
		TNT1 A 0 A_SetUserVar("user_taunt",0)
		DTKN E 7 A_FaceTarget
		TNT1 A 0 A_JumpIf((user_currenthp - ACS_NamedExecuteWithResult("Hem_GetCurrentHealth")) > 100,"PainAttack")
		DTKN E 7 A_FaceTarget
		TNT1 A 0 A_JumpIf((user_currenthp - ACS_NamedExecuteWithResult("Hem_GetCurrentHealth")) > 100,"PainAttack")
		DTKN E 7 A_FaceTarget
		TNT1 A 0 A_JumpIf((user_currenthp - ACS_NamedExecuteWithResult("Hem_GetCurrentHealth")) > 100,"PainAttack")
		DTKN E 7 A_FaceTarget
		TNT1 A 0 A_JumpIf((user_currenthp - ACS_NamedExecuteWithResult("Hem_GetCurrentHealth")) > 100,"PainAttack")
		DTKN E 7 A_FaceTarget
		TNT1 A 0 A_JumpIf((user_currenthp - ACS_NamedExecuteWithResult("Hem_GetCurrentHealth")) > 100,"PainAttack")
		DTKN E 7 A_FaceTarget
		TNT1 A 0 A_JumpIf((user_currenthp - ACS_NamedExecuteWithResult("Hem_GetCurrentHealth")) > 100,"PainAttack")
		DTKN E 7 A_FaceTarget
		Goto See
	Rekt:
		DTKN E 1 A_FaceTarget
		TNT1 A 0 A_ChangeFlag(NOPAIN,1)
		TNT1 A 0 A_StopSound(CHAN_VOICE)
		TNT1 A 0 A_SetUserVar("user_currenthp",ACS_NamedExecuteWithResult("Hem_GetCurrentHealth"))
		TNT1 A 0 A_TakeInventory("MarineKilled",1)
		DTKN E 6 A_FaceTarget
		TNT1 A 0 A_JumpIf((user_currenthp - ACS_NamedExecuteWithResult("Hem_GetCurrentHealth")) > 100,"PainAttack")
		DTKN E 7 A_FaceTarget
		TNT1 A 0 A_JumpIf((user_currenthp - ACS_NamedExecuteWithResult("Hem_GetCurrentHealth")) > 100,"PainAttack")
		DTKN E 7 A_FaceTarget
		TNT1 A 0 A_JumpIf((user_currenthp - ACS_NamedExecuteWithResult("Hem_GetCurrentHealth")) > 100,"PainAttack")
		DTKN E 7 A_FaceTarget
		TNT1 A 0 A_JumpIf((user_currenthp - ACS_NamedExecuteWithResult("Hem_GetCurrentHealth")) > 100,"PainAttack")
		DTKN E 7 A_FaceTarget
		TNT1 A 0 A_JumpIf((user_currenthp - ACS_NamedExecuteWithResult("Hem_GetCurrentHealth")) > 100,"PainAttack")
		DTKN E 7 A_FaceTarget
		TNT1 A 0 A_JumpIf((user_currenthp - ACS_NamedExecuteWithResult("Hem_GetCurrentHealth")) > 100,"PainAttack")
		DTKN E 7 A_FaceTarget
		TNT1 A 0 A_JumpIf((user_currenthp - ACS_NamedExecuteWithResult("Hem_GetCurrentHealth")) > 100,"PainAttack")
		DTKN E 7 A_FaceTarget
		TNT1 A 0 A_PlaySound("DeathKnight/taunt",CHAN_VOICE,1.0,0,ATTN_NONE)
		TNT1 A 0 A_SetUserVar("user_taunt",0)
		TNT1 A 0 A_JumpIf((user_currenthp - ACS_NamedExecuteWithResult("Hem_GetCurrentHealth")) > 100,"PainAttack")
		DTKN E 7 A_FaceTarget
		TNT1 A 0 A_JumpIf((user_currenthp - ACS_NamedExecuteWithResult("Hem_GetCurrentHealth")) > 100,"PainAttack")
		DTKN E 7 A_FaceTarget
		TNT1 A 0 A_JumpIf((user_currenthp - ACS_NamedExecuteWithResult("Hem_GetCurrentHealth")) > 100,"PainAttack")
		DTKN E 7 A_FaceTarget
		TNT1 A 0 A_JumpIf((user_currenthp - ACS_NamedExecuteWithResult("Hem_GetCurrentHealth")) > 100,"PainAttack")
		DTKN E 7 A_FaceTarget
		TNT1 A 0 A_JumpIf((user_currenthp - ACS_NamedExecuteWithResult("Hem_GetCurrentHealth")) > 100,"PainAttack")
		DTKN E 7 A_FaceTarget
		TNT1 A 0 A_JumpIf((user_currenthp - ACS_NamedExecuteWithResult("Hem_GetCurrentHealth")) > 100,"PainAttack")
		DTKN E 7 A_FaceTarget
		TNT1 A 0 A_JumpIf((user_currenthp - ACS_NamedExecuteWithResult("Hem_GetCurrentHealth")) > 100,"PainAttack")
		DTKN E 7 A_FaceTarget
		TNT1 A 0 A_JumpIf((user_currenthp - ACS_NamedExecuteWithResult("Hem_GetCurrentHealth")) > 100,"PainAttack")
		DTKN E 7 A_FaceTarget
		GoTo See
	GoBack:
		TNT1 A 0
		TNT1 A 0 A_PlaySound("DeathKnight/jump",CHAN_BODY,1.0,0)
		DTKN P 10 A_Recoil(20)
		Goto DoubleHexaTaunt
	PainAttack:
		TNT1 A 0
		TNT1 A 0 A_FaceTarget
		TNT1 A 0 A_PlaySound("DeathKnight/jump",CHAN_BODY,1.0,0)
		DTKN P 10 A_Recoil(-20)
		TNT1 A 0 A_SetUserVar("user_taunt",1)
		Goto DoubleHexa
	PainAttack2:
		TNT1 A 0
		TNT1 A 0 A_FaceTarget
		TNT1 A 0 A_PlaySound("DeathKnight/jump",CHAN_BODY,1.0,0)
		DTKN P 10 A_Recoil(-20)
		Goto DoubleHexa
	Avoid:
		TNT1 A 0
		TNT1 A 0 A_Jump(192,"AvoidLeft","AvoidRight")
		DTKN P 20 A_Recoil(-40)
		TNT1 A 0 A_Jump(192,"AvoidLeft","AvoidRight")
		TNT1 A 0 A_SetUserVar("user_taunt",1)
		Goto DoubleHexa
	AvoidLeft:
		DTKN E 1 A_FaceTarget
		TNT1 A 0 A_PlaySound("DeathKnight/jump",CHAN_BODY,1.0,0)
		TNT1 A 0 ThrustThing(angle*256/360+192,15,0,0)
		DTKN E 5 A_FaceTarget
		TNT1 A 0 A_Jump(48,"DoubleHexa","FireDeathKnight15KLoop")
		GoTo Missile
	AvoidRight:
		DTKN E 1 A_FaceTarget
		TNT1 A 0 A_PlaySound("DeathKnight/jump",CHAN_BODY,1.0,0)
		TNT1 A 0 ThrustThing(angle*256/360+64,15,0,0)
		DTKN E 5 A_FaceTarget
		TNT1 A 0 A_Jump(48,"DoubleHexa","FireDeathKnight15KLoop")
		GoTo Missile
	Pain.Crush:
		TNT1 A 0
		TNT1 A 0 A_Recoil(-20)
		DTKN Q 8 A_Pain
		TNT1 A 0 A_SetUserVar("user_taunt",0)
		GoTo See
	Pain:
		TNT1 A 0
		TNT1 A 0 A_ChangeFlag(NOPAIN,1)
		DTKN Q 8 A_Pain
		TNT1 A 0 A_SetUserVar("user_taunt",0)
		Goto Avoid
	Death:
		TNT1 A 0
		TNT1 A 0 A_TakeInventory("Tic",999999)
		DTKN I 35 A_SpawnItemEx("GibbedGenerator",0,0,0,0,0,0,0,128,0)
		TNT1 A 0 A_PlaySound("DeathKnight/step",5,1.0,0)
		DTKN J 105 A_Scream
		DTKN K 4 A_SpawnItemEx("GibbedGenerator",0,0,0,0,0,0,0,128,0)
		DTKN L 4 A_SpawnItemEx("GibbedGenerator",0,0,0,0,0,0,0,128,0)
		TNT1 A 0 A_PlaySound("DeathKnight/step",6,1.0,0)
		DTKN M 4 A_SpawnItemEx("GibbedGenerator",0,0,0,0,0,0,0,128,0)
		DTKN N 4 A_Fall
		TNT1 A 0 A_BossDeath
		TNT1 A 0 A_RemoveChildren
		TNT1 A 0 A_SpawnItemEx("PowerStimpack",0,0,8,random(0,8),random(0,8),2,random(0,360),0,32)
		TNT1 A 0 A_SpawnItemEx("AmmoSphere",0,0,8,random(0,8),random(0,8),2,random(0,360),0,32)
		TNT1 A 0 A_SpawnItemEx("RegenerationRune",0,0,8,random(0,8),random(0,8),2,random(0,360),0,32)
		DTKN O 63000 CanRaise
		Stop
	}
}

Actor SSCustomSpray : CustomSpray
{
+THRUSPECIES
+MTHRUSPECIES
+PUFFGETSOWNER
Damagetype "SS"
}

Actor DeathKnight15k
{
Projectile
Height 15
Radius 15
Speed 35
Scale 0.5
RenderStyle Add
Alpha 0.75
ExplosionDamage 108
ExplosionRadius 162
Damage 20
+RANDOMIZE
+FORCERADIUSDMG
+THRUSPECIES
+MTHRUSPECIES
+DONTHARMSPECIES
Damagetype "SS"
SeeSound "weapons/bfg15kfire"
DeathSound "weapons/bfg95explode"
States
	{
	Spawn:
		BFS1 AB 2 Bright A_SpawnItemEx("BFGTrailParticleGreen",Random(-8,8),Random(-8,8),Random(-8,8),Random(-1,1),Random(-1,1),Random(-1,1),Random(-20,20),128)
		Loop
	Death:
		TNT1 A 0 Bright
		TNT1 A 0 Bright A_SpawnItemEx("BFGShockwave",0,0,0,0,0,0,0,SXF_CLIENTSIDE,0)
		TNT1 A 0 Bright A_SpawnItemEx("GreenParticleSpawner",0,0,0,0,0,0,0,SXF_CLIENTSIDE,0) 
		TNT1 AAA 0 Bright A_CustomMissile("Kaboom13",0,0,random(0,360),CMF_AIMDIRECTION,random(0,360))
		BFE1 A 4 Bright A_Explode
		BFE1 BCDEF 4 Bright
		Stop
	}
}

ACTOR DeathKnight10K : FastProjectile
{
PROJECTILE
Height 1
Radius 1
Speed 200
Scale 0.15
RenderStyle Add
Alpha 0.85
+NOEXTREMEDEATH
+THRUSPECIES
+DONTHARMSPECIES
DamageType "SS"
DeathSound "weapons/bfg95explode"
Obituary "%o was terminated by a Death Knight."
States
	{
	Spawn:
		TRA2 A 1 Bright
		Loop
	Death:
	XDeath:
		TNT1 A 0
		TNT1 A 1 A_SpawnItemEx("DeathKnight10KEx",0,0,0,0,0,0,0,SXF_SETMASTER,0)
		Stop
	}
}

ACTOR DeathKnight10KEx
{
Height 8
Radius 11
Scale 0.85
Renderstyle Add
Alpha 0.75
Damage 140
+NOGRAVITY
+NOBLOCKMAP
+NOTELEPORT
+FORCERADIUSDMG
+THRUSPECIES
+DONTHARMSPECIES
DamageType "SS"
States
	{
	Spawn:
		TNT1 A 0
		TNT1 A 0 A_SpawnItemEx("BFGShockwave",0,0,0,0,0,0,0,SXF_CLIENTSIDE,0)
		TNT1 AA 0 A_SpawnItemEx("GreenParticleSpawner",0,0,0,0,0,0,0,SXF_CLIENTSIDE,0)
		TNT1 AAAA 0 A_CustomMissile("Kaboom13",0,0,random(0,360),CMF_AIMDIRECTION,random(0,360))
		BFE1 A 4 Bright A_Detonate
		BFE1 BCDEF 4 Bright
		Stop
	}
}

Actor BaseHMissile : Rocket
{
Speed 26
Damage 15
Reactiontime 245
-ROCKETTRAIL
+ThruSpecies
+SeekerMissile
+DONTHARMSPECIES
Damagetype "Explosion"
SeeSound "rocket/fire"
States
	{
	Spawn:
		TNT1 A 0 Bright A_CountDown
		TNT1 A 0 Bright A_CustomMissile("MissileTrail",Random(4,6),Random(-2,2)) 
		TNT1 A 0 Bright A_CustomMissile("ProjectileTrailParticleOrange",Random(4,6),Random(-2,2))
		MIS2 A 1 Bright A_Seekermissile(25,35,SMF_PRECISE,0)
		TNT1 A 0 Bright A_JumpIfTargetInLOS("SeekFly",360,JLOSF_PROJECTILE)
		Goto NoSeekFly
	SeekFly:
		TNT1 A 0 Bright A_JumpIfTracerCloser(250,"Precise")
		Goto Spawn
	Precise:
		TNT1 A 0 Bright A_FaceTracer
		Goto Spawn
	NoSeekFly:
		TNT1 A 0 Bright A_CustomMissile("MissileTrail",Random(4,6),Random(-2,2))
		TNT1 A 0 Bright A_CustomMissile("ProjectileTrailParticleOrange",Random(4,6),Random(-2,2))
		MIS2 A 1 Bright
		TNT1 A 0 Bright A_JumpIfTargetInLOS("Spawn",360,JLOSF_PROJECTILE)
		Loop
	Death:
		TNT1 A 0 A_SpawnItemEx("OrangeParticleSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE) 
		TNT1 AAA 0 A_CustomMissile("Kaboom3",0,0,random(0,360),CMF_AIMDIRECTION,random(0,360))
		TNT1 AAA 0 A_CustomMissile("SmokeFX2",0,0,random(0,360),CMF_AIMDIRECTION,random(0,360))
		TNT1 AAAA 0 A_SpawnItemEx("Debris",0,0,0,Random(-4,4),Random(-4,4),Random(4,8),0,SXF_CLIENTSIDE)
		TNT1 A 0 A_Explode(Damage*random(1,8),Damage*4,0)
		TNT1 A 1 A_SpawnItem("RocketEx")
		Stop
	}
}

Actor SSMissile : BaseHMissile
{
Damagetype ""
Damagetype "SS"
DeathType "Extreme"
Obituary "%o ate Death Knight's Rocket."
}

Actor "ss-hit-testing" : FastProjectile
{
Height 1
Radius 1
Speed 1000
Renderstyle None
Damage (0)
+PAINLESS
+THRUGHOST
+NODAMAGETHRUST
+BLOODLESSIMPACT
+DONTREFLECT
+THRUSPECIES
+MTHRUSPECIES
Species "SS"
States
	{
	Spawn:
		TNT1 A 1
		Loop
	Death:
		TNT1 A 0
		TNT1 A 1 A_GiveToTarget("ProjMissCheck",1)
		Stop
	Crash:
	XDeath:
		TNT1 A 0
		TNT1 A 1 A_GiveToTarget("ProjHitCheck",1)
		Stop
	}
}