Actor DeathKnight 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
+NORADIUSDMG
-NOINFIGHTING
-NOPAIN
//+AMBUSH
+NoFear
+NOBLOOD
+FLOORCLIP
+NOTARGET
+LOOKALLAROUND
+ALWAYSFAST
+MISSILEMORE
+MISSILEEVENMORE
+QUICKTORETALIATE
+DONTHARMSPECIES
+DONTHURTSPECIES
+DONTHARMCLASS
Species "SS"
Damagetype "SS"
DamageFactor "SS", 0.0
DamageFactor "Extreme", 0.0
DamageFactor 0.01
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 0
		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 HealThing(1)
		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 HealThing(1)
		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,85)
		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)
		TNT1 A 0
	GoCloser:
		TNT1 A 0
		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
		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
		TNT1 A 0 HealThing(1)
		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,0)
		TNT1 A 0 A_SpawnItemEx("RifleCasing",10,-24,40,Random(2,6),0,Random(1,3),Random(-80,-90),SXF_CLIENTSIDE,0)
		TNT1 A 0 A_CustomBulletAttack(22.5,0,2,random(1,5)*5,"SSBulletPuff",4096,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,0)
		TNT1 A 0 A_SpawnItemEx("RifleCasing",10,-24,40,Random(2,6),0,Random(1,3),Random(-80,-90),SXF_CLIENTSIDE,0)
		TNT1 A 0 A_CustomBulletAttack(22.5,0,2,random(1,5)*5,"SSBulletPuff",4096,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),128)
		TNT1 A 0 A_SpawnItemEx("RifleCasing",10,-24,40,Random(2,6),0,Random(1,3),Random(-80,-90),128)
		TNT1 A 0 A_CustomBulletAttack(22.5,0,2,random(1,5)*5,"SSBulletPuff",4096,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),128)
		TNT1 A 0 A_SpawnItemEx("RifleCasing",10,-24,40,Random(2,6),0,Random(1,3),Random(-80,-90),128)
		TNT1 A 0 A_CustomBulletAttack(22.5,0,2,random(1,5)*5,"SSBulletPuff",4096,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")
		TNT1 A 0
	ChainAndRocketGunsEnd:
		TNT1 A 0
		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
		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
		TNT1 A 0 HealThing(1)
		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:
		TNT1 A 0
		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
	BFG10KandChainguns:
		TNT1 A 0
		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
		TNT1 A 0 HealThing(1)
		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),128)
		TNT1 A 0 A_SpawnItemEx("RifleCasing",10,-24,40,Random(2,6),0,Random(1,3),Random(-80,-90),128)
		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),128)
		TNT1 A 0 A_SpawnItemEx("RifleCasing",10,-24,40,Random(2,6),0,Random(1,3),Random(-80,-90),128)
		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),128)
		TNT1 A 0 A_SpawnItemEx("RifleCasing",10,-24,40,Random(2,6),0,Random(1,3),Random(-80,-90),128)
		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),128)
		TNT1 A 0 A_SpawnItemEx("RifleCasing",10,-24,40,Random(2,6),0,Random(1,3),Random(-80,-90),128)
		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:
		TNT1 A 0
		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
		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)
		TNT1 AAAAAA 0 A_SpawnItemEx("SSGShellCasing",10,-24,40,Random(2,4),Random(-3,-6),Random(3,6),0)
		TNT1 A 0 HealThing(1)
		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
		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)
		TNT1 AAAAAA 0 A_SpawnItemEx("SSGShellCasing",10,-24,40,Random(2,4),Random(-3,-6),Random(3,6),0)
		TNT1 A 0 HealThing(1)
		TNT1 A 0 A_SetUserVar("user_currenthp",ACS_NamedExecuteWithResult("Hem_GetCurrentHealth"))
		DTKN E 5
		Goto See
	DoubleHexaTaunt:
		TNT1 A 0
		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)
		TNT1 AAAAAA 0 A_SpawnItemEx("SSGShellCasing",10,-24,40,Random(2,4),Random(-3,-6),Random(3,6),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)
		TNT1 AAAAAA 0 A_SpawnItemEx("SSGShellCasing",10,-24,40,Random(2,4),Random(-3,-6),Random(3,6),0)
		TNT1 A 0 HealThing(1)
		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:
		TNT1 A 0
		DTKN E 1 A_FaceTarget
		TNT1 A 0 A_ChangeFlag(NOPAIN,1)
		TNT1 A 0 A_StopSound(CHAN_VOICE)
		TNT1 A 0 HealThing(1)
		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 ACS_NamedExecuteAlways("Hem_ChangeDamagefactor",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
		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
		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("GuardSphere",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
	Raise:
		TNT1 A 0
		TNT1 A 0 A_SpawnItemEx("VileHealEffect",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
		DTKN ONMLKJI 5
		Goto See
	}
}

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

Actor DeathKnight15k : BabyDemo15k
{
Damage 6
ExplosionDamage 20
ExplosionRadius 134
+THRUSPECIES
+MTHRUSPECIES
+STRIFEDAMAGE
+DontHurtSpecies
+DontHarmSpecies
Species ""
Species "SS"
Damagetype ""
Damagetype "SS"
States
	{
	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))
		TNT1 A 0 Bright A_BFGSpray("SSCustomSpray",20,7)
		BFE1 A 4 Bright A_Explode
		BFE1 BCDEF 4 Bright
		Stop
	}
}

ACTOR DeathKnight10K : 10KProjectile
{
+THRUSPECIES
+DontHurtSpecies
+DontHarmSpecies
Species ""
Species "SS"
DamageType ""
DamageType "SS"
Obituary "%o was terminated by a Death Knight."
States
	{
	Death:
	XDeath:  
		TNT1 A 0
		TNT1 A 1 A_SpawnItem("DeathKnight10KEx")
		Stop
	}
}

ACTOR DeathKnight10KEx : Player10KEx
{
Damage (random(75,85))
+ThruSpecies
+DontHurtSpecies
+DontHarmSpecies
Species ""
Species "SS"
DamageType ""
DamageType "SS"
}

Actor BaseHMissile : NewRocket
{
Damage (random(15,25))
Reactiontime 245
+ThruSpecies
+SeekerMissile
+DontHurtSpecies
+DontHarmSpecies
Damagetype "Explosion"
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_LOOK|SMF_PRECISE)
		TNT1 A 0 Bright A_CheckSight("NoSeekFly")
		Loop
	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_CheckSight("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
		Goto Spawn
	Death:
		TNT1 A 0
		TNT1 A 0 A_SpawnItemEx("OrangeParticleSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
		TNT1 AA 0 A_CustomMissile("Kaboom3",0,0,random(0,360),CMF_AIMDIRECTION,random(0,360))
		TNT1 AA 0 A_CustomMissile("SmokeFX2",0,0,random(0,360),CMF_AIMDIRECTION,random(0,360))
		TNT1 AA 0 A_SpawnItemEx("Debris",0,0,0,Random(-4,4),Random(-4,4),Random(4,8),0,SXF_CLIENTSIDE)
		TNT1 A 1 A_SpawnItem("RocketEx")
		Stop
	Crush:
	XDeath:
		TNT1 A 0
		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(random(120,130),128,0)
		TNT1 A 1 A_SpawnItem("RocketEx")
		Stop
	}
}

Actor SSMissile : BaseHMissile
{
Damage (random(15,25))
Species "SS"
Damagetype ""
Damagetype "SS"
}

Actor "ss-hit-testing" : FastProjectile
{
Height 1
Radius 1
Speed 1000
Renderstyle None
Damage (0)
+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
	}
}