void AddTimePenalty(float timePenalty) { if (_timePenaltyLocked) { return; } _timePenaltyLocked = true; Invoke("UnlockTimePenalty", _timePenaltyTimer); float totalTime; if (_reverseTime) { if (_currentTime > 0) { _currentTime -= timePenalty; TestGameOverConditions(); } totalTime = _currentTime; } else { _timePenalty += timePenalty; totalTime = _timePenalty + Time.timeSinceLevelLoad - _startTime; } timeElapsedLabel.text = TimeToString(totalTime); _timeLabelFactory.ActivateLabel(((int)timePenalty).ToString()); }