DIFF

CAContinuousQuantityExtinguish.c

class CAContinuousQuantityExtinguish : CAContinuousQuantityRepeat
{
	private float m_WetnessGainMultiplier = 1.0;
	
	void CAContinuousQuantityExtinguish(float quantity_used_per_second, float time_to_repeat, float wetness_gain_multiplier)
	{
		m_QuantityUsedPerSecond = quantity_used_per_second;
		m_DefaultTimeToRepeat 	= time_to_repeat;
		m_WetnessGainMultiplier = wetness_gain_multiplier;
	}
	
	override void CalcAndSetQuantity(ActionData action_data)
	{	
		if (g_Game.IsServer())
		{
			if ( m_SpentUnits )
			{
				m_SpentUnits.param1 = m_SpentQuantity;
				SetACData(m_SpentUnits);
			}
			
			Object targetObject = action_data.m_Target.GetObject();
			if ( targetObject )
			{
				FireplaceBase fireplace = FireplaceBase.Cast(targetObject);
				
				//add wetness to fireplace targets
				float wetness = (m_SpentQuantity / 1000) * m_WetnessGainMultiplier;
				fireplace.AddWetnessToFireplace(wetness);
				
				//subtract quantity from water source
				action_data.m_MainItem.AddQuantity(-m_SpentQuantity);
			}
		}
	}
	
	void MultiplyQuantityUsed(float coef)
	{
		m_QuantityUsedPerSecond *= coef;
	}
}