Exemplo n.º 1
0
    void LateUpdate()
    {
        Vector3 positionOffset = Vector3.zero;
        Vector3 rotationOffset = Vector3.zero;

        // Going backwards to safely remove dead events from the list without having to deal with a changing list size
        for (int i = shakeEvents.Count - 1; i != -1; i--)
        {
            ShakeEvent se = shakeEvents[i]; se.Update();

            if (se.target == ShakeTransformEventData.Target.Position)
            {
                positionOffset += se.noise;
            }
            else
            {
                rotationOffset += se.noise;
            }
            if (!se.IsAlive())
            {
                shakeEvents.RemoveAt(i);
            }
        }

        transform.localPosition    = positionOffset;
        transform.localEulerAngles = rotationOffset;
    }
Exemplo n.º 2
0
    void LateUpdate()
    {
        Vector3 positionOffset = Vector3.zero;
        Vector3 rotationOffset = Vector3.zero;

        for (int i = shakeEvents.Count - 1; i != -1; i--)
        {
            ShakeEvent se = shakeEvents[i];
            se.Update();

            if (se.shakeType == ShakeTransformEventData.ShakeType.Position)
            {
                positionOffset += se.noise;
            }
            else if (se.shakeType == ShakeTransformEventData.ShakeType.Rotation)
            {
                rotationOffset += se.noise;
            }
            else
            {
                Debug.LogWarning("Unhandled shake type: " + se.shakeType);
            }

            if (!se.IsAlive())
            {
                shakeEvents.RemoveAt(i);
            }
        }

        transform.localPosition    = positionOffset;
        transform.localEulerAngles = rotationOffset;
    }
Exemplo n.º 3
0
    /// <summary>
    /// Mutates the resource by the parameters amount ex: MutateResource(20) = _resource + 20.
    /// MutateResource(-20) = _resource - 20.
    /// </summary>
    /// <param name="resourceMutation">The amount of resources with which the resource will change (-/+).</param>
    public void MutateResource(float resourceMutation)
    {
        PlayerStats.Health += resourceMutation;

        if (PlayerStats.Health <= 0)
        {
            PlayerStats.Health = 0;
        }

        _resourceBar.fillAmount = PlayerStats.Health / PlayerStats.MaxHealth;
        _resourceText.text      = PlayerStats.Health + "/" + PlayerStats.MaxHealth;

        if (resourceMutation < 0)
        {
            ShakeEvent.SendShakeEvent();
        }

        if (PlayerStats.Health <= 0)
        {
            GameState.CGameState = CurrentGameState.Paused;
            if (OnHealthDepleted != null)
            {
                OnHealthDepleted();
            }
        }
    }
Exemplo n.º 4
0
    public void RumbleEventCallback(GameEvent e)
    {
        RumbleEvent ev = (RumbleEvent)e;

        ShakeEvent[] evArr = RumbleEvents.ToArray();

        int idxToInsert = 0;

        for (int i = 0; i < evArr.Length; i++)
        {
            ShakeEvent evI = evArr[i];

            if (evI.intensity < ev.Intensity)
            {
                idxToInsert = i - 1;
            }
        }

        if (idxToInsert < 0)
        {
            idxToInsert = 0;
        }

        int id = GetShakeId();

        RumbleEvents.Insert(idxToInsert, new ShakeEvent(id, ev.Intensity));

        eventCtrl.BroadcastEvent(typeof(StartTimerEvent), new StartTimerEvent("rumbleEvent_" + id, ev.Duration, () => {
            eventCtrl.BroadcastEvent(typeof(RumbleOverEvent), new RumbleOverEvent(id));
        }));
    }
Exemplo n.º 5
0
    private void LateUpdate()
    {
        Vector3 positionOffset = Vector3.zero;
        Vector3 rotationOffset = Vector3.zero;


        for (int i = shakeEvents.Count - 1; i != -1; i--)
        {
            ShakeEvent se = shakeEvents[i];
            se.Update();

            if (se.target == ShakeTransformEventData.Target.Position)
            {
                positionOffset += se.noise;
            }
            else
            {
                rotationOffset += se.noise;
            }

            if (!se.IsAlive())
            {
                shakeEvents.RemoveAt(i);
            }
        }

        transform.localPosition = positionOffset;
        //transform.localEulerAngles = rotationOffset;
    }
