public vMeleeWeapon CurrentMeleeAttack(HitboxFrom hitboxFrom = HitboxFrom.RightArm)
    {
        switch (hitboxFrom)
        {
        case HitboxFrom.LeftArm:
            if (currentMeleeWeaponLA != null && (currentMeleeWeaponLA.meleeType == vMeleeWeapon.MeleeType.Attack || currentMeleeWeaponLA.meleeType == vMeleeWeapon.MeleeType.All))
            {
                return(currentMeleeWeaponLA);
            }
            if (leftArmHitbox != null && useDefaultHitbox)
            {
                return(leftArmHitbox);
            }
            break;

        case HitboxFrom.RightArm:
            if (currentMeleeWeaponRA != null && (currentMeleeWeaponRA.meleeType == vMeleeWeapon.MeleeType.Attack || currentMeleeWeaponRA.meleeType == vMeleeWeapon.MeleeType.All))
            {
                return(currentMeleeWeaponRA);
            }
            if (rightArmHitbox != null && useDefaultHitbox)
            {
                return(rightArmHitbox);
            }
            break;

        case HitboxFrom.BothArms:
            if (currentMeleeWeaponRA != null && (currentMeleeWeaponRA.meleeType == vMeleeWeapon.MeleeType.Attack || currentMeleeWeaponRA.meleeType == vMeleeWeapon.MeleeType.All))
            {
                return(currentMeleeWeaponRA);
            }
            if (rightArmHitbox != null && useDefaultHitbox)
            {
                return(rightArmHitbox);
            }
            break;

        case HitboxFrom.LeftLeg:
            if (leftLegHitbox != null)
            {
                return(leftLegHitbox);
            }
            break;

        case HitboxFrom.RightLeg:
            if (rightLegHitbox != null && useDefaultHitbox)
            {
                return(rightLegHitbox);
            }
            break;

        case HitboxFrom.BothLegs:
            if (rightLegHitbox != null && useDefaultHitbox)
            {
                return(rightLegHitbox);
            }
            break;
        }
        return(null);
    }
    public void EnableDamage(AttackObject attackObject)
    {
        if (CurrentMeleeAttack(attackObject.hitboxFrom) == null)
        {
            return;
        }

        currentHitboxFrom = attackObject.hitboxFrom;
        applyDamage       = attackObject.value;
        var meleeWeapon = CurrentMeleeAttack(attackObject.hitboxFrom);

        meleeWeapon.SetActiveWeapon(attackObject.value);
        meleeWeapon.damage.recoil_id = attackObject.recoil_ID;
        attackName = attackObject.attackName;
        if (!applyDamage)
        {
            currentDamageMultiplier = 0;
        }
        else
        {
            currentHitboxFrom       = attackObject.hitboxFrom;
            currentDamageMultiplier = attackObject.damageMultiplier;
            attackName = attackObject.attackName;
        }
    }
 public AttackObject(HitboxFrom hitboxFrom, int recoil_ID, float damageMultiplier, bool value, string attackName = "")
 {
     this.hitboxFrom       = hitboxFrom;
     this.recoil_ID        = recoil_ID;
     this.value            = value;
     this.damageMultiplier = damageMultiplier;
     this.attackName       = attackName;
 }
 public void OnAttackEnter(HitboxFrom hitboxFrom)
 {
     ReduceStamina(meleeManager.CurrentMeleeAttack(hitboxFrom).staminaCost);
     recoveryDelay = meleeManager.CurrentMeleeAttack(hitboxFrom).a_staminaRecoveryDelay;
 }