From e9ac754f6c3d200b7cfa8f5609ea4c35020491bd Mon Sep 17 00:00:00 2001 From: milimoe Date: Thu, 3 Jul 2025 22:37:59 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=98=93=E4=BC=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- OshimaModules/Effects/EffectID.cs | 31 ++ OshimaModules/Effects/PassiveEffects/冻结.cs | 11 + .../Effects/PassiveEffects/完全免疫.cs | 3 +- .../Effects/PassiveEffects/完全行动不能.cs | 57 ++++ OshimaModules/Effects/PassiveEffects/封技.cs | 3 +- OshimaModules/Effects/PassiveEffects/愤怒.cs | 103 ++++++ .../Effects/PassiveEffects/技能免疫.cs | 3 +- .../Effects/PassiveEffects/持续性弱驱散.cs | 3 +- .../Effects/PassiveEffects/持续性强驱散.cs | 3 +- OshimaModules/Effects/PassiveEffects/易伤.cs | 67 ++++ OshimaModules/Effects/PassiveEffects/气绝.cs | 3 +- OshimaModules/Effects/PassiveEffects/混乱.cs | 3 +- .../Effects/PassiveEffects/物理免疫.cs | 3 +- .../Effects/PassiveEffects/物理护盾.cs | 3 +- OshimaModules/Effects/PassiveEffects/眩晕.cs | 47 +-- OshimaModules/Effects/PassiveEffects/石化.cs | 11 + .../Effects/PassiveEffects/累积之压标记.cs | 3 +- OshimaModules/Effects/PassiveEffects/虚弱.cs | 3 +- OshimaModules/Effects/PassiveEffects/迟滞.cs | 65 ++++ .../Effects/PassiveEffects/魔法免疫.cs | 3 +- .../Effects/PassiveEffects/魔法护盾.cs | 3 +- OshimaModules/Skills/SkillID.cs | 297 ++++++++++++------ 22 files changed, 579 insertions(+), 149 deletions(-) create mode 100644 OshimaModules/Effects/PassiveEffects/冻结.cs create mode 100644 OshimaModules/Effects/PassiveEffects/完全行动不能.cs create mode 100644 OshimaModules/Effects/PassiveEffects/愤怒.cs create mode 100644 OshimaModules/Effects/PassiveEffects/易伤.cs create mode 100644 OshimaModules/Effects/PassiveEffects/石化.cs create mode 100644 OshimaModules/Effects/PassiveEffects/迟滞.cs diff --git a/OshimaModules/Effects/EffectID.cs b/OshimaModules/Effects/EffectID.cs index d465d79..825bc0c 100644 --- a/OshimaModules/Effects/EffectID.cs +++ b/OshimaModules/Effects/EffectID.cs @@ -220,4 +220,35 @@ /// Active_End = 8999 } + + public enum PassiveEffectID : long + { + 完全行动不能 = 4101, + 行动受限 = 4102, + 战斗不能 = 4103, + 封技 = 4104, + 缴械 = 4105, + 标记 = 4106, + 眩晕 = 4107, + 石化 = 4108, + 冻结 = 4109, + 烧伤 = 4110, + 中毒 = 4111, + 诅咒 = 4112, + 愤怒 = 4113, + 混乱 = 4114, + 气绝 = 4115, + 虚弱 = 4116, + 迟滞 = 4117, + 易伤 = 4118, + 物理护盾 = 4119, + 魔法护盾 = 4120, + 物理免疫 = 4121, + 魔法免疫 = 4122, + 技能免疫 = 4123, + 完全免疫 = 4124, + 持续性弱驱散 = 4125, + 持续性强驱散 = 4126, + 累积之压标记 = 4127 + } } diff --git a/OshimaModules/Effects/PassiveEffects/冻结.cs b/OshimaModules/Effects/PassiveEffects/冻结.cs new file mode 100644 index 0000000..d2b1afc --- /dev/null +++ b/OshimaModules/Effects/PassiveEffects/冻结.cs @@ -0,0 +1,11 @@ +using Milimoe.FunGame.Core.Entity; +using Milimoe.FunGame.Core.Library.Constant; +using Oshima.FunGame.OshimaModules.Effects.OpenEffects; + +namespace Oshima.FunGame.OshimaModules.Effects.PassiveEffects +{ + public class 冻结(Skill skill, Character sourceCharacter, bool durative = false, double duration = 0, int durationTurn = 1) : 完全行动不能(nameof(冻结), EffectType.Petrify, skill, sourceCharacter, durative, duration, durationTurn) + { + public override long Id => (long)PassiveEffectID.冻结; + } +} diff --git a/OshimaModules/Effects/PassiveEffects/完全免疫.cs b/OshimaModules/Effects/PassiveEffects/完全免疫.cs index 12abdd7..f3660a8 100644 --- a/OshimaModules/Effects/PassiveEffects/完全免疫.cs +++ b/OshimaModules/Effects/PassiveEffects/完全免疫.cs @@ -1,12 +1,13 @@ using Milimoe.FunGame.Core.Entity; using Milimoe.FunGame.Core.Interface.Entity; using Milimoe.FunGame.Core.Library.Constant; +using Oshima.FunGame.OshimaModules.Effects.OpenEffects; namespace Oshima.FunGame.OshimaModules.Effects.PassiveEffects { public class 完全免疫 : Effect { - public override long Id => 4113; + public override long Id => (long)PassiveEffectID.完全免疫; public override string Name => "完全免疫"; public override string Description => $"此角色处于完全免疫状态,无法选中其作为普通攻击和技能的目标(自释放技能除外),免疫物理伤害和魔法伤害。来自:[ {Source} ] 的 [ {Skill.Name} ]"; public override EffectType EffectType => EffectType.PhysicalImmune; diff --git a/OshimaModules/Effects/PassiveEffects/完全行动不能.cs b/OshimaModules/Effects/PassiveEffects/完全行动不能.cs new file mode 100644 index 0000000..cc62f23 --- /dev/null +++ b/OshimaModules/Effects/PassiveEffects/完全行动不能.cs @@ -0,0 +1,57 @@ +using Milimoe.FunGame.Core.Entity; +using Milimoe.FunGame.Core.Library.Constant; +using Oshima.FunGame.OshimaModules.Effects.OpenEffects; + +namespace Oshima.FunGame.OshimaModules.Effects.PassiveEffects +{ + public class 完全行动不能 : Effect + { + public override long Id => (long)PassiveEffectID.完全行动不能; + public override string Name => _name; + public override string Description => $"此角色被{Name}了,不能行动。来自:[ {Source} ] 的 [ {Skill.Name} ]"; + public override EffectType EffectType => _type; + public override DispelledType DispelledType => DispelledType.Strong; + public override bool IsDebuff => true; + public override Character Source => _sourceCharacter; + public override bool Durative => _durative; + public override double Duration => _duration; + public override int DurationTurn => _durationTurn; + + private readonly string _name; + private readonly EffectType _type; + private readonly Character _sourceCharacter; + private readonly bool _durative; + private readonly double _duration; + private readonly int _durationTurn; + + public 完全行动不能(string name, EffectType type, Skill skill, Character sourceCharacter, bool durative = false, double duration = 0, int durationTurn = 1) : base(skill) + { + _name = name; + _type = type; + GamingQueue = skill.GamingQueue; + _sourceCharacter = sourceCharacter; + _durative = durative; + _duration = duration; + _durationTurn = durationTurn; + } + + public override void OnEffectGained(Character character) + { + if (_durative && RemainDuration == 0) + { + RemainDuration = Duration; + } + else if (RemainDurationTurn == 0) + { + RemainDurationTurn = DurationTurn; + } + AddEffectStatesToCharacter(character, [CharacterState.NotActionable]); + InterruptCasting(character, Source); + } + + public override void OnEffectLost(Character character) + { + RemoveEffectStatesFromCharacter(character); + } + } +} diff --git a/OshimaModules/Effects/PassiveEffects/封技.cs b/OshimaModules/Effects/PassiveEffects/封技.cs index a99bbc6..85e38ff 100644 --- a/OshimaModules/Effects/PassiveEffects/封技.cs +++ b/OshimaModules/Effects/PassiveEffects/封技.cs @@ -1,11 +1,12 @@ using Milimoe.FunGame.Core.Entity; using Milimoe.FunGame.Core.Library.Constant; +using Oshima.FunGame.OshimaModules.Effects.OpenEffects; namespace Oshima.FunGame.OshimaModules.Effects.PassiveEffects { public class 封技 : Effect { - public override long Id => 4103; + public override long Id => (long)PassiveEffectID.封技; public override string Name => "封技"; public override string Description => $"此角色被封技了,不能使用技能(魔法、战技和爆发技)。来自:[ {Source} ] 的 [ {Skill.Name} ]"; public override EffectType EffectType => EffectType.Silence; diff --git a/OshimaModules/Effects/PassiveEffects/愤怒.cs b/OshimaModules/Effects/PassiveEffects/愤怒.cs new file mode 100644 index 0000000..b011301 --- /dev/null +++ b/OshimaModules/Effects/PassiveEffects/愤怒.cs @@ -0,0 +1,103 @@ +using Milimoe.FunGame.Core.Entity; +using Milimoe.FunGame.Core.Library.Constant; +using Oshima.FunGame.OshimaModules.Effects.OpenEffects; + +namespace Oshima.FunGame.OshimaModules.Effects.PassiveEffects +{ + public class 愤怒 : Effect + { + public override long Id => (long)PassiveEffectID.愤怒; + public override string Name => "愤怒"; + public override string Description => $"此角色处于愤怒状态,行动受限且失控,行动回合中无法自主行动,仅能对 [ {_targetCharacter} ] 发起普通攻击。来自:[ {Source} ] 的 [ {Skill.Name} ]"; + public override EffectType EffectType => EffectType.Taunt; + public override DispelledType DispelledType => DispelledType.Strong; + public override bool IsDebuff => true; + public override Character Source => _sourceCharacter; + public override bool Durative => _durative; + public override double Duration => _duration; + public override int DurationTurn => _durationTurn; + + private readonly Character _sourceCharacter; + private readonly Character _targetCharacter; + private readonly bool _durative; + private readonly double _duration; + private readonly int _durationTurn; + + public 愤怒(Skill skill, Character sourceCharacter, Character targetCharacter, bool durative = false, double duration = 0, int durationTurn = 1) : base(skill) + { + GamingQueue = skill.GamingQueue; + _sourceCharacter = sourceCharacter; + _targetCharacter = targetCharacter; + _durative = durative; + _duration = duration; + _durationTurn = durationTurn; + } + + public override void AlterSelectListBeforeAction(Character character, List enemys, List teammates, List skills, Dictionary continuousKilling, Dictionary earnedMoney) + { + // 为了确保角色能够自动化行动,这里需要将角色设置为可行动 + if (character.CharacterState == CharacterState.ActionRestricted) + { + GamingQueue?.SetCharactersToAIControl(true, false, character); + character.CharacterState = CharacterState.Actionable; + } + enemys.Clear(); + teammates.Clear(); + if (_targetCharacter.HP > 0) + { + enemys.Add(_targetCharacter); + } + } + + public override CharacterActionType AlterActionTypeBeforeAction(Character character, CharacterState state, ref bool canUseItem, ref bool canCastSkill, ref double pUseItem, ref double pCastSkill, ref double pNormalAttack, ref bool forceAction) + { + forceAction = true; + if (_targetCharacter.HP > 0) + { + return CharacterActionType.NormalAttack; + } + // 如果目标已死亡,则放弃本回合行动,并在回合结束后自动移除愤怒状态 + RemainDuration = 0; + RemainDurationTurn = 0; + return CharacterActionType.EndTurn; + } + + public override void AfterDeathCalculation(Character death, Character? killer, Dictionary continuousKilling, Dictionary earnedMoney) + { + if (death == _targetCharacter) + { + // 如果目标死亡,则在下次时间流逝时自动移除愤怒状态 + RemainDuration = 0; + RemainDurationTurn = 0; + } + } + + public override void OnTurnEnd(Character character) + { + character.UpdateCharacterState(); + } + + public override void OnEffectGained(Character character) + { + if (_durative && RemainDuration == 0) + { + RemainDuration = Duration; + } + else if (RemainDurationTurn == 0) + { + RemainDurationTurn = DurationTurn; + } + GamingQueue?.SetCharactersToAIControl(true, false, character); + AddEffectStatesToCharacter(character, [CharacterState.ActionRestricted]); + AddEffectTypeToCharacter(character, [EffectType.Taunt]); + InterruptCasting(character, Source); + } + + public override void OnEffectLost(Character character) + { + GamingQueue?.SetCharactersToAIControl(true, true, character); + RemoveEffectStatesFromCharacter(character); + RemoveEffectTypesFromCharacter(character); + } + } +} diff --git a/OshimaModules/Effects/PassiveEffects/技能免疫.cs b/OshimaModules/Effects/PassiveEffects/技能免疫.cs index 15222a6..9b66af4 100644 --- a/OshimaModules/Effects/PassiveEffects/技能免疫.cs +++ b/OshimaModules/Effects/PassiveEffects/技能免疫.cs @@ -1,12 +1,13 @@ using Milimoe.FunGame.Core.Entity; using Milimoe.FunGame.Core.Interface.Entity; using Milimoe.FunGame.Core.Library.Constant; +using Oshima.FunGame.OshimaModules.Effects.OpenEffects; namespace Oshima.FunGame.OshimaModules.Effects.PassiveEffects { public class 技能免疫 : Effect { - public override long Id => 4110; + public override long Id => (long)PassiveEffectID.技能免疫; public override string Name => "技能免疫"; public override string Description => $"此角色处于技能免疫状态,无法选中其作为技能目标(自释放技能除外),并免疫来自技能的伤害。来自:[ {Source} ] 的 [ {Skill.Name} ]"; public override EffectType EffectType => EffectType.SkilledImmune; diff --git a/OshimaModules/Effects/PassiveEffects/持续性弱驱散.cs b/OshimaModules/Effects/PassiveEffects/持续性弱驱散.cs index 443d329..56ed5b0 100644 --- a/OshimaModules/Effects/PassiveEffects/持续性弱驱散.cs +++ b/OshimaModules/Effects/PassiveEffects/持续性弱驱散.cs @@ -1,11 +1,12 @@ using Milimoe.FunGame.Core.Entity; using Milimoe.FunGame.Core.Library.Constant; +using Oshima.FunGame.OshimaModules.Effects.OpenEffects; namespace Oshima.FunGame.OshimaModules.Effects.PassiveEffects { public class 持续性弱驱散 : Effect { - public override long Id => 4104; + public override long Id => (long)PassiveEffectID.持续性弱驱散; public override string Name => "持续性弱驱散"; public override string Description => $"此角色正在被持续性弱驱散。来自:[ {Source} ] 的 [ {Skill.Name} ]"; public override EffectType EffectType => EffectType.WeakDispelling; diff --git a/OshimaModules/Effects/PassiveEffects/持续性强驱散.cs b/OshimaModules/Effects/PassiveEffects/持续性强驱散.cs index c557cdd..bdd3d77 100644 --- a/OshimaModules/Effects/PassiveEffects/持续性强驱散.cs +++ b/OshimaModules/Effects/PassiveEffects/持续性强驱散.cs @@ -1,11 +1,12 @@ using Milimoe.FunGame.Core.Entity; using Milimoe.FunGame.Core.Library.Constant; +using Oshima.FunGame.OshimaModules.Effects.OpenEffects; namespace Oshima.FunGame.OshimaModules.Effects.PassiveEffects { public class 持续性强驱散 : Effect { - public override long Id => 4105; + public override long Id => (long)PassiveEffectID.持续性强驱散; public override string Name => "持续性强驱散"; public override string Description => $"此角色正在被持续性强驱散。来自:[ {Source} ] 的 [ {Skill.Name} ]"; public override EffectType EffectType => EffectType.StrongDispelling; diff --git a/OshimaModules/Effects/PassiveEffects/易伤.cs b/OshimaModules/Effects/PassiveEffects/易伤.cs new file mode 100644 index 0000000..0f5d365 --- /dev/null +++ b/OshimaModules/Effects/PassiveEffects/易伤.cs @@ -0,0 +1,67 @@ +using Milimoe.FunGame.Core.Entity; +using Milimoe.FunGame.Core.Library.Constant; +using Oshima.FunGame.OshimaModules.Effects.OpenEffects; + +namespace Oshima.FunGame.OshimaModules.Effects.PassiveEffects +{ + public class 易伤 : Effect + { + public override long Id => (long)PassiveEffectID.易伤; + public override string Name => "易伤"; + public override string Description => $"此角色处于易伤状态,额外受到 {_exDamagePercent * 100:0.##}% {CharacterSet.GetDamageTypeName(_damageType)}。来自:[ {Source} ] 的 [ {Skill.Name} ]"; + public override EffectType EffectType => EffectType.Vulnerable; + public override bool IsDebuff => true; + public override Character Source => _sourceCharacter; + public override bool Durative => _durative; + public override double Duration => _duration; + public override int DurationTurn => _durationTurn; + + private readonly DamageType _damageType; + private readonly Character _targetCharacter; + private readonly Character _sourceCharacter; + private readonly bool _durative; + private readonly double _duration; + private readonly int _durationTurn; + private readonly double _exDamagePercent; + + public 易伤(Skill skill, Character targetCharacter, Character sourceCharacter, bool durative = false, double duration = 0, int durationTurn = 1, + DamageType damageType = DamageType.Magical, double exDamagePercent = 0) : base(skill) + { + GamingQueue = skill.GamingQueue; + _targetCharacter = targetCharacter; + _sourceCharacter = sourceCharacter; + _durative = durative; + _duration = duration; + _durationTurn = durationTurn; + _damageType = damageType; + _exDamagePercent = exDamagePercent; + } + + public override double AlterActualDamageAfterCalculation(Character character, Character enemy, double damage, bool isNormalAttack, DamageType damageType, MagicType magicType, DamageResult damageResult, ref bool isEvaded, Dictionary totalDamageBonus) + { + if (enemy == _targetCharacter && damageType == _damageType) + { + return damage * _exDamagePercent; + } + return 0; + } + + public override void OnEffectGained(Character character) + { + if (_durative && RemainDuration == 0) + { + RemainDuration = Duration; + } + else if (RemainDurationTurn == 0) + { + RemainDurationTurn = DurationTurn; + } + AddEffectTypeToCharacter(character, [EffectType.Vulnerable]); + } + + public override void OnEffectLost(Character character) + { + RemoveEffectTypesFromCharacter(character); + } + } +} diff --git a/OshimaModules/Effects/PassiveEffects/气绝.cs b/OshimaModules/Effects/PassiveEffects/气绝.cs index 49331c7..fc703d2 100644 --- a/OshimaModules/Effects/PassiveEffects/气绝.cs +++ b/OshimaModules/Effects/PassiveEffects/气绝.cs @@ -1,11 +1,12 @@ using Milimoe.FunGame.Core.Entity; using Milimoe.FunGame.Core.Library.Constant; +using Oshima.FunGame.OshimaModules.Effects.OpenEffects; namespace Oshima.FunGame.OshimaModules.Effects.PassiveEffects { public class 气绝 : Effect { - public override long Id => 4109; + public override long Id => (long)PassiveEffectID.气绝; public override string Name => "气绝"; public override string Description => $"此角色处于气绝状态,行动受限并且每{GameplayEquilibriumConstant.InGameTime}流失 {(_isPercentage ? $"{_durationDamagePercent * 100:0.##}% [ {Damage:0.##} ]" : Damage.ToString("0.##"))} 点当前生命值,此生命流失效果不会导致角色死亡。来自:[ {Source} ] 的 [ {Skill.Name} ]"; public override EffectType EffectType => EffectType.Bleed; diff --git a/OshimaModules/Effects/PassiveEffects/混乱.cs b/OshimaModules/Effects/PassiveEffects/混乱.cs index 863484d..fc09b1e 100644 --- a/OshimaModules/Effects/PassiveEffects/混乱.cs +++ b/OshimaModules/Effects/PassiveEffects/混乱.cs @@ -1,11 +1,12 @@ using Milimoe.FunGame.Core.Entity; using Milimoe.FunGame.Core.Library.Constant; +using Oshima.FunGame.OshimaModules.Effects.OpenEffects; namespace Oshima.FunGame.OshimaModules.Effects.PassiveEffects { public class 混乱 : Effect { - public override long Id => 4114; + public override long Id => (long)PassiveEffectID.混乱; public override string Name => "混乱"; public override string Description => $"此角色处于混乱状态,行动受限且失控,行动回合中无法自主行动而是随机行动,在进行攻击指令时,可能会选取友方角色为目标。来自:[ {Source} ] 的 [ {Skill.Name} ]"; public override EffectType EffectType => EffectType.Confusion; diff --git a/OshimaModules/Effects/PassiveEffects/物理免疫.cs b/OshimaModules/Effects/PassiveEffects/物理免疫.cs index ee6f5fd..2a2cb0d 100644 --- a/OshimaModules/Effects/PassiveEffects/物理免疫.cs +++ b/OshimaModules/Effects/PassiveEffects/物理免疫.cs @@ -1,11 +1,12 @@ using Milimoe.FunGame.Core.Entity; using Milimoe.FunGame.Core.Library.Constant; +using Oshima.FunGame.OshimaModules.Effects.OpenEffects; namespace Oshima.FunGame.OshimaModules.Effects.PassiveEffects { public class 物理免疫 : Effect { - public override long Id => 4112; + public override long Id => (long)PassiveEffectID.物理免疫; public override string Name => "物理免疫"; public override string Description => $"此角色处于物理免疫状态,免疫物理伤害。来自:[ {Source} ] 的 [ {Skill.Name} ]"; public override EffectType EffectType => EffectType.PhysicalImmune; diff --git a/OshimaModules/Effects/PassiveEffects/物理护盾.cs b/OshimaModules/Effects/PassiveEffects/物理护盾.cs index 2cfc010..a982081 100644 --- a/OshimaModules/Effects/PassiveEffects/物理护盾.cs +++ b/OshimaModules/Effects/PassiveEffects/物理护盾.cs @@ -1,11 +1,12 @@ using Milimoe.FunGame.Core.Entity; using Milimoe.FunGame.Core.Library.Constant; +using Oshima.FunGame.OshimaModules.Effects.OpenEffects; namespace Oshima.FunGame.OshimaModules.Effects.PassiveEffects { public class 物理护盾 : Effect { - public override long Id => 4106; + public override long Id => (long)PassiveEffectID.物理护盾; public override string Name => "物理护盾"; public override string Description => $"此角色拥有物理护盾{CurrentShield}。来自:[ {Source} ] 的 [ {Skill.Name} ]"; public override EffectType EffectType => EffectType.Shield; diff --git a/OshimaModules/Effects/PassiveEffects/眩晕.cs b/OshimaModules/Effects/PassiveEffects/眩晕.cs index a7e3f7c..c40a13e 100644 --- a/OshimaModules/Effects/PassiveEffects/眩晕.cs +++ b/OshimaModules/Effects/PassiveEffects/眩晕.cs @@ -1,52 +1,11 @@ using Milimoe.FunGame.Core.Entity; using Milimoe.FunGame.Core.Library.Constant; +using Oshima.FunGame.OshimaModules.Effects.OpenEffects; namespace Oshima.FunGame.OshimaModules.Effects.PassiveEffects { - public class 眩晕 : Effect + public class 眩晕(Skill skill, Character sourceCharacter, bool durative = false, double duration = 0, int durationTurn = 1) : 完全行动不能(nameof(眩晕), EffectType.Stun, skill, sourceCharacter, durative, duration, durationTurn) { - public override long Id => 4101; - public override string Name => "眩晕"; - public override string Description => $"此角色被眩晕了,不能行动。来自:[ {Source} ] 的 [ {Skill.Name} ]"; - public override EffectType EffectType => EffectType.Stun; - public override DispelledType DispelledType => DispelledType.Strong; - public override bool IsDebuff => true; - public override Character Source => _sourceCharacter; - public override bool Durative => _durative; - public override double Duration => _duration; - public override int DurationTurn => _durationTurn; - - private readonly Character _sourceCharacter; - private readonly bool _durative; - private readonly double _duration; - private readonly int _durationTurn; - - public 眩晕(Skill skill, Character sourceCharacter, bool durative = false, double duration = 0, int durationTurn = 1) : base(skill) - { - GamingQueue = skill.GamingQueue; - _sourceCharacter = sourceCharacter; - _durative = durative; - _duration = duration; - _durationTurn = durationTurn; - } - - public override void OnEffectGained(Character character) - { - if (_durative && RemainDuration == 0) - { - RemainDuration = Duration; - } - else if (RemainDurationTurn == 0) - { - RemainDurationTurn = DurationTurn; - } - AddEffectStatesToCharacter(character, [CharacterState.NotActionable]); - InterruptCasting(character, Source); - } - - public override void OnEffectLost(Character character) - { - RemoveEffectStatesFromCharacter(character); - } + public override long Id => (long)PassiveEffectID.眩晕; } } diff --git a/OshimaModules/Effects/PassiveEffects/石化.cs b/OshimaModules/Effects/PassiveEffects/石化.cs new file mode 100644 index 0000000..a20f9b8 --- /dev/null +++ b/OshimaModules/Effects/PassiveEffects/石化.cs @@ -0,0 +1,11 @@ +using Milimoe.FunGame.Core.Entity; +using Milimoe.FunGame.Core.Library.Constant; +using Oshima.FunGame.OshimaModules.Effects.OpenEffects; + +namespace Oshima.FunGame.OshimaModules.Effects.PassiveEffects +{ + public class 石化(Skill skill, Character sourceCharacter, bool durative = false, double duration = 0, int durationTurn = 1) : 完全行动不能(nameof(石化), EffectType.Petrify, skill, sourceCharacter, durative, duration, durationTurn) + { + public override long Id => (long)PassiveEffectID.石化; + } +} diff --git a/OshimaModules/Effects/PassiveEffects/累积之压标记.cs b/OshimaModules/Effects/PassiveEffects/累积之压标记.cs index 539d379..7c76fb4 100644 --- a/OshimaModules/Effects/PassiveEffects/累积之压标记.cs +++ b/OshimaModules/Effects/PassiveEffects/累积之压标记.cs @@ -1,11 +1,12 @@ using Milimoe.FunGame.Core.Entity; using Milimoe.FunGame.Core.Library.Constant; +using Oshima.FunGame.OshimaModules.Effects.OpenEffects; namespace Oshima.FunGame.OshimaModules.Effects.PassiveEffects { public class 累积之压标记 : Effect { - public override long Id => 4102; + public override long Id => (long)PassiveEffectID.累积之压标记; public override string Name => "累积之压标记"; public override string Description => $"此角色持有累积之压标记。来自:[ {Source} ]"; public override EffectType EffectType => EffectType.Mark; diff --git a/OshimaModules/Effects/PassiveEffects/虚弱.cs b/OshimaModules/Effects/PassiveEffects/虚弱.cs index bbc34cd..5caea4b 100644 --- a/OshimaModules/Effects/PassiveEffects/虚弱.cs +++ b/OshimaModules/Effects/PassiveEffects/虚弱.cs @@ -1,11 +1,12 @@ using Milimoe.FunGame.Core.Entity; using Milimoe.FunGame.Core.Library.Constant; +using Oshima.FunGame.OshimaModules.Effects.OpenEffects; namespace Oshima.FunGame.OshimaModules.Effects.PassiveEffects { public class 虚弱 : Effect { - public override long Id => 4108; + public override long Id => (long)PassiveEffectID.虚弱; public override string Name => "虚弱"; public override string Description => $"此角色处于虚弱状态,伤害降低 {_damageReductionPercent * 100:0.##}%," + $"物理护甲降低 {_DEFReductionPercent * 100:0.##}%,魔法抗性降低 {_MDFReductionPercent * 100:0.##}%,治疗效果降低 {_healingReductionPercent * 100:0.##}%。来自:[ {Source} ] 的 [ {Skill.Name} ]"; diff --git a/OshimaModules/Effects/PassiveEffects/迟滞.cs b/OshimaModules/Effects/PassiveEffects/迟滞.cs new file mode 100644 index 0000000..35bf26d --- /dev/null +++ b/OshimaModules/Effects/PassiveEffects/迟滞.cs @@ -0,0 +1,65 @@ +using Milimoe.FunGame.Core.Entity; +using Milimoe.FunGame.Core.Library.Constant; +using Oshima.FunGame.OshimaModules.Effects.OpenEffects; + +namespace Oshima.FunGame.OshimaModules.Effects.PassiveEffects +{ + public class 迟滞 : Effect + { + public override long Id => (long)PassiveEffectID.迟滞; + public override string Name => "迟滞"; + public override string Description => $"此角色处于迟滞状态,普通攻击和技能的硬直时间、当前行动等待时间延长 {_hardnessReductionPercent * 100:0.##}%。来自:[ {Source} ] 的 [ {Skill.Name} ]"; + public override EffectType EffectType => EffectType.Slow; + public override DispelledType DispelledType => DispelledType.Weak; + public override bool IsDebuff => true; + public override Character Source => _sourceCharacter; + public override bool Durative => _durative; + public override double Duration => _duration; + public override int DurationTurn => _durationTurn; + + private readonly Character _sourceCharacter; + private readonly bool _durative; + private readonly double _duration; + private readonly int _durationTurn; + private readonly double _hardnessReductionPercent; + + public 迟滞(Skill skill, Character sourceCharacter, bool durative = false, double duration = 0, int durationTurn = 1, double healingReductionPercent = 0) : base(skill) + { + GamingQueue = skill.GamingQueue; + _sourceCharacter = sourceCharacter; + _durative = durative; + _duration = duration; + _durationTurn = durationTurn; + _hardnessReductionPercent = healingReductionPercent; + } + + public override void AlterHardnessTimeAfterCastSkill(Character character, Skill skill, ref double baseHardnessTime, ref bool isCheckProtected) + { + baseHardnessTime *= 1 + _hardnessReductionPercent; + } + + public override void AlterHardnessTimeAfterNormalAttack(Character character, ref double baseHardnessTime, ref bool isCheckProtected) + { + baseHardnessTime *= 1 + _hardnessReductionPercent; + } + + public override void OnEffectGained(Character character) + { + if (_durative && RemainDuration == 0) + { + RemainDuration = Duration; + } + else if (RemainDurationTurn == 0) + { + RemainDurationTurn = DurationTurn; + } + GamingQueue?.ChangeCharacterHardnessTime(character, _hardnessReductionPercent, true, false); + AddEffectTypeToCharacter(character, [EffectType.Slow]); + } + + public override void OnEffectLost(Character character) + { + RemoveEffectTypesFromCharacter(character); + } + } +} diff --git a/OshimaModules/Effects/PassiveEffects/魔法免疫.cs b/OshimaModules/Effects/PassiveEffects/魔法免疫.cs index 0969fd4..ff07498 100644 --- a/OshimaModules/Effects/PassiveEffects/魔法免疫.cs +++ b/OshimaModules/Effects/PassiveEffects/魔法免疫.cs @@ -1,12 +1,13 @@ using Milimoe.FunGame.Core.Entity; using Milimoe.FunGame.Core.Interface.Entity; using Milimoe.FunGame.Core.Library.Constant; +using Oshima.FunGame.OshimaModules.Effects.OpenEffects; namespace Oshima.FunGame.OshimaModules.Effects.PassiveEffects { public class 魔法免疫 : Effect { - public override long Id => 4111; + public override long Id => (long)PassiveEffectID.魔法免疫; public override string Name => "魔法免疫"; public override string Description => $"此角色处于魔法免疫状态,无法选中其作为魔法技能的目标(自释放魔法技能除外),并且免疫魔法伤害。来自:[ {Source} ] 的 [ {Skill.Name} ]"; public override EffectType EffectType => EffectType.MagicalImmune; diff --git a/OshimaModules/Effects/PassiveEffects/魔法护盾.cs b/OshimaModules/Effects/PassiveEffects/魔法护盾.cs index d9a862b..50718b5 100644 --- a/OshimaModules/Effects/PassiveEffects/魔法护盾.cs +++ b/OshimaModules/Effects/PassiveEffects/魔法护盾.cs @@ -1,11 +1,12 @@ using Milimoe.FunGame.Core.Entity; using Milimoe.FunGame.Core.Library.Constant; +using Oshima.FunGame.OshimaModules.Effects.OpenEffects; namespace Oshima.FunGame.OshimaModules.Effects.PassiveEffects { public class 魔法护盾 : Effect { - public override long Id => 4107; + public override long Id => (long)PassiveEffectID.魔法护盾; public override string Name => "魔法护盾"; public override string Description => $"此角色拥有魔法护盾{CurrentShield}。来自:[ {Source} ] 的 [ {Skill.Name} ]"; public override EffectType EffectType => EffectType.Shield; diff --git a/OshimaModules/Skills/SkillID.cs b/OshimaModules/Skills/SkillID.cs index ee7375e..b788bfa 100644 --- a/OshimaModules/Skills/SkillID.cs +++ b/OshimaModules/Skills/SkillID.cs @@ -1,4 +1,9 @@ -// 注:绝大多数技能名称来自《英雄传说 空之轨迹》 +// 注: +// 爆发技增益效果通常不可驱散。 +// 未注明友方·的增益技能均为自身,反之,可选取友方或者自身。特殊情况:友方不含自身等。 +// 被动技能不可驱散,未说明作用对象时均为自身。 +// 省略了作用目标的负面技能均为作用于敌方。(特殊地,减少硬直是增益) +// 技能名称来源:《英雄传说 空之轨迹》/《英雄联盟》/《DOTA2》 namespace Oshima.FunGame.OshimaModules.Skills { /** @@ -47,7 +52,7 @@ namespace Oshima.FunGame.OshimaModules.Skills * 弧形日珥 = 多目标伤害(风之轮·复) * 苍白地狱 = 多目标伤害(心灵之霞·复) * 破碎虚空 = 多目标伤害(暗物质·复) - * 弧光消耗 = 多目标吸取MP和EP + * 弧光消耗 = 多目标吸取魔法值和能量值 * * 回复术·改 = 我方·单体回复(百分比) * 回复术·复 = 我方·多目标回复(百分比) @@ -130,49 +135,37 @@ namespace Oshima.FunGame.OshimaModules.Skills * 绞丝棍 = 单体伤害 * 金刚击 = 单体伤害+施法解除 * 旋风轮 = 多目标伤害 - * 樱花无双击 = 单体伤害+生命偷取 * 双连击 = 单体2次普通攻击 * 绝影 = 单体伤害+迟滞(硬直时间延长),可弱驱散 - * 胧 = 单体攻击,20%几率战斗不能(攻击不能+施法不能),需强驱散 - * 魔眼 = 单体迟滞(硬直时间延长)、30%概率混乱(行动受限,如同AI控制行动,回合型),需强驱散 - * 漆黑之牙 = 全体伤害 + * 胧 = 单体攻击,概率战斗不能(攻击不能+施法不能),需强驱散 + * 魔眼 = 单体迟滞(硬直时间延长)、概率混乱(行动受限,如同AI控制行动,回合型),需强驱散 * 风之鞭 = 多目标伤害 * 拘束之鞭 = 单体伤害+施法解除 * 天堂之吻 = 我方·硬直时间提前(时间型) * 狐媚暗随 = 单体伤害 - * 女王之怒 = 单体伤害+虚弱(伤害降低+护甲魔抗降低+重伤,回合型),可弱驱散 - * 裁决塔罗 = 多目标伤害+以下状态之一:冻结(完全行动不能+魔法易伤)/混乱(行动受限,如同AI控制行动,回合型)/战斗不能(攻击不能+施法不能),需强驱散 * 快速狙击 = 随机单体目标伤害 * 精准射击 = 单体伤害+施法解除 * 欢乐激发 = 我方·多目标回复 * 乱心安魂曲 = 多目标伤害 * 斗魂 = 攻击力降低+物理护甲降低,可弱驱散 * 岚 = 多目标伤害+施法解除 - * 光明之环 = 我方·全体强驱散+复苏,复苏的回复量为20%;起步消耗100能量,每10能量额外增加护甲魔抗 - * 圣星光旋 = 全体伤害 * 公牛之怒 = 自身·扣除生命值+回复能量 * 火焰碎击 = 单体伤害+战斗不能(时间型)+施法解除,需强驱散 * 螺旋之刃 = 单体迟滞(硬直时间延长),可弱驱散 * 霸王疾风 = 单体伤害 - * 炎龙倒海 = 全体伤害 * 回复弹 = 我方·单体弱驱散+回复 * 导力装甲 = 自身·封技+攻击力提升+护甲魔抗提升+硬直时间提前 * 回复原状 = 自身·解除导力装甲 - * 卫星激光 = 多目标伤害 - * 强打 = 单体伤害,20%几率气绝(行动受限+持续伤害,时间型),需强驱散 + * 强打 = 单体伤害,概率气绝(行动受限+持续伤害,时间型),需强驱散 * 龙神功 = 自身·攻击力提升+护甲魔抗提升(回合型) * 养命功 = 自身·持续性弱驱散+回复(回合型) - * 月华掌 = 单体伤害,50%几率混乱(行动受限,如同AI控制行动,回合型),需强驱散 + * 月华掌 = 单体伤害,概率混乱(行动受限,如同AI控制行动,回合型),需强驱散 * 雷神脚 = 多目标伤害 - * 泰山玄武靠 = 多目标伤害 * 弓刃交错 = 单体伤害+迟滞(硬直时间延长),可弱驱散 * 神圣祈祷 = 我方·持续性强驱散+回复(时间型) * 牺牲之箭 = 我方不含自身·能量回复 * 石化之矢 = 单体伤害+石化(完全行动不能,时间型),需强驱散 * 死亡制裁 = 多目标伤害 - * 星杯领域 = 我方·完全免疫,回合型;起步消耗100能量,每100能量额外回合 - * 魔枪洛亚 = 全体伤害 - * 八叶灭杀 = 单体伤害 * 剑风闪 = 多目标伤害 * 落叶 = 单体伤害+迟滞(硬直时间延长),可弱驱散 * 风花阵 = 自身·攻击力提升+护甲降低 @@ -180,21 +173,17 @@ namespace Oshima.FunGame.OshimaModules.Skills * 光破斩 = 多目标伤害 * 跳跃点射 = 单体伤害+护甲降低+施法解除,需强驱散 * 鲨鱼锚击 = 单体伤害+气绝(行动受限+持续伤害,时间型),需强驱散 - * 光鬼斩 = 单体伤害,30%几率气绝(行动受限+持续伤害,时间型),需强驱散 - * 樱花残月 = 单体伤害 - * 雷索吸缚 = 单体愤怒(嘲讽,回合型)、30%几率气绝(行动受限+持续伤害,时间型),需强驱散 - * 狂刃剑舞 = 敌方·单体攻击,20%几率混乱(行动受限,如同AI控制行动,回合型),需强驱散 + * 光鬼斩 = 单体伤害,概率气绝(行动受限+持续伤害,时间型),需强驱散 + * 雷索吸缚 = 单体愤怒(嘲讽,回合型)、概率气绝(行动受限+持续伤害,时间型),需强驱散 + * 狂刃剑舞 = 敌方·单体攻击,概率混乱(行动受限,如同AI控制行动,回合型),需强驱散 * 无相飞刀 = 单体封技+施法解除,可弱驱散 * 破邪显正 = 多目标伤害 * 镜花水月 = 自身·完全免疫,回合型 * 号令 = 我方不含自身·攻击力提升 * 千剑之雨 = 多目标伤害 * 无尽剑制 = 全体伤害 - * 圣洁祝福 = 我方不含自身·单体强驱散+回复+能量回复 - * 天堂阻灭 = 单体伤害 - * 灾难一掷 = 单体伤害,10%几率战斗不能 - * 血腥旋转 = 多目标伤害,10%几率战斗不能 - * 歼灭 = 全体伤害,50%几率战斗不能 + * 灾难一掷 = 单体伤害,概率战斗不能 + * 血腥旋转 = 多目标伤害,概率战斗不能 */ public enum SkillID : long { @@ -204,73 +193,92 @@ namespace Oshima.FunGame.OshimaModules.Skills 绞丝棍 = 2004, 金刚击 = 2005, 旋风轮 = 2006, - 樱花无双击 = 2007, - 双连击 = 2008, - 绝影 = 2009, - 胧 = 2010, - 魔眼 = 2011, - 漆黑之牙 = 2012, - 风之鞭 = 2013, - 拘束之鞭 = 2014, - 天堂之吻 = 2015, - 狐媚暗随 = 2016, - 女王之怒 = 2017, - 裁决塔罗 = 2018, - 快速狙击 = 2019, - 精准射击 = 2020, - 欢乐激发 = 2021, - 乱心安魂曲 = 2022, - 斗魂 = 2023, - 岚 = 2024, - 光明之环 = 2025, - 圣星光旋 = 2026, - 公牛之怒 = 2027, - 火焰碎击 = 2028, - 螺旋之刃 = 2029, - 霸王疾风 = 2030, - 炎龙倒海 = 2031, - 回复弹 = 2032, - 导力装甲 = 2033, - 回复原状 = 2034, - 卫星激光 = 2035, - 强打 = 2036, - 龙神功 = 2037, - 养命功 = 2038, - 月华掌 = 2039, - 雷神脚 = 2040, - 泰山玄武靠 = 2041, - 弓刃交错 = 2042, - 神圣祈祷 = 2043, - 牺牲之箭 = 2044, - 石化之矢 = 2045, - 死亡制裁 = 2046, - 星杯领域 = 2047, - 魔枪洛亚 = 2048, - 八叶灭杀 = 2049, - 剑风闪 = 2050, - 落叶 = 2051, - 风花阵 = 2052, - 陀螺舞 = 2053, - 光破斩 = 2054, - 跳跃点射 = 2055, - 鲨鱼锚击 = 2056, - 光鬼斩 = 2057, - 樱花残月 = 2058, - 雷索吸缚 = 2059, - 狂刃剑舞 = 2060, - 无相飞刀 = 2061, - 破邪显正 = 2062, - 镜花水月 = 2063, - 号令 = 2064, - 千剑之雨 = 2065, - 无尽剑制 = 2066, - 圣洁祝福 = 2067, - 天堂阻灭 = 2068, - 灾难一掷 = 2069, - 血腥旋转 = 2070, - 歼灭 = 2071 + 双连击 = 2007, + 绝影 = 2008, + 胧 = 2009, + 魔眼 = 2010, + 风之鞭 = 2011, + 拘束之鞭 = 2012, + 天堂之吻 = 2013, + 狐媚暗随 = 2014, + 快速狙击 = 2015, + 精准射击 = 2016, + 欢乐激发 = 2017, + 乱心安魂曲 = 2018, + 斗魂 = 2019, + 岚 = 2020, + 公牛之怒 = 2021, + 火焰碎击 = 2022, + 螺旋之刃 = 2023, + 霸王疾风 = 2024, + 回复弹 = 2025, + 导力装甲 = 2026, + 回复原状 = 2027, + 强打 = 2028, + 龙神功 = 2029, + 养命功 = 2030, + 月华掌 = 2031, + 雷神脚 = 2032, + 弓刃交错 = 2033, + 神圣祈祷 = 2034, + 牺牲之箭 = 2035, + 石化之矢 = 2036, + 死亡制裁 = 2037, + 剑风闪 = 2038, + 落叶 = 2039, + 风花阵 = 2040, + 陀螺舞 = 2041, + 光破斩 = 2042, + 跳跃点射 = 2043, + 鲨鱼锚击 = 2044, + 光鬼斩 = 2045, + 雷索吸缚 = 2046, + 狂刃剑舞 = 2047, + 无相飞刀 = 2048, + 破邪显正 = 2049, + 镜花水月 = 2050, + 号令 = 2051, + 千剑之雨 = 2052, + 无尽剑制 = 2053, + 灾难一掷 = 2054, + 血腥旋转 = 2055 } + /** + * 力量爆发 = 攻击力提升+普攻自残 + * 天赐之力 = 攻击力+物理穿透+闪避率提升,减少普攻硬直,强化普攻,减少心灵之火CD + * 魔法涌流 = 普攻转为魔法伤害,可以普攻多个目标,护甲+魔抗提升,减少魔法震荡CD + * 三重叠加 = 强化灵能反射,并在触发灵能反射时回复能量 + * 变幻之心 = 根据智慧与力量的模式触发回血+吸血或者魔法伤害加成 + * 精准打击 = 提升暴击率和暴击伤害、物理穿透 + * 绝对领域 = 免疫所有伤害,时间型;起步消耗100能量,每10能量额外时间 + * 能量毁灭 = 多目标魔法伤害,伤害量基于敌人能量值 + * 迅捷之势 = 护甲+魔抗提升,普攻转为魔法伤害,减少普攻硬直,强化普攻 + * 嗜血本能 = 获得吸血,强化累积之压 + * 平衡强化 = 力量+敏捷提升 + * 血之狂欢 = 获得吸血 + * 樱花无双击 = 单体伤害+生命偷取 + * 漆黑之牙 = 全体伤害,此技能击杀敌人时,永久提升该技能伤害 + * 女王之怒 = 单体伤害+虚弱(伤害降低+护甲魔抗降低+重伤,回合型),可弱驱散 + * 裁决塔罗 = 多目标伤害+以下状态之一:冻结(完全行动不能+魔法易伤)/混乱(行动受限,如同AI控制行动,回合型)/战斗不能(攻击不能+施法不能),需强驱散 + * 光明之环 = 我方·全体强驱散+复苏,复苏的回复量为20%;起步消耗100能量,每10能量额外增加护甲魔抗 + * 圣星光旋 = 全体伤害,概率眩晕(时间型),需强驱散 + * 炎龙倒海 = 全体伤害,削减能量,减少行动速度和加速系数,推迟当前硬直 + * 卫星激光 = 多目标伤害,随后一定时间内造成持续真实伤害 + * 泰山玄武靠 = 多目标伤害,概率气绝(行动受限+持续伤害,时间型),需强驱散 + * 星杯领域 = 我方·完全免疫,回合型;起步消耗100能量,每100能量额外回合 + * 魔枪洛亚 = 全体伤害,施法解除+魔抗降低,可弱驱散 + * 八叶灭杀 = 单体伤害,随后基于目标已损失生命值再次造成额外伤害 + * 樱花残月 = 单体伤害,随后提升自身行动速度、加速系数、减少硬直 + * 圣洁祝福 = 我方不含自身·单体强驱散+回复+能量回复 + * 天堂阻灭 = 单体巨额伤害 + * 歼灭 = 全体伤害,概率战斗不能 + * 归元环 = 伤害必定暴击,强化八卦阵 + * 放监 = 强化开宫,要求持有开宫标记的角色完成任务,否则造成巨额伤害 + * 海王星的野望 = 力量提升,对目标造成伤害,在此期间对目标造成伤害后,溅射到其他敌人,强化深海之戟 + * 全军出击 = 补全雇佣兵数量,根据雇佣兵数量额外提升冷却缩减、加速系数、行动系数,雇佣兵伤害提升 + * 自我抉择 = 二选一:加速生命回复,攻击力提升,受到伤害提升,造成伤害后额外造成100%重伤;极致加速生命回复,提供友方生命回复,嘲讽所有敌人 + */ public enum SuperSkillID : long { 力量爆发 = 3001, @@ -285,8 +293,78 @@ namespace Oshima.FunGame.OshimaModules.Skills 嗜血本能 = 3010, 平衡强化 = 3011, 血之狂欢 = 3012, + 樱花无双击 = 3013, + 漆黑之牙 = 3014, + 女王之怒 = 3015, + 裁决塔罗 = 3016, + 光明之环 = 3017, + 圣星光旋 = 3018, + 炎龙倒海 = 3019, + 卫星激光 = 3020, + 泰山玄武靠 = 3021, + 星杯领域 = 3022, + 魔枪洛亚 = 3023, + 八叶灭杀 = 3024, + 樱花残月 = 3025, + 圣洁祝福 = 3026, + 天堂阻灭 = 3027, + 歼灭 = 3028, + 归元环 = 3029, + 放监 = 3030, + 海王星的野望 = 3031, + 全军出击 = 3032, + 自我抉择 = 3033 } + /** + * META马 = 提升初始力量和力量成长,每回合开始和受击时获得额外能量 + * 心灵之火 = 减少普攻硬直,普攻时额外普攻一次,第二次伤害减半 + * 魔法震荡 = 造成魔法伤害时眩晕目标,对处于控制态的敌人造成额外伤害 + * 灵能反射 = 一定次数内释放魔法不会进入硬直,魔法命中后获得额外能量并减少所有技能CD + * 智慧与力量 = 根据当前生命值比例将基础智力转为额外力量或还原,力量模式造成伤害必定暴击,智力模式获得暴击+闪避+魔抗提升 + * 致命打击 = 暴击伤害提升 + * 毁灭之势 = 每经过一段时间,获得伤害加成,造成伤害后减少加成总量的一部分,受到伤害会清零 + * 枯竭打击 = 对一半以下能量的敌人造成额外伤害并削减他们的能量 + * 破釜沉舟 = 减少一部分最大生命值换取伤害加成;获得基于累计受到伤害的百分比伤害加成,技能发动后清零 + * 累积之压 = 造成伤害时标记目标,攻击带有目标的角色造成最大生命值伤害和眩晕 + * 敏捷之刃 = 基于敏捷强化普攻 + * 弱者猎手 = 每个回合都会标记血量最少和血量百分比低于自身的敌人;对受到标记的目标造成额外伤害 + * 征服者 = 普攻或技能命中叠加层数,叠满后下次攻击造成额外真实伤害并提供额外核心属性 + * 致命节奏 = 普攻造成伤害后大幅提升行动速度,行动系数超过阈值后,获得额外攻击力 + * 迅捷步法 = 造成伤害叠加层数,满层后下次攻击回复生命值并提升行动系数和加速系数 + * 强攻 = 3次连续普攻同一目标时造成额外伤害并使其进入“易损”状态,后续承受伤害提升 + * 电刑 = 一定时间内用3个独立普攻/技能命中同一目标时,造成额外伤害 + * 黑暗收割 = 对一半以下生命值的目标造成伤害时,收集其灵魂永久提升伤害 + * 丛刃 = 造成伤害将在短时间内大幅减少硬直时间 + * 贪欲猎手 = 造成伤害时回复生命值 + * 召唤艾黎 = 普通攻击或技能命中时造成伤害或提供护盾 + * 相位猛冲 = 一定时间用3个独立普攻/技能命中敌人后,获得行动速度和加速系数加成 + * 奥术彗星 = 技能命中时造成额外伤害 + * 风暴聚集 = 每过一段时间获得永久额外核心属性 + * 不灭之握 = 普攻造成额外最大生命值伤害并回复生命值,并永久提升生命值 + * 余震 = 对目标造成控制态时,获得双抗加成,随后溅射魔法伤害至随机几个目标 + * 守护者 = 承受超过一定量伤害时提供护盾、行动速度和加速系数 + * 骸骨镀层 = 承受敌方技能伤害后,一定时间内减少其后续3次普攻/技能的伤害 + * 冰川增幅 = 普攻或技能减敌人的行动速度,减速期间友军对其伤害提升 + * 先攻 = 先手攻击英雄时,造成额外真实伤害并获得金币。一段时间内相互未攻击,将重置先手判定 + * 饼干配送 = 每过一段时间获得免费饼干,回复生命值和魔法值 + * 折射​ = 受到伤害时,减少受到的伤害,并反弹一部分伤害给攻击者 + * 恩赐解脱 = 攻击敌人时,有一定概率提升暴击伤害 + * 静电场 = 技能命中时,造成额外真实伤害 + * 竭心光环 = 造成伤害后,对敌人施加持续百分比真实伤害,并无视其生命回复 + * 海妖外壳 = 每过一段时间生成护盾,护盾破碎时强驱散自身 + * 自然蔽护 = 一定时间内未受到伤害,将提升行动速度和治疗加成 + * 勇气之霎 = 受到伤害时,概率触发获得吸血和攻击力提升 + * 深海重击 = 每3次普攻造成眩晕和额外伤害 + * 反击螺旋 = 受到伤害时概率对来源者和随机两个敌人造成真实伤害 + * 刀光谍影 = 造成伤害后,概率进入不可选中状态,持续一段时间或再次攻击敌人 + * 幽冥剧毒 = 普攻附带持续伤害,基于目标已损失生命值 + * 八卦阵 = 造成时概率提升双倍伤害;受到伤害时概率减少一半伤害 + * 开宫 = 角色死亡时偷取技能,或使自己的普攻转为魔法伤害并无视闪避;标记击杀者,被标记者获得互动效果 + * 深海之戟 = 普攻暴击时溅射伤害到随机的两个敌人身上 + * 雇佣兵团 = 召唤雇佣兵,提供额外伤害和承受伤害,雇佣兵会自发攻击随机敌人或者具有仇恨的敌人 + * 能量复苏 = 常态下回复百分比最大生命值,回复能量 + */ public enum PassiveID : long { META马 = 4001, @@ -301,6 +379,41 @@ namespace Oshima.FunGame.OshimaModules.Skills 累积之压 = 4010, 敏捷之刃 = 4011, 弱者猎手 = 4012, + 征服者 = 4013, + 致命节奏 = 4014, + 迅捷步法 = 4015, + 强攻 = 4016, + 电刑 = 4017, + 黑暗收割 = 4018, + 丛刃 = 4019, + 贪欲猎手 = 4020, + 召唤艾黎 = 4021, + 相位猛冲 = 4022, + 奥术彗星 = 4023, + 风暴聚集 = 4024, + 不灭之握 = 4025, + 余震 = 4026, + 守护者 = 4027, + 骸骨镀层 = 4028, + 冰川增幅 = 4029, + 先攻 = 4030, + 饼干配送 = 4031, + 折射​ = 4032, + 恩赐解脱 = 4033, + 静电场 = 4034, + 竭心光环 = 4035, + 海妖外壳 = 4036, + 自然蔽护 = 4037, + 勇气之霎 = 4038, + 深海重击 = 4039, + 反击螺旋 = 4040, + 刀光谍影 = 4041, + 幽冥剧毒 = 4042, + 八卦阵 = 4043, + 开宫 = 4044, + 深海之戟 = 4045, + 雇佣兵团 = 4046, + 能量复苏 = 4047 } public enum ItemPassiveID : long