mirror of
https://github.com/tym1116/BH3.git
synced 2025-12-16 08:25:20 +01:00
55 lines
1.8 KiB
C#
55 lines
1.8 KiB
C#
using MoleMole.Config;
|
|
|
|
namespace MoleMole
|
|
{
|
|
public class AbilityModifyDamageTakenByDamageValueMixin : AbilityModifyDamageTakenMixin
|
|
{
|
|
private ModifyDamageTakenByDamageValueMixin config;
|
|
|
|
public AbilityModifyDamageTakenByDamageValueMixin(ActorAbility instancedAbility, ActorModifier instancedModifier, ConfigAbilityMixin config)
|
|
: base(instancedAbility, instancedModifier, config)
|
|
{
|
|
this.config = (ModifyDamageTakenByDamageValueMixin)config;
|
|
}
|
|
|
|
protected override bool OnPostBeingHit(EvtBeingHit evt)
|
|
{
|
|
base.OnPostBeingHit(evt);
|
|
float replaceDamage = GetReplaceDamage(evt.attackData.damage);
|
|
if (replaceDamage != evt.attackData.damage)
|
|
{
|
|
evt.attackData.damage = GetReplaceDamage(evt.attackData.damage);
|
|
if (config.UseReplaceAniDamageRatio)
|
|
{
|
|
evt.attackData.attackerAniDamageRatio = config.ReplaceAniDamageRatio;
|
|
}
|
|
}
|
|
evt.attackData.fireDamage = GetReplaceDamage(evt.attackData.fireDamage);
|
|
evt.attackData.thunderDamage = GetReplaceDamage(evt.attackData.thunderDamage);
|
|
evt.attackData.alienDamage = GetReplaceDamage(evt.attackData.alienDamage);
|
|
evt.attackData.plainDamage = GetReplaceDamage(evt.attackData.plainDamage);
|
|
return true;
|
|
}
|
|
|
|
private float GetReplaceDamage(float damage)
|
|
{
|
|
switch (config.CompareType)
|
|
{
|
|
case ModifyDamageTakenByDamageValueMixin.LogicType.MoreThan:
|
|
if (damage > instancedAbility.Evaluate(config.ByDamageValue))
|
|
{
|
|
damage = instancedAbility.Evaluate(config.ReplaceDamageValue);
|
|
}
|
|
break;
|
|
case ModifyDamageTakenByDamageValueMixin.LogicType.LessThanOrEqual:
|
|
if (damage <= instancedAbility.Evaluate(config.ByDamageValue) && damage > instancedAbility.Evaluate(config.ReplaceDamageValue))
|
|
{
|
|
damage = instancedAbility.Evaluate(config.ReplaceDamageValue);
|
|
}
|
|
break;
|
|
}
|
|
return damage;
|
|
}
|
|
}
|
|
}
|