diff --git a/OshimaMaps/FastAutoMap.cs b/OshimaMaps/FastAutoMap.cs index bdf46b4..ee02000 100644 --- a/OshimaMaps/FastAutoMap.cs +++ b/OshimaMaps/FastAutoMap.cs @@ -35,10 +35,5 @@ namespace Oshima.FunGame.OshimaMaps return map; } - - protected override void AfterTimeElapsed(ref double timeToReduce) - { - - } } } diff --git a/OshimaModules/Effects/PassiveEffects/完全行动不能.cs b/OshimaModules/Effects/PassiveEffects/完全行动不能.cs index cc62f23..afb98ea 100644 --- a/OshimaModules/Effects/PassiveEffects/完全行动不能.cs +++ b/OshimaModules/Effects/PassiveEffects/完全行动不能.cs @@ -16,6 +16,7 @@ namespace Oshima.FunGame.OshimaModules.Effects.PassiveEffects public override bool Durative => _durative; public override double Duration => _duration; public override int DurationTurn => _durationTurn; + public override bool ExemptDuration => true; private readonly string _name; private readonly EffectType _type; diff --git a/OshimaModules/Effects/PassiveEffects/封技.cs b/OshimaModules/Effects/PassiveEffects/封技.cs index 85e38ff..64b53c3 100644 --- a/OshimaModules/Effects/PassiveEffects/封技.cs +++ b/OshimaModules/Effects/PassiveEffects/封技.cs @@ -16,6 +16,7 @@ namespace Oshima.FunGame.OshimaModules.Effects.PassiveEffects public override bool Durative => _durative; public override double Duration => _duration; public override int DurationTurn => _durationTurn; + public override bool ExemptDuration => true; private readonly Character _sourceCharacter; private readonly bool _durative; diff --git a/OshimaModules/Effects/PassiveEffects/愤怒.cs b/OshimaModules/Effects/PassiveEffects/愤怒.cs index 20462cf..5f73965 100644 --- a/OshimaModules/Effects/PassiveEffects/愤怒.cs +++ b/OshimaModules/Effects/PassiveEffects/愤怒.cs @@ -17,6 +17,7 @@ namespace Oshima.FunGame.OshimaModules.Effects.PassiveEffects public override bool Durative => _durative; public override double Duration => _duration; public override int DurationTurn => _durationTurn; + public override bool ExemptDuration => true; private readonly Character _sourceCharacter; private readonly Character _targetCharacter; diff --git a/OshimaModules/Effects/PassiveEffects/战斗不能.cs b/OshimaModules/Effects/PassiveEffects/战斗不能.cs index ec88af5..91b0187 100644 --- a/OshimaModules/Effects/PassiveEffects/战斗不能.cs +++ b/OshimaModules/Effects/PassiveEffects/战斗不能.cs @@ -16,6 +16,7 @@ namespace Oshima.FunGame.OshimaModules.Effects.PassiveEffects public override bool Durative => _durative; public override double Duration => _duration; public override int DurationTurn => _durationTurn; + public override bool ExemptDuration => true; private readonly Character _sourceCharacter; private readonly bool _durative; diff --git a/OshimaModules/Effects/PassiveEffects/持续性弱驱散.cs b/OshimaModules/Effects/PassiveEffects/持续性弱驱散.cs index d254da2..2b3a468 100644 --- a/OshimaModules/Effects/PassiveEffects/持续性弱驱散.cs +++ b/OshimaModules/Effects/PassiveEffects/持续性弱驱散.cs @@ -8,7 +8,7 @@ namespace Oshima.FunGame.OshimaModules.Effects.PassiveEffects { public override long Id => (long)PassiveEffectID.持续性弱驱散; public override string Name => "持续性弱驱散"; - public override string Description => $"此角色正在被持续性弱驱散。无法保护吟唱动作。来自:[ {Source} ] 的 [ {Skill.Name} ]"; + public override string Description => $"此角色正在被持续性弱驱散。来自:[ {Source} ] 的 [ {Skill.Name} ]"; public override EffectType EffectType => EffectType.WeakDispelling; public override DispelType DispelType => DispelType.DurativeWeak; public override Character Source => _sourceCharacter; @@ -37,6 +37,11 @@ namespace Oshima.FunGame.OshimaModules.Effects.PassiveEffects } } + public override bool BeforeSkillCastWillBeInterrupted(Character caster, Skill skill, Character interrupter) + { + return false; + } + public override void OnEffectGained(Character character) { if (_durative && RemainDuration == 0) diff --git a/OshimaModules/Effects/PassiveEffects/持续性强驱散.cs b/OshimaModules/Effects/PassiveEffects/持续性强驱散.cs index 7300671..0a5d747 100644 --- a/OshimaModules/Effects/PassiveEffects/持续性强驱散.cs +++ b/OshimaModules/Effects/PassiveEffects/持续性强驱散.cs @@ -8,7 +8,7 @@ namespace Oshima.FunGame.OshimaModules.Effects.PassiveEffects { public override long Id => (long)PassiveEffectID.持续性强驱散; public override string Name => "持续性强驱散"; - public override string Description => $"此角色正在被持续性强驱散。无法保护吟唱动作。来自:[ {Source} ] 的 [ {Skill.Name} ]"; + public override string Description => $"此角色正在被持续性强驱散。来自:[ {Source} ] 的 [ {Skill.Name} ]"; public override EffectType EffectType => EffectType.StrongDispelling; public override DispelType DispelType => DispelType.DurativeStrong; public override Character Source => _sourceCharacter; @@ -37,6 +37,11 @@ namespace Oshima.FunGame.OshimaModules.Effects.PassiveEffects } } + public override bool BeforeSkillCastWillBeInterrupted(Character caster, Skill skill, Character interrupter) + { + return false; + } + public override void OnEffectGained(Character character) { if (_durative && RemainDuration == 0) diff --git a/OshimaModules/Effects/PassiveEffects/易伤.cs b/OshimaModules/Effects/PassiveEffects/易伤.cs index 0f5d365..d9ee491 100644 --- a/OshimaModules/Effects/PassiveEffects/易伤.cs +++ b/OshimaModules/Effects/PassiveEffects/易伤.cs @@ -15,6 +15,7 @@ namespace Oshima.FunGame.OshimaModules.Effects.PassiveEffects public override bool Durative => _durative; public override double Duration => _duration; public override int DurationTurn => _durationTurn; + public override bool ExemptDuration => true; private readonly DamageType _damageType; private readonly Character _targetCharacter; diff --git a/OshimaModules/Effects/PassiveEffects/易损.cs b/OshimaModules/Effects/PassiveEffects/易损.cs index 5193ba5..679634e 100644 --- a/OshimaModules/Effects/PassiveEffects/易损.cs +++ b/OshimaModules/Effects/PassiveEffects/易损.cs @@ -15,6 +15,7 @@ namespace Oshima.FunGame.OshimaModules.Effects.PassiveEffects public override bool Durative => _durative; public override double Duration => _duration; public override int DurationTurn => _durationTurn; + public override bool ExemptDuration => true; private readonly Character _targetCharacter; private readonly Character _sourceCharacter; diff --git a/OshimaModules/Effects/PassiveEffects/气绝.cs b/OshimaModules/Effects/PassiveEffects/气绝.cs index fc703d2..c0aa471 100644 --- a/OshimaModules/Effects/PassiveEffects/气绝.cs +++ b/OshimaModules/Effects/PassiveEffects/气绝.cs @@ -16,6 +16,7 @@ namespace Oshima.FunGame.OshimaModules.Effects.PassiveEffects public override bool Durative => _durative; public override double Duration => _duration; public override int DurationTurn => _durationTurn; + public override bool ExemptDuration => true; private readonly Character _targetCharacter; private readonly Character _sourceCharacter; diff --git a/OshimaModules/Effects/PassiveEffects/混乱.cs b/OshimaModules/Effects/PassiveEffects/混乱.cs index ca90ed0..550c0e2 100644 --- a/OshimaModules/Effects/PassiveEffects/混乱.cs +++ b/OshimaModules/Effects/PassiveEffects/混乱.cs @@ -17,6 +17,7 @@ namespace Oshima.FunGame.OshimaModules.Effects.PassiveEffects public override bool Durative => _durative; public override double Duration => _duration; public override int DurationTurn => _durationTurn; + public override bool ExemptDuration => true; private readonly Character _sourceCharacter; private readonly bool _durative; diff --git a/OshimaModules/Effects/PassiveEffects/虚弱.cs b/OshimaModules/Effects/PassiveEffects/虚弱.cs index 5caea4b..76d23d3 100644 --- a/OshimaModules/Effects/PassiveEffects/虚弱.cs +++ b/OshimaModules/Effects/PassiveEffects/虚弱.cs @@ -17,6 +17,7 @@ namespace Oshima.FunGame.OshimaModules.Effects.PassiveEffects public override bool Durative => _durative; public override double Duration => _duration; public override int DurationTurn => _durationTurn; + public override bool ExemptDuration => true; private readonly Character _targetCharacter; private readonly Character _sourceCharacter; diff --git a/OshimaModules/Effects/PassiveEffects/迟滞.cs b/OshimaModules/Effects/PassiveEffects/迟滞.cs index 35bf26d..b4b50ad 100644 --- a/OshimaModules/Effects/PassiveEffects/迟滞.cs +++ b/OshimaModules/Effects/PassiveEffects/迟滞.cs @@ -16,6 +16,7 @@ namespace Oshima.FunGame.OshimaModules.Effects.PassiveEffects public override bool Durative => _durative; public override double Duration => _duration; public override int DurationTurn => _durationTurn; + public override bool ExemptDuration => true; private readonly Character _sourceCharacter; private readonly bool _durative; diff --git a/OshimaModules/Effects/SkillEffects/施加持续性弱驱散.cs b/OshimaModules/Effects/SkillEffects/施加持续性弱驱散.cs index 5521740..966402f 100644 --- a/OshimaModules/Effects/SkillEffects/施加持续性弱驱散.cs +++ b/OshimaModules/Effects/SkillEffects/施加持续性弱驱散.cs @@ -10,7 +10,7 @@ namespace Oshima.FunGame.OshimaModules.Effects.SkillEffects { public override long Id => Skill.Id; public override string Name => Skill.Name; - public override string Description => $"持续弱驱散{Skill.TargetDescription()}{(_durativeWithoutDuration ? _durationString : $",持续 {持续时间}")}。\r\n持续性驱散是持续性临时驱散,它会在持续时间结束之后恢复目标尚未结束的特效。无法保护吟唱动作。"; + public override string Description => $"持续弱驱散{Skill.TargetDescription()}{(_durativeWithoutDuration ? _durationString : $",持续 {持续时间}")}。\r\n持续性驱散是持续性临时驱散,它会在持续时间结束之后恢复目标尚未结束的特效。"; public override DispelType DispelType => DispelType.DurativeWeak; private string 持续时间 => _durative && _duration > 0 ? 实际持续时间 + $" {GameplayEquilibriumConstant.InGameTime}" : (!_durative && _durationTurn > 0 ? 实际持续时间 + " 回合" : $"0 {GameplayEquilibriumConstant.InGameTime}"); diff --git a/OshimaModules/Effects/SkillEffects/施加持续性强驱散.cs b/OshimaModules/Effects/SkillEffects/施加持续性强驱散.cs index f203630..124a948 100644 --- a/OshimaModules/Effects/SkillEffects/施加持续性强驱散.cs +++ b/OshimaModules/Effects/SkillEffects/施加持续性强驱散.cs @@ -10,7 +10,7 @@ namespace Oshima.FunGame.OshimaModules.Effects.SkillEffects { public override long Id => Skill.Id; public override string Name => Skill.Name; - public override string Description => $"持续强驱散{Skill.TargetDescription()}{(_durativeWithoutDuration ? _durationString : $",持续 {持续时间}")}。\r\n持续性驱散是持续性临时驱散,它会在持续时间结束之后恢复目标尚未结束的特效。无法保护吟唱动作。"; + public override string Description => $"持续强驱散{Skill.TargetDescription()}{(_durativeWithoutDuration ? _durationString : $",持续 {持续时间}")}。\r\n持续性驱散是持续性临时驱散,它会在持续时间结束之后恢复目标尚未结束的特效。"; public override DispelType DispelType => DispelType.DurativeStrong; private string 持续时间 => _durative && _duration > 0 ? 实际持续时间 + $" {GameplayEquilibriumConstant.InGameTime}" : (!_durative && _durationTurn > 0 ? 实际持续时间 + " 回合" : $"0 {GameplayEquilibriumConstant.InGameTime}"); diff --git a/OshimaModules/Effects/SkillEffects/施加概率负面.cs b/OshimaModules/Effects/SkillEffects/施加概率负面.cs index d7bc368..7e531a0 100644 --- a/OshimaModules/Effects/SkillEffects/施加概率负面.cs +++ b/OshimaModules/Effects/SkillEffects/施加概率负面.cs @@ -20,6 +20,7 @@ namespace Oshima.FunGame.OshimaModules.Effects.SkillEffects } public override EffectType EffectType => _effectType; public override DispelledType DispelledType => _dispelledType; + public override bool ExemptDuration => true; private double ActualProbability => Level > 0 ? _probability + _probabilityLevelGrowth * (Level - 1) : _probability; private string 持续时间 => _durative && _duration > 0 ? $"{实际持续时间:0.##}" + $" {GameplayEquilibriumConstant.InGameTime}" : (!_durative && _durationTurn > 0 ? 实际持续时间 + " 回合" : $"0 {GameplayEquilibriumConstant.InGameTime}"); diff --git a/OshimaModules/Effects/SkillEffects/造成封技.cs b/OshimaModules/Effects/SkillEffects/造成封技.cs index d3022f4..81a9b98 100644 --- a/OshimaModules/Effects/SkillEffects/造成封技.cs +++ b/OshimaModules/Effects/SkillEffects/造成封技.cs @@ -1,5 +1,6 @@ using Milimoe.FunGame.Core.Entity; using Milimoe.FunGame.Core.Library.Common.Addon; +using Milimoe.FunGame.Core.Library.Constant; using Oshima.FunGame.OshimaModules.Effects.PassiveEffects; using Oshima.FunGame.OshimaModules.Skills; @@ -10,6 +11,8 @@ namespace Oshima.FunGame.OshimaModules.Effects.SkillEffects public override long Id => Skill.Id; public override string Name => Skill.Name; public override string Description => $"对{Skill.TargetDescription()}造成封技 {封技时间},无法使用技能(魔法、战技和爆发技),并打断当前施法。"; + public override EffectType EffectType => EffectType.Silence; + public override bool ExemptDuration => true; private string 封技时间 => _durative && _duration > 0 ? 实际封技时间 + $" {GameplayEquilibriumConstant.InGameTime}" : (!_durative && _durationTurn > 0 ? 实际封技时间 + " 回合" : $"0 {GameplayEquilibriumConstant.InGameTime}"); private double 实际封技时间 => _durative && _duration > 0 ? _duration + _levelGrowth * (Level - 1) : (!_durative && _durationTurn > 0 ? _durationTurn + _levelGrowth * (Level - 1) : 0); diff --git a/OshimaModules/Effects/SkillEffects/造成气绝.cs b/OshimaModules/Effects/SkillEffects/造成气绝.cs index 2b441f0..e0cce62 100644 --- a/OshimaModules/Effects/SkillEffects/造成气绝.cs +++ b/OshimaModules/Effects/SkillEffects/造成气绝.cs @@ -11,6 +11,8 @@ namespace Oshima.FunGame.OshimaModules.Effects.SkillEffects public override string Name => Skill.Name; public override string Description => $"对目标{(Skill.CanSelectTargetCount > 1 ? $"至多 {Skill.CanSelectTargetCount} 个" : "")}敌人造成气绝 {气绝时间}。气绝期间,目标行动受限且每{GameplayEquilibriumConstant.InGameTime}{DamageString},此生命流失效果不会导致角色死亡。"; public override DispelledType DispelledType => DispelledType.Strong; + public override EffectType EffectType => EffectType.Bleed; + public override bool ExemptDuration => true; private string 气绝时间 => _durative && _duration > 0 ? 实际气绝时间 + $" {GameplayEquilibriumConstant.InGameTime}" : (!_durative && _durationTurn > 0 ? 实际气绝时间 + " 回合" : $"0 {GameplayEquilibriumConstant.InGameTime}"); private double 实际气绝时间 => _durative && _duration > 0 ? _duration + _levelGrowth * (Level - 1) : (!_durative && _durationTurn > 0 ? _durationTurn + _levelGrowth * (Level - 1) : 0); diff --git a/OshimaModules/Effects/SkillEffects/造成眩晕.cs b/OshimaModules/Effects/SkillEffects/造成眩晕.cs index c1ae944..1e61095 100644 --- a/OshimaModules/Effects/SkillEffects/造成眩晕.cs +++ b/OshimaModules/Effects/SkillEffects/造成眩晕.cs @@ -12,6 +12,8 @@ namespace Oshima.FunGame.OshimaModules.Effects.SkillEffects public override string Name => Skill.Name; public override string Description => $"对{Skill.TargetDescription()}造成眩晕 {眩晕时间}。"; public override DispelledType DispelledType => DispelledType.Strong; + public override EffectType EffectType => EffectType.Stun; + public override bool ExemptDuration => true; private string 眩晕时间 => _durative && _duration > 0 ? 实际眩晕时间 + $" {GameplayEquilibriumConstant.InGameTime}" : (!_durative && _durationTurn > 0 ? 实际眩晕时间 + " 回合" : $"0 {GameplayEquilibriumConstant.InGameTime}"); private double 实际眩晕时间 => _durative && _duration > 0 ? _duration + _levelGrowth * (Level - 1) : (!_durative && _durationTurn > 0 ? _durationTurn + _levelGrowth * (Level - 1) : 0); diff --git a/OshimaModules/Effects/SkillEffects/造成虚弱.cs b/OshimaModules/Effects/SkillEffects/造成虚弱.cs index 9a45cd2..553bae1 100644 --- a/OshimaModules/Effects/SkillEffects/造成虚弱.cs +++ b/OshimaModules/Effects/SkillEffects/造成虚弱.cs @@ -13,6 +13,8 @@ namespace Oshima.FunGame.OshimaModules.Effects.SkillEffects public override string Description => $"对{Skill.TargetDescription()}造成虚弱 {虚弱时间},伤害降低 {ActualDamageReductionPercent * 100:0.##}%," + $"物理护甲降低 {ActualDEFReductionPercent * 100:0.##}%,魔法抗性降低 {ActualMDFReductionPercent * 100:0.##}%,治疗效果降低 {ActualHealingReductionPercent * 100:0.##}%。"; public override DispelledType DispelledType => DispelledType.Weak; + public override EffectType EffectType => EffectType.Weaken; + public override bool ExemptDuration => true; private string 虚弱时间 => _durative && _duration > 0 ? 实际虚弱时间 + $" {GameplayEquilibriumConstant.InGameTime}" : (!_durative && _durationTurn > 0 ? 实际虚弱时间 + " 回合" : $"0 {GameplayEquilibriumConstant.InGameTime}"); private double 实际虚弱时间 => _durative && _duration > 0 ? _duration + _levelGrowth * (Level - 1) : (!_durative && _durationTurn > 0 ? _durationTurn + _levelGrowth * (Level - 1) : 0); diff --git a/OshimaModules/Effects/SkillEffects/降低敌方行动速度.cs b/OshimaModules/Effects/SkillEffects/降低敌方行动速度.cs index 72ba428..0759548 100644 --- a/OshimaModules/Effects/SkillEffects/降低敌方行动速度.cs +++ b/OshimaModules/Effects/SkillEffects/降低敌方行动速度.cs @@ -11,6 +11,8 @@ namespace Oshima.FunGame.OshimaModules.Effects.SkillEffects public override long Id => Skill.Id; public override string Name => Skill.Name; public override string Description => $"降低{Skill.TargetDescription()} {Math.Abs(SPD):0.##} 点行动速度 {持续时间}。并延长目标 30% 的行动等待时间(当前硬直时间)。"; + public override EffectType EffectType => EffectType.Slow; + public override bool ExemptDuration => true; private double SPD => Level > 0 ? -Math.Abs(基础数值速度 + 基础速度等级成长 * (Level - 1)) : -Math.Abs(基础数值速度); private double 基础数值速度 { get; set; } = 30; diff --git a/OshimaModules/Skills/ColdBlue/累积之压.cs b/OshimaModules/Skills/ColdBlue/累积之压.cs index 28c119d..2bbf805 100644 --- a/OshimaModules/Skills/ColdBlue/累积之压.cs +++ b/OshimaModules/Skills/ColdBlue/累积之压.cs @@ -14,6 +14,7 @@ namespace Oshima.FunGame.OshimaModules.Skills public 累积之压(Character? character = null) : base(SkillType.Passive, character) { Effects.Add(new 累积之压特效(this)); + ExemptionDescription = SkillSet.GetExemptionDescription(EffectType.Cripple); } public override IEnumerable AddPassiveEffectToCharacter() diff --git a/OshimaModules/Skills/SkillExtension.cs b/OshimaModules/Skills/SkillExtension.cs index 626163e..5af4ca5 100644 --- a/OshimaModules/Skills/SkillExtension.cs +++ b/OshimaModules/Skills/SkillExtension.cs @@ -1,4 +1,5 @@ -using Milimoe.FunGame.Core.Entity; +using System.Text; +using Milimoe.FunGame.Core.Entity; using Milimoe.FunGame.Core.Library.Constant; namespace Oshima.FunGame.OshimaModules.Skills @@ -22,9 +23,9 @@ namespace Oshima.FunGame.OshimaModules.Skills { str = "敌方全体角色"; } - if (skill.CanSelectTeammate && !skill.CanSelectEnemy) + else if (skill.CanSelectTeammate && !skill.CanSelectEnemy) { - str = $"目标{(skill.CanSelectTargetCount > 1 ? $"至多 {skill.CanSelectTargetCount} 个" : "")}友方角色{(!skill.CanSelectSelf ? "(不可选择自己)" : "")}"; + str = $"目标{(skill.CanSelectTargetCount > 1 ? $"至多 {skill.CanSelectTargetCount} 个" : "")}友方角色{(!skill.CanSelectSelf ? "(不可选择自身)" : "")}"; } else if (!skill.CanSelectTeammate && skill.CanSelectEnemy) { @@ -70,10 +71,10 @@ namespace Oshima.FunGame.OshimaModules.Skills str = "目标正方形区域"; break; case SkillRangeType.Line: - str = "与目标地点之间的直线区域"; + str = "自身与目标地点之间的直线区域"; break; case SkillRangeType.LinePass: - str = "贯穿目标地点直至地图边缘的直线区域"; + str = "自身与目标地点之间的直线区域以及贯穿该目标地点直至地图边缘的直线区域"; break; case SkillRangeType.Sector: str = "目标扇形区域"; @@ -85,11 +86,22 @@ namespace Oshima.FunGame.OshimaModules.Skills if (skill.SelectIncludeCharacterGrid) { - str = "可包含被角色占据的" + str; + if (skill.CanSelectTeammate && !skill.CanSelectEnemy) + { + str = $"{str}中的所有友方角色{(!skill.CanSelectSelf ? "(包括自身)" : "")}"; + } + else if (!skill.CanSelectTeammate && skill.CanSelectEnemy) + { + str = $"{str}中的所有敌方角色"; + } + else + { + str = $"{str}中的所有角色"; + } } else { - str = "不被角色占据的"; + str = "一个不包含被角色占据的"; } return str; diff --git a/OshimaModules/Skills/XinYin/心灵之火.cs b/OshimaModules/Skills/XinYin/心灵之火.cs index b43c123..524365b 100644 --- a/OshimaModules/Skills/XinYin/心灵之火.cs +++ b/OshimaModules/Skills/XinYin/心灵之火.cs @@ -47,7 +47,7 @@ namespace Oshima.FunGame.OshimaModules.Skills WriteLine($"[ {character} ] 发动了心灵之火!额外进行一次普通攻击!"); 冷却时间 = 基础冷却时间; 是否是嵌套普通攻击 = true; - character.NormalAttack.Attack(GamingQueue, character, enemy); + character.NormalAttack.Attack(GamingQueue, character, true, enemy); } if (character == Skill.Character && 是否是嵌套普通攻击) diff --git a/OshimaModules/Skills/Yang/魔法震荡.cs b/OshimaModules/Skills/Yang/魔法震荡.cs index 495ea8a..222ee31 100644 --- a/OshimaModules/Skills/Yang/魔法震荡.cs +++ b/OshimaModules/Skills/Yang/魔法震荡.cs @@ -13,6 +13,7 @@ namespace Oshima.FunGame.OshimaModules.Skills public 魔法震荡(Character? character = null) : base(SkillType.Passive, character) { + ExemptionDescription = SkillSet.GetExemptionDescription(EffectType.Stun); Effects.Add(new 魔法震荡特效(this)); } diff --git a/OshimaModules/Skills/战技/双连击.cs b/OshimaModules/Skills/战技/双连击.cs index 47c6951..7794bf7 100644 --- a/OshimaModules/Skills/战技/双连击.cs +++ b/OshimaModules/Skills/战技/双连击.cs @@ -46,10 +46,10 @@ namespace Oshima.FunGame.OshimaModules.Skills checkQuota = dp.CheckActionTypeQuota(CharacterActionType.NormalAttack); dp.AddActionType(CharacterActionType.NormalAttack, false); } - caster.NormalAttack.Attack(GamingQueue, caster, targets); + caster.NormalAttack.Attack(GamingQueue, caster, true, targets); if (checkQuota) { - caster.NormalAttack.Attack(GamingQueue, caster, targets); + caster.NormalAttack.Attack(GamingQueue, caster, true, targets); } } } diff --git a/OshimaModules/Skills/战技/挑拨.cs b/OshimaModules/Skills/战技/挑拨.cs index 0276f96..933366c 100644 --- a/OshimaModules/Skills/战技/挑拨.cs +++ b/OshimaModules/Skills/战技/挑拨.cs @@ -33,6 +33,7 @@ namespace Oshima.FunGame.OshimaModules.Skills public override string Description => $"对目标{(Skill.CanSelectTargetCount > 1 ? $"至多 {Skill.CanSelectTargetCount} 个" : "")}敌方角色施加愤怒状态。愤怒:行动受限且失控,行动回合中无法自主行动,仅能对施法者发起普通攻击。持续 {持续时间}。"; public override EffectType EffectType => EffectType.Taunt; public override DispelledType DispelledType => DispelledType.Strong; + public override bool ExemptDuration => true; private string 持续时间 => _durative && _duration > 0 ? 实际持续时间 + $" {GameplayEquilibriumConstant.InGameTime}" : (!_durative && _durationTurn > 0 ? 实际持续时间 + " 回合" : $"0 {GameplayEquilibriumConstant.InGameTime}"); private double 实际持续时间 => _durative && _duration > 0 ? _duration + _levelGrowth * (Level - 1) : (!_durative && _durationTurn > 0 ? _durationTurn + _levelGrowth * (Level - 1) : 0); diff --git a/OshimaModules/Skills/战技/绝影.cs b/OshimaModules/Skills/战技/绝影.cs index 20b068e..25b85a0 100644 --- a/OshimaModules/Skills/战技/绝影.cs +++ b/OshimaModules/Skills/战技/绝影.cs @@ -10,9 +10,13 @@ namespace Oshima.FunGame.OshimaModules.Skills public override string Name => "绝影"; public override string Description => string.Join("", Effects.Select(e => e.Description)); public override string DispelDescription => Effects.Count > 0 ? Effects.First(e => e is 施加概率负面).DispelDescription : ""; + public override string ExemptionDescription => Effects.Count > 0 ? Effects.First(e => e is 施加概率负面).ExemptionDescription : ""; public override double EPCost => 60; public override double CD => 18; public override double HardnessTime { get; set; } = 7; + public override int CanSelectTargetRange => 4; + public override bool IsNonDirectional => true; + public override SkillRangeType SkillRangeType => SkillRangeType.LinePass; public 绝影(Character? character = null) : base(SkillType.Skill, character) { diff --git a/OshimaModules/Skills/战技/胧.cs b/OshimaModules/Skills/战技/胧.cs index 7de4d7d..d4559a3 100644 --- a/OshimaModules/Skills/战技/胧.cs +++ b/OshimaModules/Skills/战技/胧.cs @@ -10,6 +10,7 @@ namespace Oshima.FunGame.OshimaModules.Skills public override string Name => "胧"; public override string Description => string.Join("", Effects.Select(e => e.Description)); public override string DispelDescription => Effects.Count > 0 ? Effects.First(e => e is 施加概率负面).DispelDescription : ""; + public override string ExemptionDescription => Effects.Count > 0 ? Effects.First(e => e is 施加概率负面).ExemptionDescription : ""; public override double EPCost => 60; public override double CD => 20; public override double HardnessTime { get; set; } = 9; diff --git a/OshimaModules/Skills/战技/魔眼.cs b/OshimaModules/Skills/战技/魔眼.cs index 563bf62..92e71ec 100644 --- a/OshimaModules/Skills/战技/魔眼.cs +++ b/OshimaModules/Skills/战技/魔眼.cs @@ -16,6 +16,7 @@ namespace Oshima.FunGame.OshimaModules.Skills public 魔眼(Character? character = null) : base(SkillType.Skill, character) { + ExemptionDescription = $"迟滞{SkillSet.GetExemptionDescription(EffectType.Delay)}\r\n混乱{SkillSet.GetExemptionDescription(EffectType.Confusion)}"; CastRange = 2; Effects.Add(new 施加概率负面(this, EffectType.Delay, false, 0, 3, 0, 1, 0, 0.5)); Effects.Add(new 施加概率负面(this, EffectType.Confusion, false, 0, 2, 0, 0.45, 0.05)); diff --git a/OshimaModules/Skills/魔法/冰狱冥嚎.cs b/OshimaModules/Skills/魔法/冰狱冥嚎.cs index 7413690..82d352a 100644 --- a/OshimaModules/Skills/魔法/冰狱冥嚎.cs +++ b/OshimaModules/Skills/魔法/冰狱冥嚎.cs @@ -10,7 +10,7 @@ namespace Oshima.FunGame.OshimaModules.Skills public override string Name => "冰狱冥嚎"; public override string Description => Effects.Count > 0 ? Effects.First().Description : ""; public override double MPCost => Level > 0 ? 55 + (55 * (Level - 1)) : 55; - public override double CD => 35; + public override double CD => 32; public override double CastTime => 10; public override double HardnessTime { get; set; } = 5; public override int CanSelectTargetCount => 3; diff --git a/OshimaModules/Skills/魔法/凝胶稠絮.cs b/OshimaModules/Skills/魔法/凝胶稠絮.cs index 3c17fff..33c5fe6 100644 --- a/OshimaModules/Skills/魔法/凝胶稠絮.cs +++ b/OshimaModules/Skills/魔法/凝胶稠絮.cs @@ -10,8 +10,9 @@ namespace Oshima.FunGame.OshimaModules.Skills public override string Name => "凝胶稠絮"; public override string Description => Effects.Count > 0 ? string.Join("\r\n", Effects.Select(e => e.Description)) : ""; public override string DispelDescription => Effects.Count > 0 ? Effects.First(e => e is 造成虚弱).DispelDescription : ""; + public override string ExemptionDescription => Effects.Count > 0 ? Effects.First(e => e is 造成虚弱).ExemptionDescription : ""; public override double MPCost => Level > 0 ? 75 + (75 * (Level - 1)) : 75; - public override double CD => Level > 0 ? 75 - (1.5 * (Level - 1)) : 75; + public override double CD => Level > 0 ? 30 - (1.5 * (Level - 1)) : 30; public override double CastTime => 11; public override double HardnessTime { get; set; } = 4; public override int CanSelectTargetCount => 1; diff --git a/OshimaModules/Skills/魔法/反魔法领域.cs b/OshimaModules/Skills/魔法/反魔法领域.cs index c2a4af1..8a7fa06 100644 --- a/OshimaModules/Skills/魔法/反魔法领域.cs +++ b/OshimaModules/Skills/魔法/反魔法领域.cs @@ -10,6 +10,7 @@ namespace Oshima.FunGame.OshimaModules.Skills public override string Name => "反魔法领域"; public override string Description => Effects.Count > 0 ? string.Join("\r\n", Effects.Select(e => e.Description)) : ""; public override string DispelDescription => Effects.Count > 0 ? Effects.First().DispelDescription : ""; + public override string ExemptionDescription => Effects.Count > 0 ? Effects.First().ExemptionDescription : ""; public override double MPCost { get @@ -26,7 +27,7 @@ namespace Oshima.FunGame.OshimaModules.Skills }; } } - public override double CD => Level > 0 ? 90 - (2 * (Level - 1)) : 75; + public override double CD => Level > 0 ? 55 - (2 * (Level - 1)) : 55; public override double CastTime => Level > 0 ? 5 + (0.5 * (Level - 1)) : 5; public override double HardnessTime { get; set; } = 5; public override int CanSelectTargetCount diff --git a/OshimaModules/Skills/魔法/回复术.cs b/OshimaModules/Skills/魔法/回复术.cs index ba3ad42..b61a0b5 100644 --- a/OshimaModules/Skills/魔法/回复术.cs +++ b/OshimaModules/Skills/魔法/回复术.cs @@ -10,7 +10,7 @@ namespace Oshima.FunGame.OshimaModules.Skills public override string Name => "回复术"; public override string Description => Effects.Count > 0 ? Effects.First().Description : ""; public override double MPCost => Level > 0 ? 75 + (75 * (Level - 1)) : 75; - public override double CD => 60; + public override double CD => 28; public override double CastTime => 3; public override double HardnessTime { get; set; } = 5; public override bool CanSelectSelf => true; diff --git a/OshimaModules/Skills/魔法/回复术复.cs b/OshimaModules/Skills/魔法/回复术复.cs index 663a6db..d11bd89 100644 --- a/OshimaModules/Skills/魔法/回复术复.cs +++ b/OshimaModules/Skills/魔法/回复术复.cs @@ -10,7 +10,7 @@ namespace Oshima.FunGame.OshimaModules.Skills public override string Name => "回复术·复"; public override string Description => Effects.Count > 0 ? Effects.First().Description : ""; public override double MPCost => Level > 0 ? 95 + (105 * (Level - 1)) : 95; - public override double CD => 100; + public override double CD => 34; public override double CastTime => 6; public override double HardnessTime { get; set; } = 7; public override bool CanSelectSelf => true; diff --git a/OshimaModules/Skills/魔法/回复术改.cs b/OshimaModules/Skills/魔法/回复术改.cs index cd0f337..f51f65f 100644 --- a/OshimaModules/Skills/魔法/回复术改.cs +++ b/OshimaModules/Skills/魔法/回复术改.cs @@ -10,7 +10,7 @@ namespace Oshima.FunGame.OshimaModules.Skills public override string Name => "回复术·改"; public override string Description => Effects.Count > 0 ? Effects.First().Description : ""; public override double MPCost => Level > 0 ? 80 + (80 * (Level - 1)) : 80; - public override double CD => 80; + public override double CD => 40; public override double CastTime => 3; public override double HardnessTime { get; set; } = 7; public override bool CanSelectSelf => true; diff --git a/OshimaModules/Skills/魔法/圣灵术.cs b/OshimaModules/Skills/魔法/圣灵术.cs index 672a57e..c713ede 100644 --- a/OshimaModules/Skills/魔法/圣灵术.cs +++ b/OshimaModules/Skills/魔法/圣灵术.cs @@ -11,7 +11,7 @@ namespace Oshima.FunGame.OshimaModules.Skills public override string Description => string.Join("", Effects.Select(e => e.Description)); public override string DispelDescription => Effects.FirstOrDefault(e => e is 弱驱散特效)?.DispelDescription ?? ""; public override double MPCost => Level > 0 ? 110 + (95 * (Level - 1)) : 110; - public override double CD => Level > 0 ? 110 - (2 * (Level - 1)) : 110; + public override double CD => Level > 0 ? 65 - (2 * (Level - 1)) : 65; public override double CastTime => 5; public override double HardnessTime { get; set; } = 7; public override bool CanSelectSelf => true; diff --git a/OshimaModules/Skills/魔法/地狱之门.cs b/OshimaModules/Skills/魔法/地狱之门.cs index 08159fe..e5b1b57 100644 --- a/OshimaModules/Skills/魔法/地狱之门.cs +++ b/OshimaModules/Skills/魔法/地狱之门.cs @@ -10,8 +10,9 @@ namespace Oshima.FunGame.OshimaModules.Skills public override string Name => "地狱之门"; public override string Description => string.Join("", Effects.Select(e => e.Description)); public override string DispelDescription => Effects.Count > 0 ? Effects.First(e => e is 施加概率负面).DispelDescription : ""; + public override string ExemptionDescription => Effects.Count > 0 ? Effects.First(e => e is 施加概率负面).ExemptionDescription : ""; public override double MPCost => Level > 0 ? 75 + (60 * (Level - 1)) : 75; - public override double CD => Level > 0 ? 65 + (0.8 * (Level - 1)) : 65; + public override double CD => Level > 0 ? 30 + (0.8 * (Level - 1)) : 30; public override double CastTime => 3; public override double HardnessTime { get; set; } = 8; public override int CanSelectTargetCount diff --git a/OshimaModules/Skills/魔法/复苏术.cs b/OshimaModules/Skills/魔法/复苏术.cs index 5ecaa51..4b31350 100644 --- a/OshimaModules/Skills/魔法/复苏术.cs +++ b/OshimaModules/Skills/魔法/复苏术.cs @@ -11,7 +11,7 @@ namespace Oshima.FunGame.OshimaModules.Skills public override string Description => string.Join("", Effects.Select(e => e.Description)); public override string DispelDescription => Effects.FirstOrDefault(e => e is 弱驱散特效)?.DispelDescription ?? ""; public override double MPCost => Level > 0 ? 95 + (85 * (Level - 1)) : 95; - public override double CD => 85; + public override double CD => 48; public override double CastTime => 6; public override double HardnessTime { get; set; } = 8; public override bool CanSelectSelf => true; diff --git a/OshimaModules/Skills/魔法/大地之墙.cs b/OshimaModules/Skills/魔法/大地之墙.cs index 2ebdb17..483ea4e 100644 --- a/OshimaModules/Skills/魔法/大地之墙.cs +++ b/OshimaModules/Skills/魔法/大地之墙.cs @@ -28,7 +28,7 @@ namespace Oshima.FunGame.OshimaModules.Skills }; } } - public override double CD => Level > 0 ? 100 - (2 * (Level - 1)) : 100; + public override double CD => Level > 0 ? 48 - (2 * (Level - 1)) : 48; public override double CastTime { get diff --git a/OshimaModules/Skills/魔法/导力停止.cs b/OshimaModules/Skills/魔法/导力停止.cs index ed24665..5848ce0 100644 --- a/OshimaModules/Skills/魔法/导力停止.cs +++ b/OshimaModules/Skills/魔法/导力停止.cs @@ -10,8 +10,9 @@ namespace Oshima.FunGame.OshimaModules.Skills public override string Name => "导力停止"; public override string Description => string.Join("", Effects.Select(e => e.Description)); public override string DispelDescription => Effects.Count > 0 ? Effects.First(e => e is 施加概率负面).DispelDescription : ""; + public override string ExemptionDescription => Effects.Count > 0 ? Effects.First(e => e is 施加概率负面).ExemptionDescription : ""; public override double MPCost => Level > 0 ? 120 + (80 * (Level - 1)) : 120; - public override double CD => Level > 0 ? 100 - (1.5 * (Level - 1)) : 100; + public override double CD => Level > 0 ? 60 - (1.5 * (Level - 1)) : 60; public override double CastTime => Level > 0 ? 3 + (0.5 * (Level - 1)) : 3; public override double HardnessTime { get; set; } = 8; public override bool SelectAllEnemies => true; diff --git a/OshimaModules/Skills/魔法/强音之力.cs b/OshimaModules/Skills/魔法/强音之力.cs index 77a7e8d..80a684b 100644 --- a/OshimaModules/Skills/魔法/强音之力.cs +++ b/OshimaModules/Skills/魔法/强音之力.cs @@ -11,7 +11,7 @@ namespace Oshima.FunGame.OshimaModules.Skills public override string Name => "强音之力"; public override string Description => Effects.Count > 0 ? Effects.First().Description : ""; public override double MPCost => Level > 0 ? 65 + (70 * (Level - 1)) : 65; - public override double CD => Level > 0 ? 65 - (1 * (Level - 1)) : 65; + public override double CD => Level > 0 ? 40 - (1 * (Level - 1)) : 40; public override double CastTime => Level > 0 ? 6 + (0.5 * (Level - 1)) : 6; public override double HardnessTime { get; set; } = 3; public override bool CanSelectSelf => true; diff --git a/OshimaModules/Skills/魔法/强音之力复.cs b/OshimaModules/Skills/魔法/强音之力复.cs index d7485a1..b144921 100644 --- a/OshimaModules/Skills/魔法/强音之力复.cs +++ b/OshimaModules/Skills/魔法/强音之力复.cs @@ -11,7 +11,7 @@ namespace Oshima.FunGame.OshimaModules.Skills public override string Name => "强音之力·复"; public override string Description => Effects.Count > 0 ? Effects.First().Description : ""; public override double MPCost => Level > 0 ? 85 + (85 * (Level - 1)) : 85; - public override double CD => Level > 0 ? 65 - (0.5 * (Level - 1)) : 65; + public override double CD => Level > 0 ? 45 - (0.5 * (Level - 1)) : 45; public override double CastTime => Level > 0 ? 6 + (0.5 * (Level - 1)) : 6; public override double HardnessTime { get; set; } = 6; public override bool CanSelectSelf => true; diff --git a/OshimaModules/Skills/魔法/时间减速.cs b/OshimaModules/Skills/魔法/时间减速.cs index 8d0f3b7..508713d 100644 --- a/OshimaModules/Skills/魔法/时间减速.cs +++ b/OshimaModules/Skills/魔法/时间减速.cs @@ -9,8 +9,9 @@ namespace Oshima.FunGame.OshimaModules.Skills public override long Id => (long)MagicID.时间减速; public override string Name => "时间减速"; public override string Description => Effects.Count > 0 ? Effects.First().Description : ""; + public override string ExemptionDescription => Effects.Count > 0 ? Effects.First().ExemptionDescription : ""; public override double MPCost => Level > 0 ? 65 + (75 * (Level - 1)) : 65; - public override double CD => Level > 0 ? 60 - (1 * (Level - 1)) : 60; + public override double CD => Level > 0 ? 28 - (1 * (Level - 1)) : 28; public override double CastTime => Level > 0 ? 3 + (1.5 * (Level - 1)) : 3; public override double HardnessTime { get; set; } = 5; diff --git a/OshimaModules/Skills/魔法/时间减速复.cs b/OshimaModules/Skills/魔法/时间减速复.cs index 42acb37..0c86481 100644 --- a/OshimaModules/Skills/魔法/时间减速复.cs +++ b/OshimaModules/Skills/魔法/时间减速复.cs @@ -10,8 +10,9 @@ namespace Oshima.FunGame.OshimaModules.Skills public override long Id => (long)MagicID.时间减速复; public override string Name => "时间减速·复"; public override string Description => Effects.Count > 0 ? Effects.First().Description : ""; + public override string ExemptionDescription => Effects.Count > 0 ? Effects.First().ExemptionDescription : ""; public override double MPCost => Level > 0 ? 85 + (95 * (Level - 1)) : 85; - public override double CD => Level > 0 ? 80 - (1 * (Level - 1)) : 80; + public override double CD => Level > 0 ? 32 - (1 * (Level - 1)) : 32; public override double CastTime => Level > 0 ? 6 + (1.5 * (Level - 1)) : 6; public override double HardnessTime { get; set; } = 6; public override int CanSelectTargetCount @@ -45,6 +46,7 @@ namespace Oshima.FunGame.OshimaModules.Skills $"{(!IsDebuff ? "增加" : "减少")}{Skill.TargetDescription()} {Math.Abs(ExACC) * 100:0.##}% 加速系数。持续 {持续时间}。"; public override EffectType EffectType => EffectType.Slow; public override DispelledType DispelledType => DispelledType.Weak; + public override bool ExemptDuration => true; public override bool IsDebuff => true; private string 持续时间 => _durative && _duration > 0 ? 实际持续时间 + $" {GameplayEquilibriumConstant.InGameTime}" : (!_durative && _durationTurn > 0 ? 实际持续时间 + " 回合" : $"0 {GameplayEquilibriumConstant.InGameTime}"); diff --git a/OshimaModules/Skills/魔法/时间减速改.cs b/OshimaModules/Skills/魔法/时间减速改.cs index 182361d..791e0a5 100644 --- a/OshimaModules/Skills/魔法/时间减速改.cs +++ b/OshimaModules/Skills/魔法/时间减速改.cs @@ -10,8 +10,9 @@ namespace Oshima.FunGame.OshimaModules.Skills public override long Id => (long)MagicID.时间减速改; public override string Name => "时间减速·改"; public override string Description => Effects.Count > 0 ? Effects.First().Description : ""; + public override string ExemptionDescription => Effects.Count > 0 ? Effects.First().ExemptionDescription : ""; public override double MPCost => Level > 0 ? 75 + (85 * (Level - 1)) : 75; - public override double CD => Level > 0 ? 68 - (1 * (Level - 1)) : 60; + public override double CD => Level > 0 ? 38 - (1 * (Level - 1)) : 38; public override double CastTime => Level > 0 ? 7 + (1 * (Level - 1)) : 7; public override double HardnessTime { get; set; } = 4; @@ -29,6 +30,7 @@ namespace Oshima.FunGame.OshimaModules.Skills $"{(!IsDebuff ? "增加" : "减少")}{Skill.TargetDescription()} {Math.Abs(ExACC) * 100:0.##}% 加速系数。持续 {持续时间}。"; public override EffectType EffectType => EffectType.Slow; public override DispelledType DispelledType => DispelledType.Weak; + public override bool ExemptDuration => true; public override bool IsDebuff => true; private string 持续时间 => _durative && _duration > 0 ? 实际持续时间 + $" {GameplayEquilibriumConstant.InGameTime}" : (!_durative && _durationTurn > 0 ? 实际持续时间 + " 回合" : $"0 {GameplayEquilibriumConstant.InGameTime}"); diff --git a/OshimaModules/Skills/魔法/时间加速.cs b/OshimaModules/Skills/魔法/时间加速.cs index 466a4f2..55ed6d3 100644 --- a/OshimaModules/Skills/魔法/时间加速.cs +++ b/OshimaModules/Skills/魔法/时间加速.cs @@ -10,7 +10,7 @@ namespace Oshima.FunGame.OshimaModules.Skills public override string Name => "时间加速"; public override string Description => Effects.Count > 0 ? Effects.First().Description : ""; public override double MPCost => Level > 0 ? 70 + (80 * (Level - 1)) : 70; - public override double CD => Level > 0 ? 65 - (1 * (Level - 1)) : 65; + public override double CD => Level > 0 ? 25 - (1 * (Level - 1)) : 25; public override double CastTime => Level > 0 ? 2 + (1.5 * (Level - 1)) : 2; public override double HardnessTime { get; set; } = 4; public override bool CanSelectSelf => true; diff --git a/OshimaModules/Skills/魔法/时间加速复.cs b/OshimaModules/Skills/魔法/时间加速复.cs index 3cc1d71..649ec61 100644 --- a/OshimaModules/Skills/魔法/时间加速复.cs +++ b/OshimaModules/Skills/魔法/时间加速复.cs @@ -11,7 +11,7 @@ namespace Oshima.FunGame.OshimaModules.Skills public override string Name => "时间加速·复"; public override string Description => Effects.Count > 0 ? Effects.First().Description : ""; public override double MPCost => Level > 0 ? 90 + (95 * (Level - 1)) : 90; - public override double CD => Level > 0 ? 75 - (0.8 * (Level - 1)) : 75; + public override double CD => Level > 0 ? 55 - (0.8 * (Level - 1)) : 55; public override double CastTime => Level > 0 ? 6 + (1.5 * (Level - 1)) : 6; public override double HardnessTime { get; set; } = 7; public override bool CanSelectSelf => true; diff --git a/OshimaModules/Skills/魔法/时间加速改.cs b/OshimaModules/Skills/魔法/时间加速改.cs index 0084be1..0eb600e 100644 --- a/OshimaModules/Skills/魔法/时间加速改.cs +++ b/OshimaModules/Skills/魔法/时间加速改.cs @@ -11,7 +11,7 @@ namespace Oshima.FunGame.OshimaModules.Skills public override string Name => "时间加速·改"; public override string Description => Effects.Count > 0 ? Effects.First().Description : ""; public override double MPCost => Level > 0 ? 120 + (115 * (Level - 1)) : 120; - public override double CD => Level > 0 ? 65 - (0.5 * (Level - 1)) : 65; + public override double CD => Level > 0 ? 45 - (0.5 * (Level - 1)) : 45; public override double CastTime => 3; public override double HardnessTime { get; set; } = 9; public override bool CanSelectSelf => true; diff --git a/OshimaModules/Skills/魔法/暗物质.cs b/OshimaModules/Skills/魔法/暗物质.cs index 9d78a92..2998b2d 100644 --- a/OshimaModules/Skills/魔法/暗物质.cs +++ b/OshimaModules/Skills/魔法/暗物质.cs @@ -10,7 +10,7 @@ namespace Oshima.FunGame.OshimaModules.Skills public override string Name => "暗物质"; public override string Description => Effects.Count > 0 ? Effects.First().Description : ""; public override double MPCost => Level > 0 ? 70 + (80 * (Level - 1)) : 70; - public override double CD => 55; + public override double CD => 40; public override double CastTime => 10; public override double HardnessTime { get; set; } = 4; diff --git a/OshimaModules/Skills/魔法/根源屏障.cs b/OshimaModules/Skills/魔法/根源屏障.cs index e72eb37..318cbc0 100644 --- a/OshimaModules/Skills/魔法/根源屏障.cs +++ b/OshimaModules/Skills/魔法/根源屏障.cs @@ -12,7 +12,7 @@ namespace Oshima.FunGame.OshimaModules.Skills public override string Description => string.Join("", Effects.Select(e => e.Description)); public override string DispelDescription => "被驱散性:可弱驱散"; public override double MPCost => Level > 0 ? 200 + (75 * (Level - 1)) : 200; - public override double CD => Level > 0 ? 120 - (3 * (Level - 1)) : 120; + public override double CD => Level > 0 ? 50 - (3 * (Level - 1)) : 50; public override double CastTime => Level > 0 ? 12 - (0.5 * (Level - 1)) : 12; public override double HardnessTime { get; set; } = 8; public override bool CanSelectSelf => true; diff --git a/OshimaModules/Skills/魔法/次元上升.cs b/OshimaModules/Skills/魔法/次元上升.cs index 51534e6..b04bd93 100644 --- a/OshimaModules/Skills/魔法/次元上升.cs +++ b/OshimaModules/Skills/魔法/次元上升.cs @@ -10,8 +10,9 @@ namespace Oshima.FunGame.OshimaModules.Skills public override string Name => "次元上升"; public override string Description => Effects.Count > 0 ? string.Join("\r\n", Effects.Select(e => e.Description)) : ""; public override string DispelDescription => Effects.Count > 0 ? Effects.First(e => e is 造成眩晕).DispelDescription : ""; + public override string ExemptionDescription => Effects.Count > 0 ? Effects.First(e => e is 造成眩晕).ExemptionDescription : ""; public override double MPCost => Level > 0 ? 70 + (75 * (Level - 1)) : 70; - public override double CD => Level > 0 ? 100 - (1.5 * (Level - 1)) : 100; + public override double CD => Level > 0 ? 35 - (1.5 * (Level - 1)) : 35; public override double CastTime => 12; public override double HardnessTime { get; set; } = 5; diff --git a/OshimaModules/Skills/魔法/死亡咆哮.cs b/OshimaModules/Skills/魔法/死亡咆哮.cs index 7917da5..1ec6f44 100644 --- a/OshimaModules/Skills/魔法/死亡咆哮.cs +++ b/OshimaModules/Skills/魔法/死亡咆哮.cs @@ -10,6 +10,7 @@ namespace Oshima.FunGame.OshimaModules.Skills public override string Name => "死亡咆哮"; public override string Description => string.Join("", Effects.Select(e => e.Description)); public override string DispelDescription => Effects.Count > 0 ? Effects.First(e => e is 施加概率负面).DispelDescription : ""; + public override string ExemptionDescription => Effects.Count > 0 ? Effects.First(e => e is 施加概率负面).ExemptionDescription : ""; public override double MPCost => Level > 0 ? 70 + (75 * (Level - 1)) : 70; public override double CD => Level > 0 ? 55 + (1 * (Level - 1)) : 55; public override double CastTime => 3; diff --git a/OshimaModules/Skills/魔法/沉默十字.cs b/OshimaModules/Skills/魔法/沉默十字.cs index f39c847..e9c530b 100644 --- a/OshimaModules/Skills/魔法/沉默十字.cs +++ b/OshimaModules/Skills/魔法/沉默十字.cs @@ -10,6 +10,7 @@ namespace Oshima.FunGame.OshimaModules.Skills public override string Name => "沉默十字"; public override string Description => Effects.Count > 0 ? string.Join("\r\n", Effects.Select(e => e.Description)) : ""; public override string DispelDescription => Effects.Count > 0 ? Effects.First().DispelDescription : ""; + public override string ExemptionDescription => Effects.Count > 0 ? Effects.First().ExemptionDescription : ""; public override double MPCost { get @@ -26,7 +27,7 @@ namespace Oshima.FunGame.OshimaModules.Skills }; } } - public override double CD => Level > 0 ? 85 - (3 * (Level - 1)) : 85; + public override double CD => Level > 0 ? 55 - (3 * (Level - 1)) : 55; public override double CastTime => Level > 0 ? 10 - (0.5 * (Level - 1)) : 10; public override double HardnessTime { get; set; } = 6; public override int CanSelectTargetCount diff --git a/OshimaModules/Skills/魔法/治愈术.cs b/OshimaModules/Skills/魔法/治愈术.cs index b366f48..46286cf 100644 --- a/OshimaModules/Skills/魔法/治愈术.cs +++ b/OshimaModules/Skills/魔法/治愈术.cs @@ -10,7 +10,7 @@ namespace Oshima.FunGame.OshimaModules.Skills public override string Name => "治愈术"; public override string Description => string.Join("", Effects.Select(e => e.Description)); public override double MPCost => Level > 0 ? 80 + (85 * (Level - 1)) : 80; - public override double CD => Level > 0 ? 80 - (1 * (Level - 1)) : 80; + public override double CD => Level > 0 ? 35 - (1 * (Level - 1)) : 35; public override double CastTime => Level > 0 ? 3 + (0.25 * (Level - 1)) : 3; public override double HardnessTime { get; set; } = 6; public override bool CanSelectSelf => true; diff --git a/OshimaModules/Skills/魔法/治愈术复.cs b/OshimaModules/Skills/魔法/治愈术复.cs index bf8646b..4cc15d4 100644 --- a/OshimaModules/Skills/魔法/治愈术复.cs +++ b/OshimaModules/Skills/魔法/治愈术复.cs @@ -10,7 +10,7 @@ namespace Oshima.FunGame.OshimaModules.Skills public override string Name => "治愈术·复"; public override string Description => string.Join("", Effects.Select(e => e.Description)); public override double MPCost => Level > 0 ? 85 + (90 * (Level - 1)) : 85; - public override double CD => Level > 0 ? 92 - (1 * (Level - 1)) : 92; + public override double CD => Level > 0 ? 42 - (1 * (Level - 1)) : 42; public override double CastTime => Level > 0 ? 3 + (0.25 * (Level - 1)) : 3; public override double HardnessTime { get; set; } = 7; public override bool CanSelectSelf => true; diff --git a/OshimaModules/Skills/魔法/混沌烙印.cs b/OshimaModules/Skills/魔法/混沌烙印.cs index ba30b9f..7ec2f16 100644 --- a/OshimaModules/Skills/魔法/混沌烙印.cs +++ b/OshimaModules/Skills/魔法/混沌烙印.cs @@ -10,8 +10,9 @@ namespace Oshima.FunGame.OshimaModules.Skills public override string Name => "混沌烙印"; public override string Description => Effects.Count > 0 ? string.Join("\r\n", Effects.Select(e => e.Description)) : ""; public override string DispelDescription => Effects.Count > 0 ? Effects.First(e => e is 造成气绝).DispelDescription : ""; + public override string ExemptionDescription => Effects.Count > 0 ? Effects.First(e => e is 造成气绝).ExemptionDescription : ""; public override double MPCost => Level > 0 ? 65 + (70 * (Level - 1)) : 65; - public override double CD => Level > 0 ? 65 - (1.5 * (Level - 1)) : 65; + public override double CD => Level > 0 ? 50 - (1.5 * (Level - 1)) : 50; public override double CastTime => 4; public override double HardnessTime { get; set; } = 5; public override int CanSelectTargetCount => 1; diff --git a/OshimaModules/Skills/魔法/灾难冲击波.cs b/OshimaModules/Skills/魔法/灾难冲击波.cs index 0ea8893..48b953e 100644 --- a/OshimaModules/Skills/魔法/灾难冲击波.cs +++ b/OshimaModules/Skills/魔法/灾难冲击波.cs @@ -12,8 +12,9 @@ namespace Oshima.FunGame.OshimaModules.Skills public override string Name => "灾难冲击波"; public override string Description => string.Join("\r\n", Effects.Select(e => e.Description)); public override string DispelDescription => Effects.Count > 0 ? Effects.First(e => e is 灾难冲击波特效).DispelDescription : ""; + public override string ExemptionDescription => Effects.Count > 0 ? Effects.First(e => e is 灾难冲击波特效).ExemptionDescription : ""; public override double MPCost => Level > 0 ? 95 + (75 * (Level - 1)) : 95; - public override double CD => Level > 0 ? 85 - (1.5 * (Level - 1)) : 85; + public override double CD => Level > 0 ? 35 - (1.5 * (Level - 1)) : 35; public override double CastTime => Level > 0 ? 6 + (0.5 * (Level - 1)) : 6; public override double HardnessTime { get; set; } = 5; public override int CanSelectTargetCount @@ -45,7 +46,9 @@ namespace Oshima.FunGame.OshimaModules.Skills public override long Id => Skill.Id; public override string Name => Skill.Name; public override string Description => $"对{Skill.TargetDescription()}造成魔法抗性降低 {ActualMDFReductionPercent * 100:0.##}%,持续 {持续时间}。"; + public override EffectType EffectType => EffectType.MagicResistBreak; public override DispelledType DispelledType => DispelledType.Weak; + public override bool ExemptDuration => true; private string 持续时间 => _durative && _duration > 0 ? 实际持续时间 + $" {GameplayEquilibriumConstant.InGameTime}" : (!_durative && _durationTurn > 0 ? 实际持续时间 + " 回合" : $"0 {GameplayEquilibriumConstant.InGameTime}"); private double 实际持续时间 => _durative && _duration > 0 ? _duration + _levelGrowth * (Level - 1) : (!_durative && _durationTurn > 0 ? _durationTurn + _levelGrowth * (Level - 1) : 0); diff --git a/OshimaModules/Skills/魔法/盖亚之盾.cs b/OshimaModules/Skills/魔法/盖亚之盾.cs index 80ba64a..289c87f 100644 --- a/OshimaModules/Skills/魔法/盖亚之盾.cs +++ b/OshimaModules/Skills/魔法/盖亚之盾.cs @@ -10,7 +10,7 @@ namespace Oshima.FunGame.OshimaModules.Skills public override string Name => "盖亚之盾"; public override string Description => string.Join("", Effects.Select(e => e.Description)); public override double MPCost => Level > 0 ? 魔法消耗基础 + (魔法消耗等级成长 * (Level - 1)) : 魔法消耗基础; - public override double CD => Level > 0 ? 120 - (3 * (Level - 1)) : 120; + public override double CD => Level > 0 ? 50 - (3 * (Level - 1)) : 50; public override double CastTime => 12; public override double HardnessTime { get; set; } = 4; private double 魔法消耗基础 { get; set; } = 100; diff --git a/OshimaModules/Skills/魔法/破碎虚空.cs b/OshimaModules/Skills/魔法/破碎虚空.cs index c62c995..9c84332 100644 --- a/OshimaModules/Skills/魔法/破碎虚空.cs +++ b/OshimaModules/Skills/魔法/破碎虚空.cs @@ -10,7 +10,7 @@ namespace Oshima.FunGame.OshimaModules.Skills public override string Name => "破碎虚空"; public override string Description => Effects.Count > 0 ? Effects.First().Description : ""; public override double MPCost => Level > 0 ? 80 + (80 * (Level - 1)) : 80; - public override double CD => 60; + public override double CD => 30; public override double CastTime => 10; public override double HardnessTime { get; set; } = 6; public override int CanSelectTargetCount => 3; diff --git a/OshimaModules/Skills/魔法/神圣祝福.cs b/OshimaModules/Skills/魔法/神圣祝福.cs index 5022bcc..eb4fdd6 100644 --- a/OshimaModules/Skills/魔法/神圣祝福.cs +++ b/OshimaModules/Skills/魔法/神圣祝福.cs @@ -11,7 +11,7 @@ namespace Oshima.FunGame.OshimaModules.Skills public override string Name => "神圣祝福"; public override string Description => Effects.Count > 0 ? Effects.First().Description : ""; public override double MPCost => Level > 0 ? 95 + (100 * (Level - 1)) : 95; - public override double CD => Level > 0 ? 90 - (1.5 * (Level - 1)) : 90; + public override double CD => Level > 0 ? 40 - (1.5 * (Level - 1)) : 40; public override double CastTime => Level > 0 ? 5 + (1 * (Level - 1)) : 5; public override double HardnessTime { get; set; } = 3; public override bool CanSelectSelf => true; diff --git a/OshimaModules/Skills/魔法/神圣祝福复.cs b/OshimaModules/Skills/魔法/神圣祝福复.cs index 88cb04f..336c49b 100644 --- a/OshimaModules/Skills/魔法/神圣祝福复.cs +++ b/OshimaModules/Skills/魔法/神圣祝福复.cs @@ -11,7 +11,7 @@ namespace Oshima.FunGame.OshimaModules.Skills public override string Name => "神圣祝福·复"; public override string Description => Effects.Count > 0 ? Effects.First().Description : ""; public override double MPCost => Level > 0 ? 110 + (110 * (Level - 1)) : 110; - public override double CD => Level > 0 ? 100 - (1.5 * (Level - 1)) : 100; + public override double CD => Level > 0 ? 50 - (1.5 * (Level - 1)) : 50; public override double CastTime => Level > 0 ? 6 + (1 * (Level - 1)) : 5; public override double HardnessTime { get; set; } = 7; public override bool CanSelectSelf => true; diff --git a/OshimaModules/Skills/魔法/等离子之波.cs b/OshimaModules/Skills/魔法/等离子之波.cs index 76c2216..62f6627 100644 --- a/OshimaModules/Skills/魔法/等离子之波.cs +++ b/OshimaModules/Skills/魔法/等离子之波.cs @@ -10,8 +10,9 @@ namespace Oshima.FunGame.OshimaModules.Skills public override string Name => "等离子之波"; public override string Description => string.Join("", Effects.Select(e => e.Description)); public override string DispelDescription => Effects.Count > 0 ? Effects.First(e => e is 施加概率负面).DispelDescription : ""; + public override string ExemptionDescription => Effects.Count > 0 ? Effects.First(e => e is 施加概率负面).ExemptionDescription : ""; public override double MPCost => Level > 0 ? 70 + (75 * (Level - 1)) : 70; - public override double CD => Level > 0 ? 60 + (1.5 * (Level - 1)) : 60; + public override double CD => Level > 0 ? 20 + (1.5 * (Level - 1)) : 20; public override double CastTime => 6; public override double HardnessTime { get; set; } = 6; public override int CanSelectTargetCount diff --git a/OshimaModules/Skills/魔法/结晶防护.cs b/OshimaModules/Skills/魔法/结晶防护.cs index 3a7185a..40b0a86 100644 --- a/OshimaModules/Skills/魔法/结晶防护.cs +++ b/OshimaModules/Skills/魔法/结晶防护.cs @@ -11,7 +11,7 @@ namespace Oshima.FunGame.OshimaModules.Skills public override string Name => "结晶防护"; public override string Description => Effects.Count > 0 ? Effects.First().Description : ""; public override double MPCost => Level > 0 ? 75 + (80 * (Level - 1)) : 75; - public override double CD => Level > 0 ? 70 - (1 * (Level - 1)) : 70; + public override double CD => Level > 0 ? 27 - (1 * (Level - 1)) : 27; public override double CastTime => Level > 0 ? 3 + (1.5 * (Level - 1)) : 3; public override double HardnessTime { get; set; } = 3; public override bool CanSelectSelf => true; diff --git a/OshimaModules/Skills/魔法/结晶防护复.cs b/OshimaModules/Skills/魔法/结晶防护复.cs index afbdd3a..51a4799 100644 --- a/OshimaModules/Skills/魔法/结晶防护复.cs +++ b/OshimaModules/Skills/魔法/结晶防护复.cs @@ -11,7 +11,7 @@ namespace Oshima.FunGame.OshimaModules.Skills public override string Name => "结晶防护·复"; public override string Description => Effects.Count > 0 ? Effects.First().Description : ""; public override double MPCost => Level > 0 ? 90 + (95 * (Level - 1)) : 90; - public override double CD => Level > 0 ? 80 - (0.5 * (Level - 1)) : 75; + public override double CD => Level > 0 ? 35 - (0.5 * (Level - 1)) : 35; public override double CastTime => Level > 0 ? 4 + (1.5 * (Level - 1)) : 4; public override double HardnessTime { get; set; } = 5; public override bool CanSelectSelf => true; diff --git a/OshimaModules/Skills/魔法/苍白地狱.cs b/OshimaModules/Skills/魔法/苍白地狱.cs index a175b37..5e6ea9e 100644 --- a/OshimaModules/Skills/魔法/苍白地狱.cs +++ b/OshimaModules/Skills/魔法/苍白地狱.cs @@ -10,7 +10,7 @@ namespace Oshima.FunGame.OshimaModules.Skills public override string Name => "苍白地狱"; public override string Description => Effects.Count > 0 ? Effects.First().Description : ""; public override double MPCost => Level > 0 ? 45 + (55 * (Level - 1)) : 45; - public override double CD => 40; + public override double CD => 35; public override double CastTime => 9; public override double HardnessTime { get; set; } = 3; public override int CanSelectTargetCount => 3; diff --git a/OshimaModules/Skills/魔法/虚弱领域.cs b/OshimaModules/Skills/魔法/虚弱领域.cs index ba09f4d..e9482cc 100644 --- a/OshimaModules/Skills/魔法/虚弱领域.cs +++ b/OshimaModules/Skills/魔法/虚弱领域.cs @@ -10,8 +10,9 @@ namespace Oshima.FunGame.OshimaModules.Skills public override string Name => "虚弱领域"; public override string Description => Effects.Count > 0 ? string.Join("\r\n", Effects.Select(e => e.Description)) : ""; public override string DispelDescription => Effects.Count > 0 ? Effects.First(e => e is 造成虚弱).DispelDescription : ""; + public override string ExemptionDescription => Effects.Count > 0 ? Effects.First(e => e is 造成虚弱).ExemptionDescription : ""; public override double MPCost => Level > 0 ? 85 + (90 * (Level - 1)) : 85; - public override double CD => Level > 0 ? 85 - (2 * (Level - 1)) : 85; + public override double CD => Level > 0 ? 30 - (2 * (Level - 1)) : 30; public override double CastTime => 8; public override double HardnessTime { get; set; } = 3; public override bool SelectAllEnemies => true; diff --git a/OshimaModules/Skills/魔法/钻石星尘.cs b/OshimaModules/Skills/魔法/钻石星尘.cs index f365bf4..4017cb5 100644 --- a/OshimaModules/Skills/魔法/钻石星尘.cs +++ b/OshimaModules/Skills/魔法/钻石星尘.cs @@ -11,7 +11,7 @@ namespace Oshima.FunGame.OshimaModules.Skills public override string Description => string.Join("", Effects.Select(e => e.Description)); public override string DispelDescription => "被驱散性:冻结需强驱散,易伤可弱驱散"; public override double MPCost => Level > 0 ? 80 + (75 * (Level - 1)) : 80; - public override double CD => Level > 0 ? 70 + (2 * (Level - 1)) : 70; + public override double CD => Level > 0 ? 35 + (2 * (Level - 1)) : 35; public override double CastTime => 9; public override double HardnessTime { get; set; } = 6; public override int CanSelectTargetCount @@ -20,20 +20,21 @@ namespace Oshima.FunGame.OshimaModules.Skills { return Level switch { - 4 => 2, - 5 => 2, - 6 => 2, - 7 => 3, - 8 => 3, + 4 or 5 or 6 => 2, + 7 or 8 => 3, _ => 1 }; } } + public override bool IsNonDirectional => true; + public override SkillRangeType SkillRangeType => SkillRangeType.Circle; + public override int CanSelectTargetRange => 2; public 钻石星尘(Character? character = null) : base(SkillType.Magic, character) { + ExemptionDescription = $"冻结{SkillSet.GetExemptionDescription(EffectType.Freeze)}\r\n易伤{SkillSet.GetExemptionDescription(EffectType.Vulnerable)}"; Effects.Add(new 纯数值伤害(this, 60, 30, DamageType.Magical)); - Effects.Add(new 施加概率负面(this, EffectType.Freeze, false, 0, 2, 0, 0.45, 0.05)); + Effects.Add(new 施加概率负面(this, EffectType.Freeze, false, 0, 1, 0, 0.45, 0.05)); Effects.Add(new 施加概率负面(this, EffectType.Vulnerable, false, 0, 3, 0, 0.45, 0.05, DamageType.Magical, 0.3)); } } diff --git a/OshimaModules/Skills/魔法/银色荆棘.cs b/OshimaModules/Skills/魔法/银色荆棘.cs index 57c225f..8d9c940 100644 --- a/OshimaModules/Skills/魔法/银色荆棘.cs +++ b/OshimaModules/Skills/魔法/银色荆棘.cs @@ -11,8 +11,9 @@ namespace Oshima.FunGame.OshimaModules.Skills 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 override string ExemptionDescription => Effects.Count > 0 ? Effects.First().ExemptionDescription : ""; public override double MPCost => Level > 0 ? 100 + (80 * (Level - 1)) : 100; - public override double CD => Level > 0 ? 100 - (1.5 * (Level - 1)) : 100; + public override double CD => Level > 0 ? 55 - (1.5 * (Level - 1)) : 55; public override double CastTime => 12; public override double HardnessTime { get; set; } = 5; public override int CanSelectTargetCount @@ -45,6 +46,7 @@ namespace Oshima.FunGame.OshimaModules.Skills $"随后 {ActualConfusionProbability * 100:0.##}% 概率对目标施加混乱状态,持续 {持续时间}。混乱:进入行动受限状态,失控并随机行动,且在进行攻击指令时,可能会选取友方角色为目标。"; public override DispelledType DispelledType => DispelledType.Strong; public override EffectType EffectType => EffectType.Confusion; + public override bool ExemptDuration => true; private string 持续时间 => _durative && _duration > 0 ? 实际持续时间 + $" {GameplayEquilibriumConstant.InGameTime}" : (!_durative && _durationTurn > 0 ? 实际持续时间 + " 回合" : $"0 {GameplayEquilibriumConstant.InGameTime}"); private double 实际持续时间 => _durative && _duration > 0 ? _duration + _levelGrowth * (Level - 1) : (!_durative && _durationTurn > 0 ? _durationTurn + _levelGrowth * (Level - 1) : 0); diff --git a/OshimaModules/Skills/魔法/风之守护.cs b/OshimaModules/Skills/魔法/风之守护.cs index cfcff70..4bf1398 100644 --- a/OshimaModules/Skills/魔法/风之守护.cs +++ b/OshimaModules/Skills/魔法/风之守护.cs @@ -11,7 +11,7 @@ namespace Oshima.FunGame.OshimaModules.Skills public override string Name => "风之守护"; public override string Description => Effects.Count > 0 ? Effects.First().Description : ""; public override double MPCost => Level > 0 ? 75 + (80 * (Level - 1)) : 75; - public override double CD => Level > 0 ? 60 - (0.5 * (Level - 1)) : 60; + public override double CD => Level > 0 ? 30 - (0.5 * (Level - 1)) : 30; public override double CastTime => Level > 0 ? 4 + (1 * (Level - 1)) : 4; public override double HardnessTime { get; set; } = 3; public override bool CanSelectSelf => true; diff --git a/OshimaModules/Skills/魔法/风之守护复.cs b/OshimaModules/Skills/魔法/风之守护复.cs index 9adf045..e990ba4 100644 --- a/OshimaModules/Skills/魔法/风之守护复.cs +++ b/OshimaModules/Skills/魔法/风之守护复.cs @@ -11,7 +11,7 @@ namespace Oshima.FunGame.OshimaModules.Skills public override string Name => "风之守护·复"; public override string Description => Effects.Count > 0 ? Effects.First().Description : ""; public override double MPCost => Level > 0 ? 85 + (90 * (Level - 1)) : 85; - public override double CD => Level > 0 ? 75 - (0.5 * (Level - 1)) : 75; + public override double CD => Level > 0 ? 35 - (0.5 * (Level - 1)) : 35; public override double CastTime => Level > 0 ? 4 + (1.5 * (Level - 1)) : 4; public override double HardnessTime { get; set; } = 6; public override bool CanSelectSelf => true; diff --git a/OshimaModules/Skills/魔法/鬼魅之痛.cs b/OshimaModules/Skills/魔法/鬼魅之痛.cs index 17752a0..70bb283 100644 --- a/OshimaModules/Skills/魔法/鬼魅之痛.cs +++ b/OshimaModules/Skills/魔法/鬼魅之痛.cs @@ -10,8 +10,9 @@ namespace Oshima.FunGame.OshimaModules.Skills public override string Name => "鬼魅之痛"; public override string Description => string.Join("", Effects.Select(e => e.Description)); public override string DispelDescription => Effects.Count > 0 ? Effects.First(e => e is 施加概率负面).DispelDescription : ""; + public override string ExemptionDescription => Effects.Count > 0 ? Effects.First(e => e is 施加概率负面).ExemptionDescription : ""; public override double MPCost => Level > 0 ? 70 + (75 * (Level - 1)) : 70; - public override double CD => Level > 0 ? 55 + (1 * (Level - 1)) : 55; + public override double CD => Level > 0 ? 38 + (1 * (Level - 1)) : 38; public override double CastTime => 9; public override double HardnessTime { get; set; } = 7; public override int CanSelectTargetCount