foodpoisonagent.c 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. class FoodPoisonAgent : AgentBase
  2. {
  3. override void Init()
  4. {
  5. m_Type = eAgents.FOOD_POISON;
  6. m_Invasibility = 1.0;
  7. m_TransferabilityIn = 1.0;
  8. m_TransferabilityOut = 0.0;
  9. m_AntibioticsResistance = 1.0;
  10. m_MaxCount = 800;
  11. m_Potency = EStatLevels.GREAT;
  12. m_DieOffSpeed = 0.0;
  13. m_Digestibility = 0.5;
  14. }
  15. override EStatLevels GetPotencyEx(PlayerBase player)
  16. {
  17. if (player.GetStomach().GetVolumeContainingAgent01(eAgents.FOOD_POISON) == 0.0)
  18. return EStatLevels.LOW;
  19. return super.GetPotencyEx(player);
  20. }
  21. override float GetInvasibilityEx(PlayerBase player)
  22. {
  23. return player.GetStomach().GetVolumeContainingAgent01(eAgents.FOOD_POISON);
  24. }
  25. override float GetDieOffSpeedEx(PlayerBase player)
  26. {
  27. if (player.GetModifiersManager().IsModifierActive(eModifiers.MDF_CHARCOAL))
  28. return 0.5;
  29. if (player.m_AgentPool.GetSingleAgentCount(eAgents.FOOD_POISON) <= PoisoningMdfr.AGENT_THRESHOLD_DEACTIVATE)
  30. return 0.3;
  31. return 0.0;
  32. }
  33. override float GetDigestibilityEx(PlayerBase player)
  34. {
  35. if (!player.GetModifiersManager().IsModifierActive(eModifiers.MDF_POISONING))
  36. return 1.0;
  37. return super.GetDigestibilityEx(player);
  38. }
  39. }