Exemplo n.º 1
0
 private void OnFinishedWithCurrentAction()
 {
     if ((_queuedAction.Action == CatAction.Dash && Dash.DashCooldownRemaining > 0) ||
         (_queuedAction.Action == CatAction.Laser && Laser.LaserEyesCooldownRemaining > 0))
     {
         _queuedAction = new DirectionalCatAction(CatAction.Moving, Vector3.zero);
     }
     StartCoroutine(TransitionToNextAction(_delays[_currentAction.Action][_queuedAction.Action], _actions[_queuedAction.Action](_queuedAction.Direction)));
     _currentAction = _queuedAction;
     _queuedAction  = new DirectionalCatAction(CatAction.Moving, Vector3.zero);
 }
Exemplo n.º 2
0
    private void Update()
    {
        if (Application.isEditor && Input.GetKey("z") && Input.GetKey("v") && Input.GetKey("x"))
        {
            state.DashUnlocked      = true;
            state.SlashUnlocked     = true;
            state.RendUnlocked      = true;
            state.LaserEyesUnlocked = true;
        }

        var direction = Vector3.ClampMagnitude(Vector3.Normalize(new Vector3(Input.GetAxis("Horizontal"), 0, Input.GetAxis("Vertical"))), 1f);

        if (state.DashUnlocked && Input.GetButtonDown("Dash"))
        {
            _queuedAction = new DirectionalCatAction(CatAction.Dash, direction);
        }
        else if (state.LaserEyesUnlocked && Input.GetButtonDown("FireLaser"))
        {
            _queuedAction = new DirectionalCatAction(CatAction.Laser, direction);
        }
        else if (state.SlashUnlocked && Input.GetButtonDown("Fire1"))
        {
            if (_currentAction.Action == CatAction.Dash)
            {
                _queuedAction = new DirectionalCatAction(CatAction.DashSlash, _currentAction.Direction);
            }
            else if (_currentAction.Action == CatAction.StandingSlash || _currentAction.Action == CatAction.MovingSlash)
            {
                _queuedAction = new DirectionalCatAction(direction == Vector3.zero ? CatAction.StandingDoubleSlash : CatAction.MovingDoubleSlash, direction);
            }
            else
            {
                _queuedAction = new DirectionalCatAction(direction == Vector3.zero ? CatAction.StandingSlash : CatAction.MovingSlash, direction);
            }
        }
        else if (state.RendUnlocked && Input.GetButtonDown("Fire2"))
        {
            if (_currentAction.Action == CatAction.Dash)
            {
                _queuedAction = new DirectionalCatAction(CatAction.DashRend, _currentAction.Direction);
            }
            else
            {
                _queuedAction = new DirectionalCatAction(direction == Vector3.zero ? CatAction.StandingRend : CatAction.MovingRend, direction);
            }
        }

        if (_currentAction.Action == CatAction.Moving && _queuedAction.Action != CatAction.Moving)
        {
            Movement.Stop();
            OnFinishedWithCurrentAction();
        }
    }