Files
BH3/Assets/Scripts/Assembly-CSharp/MoleMole/MPAvatarActorPlugin.cs
2025-08-13 09:26:42 +08:00

53 lines
1.2 KiB
C#

namespace MoleMole
{
public class MPAvatarActorPlugin : BaseMPAbilityActorPlugin
{
protected AvatarIdentity _identity;
protected AvatarActor _actor;
public MPAvatarActorPlugin(BaseActor actor)
{
_actor = (AvatarActor)actor;
}
public void SetupIdentity(AvatarIdentity identity)
{
_identity = identity;
Setup(_actor, identity);
}
protected override bool OnRemoteReplicatedEvent(BaseEvent evt)
{
if (evt is EvtBeingHit)
{
return OnRemoteBeingHit((EvtBeingHit)evt);
}
return false;
}
private bool OnRemoteBeingHit(EvtBeingHit evt)
{
if (evt.attackData.rejected)
{
return false;
}
if (evt.attackData.hitCollision == null)
{
_actor.AmendHitCollision(evt.attackData);
}
evt.attackData.resolveStep = AttackData.AttackDataStep.FinalResolved;
float num = (float)_actor.HP - evt.resolvedDamage;
if (num <= 0f)
{
num = 0f;
}
DelegateUtils.UpdateField(ref _actor.HP, num, num - (float)_actor.HP, _actor.onHPChanged);
_actor.FireAttackDataEffects(evt.attackData);
_actor.AbilityBeingHit(evt);
_actor.BeingHit(evt.attackData, evt.beHitEffect, evt.sourceID);
return true;
}
}
}