DIFF

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