ACTOR BomberKnight : actor replaces hellknight
{
	monster
	Radius 20
	Height 63
	mass 1300
	speed 10
	+floorclip
	+dontharmspecies
	species "bombknight"
	Health 500
	PainChance 100
 	Painchance "BarrelGrab", 0
	bloodtype knightbloodsplatter
	SeeSound "knight/sight"
	ActiveSound "knight/active"
	PainSound "knight/pain"
	DeathSound "bomberknight/death"
	HitObituary "%o was shredded by a bomber knight"
	Obituary "%o went out with a bang thanks to a bomber knight"
	dropitem "lilchest" 20
	States
	{
	Spawn:
		BMKN AB 10 A_Look
		Loop
	See:
		BMKN AABBCCDD 3 A_Chase
		Loop
	Melee:
		TNT1 A 0
		BMKN EF 8 A_FaceTarget
		BMKN G 8 A_CustomComboAttack("longbomb", 40,6 * random(1, 8),"implord/macehit")
		Goto See
	Missile:
		TNT1 A 0
		BMKN EF 8 A_FaceTarget
		BMKN G 8 a_custommissile ("longbomb",40)
		goto see
	Pain:
		BMKN L 2
 		TNT1 A 0 A_TakeInventory ("PowerTerrorStatus",999)
 		TNT1 A 0 A_TakeInventory ("PowerKickedStatus",999)
		BMKN L 2 A_Pain
		Goto See
	Pain.Dazer:
    Pain.Superkick:
		BMKN L 2
		TNT1 A 0 a_giveinventory ("KickDazer",1)
		BMKN L 2 A_Pain
		Goto Dazed
    Dazed:
		BMKN L 2
		BMKN L 1 A_SetAngle (angle+15)
		BMKN L 1 A_JumpIfInventory ("PowerKickedStatus",1,"Dazed")
		Goto See
	Death:
		BMKN L 6 a_facetarget
		BMKN M 3 A_Scream
		BMKN M 1 a_spawnitemex("leftbracer",0,0,20,random(-10,10),random(-10,10),random(10,18))		
		BMKN M 1 a_spawnitemex("rightbracer",0,0,20,random(-10,10),random(-10,10),random(10,18))		
		BMKN M 1 a_spawnitemex("leftpauldron",0,0,40,random(-10,10),random(-10,10),random(10,18))		
		BMKN M 1 a_spawnitemex("rightpauldron",0,0,40,random(-10,10),random(-10,10),random(10,18))		
		BMKN M 1 a_spawnitemex("BomberKnightHelmet",0,0,50,random(-10,10),random(-10,10),random(10,18))
		BMKN N 4 A_NoBlocking
		BMKN O 3 
		BMKN P 3 a_playsound ("bomberknight/fall",CHAN_BODY)
		BMKN Q 1 
		BMKN Q -1
		Stop
	Xdeath:
		BMKN L 1 A_Scream
		BMKN L 4 a_facetarget
		BMKN M 2 a_noblocking
		TNT1 A 0 Radius_Quake (2,10,0,32,0)
		TNT1 A 0 a_playsound ("bomberknight/explosion",CHAN_VOICE,1,0,0.50)
		TNT1 A 0 a_playsound ("skeleton/gib",0,1,0,0.6)
		BMKN M 0 a_spawnitemex("leftbracer",0,0,20,random(-20,20),random(-20,20),random(18,26))		
		BMKN M 0 a_spawnitemex("rightbracer",0,0,20,random(-20,20),random(-20,20),random(18,26))		
		BMKN M 0 a_spawnitemex("leftpauldron",0,0,40,random(-20,20),random(-20,20),random(18,26))		
		BMKN M 0 a_spawnitemex("rightpauldron",0,0,40,random(-20,20),random(-20,20),random(18,26))		
		BMKN M 0 a_spawnitemex("BomberKnightHelmet",0,0,50,random(-10,10),random(-10,10),random(10,18))
		TNT1 AAAAAAAAAAA 0 a_spawnitemex ("Knightbloodsplatter",0,0,34)       
		TNT1 AAAAAAAA 0 a_spawnitemex("bonegib",0,0,0,random(-15,10),random(-10,10),random(5,10))
		TNT1 AAA 0 a_spawnitemex("bonegib",0,0,0,random(-15,15),random(-17,19),random(5,10))
		ISKL AAAAA 0 a_spawnitemex("hipbonegib",0,0,0,random(-16,14),random(-16,19),10)
		ISKL AAAAAAA 0 a_spawnitemex("ribbonegib",0,0,0,random(-15,14),random(-18,14),12)
		TNT1 A 1 a_spawnitemex ("KnightSplosion")
		TNT1 A 0 thrustthingz (0,60,0,1)
		TNT1 A 0 ThrustThing(angle*256/360+128, 5, 0, 0)
		TNT1 A 6
	Skullflying:
		BMKN R 1
		TNT1 A 0 A_JumpIf(Abs(VelZ) <= 0.01, "SkulDed")
		BMKN R 1
		TNT1 A 0 A_JumpIf(Abs(VelZ) <= 0.01, "SkulDed")
		BMKN S 1
		TNT1 A 0 A_JumpIf(Abs(VelZ) <= 0.01, "SkulDed")
		BMKN S 1
		TNT1 A 0 A_JumpIf(Abs(VelZ) <= 0.01, "SkulDed")
		BMKN T 1
		TNT1 A 0 A_JumpIf(Abs(VelZ) <= 0.01, "SkulDed")
		BMKN T 1
		TNT1 A 0 A_JumpIf(Abs(VelZ) <= 0.01, "SkulDed")
		BMKN U 1
		TNT1 A 0 A_JumpIf(Abs(VelZ) <= 0.01, "SkulDed")
		BMKN U 1
		TNT1 A 0 A_JumpIf(Abs(VelZ) <= 0.01, "SkulDed")
		loop
	SkulDed:
		BMKN R 1 a_playsound ("gibs/bones",0)
		TNT1 A 0 thrustthingz (0,20,0,0)
		BMKN STUR 2
		BMKN R -1
		stop
		
	Raise:
		BMKN Q 2
		BMKN QPONML 4
		TNT1 A 0 a_jump (30,"chaosexplode")
		Goto See
	death.blazice:
		BMKN L 2 a_scream
		BMIC A 2 A_noblocking
		TNT1 A 0 a_playsound ("swordtech/freezedeath",CHAN_BODY)
		TNT1 A 0 a_fadeout (0.20)
		TNT1 AAAAAAAAAAAA 0 a_spawnitemex ("iceparticle",random(-8,8),random(-8,8),32,random(-100,100)/10.0,random(-100,100)/10.0,random(-100,100)/20.0,0,160)
		BMIC B 90 bright
		BMIC C 2 bright
		TNT1 A 0 a_playsound ("swordtech/iceshatter",CHAN_BODY)
		TNT1 AAA 0 a_spawnitemex ("icefragment",0,0,0,random(-10,10),random(-10,10),10) 
		TNT1 AAAAA 0 a_spawnitemex ("icefragment",0,0,0,random(-4,13),random(-8,13),8) 
		TNT1 AAAAAA 0 a_spawnitemex ("icefragment",0,0,0,random(-6,16),random(-4,6),8) 
		stop
	death.superkick:
		BMKN M 1 A_Scream 
		BMKN M 1 a_scalevelocity (0.1)
 		BMKN M 1 a_stop
		BMKN M 1 A_NoBlocking
		TNT1 A 0 a_changeflag ("NOCLIP",1)
		TNT1 A 0 a_changeflag ("NOGRAVITY",1)
		BMKN M 1 a_facetarget
		BMKN M 0 a_spawnitemex("leftbracer",0,-30,20,0,0,2)		
		BMKN M 0 a_spawnitemex("rightbracer",0,30,20,0,0,2)			
		BMKN M 0 a_spawnitemex("leftpauldron",0,-30,40,0,0,2)			
		BMKN M 0 a_spawnitemex("rightpauldron",0,30,40,0,0,2)		
		BMKN M 0 a_spawnitemex("BomberKnightHelmet",0,0,50,random(-10,10),random(-10,10),random(10,18))
		TNT1 A 0 thrustthingz (0,80,0,1)
		TNT1 A 0 ThrustThing(angle*256/360+128, 110, 1, 0)
		TNT1 A 0 a_spawnitemex ("kickdeathsound")
		BMKN N 1
		BMKN O 2		
	kickfly:
		BMKN OOOOOOO 1 a_spawnitemex ("KustamParticle",random(-8,8),random(-8,8),random(-10,10),random(-120,120)/15.0,random(-130,130)/12.0,random(-110,110)/17.0,0)
		TNT1 A 0 a_fadeout (0.02)
		loop		
	Death.sentinelarm:
		BMKN L 4 a_facetarget
		BMKN M 2 A_Scream
		BMKN M 0 a_spawnitemex("leftbracer",0,0,20,random(-10,10),random(-10,10),random(10,18))		
		BMKN M 0 a_spawnitemex("rightbracer",0,0,20,random(-10,10),random(-10,10),random(10,18))		
		BMKN M 0 a_spawnitemex("leftpauldron",0,0,40,random(-10,10),random(-10,10),random(10,18))		
		BMKN M 0 a_spawnitemex("rightpauldron",0,0,40,random(-10,10),random(-10,10),random(10,18))		
		BMKN M 1 a_spawnitemex("BomberKnightHelmet",0,0,50,random(-10,10),random(-10,10),random(10,18))
		BMKN N 4 A_NoBlocking
		TNT1 A 0 thrustthingz (0,70,0,1)
		BMKN O 5 
		TNT1 A 0 a_nogravity
		TNT1 A 0 a_stop
		TNT1 A 0 a_playsound ("Kustam/OCKill",CHAN_VOICE,1,0,0.4)
		TNT1 A 0 a_playsound ("Kustam/OCKill",5,1,0,0.6)
		TNT1 A 0 a_playsound ("Kustam/OCKill",6,1,0,0.6)
		TNT1 A 0 a_playsound ("Kustam/OCKill",7,1,0,0.6)
		OCKL ABCDEF 2 bright
		stop

	
	death.fatalslash:
		BMKN L 2 a_scream
		BMIC A 4 a_noblocking
		BMKN L 15
	randomwait:
		FDBK A 1 a_jump (20,"split")
		loop
	split:
		FDBK AABBCC 5
		FDBK DE 2
		FDBK FGHIJ 3 bright A_SpawnItemEx ("fatalburst", frandom(-20,20),frandom(-20,20),frandom(15,45), 0,0,0, 0, SXF_NOCHECKPOSITION,80)
		FDBK J 1 bright A_SpawnItemEx ("fatalburst", frandom(-20,20),frandom(-20,20),frandom(15,45), 0,0,0, 0, SXF_NOCHECKPOSITION,80)
		FDBK J 1 bright A_SpawnItemEx ("fatalburst", frandom(-20,20),frandom(-20,20),frandom(15,45), 0,0,0, 0, SXF_NOCHECKPOSITION,80)
		FDBK J 1 bright A_SpawnItemEx ("fatalburst", frandom(-20,20),frandom(-20,20),frandom(15,45), 0,0,0, 0, SXF_NOCHECKPOSITION,80)
		FDBK J 1 bright A_SpawnItemEx ("fatalburst", frandom(-20,20),frandom(-20,20),frandom(15,45), 0,0,0, 0, SXF_NOCHECKPOSITION,80)
		FDBK J 1 bright A_SpawnItemEx ("fatalburst", frandom(-20,20),frandom(-20,20),frandom(15,45), 0,0,0, 0, SXF_NOCHECKPOSITION,80)
	exploding:
		FDBK J 1 Bright
		TNT1 A 1 Bright A_SpawnItemEx ("fatalburst", frandom(-20,20),frandom(-20,20),frandom(15,45), 0,0,0, 0, SXF_NOCHECKPOSITION,80)
		FDBK J 1 Bright
		TNT1 A 1 Bright A_SpawnItemEx ("fatalburst", frandom(-20,20),frandom(-20,20),frandom(15,45), 0,0,0, 0, SXF_NOCHECKPOSITION,80)
		FDBK J 1 Bright
		TNT1 A 1 Bright A_SpawnItemEx ("fatalburst", frandom(-20,20),frandom(-20,20),frandom(15,45), 0,0,0, 0, SXF_NOCHECKPOSITION,80)
		FDBK J 1 Bright a_jump (100,"reallydie")
		TNT1 A 1 Bright A_SpawnItemEx ("fatalburst", frandom(-20,20),frandom(-20,20),frandom(15,45), 0,0,0, 0, SXF_NOCHECKPOSITION,80)
		loop
	reallydie:
		TNT1 A 0
		TNT1 A 1 a_spawnitemex ("fataldrawdeath",0,0,30)
		stop
	chaosexplode:
 		TNT1 A 0
		TNT1 A 0 A_ChangeFlag("NOPAIN", 1)
    	BMKN A 8
        BMKN L 6 A_Pain
    	BMKN A 8
        BMKN L 6 A_Pain
    	BMKN A 8
        BMKN L 6 A_Pain
        TNT1 A 0 a_scream
        TNT1 A 0 A_NoBlocking
		TNT1 A 0 a_radiusgive ("chaoslaugh",650,RGF_MONSTERS)
		TNT1 A 0 a_spawnitemex("skellytun",0,0,12,random(-6,6),random(-8,8),random(6,10),0,SXF_NOCHECKPOSITION)
		TNT1 A 0 a_playsound ("bonelord/explode",CHAN_BODY,1,0,0.6)
		TNT1 A 0 Radius_Quake (4,20,0,32,0)
		TNT1 AAAAAAAAAAAA 0 a_spawnitemex("knightbloodspray",0,0,32,random(-10,10),random(-10,10),10)
		TNT1 AAAAAAAAAAAAAAA 0 a_spawnitemex("bonegib",0,0,0,random(-30,30),random(-30,30),10)
		ISKL AAAAAAAAAA 0 a_spawnitemex("hipbonegib",0,0,32,random(-10,10),random(-10,10),10)
		ISKL AAAAAAAAAAA 0 a_spawnitemex("ribbonegib",0,0,32,random(-10,10),random(-10,10),12)
		TNT1 AAAAAAAAAAAAAA 0 a_spawnitemex("bonegib",0,0,0,random(-30,30),random(-30,30),10)
		TNT1 A 20
		stop
	}
}

