mirror of
https://github.com/tym1116/BH3.git
synced 2025-12-12 22:44:35 +01:00
39 lines
1.2 KiB
C#
39 lines
1.2 KiB
C#
using MoleMole.Config;
|
|
|
|
namespace MoleMole
|
|
{
|
|
public class AbilityModifyDamageTakenWithMultiMixin : AbilityModifyDamageTakenMixin
|
|
{
|
|
private ModifyDamageTakenWithMultiMixin config;
|
|
|
|
public AbilityModifyDamageTakenWithMultiMixin(ActorAbility instancedAbility, ActorModifier instancedModifier, ConfigAbilityMixin config)
|
|
: base(instancedAbility, instancedModifier, config)
|
|
{
|
|
this.config = (ModifyDamageTakenWithMultiMixin)config;
|
|
}
|
|
|
|
protected override void ModifyDamage(EvtBeingHit evt, float multiple = 1f)
|
|
{
|
|
multiple = 0f;
|
|
if (config.MultipleType == ModifyDamageTakenWithMultiMixin.DamageMultipleType.ByTargetDistance)
|
|
{
|
|
BaseMonoEntity baseMonoEntity = Singleton<EventManager>.Instance.GetEntity(evt.sourceID);
|
|
if (baseMonoEntity != null)
|
|
{
|
|
multiple = (baseMonoEntity.XZPosition - instancedAbility.caster.entity.XZPosition).magnitude;
|
|
}
|
|
}
|
|
multiple -= config.BaseMultiple;
|
|
if (multiple < 0f)
|
|
{
|
|
multiple = 0f;
|
|
}
|
|
if (instancedAbility.Evaluate(config.MaxMultiple) > 0f && multiple > instancedAbility.Evaluate(config.MaxMultiple))
|
|
{
|
|
multiple = instancedAbility.Evaluate(config.MaxMultiple);
|
|
}
|
|
base.ModifyDamage(evt, multiple);
|
|
}
|
|
}
|
|
}
|