private void StopChargedAttack() { //Deactivate sword collider DeactivateCorrespondingCollider(playerFaceDirection); this.timer = cooldownTime; this.chargeAttackState = ChargeAttackState.Cooldown; }
public void ResetState(ref PlayerState playerState) { playerState = PlayerState.Default; chargeAttackState = ChargeAttackState.Setup; timer = 0f; spriteRenderer.material.SetFloat("_FlashAmount", 0f); playerBody.velocity = Vector2.zero; finalAttackForce = baseAttackForce; //Deactivate collider DeactivateCorrespondingCollider(playerFaceDirection); }
// Use this for initialization void Start() { playerAttackInfo = GetComponent <AttackInfoContainer> (); //playerOrientation = GetComponent<PlayerOrientation> (); movementInfo = GetComponent <AbilityBasicMovement> (); playerBody = GetComponent <Rigidbody2D> (); spriteRenderer = GetComponent <SpriteRenderer> (); animator = GetComponent <Animator> (); //orientationSystem = GetComponent<OrientationSystem> (); DirectionHandler = new FourDirectionSystem(); chargeAttackState = ChargeAttackState.Setup; colliderUp = GameObject.Find("cAttack Collider Up").GetComponent <SwordCollider> (); colliderDown = GameObject.Find("cAttack Collider Down").GetComponent <SwordCollider> (); colliderLeft = GameObject.Find("cAttack Collider Left").GetComponent <SwordCollider> (); colliderRight = GameObject.Find("cAttack Collider Right").GetComponent <SwordCollider> (); colliderUp.DisableCollider(); colliderDown.DisableCollider(); colliderRight.DisableCollider(); colliderLeft.DisableCollider(); }
public void ChargeAttack(ref PlayerState playerState, Vector2 attackDirection) { switch (chargeAttackState) { case ChargeAttackState.Setup: timer = maxChargeTime; finalAttackForce = baseAttackForce; chargeAttackState = ChargeAttackState.Charging; playerBody.velocity = Vector2.zero; spriteRenderer.material.SetFloat("_FlashAmount", 0.60f); //Activate corresponding collider //playerFaceDirection = orientationSystem.GetDirection(attackDirection); playerFaceDirection = DirectionHandler.GetDirectionFromVector(attackDirection); break; case ChargeAttackState.Charging: timer -= Time.deltaTime; //Play Charging Animation animator.Play("Charging Attack"); //Make player flash while charging spriteRenderer.material.SetFloat("_FlashAmount", Mathf.PingPong(timer * 4.7f, 0.60f)); //If timer is up or player releases button, then perform attack if (timer <= 0f || (Input.GetButtonUp("AttackPS4")) || Input.GetButtonUp("Attack")) { spriteRenderer.material.SetFloat("_FlashAmount", 0f); chargeAttackState = ChargeAttackState.Attacking; ActivateCorrespondingCollider(playerFaceDirection); playerAttackInfo.UpdateAttackInfo(AttackID.ChargedAttack, finalAttackForce, movementInfo.GetLastMove().normalized, damageAmount); } //If button is still being held down if (Input.GetButton("AttackPS4") || Input.GetButton("Attack")) { //Increase damage that will be dealt here finalAttackForce += (Time.deltaTime * chargeMultiplier); break; } break; case ChargeAttackState.Attacking: //Play animation animator.Play("Charged Attack"); break; case ChargeAttackState.Cooldown: timer -= Time.deltaTime; if (timer <= 0f) { //Reset stuff timer = 0f; chargeAttackState = ChargeAttackState.Setup; playerState = PlayerState.Default; } break; } }