76 lines
2.4 KiB
C#
76 lines
2.4 KiB
C#
using Invector;
|
|
using Invector.vCharacterController.AI;
|
|
using Invector.vEventSystems;
|
|
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using UnityEngine;
|
|
|
|
namespace Beyond
|
|
{
|
|
public class bControlAIMelee : vControlAIMelee
|
|
{
|
|
public void ResetAnimationTags()
|
|
{
|
|
if (animatorStateInfos == null)
|
|
{
|
|
return;
|
|
}
|
|
animatorStateInfos.stateInfos.vToList().ForEach(infos => infos.tags.Clear());
|
|
}
|
|
|
|
private new void Update()
|
|
{
|
|
// animatorStateInfos.stateInfos.vToList().ForEach(st => { Debug.Log(st.layer + " " + st.normalizedTime + " " + st.shortPathHash); st.tags.ForEach(tag => Debug.Log(tag)); });
|
|
|
|
base.Update();
|
|
}
|
|
|
|
protected override void OnEnable()
|
|
{
|
|
ResetAnimationTags();
|
|
base.OnEnable();
|
|
}
|
|
|
|
public void SetAttackTimes(float minTime, float maxTime)
|
|
{
|
|
_minAttackTime = minTime;
|
|
_maxAttackTime = maxTime;
|
|
}
|
|
|
|
protected override void TryBlockAttack(vDamage damage)
|
|
{
|
|
if (isAttacking) //we dont want blocking when attacking
|
|
{
|
|
damage.hitReaction = true;
|
|
return;
|
|
}
|
|
//base.TryBlockAttack(damage);
|
|
if (MeleeManager && damage.sender)
|
|
{
|
|
if (isBlocking && MeleeManager.CanBlockAttack(damage.sender.position))
|
|
{
|
|
var fighter = damage.sender.GetComponent<vIMeleeFighter>();
|
|
var damageReduction = MeleeManager.GetDefenseRate();
|
|
if (damageReduction > 0)
|
|
damage.ReduceDamage(damageReduction);
|
|
if (fighter != null && MeleeManager.CanBreakAttack())
|
|
fighter.OnRecoil(MeleeManager.GetDefenseRecoilID());
|
|
MeleeManager.OnDefense();
|
|
}
|
|
else damage.hitReaction = true;
|
|
}
|
|
}
|
|
|
|
protected override void TryApplyRecoil(vIMeleeFighter fighter)
|
|
{
|
|
if (MeleeManager && fighter != null && !isAttacking)
|
|
{
|
|
if (isBlocking && MeleeManager.CanBlockAttack(fighter.transform.position))
|
|
{
|
|
if (MeleeManager.CanBreakAttack())
|
|
fighter.OnRecoil(MeleeManager.GetDefenseRecoilID());
|
|
}
|
|
}
|
|
}
|
|
}
|
|
} |