actor knightbomb
{
	+notimefreeze
	+bloodlessimpact
	+dontrip
	+shootable
	-noblockmap
	-nogravity
	+FORCEXYBILLBOARD	
	+THRUSPECIES
	+dontblast
	+noblooddecals
	+THRUGHOST
	+dontharmspecies
	+bright
	species "bombknight"
	Gravity 0.80
	health 140
	mass 99999
	Radius 25
	height 40
	scale 2
	bloodtype null
	Damage (0)
	Speed 8
	states
	{
	spawn:
		TNT1 A 0 
		TNT1 A 0 a_playsound ("bomberknight/throw", CHAN_VOICE,1,0,0.60)
		KNBM A 2 
		KNBM A 1 thrustthingz (0,15,0,0)
	flight:
		TNT1 A 0 a_giveinventory ("bombtimer", 1)
		TNT1 A 0 A_JumpIf(floorz == z, "floorbounce")
		KNBM A 1 a_jumpifinventory ("bombtimer", 40, "preexplode")
		TNT1 A 0 A_JumpIf(floorz == z, "floorbounce")
		loop
	floorbounce:
		TNT1 A 0
		TNT1 A 0
		TNT1 A 0 a_playsound ("bomberknight/bombbounce",CHAN_VOICE)
		TNT1 A 0 a_giveinventory ("bombtimer", 8)
		KNBM A 1 thrustthingz (0,8,0,0)
		TNT1 A 0 a_scalevelocity (0.75)
		goto flight
	preexplode:
		TNT1 A 0 a_scalevelocity (0.50)
		KNBM A 25 
		TNT1 A 0 a_scalevelocity (0.50)
		KNBM B 3 bright
		KNBM A 3 
		KNBM B 3 bright 
		KNBM A 3 
		KNBM B 3 bright 
		KNBM A 3 
		KNBM B 3 bright 
		goto boom
	boom:
		TNT1 A 0
		TNT1 A 0 a_unsetshootable
		TNT1 A 0 a_stop
		TNT1 A 0 a_changeflag ("nogravity", 1)
		TNT1 A 0 a_playsound ("bomberknight/explosion",CHAN_VOICE,1,0,0.50)
		TNT1 A 0 radius_quake (2,10,0,20,0)
		TNT1 A 0 a_radiusthrust (2000,150)
		TNT1 A 0 a_explode (35,200,1,0,90)
		TNT1 A 0 a_stop
		KBXP ABCDEFGHIJKLMNOP 2 bright
		stop
	death:
		TNT1 A 0
		KBDU ABCDEFGHIJKL 2 bright
		stop
	}
}

