DIFF

Bleeding.c

//checks for critical blood level and kills the character if bellow
class BleedingCheckMdfr: ModifierBase
{
	protected const float		BLOOD_DECREMENT_PER_SEC = -10;
	PluginAdminLog 				m_AdminLog;
		
	override void Init()
	{
		m_TrackActivatedTime 	= false;
		m_AnalyticsStatsEnabled = true;
		m_ID 					= eModifiers.MDF_BLEEDING;
		m_TickIntervalInactive 	= DEFAULT_TICK_TIME_INACTIVE;
		m_TickIntervalActive 	= DEFAULT_TICK_TIME_ACTIVE;
		
		if( g_Game.IsServer() )
		{
			m_AdminLog 				= PluginAdminLog.Cast( GetPlugin(PluginAdminLog) );
		}
		
		DisableDeactivateCheck();
	}

	override bool ActivateCondition(PlayerBase player)
	{
		float blood = player.GetHealth("","Blood");
		
		if( blood < PlayerConstants.BLOOD_THRESHOLD_FATAL )
		{
			return true;
		}
		return false;
		
	}

	override void OnActivate(PlayerBase player)
	{
		player.SetHealth("","",-1000);
		
		if ( m_AdminLog )
		{
			m_AdminLog.BleedingOut( player );
		}
	}

	override void OnDeactivate(PlayerBase player)
	{
		
	}

	override bool DeactivateCondition(PlayerBase player)
	{
		return false;
	}

	override void OnTick(PlayerBase player, float deltaT)
	{
		
	}
};