73 lines
1.4 KiB
C#
73 lines
1.4 KiB
C#
|
using RoR2;
|
||
|
using UnityEngine;
|
||
|
|
||
|
namespace EntityStates.VoidSurvivor.Weapon;
|
||
|
|
||
|
public class SwingMeleeBase : BasicMeleeAttack
|
||
|
{
|
||
|
[SerializeField]
|
||
|
public float recoilAmplitude;
|
||
|
|
||
|
[SerializeField]
|
||
|
public float bloom;
|
||
|
|
||
|
[SerializeField]
|
||
|
public string animationLayerName;
|
||
|
|
||
|
[SerializeField]
|
||
|
public string animationStateName;
|
||
|
|
||
|
[SerializeField]
|
||
|
public string animationPlaybackRateParameter;
|
||
|
|
||
|
protected override bool allowExitFire
|
||
|
{
|
||
|
get
|
||
|
{
|
||
|
if ((bool)base.characterBody)
|
||
|
{
|
||
|
return !base.characterBody.isSprinting;
|
||
|
}
|
||
|
return false;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
public override void OnEnter()
|
||
|
{
|
||
|
base.OnEnter();
|
||
|
base.characterDirection.forward = GetAimRay().direction;
|
||
|
}
|
||
|
|
||
|
public override void OnExit()
|
||
|
{
|
||
|
base.OnExit();
|
||
|
}
|
||
|
|
||
|
protected override void AuthorityModifyOverlapAttack(OverlapAttack overlapAttack)
|
||
|
{
|
||
|
base.AuthorityModifyOverlapAttack(overlapAttack);
|
||
|
}
|
||
|
|
||
|
protected override void PlayAnimation()
|
||
|
{
|
||
|
PlayAnimation(animationLayerName, animationStateName, animationPlaybackRateParameter, duration);
|
||
|
}
|
||
|
|
||
|
protected override void OnMeleeHitAuthority()
|
||
|
{
|
||
|
base.OnMeleeHitAuthority();
|
||
|
base.characterBody.AddSpreadBloom(bloom);
|
||
|
}
|
||
|
|
||
|
protected override void BeginMeleeAttackEffect()
|
||
|
{
|
||
|
AddRecoil(-0.1f * recoilAmplitude, 0.1f * recoilAmplitude, -1f * recoilAmplitude, 1f * recoilAmplitude);
|
||
|
base.BeginMeleeAttackEffect();
|
||
|
}
|
||
|
|
||
|
public override InterruptPriority GetMinimumInterruptPriority()
|
||
|
{
|
||
|
return InterruptPriority.Skill;
|
||
|
}
|
||
|
}
|