Files
beyond/Assets/ThirdParty/Invector-3rdPersonController/Melee Combat/Scripts/CharacterController/vBlockUnarmedAttack.cs
2024-11-20 15:21:28 +01:00

48 lines
1.4 KiB
C#

using UnityEngine;
namespace Invector.vCharacterController
{
public class vBlockUnarmedAttack : MonoBehaviour
{
private vMeleeCombatInput meleeCombatInput;
[SerializeField] protected bool useUnarmedAttack;
public bool IsActiveUnarmedAttack
{
get
{
return useUnarmedAttack;
}
protected set
{
useUnarmedAttack = value;
}
}
void Start()
{
///Get the melee combat input component
meleeCombatInput = GetComponent<vMeleeCombatInput>();
///Use update event of the input to handle attack input
meleeCombatInput.onUpdate += HandleAttackInput;
}
private void HandleAttackInput()
{
///Disable input usage if Unarmed
if (!IsActiveUnarmedAttack)
{
meleeCombatInput.weakAttackInput.useInput = meleeCombatInput.isArmed;
meleeCombatInput.strongAttackInput.useInput = meleeCombatInput.isArmed;
}
}
public void SetActiveUnarmedAttack(bool value)
{
if (value != IsActiveUnarmedAttack)
{
IsActiveUnarmedAttack = value;
meleeCombatInput.weakAttackInput.useInput = value;
meleeCombatInput.strongAttackInput.useInput = value;
}
}
}
}