DIFF

HeavyMetalAgent.c

class HeavyMetalAgent : AgentBase
{
	override void Init()
	{
		m_Type 					= eAgents.HEAVYMETAL;
		m_TransferabilityIn		= 0.5;
		m_TransferabilityOut	= 0;
		m_AntibioticsResistance = 1; //deprecated, use m_DrugResistances to initialize this agents resistance to a specific drug, as seen on lines 11
		m_MaxCount 				= 600;
		m_Potency 				= EStatLevels.MEDIUM;
		m_DrugResistances.Set(EMedicalDrugsType.CHELATION, 0.0);
	}
	
	override bool GrowDuringMedicalDrugsAttack(EMedicalDrugsType drugType, PlayerBase player)
	{
		if (drugType == EMedicalDrugsType.CHELATION)
			return false;

		return super.GrowDuringMedicalDrugsAttack(drugType, player);
	}
	
	override float GetInvasibilityEx(PlayerBase player)
	{
		if (player.GetModifiersManager().IsModifierActive(eModifiers.MDF_HEAVYMETAL3))
			return 0;
		
		return player.GetStomach().GetVolumeContainingAgent01(eAgents.HEAVYMETAL);
	}
	
	override EStatLevels GetPotencyEx(PlayerBase player)
	{
		if (player.GetModifiersManager().IsModifierActive(eModifiers.MDF_CHELATION))
			return EStatLevels.LOW;
		
		if (player.GetModifiersManager().IsModifierActive(eModifiers.MDF_HEAVYMETAL3))
			return EStatLevels.GREAT;
		
		if (player.GetStomach().GetVolumeContainingAgent01(eAgents.HEAVYMETAL) > 0.0)
			return EStatLevels.GREAT;
		
		return m_Potency;
	}
	
	override float GetDieOffSpeedEx(PlayerBase player)
	{
		if (player.GetModifiersManager().IsModifierActive(eModifiers.MDF_CHELATION))
			return GetDieOffSpeed() * 0.3;

		return super.GetDieOffSpeedEx(player);
	}
}