Saline.c
class SalineMdfr: ModifierBase
{
float m_RegenTime;
override void Init()
{
m_TrackActivatedTime = true;
m_IsPersistent = true;
m_ID = eModifiers.MDF_SALINE;
m_TickIntervalInactive = DEFAULT_TICK_TIME_INACTIVE;
m_TickIntervalActive = DEFAULT_TICK_TIME_ACTIVE;
m_RegenTime = CalculateRegenTime();
DisableActivateCheck();
}
override bool ActivateCondition(PlayerBase player)
{
return false;
}
override bool DeactivateCondition(PlayerBase player)
{
float attached_time = GetAttachedTime();
if ( attached_time > m_RegenTime )
{
return true;
}
else
{
return false;
}
}
override void OnReconnect(PlayerBase player)
{
OnActivate(player);
}
override void OnActivate(PlayerBase player)
{
player.IncreaseHealingsCount();
/*
if( player.GetNotifiersManager() )
player.GetNotifiersManager().ActivateByType(eNotifiers.NTF_PILLS);
*/
}
override void OnDeactivate(PlayerBase player)
{
player.DecreaseHealingsCount();
/*
if( player.GetNotifiersManager() )
player.GetNotifiersManager().DeactivateByType(eNotifiers.NTF_PILLS);
*/
}
override void OnTick(PlayerBase player, float deltaT)
{
player.AddHealth("", "Blood", PlayerConstants.SALINE_BLOOD_REGEN_PER_SEC * deltaT);
player.GetStatWater().Add( PlayerConstants.SALINE_WATER_REGEN_PER_SEC * deltaT );
}
float CalculateRegenTime()
{
float regen_time = PlayerConstants.SALINE_LIQUID_AMOUNT / PlayerConstants.SALINE_BLOOD_REGEN_PER_SEC;
return regen_time;
}
};