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