// Update is called once per frame void Update() { timer += Time.deltaTime; if (currentHeat > heatSinkCapacity && !overHeated) { overHeated = true; TransferHeatToMainHeatSink(); OverHeatedEventInfo ohei = new OverHeatedEventInfo(gameObject, "Overheat", true); EventCoordinator.ActivateEvent(ohei); } else if (timer > timeBetweenCheck && !overHeated) { timer = 0; TransferHeatToMainHeatSink(); } if (ammountDrained > 0) { PassiveDrain(); } }
void PassiveDrain() { float drained = passiveDraining * Time.deltaTime; if (overHeated) { currentHeat -= drained * flushingMultiplier; ammountDrained -= drained * flushingMultiplier; if (currentHeat <= 0) { currentHeat = 0; ammountDrained = 0; overHeated = false; OverHeatedEventInfo ohei = new OverHeatedEventInfo(gameObject, "Not Overheat", false); EventCoordinator.ActivateEvent(ohei); } } else { currentHeat -= drained; ammountDrained -= drained; } }