protected void DamageTimeEffect(TimeEffectRequest hitTimeEffect) { if (hitTimeEffect) { TimeManager.HandleRequest(hitTimeEffect); } }
public static void HandleRequest(TimeEffectRequest request) { request.lifeRemained = request.duration; switch (request.layer) { case TimeEffectLayer.Globe: globalRequests.Add(request); break; case TimeEffectLayer.Story: storyRequests.Add(request); break; case TimeEffectLayer.Action: actionRequests.Add(request); break; } CalculateTimeScale(); }
private void Update() { if (!isPaused) { bool flag = false; float timeDiff = Time.unscaledDeltaTime; for (int i = 0; i < globalRequests.Count; i++) { TimeEffectRequest request = globalRequests[i]; request.lifeRemained -= timeDiff; if (request.lifeRemained <= 0f) { globalRequests.RemoveAt(i); flag = true; } } for (int i = 0; i < storyRequests.Count; i++) { TimeEffectRequest request = storyRequests[i]; request.lifeRemained -= timeDiff; if (request.lifeRemained <= 0f) { storyRequests.RemoveAt(i); flag = true; } } for (int i = 0; i < actionRequests.Count; i++) { TimeEffectRequest request = actionRequests[i]; request.lifeRemained -= timeDiff; if (request.lifeRemained <= 0f) { actionRequests.RemoveAt(i); flag = true; } } if (flag) { CalculateTimeScale(); } } }