public void ShowConsumption(CivilBuilding building, ResourceConsumption consumption) { var extraAmount = building.GetCurrentExtraInhabitantsForResource(consumption.ResourceToConsume); this.m_currentExtraPesantsAmount.text = $"{extraAmount:+#;-#;0}/+{consumption.ExtraInhibitants}"; this.m_resourceIcon.sprite = consumption.ResourceToConsume.Icon; }
private void Consume(ResourceConsumption consumption) { var consumptionAmount = consumption.ConsumptionPerMinute * this.CurrentInhabitants / 60f; var oldAmount = this.CurrentInhabitants; if (consumption.ResourceToConsume.ResourceController.CanAfford(consumptionAmount)) { consumption.ResourceToConsume.ResourceController.TryUseResource(consumptionAmount); if (this.m_currentExtraInhibitantsPerResource[consumption.ResourceToConsume] <= consumption.ExtraInhibitants) { this.CurrentInhabitants -= this.m_currentExtraInhibitantsPerResource[consumption.ResourceToConsume]; this.m_currentExtraInhibitantsPerResource[consumption.ResourceToConsume] = consumption.ExtraInhibitants; this.CurrentInhabitants += this.m_currentExtraInhibitantsPerResource[consumption.ResourceToConsume]; } } else { this.CurrentInhabitants -= this.m_currentExtraInhibitantsPerResource[consumption.ResourceToConsume]; this.m_currentExtraInhibitantsPerResource[consumption.ResourceToConsume] = 0; } this.CurrentInhabitants = Mathf.Clamp(this.CurrentInhabitants, 0, this.m_data.MaxInhibitants); this.m_data.Resource.ResourceController.CalulateDelta(this.CurrentInhabitants - oldAmount); }
public void Show(CivilBuilding building, ResourceConsumption consumption) { this.m_resourceIcon.sprite = consumption.ResourceToConsume.Icon; this.m_consumptionPerMinute.text = $"{building.CurrentInhabitants * consumption.ConsumptionPerMinute}/min"; }