技能优化和测试

This commit is contained in:
milimoe 2026-01-07 02:05:18 +08:00
parent 30c10595dd
commit 6344c3c527
Signed by: milimoe
GPG Key ID: 9554D37E4B8991D0
72 changed files with 136 additions and 66 deletions

View File

@ -35,10 +35,5 @@ namespace Oshima.FunGame.OshimaMaps
return map; return map;
} }
protected override void AfterTimeElapsed(ref double timeToReduce)
{
}
} }
} }

View File

@ -16,6 +16,7 @@ namespace Oshima.FunGame.OshimaModules.Effects.PassiveEffects
public override bool Durative => _durative; public override bool Durative => _durative;
public override double Duration => _duration; public override double Duration => _duration;
public override int DurationTurn => _durationTurn; public override int DurationTurn => _durationTurn;
public override bool ExemptDuration => true;
private readonly string _name; private readonly string _name;
private readonly EffectType _type; private readonly EffectType _type;

View File

@ -16,6 +16,7 @@ namespace Oshima.FunGame.OshimaModules.Effects.PassiveEffects
public override bool Durative => _durative; public override bool Durative => _durative;
public override double Duration => _duration; public override double Duration => _duration;
public override int DurationTurn => _durationTurn; public override int DurationTurn => _durationTurn;
public override bool ExemptDuration => true;
private readonly Character _sourceCharacter; private readonly Character _sourceCharacter;
private readonly bool _durative; private readonly bool _durative;

View File

@ -17,6 +17,7 @@ namespace Oshima.FunGame.OshimaModules.Effects.PassiveEffects
public override bool Durative => _durative; public override bool Durative => _durative;
public override double Duration => _duration; public override double Duration => _duration;
public override int DurationTurn => _durationTurn; public override int DurationTurn => _durationTurn;
public override bool ExemptDuration => true;
private readonly Character _sourceCharacter; private readonly Character _sourceCharacter;
private readonly Character _targetCharacter; private readonly Character _targetCharacter;

View File

@ -16,6 +16,7 @@ namespace Oshima.FunGame.OshimaModules.Effects.PassiveEffects
public override bool Durative => _durative; public override bool Durative => _durative;
public override double Duration => _duration; public override double Duration => _duration;
public override int DurationTurn => _durationTurn; public override int DurationTurn => _durationTurn;
public override bool ExemptDuration => true;
private readonly Character _sourceCharacter; private readonly Character _sourceCharacter;
private readonly bool _durative; private readonly bool _durative;

View File

