mirror of
https://github.com/project-redbud/FunGame-Core.git
synced 2026-01-19 22:18:23 +00:00
攻击者的生命偷取和能量不再是全额
This commit is contained in:
parent
1121a0d0b5
commit
ae1135ce06
@ -2130,8 +2130,8 @@ namespace Milimoe.FunGame.Core.Model
|
|||||||
}
|
}
|
||||||
WriteLine(strDamageMessage);
|
WriteLine(strDamageMessage);
|
||||||
|
|
||||||
// 生命偷取,攻击者为全额
|
// 生命偷取
|
||||||
double steal = damage * actor.Lifesteal;
|
double steal = actualDamage * actor.Lifesteal;
|
||||||
await HealToTargetAsync(actor, actor, steal, false);
|
await HealToTargetAsync(actor, actor, steal, false);
|
||||||
effects = [.. characters.SelectMany(c => c.Effects.Where(e => e.IsInEffect)).Distinct()];
|
effects = [.. characters.SelectMany(c => c.Effects.Where(e => e.IsInEffect)).Distinct()];
|
||||||
foreach (Effect effect in effects)
|
foreach (Effect effect in effects)
|
||||||
@ -2139,8 +2139,8 @@ namespace Milimoe.FunGame.Core.Model
|
|||||||
effect.AfterLifesteal(actor, enemy, damage, steal);
|
effect.AfterLifesteal(actor, enemy, damage, steal);
|
||||||
}
|
}
|
||||||
|
|
||||||
// 造成伤害和受伤都可以获得能量。攻击者为全额,被攻击者为 actualDamage,护盾抵消的伤害不算
|
// 造成伤害和受伤都可以获得能量。护盾抵消的伤害不算
|
||||||
double ep = GetEP(damage, GameplayEquilibriumConstant.DamageGetEPFactor, GameplayEquilibriumConstant.DamageGetEPMax);
|
double ep = GetEP(actualDamage, GameplayEquilibriumConstant.DamageGetEPFactor, GameplayEquilibriumConstant.DamageGetEPMax);
|
||||||
if (ep > 0)
|
if (ep > 0)
|
||||||
{
|
{
|
||||||
effects = [.. actor.Effects.Where(e => e.IsInEffect)];
|
effects = [.. actor.Effects.Where(e => e.IsInEffect)];
|
||||||
@ -2432,13 +2432,12 @@ namespace Milimoe.FunGame.Core.Model
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
double realHeal = heal;
|
|
||||||
if (target.HP > 0 || (isDead && canRespawn))
|
if (target.HP > 0 || (isDead && canRespawn))
|
||||||
{
|
{
|
||||||
// 用于数据统计,不能是全额,溢出的部分需要扣除
|
// 用于数据统计,不能是全额,溢出的部分需要扣除
|
||||||
if (target.HP + heal > target.MaxHP)
|
if (target.HP + heal > target.MaxHP)
|
||||||
{
|
{
|
||||||
realHeal = target.MaxHP - target.HP;
|
heal = target.MaxHP - target.HP;
|
||||||
}
|
}
|
||||||
target.HP += heal;
|
target.HP += heal;
|
||||||
if (!LastRound.Heals.TryAdd(target, heal))
|
if (!LastRound.Heals.TryAdd(target, heal))
|
||||||
@ -2475,7 +2474,7 @@ namespace Milimoe.FunGame.Core.Model
|
|||||||
// 统计数据
|
// 统计数据
|
||||||
if (_stats.TryGetValue(actor, out CharacterStatistics? stats) && stats != null)
|
if (_stats.TryGetValue(actor, out CharacterStatistics? stats) && stats != null)
|
||||||
{
|
{
|
||||||
stats.TotalHeal += realHeal;
|
stats.TotalHeal += heal;
|
||||||
}
|
}
|
||||||
|
|
||||||
await OnHealToTargetAsync(actor, target, heal, isRespawn);
|
await OnHealToTargetAsync(actor, target, heal, isRespawn);
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user