Esempio n. 1
0
    public void OnLightAttack(MeleeAttackAgent.AttackType attackType)
    {
        if (dashDurationLeft > 0)
        {
            return;
        }

        float boundsSizeX = controller.ctrlCollider.bounds.size.x / 2;

        Collider2D[] hits = Physics2D.OverlapCircleAll(transform.position, boundsSizeX + lightAttack.range, enemyCollisionMask);

        if (hits.Length > 0)
        {
            Collider2D hit = hits[Random.Range(0, hits.Length)];
            lightAttack.Attack(hit.transform, attackType);
        }
        else
        {
            lightAttack.Attack(attackType);
        }
    }
Esempio n. 2
0
    // Update is called once per frame
    void Update()
    {
        //If we are knocked back - read no input
        if (player.currentKnockback.duration > 0)
        {
            player.SetDirectionalInput(Vector2.zero);
            return;
        }

        Vector2 directionalInput = new Vector2(Input.GetAxisRaw("Horizontal"), Input.GetAxisRaw("Vertical"));

        if (onDirectionalInputChange != null)
        {
            onDirectionalInputChange(directionalInput);
        }

        player.SetDirectionalInput(directionalInput);

        if (Input.GetButtonDown("Jump"))
        {
            player.OnJumpInputDown();
        }

        if (Input.GetButton("Jump"))
        {
            player.OnGlide();
        }

        if (Input.GetButtonUp("Jump"))
        {
            player.OnJumpInputUp();
        }

        if (Input.GetButtonDown("Dash"))
        {
            player.OnDash();
        }

        if (Input.GetButtonDown("Fire1"))
        {
            if (!player.OnInteract())
            {
                MeleeAttackAgent.AttackType attackType = MeleeAttackAgent.AttackType.Default;

                if (directionalInput.y > 0)
                {
                    attackType = MeleeAttackAgent.AttackType.Above;
                }
                else if (directionalInput.y < 0 &&
                         !player.controller.collisions.below &&
                         !player.controller.collisions.left &&
                         !player.controller.collisions.right)
                {
                    attackType = MeleeAttackAgent.AttackType.Below;
                }

                player.OnLightAttack(attackType);
            }
        }

        if (Input.GetButtonDown("Fire2"))
        {
            player.OnHeavyAttack();
        }
    }