actor longbomb
{
    +notimefreeze
	+FORCEXYBILLBOARD	
	+THRUSPECIES
	+THRUGHOST
	+bright
	species "enemyshot"
	Radius 6
	Height 16
	Speed 15
	Damage (20)
	Projectile
	states
	{
	spawn:
		TNT1 A 0 
		TNT1 A 0 a_playsound ("bomberknight/throw", CHAN_VOICE,1,0,0.60)
		KNBM C 1 
	flight:
		KNBM CDEF 2
		loop
	death:
		TNT1 A 0 a_stop
		TNT1 A 0 a_playsound ("bomberknight/explosion",CHAN_VOICE,1,0,0.50)
		TNT1 A 0 radius_quake (1,10,0,20,0)
		TNT1 A 0 A_SetScale (1.50)
		KBX1 ABCDEFG 2 bright
		stop
	}
}


actor BomberKnightHelmet
{
	+notimefreeze
	+cannotpush
	+movewithsector
	+dontsplash
	+noblockmap
	+missile
	+doombounce
	+thruactors
	-nogravity
	+FORCEXYBILLBOARD	
	+LOOKALLAROUND
	+bounceonactors
	+NOTELEPORT
	scale 1
	Gravity 1.5 
	bouncecount 3
    bouncefactor 0.45
	Speed 5
    States
	{
	spawn:
		KNHM ABCD 3
		loop
	death:
		KNHM A 400
		KNHM A 10 a_fadeout (0.25)
		KNHM A 10 a_fadeout (0.25)
		KNHM A 10 a_fadeout (0.25)
		KNHM A 10 a_fadeout (0.25)
		stop
	}
}

