//===BLOOD EFFECTS===
//Getting messy using Mortal Kombat 2 blood sprites

actor NewBloodSplatter : blood replaces Blood
{
	+dontblast
	+clientsideonly
	states
	{
	Spawn:
		TNT1 A 0
		TNT1 AAA 0 a_spawnitemex ("newbloodspray", 0, 0, 0, random (-6, 6), random (4, 8), random (1, 6))
		TNT1 A 0 a_spawnitemex ("newbloodspray", 0, 0, 0, random (-4, 3), random (2, 7), random (2, 8))
		TNT1 A 0 a_spawnitemex ("newbloodspray", 0, 0, 0, random (-4, 3), random (2, 7), random (2, 8))
		TNT1 AA 0 a_spawnitemex ("newbloodspray", 0, 0, 0, random (-3, 5), random (-3, 10), random (2, 5))
		stop
	}
}

actor newbloodspray : newbloodsplatter
{
	radius 1
	height 1
	speed 2
	scale 1
	gravity 1.5
	VSpeed 0
	PROJECTILE
	+thruactors
	+bounceonwalls
	-NOGRAVITY
	-NOCLIP
	states
	{
	Spawn:
		NBLD A 4 a_stop
		NBLD B 3
		NBLD C 4
		NBLD D 2	
		NBLD E 2
		NBLD F 2
		NBLD G 1
		stop
	death:
		TNT1 A 0 A_PlaySound("BloodSplat",CHAN_AUTO)		
		NBLD GHI 2
	fadeloop:	
		NBLD I 1 a_fadeout (0.2)
		NBLD I 1 a_fadeout (0.2)
		NBLD I 1 a_fadeout (0.2)
		NBLD I 1 a_fadeout (0.2)
		NBLD I 1 a_fadeout (0.2)
		stop
	}
}

actor knightbloodsplatter : newbloodspray
{
	states
	{
	Spawn:
		TNT1 AAA 0 a_spawnitemex ("knightbloodspray", 0, 0, 0, random (-6, 6), random (4, 8), random (1, 6))
		TNT1 A 0 a_spawnitemex ("knightbloodspray", 0, 0, 0, random (-4, 3), random (2, 7), random (2, 8))
		TNT1 A 0 a_spawnitemex ("knightbloodspray", 0, 0, 0, random (-4, 3), random (2, 7), random (2, 8))
		TNT1 AA 0 a_spawnitemex ("knightbloodspray", 0, 0, 0, random (-3, 5), random (-3, 10), random (2, 5))
		stop
	}
}
		
actor knightbloodspray : newbloodspray
{
	translation "0:255=%[0,0,0]:[0,1,0]"
}

actor slimebloodsplatter : newbloodspray
{
	states
	{
	Spawn:
		TNT1 AAA 0 a_spawnitemex ("slimebloodspray", 0, 0, 0, random (-6, 6), random (4, 8), random (1, 6))
		TNT1 A 0 a_spawnitemex ("slimebloodspray", 0, 0, 0, random (-4, 3), random (2, 7), random (2, 8))
		TNT1 A 0 a_spawnitemex ("slimebloodspray", 0, 0, 0, random (-4, 3), random (2, 7), random (2, 8))
		TNT1 AA 0 a_spawnitemex ("slimebloodspray", 0, 0, 0, random (-3, 5), random (-3, 10), random (2, 5))
		stop
	}
}

actor slimebloodspray : newbloodspray
{
	translation "168:191=[0,0,0]:[11,11,11]"
}

actor bigbloodsplatter
{
	+NOGRAVITY
	+NOINTERACTION
	+clientsideonly
	states
	{
	spawn:
		TNT1 A 0
		BBLD ABCDEFGHIJ 3
		stop
	}
}


actor nullblood : newbloodsplatter
{
	states
	{
	Spawn:
		TNT1 A 0
		TNT1 A 1
		stop
	}
}

	

//--------------------------------------------------------------

//BONE GIBS
//Ripped from Castlevania Bloodlines

