actor MinibonerSpawner
{
	projectile
	+notimefreeze
    +FORCEXYBILLBOARD	
	+LOOKALLAROUND
	+bloodlessimpact
	+painless
	+ripper
	+bright
	+bounceonceilings
	+bounceonwalls
	+thruspecies
	+randomize
	species "enemyshot"
	-nogravity
	radius 12
	speed 5
	damage (0)
	bouncecount 2
    gravity 0.8
	Scale 0.35
	states
	{
	spawn:
		TNT1 A 0
		TNT1 A 0 a_jump (120,"spawn2","spawn3","spawn4")
		MBNR M 2
		TNT1 AAAA 0 A_SpawnItemEx("LavaLazerTrail",frandom(-2,2),frandom(-2,2),frandom(-2,2))
		TNT1 AAAA 0 A_SpawnItemEx("LavaLazerSmoke",frandom(-4,4),frandom(-4,4),frandom(-4,4))
		TNT1 AAAA 0 a_spawnitemex ("Missilefire",Frandom(-5,5),Frandom(-5,5),Frandom(-5,5),Frandom(-50,50)/20.0,Frandom(-50,50)/20.0,Frandom(-50,50)/20.0,0,160)
		MBNR N 2 a_playsound ("doomboner/swing",6,0.60)
		TNT1 AAAAA 0 A_SpawnItemEx("LavaLazerTrail",frandom(-2,2),frandom(-2,2),frandom(-2,2))
		TNT1 AAAA 0 A_SpawnItemEx("LavaLazerSmoke",frandom(-4,4),frandom(-4,4),frandom(-4,4))
		TNT1 AAAA 0 a_spawnitemex ("Missilefire",Frandom(-5,5),Frandom(-5,5),Frandom(-5,5),Frandom(-50,50)/20.0,Frandom(-50,50)/20.0,Frandom(-50,50)/20.0,0,160)
		MBNR O 2
		TNT1 AAAA 0 A_SpawnItemEx("LavaLazerTrail",frandom(-2,2),frandom(-2,2),frandom(-2,2))
		TNT1 AAAAA 0 A_SpawnItemEx("LavaLazerSmoke",frandom(-4,4),frandom(-4,4),frandom(-4,4))
		TNT1 AAAAA 0 a_spawnitemex ("Missilefire",Frandom(-5,5),Frandom(-5,5),Frandom(-5,5),Frandom(-50,50)/20.0,Frandom(-50,50)/20.0,Frandom(-50,50)/20.0,0,160)
		MBNR P 2 a_playsound ("doomboner/swing",6,0.60)
		loop
	spawn2:
		MBNR N 2 a_playsound ("doomboner/swing",6,0.60)
		TNT1 AAAA 0 A_SpawnItemEx("LavaLazerTrail",frandom(-2,2),frandom(-2,2),frandom(-2,2))
		TNT1 AAAA 0 A_SpawnItemEx("LavaLazerSmoke",frandom(-4,4),frandom(-4,4),frandom(-4,4))
		TNT1 AAAAA 0 a_spawnitemex ("Missilefire",Frandom(-5,5),Frandom(-5,5),Frandom(-5,5),Frandom(-50,50)/20.0,Frandom(-50,50)/20.0,Frandom(-50,50)/20.0,0,160)
		MBNR O 2
		TNT1 AAAAA 0 A_SpawnItemEx("LavaLazerTrail",frandom(-2,2),frandom(-2,2),frandom(-2,2))
		TNT1 AAAA 0 A_SpawnItemEx("LavaLazerSmoke",frandom(-4,4),frandom(-4,4),frandom(-4,4))
		TNT1 AAAAA 0 a_spawnitemex ("Missilefire",Frandom(-5,5),Frandom(-5,5),Frandom(-5,5),Frandom(-50,50)/20.0,Frandom(-50,50)/20.0,Frandom(-50,50)/20.0,0,160)
		MBNR P 2 a_playsound ("doomboner/swing",6,0.60)
		TNT1 AAAA 0 A_SpawnItemEx("LavaLazerTrail",frandom(-2,2),frandom(-2,2),frandom(-2,2))
		TNT1 AAA 0 A_SpawnItemEx("LavaLazerSmoke",frandom(-4,4),frandom(-4,4),frandom(-4,4))
		TNT1 AAAA 0 a_spawnitemex ("Missilefire",Frandom(-5,5),Frandom(-5,5),Frandom(-5,5),Frandom(-50,50)/20.0,Frandom(-50,50)/20.0,Frandom(-50,50)/20.0,0,160)
		MBNR M 2
		loop
	Spawn3:
		MBNR P 2
		TNT1 AAAA 0 A_SpawnItemEx("LavaLazerTrail",frandom(-2,2),frandom(-2,2),frandom(-2,2))
		TNT1 AAAAA 0 A_SpawnItemEx("LavaLazerSmoke",frandom(-4,4),frandom(-4,4),frandom(-4,4))
		TNT1 AAAAA 0 a_spawnitemex ("Missilefire",Frandom(-5,5),Frandom(-5,5),Frandom(-5,5),Frandom(-50,50)/20.0,Frandom(-50,50)/20.0,Frandom(-50,50)/20.0,0,160)
		MBNR O 2 a_playsound ("doomboner/swing",6,0.60)
		TNT1 AAAA 0 A_SpawnItemEx("LavaLazerTrail",frandom(-2,2),frandom(-2,2),frandom(-2,2))
		TNT1 AAAA 0 A_SpawnItemEx("LavaLazerSmoke",frandom(-4,4),frandom(-4,4),frandom(-4,4))
		TNT1 AAAAA 0 a_spawnitemex ("Missilefire",Frandom(-5,5),Frandom(-5,5),Frandom(-5,5),Frandom(-50,50)/20.0,Frandom(-50,50)/20.0,Frandom(-50,50)/20.0,0,160)
		MBNR N 2
		TNT1 AAAA 0 A_SpawnItemEx("LavaLazerTrail",frandom(-2,2),frandom(-2,2),frandom(-2,2))
		TNT1 AAAA 0 A_SpawnItemEx("LavaLazerSmoke",frandom(-4,4),frandom(-4,4),frandom(-4,4))
		TNT1 AAAAA 0 a_spawnitemex ("Missilefire",Frandom(-5,5),Frandom(-5,5),Frandom(-5,5),Frandom(-50,50)/20.0,Frandom(-50,50)/20.0,Frandom(-50,50)/20.0,0,160)
		MBNR M 2 a_playsound ("doomboner/swing",6,0.60)
		loop
	Spawn4:
		MBNR N 2
		TNT1 AAAAA 0 A_SpawnItemEx("LavaLazerTrail",frandom(-2,2),frandom(-2,2),frandom(-2,2))
		TNT1 AAAA 0 A_SpawnItemEx("LavaLazerSmoke",frandom(-4,4),frandom(-4,4),frandom(-4,4))
		TNT1 AAAA 0 a_spawnitemex ("Missilefire",Frandom(-5,5),Frandom(-5,5),Frandom(-5,5),Frandom(-50,50)/20.0,Frandom(-50,50)/20.0,Frandom(-50,50)/20.0,0,160)
		MBNR M 2 a_playsound ("doomboner/swing",6,0.60)
		TNT1 AAAAA 0 A_SpawnItemEx("LavaLazerTrail",frandom(-2,2),frandom(-2,2),frandom(-2,2))
		TNT1 AAAA 0 A_SpawnItemEx("LavaLazerSmoke",frandom(-4,4),frandom(-4,4),frandom(-4,4))
		TNT1 AAAA 0 a_spawnitemex ("Missilefire",Frandom(-5,5),Frandom(-5,5),Frandom(-5,5),Frandom(-50,50)/20.0,Frandom(-50,50)/20.0,Frandom(-50,50)/20.0,0,160)
		MBNR O 2
		TNT1 AAAA 0 A_SpawnItemEx("LavaLazerTrail",frandom(-2,2),frandom(-2,2),frandom(-2,2))
		TNT1 AAAA 0 A_SpawnItemEx("LavaLazerSmoke",frandom(-4,4),frandom(-4,4),frandom(-4,4))
		TNT1 AAAA 0 a_spawnitemex ("Missilefire",Frandom(-5,5),Frandom(-5,5),Frandom(-5,5),Frandom(-50,50)/20.0,Frandom(-50,50)/20.0,Frandom(-50,50)/20.0,0,160)
		MBNR P 2 a_playsound ("doomboner/swing",6,0.60)
		loop
		
	death:
		TNT1 A 0 a_spawnitem ("MiniBoner")
		stop
	}
}



