internal ProcessTickResult OnTick() { var res = new ProcessTickResult(); var stageResult = CurrentStage.OnTick(); if (stageResult.Completed) { res.StageCompleted = true; CurrentStageIndex++; } if (Completed) { res.Completed = true; } else { res.CurrentStageTimeLeft = CurrentStage.EllapsedTime; } return(res); }