actor bonegib
{
	+notimefreeze
	+cannotpush
	+movewithsector
	+dontsplash
	+noblockmap
	+missile
	+doombounce
	+thruactors
	+dontblast
	-nogravity
	+FORCEXYBILLBOARD	
	+LOOKALLAROUND
	+bounceonactors
	+randomize
	+clientsideonly
	seesound "gibs/bones"
	scale 1
	Gravity 1.2 
	bouncecount 3
    bouncefactor 0.45
	Speed 5
    States
    {
    Spawn:
		TNT1 A 0
        BNGB ABCD 2
		loop
	death:
		BNGB C 300
		BNGB C 10 a_fadeout (0.25)
  		BNGB C 10 a_fadeout (0.25)
		BNGB C 10 a_fadeout (0.25)
		BNGB C 10 a_fadeout (0.25)
		stop
    }
}

actor quickbonegib : bonegib
{
	translation "0:255=%[0,0,0]:[1,1,1]"
	scale 0.8
	states
	{
	spawn:
        BNGB ABCD 2
		loop
	death:
		BNGB C 150
		BNGB C 5 a_fadeout (0.25)
  		BNGB C 5 a_fadeout (0.25)
		BNGB C 5 a_fadeout (0.25)
		BNGB C 5 a_fadeout (0.25)
		stop
    }
}
		
actor bonespray
{
	states
	{
	spawn:
		TNT1 A 0 a_spawnitemex ("quickbonegib", 0, 0, 0, random (-6, 6), random (4, 8), random (1, 6))
		TNT1 AA 0 a_spawnitemex ("quickbonegib", 0, 0, 0, random (-4, 3), random (2, 7), random (2, 8))
		TNT1 AA 0 a_spawnitemex ("quickbonegib", 0, 0, 0, random (-4, 3), random (2, 7), random (2, 8))
		stop
	}
}

actor goldbonespray
{
	states
	{
	spawn:
		TNT1 A 0 a_spawnitemex ("goldbones", 0, 0, 0, random (-6, 6), random (4, 8), random (1, 6))
		TNT1 AA 0 a_spawnitemex ("goldbones", 0, 0, 0, random (-4, 3), random (2, 7), random (2, 8))
		TNT1 AA 0 a_spawnitemex ("goldbones", 0, 0, 0, random (-4, 3), random (2, 7), random (2, 8))
		stop
	}
}

actor minibonespray
{
	states
	{
	spawn:
		TNT1 A 0 a_spawnitemex ("minibones", 0, 0, 0, random (-6, 6), random (4, 8), random (1, 6))
		TNT1 AA 0 a_spawnitemex ("minibones", 0, 0, 0, random (-4, 3), random (2, 7), random (2, 8))
		TNT1 AA 0 a_spawnitemex ("minibones", 0, 0, 0, random (-4, 3), random (2, 7), random (2, 8))
		stop
	}
}

actor blackbonespray
{
	+bright
	scale 1.4
	states
	{
	spawn:
		TNT1 A 0 a_spawnitemex ("blackbones", 0, 0, 0, random (-6, 6), random (4, 8), random (1, 6))
		TNT1 AA 0 a_spawnitemex ("blackbones", 0, 0, 0, random (-4, 3), random (2, 7), random (2, 8))
		TNT1 AA 0 a_spawnitemex ("blackbones", 0, 0, 0, random (-4, 3), random (2, 7), random (2, 8))
		stop
	}
}

actor blackbones : bonegib
{
	states
	{
	spawn:
		BBGB ABCD 2
		loop
	death:
		BBGB C 300
		BBGB C 10 a_fadeout (0.25)
		BBGB C 10 a_fadeout (0.25)
		BBGB C 10 a_fadeout (0.25)
		BBGB C 10 a_fadeout (0.25)
		stop
	}
}

actor goldbones : bonegib
{
	scale 0.55
	states
	{
	spawn:
		GBGB ABCD 2
		loop
	death:
		GBGB C 300
		GBGB C 10 a_fadeout (0.25)
		GBGB C 10 a_fadeout (0.25)
		GBGB C 10 a_fadeout (0.25)
		GBGB C 10 a_fadeout (0.25)
		stop
	}
}

