using System.Collections;
using UnityEngine;
namespace Invector.vEventSystems
{
public interface vIMeleeFighter : vIAttackReceiver, vIAttackListener
{
void BreakAttack(int breakAtkID);
void OnRecoil(int recoilID);
bool isAttacking { get; }
bool isArmed { get; }
bool isBlocking { get; }
Transform transform { get; }
GameObject gameObject { get; }
vCharacterController.vICharacter character { get; }
}
public static class vIMeeleFighterHelper
{
///
/// check if gameObject has a Component
///
///
/// return true if gameObject contains a
public static bool IsMeleeFighter(this GameObject receiver)
{
return receiver.GetComponent() != null;
}
///
/// Apply damage using OnReeiveAttack method if receiver dosent has a vIAttackReceiver, the Simple ApplyDamage is called
///
/// target damage receiver
/// damage
/// damage sender
public static void ApplyDamage(this GameObject receiver, vDamage damage, vIMeleeFighter attacker)
{
var attackReceiver = receiver.GetComponent();
if (attackReceiver != null)
{
attackReceiver.OnReceiveAttack(damage, attacker);
}
else
{
receiver.ApplyDamage(damage);
}
}
///
/// Get of gameObject
///
///
/// the component
public static vIMeleeFighter GetMeleeFighter(this GameObject receiver)
{
return receiver.GetComponent();
}
}
}