actor leftpauldron : BomberKnightHelmet
{
	states
	{
	spawn:
		LPLD ABCD 3
		loop
	death:
		LPLD A 400
		LPLD A 10 a_fadeout (0.25)
		LPLD A 10 a_fadeout (0.25)
		LPLD A 10 a_fadeout (0.25)
		LPLD A 10 a_fadeout (0.25)
		stop
	}
}

actor rightpauldron : BomberKnightHelmet
{
	states
	{
	spawn:
		RPLD ABCD 3
		loop
	death:
		RPLD A 400
		RPLD A 10 a_fadeout (0.25)
		RPLD A 10 a_fadeout (0.25)
		RPLD A 10 a_fadeout (0.25)
		RPLD A 10 a_fadeout (0.25)
		stop
	}
}

actor rightbracer : BomberKnightHelmet
{
	states
	{
	spawn:
		RBRC ABCD 3
		loop
	death:
		RBRC A 400
		RBRC A 10 a_fadeout (0.25)
		RBRC A 10 a_fadeout (0.25)
		RBRC A 10 a_fadeout (0.25)
		RBRC A 10 a_fadeout (0.25)
		stop
	}
}

actor leftbracer : BomberKnightHelmet
{
	states
	{
	spawn:
		LBRC ABCD 3
		loop
	death:
		LBRC A 400
		LBRC A 10 a_fadeout (0.25)
		LBRC A 10 a_fadeout (0.25)
		LBRC A 10 a_fadeout (0.25)
		LBRC A 10 a_fadeout (0.25)
		stop
	}
}

ACTOR KnightSplosion
{
	Radius 4
	Height 4
	Scale 2
	+NOCLIP
	+NOGRAVITY
	+CLIENTSIDEONLY
	States
	{
	Spawn:
		TNT1 A 0
		KBXP ABCDEFGHIJKLMNOP 2 bright
		Stop
	}
}


		
actor bombtimer : inventory
{inventory.maxamount 40}