actor goldhipbone : bonegib
{
	scale 0.55	
	states
	{
	spawn:
		GHGB ABCD 2
		loop
	death:
		GHGB C 300
		GHGB C 10 a_fadeout (0.25)
		GHGB C 10 a_fadeout (0.25)
		GHGB C 10 a_fadeout (0.25)
		GHGB C 10 a_fadeout (0.25)
		stop
	}
}

actor goldribcage : bonegib
{
	scale 0.55
	states
	{
	spawn:
		GRIB ABCD 2
		loop
	death:
		GRIB C 300
		GRIB C 10 a_fadeout (0.25)
		GRIB C 10 a_fadeout (0.25)
		GRIB C 10 a_fadeout (0.25)
		GRIB C 10 a_fadeout (0.25)
		stop
	}
}



actor impskull : bonegib
{
	states
	{
	spawn:
		ISKL ABCD 2
		loop
	death:
		TNT1 A 0 a_jump (256, "skullstop1","skullstop2","skullstop3","skullstop4")
		stop
	skullstop1:
		ISKL A -1
		stop
	skullstop2:
		ISKL B -1
		stop
	skullstop3:
		ISKL C -1
		stop
	skullstop4:
		ISKL D -1
		stop
	}
}

actor hipbonegib : bonegib
{
	states
	{
	spawn:
		BNGH ABCD 2
		loop
	death:
		BNGH A 300
		BNGH A 10 a_fadeout (0.25)
		BNGH A 10 a_fadeout (0.25)
		BNGH A 10 a_fadeout (0.25)
		BNGH A 10 a_fadeout (0.25)
		stop
	}
}

actor ribbonegib : bonegib
{
	states
	{
	spawn:
		BNGR ABCD 2
		loop
	death:
		BNGR A 300
		BNGR A 10 a_fadeout (0.25)
		BNGR A 10 a_fadeout (0.25)
		BNGR A 10 a_fadeout (0.25)
		BNGR A 10 a_fadeout (0.25)
		stop
	}
}


//Mini bones
//used for mini boners


actor minibones : bonegib
{
	scale 0.55
}	


actor minihipbone : bonegib
{
	scale 0.55
	states
	{
	spawn:
		BNGH ABCD 2
		loop
	death:
		BNGH A 300
		BNGH A 10 a_fadeout (0.25)
		BNGH A 10 a_fadeout (0.25)
		BNGH A 10 a_fadeout (0.25)
		BNGH A 10 a_fadeout (0.25)
		stop
	}
}

actor miniribbone : bonegib
{
	scale 0.55
	states
	{
	spawn:
		BNGR ABCD 2
		loop
	death:
		BNGR A 300
		BNGR A 10 a_fadeout (0.25)
		BNGR A 10 a_fadeout (0.25)
		BNGR A 10 a_fadeout (0.25)
		BNGR A 10 a_fadeout (0.25)
		stop
	}
}

//==============================================================================================
//==============================================================================================
//==============================================================================================

//ARMOR CHUNKS
//Primarily used for living armor, sprite ripped from the 
//evil knight sprite itself

actor livingarmorblood
{
	states
	{
		spawn:
		TNT1 A 0 a_spawnitemex ("armorshrapnel", 0, 0, 0, random (-6, 6), random (4, 8), random (1, 6))
		TNT1 AA 0 a_spawnitemex ("armorshrapnel", 0, 0, 0, random (-4, 3), random (2, 7), random (2, 8))
		stop
	}
}

actor armorshrapnel : bonegib
{
	seesound "gibs/metalshrapnel"
	scale 0.80
	gravity 1.8
	bouncefactor 0.30
	states
	{
	Spawn:
		TNT1 A 0
		TNT1 A 0 A_PlaySound("silence", CHAN_VOICE)
	spinning:
		LABD ABCD 2
		loop
	death:
		LABD D 200
		LABD D 5 a_fadeout (0.25)
		LABD D 5 a_fadeout (0.25)
		LABD D 5 a_fadeout (0.25)
		LABD D 5 a_fadeout (0.25)
		stop
	}
}

