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); }
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); }