cacontinuousquantityextinguish.c 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. class CAContinuousQuantityExtinguish : CAContinuousQuantityRepeat
  2. {
  3. private float m_WetnessGainMultiplier = 1.0;
  4. void CAContinuousQuantityExtinguish(float quantity_used_per_second, float time_to_repeat, float wetness_gain_multiplier)
  5. {
  6. m_QuantityUsedPerSecond = quantity_used_per_second;
  7. m_DefaultTimeToRepeat = time_to_repeat;
  8. m_WetnessGainMultiplier = wetness_gain_multiplier;
  9. }
  10. override void CalcAndSetQuantity(ActionData action_data)
  11. {
  12. if (GetGame().IsServer())
  13. {
  14. if ( m_SpentUnits )
  15. {
  16. m_SpentUnits.param1 = m_SpentQuantity;
  17. SetACData(m_SpentUnits);
  18. }
  19. Object targetObject = action_data.m_Target.GetObject();
  20. if ( targetObject )
  21. {
  22. FireplaceBase fireplace = FireplaceBase.Cast(targetObject);
  23. //add wetness to fireplace targets
  24. float wetness = (m_SpentQuantity / 1000) * m_WetnessGainMultiplier;
  25. fireplace.AddWetnessToFireplace(wetness);
  26. //subtract quantity from water source
  27. action_data.m_MainItem.AddQuantity(-m_SpentQuantity);
  28. }
  29. }
  30. }
  31. void MultiplyQuantityUsed(float coef)
  32. {
  33. m_QuantityUsedPerSecond *= coef;
  34. }
  35. }