Actor DarkKustam
{
    Health 1000
    Radius 20
    Height 56
    PainChance 40
 	Painchance "BarrelGrab", 0
	Mass 1200
    MeleeRange 70
	MeleeThreshold 75
    Speed 25
    bloodtype slimebloodsplatter
    Monster
	+FLOORCLIP
	+NOTARGET
	+bright
	+missilemore
	+DONTCORPSE
	+LOOKALLAROUND
	SeeSound "DarkKustam/see"
    ActiveSound "DarkKustam/idle"
    PainSound "DarkKustam/pain"
    DeathSound "DarkKustam/death"
    Obituary "Kustam's Shadow did not miss %o."
	HitObituary "%o has fallen under the boot of Kustam's shadow."
	dropitem "lilchest" 14
	translation "0:255=%[0.00,0.00,0.00]:[0.30,0.30,0.30]"
	States
	{
	Spawn:
		KSTM A 0
		TNT1 A 0 a_jumpifinventory ("DarkAwake",1,"DarkMock")
		KSTM A 1 a_look
		loop
	DarkMock:
		TNT1 A 0
		KSTM A 1 a_takeinventory ("Darkawake",99)
		KSTM A 1 a_playsound ("DarkKustam/Victory",CHAN_VOICE)
		KSTM A 60
		goto spawn
	See:
		TNT1 A 0
		TNT1 A 0 a_takeinventory ("DarkAimTimer",999)
		KSTM BBCCDDEE 3 a_chase
		TNT1 A 0 a_takeinventory ("DarkAimTimer",999)
		loop
	Missile:
		KSTM A 0
		KSTM H 2 a_facetarget
		TNT1 A 0 a_jumpifcloser (300, "MachineGun")
		TNT1 A 0 a_jumpifcloser (650, "SpreadShot")
	Aiming:
		KSTM H 1 a_facetarget
		KSTM H 1 A_CustomRailGun (0, 0, FFFFFF, FFFFFF, RGF_SILENT|RGF_NOPIERCING, 0, 0, "ConstructLaserAim",0,0,2024,50,1,0,"ConstructLaserAim")
		KSTM H 0 A_CustomBulletAttack (0, 0, 1, 0, "ConstructLaser", 8192, CBAF_NORANDOM)
		TNT1 A 0 a_giveinventory ("DarkAimTimer",1)
		TNT1 A 0 a_jumpifinventory ("DarkAimTimer", 20, "Snipe")
		loop
	Snipe:
		TNT1 A 0 
		TNT1 A 0 a_takeinventory ("DarkAimTimer",999)
		KSTM H 2 a_facetarget
		KSTM H 1
		TNT1 A 0 A_PlaySound("DarkKustam/pistolfire", 1)
		KSTM I 3 bright A_CustomBulletAttack (0, 0, 1, 30, "DarkKustamPuff", 8192, CBAF_NORANDOM|CBAF_AIMFACING)
		TNT1 A 0 a_takeinventory ("DarkAimTimer",999)
		KSTM H 10
		goto see
	Spreadshot:
		KSTM H 4 a_facetarget
		TNT1 A 0 a_takeinventory ("DarkAimTimer",999)
		KSTM H 1
		TNT1 A 0 A_PlaySound("DarkKustam/SpreadShot", 1)
		TNT1 A 0 a_custommissile ("DarkRubyPellet",50,10,-20)
		TNT1 A 0 a_custommissile ("DarkRubyPellet",50,10,-15)
		TNT1 A 0 a_custommissile ("DarkRubyPellet",50,10,-10)
		TNT1 A 0 a_custommissile ("DarkRubyPellet",50,10,0)
		TNT1 A 0 a_custommissile ("DarkRubyPellet",50,10,10)
		TNT1 A 0 a_custommissile ("DarkRubyPellet",50,10,15)
		TNT1 A 0 a_custommissile ("DarkRubyPellet",50,10,20)
		KSTM I 3 bright 
		KSTM H 9
		TNT1 A 0 a_jump (80, "missile")
		goto see
	MachineGun:
		KSTM H 4 a_facetarget
		TNT1 A 0 a_takeinventory ("DarkAimTimer",999)
		KSTM H 1
		TNT1 A 0 A_PlaySound("DarkKustam/PelletShot", 1)
		TNT1 A 0 a_custommissile ("DarkRapidPellet",50,10,0)
		KSTM I 2 bright 
		KSTM H 2
		TNT1 A 0 A_PlaySound("DarkKustam/PelletShot", 1)
		TNT1 A 0 a_custommissile ("DarkRapidPellet",50,10,0)
		KSTM I 2 bright 
		KSTM H 2 a_facetarget
		TNT1 A 0 A_PlaySound("DarkKustam/PelletShot", 1)
		TNT1 A 0 a_custommissile ("DarkRapidPellet",50,10,0)
		KSTM I 2 bright 
		KSTM H 2
		TNT1 A 0 A_PlaySound("DarkKustam/PelletShot", 1)
		TNT1 A 0 a_custommissile ("DarkRapidPellet",50,10,0)
		KSTM I 2 bright 
		KSTM H 2 a_facetarget
		TNT1 A 0 A_PlaySound("DarkKustam/PelletShot", 1)
		TNT1 A 0 a_custommissile ("DarkRapidPellet",50,10,0)
		KSTM I 2 bright 
		
		KSTM H 9
		TNT1 A 0 a_jump (80, "missile")
		goto see
		
	Melee:
		KSTM A 0
		TNT1 A 0 a_takeinventory ("DarkAimTimer",999)
		KSTM A 3 a_facetarget
		TNT1 A 0 a_playsound ("kustam/kickwoosh",0)
		KSTM J 6 a_facetarget
		KSTM K 1 a_facetarget
		TNT1 A 0 ACS_ExecuteWithResult(990,0,1,2)//flyback//------------------------------------Change arg4 for higher knockback distances. 2 is pretty big tho.
		KSTM F 0 A_CustomMeleeAttack(Random(1,2)*9, "Kustam/Kick")
		KSTM K 10
		KSTM J 4
		KSTM A 3
		goto see
	Pain:
		KSTM L 4 
		TNT1 A 0 a_takeinventory ("DarkAimTimer",999)
   		TNT1 A 0 a_takeinventory ("PowerKickedStatus",999)
		KSTM L 4 A_Pain
		Goto see
	Pain.Dazer:
    Pain.Superkick:
    	KSTM L 3
		TNT1 A 0 a_giveinventory ("KickDazer",1)
		KSTM L 3 A_Pain
    	Goto Dazed
    Dazed:
		KSTM L 2
		KSTM L 1 A_SetAngle (angle+15)
		KSTM L 1 A_JumpIfInventory ("PowerKickedStatus",1,"Dazed")
		Goto See
	Death:
		KSTM M 8
		KSTM U 12 A_PlayerScream
		KSTM U 1 A_NoBlocking
		KSTM VW 3
		KSTM W 25
		KSTM XY 3
		KSTM Z 1 a_playsound ("gibs/bodyhitfloor",0)
		KSTM Z random(10,30)
	Burnup:
		KSTM Z 1 bright 
		TNT1 A 0 A_SpawnItemEx ("ShadowFire", frandom(-20,20),frandom(-20,20),frandom(3,10), 0,0,random(1,2), 0, SXF_NOCHECKPOSITION, 80)
		TNT1 A 1 bright A_SpawnItemEx ("ShadowFire", frandom(-20,20),frandom(-20,20),frandom(3,10), 0,0,random(1,2), 0, SXF_NOCHECKPOSITION, 80)
		KSTM Z 1 bright 
		TNT1 A 0 A_SpawnItemEx ("ShadowFire", frandom(-20,20),frandom(-20,20),frandom(3,10), 0,0,random(1,2), 0, SXF_NOCHECKPOSITION, 80)
		TNT1 A 1 bright A_SpawnItemEx ("ShadowFire", frandom(-20,20),frandom(-20,20),frandom(3,10), 0,0,random(1,2), 0, SXF_NOCHECKPOSITION, 80)
		KSTM Z 1 bright 
		TNT1 A 0 A_SpawnItemEx ("ShadowFire", frandom(-20,20),frandom(-20,20),frandom(3,10), 0,0,random(1,2), 0, SXF_NOCHECKPOSITION, 80)
		TNT1 A 1 bright A_SpawnItemEx ("ShadowFire", frandom(-20,20),frandom(-20,20),frandom(3,10), 0,0,random(1,2), 0, SXF_NOCHECKPOSITION, 80)
		KSTM Z 1 bright 
		TNT1 A 0 A_SpawnItemEx ("ShadowFire", frandom(-20,20),frandom(-20,20),frandom(3,10), 0,0,random(1,2), 0, SXF_NOCHECKPOSITION, 80)
		TNT1 A 1 bright A_SpawnItemEx ("ShadowFire", frandom(-20,20),frandom(-20,20),frandom(3,10), 0,0,random(1,2), 0, SXF_NOCHECKPOSITION, 80)
		KSTM Z 1 bright 
		TNT1 A 0 A_SpawnItemEx ("ShadowFire", frandom(-20,20),frandom(-20,20),frandom(3,10), 0,0,random(1,2), 0, SXF_NOCHECKPOSITION, 80)
		TNT1 A 1 bright A_SpawnItemEx ("ShadowFire", frandom(-20,20),frandom(-20,20),frandom(3,10), 0,0,random(1,2), 0, SXF_NOCHECKPOSITION, 80)
		KSTM Z 1 bright 
		TNT1 A 0 A_SpawnItemEx ("ShadowFire", frandom(-20,20),frandom(-20,20),frandom(3,10), 0,0,random(1,2), 0, SXF_NOCHECKPOSITION, 80)
		TNT1 A 1 bright A_SpawnItemEx ("ShadowFire", frandom(-20,20),frandom(-20,20),frandom(3,10), 0,0,random(1,2), 0, SXF_NOCHECKPOSITION, 80)

		KSTM Z 1 bright a_jump (90,"reallydie")
		TNT1 A 0 A_SpawnItemEx ("ShadowFire", frandom(-20,20),frandom(-20,20),frandom(3,10), 0,0,random(1,2), 0, SXF_NOCHECKPOSITION, 80)
		TNT1 A 1 bright A_SpawnItemEx ("ShadowFire", frandom(-20,20),frandom(-20,20),frandom(3,10), 0,0,random(1,2), 0, SXF_NOCHECKPOSITION, 80)
		loop
	ReallyDie:
		TNT1 A 0
		TNT1 AAAAAA 0 A_SpawnItemEx ("ShadowFire", frandom(-20,20),frandom(-20,20),frandom(3,10), 0,0,random(1,2), 0, SXF_NOCHECKPOSITION, 80)
		TNT1 A 0 a_dropitem ("roastmeat",35)
		TNT1 AAAA 0 a_spawnitemex ("sunderlootorb", 0, 0, 0, random (-4, 7), random (-6, 3), random (3, 6))
		EVAU AABBCCDD 2 bright
		EVAU AABBCCDD 2 bright
		stop
	}
}

