protected void DamageTimeEffect(TimeEffectRequest hitTimeEffect)
 {
     if (hitTimeEffect)
     {
         TimeManager.HandleRequest(hitTimeEffect);
     }
 }
Example #2
0
    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();
    }
Example #3
0
    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();
            }
        }
    }