ACTOR BomberKnight : actor replaces hellknight
{
	monster
	Radius 20
	Height 63
	mass 1300
	speed 10
	+floorclip
	+dontharmspecies
	species "bombknight"
	Health 1500
	PainChance 100
	painchance "grappler", 256
	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
	dropitem "smallsubrefresh" 80
	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
        TNT1 A 0 A_JumpIfCloser(200, "shortbombthrow" )
		BMKN EF 8 A_FaceTarget
		BMKN G 8 a_custommissile ("longbomb",40)
		goto see
	shortbombthrow:
		BMKN EF 10 A_FaceTarget
		BMKN G 8 a_custommissile ("knightbomb",30)
		Goto See
	Pain:
		BMKN L 2
		BMKN L 2 A_Pain
		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("helmet",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
	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 A 0 A_CustomMissile("icicle", 30,0, 0, CMF_AIMDIRECTION | CMF_TRACKOWNER)
		TNT1 A 0 A_CustomMissile("icicle", 30,0, 45, CMF_AIMDIRECTION | CMF_TRACKOWNER)
		TNT1 A 0 A_CustomMissile("icicle", 30,0, 90, CMF_AIMDIRECTION | CMF_TRACKOWNER)
		TNT1 A 0 A_CustomMissile("icicle", 30,0, 180, CMF_AIMDIRECTION | CMF_TRACKOWNER)
		TNT1 A 0 A_CustomMissile("icicle", 30,0, 270, CMF_AIMDIRECTION | CMF_TRACKOWNER)
		TNT1 A 0 A_CustomMissile("icicle", 30,0, 360, CMF_AIMDIRECTION | CMF_TRACKOWNER)
		TNT1 A 0 a_dropitem ("treatspawner",2,180)
		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.sunder:
		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("helmet",0,0,50,random(-10,10),random(-10,10),random(10,18))
		BMKN N 4 A_NoBlocking
		BMKN O 3 
		TNT1 AA 0 a_dropitem ("rocketbox",1)
		BMKN P 3 a_playsound ("bomberknight/fall",CHAN_BODY)
		BMKN Q 1 
		BMKN Q -1
		Stop
	Death.slayermelee:
	Death.slayersupermelee:
		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("helmet",0,0,50,random(-10,10),random(-10,10),random(10,18))
		BMKN N 4 A_NoBlocking
		BMKN O 3 
		TNT1 A 0 a_spawnitemex ("Strongsunderlootorb", 0, 0, 0, random (-4, 7), random (-6, 3), random (3,6))
		TNT1 AA 0 a_spawnitemex ("sunderlootorb", 0, 0, 0, random (-3, 6), random (-8, 8), random (3,5))
		BMKN P 3 a_playsound ("bomberknight/fall",CHAN_BODY)
		BMKN Q 1 
		BMKN Q -1
		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 nullblood
	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 20
	Height 20
	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)
		KBXP ABCDEFGHIJKLMNOP 2 bright
		stop
	}
}

actor longbombwall
{
	+notimefreeze
	+bloodlessimpact
	+dontrip
	+shootable
	+bright
	-noblockmap
	-nogravity
	+noblooddecals
	+FORCEXYBILLBOARD	
	+THRUSPECIES
	+THRUGHOST
	+dontblast
	bloodtype nullblood
	species "bombknight"
	Gravity 0.80
	health 100
	mass 99999
	Radius 25
	height 40
	states
	{
	spawn:
		TNT1 A 0
		TNT1 A 0 a_giveinventory ("bombtimer", 1)
		KNBM A 1 a_jumpifinventory ("bombtimer", 40, "preexplode")
		loop
	preexplode:
		TNT1 A 0 a_scalevelocity (0.50)
		KNBM A 10 
		KNBM B 3 bright
		TNT1 A 0 a_scalevelocity (0.50)
		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_explode (20,100,1,0,30)
		TNT1 A 0 a_stop
		KBXP ABCDEFGHIJKLMNOP 2 bright
		stop
	death:
		TNT1 A 0
		KBDU ABCDEFGHIJKL 2 bright
		stop
	}
}


actor martyrbomb
{
	+notimefreeze
	+BLOODSPLATTER
	+SHOOTABLE
	+noblood
	-nogravity
	-noblockmap
	+FORCEXYBILLBOARD	
	+THRUSPECIES
	health 99999
	radius 20
	height 40
	mass 30
	scale 2
	states
	{
	spawn:
		KNBM A 40
		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 death
	death:
		TNT1 A 0 a_unsetshootable
		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)
		KBXP ABCDEFGHIJKLMNOP 2 bright
		stop
	}
}

actor helmet
{
	+notimefreeze
	+cannotpush
	+movewithsector
	+dontsplash
	+noblockmap
	+missile
	+doombounce
	+thruactors
	-nogravity
	+FORCEXYBILLBOARD	
	+LOOKALLAROUND
	+bounceonactors
	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 : helmet
{
	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 : helmet
{
	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 : helmet
{
	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 : helmet
{
	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 bombtimer : inventory
{inventory.maxamount 40}