@ -8,7 +8,7 @@ namespace Oshima.FunGame.OshimaModules.Effects.PassiveEffects
{ {
public override long Id => (long)PassiveEffectID.; public override long Id => (long)PassiveEffectID.;
public override string Name => "持续性弱驱散"; 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 EffectType EffectType => EffectType.WeakDispelling;
public override DispelType DispelType => DispelType.DurativeWeak; public override DispelType DispelType => DispelType.DurativeWeak;
public override Character Source => _sourceCharacter; 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) public override void OnEffectGained(Character character)
{ {
if (_durative && RemainDuration == 0) if (_durative && RemainDuration == 0)

View File

@ -8,7 +8,7 @@ namespace Oshima.FunGame.OshimaModules.Effects.PassiveEffects
{ {
public override long Id => (long)PassiveEffectID.; public override long Id => (long)PassiveEffectID.;
public override string Name => "持续性强驱散"; 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 EffectType EffectType => EffectType.StrongDispelling;
public override DispelType DispelType => DispelType.DurativeStrong; public override DispelType DispelType => DispelType.DurativeStrong;
public override Character Source => _sourceCharacter; 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) public override void OnEffectGained(Character character)
{ {
if (_durative && RemainDuration == 0) if (_durative && RemainDuration == 0)

View File

@ -15,6 +15,7 @@ namespace Oshima.FunGame.OshimaModules.Effects.PassiveEffects
public override bool Durative => _durative; public override bool Durative => _durative;
public override double Duration => _duration; public override double Duration => _duration;
public override int DurationTurn => _durationTurn; public override int DurationTurn => _durationTurn;
public override bool ExemptDuration => true;
private readonly DamageType _damageType; private readonly DamageType _damageType;
private readonly Character _targetCharacter; private readonly Character _targetCharacter;

View File

@ -15,6 +15,7 @@ namespace Oshima.FunGame.OshimaModules.Effects.PassiveEffects
public override bool Durative => _durative; public override bool Durative => _durative;
public override double Duration => _duration; public override double Duration => _duration;
public override int DurationTurn => _durationTurn; public override int DurationTurn => _durationTurn;
public override bool ExemptDuration => true;
private readonly Character _targetCharacter; private readonly Character _targetCharacter;
private readonly Character _sourceCharacter; private readonly Character _sourceCharacter;

View File

@ -16,6 +16,7 @@ namespace Oshima.FunGame.OshimaModules.Effects.PassiveEffects
public override bool Durative => _durative; public override bool Durative => _durative;
public override double Duration => _duration; public override double Duration => _duration;
public override int DurationTurn => _durationTurn; public override int DurationTurn => _durationTurn;
public override bool ExemptDuration => true;
private readonly Character _targetCharacter; private readonly Character _targetCharacter;
private readonly Character _sourceCharacter; private readonly Character _sourceCharacter;

View File

@ -17,6 +17,7 @@ namespace Oshima.FunGame.OshimaModules.Effects.PassiveEffects
public override bool Durative => _durative; public override bool Durative => _durative;
public override double Duration => _duration; public override double Duration => _duration;
public override int DurationTurn => _durationTurn; public override int DurationTurn => _durationTurn;
public override bool ExemptDuration => true;
private readonly Character _sourceCharacter; private readonly Character _sourceCharacter;
private readonly bool _durative; private readonly bool _durative;

View File

@ -17,6 +17,7 @@ namespace Oshima.FunGame.OshimaModules.Effects.PassiveEffects
public override bool Durative => _durative; public override bool Durative => _durative;
public override double Duration => _duration; public override double Duration => _duration;
public override int DurationTurn => _durationTurn; public override int DurationTurn => _durationTurn;
public override bool ExemptDuration => true;
private readonly Character _targetCharacter; private readonly Character _targetCharacter;
private readonly Character _sourceCharacter; private readonly Character _sourceCharacter;

View File

@ -16,6 +16,7 @@ namespace Oshima.FunGame.OshimaModules.Effects.PassiveEffects
public override bool Durative => _durative; public override bool Durative => _durative;
public override double Duration => _duration; public override double Duration => _duration;
public override int DurationTurn => _durationTurn; public override int DurationTurn => _durationTurn;
public override bool ExemptDuration => true;
private readonly Character _sourceCharacter; private readonly Character _sourceCharacter;
private readonly bool _durative; private readonly bool _durative;

View File

@ -10,7 +10,7 @@ namespace Oshima.FunGame.OshimaModules.Effects.SkillEffects
{ {
public override long Id => Skill.Id; public override long Id => Skill.Id;
public override string Name => Skill.Name; 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; public override DispelType DispelType => DispelType.DurativeWeak;
private string => _durative && _duration > 0 ? + $" {GameplayEquilibriumConstant.InGameTime}" : (!_durative && _durationTurn > 0 ? + " 回合" : $"0 {GameplayEquilibriumConstant.InGameTime}"); private string => _durative && _duration > 0 ? + $" {GameplayEquilibriumConstant.InGameTime}" : (!_durative && _durationTurn > 0 ? + " 回合" : $"0 {GameplayEquilibriumConstant.InGameTime}");

View File

@ -10,7 +10,7 @@ namespace Oshima.FunGame.OshimaModules.Effects.SkillEffects
{ {
public override long Id => Skill.Id; public override long Id => Skill.Id;
public override string Name => Skill.Name; 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; public override DispelType DispelType => DispelType.DurativeStrong;
private string => _durative && _duration > 0 ? + $" {GameplayEquilibriumConstant.InGameTime}" : (!_durative && _durationTurn > 0 ? + " 回合" : $"0 {GameplayEquilibriumConstant.InGameTime}"); private string => _durative && _duration > 0 ? + $" {GameplayEquilibriumConstant.InGameTime}" : (!_durative && _durationTurn > 0 ? + " 回合" : $"0 {GameplayEquilibriumConstant.InGameTime}");

View File

@ -20,6 +20,7 @@ namespace Oshima.FunGame.OshimaModules.Effects.SkillEffects
} }
public override EffectType EffectType => _effectType; public override EffectType EffectType => _effectType;
public override DispelledType DispelledType => _dispelledType; public override DispelledType DispelledType => _dispelledType;
public override bool ExemptDuration => true;
private double ActualProbability => Level > 0 ? _probability + _probabilityLevelGrowth * (Level - 1) : _probability; private double ActualProbability => Level > 0 ? _probability + _probabilityLevelGrowth * (Level - 1) : _probability;
private string => _durative && _duration > 0 ? $"{实际持续时间:0.##}" + $" {GameplayEquilibriumConstant.InGameTime}" : (!_durative && _durationTurn > 0 ? + " 回合" : $"0 {GameplayEquilibriumConstant.InGameTime}"); private string => _durative && _duration > 0 ? $"{实际持续时间:0.##}" + $" {GameplayEquilibriumConstant.InGameTime}" : (!_durative && _durationTurn > 0 ? + " 回合" : $"0 {GameplayEquilibriumConstant.InGameTime}");

View File

@ -1,5 +1,6 @@
using Milimoe.FunGame.Core.Entity; using Milimoe.FunGame.Core.Entity;
using Milimoe.FunGame.Core.Library.Common.Addon; using Milimoe.FunGame.Core.Library.Common.Addon;
using Milimoe.FunGame.Core.Library.Constant;
using Oshima.FunGame.OshimaModules.Effects.PassiveEffects; using Oshima.FunGame.OshimaModules.Effects.PassiveEffects;
using Oshima.FunGame.OshimaModules.Skills; using Oshima.FunGame.OshimaModules.Skills;
@ -10,6 +11,8 @@ namespace Oshima.FunGame.OshimaModules.Effects.SkillEffects
public override long Id => Skill.Id; public override long Id => Skill.Id;
public override string Name => Skill.Name; public override string Name => Skill.Name;
public override string Description => $"对{Skill.TargetDescription()}造成封技 {封技时间},无法使用技能(魔法、战技和爆发技),并打断当前施法。"; 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 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); private double => _durative && _duration > 0 ? _duration + _levelGrowth * (Level - 1) : (!_durative && _durationTurn > 0 ? _durationTurn + _levelGrowth * (Level - 1) : 0);

View File

@ -11,6 +11,8 @@ namespace Oshima.FunGame.OshimaModules.Effects.SkillEffects
public override string Name => Skill.Name; public override string Name => Skill.Name;
public override string Description => $"对目标{(Skill.CanSelectTargetCount > 1 ? $" {Skill.CanSelectTargetCount} " : "")}敌人造成气绝 {气绝时间}。气绝期间,目标行动受限且每{GameplayEquilibriumConstant.InGameTime}{DamageString},此生命流失效果不会导致角色死亡。"; public override string Description => $"对目标{(Skill.CanSelectTargetCount > 1 ? $" {Skill.CanSelectTargetCount} " : "")}敌人造成气绝 {气绝时间}。气绝期间,目标行动受限且每{GameplayEquilibriumConstant.InGameTime}{DamageString},此生命流失效果不会导致角色死亡。";
public override DispelledType DispelledType => DispelledType.Strong; 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 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); private double => _durative && _duration > 0 ? _duration + _levelGrowth * (Level - 1) : (!_durative && _durationTurn > 0 ? _durationTurn + _levelGrowth * (Level - 1) : 0);

View File

@ -12,6 +12,8 @@ namespace Oshima.FunGame.OshimaModules.Effects.SkillEffects
public override string Name => Skill.Name; public override string Name => Skill.Name;
public override string Description => $"对{Skill.TargetDescription()}造成眩晕 {眩晕时间}。"; public override string Description => $"对{Skill.TargetDescription()}造成眩晕 {眩晕时间}。";
public override DispelledType DispelledType => DispelledType.Strong; 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 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); private double => _durative && _duration > 0 ? _duration + _levelGrowth * (Level - 1) : (!_durative && _durationTurn > 0 ? _durationTurn + _levelGrowth * (Level - 1) : 0);

View File

@ -13,6 +13,8 @@ namespace Oshima.FunGame.OshimaModules.Effects.SkillEffects
public override string Description => $"对{Skill.TargetDescription()}造成虚弱 {虚弱时间},伤害降低 {ActualDamageReductionPercent * 100:0.##}%" + public override string Description => $"对{Skill.TargetDescription()}造成虚弱 {虚弱时间},伤害降低 {ActualDamageReductionPercent * 100:0.##}%" +
$"物理护甲降低 {ActualDEFReductionPercent * 100:0.##}%,魔法抗性降低 {ActualMDFReductionPercent * 100:0.##}%,治疗效果降低 {ActualHealingReductionPercent * 100:0.##}%。"; $"物理护甲降低 {ActualDEFReductionPercent * 100:0.##}%,魔法抗性降低 {ActualMDFReductionPercent * 100:0.##}%,治疗效果降低 {ActualHealingReductionPercent * 100:0.##}%。";
public override DispelledType DispelledType => DispelledType.Weak; 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 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); private double => _durative && _duration > 0 ? _duration + _levelGrowth * (Level - 1) : (!_durative && _durationTurn > 0 ? _durationTurn + _levelGrowth * (Level - 1) : 0);

View File

@ -11,6 +11,8 @@ namespace Oshima.FunGame.OshimaModules.Effects.SkillEffects
public override long Id => Skill.Id; public override long Id => Skill.Id;
public override string Name => Skill.Name; public override string Name => Skill.Name;
public override string Description => $"降低{Skill.TargetDescription()} {Math.Abs(SPD):0.##} 点行动速度 {持续时间}。并延长目标 30% 的行动等待时间(当前硬直时间)。"; 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 SPD => Level > 0 ? -Math.Abs( + * (Level - 1)) : -Math.Abs();
private double { get; set; } = 30; private double { get; set; } = 30;

View File

@ -14,6 +14,7 @@ namespace Oshima.FunGame.OshimaModules.Skills
public (Character? character = null) : base(SkillType.Passive, character) public (Character? character = null) : base(SkillType.Passive, character)
{ {
Effects.Add(new (this)); Effects.Add(new (this));
ExemptionDescription = SkillSet.GetExemptionDescription(EffectType.Cripple);
} }
public override IEnumerable<Effect> AddPassiveEffectToCharacter() public override IEnumerable<Effect> AddPassiveEffectToCharacter()

View File

@ -1,4 +1,5 @@
using Milimoe.FunGame.Core.Entity; using System.Text;
using Milimoe.FunGame.Core.Entity;
using Milimoe.FunGame.Core.Library.Constant; using Milimoe.FunGame.Core.Library.Constant;
namespace Oshima.FunGame.OshimaModules.Skills namespace Oshima.FunGame.OshimaModules.Skills
@ -22,9 +23,9 @@ namespace Oshima.FunGame.OshimaModules.Skills
{ {
str = "敌方全体角色"; 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) else if (!skill.CanSelectTeammate && skill.CanSelectEnemy)
{ {
@ -70,10 +71,10 @@ namespace Oshima.FunGame.OshimaModules.Skills
str = "目标正方形区域"; str = "目标正方形区域";
break; break;
case SkillRangeType.Line: case SkillRangeType.Line:
str = "与目标地点之间的直线区域"; str = "自身与目标地点之间的直线区域";
break; break;
case SkillRangeType.LinePass: case SkillRangeType.LinePass:
str = "贯穿目标地点直至地图边缘的直线区域"; str = "自身与目标地点之间的直线区域以及贯穿目标地点直至地图边缘的直线区域";
break; break;
case SkillRangeType.Sector: case SkillRangeType.Sector:
str = "目标扇形区域"; str = "目标扇形区域";
@ -85,11 +86,22 @@ namespace Oshima.FunGame.OshimaModules.Skills
if (skill.SelectIncludeCharacterGrid) 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 else
{ {
str = "不被角色占据的"; str = "一个包含被角色占据的";
} }
return str; return str;

View File

@ -47,7 +47,7 @@ namespace Oshima.FunGame.OshimaModules.Skills
WriteLine($"[ {character} ] 发动了心灵之火!额外进行一次普通攻击!"); WriteLine($"[ {character} ] 发动了心灵之火!额外进行一次普通攻击!");
= ; = ;
= true; = true;
character.NormalAttack.Attack(GamingQueue, character, enemy); character.NormalAttack.Attack(GamingQueue, character, true, enemy);
} }
if (character == Skill.Character && ) if (character == Skill.Character && )

View File

@ -13,6 +13,7 @@ namespace Oshima.FunGame.OshimaModules.Skills
public (Character? character = null) : base(SkillType.Passive, character) public (Character? character = null) : base(SkillType.Passive, character)
{ {
ExemptionDescription = SkillSet.GetExemptionDescription(EffectType.Stun);
Effects.Add(new (this)); Effects.Add(new (this));
} }

View File

@ -46,10 +46,10 @@ namespace Oshima.FunGame.OshimaModules.Skills
checkQuota = dp.CheckActionTypeQuota(CharacterActionType.NormalAttack); checkQuota = dp.CheckActionTypeQuota(CharacterActionType.NormalAttack);
dp.AddActionType(CharacterActionType.NormalAttack, false); dp.AddActionType(CharacterActionType.NormalAttack, false);
} }
caster.NormalAttack.Attack(GamingQueue, caster, targets); caster.NormalAttack.Attack(GamingQueue, caster, true, targets);
if (checkQuota) if (checkQuota)
{ {
caster.NormalAttack.Attack(GamingQueue, caster, targets); caster.NormalAttack.Attack(GamingQueue, caster, true, targets);
} }
} }
} }

