Пример #1
0
    private void SetStateAnimations(TensionState tensionState)
    {
        this.transform.DOKill();
        this.transform.localScale = new Vector3(1, 1, 1);

        switch (tensionState)
        {
        case TensionState.Idle:
            this.transform.DOScale(1.05f, 0.85f).SetLoops(-1, LoopType.Yoyo).SetEase(Ease.Linear);
            break;

        case TensionState.Pushy:

            this.transform.DOScale(1.05f, 0.85f).SetEase(Ease.OutElastic).OnComplete(() => {
                this.transform.DOScale(1, 0.4f).OnComplete(() => { SetStateAnimations(TensionState.Pushy); });
            });
            break;

        case TensionState.Aggression:
            this.transform.DOScale(1.08f, 0.35f).SetLoops(-1, LoopType.Yoyo).SetEase(Ease.InBack);
            break;

        case TensionState.Outbreak:
            this.transform.DOScale(1.10f, 0.185f).SetLoops(-1, LoopType.Yoyo).SetEase(Ease.InBack);
            break;
        }
    }
Пример #2
0
    public void SetTensionState(TensionState tensionState)
    {
        _preTensionState = tensionState;
        _currentState    = tensionState;

        SetStateAnimations(tensionState);
    }
Пример #3
0
 private void OnTensionStateChangedEvent(TensionState tensionState)
 {
     if (tensionState == TensionState.Outbreak)
     {
         SetTensionState(TensionState.Outbreak);
     }
 }
Пример #4
0
    private void SetTensionState(TensionState tensionState)
    {
        TensionState = tensionState;
        float newRate = 1;

        switch (tensionState)
        {
        case TensionState.Aggression:
            newRate = _tensionManager.TensionRate + 3;
            break;

        case TensionState.Idle:
            newRate = 0;
            break;

        case TensionState.Pushy:
            newRate = _tensionManager.TensionRate + 1;
            break;

        case TensionState.Outbreak:
            newRate = _tensionManager.TensionRate + 4;
            break;
        }

        for (int i = 0; i < _policeCrowds.Length; i++)
        {
            _policeCrowds[i].SetTensionState(TensionState);
        }

        _tensionManager.SetTensionRate(newRate);
    }
Пример #5
0
    public void setTensionStateSigns(TensionState state)
    {
        float percNormal = 0;

        switch (state)
        {
        case TensionState.Idle:
            percNormal = 100;
            break;

        case TensionState.Pushy:
            percNormal = 60;
            break;

        case TensionState.Aggression:
            percNormal = 50;
            break;

        case TensionState.Outbreak:
            percNormal = 0;
            break;
        }

        if (percNormal > (UnityEngine.Random.value * 100))
        {
            _sign1.sprite = _normal[UnityEngine.Random.Range(0, (_normal.Length))];
        }
        else
        {
            _sign1.sprite = _deadly[UnityEngine.Random.Range(0, (_deadly.Length))];
        }
        if (percNormal > (UnityEngine.Random.value * 100))
        {
            _sign2.sprite = _normal[UnityEngine.Random.Range(0, (_normal.Length))];
        }
        else
        {
            _sign2.sprite = _deadly[UnityEngine.Random.Range(0, (_deadly.Length))];
        }
        if (percNormal > (UnityEngine.Random.value * 100))
        {
            _sign3.sprite = _normal[UnityEngine.Random.Range(0, (_normal.Length))];
        }
        else
        {
            _sign3.sprite = _deadly[UnityEngine.Random.Range(0, (_deadly.Length))];
        }
    }
Пример #6
0
    public static TensionState GetNextNaturalTensionState(TensionState tensionState)
    {
        switch (tensionState)
        {
        case TensionState.Idle:
            return(TensionState.Pushy);

        case TensionState.Pushy:
            return(TensionState.Aggression);

        case TensionState.Aggression:
            return(TensionState.Outbreak);

        case TensionState.Outbreak:
            return(TensionState.Outbreak);
        }

        Debug.LogWarning("No Tension return state set for the following state: " + tensionState.ToString());
        return(TensionState.Idle);
    }