// This file has been autogenerated using CoD4X 1.8 server. //
// If it contains wrong data, please create issue here:     //
//    https://github.com/callofduty4x/CoD4x_Server/issues   //
#include code\utility;

init()
{
	if( !level.leiizko_dvars[ "fx_enable" ] )
		return;
	
	precacheShader( "bloodsplat1" );
	precacheShader( "bloodsplat2" );
	precacheShader( "bloodsplat3" );

	level.leiizko_fx = [];
	level.leiizko_fx[ "cash" ] = loadFX( "props/cash_player_drop" );
	level.leiizko_fx[ "bloodpool" ] = loadFX( "knifermod/bloodpool" );
	level.leiizko_fx[ "flesh_hit_knife" ] = loadFX( "knifermod/flesh_hit_knife" );
	level.leiizko_fx[ "blood_splat" ] = loadFX( "knifermod/blood_splat" );
	level.leiizko_fx[ "blood_splat2" ] = loadFX( "knifermod/blood_splat2" );

	thread code\events::addDeathEvent( ::onPlayerKilled );
	thread code\events::addDamageEvent( ::onPlayerDamage );
}

onPlayerDamage( eInflictor, eAttacker, iDamage, iDFlags, sMeansOfDeath, sWeapon, vPoint, vDir, sHitLoc, psOffsetTime )
{
	if( sMeansOfDeath == "MOD_MELEE" )
	{
		if( level.leiizko_dvars[ "fx_knife_blood" ] )
			self thread splat();
		if( level.leiizko_dvars[ "fx_screen_blood" ] )
			eAttacker thread grapeFruit();
	}
}

onPlayerKilled( eInflictor, attacker, iDamage, sMeansOfDeath, sWeapon, vDir, sHitLoc, psOffsetTime, deathAnimDuration )
{
	corpse = self ClonePlayer( deathAnimDuration );
	
	if( isDefined( corpse ) )
	{
		if( level.leiizko_dvars[ "fx_death_pool" ] )
			corpse thread pool();
		if( level.leiizko_dvars[ "fx_death_cash" ] )
			cash = PlayFX( level.leiizko_fx[ "cash" ], self.origin );
	}
}

pool()
{
	self endon( "disconnect" );
	level endon( "game_ended" );
	
	wait 1;
	
	if( isDefined( self ) )
		pool = PlayFX( level.leiizko_fx[ "bloodpool" ], self.origin );
}

splat()
{
	self endon( "disconnect" );
	level endon( "game_ended" );
	
	splat = PlayFX( level.leiizko_fx[ "flesh_hit_knife" ], self.origin + ( 0, 0, 32 ) );
}

grapeFruit()
{
	self endon( "disconnect" );
	level endon( "game_ended" );

	hud = NewClientHudElem( self );
	hud.alignX = "center";
	hud.alignY = "middle";
	hud.horzalign = "center";
	hud.vertalign = "middle";
	hud.alpha = 1;
	hud.x = RandomIntRange(-320,320);
	hud.y = RandomIntRange(-240,240);
	hud setShader( "bloodsplat" + (RandomInt(3)+1), 512, 512 );
	wait 1;
	hud FadeOverTime(3);
	hud.alpha = 0;
	wait 3;
	
	if( isDefined( hud ) )
		hud destroy();
}