mirror of
https://github.com/milimoe/FunGame-Testing.git
synced 2025-04-22 04:09:34 +08:00
60 lines
2.5 KiB
C#
60 lines
2.5 KiB
C#
using Milimoe.FunGame.Core.Api.Utility;
|
||
using Milimoe.FunGame.Core.Entity;
|
||
using Milimoe.FunGame.Core.Library.Constant;
|
||
|
||
namespace Milimoe.FunGame.Testing.Skills
|
||
{
|
||
public class 毁灭之势 : Skill
|
||
{
|
||
public override long Id => (long)PassiveID.毁灭之势;
|
||
public override string Name => "毁灭之势";
|
||
public override string Description => Effects.Count > 0 ? Effects.First().Description : "";
|
||
|
||
public 毁灭之势(Character? character = null) : base(SkillType.Passive, character)
|
||
{
|
||
Effects.Add(new 毁灭之势特效(this));
|
||
}
|
||
|
||
public override IEnumerable<Effect> AddInactiveEffectToCharacter()
|
||
{
|
||
return Effects;
|
||
}
|
||
}
|
||
|
||
public class 毁灭之势特效(Skill skill) : Effect(skill)
|
||
{
|
||
public override long Id => Skill.Id;
|
||
public override string Name => Skill.Name;
|
||
public override string Description => $"每时间提升 5.5% 所有伤害,无上限,但受到伤害时效果清零。" + (累计伤害 > 0 ? $"(当前总提升:{累计伤害 * 100:0.##}%)" : "");
|
||
public override bool TargetSelf => true;
|
||
|
||
private readonly double 伤害提升 = 0.055;
|
||
private double 累计伤害 = 0;
|
||
|
||
public override bool AlterActualDamageAfterCalculation(Character character, Character enemy, ref double damage, bool isNormalAttack, bool isMagicDamage, MagicType magicType, DamageResult damageResult)
|
||
{
|
||
if (damageResult != DamageResult.Evaded)
|
||
{
|
||
if (enemy == Skill.Character && damage > 0 && !enemy.Effects.Where(e => e is 绝对领域特效).Any())
|
||
{
|
||
累计伤害 = 0;
|
||
}
|
||
|
||
if (character == Skill.Character)
|
||
{
|
||
double 实际伤害提升 = Calculation.Round2Digits(damage * 累计伤害);
|
||
damage = Calculation.Round2Digits(damage + 实际伤害提升);
|
||
if (实际伤害提升 > 0) WriteLine($"[ {character} ] 的伤害提升了 {实际伤害提升} 点!");
|
||
}
|
||
}
|
||
return false;
|
||
}
|
||
|
||
public override void OnTimeElapsed(Character character, double eapsed)
|
||
{
|
||
累计伤害 = Calculation.Round4Digits(累计伤害 + 伤害提升 * eapsed);
|
||
WriteLine($"[ {character} ] 的 [ {Name} ] 效果增加了,当前总提升:{累计伤害 * 100:0.##}%。");
|
||
}
|
||
}
|
||
}
|