ImmuneSystem.c
class ImmuneSystemMdfr: ModifierBase
{
bool m_HasDisease;
bool m_HasHealings;
override void Init()
{
m_TrackActivatedTime = false;
m_ID = eModifiers.MDF_IMMUNE_SYSTEM;
m_TickIntervalInactive = DEFAULT_TICK_TIME_INACTIVE;
m_TickIntervalActive = DEFAULT_TICK_TIME_ACTIVE;
DisableDeactivateCheck();
}
override bool ActivateCondition(PlayerBase player)
{
return true;
}
override void OnActivate(PlayerBase player)
{
}
override void OnReconnect(PlayerBase player)
{
}
override bool DeactivateCondition(PlayerBase player)
{
return false;
}
override void OnTick(PlayerBase player, float deltaT)
{
// Debug.Log("ticking immune system", "agent");
float result = player.GetImmunity() * deltaT;
player.ImmuneSystemTick(result, deltaT);
// Debug.Log("result: "+result.ToString(), "agent");
if( m_HasDisease != player.HasDisease() )
{
if(player.HasDisease())
{
if( player.GetNotifiersManager() ) player.GetNotifiersManager().ActivateByType(eNotifiers.NTF_SICK);
}
else
{
if( player.GetNotifiersManager() ) player.GetNotifiersManager().DeactivateByType(eNotifiers.NTF_SICK);
}
m_HasDisease = player.HasDisease();
}
if( m_HasHealings != player.HasHealings() )
{
if( player.HasHealings() )
{
if( player.GetNotifiersManager() )
player.GetNotifiersManager().ActivateByType(eNotifiers.NTF_PILLS);
}
else
{
if( player.GetNotifiersManager() )
player.GetNotifiersManager().DeactivateByType(eNotifiers.NTF_PILLS);
}
m_HasHealings = player.HasHealings();
}
}
};