actor livingarmorgib1 :	bonegib
{
	seesound "gibs/metalshrapnel"
	gravity 1.8
	bouncefactor 0.30
	states
	{
	spawn:
		LGB1 ABCD 2
		loop
	death:
		LGB1 A 200
		LGB1 A 5 a_fadeout (0.25)
		LGB1 A 5 a_fadeout (0.25)
		LGB1 A 5 a_fadeout (0.25)
		LGB1 A 5 a_fadeout (0.25)
		stop
	}
}

actor livingarmorgib2 : livingarmorgib1
{
	states
	{
	spawn:
		LGB2 ABCD 2
		loop
	death:
		LGB2 D 200
		LGB2 D 5 a_fadeout (0.25)
		LGB2 D 5 a_fadeout (0.25)
		LGB2 D 5 a_fadeout (0.25)
		LGB2 D 5 a_fadeout (0.25)
		stop
	}
}

actor livingarmorgib3 : livingarmorgib1
{
	states
	{
	spawn:
		LGB3 ABCD 2
		loop
	death:
		LGB3 D 200
		LGB3 D 5 a_fadeout (0.25)
		LGB3 D 5 a_fadeout (0.25)
		LGB3 D 5 a_fadeout (0.25)
		LGB3 D 5 a_fadeout (0.25)
		stop
	}
}

actor livingarmorgib4 : livingarmorgib1
{
	states
	{
	spawn:
		LGB4 ABCD 2
		loop
	death:
		LGB4 A 200
		LGB4 A 5 a_fadeout (0.25)
		LGB4 A 5 a_fadeout (0.25)
		LGB4 A 5 a_fadeout (0.25)
		LGB4 A 5 a_fadeout (0.25)
		stop
	}
}

actor livingarmorgib5 : livingarmorgib1
{
	states
	{
	spawn:
		LGB5 ABCD 2
		loop
	death:
		LGB5 B 200
		LGB5 B 5 a_fadeout (0.25)
		LGB5 B 5 a_fadeout (0.25)
		LGB5 B 5 a_fadeout (0.25)
		LGB5 B 5 a_fadeout (0.25)
		stop
	}
}

actor livingarmorgib6 : livingarmorgib1
{
	states
	{
	spawn:
		LGB6 ABCD 2
		loop
	death:
		LGB6 D 200
		LGB6 D 5 a_fadeout (0.25)
		LGB6 D 5 a_fadeout (0.25)
		LGB6 D 5 a_fadeout (0.25)
		LGB6 D 5 a_fadeout (0.25)
		stop
	}
}

//ICE SHARDS
//These are used for when frozen dudes die, ripped from a crystal sprite from Breath of Fire 2

actor icefragment : bonegib
{
	seesound "gibs/icefragment"
	scale 1.50
	gravity 1.2
	bouncefactor 0.70
	+bright
	states
	{
	Spawn:
		TNT1 A 0
		TNT1 A 0 A_PlaySound("silence", CHAN_VOICE)
	spinning:
		ICFG ABCDEFGH 2
		loop
	death:
		TNT1 A 0
		TNT1 A 0 a_jump (105,"ded2")
		ICFG I 100
		ICFG K 5 a_fadeout (0.25)
		ICFG K 5 a_fadeout (0.25)
		ICFG K 5 a_fadeout (0.25)
		ICFG K 5 a_fadeout (0.25)
		stop
	ded2:
		ICFG J 100
		ICFG K 5 a_fadeout (0.25)
		ICFG K 5 a_fadeout (0.25)
		ICFG K 5 a_fadeout (0.25)
		ICFG K 5 a_fadeout (0.25)
		stop
		
	}
}


//FATAL DRAW BURST
//The effect used for when enemies are slain with Blaz's fatal draw technique

actor fataldrawdeath
{
	Radius 8
	Height 5
	+clientsideonly
	PROJECTILE
	+BRIGHT
	+THRUACTORS
	+DONTBLAST
	states
	{
	spawn:
		TNT1 A 0
		TNT1 A 0 a_playsound ("gibs/fataldrawkill",0)
		FDXP ABC 2
		FDXP DEFG 2
		stop
	death:
		TNT1 A 1
		stop
	}
}