Actor MiniBoner
{
	Health 20
    Radius 25
    Height 10
	projectilepassheight 50
    Speed 14
 	Painchance "BarrelGrab", 0
	mass 1000
    scale 0.35
	MeleeRange 35
	Monster
    +FLOORCLIP
	+lookallaround
	+Thruspecies
	+bright
	+DONTCORPSE
	+noblooddecals
	-countkill
	species "EnemyShot"
	bloodtype minibonespray
	SeeSound "miniboner/sight"
    PainSound "miniboner/hurt"
    DeathSound "miniboner/die"
	activesound "boner/rattle"
	HitObituary "%o was brought down low by a tiny skeleton."
	
	var int user_bonertimer;
	states
	{
	spawn:
		TNT1 A 0
		TNT1 A 0 A_JumpIfInventory("BoneActive", 1, "DanceAway")
		MBNR AB 2 a_look
		goto idle
	idle:
		TNT1 A 0
		TNT1 A 0 a_jumpif (user_bonertimer >= 25, "death")
		TNT1 A 0 a_look
		MBNR AABBCC 1 A_wander
		TNT1 A 0 a_look
		MBNR DDEEFF 1 A_wander
		TNT1 A 0 a_look
		TNT1 A 0 a_setuservar("user_bonertimer", user_bonertimer+1)
		TNT1 A 0 a_jump (100, "dance")
		loop
	see:
		TNT1 A 0
		TNT1 A 0 A_GiveInventory ("BoneActive",1)
		MBNR AABBCCDDEEFF 2 A_Chase
		TNT1 A 0 a_setuservar("user_bonertimer", user_bonertimer+1)
		TNT1 A 0 a_jumpif (user_bonertimer >= 25, "death")
		loop
	Melee:
		MBNR G 0 
		MBNR G 4 A_facetarget
		MBNR H 3 A_FaceTarget
		TNT1 A 0 a_playsound ("miniboner/sight",CHAN_VOICE,1,0,0.9)
		MBNR I 8 A_custommeleeattack (random(3, 8), "doomboner/punch","doomboner/swing")
		TNT1 A 0 a_setuservar("user_bonertimer", user_bonertimer+1)
		TNT1 A 0 a_jumpif (user_bonertimer >= 25, "death")
		Goto See
	pain:
		MBNR L 5
		TNT1 A 0 A_TakeInventory ("PowerTerrorStatus",999)
 		TNT1 A 0 A_TakeInventory ("PowerKickedStatus",999)
		MBNR L 5 A_Pain
		Goto See
	Pain.Dazer:
	Pain.Superkick:
    	MBNR L 3
  		TNT1 A 0 A_GiveInventory ("KickDazer",1)
		MBNR L 3 A_Pain
		Goto Dazed
    Dazed:
        MBNR L 2
		TNT1 A 0 A_SetAngle (angle+15)
		TNT1 A 0 A_JumpIfInventory ("PowerKickedStatus",1,"Dazed")
		Goto See
	Death:
		MBNR L 1 A_Scream
		MBNR L 1 A_NoBlocking
		TNT1 A 0 A_Scream
		TNT1 A 0 a_playsound ("skeleton/gib",0,1,0,0.6)
		TNT1 AA 0 a_spawnitemex ("SkellytunSkullDeath",random(-16,16),random(-16,16),42,random(-100,100)/20.0,random(-100,100)/20.0,random(-100,100)/20.0,0)
		TNT1 AAAAA 0 a_spawnitemex("minibones",0,0,32,random(-20,15),random(-8,16),random(5,10))
		TNT1 AA 0 a_spawnitemex("minibones",0,0,32,random(-8,18),random(-3,18),random(5,10))
		ISKL AAAA 0 a_spawnitemex("minibones",0,0,32,random(-20,9),random(-5,20),10)
		ISKL AAA 0 a_spawnitemex("minibones",0,0,32,random(-13,10),random(-8,20),12)
		ISKL AAAA 0 a_spawnitemex("minihipbone",0,0,0,random(-10,10),random(-10,10),10)
		ISKL AA 0 a_spawnitemex("miniribbone",0,0,0,random(-10,10),random(-10,10),12)
		TNT1 A 10
		Stop
	dance:
		TNT1 A 0
		TNT1 A 0
		MBNR Q 4 a_playsound ("boner/rattle",0)
		MBNR R 4
		TNT1 A 0 a_setuservar("user_bonertimer", user_bonertimer+1)
		MBNR Q 4 a_chase
		TNT1 A 0 a_playsound ("boner/rattle",0)
		MBNR R 4 a_chase
		MBNR Q 4 a_chase
		MBNR R 4 a_chase
		MBNR Q 4 a_chase
		MBNR R 4
		goto see
	danceaway:
		TNT1 A 0
		TNT1 A 0
		TNT1 A 0 a_playsound ("boner/rattle",0)
		MBNR Q 4 a_wander
		MBNR R 4 a_wander
		TNT1 A 0 a_playsound ("boner/rattle",0)
		TNT1 A 0 a_setuservar("user_bonertimer", user_bonertimer+1)
		MBNR Q 4 
		MBNR R 4 
		MBNR Q 4 a_wander
		MBNR R 4 a_wander
		MBNR Q 4 a_wander
		MBNR R 4 a_wander
		goto see	
	}
}

ACTOR Boneactive : Inventory{}