ACTOR ConstructLaser : BulletPuff
{
	+NOBLOCKMAP
	+NOGRAVITY
	+ALLOWPARTICLES
	+RANDOMIZE
	+bright
	+puffonactors
	+alwayspuff
	+bloodlessimpact
	+painless
	Damagetype "AimLaser"
	RenderStyle Translucent
	Alpha 0.8
	scale 0.7
	VSpeed 0
	Mass 5
	States
	{
	Spawn:
		TNT1 A 0
		PTL1 A 2 bright
		TNT1 A 0 a_playsound ("Kustam/Stack",0,0.6)
		Stop
	death:
		TNT1 A 1
		stop
	}
}

actor ConstructLaserAim
{
	radius 3
	height 6
	speed .1
	Scale 0.5
	+nogravity
	+FLOORCLIP
	+bright
	+DONTSPLASH
	+NOTELEPORT
	+nointeraction
	+NOBLOCKMAP
	states
	{
	spawn:
		PTL1 A 2 bright
		stop
	death:
		TNT1 A 1 
		stop
	}
}


ACTOR DarkKustamPuff : BulletPuff
{
	+NOBLOCKMAP
	+NOGRAVITY
	+ALLOWPARTICLES
	+RANDOMIZE
	+puffonactors
	+bright
	+NOEXTREMEDEATH
	+alwayspuff
	RenderStyle Translucent
	Alpha 0.8
	VSpeed 0
	scale 2
	Mass 5
	decal KustamStaff
	Projectilekickback 7000
	States
	{
	Spawn:
        TNT1 A 0
		RSPK A 2 
	Xdeath:
		TNT1 A 0 A_PlaySound("Kustam/Kick", 5)
		TNT1 A 0 A_PlaySound("Kustam/KickEcho", 6)
		TNT1 A 0 radius_quake (3,3,0,10,0)
		RSPK BCDE 2
		stop
	crash:
		TNT1 A 0 
		TNT1 A 0 
		TNT1 A 0 A_PlaySound("Kustam/KickMiss", 5)
		TNT1 A 0 A_PlaySound("Kustam/KickMiss", 6)
		TNT1 A 0 radius_quake (4,8,0,15,0)
		RSPK AAFG 2
		stop
	}
}


