heavymetalagent.c 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. class HeavyMetalAgent : AgentBase
  2. {
  3. override void Init()
  4. {
  5. m_Type = eAgents.HEAVYMETAL;
  6. m_TransferabilityIn = 0.5;
  7. m_TransferabilityOut = 0;
  8. m_AntibioticsResistance = 1;
  9. m_MaxCount = 600;
  10. m_Potency = EStatLevels.MEDIUM;
  11. }
  12. override bool GrowDuringMedicalDrugsAttack(EMedicalDrugsType drugType, PlayerBase player)
  13. {
  14. if (drugType == EMedicalDrugsType.CHELATION)
  15. return false;
  16. return super.GrowDuringMedicalDrugsAttack(drugType, player);
  17. }
  18. override float GetInvasibilityEx(PlayerBase player)
  19. {
  20. if (player.GetModifiersManager().IsModifierActive(eModifiers.MDF_HEAVYMETAL3))
  21. return 0;
  22. return player.GetStomach().GetVolumeContainingAgent01(eAgents.HEAVYMETAL);
  23. }
  24. override EStatLevels GetPotencyEx(PlayerBase player)
  25. {
  26. if (player.GetModifiersManager().IsModifierActive(eModifiers.MDF_CHELATION))
  27. return EStatLevels.LOW;
  28. if (player.GetModifiersManager().IsModifierActive(eModifiers.MDF_HEAVYMETAL3))
  29. return EStatLevels.GREAT;
  30. if (player.GetStomach().GetVolumeContainingAgent01(eAgents.HEAVYMETAL) > 0.0)
  31. return EStatLevels.GREAT;
  32. return m_Potency;
  33. }
  34. override float GetDieOffSpeedEx(PlayerBase player)
  35. {
  36. if (player.GetModifiersManager().IsModifierActive(eModifiers.MDF_CHELATION))
  37. return GetDieOffSpeed() * 0.3;
  38. return super.GetDieOffSpeedEx(player);
  39. }
  40. }