View File

@ -33,6 +33,7 @@ namespace Oshima.FunGame.OshimaModules.Skills
public override string Description => $"对目标{(Skill.CanSelectTargetCount > 1 ? $" {Skill.CanSelectTargetCount} " : "")}敌方角色施加愤怒状态。愤怒:行动受限且失控,行动回合中无法自主行动,仅能对施法者发起普通攻击。持续 {持续时间}。"; public override string Description => $"对目标{(Skill.CanSelectTargetCount > 1 ? $" {Skill.CanSelectTargetCount} " : "")}敌方角色施加愤怒状态。愤怒:行动受限且失控,行动回合中无法自主行动,仅能对施法者发起普通攻击。持续 {持续时间}。";
public override EffectType EffectType => EffectType.Taunt; public override EffectType EffectType => EffectType.Taunt;
public override DispelledType DispelledType => DispelledType.Strong; 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 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); private double => _durative && _duration > 0 ? _duration + _levelGrowth * (Level - 1) : (!_durative && _durationTurn > 0 ? _durationTurn + _levelGrowth * (Level - 1) : 0);

View File

@ -10,9 +10,13 @@ namespace Oshima.FunGame.OshimaModules.Skills
public override string Name => "绝影"; public override string Name => "绝影";
public override string Description => string.Join("", Effects.Select(e => e.Description)); 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 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 EPCost => 60;
public override double CD => 18; public override double CD => 18;
public override double HardnessTime { get; set; } = 7; 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) public (Character? character = null) : base(SkillType.Skill, character)
{ {

View File

@ -10,6 +10,7 @@ namespace Oshima.FunGame.OshimaModules.Skills
public override string Name => "胧"; public override string Name => "胧";
public override string Description => string.Join("", Effects.Select(e => e.Description)); 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 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 EPCost => 60;
public override double CD => 20; public override double CD => 20;
public override double HardnessTime { get; set; } = 9; public override double HardnessTime { get; set; } = 9;

View File

@ -16,6 +16,7 @@ namespace Oshima.FunGame.OshimaModules.Skills
public (Character? character = null) : base(SkillType.Skill, character) public (Character? character = null) : base(SkillType.Skill, character)
{ {
ExemptionDescription = $"迟滞{SkillSet.GetExemptionDescription(EffectType.Delay)}\r\n混乱{SkillSet.GetExemptionDescription(EffectType.Confusion)}";
CastRange = 2; CastRange = 2;
Effects.Add(new (this, EffectType.Delay, false, 0, 3, 0, 1, 0, 0.5)); 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)); Effects.Add(new (this, EffectType.Confusion, false, 0, 2, 0, 0.45, 0.05));

View File

@ -10,7 +10,7 @@ namespace Oshima.FunGame.OshimaModules.Skills
public override string Name => "冰狱冥嚎"; public override string Name => "冰狱冥嚎";
public override string Description => Effects.Count > 0 ? Effects.First().Description : ""; public override string Description => Effects.Count > 0 ? Effects.First().Description : "";
public override double MPCost => Level > 0 ? 55 + (55 * (Level - 1)) : 55; 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 CastTime => 10;
public override double HardnessTime { get; set; } = 5; public override double HardnessTime { get; set; } = 5;
public override int CanSelectTargetCount => 3; public override int CanSelectTargetCount => 3;

View File

@ -10,8 +10,9 @@ namespace Oshima.FunGame.OshimaModules.Skills
public override string Name => "凝胶稠絮"; public override string Name => "凝胶稠絮";
public override string Description => Effects.Count > 0 ? string.Join("\r\n", Effects.Select(e => e.Description)) : ""; 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 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 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 CastTime => 11;
public override double HardnessTime { get; set; } = 4; public override double HardnessTime { get; set; } = 4;
public override int CanSelectTargetCount => 1; public override int CanSelectTargetCount => 1;

View File

@ -10,6 +10,7 @@ namespace Oshima.FunGame.OshimaModules.Skills
public override string Name => "反魔法领域"; public override string Name => "反魔法领域";
public override string Description => Effects.Count > 0 ? string.Join("\r\n", Effects.Select(e => e.Description)) : ""; 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 DispelDescription => Effects.Count > 0 ? Effects.First().DispelDescription : "";
public override string ExemptionDescription => Effects.Count > 0 ? Effects.First().ExemptionDescription : "";
public override double MPCost public override double MPCost
{ {
get 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 CastTime => Level > 0 ? 5 + (0.5 * (Level - 1)) : 5;
public override double HardnessTime { get; set; } = 5; public override double HardnessTime { get; set; } = 5;
public override int CanSelectTargetCount public override int CanSelectTargetCount

View File

@ -10,7 +10,7 @@ namespace Oshima.FunGame.OshimaModules.Skills
public override string Name => "回复术"; public override string Name => "回复术";
public override string Description => Effects.Count > 0 ? Effects.First().Description : ""; public override string Description => Effects.Count > 0 ? Effects.First().Description : "";
public override double MPCost => Level > 0 ? 75 + (75 * (Level - 1)) : 75; 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 CastTime => 3;
public override double HardnessTime { get; set; } = 5; public override double HardnessTime { get; set; } = 5;
public override bool CanSelectSelf => true; public override bool CanSelectSelf => true;

View File

@ -10,7 +10,7 @@ namespace Oshima.FunGame.OshimaModules.Skills
public override string Name => "回复术·复"; public override string Name => "回复术·复";
public override string Description => Effects.Count > 0 ? Effects.First().Description : ""; public override string Description => Effects.Count > 0 ? Effects.First().Description : "";
public override double MPCost => Level > 0 ? 95 + (105 * (Level - 1)) : 95; 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 CastTime => 6;
public override double HardnessTime { get; set; } = 7; public override double HardnessTime { get; set; } = 7;
public override bool CanSelectSelf => true; public override bool CanSelectSelf => true;

View File

@ -10,7 +10,7 @@ namespace Oshima.FunGame.OshimaModules.Skills
public override string Name => "回复术·改"; public override string Name => "回复术·改";
public override string Description => Effects.Count > 0 ? Effects.First().Description : ""; public override string Description => Effects.Count > 0 ? Effects.First().Description : "";
public override double MPCost => Level > 0 ? 80 + (80 * (Level - 1)) : 80; 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 CastTime => 3;
public override double HardnessTime { get; set; } = 7; public override double HardnessTime { get; set; } = 7;
public override bool CanSelectSelf => true; public override bool CanSelectSelf => true;

View File

@ -11,7 +11,7 @@ namespace Oshima.FunGame.OshimaModules.Skills
public override string Description => string.Join("", Effects.Select(e => e.Description)); public override string Description => string.Join("", Effects.Select(e => e.Description));
public override string DispelDescription => Effects.FirstOrDefault(e => e is )?.DispelDescription ?? ""; public override string DispelDescription => Effects.FirstOrDefault(e => e is )?.DispelDescription ?? "";
public override double MPCost => Level > 0 ? 110 + (95 * (Level - 1)) : 110; 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 CastTime => 5;
public override double HardnessTime { get; set; } = 7; public override double HardnessTime { get; set; } = 7;
public override bool CanSelectSelf => true; public override bool CanSelectSelf => true;

View File

@ -10,8 +10,9 @@ namespace Oshima.FunGame.OshimaModules.Skills
public override string Name => "地狱之门"; public override string Name => "地狱之门";
public override string Description => string.Join("", Effects.Select(e => e.Description)); 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 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 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 CastTime => 3;
public override double HardnessTime { get; set; } = 8; public override double HardnessTime { get; set; } = 8;
public override int CanSelectTargetCount public override int CanSelectTargetCount

View File

@ -11,7 +11,7 @@ namespace Oshima.FunGame.OshimaModules.Skills
public override string Description => string.Join("", Effects.Select(e => e.Description)); public override string Description => string.Join("", Effects.Select(e => e.Description));
public override string DispelDescription => Effects.FirstOrDefault(e => e is )?.DispelDescription ?? ""; public override string DispelDescription => Effects.FirstOrDefault(e => e is )?.DispelDescription ?? "";
public override double MPCost => Level > 0 ? 95 + (85 * (Level - 1)) : 95; 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 CastTime => 6;
public override double HardnessTime { get; set; } = 8; public override double HardnessTime { get; set; } = 8;
public override bool CanSelectSelf => true; public override bool CanSelectSelf => true;

View File

@ -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 public override double CastTime
{ {
get get

View File

@ -10,8 +10,9 @@ namespace Oshima.FunGame.OshimaModules.Skills
public override string Name => "导力停止"; public override string Name => "导力停止";
public override string Description => string.Join("", Effects.Select(e => e.Description)); 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 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 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 CastTime => Level > 0 ? 3 + (0.5 * (Level - 1)) : 3;
public override double HardnessTime { get; set; } = 8; public override double HardnessTime { get; set; } = 8;
public override bool SelectAllEnemies => true; public override bool SelectAllEnemies => true;

View File

@ -11,7 +11,7 @@ namespace Oshima.FunGame.OshimaModules.Skills
public override string Name => "强音之力"; public override string Name => "强音之力";
public override string Description => Effects.Count > 0 ? Effects.First().Description : ""; public override string Description => Effects.Count > 0 ? Effects.First().Description : "";
public override double MPCost => Level > 0 ? 65 + (70 * (Level - 1)) : 65; 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 CastTime => Level > 0 ? 6 + (0.5 * (Level - 1)) : 6;
public override double HardnessTime { get; set; } = 3; public override double HardnessTime { get; set; } = 3;
public override bool CanSelectSelf => true; public override bool CanSelectSelf => true;

View File

@ -11,7 +11,7 @@ namespace Oshima.FunGame.OshimaModules.Skills
public override string Name => "强音之力·复"; public override string Name => "强音之力·复";
public override string Description => Effects.Count > 0 ? Effects.First().Description : ""; public override string Description => Effects.Count > 0 ? Effects.First().Description : "";
public override double MPCost => Level > 0 ? 85 + (85 * (Level - 1)) : 85; 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 CastTime => Level > 0 ? 6 + (0.5 * (Level - 1)) : 6;
public override double HardnessTime { get; set; } = 6; public override double HardnessTime { get; set; } = 6;
public override bool CanSelectSelf => true; public override bool CanSelectSelf => true;

View File

@ -9,8 +9,9 @@ namespace Oshima.FunGame.OshimaModules.Skills
public override long Id => (long)MagicID.; public override long Id => (long)MagicID.;
public override string Name => "时间减速"; public override string Name => "时间减速";
public override string Description => Effects.Count > 0 ? Effects.First().Description : ""; 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 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 CastTime => Level > 0 ? 3 + (1.5 * (Level - 1)) : 3;
public override double HardnessTime { get; set; } = 5; public override double HardnessTime { get; set; } = 5;

View File

@ -10,8 +10,9 @@ namespace Oshima.FunGame.OshimaModules.Skills
public override long Id => (long)MagicID.; public override long Id => (long)MagicID.;
public override string Name => "时间减速·复"; public override string Name => "时间减速·复";
public override string Description => Effects.Count > 0 ? Effects.First().Description : ""; 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 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 CastTime => Level > 0 ? 6 + (1.5 * (Level - 1)) : 6;
public override double HardnessTime { get; set; } = 6; public override double HardnessTime { get; set; } = 6;
public override int CanSelectTargetCount public override int CanSelectTargetCount
@ -45,6 +46,7 @@ namespace Oshima.FunGame.OshimaModules.Skills
$"{(!IsDebuff ? "" : "")}{Skill.TargetDescription()} {Math.Abs(ExACC) * 100:0.##}% 加速系数。持续 {持续时间}。"; $"{(!IsDebuff ? "" : "")}{Skill.TargetDescription()} {Math.Abs(ExACC) * 100:0.##}% 加速系数。持续 {持续时间}。";
public override EffectType EffectType => EffectType.Slow; public override EffectType EffectType => EffectType.Slow;
public override DispelledType DispelledType => DispelledType.Weak; public override DispelledType DispelledType => DispelledType.Weak;
public override bool ExemptDuration => true;
public override bool IsDebuff => true; public override bool IsDebuff => true;
private string => _durative && _duration > 0 ? + $" {GameplayEquilibriumConstant.InGameTime}" : (!_durative && _durationTurn > 0 ? + " 回合" : $"0 {GameplayEquilibriumConstant.InGameTime}"); private string => _durative && _duration > 0 ? + $" {GameplayEquilibriumConstant.InGameTime}" : (!_durative && _durationTurn > 0 ? + " 回合" : $"0 {GameplayEquilibriumConstant.InGameTime}");

View File

@ -10,8 +10,9 @@ namespace Oshima.FunGame.OshimaModules.Skills
public override long Id => (long)MagicID.; public override long Id => (long)MagicID.;
public override string Name => "时间减速·改"; public override string Name => "时间减速·改";
public override string Description => Effects.Count > 0 ? Effects.First().Description : ""; 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 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 CastTime => Level > 0 ? 7 + (1 * (Level - 1)) : 7;
public override double HardnessTime { get; set; } = 4; public override double HardnessTime { get; set; } = 4;
@ -29,6 +30,7 @@ namespace Oshima.FunGame.OshimaModules.Skills
$"{(!IsDebuff ? "" : "")}{Skill.TargetDescription()} {Math.Abs(ExACC) * 100:0.##}% 加速系数。持续 {持续时间}。"; $"{(!IsDebuff ? "" : "")}{Skill.TargetDescription()} {Math.Abs(ExACC) * 100:0.##}% 加速系数。持续 {持续时间}。";
public override EffectType EffectType => EffectType.Slow; public override EffectType EffectType => EffectType.Slow;
public override DispelledType DispelledType => DispelledType.Weak; public override DispelledType DispelledType => DispelledType.Weak;
public override bool ExemptDuration => true;
public override bool IsDebuff => true; public override bool IsDebuff => true;
private string => _durative && _duration > 0 ? + $" {GameplayEquilibriumConstant.InGameTime}" : (!_durative && _durationTurn > 0 ? + " 回合" : $"0 {GameplayEquilibriumConstant.InGameTime}"); private string => _durative && _duration > 0 ? + $" {GameplayEquilibriumConstant.InGameTime}" : (!_durative && _durationTurn > 0 ? + " 回合" : $"0 {GameplayEquilibriumConstant.InGameTime}");

View File

@ -10,7 +10,7 @@ namespace Oshima.FunGame.OshimaModules.Skills
public override string Name => "时间加速"; public override string Name => "时间加速";
public override string Description => Effects.Count > 0 ? Effects.First().Description : ""; public override string Description => Effects.Count > 0 ? Effects.First().Description : "";
public override double MPCost => Level > 0 ? 70 + (80 * (Level - 1)) : 70; 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 CastTime => Level > 0 ? 2 + (1.5 * (Level - 1)) : 2;
public override double HardnessTime { get; set; } = 4; public override double HardnessTime { get; set; } = 4;
public override bool CanSelectSelf => true; public override bool CanSelectSelf => true;

View File

@ -11,7 +11,7 @@ namespace Oshima.FunGame.OshimaModules.Skills
public override string Name => "时间加速·复"; public override string Name => "时间加速·复";
public override string Description => Effects.Count > 0 ? Effects.First().Description : ""; public override string Description => Effects.Count > 0 ? Effects.First().Description : "";
public override double MPCost => Level > 0 ? 90 + (95 * (Level - 1)) : 90; 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 CastTime => Level > 0 ? 6 + (1.5 * (Level - 1)) : 6;
public override double HardnessTime { get; set; } = 7; public override double HardnessTime { get; set; } = 7;
public override bool CanSelectSelf => true; public override bool CanSelectSelf => true;

View File

@ -11,7 +11,7 @@ namespace Oshima.FunGame.OshimaModules.Skills
public override string Name => "时间加速·改"; public override string Name => "时间加速·改";
public override string Description => Effects.Count > 0 ? Effects.First().Description : ""; public override string Description => Effects.Count > 0 ? Effects.First().Description : "";
public override double MPCost => Level > 0 ? 120 + (115 * (Level - 1)) : 120; 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 CastTime => 3;
public override double HardnessTime { get; set; } = 9; public override double HardnessTime { get; set; } = 9;
public override bool CanSelectSelf => true; public override bool CanSelectSelf => true;

View File

@ -10,7 +10,7 @@ namespace Oshima.FunGame.OshimaModules.Skills
public override string Name => "暗物质"; public override string Name => "暗物质";
public override string Description => Effects.Count > 0 ? Effects.First().Description : ""; public override string Description => Effects.Count > 0 ? Effects.First().Description : "";
public override double MPCost => Level > 0 ? 70 + (80 * (Level - 1)) : 70; 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 CastTime => 10;
public override double HardnessTime { get; set; } = 4; public override double HardnessTime { get; set; } = 4;

View File

@ -12,7 +12,7 @@ namespace Oshima.FunGame.OshimaModules.Skills
public override string Description => string.Join("", Effects.Select(e => e.Description)); public override string Description => string.Join("", Effects.Select(e => e.Description));
public override string DispelDescription => "被驱散性:可弱驱散"; public override string DispelDescription => "被驱散性:可弱驱散";
public override double MPCost => Level > 0 ? 200 + (75 * (Level - 1)) : 200; 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 CastTime => Level > 0 ? 12 - (0.5 * (Level - 1)) : 12;
public override double HardnessTime { get; set; } = 8; public override double HardnessTime { get; set; } = 8;
public override bool CanSelectSelf => true; public override bool CanSelectSelf => true;

View File

@ -10,8 +10,9 @@ namespace Oshima.FunGame.OshimaModules.Skills
public override string Name => "次元上升"; public override string Name => "次元上升";
public override string Description => Effects.Count > 0 ? string.Join("\r\n", Effects.Select(e => e.Description)) : ""; 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 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 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 CastTime => 12;
public override double HardnessTime { get; set; } = 5; public override double HardnessTime { get; set; } = 5;

View File

@ -10,6 +10,7 @@ namespace Oshima.FunGame.OshimaModules.Skills
public override string Name => "死亡咆哮"; public override string Name => "死亡咆哮";
public override string Description => string.Join("", Effects.Select(e => e.Description)); 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 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 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 ? 55 + (1 * (Level - 1)) : 55;
public override double CastTime => 3; public override double CastTime => 3;

View File

@ -10,6 +10,7 @@ namespace Oshima.FunGame.OshimaModules.Skills
public override string Name => "沉默十字"; public override string Name => "沉默十字";
public override string Description => Effects.Count > 0 ? string.Join("\r\n", Effects.Select(e => e.Description)) : ""; 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 DispelDescription => Effects.Count > 0 ? Effects.First().DispelDescription : "";
public override string ExemptionDescription => Effects.Count > 0 ? Effects.First().ExemptionDescription : "";
public override double MPCost public override double MPCost
{ {
get 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 CastTime => Level > 0 ? 10 - (0.5 * (Level - 1)) : 10;
public override double HardnessTime { get; set; } = 6; public override double HardnessTime { get; set; } = 6;
public override int CanSelectTargetCount public override int CanSelectTargetCount

View File

@ -10,7 +10,7 @@ namespace Oshima.FunGame.OshimaModules.Skills
public override string Name => "治愈术"; public override string Name => "治愈术";
public override string Description => string.Join("", Effects.Select(e => e.Description)); 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 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 CastTime => Level > 0 ? 3 + (0.25 * (Level - 1)) : 3;
public override double HardnessTime { get; set; } = 6; public override double HardnessTime { get; set; } = 6;
public override bool CanSelectSelf => true; public override bool CanSelectSelf => true;

View File

@ -10,7 +10,7 @@ namespace Oshima.FunGame.OshimaModules.Skills
public override string Name => "治愈术·复"; public override string Name => "治愈术·复";
public override string Description => string.Join("", Effects.Select(e => e.Description)); 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 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 CastTime => Level > 0 ? 3 + (0.25 * (Level - 1)) : 3;
public override double HardnessTime { get; set; } = 7; public override double HardnessTime { get; set; } = 7;
public override bool CanSelectSelf => true; public override bool CanSelectSelf => true;

View File

@ -10,8 +10,9 @@ namespace Oshima.FunGame.OshimaModules.Skills
public override string Name => "混沌烙印"; public override string Name => "混沌烙印";
public override string Description => Effects.Count > 0 ? string.Join("\r\n", Effects.Select(e => e.Description)) : ""; 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 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 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 CastTime => 4;
public override double HardnessTime { get; set; } = 5; public override double HardnessTime { get; set; } = 5;
public override int CanSelectTargetCount => 1; public override int CanSelectTargetCount => 1;

View File

@ -12,8 +12,9 @@ namespace Oshima.FunGame.OshimaModules.Skills
public override string Name => "灾难冲击波"; public override string Name => "灾难冲击波";
public override string Description => string.Join("\r\n", Effects.Select(e => e.Description)); 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 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 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 CastTime => Level > 0 ? 6 + (0.5 * (Level - 1)) : 6;
public override double HardnessTime { get; set; } = 5; public override double HardnessTime { get; set; } = 5;
public override int CanSelectTargetCount public override int CanSelectTargetCount
@ -45,7 +46,9 @@ namespace Oshima.FunGame.OshimaModules.Skills
public override long Id => Skill.Id; public override long Id => Skill.Id;
public override string Name => Skill.Name; public override string Name => Skill.Name;
public override string Description => $"对{Skill.TargetDescription()}造成魔法抗性降低 {ActualMDFReductionPercent * 100:0.##}%,持续 {持续时间}。"; public override string Description => $"对{Skill.TargetDescription()}造成魔法抗性降低 {ActualMDFReductionPercent * 100:0.##}%,持续 {持续时间}。";
public override EffectType EffectType => EffectType.MagicResistBreak;
public override DispelledType DispelledType => DispelledType.Weak; 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 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); private double => _durative && _duration > 0 ? _duration + _levelGrowth * (Level - 1) : (!_durative && _durationTurn > 0 ? _durationTurn + _levelGrowth * (Level - 1) : 0);

View File

@ -10,7 +10,7 @@ namespace Oshima.FunGame.OshimaModules.Skills
public override string Name => "盖亚之盾"; public override string Name => "盖亚之盾";
public override string Description => string.Join("", Effects.Select(e => e.Description)); public override string Description => string.Join("", Effects.Select(e => e.Description));
public override double MPCost => Level > 0 ? + ( * (Level - 1)) : ; 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 CastTime => 12;
public override double HardnessTime { get; set; } = 4; public override double HardnessTime { get; set; } = 4;
private double { get; set; } = 100; private double { get; set; } = 100;

View File

@ -10,7 +10,7 @@ namespace Oshima.FunGame.OshimaModules.Skills
public override string Name => "破碎虚空"; public override string Name => "破碎虚空";
public override string Description => Effects.Count > 0 ? Effects.First().Description : ""; public override string Description => Effects.Count > 0 ? Effects.First().Description : "";
public override double MPCost => Level > 0 ? 80 + (80 * (Level - 1)) : 80; 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 CastTime => 10;
public override double HardnessTime { get; set; } = 6; public override double HardnessTime { get; set; } = 6;
public override int CanSelectTargetCount => 3; public override int CanSelectTargetCount => 3;

View File

@ -11,7 +11,7 @@ namespace Oshima.FunGame.OshimaModules.Skills
public override string Name => "神圣祝福"; public override string Name => "神圣祝福";
public override string Description => Effects.Count > 0 ? Effects.First().Description : ""; public override string Description => Effects.Count > 0 ? Effects.First().Description : "";
public override double MPCost => Level > 0 ? 95 + (100 * (Level - 1)) : 95; 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 CastTime => Level > 0 ? 5 + (1 * (Level - 1)) : 5;
public override double HardnessTime { get; set; } = 3; public override double HardnessTime { get; set; } = 3;
public override bool CanSelectSelf => true; public override bool CanSelectSelf => true;

View File

@ -11,7 +11,7 @@ namespace Oshima.FunGame.OshimaModules.Skills
public override string Name => "神圣祝福·复"; public override string Name => "神圣祝福·复";
public override string Description => Effects.Count > 0 ? Effects.First().Description : ""; public override string Description => Effects.Count > 0 ? Effects.First().Description : "";
public override double MPCost => Level > 0 ? 110 + (110 * (Level - 1)) : 110; 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 CastTime => Level > 0 ? 6 + (1 * (Level - 1)) : 5;
public override double HardnessTime { get; set; } = 7; public override double HardnessTime { get; set; } = 7;
public override bool CanSelectSelf => true; public override bool CanSelectSelf => true;

View File

@ -10,8 +10,9 @@ namespace Oshima.FunGame.OshimaModules.Skills
public override string Name => "等离子之波"; public override string Name => "等离子之波";
public override string Description => string.Join("", Effects.Select(e => e.Description)); 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 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 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 CastTime => 6;
public override double HardnessTime { get; set; } = 6; public override double HardnessTime { get; set; } = 6;
public override int CanSelectTargetCount public override int CanSelectTargetCount

View File

@ -11,7 +11,7 @@ namespace Oshima.FunGame.OshimaModules.Skills
public override string Name => "结晶防护"; public override string Name => "结晶防护";
public override string Description => Effects.Count > 0 ? Effects.First().Description : ""; public override string Description => Effects.Count > 0 ? Effects.First().Description : "";
public override double MPCost => Level > 0 ? 75 + (80 * (Level - 1)) : 75; 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 CastTime => Level > 0 ? 3 + (1.5 * (Level - 1)) : 3;
public override double HardnessTime { get; set; } = 3; public override double HardnessTime { get; set; } = 3;
public override bool CanSelectSelf => true; public override bool CanSelectSelf => true;

View File

@ -11,7 +11,7 @@ namespace Oshima.FunGame.OshimaModules.Skills
public override string Name => "结晶防护·复"; public override string Name => "结晶防护·复";
public override string Description => Effects.Count > 0 ? Effects.First().Description : ""; public override string Description => Effects.Count > 0 ? Effects.First().Description : "";
public override double MPCost => Level > 0 ? 90 + (95 * (Level - 1)) : 90; 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 CastTime => Level > 0 ? 4 + (1.5 * (Level - 1)) : 4;
public override double HardnessTime { get; set; } = 5; public override double HardnessTime { get; set; } = 5;
public override bool CanSelectSelf => true; public override bool CanSelectSelf => true;

View File

@ -10,7 +10,7 @@ namespace Oshima.FunGame.OshimaModules.Skills
public override string Name => "苍白地狱"; public override string Name => "苍白地狱";
public override string Description => Effects.Count > 0 ? Effects.First().Description : ""; public override string Description => Effects.Count > 0 ? Effects.First().Description : "";
public override double MPCost => Level > 0 ? 45 + (55 * (Level - 1)) : 45; 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 CastTime => 9;
public override double HardnessTime { get; set; } = 3; public override double HardnessTime { get; set; } = 3;
public override int CanSelectTargetCount => 3; public override int CanSelectTargetCount => 3;

View File

@ -10,8 +10,9 @@ namespace Oshima.FunGame.OshimaModules.Skills
public override string Name => "虚弱领域"; public override string Name => "虚弱领域";
public override string Description => Effects.Count > 0 ? string.Join("\r\n", Effects.Select(e => e.Description)) : ""; 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 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 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 CastTime => 8;
public override double HardnessTime { get; set; } = 3; public override double HardnessTime { get; set; } = 3;
public override bool SelectAllEnemies => true; public override bool SelectAllEnemies => true;

View File

@ -11,7 +11,7 @@ namespace Oshima.FunGame.OshimaModules.Skills
public override string Description => string.Join("", Effects.Select(e => e.Description)); public override string Description => string.Join("", Effects.Select(e => e.Description));
public override string DispelDescription => "被驱散性:冻结需强驱散,易伤可弱驱散"; public override string DispelDescription => "被驱散性:冻结需强驱散,易伤可弱驱散";
public override double MPCost => Level > 0 ? 80 + (75 * (Level - 1)) : 80; 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 CastTime => 9;
public override double HardnessTime { get; set; } = 6; public override double HardnessTime { get; set; } = 6;
public override int CanSelectTargetCount public override int CanSelectTargetCount
@ -20,20 +20,21 @@ namespace Oshima.FunGame.OshimaModules.Skills
{ {
return Level switch return Level switch
{ {
4 => 2, 4 or 5 or 6 => 2,
5 => 2, 7 or 8 => 3,
6 => 2,
7 => 3,
8 => 3,
_ => 1 _ => 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) 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, 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)); Effects.Add(new (this, EffectType.Vulnerable, false, 0, 3, 0, 0.45, 0.05, DamageType.Magical, 0.3));
} }
} }

View File

@ -11,8 +11,9 @@ namespace Oshima.FunGame.OshimaModules.Skills
public override string Name => "银色荆棘"; public override string Name => "银色荆棘";
public override string Description => Effects.Count > 0 ? Effects.First().Description : ""; public override string Description => Effects.Count > 0 ? Effects.First().Description : "";
public override string DispelDescription => Effects.Count > 0 ? Effects.First().DispelDescription : ""; 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 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 CastTime => 12;
public override double HardnessTime { get; set; } = 5; public override double HardnessTime { get; set; } = 5;
public override int CanSelectTargetCount public override int CanSelectTargetCount
@ -45,6 +46,7 @@ namespace Oshima.FunGame.OshimaModules.Skills
$"随后 {ActualConfusionProbability * 100:0.##}% 概率对目标施加混乱状态,持续 {持续时间}。混乱:进入行动受限状态,失控并随机行动,且在进行攻击指令时,可能会选取友方角色为目标。"; $"随后 {ActualConfusionProbability * 100:0.##}% 概率对目标施加混乱状态,持续 {持续时间}。混乱:进入行动受限状态,失控并随机行动,且在进行攻击指令时,可能会选取友方角色为目标。";
public override DispelledType DispelledType => DispelledType.Strong; public override DispelledType DispelledType => DispelledType.Strong;
public override EffectType EffectType => EffectType.Confusion; 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 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); private double => _durative && _duration > 0 ? _duration + _levelGrowth * (Level - 1) : (!_durative && _durationTurn > 0 ? _durationTurn + _levelGrowth * (Level - 1) : 0);

View File

@ -11,7 +11,7 @@ namespace Oshima.FunGame.OshimaModules.Skills
public override string Name => "风之守护"; public override string Name => "风之守护";
public override string Description => Effects.Count > 0 ? Effects.First().Description : ""; public override string Description => Effects.Count > 0 ? Effects.First().Description : "";
public override double MPCost => Level > 0 ? 75 + (80 * (Level - 1)) : 75; 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 CastTime => Level > 0 ? 4 + (1 * (Level - 1)) : 4;
public override double HardnessTime { get; set; } = 3; public override double HardnessTime { get; set; } = 3;
public override bool CanSelectSelf => true; public override bool CanSelectSelf => true;

View File

@ -11,7 +11,7 @@ namespace Oshima.FunGame.OshimaModules.Skills
public override string Name => "风之守护·复"; public override string Name => "风之守护·复";
public override string Description => Effects.Count > 0 ? Effects.First().Description : ""; public override string Description => Effects.Count > 0 ? Effects.First().Description : "";
public override double MPCost => Level > 0 ? 85 + (90 * (Level - 1)) : 85; 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 CastTime => Level > 0 ? 4 + (1.5 * (Level - 1)) : 4;
public override double HardnessTime { get; set; } = 6; public override double HardnessTime { get; set; } = 6;
public override bool CanSelectSelf => true; public override bool CanSelectSelf => true;

View File

@ -10,8 +10,9 @@ namespace Oshima.FunGame.OshimaModules.Skills
public override string Name => "鬼魅之痛"; public override string Name => "鬼魅之痛";
public override string Description => string.Join("", Effects.Select(e => e.Description)); 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 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 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 CastTime => 9;
public override double HardnessTime { get; set; } = 7; public override double HardnessTime { get; set; } = 7;
public override int CanSelectTargetCount public override int CanSelectTargetCount