actor DarkRubypellet
{
	+notimefreeze
	+FORCEXYBILLBOARD	
	+bright
	Projectile
	damage (8)
	speed 20
	radius 9
	height 12
    Scale 2
	alpha 0.95
	+BLOODSPLATTER
	+NOEXTREMEDEATH
	Decal DoomImpScorch
	translation "168:191=195:207"
	states
	{
	Spawn:
		RBPT A 1
		TNT1 A 1
		RBPT A 1
		TNT1 A 1
		RBPT A 1
		TNT1 A 1
		RBPT B 1
		TNT1 A 1
		RBPT B 1
		TNT1 A 1
		RBPT B 1
		TNT1 A 1
		RBPT B 1
		TNT1 A 1
	flying:
		RBPT C 1
		TNT1 A 1
		loop
	Death:
		TNT1 A 0
		RBPT DEFG 2
		stop
	XDeath:
		TNT1 A 0
		TNT1 A 0
		TNT1 A 0 a_playsound ("kustam/marked",0,1,0,0.8)
		RBPT DEFG 2
		stop
	}
}

actor DarkRapidpellet
{
	+notimefreeze
	+FORCEXYBILLBOARD	
	+bright
	species "enemyshot"
	Projectile
	damage (5)
	speed 20
	height 9
	radius 12
    Scale 2
	alpha 0.95
	+BLOODSPLATTER
	+NOEXTREMEDEATH
	Decal DoomImpScorch
	translation "168:191=195:207"
	states
	{
	Spawn:
		RBPT J 1
		TNT1 A 1
		loop
	death:
		RBPT I 4
		stop
	XDeath:
		TNT1 A 0
		TNT1 A 0
		TNT1 A 0 a_playsound ("kustam/marked",0,1,0,0.8)
		RBPT GI 2
		stop
	}
}




actor DarkAimTimer : inventory
{inventory.maxamount 30}