Exemplo n.º 6
0
    public void VibrationEventCallback(GameEvent e)
    {
        VibrationEvent ev = (VibrationEvent)e;

        ShakeEvent[] evArr = VibrationEvents.ToArray();

        int idxToInsert = 0;

        for (int i = 0; i < evArr.Length; i++)
        {
            ShakeEvent evI = evArr[i];

            if (evI.intensity < ev.Intensity)
            {
                idxToInsert = i - 1;
            }
        }

        if (idxToInsert < 0)
        {
            idxToInsert = 0;
        }

        int id = GetShakeId();

        //print("QUEUEING VIBRATION EVENT " + ev.Intensity);
        VibrationEvents.Insert(idxToInsert, new ShakeEvent(id, ev.Intensity));

        eventCtrl.BroadcastEvent(typeof(StartTimerEvent), new StartTimerEvent("vibrationEvent_" + id, ev.Duration, () => {
            eventCtrl.BroadcastEvent(typeof(VibrationOverEvent), new VibrationOverEvent(id));
        }));
    }
Exemplo n.º 7
0
    public void RumbleOverEventCallback(GameEvent e)
    {
        RumbleOverEvent ev  = (RumbleOverEvent)e;
        ShakeEvent      sEv = RumbleEvents.Find(rEv => rEv.id == ev.RumbleId);

        if (RumbleEvents.Remove(sEv))
        {
            AvailableIds.Enqueue(sEv.id);
        }
    }
Exemplo n.º 8
0
    public void VibrationOverEventCallback(GameEvent e)
    {
        VibrationOverEvent ev  = (VibrationOverEvent)e;
        ShakeEvent         sEv = VibrationEvents.Find(vEv => vEv.id == ev.VibrationId);

        if (VibrationEvents.Remove(sEv))
        {
            AvailableIds.Enqueue(sEv.id);
        }
    }
Exemplo n.º 9
0
    private void LateUpdate()
    {
        Vector3 positionOffset = Vector3.zero;

        for (int i = shakeEvents.Count - 1; i != -1; i--)
        {
            ShakeEvent se = shakeEvents[i]; se.Update();
            positionOffset += se.noise;

            if (!se.IsAlive())
            {
                shakeEvents.RemoveAt(i);
            }
        }
        transform.localPosition = positionOffset;
    }
    protected override void OnCreate()
    {
        this.Enabled = false;

        OnShakeEnd = () =>
        {
            //Debug.Log("OnFadeEnd");
            this.Enabled = false;
            GameVariables.CamNoiseProfile.m_AmplitudeGain = 0;
            GameVariables.CamNoiseProfile.m_FrequencyGain = 0;
        };
        OnShakeStart = () =>
        {
            //Debug.Log("OnFadeStart");
            GameVariables.CamNoiseProfile.m_AmplitudeGain = GameVariables.ShakeComponent.ShakeAmplitude;
            GameVariables.CamNoiseProfile.m_FrequencyGain = GameVariables.ShakeComponent.ShakeFrequency;
        };
    }
Exemplo n.º 11
0
        void LateUpdate()
        {
            Vector3 posOffset = Vector3.zero;
            Vector3 rotOffset = Vector3.zero;

            for (var i = events.Count - 1; i != -1; i--)
            {
                ShakeEvent sc = events[i];
                sc.Update();

                posOffset += sc.noise;
                rotOffset += sc.noise;

                if (!sc.isAlive())
                {
                    events.RemoveAt(i);
                }
            }

            //transform.localPosition = posOffset;
            transform.localEulerAngles = rotOffset;
        }
Exemplo n.º 12
0
    public void AddShakeEvent(ShakeTransformEventData data)
    {
        ShakeEvent newData = new ShakeEvent(data);

        shakeEvents.Add(newData);
    }