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)
{
}
};