Ejemplo n.º 1
0
        public void SetMax(CameraEffectsInfo e1, CameraEffectsInfo e2)
        {
            shakeIntensity = Mathf.Max(e1.shakeIntensity, e2.shakeIntensity);

            effectSet = e1.effectSet | e2.effectSet;
        }
Ejemplo n.º 2
0
 public void Copy(CameraEffectsInfo e)
 {
     shakeIntensity = e.shakeIntensity;
     effectSet      = e.effectSet;
 }
Ejemplo n.º 3
0
    // Update is called once per frame
    void Update()
    {
        if (temporalEffectList.Count > 0 || continousEffectList.Count > 0)
        {
            p0Effects.Reset();
            p1Effects.Reset();
            p2Effects.Reset();

            finalEffects.Reset();

            if (!pauseEffects)
            {
                for (int i = temporalEffectList.Count - 1; i >= 0; --i)
                {
                    TemporalEffectInfo effect = temporalEffectList[i];
                    effect.Update();

                    if (effect.duration > 0)
                    {
                        switch (effect.player)
                        {
                        case 0:
                            currentPlayerEffects = p0Effects;
                            break;

                        case 1:
                            currentPlayerEffects = p1Effects;
                            break;

                        case 2:
                            currentPlayerEffects = p2Effects;
                            break;
                        }

                        currentPlayerEffects.SetMax(effect);
                    }
                    else
                    {
                        temporalEffectList.RemoveAt(i);
                    }
                }


                foreach (ContinousEffectInfo effect in continousEffectList.Values)
                {
                    switch (effect.player)
                    {
                    case 0:
                        currentPlayerEffects = p0Effects;
                        break;

                    case 1:
                        currentPlayerEffects = p1Effects;
                        break;

                    case 2:
                        currentPlayerEffects = p2Effects;
                        break;
                    }
                    currentPlayerEffects.SetMax(effect);
                }

                if (rsc.gameInfo.numberOfPlayers == 1)
                {
                    finalEffects.SetMax(p0Effects, p1Effects);
                }
                else
                {
                    if (rsc.gameInfo.player1Controller.IsPlaying && rsc.gameInfo.player2Controller.IsPlaying)
                    {
                        finalEffects.Copy(p0Effects);
                    }
                    else if (rsc.gameInfo.player1Controller.IsPlaying)
                    {
                        finalEffects.SetMax(p0Effects, p1Effects);
                    }
                    else if (rsc.gameInfo.player2Controller.IsPlaying)
                    {
                        finalEffects.SetMax(p0Effects, p2Effects);
                    }
                }
            }
            //If effects paused should stop only shake
            else
            {
                finalEffects.shakeIntensity = 0f;
            }

            mainCameraController.SetEffects(finalEffects);
            entryCameraController.SetEffects(finalEffects);
            godCameraController.SetEffects(finalEffects);
        }
    }