mirror of
https://github.com/tym1116/BH3.git
synced 2025-12-16 08:25:20 +01:00
53 lines
1.2 KiB
C#
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;
|
|
}
|
|
}
|
|
}
|