mirror of
https://github.com/oshima-studios/OshimaGameModule.git
synced 2026-03-05 22:20:28 +00:00
40 lines
1.7 KiB
C#
40 lines
1.7 KiB
C#
using Milimoe.FunGame.Core.Entity;
|
|
using Milimoe.FunGame.Core.Library.Constant;
|
|
|
|
namespace Oshima.FunGame.OshimaModules.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 override string DispelDescription => Effects.Count > 0 ? Effects.First().DispelDescription : "";
|
|
|
|
public 贪欲猎手(Character? character = null) : base(SkillType.Passive, character)
|
|
{
|
|
Effects.Add(new 贪欲猎手特效(this));
|
|
}
|
|
|
|
public override IEnumerable<Effect> AddPassiveEffectToCharacter()
|
|
{
|
|
return Effects;
|
|
}
|
|
}
|
|
|
|
public class 贪欲猎手特效(Skill skill) : Effect(skill)
|
|
{
|
|
public override long Id => Skill.Id;
|
|
public override string Name => Skill.Name;
|
|
public override string Description => $"造成伤害后,基于造成伤害值的 {生命回复系数 * 100:0.##}% 回复生命值。";
|
|
|
|
private double 生命回复系数 => Skill.Character != null ? 0.04 + Skill.Character.Level / 10 * 0.01 : 0.04;
|
|
|
|
public override void AfterDamageCalculation(Character character, Character enemy, double damage, double actualDamage, bool isNormalAttack, DamageType damageType, MagicType magicType, DamageResult damageResult)
|
|
{
|
|
if (Skill.Character != null && Skill.Character == character && isNormalAttack && (damageResult == DamageResult.Normal || damageResult == DamageResult.Critical))
|
|
{
|
|
HealToTarget(character, character, 生命回复系数 * actualDamage);
|
|
}
|
|
}
|
|
}
|
|
} |