예제 #1
0
        public bool DoAction(GameObject player)
        {
            if (!_triggerActivated)
            {
                _pc = player.GetComponent <PlayerController>();
                _pc.ActivateMeleeTrigger(_attackType, true);
                _triggerActivated = true;
                _initialPosition  = player.transform.position;
                player.GetComponent <Rigidbody2D>().velocity = -_pc.front * _attackSpeed;
            }

            if (Vector2.Distance(player.transform.position, _initialPosition) >= _dashDistance)
            {
                return(FinishAttack(player));
            }
            else if (_pc.collisions.topColliding && _pc.front == -Vector2.up)
            {
                return(FinishAttack(player));
            }
            else if (_pc.collisions.rightColliding && _pc.front == -Vector2.right)
            {
                return(FinishAttack(player));
            }
            else if (_pc.collisions.leftColliding && _pc.front == Vector2.right)
            {
                return(FinishAttack(player));
            }
            else if (_pc.collisions.bottomColliding && _pc.front == Vector2.up)
            {
                return(FinishAttack(player));
            }

            return(false);
        }
예제 #2
0
        public bool DoAction(GameObject player)
        {
            if (_pc == null)
            {
                _pc = player.GetComponent <PlayerController>();
                _pc.ActivateMeleeTrigger(CardAttackAction.AttackType.LightAttack, true);
                _originalEuler = player.transform.rotation.eulerAngles;
            }

            var currentRotation = player.transform.rotation.eulerAngles;

            currentRotation.z += Time.deltaTime * _spinSpeed;
            if (currentRotation.z >= 360)
            {
                _completeRotations++;
                if (_completeRotations == _spins)
                {
                    player.transform.rotation = Quaternion.Euler(_originalEuler);
                    _pc.ActivateMeleeTrigger(CardAttackAction.AttackType.LightAttack, false);
                    return(true);
                }
            }

            player.transform.rotation = Quaternion.Euler(currentRotation);


            // _timer += Time.deltaTime;
            // if (_timer >= _spinTime) {
            //     _pc.ActivateMeleeTrigger(CardAttackAction.AttackType.LightAttack, false);
            //     player.GetComponent<Rigidbody2D>().angularVelocity = 0;
            //     player.GetComponent<Rigidbody2D>().velocity = Vector2.zero;
            //     return true;
            // }

            return(false);
        }