2025-09-26 23:32:53 +08:00

72 lines
3.4 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using Milimoe.FunGame.Core.Entity;
using Milimoe.FunGame.Core.Library.Constant;
using Oshima.FunGame.OshimaModules.Effects.PassiveEffects;
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 => $"连续3次普通攻击同一目标时造成额外的 {额外伤害系数 * 100:0.##}% 伤害并使其进入易损状态,后续承受伤害提升 {易损伤害提升百分比 * 100:0.##}%,持续 {易损持续时间:0.##} {GameplayEquilibriumConstant.InGameTime}。";
private double => Skill.Character != null ? 0.15 + Skill.Character.Level * 0.004 : 0.15;
private double => Skill.Character != null ? 0.06 + Skill.Character.Level * 0.005 : 0.06;
private double => Skill.Character != null ? 15 + Skill.Character.Level * 0.1 : 15;
private int = 0;
private Character? = null;
public override double AlterActualDamageAfterCalculation(Character character, Character enemy, double damage, bool isNormalAttack, DamageType damageType, MagicType magicType, DamageResult damageResult, ref bool isEvaded, Dictionary<Effect, double> totalDamageBonus)
{
if (Skill.Character != null && Skill.Character == character && isNormalAttack && (damageResult == DamageResult.Normal || damageResult == DamageResult.Critical))
{
if ( != enemy)
{
= 0;
= enemy;
}
++;
if ( == 3)
{
double = damage * ;
WriteLine($"[ {character} ] 发动了强攻!将额外造成 {额外伤害:0.##} 点伤害!");
= 0;
WriteLine($"[ {character} ] 对 [ {enemy} ] 施加了易损状态![ {enemy} ] 的承受伤害提升 {易损伤害提升百分比 * 100:0.##}%");
(character, enemy);
return ;
}
}
return 0;
}
private void (Character character, Character target)
{
Effect e = new (Skill, target, character, true, , 0, );
target.Effects.Add(e);
e.OnEffectGained(target);
RecordCharacterApplyEffects(target, EffectType.Vulnerable);
}
}
}