Example #1
0
    private void StopChargedAttack()
    {
        //Deactivate sword collider
        DeactivateCorrespondingCollider(playerFaceDirection);

        this.timer             = cooldownTime;
        this.chargeAttackState = ChargeAttackState.Cooldown;
    }
Example #2
0
    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);
    }
Example #3
0
    // 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();
    }
Example #4
0
    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;
        }
    }