mirror of
https://github.com/oshima-studios/OshimaGameModule.git
synced 2026-01-20 06:28:21 +00:00
完善魔法效能
This commit is contained in:
parent
86b86a19e2
commit
b76b263913
@ -45,7 +45,7 @@ namespace Oshima.FunGame.OshimaModules.Effects.PassiveEffects
|
||||
return 0;
|
||||
}
|
||||
List<Character> teammates = GamingQueue.GetTeammates(character);
|
||||
if ((character == Source || teammates.Contains(Source)) && enemy.Effects.Any(e => e is 时雨标记))
|
||||
if ((character == Source || teammates.Contains(Source)) && character.Effects.Any(e => e is 时雨标记) && enemy.Effects.Any(e => e is 时雨标记))
|
||||
{
|
||||
double bonus = damage * 0.25;
|
||||
WriteLine($"[ {character} ] 受到了{nameof(时雨标记)}的影响,伤害提高了 {bonus:0.##} 点!");
|
||||
|
||||
@ -84,7 +84,7 @@ namespace Oshima.FunGame.OshimaModules.Effects.PassiveEffects
|
||||
Source.Effects.Add(e);
|
||||
WriteLine($"[ {Source} ] 复制了 [ {killer} ] 的技能:{LastSkill.Name}!!");
|
||||
}
|
||||
if (killer.Effects.FirstOrDefault(e => e is 时雨标记) is 时雨标记 e2)
|
||||
if (killer.Effects.FirstOrDefault(e => e is 时雨标记 && e.Source == Source) is 时雨标记 e2)
|
||||
{
|
||||
e2.RemainDurationTurn = 3;
|
||||
}
|
||||
|
||||
@ -15,7 +15,7 @@ namespace Oshima.FunGame.OshimaModules.Effects.SkillEffects
|
||||
|
||||
private ImmuneType ImmuneType { get; set; } = ImmuneType.None;
|
||||
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) * MagicEfficacy) : (!_durative && _durationTurn > 0 ? ((int)Math.Round(_durationTurn + _levelGrowth * (Level - 1) * MagicEfficacy, 0, MidpointRounding.ToPositiveInfinity)) : 0);
|
||||
private DispelledType _dispelledType = DispelledType.Weak;
|
||||
private readonly bool _durative;
|
||||
private readonly double _duration;
|
||||
|
||||
@ -14,7 +14,7 @@ namespace Oshima.FunGame.OshimaModules.Effects.SkillEffects
|
||||
public override DispelType DispelType => DispelType.DurativeWeak;
|
||||
|
||||
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) * MagicEfficacy) : (!_durative && _durationTurn > 0 ? ((int)Math.Round(_durationTurn + _levelGrowth * (Level - 1) * MagicEfficacy, 0, MidpointRounding.ToPositiveInfinity)) : 0);
|
||||
private readonly bool _durativeWithoutDuration;
|
||||
private readonly string _durationString;
|
||||
private readonly bool _durative;
|
||||
@ -51,7 +51,7 @@ namespace Oshima.FunGame.OshimaModules.Effects.SkillEffects
|
||||
{
|
||||
isDebuff = false;
|
||||
}
|
||||
if (target.Effects.FirstOrDefault(e => e is 持续性弱驱散) is 持续性弱驱散 e && e.DurativeWithoutDuration == _durativeWithoutDuration && e.Durative == _durative && e.IsDebuff == isDebuff)
|
||||
if (target.Effects.FirstOrDefault(e => e is 持续性弱驱散 && e.Source == Source) is 持续性弱驱散 e && e.DurativeWithoutDuration == _durativeWithoutDuration && e.Durative == _durative && e.IsDebuff == isDebuff)
|
||||
{
|
||||
if (_duration > e.Duration) e.Duration = _duration;
|
||||
if (_durationTurn > e.DurationTurn) e.DurationTurn = _durationTurn;
|
||||
|
||||
@ -14,7 +14,7 @@ namespace Oshima.FunGame.OshimaModules.Effects.SkillEffects
|
||||
public override DispelType DispelType => DispelType.DurativeStrong;
|
||||
|
||||
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) * MagicEfficacy) : (!_durative && _durationTurn > 0 ? ((int)Math.Round(_durationTurn + _levelGrowth * (Level - 1) * MagicEfficacy, 0, MidpointRounding.ToPositiveInfinity)) : 0);
|
||||
private readonly bool _durativeWithoutDuration;
|
||||
private readonly string _durationString;
|
||||
private readonly bool _durative;
|
||||
@ -51,7 +51,7 @@ namespace Oshima.FunGame.OshimaModules.Effects.SkillEffects
|
||||
{
|
||||
isDebuff = false;
|
||||
}
|
||||
if (target.Effects.FirstOrDefault(e => e is 持续性强驱散) is 持续性强驱散 e && e.DurativeWithoutDuration == _durativeWithoutDuration && e.Durative == _durative && e.IsDebuff == isDebuff)
|
||||
if (target.Effects.FirstOrDefault(e => e is 持续性强驱散 && e.Source == Source) is 持续性强驱散 e && e.DurativeWithoutDuration == _durativeWithoutDuration && e.Durative == _durative && e.IsDebuff == isDebuff)
|
||||
{
|
||||
if (_duration > e.Duration) e.Duration = _duration;
|
||||
if (_durationTurn > e.DurationTurn) e.DurationTurn = _durationTurn;
|
||||
|
||||
@ -1,5 +1,4 @@
|
||||
using Milimoe.FunGame.Core.Entity;
|
||||
using Milimoe.FunGame.Core.Interface.Entity;
|
||||
using Milimoe.FunGame.Core.Library.Common.Addon;
|
||||
using Milimoe.FunGame.Core.Library.Constant;
|
||||
using Oshima.FunGame.OshimaModules.Effects.PassiveEffects;
|
||||
@ -23,9 +22,9 @@ namespace Oshima.FunGame.OshimaModules.Effects.SkillEffects
|
||||
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) * MagicEfficacy) : _probability;
|
||||
private string 持续时间 => _durative && _duration > 0 ? $"{实际持续时间: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) * MagicEfficacy) : (!_durative && _durationTurn > 0 ? ((int)Math.Round(_durationTurn + _levelGrowth * (Level - 1) * MagicEfficacy, 0, MidpointRounding.ToPositiveInfinity)) : 0);
|
||||
private readonly EffectType _effectType;
|
||||
private readonly bool _durative;
|
||||
private readonly double _duration;
|
||||
|
||||
@ -68,7 +68,7 @@ namespace Oshima.FunGame.OshimaModules.Skills
|
||||
caster.Effects.Add(this);
|
||||
OnEffectGained(caster);
|
||||
}
|
||||
if (caster.Effects.FirstOrDefault(e => e is 雇佣兵团特效) is 雇佣兵团特效 e)
|
||||
if (caster.Effects.FirstOrDefault(e => e is 雇佣兵团特效 && e.Skill == Skill) is 雇佣兵团特效 e)
|
||||
{
|
||||
e.Skill.CurrentCD = 0;
|
||||
e.Skill.Enable = true;
|
||||
@ -116,7 +116,7 @@ namespace Oshima.FunGame.OshimaModules.Skills
|
||||
{
|
||||
return;
|
||||
}
|
||||
if (character.Effects.FirstOrDefault(e => e is 雇佣兵团特效) is 雇佣兵团特效 e)
|
||||
if (character.Effects.FirstOrDefault(e => e is 雇佣兵团特效 && e.Skill == Skill) is 雇佣兵团特效 e)
|
||||
{
|
||||
int count = e.雇佣兵团.Count;
|
||||
实际攻击力提升 = 攻击力 * count;
|
||||
|
||||
@ -1,5 +1,4 @@
|
||||
using Milimoe.FunGame.Core.Entity;
|
||||
using Milimoe.FunGame.Core.Interface.Entity;
|
||||
using Milimoe.FunGame.Core.Library.Common.Addon;
|
||||
using Milimoe.FunGame.Core.Library.Constant;
|
||||
using Oshima.FunGame.OshimaModules.Models;
|
||||
@ -39,6 +38,20 @@ namespace Oshima.FunGame.OshimaModules.Skills
|
||||
public const double 攻击力比例 = 0.6;
|
||||
public const double 生命流失 = 0.09;
|
||||
|
||||
private bool 激活 = false;
|
||||
|
||||
public override void OnGameStart()
|
||||
{
|
||||
if (!激活)
|
||||
{
|
||||
激活 = true;
|
||||
if (Skill.Character != null)
|
||||
{
|
||||
保底补充(Skill.Character);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public override void AfterDeathCalculation(Character death, bool hasMaster, Character? killer, Dictionary<Character, int> continuousKilling, Dictionary<Character, int> earnedMoney, Character[] assists)
|
||||
{
|
||||
if (death is 雇佣兵 gyb)
|
||||
@ -63,11 +76,6 @@ namespace Oshima.FunGame.OshimaModules.Skills
|
||||
}
|
||||
}
|
||||
|
||||
public override void OnTurnStart(Character character, List<Character> enemys, List<Character> teammates, List<Skill> skills, List<Item> items)
|
||||
{
|
||||
保底补充(character);
|
||||
}
|
||||
|
||||
public override void OnTimeElapsed(Character character, double elapsed)
|
||||
{
|
||||
if (character == Skill.Character)
|
||||
@ -104,6 +112,7 @@ namespace Oshima.FunGame.OshimaModules.Skills
|
||||
|
||||
public void 保底补充(Character character)
|
||||
{
|
||||
if (!激活) return;
|
||||
int count = 雇佣兵团.Count;
|
||||
if (count < 最小数量 && Skill.Enable)
|
||||
{
|
||||
|
||||
@ -50,7 +50,7 @@ namespace Oshima.FunGame.OshimaModules.Skills
|
||||
public override void OnEffectGained(Character character)
|
||||
{
|
||||
IEnumerable<Effect> effects = character.Effects.Where(e => e is 灵能反射特效);
|
||||
if (effects.Any() && effects.First() is 灵能反射特效 e)
|
||||
if (effects.Any() && effects.First() is 灵能反射特效 e && e.Skill == Skill)
|
||||
{
|
||||
e.是否支持普攻 = true;
|
||||
e.触发硬直次数 = 3;
|
||||
@ -61,7 +61,7 @@ namespace Oshima.FunGame.OshimaModules.Skills
|
||||
public override void OnEffectLost(Character character)
|
||||
{
|
||||
IEnumerable<Effect> effects = character.Effects.Where(e => e is 灵能反射特效);
|
||||
if (effects.Any() && effects.First() is 灵能反射特效 e)
|
||||
if (effects.Any() && effects.First() is 灵能反射特效 e && e.Skill == Skill)
|
||||
{
|
||||
e.是否支持普攻 = false;
|
||||
e.触发硬直次数 = 2;
|
||||
|
||||
@ -49,7 +49,7 @@ namespace Oshima.FunGame.OshimaModules.Skills
|
||||
}
|
||||
WriteLine($"[ {character} ] 发动了灵能反射!额外获得了 {实际获得能量值:0.##} 能量,并消除了 2 {GameplayEquilibriumConstant.InGameTime}冷却时间!");
|
||||
IEnumerable<Effect> effects = character.Effects.Where(e => e is 三相灵枢特效);
|
||||
if (effects.Any() && effects.First() is 三相灵枢特效 e)
|
||||
if (effects.Any() && effects.First() is 三相灵枢特效 e && e.Skill == Skill)
|
||||
{
|
||||
double 获得的魔法值 = 实际获得能量值 * 3;
|
||||
character.MP += 获得的魔法值;
|
||||
@ -92,7 +92,7 @@ namespace Oshima.FunGame.OshimaModules.Skills
|
||||
{
|
||||
释放次数 = 0;
|
||||
IEnumerable<Effect> effects = character.Effects.Where(e => e is 三相灵枢特效);
|
||||
if (effects.Any() && effects.First() is 三相灵枢特效 e)
|
||||
if (effects.Any() && effects.First() is 三相灵枢特效 e && e.Skill == Skill)
|
||||
{
|
||||
baseHardnessTime = 0;
|
||||
isCheckProtected = false;
|
||||
|
||||
@ -77,7 +77,7 @@ namespace Oshima.FunGame.OshimaModules.Skills
|
||||
}
|
||||
}
|
||||
|
||||
if (character == Skill.Character && (damageResult == DamageResult.Normal || damageResult == DamageResult.Critical) && enemy.Effects.FirstOrDefault(e => e is 海王星的野望标记) is 海王星的野望标记 e)
|
||||
if (character == Skill.Character && (damageResult == DamageResult.Normal || damageResult == DamageResult.Critical) && enemy.Effects.FirstOrDefault(e => e is 海王星的野望标记 && e.Skill == Skill) is 海王星的野望标记 e)
|
||||
{
|
||||
分裂伤害(character, enemy, actualDamage, damageType, magicType);
|
||||
}
|
||||
@ -124,7 +124,7 @@ namespace Oshima.FunGame.OshimaModules.Skills
|
||||
if (GamingQueue != null)
|
||||
{
|
||||
allEnemys = [.. GamingQueue.GetEnemies(character).Where(c => c != character && c != enemy && !targets.Contains(c) && c.HP > 0)];
|
||||
targets.AddRange(allEnemys.Where(c => c.Effects.Any(e => e is 海王星的野望标记)).Take(count));
|
||||
targets.AddRange(allEnemys.Where(c => c.Effects.Any(e => e is 海王星的野望标记 && e.Source == character)).Take(count));
|
||||
if (targets.Count < 3)
|
||||
{
|
||||
count = 3 - targets.Count;
|
||||
|
||||
@ -54,7 +54,7 @@ namespace Oshima.FunGame.OshimaModules.Skills
|
||||
|
||||
public override void AfterDamageCalculation(Character character, Character enemy, double damage, double actualDamage, bool isNormalAttack, DamageType damageType, MagicType magicType, DamageResult damageResult)
|
||||
{
|
||||
if (character == Skill.Character && 野望 != null && (damageResult == DamageResult.Normal || damageResult == DamageResult.Critical) && enemy.Effects.FirstOrDefault(e => e is 海王星的野望标记) is 海王星的野望标记 e)
|
||||
if (character == Skill.Character && 野望 != null && (damageResult == DamageResult.Normal || damageResult == DamageResult.Critical) && enemy.Effects.FirstOrDefault(e => e is 海王星的野望标记 && e.Skill == Skill) is 海王星的野望标记 e)
|
||||
{
|
||||
野望.分裂伤害(character, enemy, actualDamage, damageType, magicType);
|
||||
}
|
||||
|
||||
@ -145,7 +145,7 @@ namespace Oshima.FunGame.OshimaModules.Skills
|
||||
|
||||
public override void OnSkillCasted(Character caster, List<Character> targets, List<Grid> grids, Dictionary<string, object> others)
|
||||
{
|
||||
IEnumerable<Effect> effects = caster.Effects.Where(e => e is 双生流转特效);
|
||||
IEnumerable<Effect> effects = caster.Effects.Where(e => e is 双生流转特效 && e.Skill.Character == Skill.Character);
|
||||
if (effects.Any())
|
||||
{
|
||||
if (caster.Effects.Contains(this))
|
||||
|
||||
@ -1,6 +1,5 @@
|
||||
using Milimoe.FunGame.Core.Entity;
|
||||
using Milimoe.FunGame.Core.Library.Constant;
|
||||
using Milimoe.FunGame.Core.Model;
|
||||
using Oshima.FunGame.OshimaModules.Effects.PassiveEffects;
|
||||
|
||||
namespace Oshima.FunGame.OshimaModules.Skills
|
||||
@ -26,13 +25,13 @@ namespace Oshima.FunGame.OshimaModules.Skills
|
||||
{
|
||||
public override long Id => Skill.Id;
|
||||
public override string Name => Skill.Name;
|
||||
public override string Description => $"{Skill.SkillOwner()}在其首个可行动回合的开始阶段进入 [ {nameof(长期监视)} ] 状态,时刻监视着场上的一举一动。当场上有角色死亡时,如果该角色死于技能,则{Skill.SkillOwner()}复制该技能获得使用权,持续 3 回合;如果该角色死于普通攻击,则{Skill.SkillOwner()}的普通攻击将转为魔法伤害并且无视闪避,持续 3 回合。" +
|
||||
public override string Description => $"{Skill.SkillOwner()}在游戏开始时进入 [ {nameof(长期监视)} ] 状态,时刻监视着场上的一举一动。当场上有角色死亡时,如果该角色死于技能,则{Skill.SkillOwner()}复制该技能获得使用权,持续 3 回合;如果该角色死于普通攻击,则{Skill.SkillOwner()}的普通攻击将转为魔法伤害并且无视闪避,持续 3 回合。" +
|
||||
$"接着,{Skill.SkillOwner()}给予击杀者 [ {nameof(时雨标记)} ]。{Skill.SkillOwner()}在造成魔法伤害时,会基于伤害值的 15% 治疗持有标记的友方角色;{Skill.SkillOwner()}与所有持有标记的友方角色对持有标记的敌方角色的伤害加成提升 25%,并且使持有标记的敌方角色在持续时间内的回合开始阶段,有 65% 概率陷入混乱。" +
|
||||
$"混乱:进入行动受限状态,失控并随机行动,且在进行攻击指令时,可能会选取友方角色为目标。时雨标记持续 3 回合。";
|
||||
|
||||
private bool 激活 = false;
|
||||
|
||||
public override void OnTurnStart(Character character, List<Character> enemys, List<Character> teammates, List<Skill> skills, List<Item> items)
|
||||
public override void OnGameStart()
|
||||
{
|
||||
if (!激活)
|
||||
{
|
||||
@ -55,11 +54,11 @@ namespace Oshima.FunGame.OshimaModules.Skills
|
||||
{
|
||||
return;
|
||||
}
|
||||
Character[] characters = [.. GamingQueue.GetTeammates(character).Where(c => c.Effects.Any(e => e is 时雨标记))];
|
||||
Character[] characters = [.. GamingQueue.GetTeammates(character).Where(c => c.Effects.Any(e => e is 时雨标记 && e.Source == character))];
|
||||
if (characters.Length > 0)
|
||||
{
|
||||
WriteLine($"[ {character} ] 发动了开宫!");
|
||||
double heal = actualDamage * 0.5;
|
||||
double heal = actualDamage * 0.15;
|
||||
foreach (Character target in characters)
|
||||
{
|
||||
HealToTarget(character, target, heal);
|
||||
@ -79,7 +78,7 @@ namespace Oshima.FunGame.OshimaModules.Skills
|
||||
{
|
||||
continue;
|
||||
}
|
||||
if (!character.Effects.Any(e => e is 长期监视))
|
||||
if (!character.Effects.Any(e => e is 长期监视 && e.Source == Skill.Character))
|
||||
{
|
||||
Effect e = new 长期监视(Skill, Skill.Character, character);
|
||||
character.Effects.Add(e);
|
||||
|
||||
@ -41,7 +41,7 @@ namespace Oshima.FunGame.OshimaModules.Skills
|
||||
|
||||
public override bool BeforeSkillCasted(Character caster, Skill skill, List<Character> targets, List<Grid> grids, Dictionary<string, object> others)
|
||||
{
|
||||
if (Skill.Character != null && caster.Effects.FirstOrDefault(e => e is 宫监手标记) is 宫监手标记 effect)
|
||||
if (Skill.Character != null && caster.Effects.FirstOrDefault(e => e is 宫监手标记 && e.Source == Source) is 宫监手标记 effect)
|
||||
{
|
||||
WriteLine($"[ {Skill.Character} ] 高声呼喊:“宫监手,放监!”");
|
||||
复制技能 e = new(Skill, Skill.Character, skill)
|
||||
@ -100,7 +100,7 @@ namespace Oshima.FunGame.OshimaModules.Skills
|
||||
List<Character> enemies = GamingQueue.GetEnemies(caster);
|
||||
foreach (Character character in GamingQueue.Queue)
|
||||
{
|
||||
if (character.Effects.FirstOrDefault(e => e is 时雨标记) is 时雨标记 e)
|
||||
if (character.Effects.FirstOrDefault(e => e is 时雨标记 && e.Source == caster) is 时雨标记 e)
|
||||
{
|
||||
e.DispelledType = DispelledType.CannotBeDispelled;
|
||||
e.RemainDurationTurn = 3;
|
||||
|
||||
@ -35,7 +35,7 @@ namespace Oshima.FunGame.OshimaModules.Skills
|
||||
public override DispelledType DispelledType => DispelledType.Weak;
|
||||
|
||||
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) * MagicEfficacy) : (!_durative && _durationTurn > 0 ? ((int)Math.Round(_durationTurn + _levelGrowth * (Level - 1) * MagicEfficacy, 0, MidpointRounding.ToPositiveInfinity)) : 0);
|
||||
|
||||
private readonly bool _durative = false;
|
||||
private readonly double _duration = 0;
|
||||
|
||||
@ -36,7 +36,7 @@ namespace Oshima.FunGame.OshimaModules.Skills
|
||||
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);
|
||||
private double 实际持续时间 => _durative && _duration > 0 ? (_duration + _levelGrowth * (Level - 1) * MagicEfficacy) : (!_durative && _durationTurn > 0 ? ((int)Math.Round(_durationTurn + _levelGrowth * (Level - 1) * MagicEfficacy, 0, MidpointRounding.ToPositiveInfinity)) : 0);
|
||||
|
||||
private readonly bool _durative = false;
|
||||
private readonly double _duration = 0;
|
||||
|
||||
@ -19,7 +19,7 @@ namespace Oshima.FunGame.OshimaModules.Skills
|
||||
{
|
||||
CastRange = 4;
|
||||
Effects.Add(new 基于攻击力的伤害_带基础伤害(this, 60, 45, 0.065, 0.035, DamageType.Physical));
|
||||
Effects.Add(new 施加概率负面(this, EffectType.Cripple, false, 0, 1, 0, 0.45, 0.05));
|
||||
Effects.Add(new 施加概率负面(this, EffectType.Cripple, false, 0, 1, 0, 0.2, 0.03));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -19,7 +19,7 @@ namespace Oshima.FunGame.OshimaModules.Skills
|
||||
ExemptionDescription = $"迟滞{SkillSet.GetExemptionDescription(EffectType.Delay)}\r\n混乱{SkillSet.GetExemptionDescription(EffectType.Confusion)}";
|
||||
CastRange = 4;
|
||||
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.2, 0.03));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -51,6 +51,7 @@ namespace Oshima.FunGame.OshimaModules.Skills
|
||||
public override bool IsNonDirectional => true;
|
||||
public override SkillRangeType SkillRangeType => SkillRangeType.Circle;
|
||||
public override int CanSelectTargetRange => 3;
|
||||
public override double MagicBottleneck => 13 + 14 * (Level - 1);
|
||||
|
||||
public 反魔法领域(Character? character = null) : base(SkillType.Magic, character)
|
||||
{
|
||||
|
||||
@ -17,6 +17,7 @@ namespace Oshima.FunGame.OshimaModules.Skills
|
||||
public override bool CanSelectEnemy => false;
|
||||
public override bool CanSelectTeammate => true;
|
||||
public override int CanSelectTargetCount => 1;
|
||||
public override double MagicBottleneck => 11 + 12 * (Level - 1);
|
||||
|
||||
public 回复术(Character? character = null) : base(SkillType.Magic, character)
|
||||
{
|
||||
|
||||
@ -32,6 +32,7 @@ namespace Oshima.FunGame.OshimaModules.Skills
|
||||
};
|
||||
}
|
||||
}
|
||||
public override double MagicBottleneck => 13 + 14 * (Level - 1);
|
||||
|
||||
public 回复术复(Character? character = null) : base(SkillType.Magic, character)
|
||||
{
|
||||
|
||||
@ -17,6 +17,7 @@ namespace Oshima.FunGame.OshimaModules.Skills
|
||||
public override bool CanSelectEnemy => false;
|
||||
public override bool CanSelectTeammate => true;
|
||||
public override int CanSelectTargetCount => 1;
|
||||
public override double MagicBottleneck => 14 + 15 * (Level - 1);
|
||||
|
||||
public 回复术改(Character? character = null) : base(SkillType.Magic, character)
|
||||
{
|
||||
|
||||
@ -19,6 +19,7 @@ namespace Oshima.FunGame.OshimaModules.Skills
|
||||
public override bool CanSelectTeammate => true;
|
||||
public override bool SelectAllTeammates => true;
|
||||
public override bool AllowSelectDead => true;
|
||||
public override double MagicBottleneck => 15 + 16 * (Level - 1);
|
||||
|
||||
public 圣灵术(Character? character = null) : base(SkillType.Magic, character)
|
||||
{
|
||||
|
||||
@ -38,7 +38,7 @@ namespace Oshima.FunGame.OshimaModules.Skills
|
||||
public 地狱之门(Character? character = null) : base(SkillType.Magic, character)
|
||||
{
|
||||
Effects.Add(new 纯数值伤害(this, 75, 15, DamageType.Magical));
|
||||
Effects.Add(new 施加概率负面(this, EffectType.Bleed, true, 3, 0, 0.5, 0.45, 0.05, false, 85.0));
|
||||
Effects.Add(new 施加概率负面(this, EffectType.Bleed, true, 3, 0, 0.5, 0.2, 0.03, false, 85.0));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -19,6 +19,7 @@ namespace Oshima.FunGame.OshimaModules.Skills
|
||||
public override bool CanSelectTeammate => true;
|
||||
public override int CanSelectTargetCount => 1;
|
||||
public override bool AllowSelectDead => true;
|
||||
public override double MagicBottleneck => 14 + 15 * (Level - 1);
|
||||
|
||||
public 复苏术(Character? character = null) : base(SkillType.Magic, character)
|
||||
{
|
||||
|
||||
@ -71,6 +71,7 @@ namespace Oshima.FunGame.OshimaModules.Skills
|
||||
public override bool IsNonDirectional => true;
|
||||
public override SkillRangeType SkillRangeType => SkillRangeType.Circle;
|
||||
public override int CanSelectTargetRange => 3;
|
||||
public override double MagicBottleneck => 12 + 13 * (Level - 1);
|
||||
|
||||
public 大地之墙(Character? character = null) : base(SkillType.Magic, character)
|
||||
{
|
||||
|
||||
@ -21,7 +21,7 @@ namespace Oshima.FunGame.OshimaModules.Skills
|
||||
public 导力停止(Character? character = null) : base(SkillType.Magic, character)
|
||||
{
|
||||
Effects.Add(new 纯数值伤害(this, 45, 20, DamageType.Magical));
|
||||
Effects.Add(new 施加概率负面(this, EffectType.Silence, true, 8, 0, 1.2, 0.45, 0.05));
|
||||
Effects.Add(new 施加概率负面(this, EffectType.Silence, true, 8, 0, 1.2, 0.2, 0.03));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -17,6 +17,7 @@ namespace Oshima.FunGame.OshimaModules.Skills
|
||||
public override bool IsNonDirectional => true;
|
||||
public override SkillRangeType SkillRangeType => SkillRangeType.Circle;
|
||||
public override int CanSelectTargetRange => 3;
|
||||
public override double MagicBottleneck => 12 + 13 * (Level - 1);
|
||||
|
||||
public 弧光消耗(Character? character = null) : base(SkillType.Magic, character)
|
||||
{
|
||||
|
||||
@ -18,6 +18,7 @@ namespace Oshima.FunGame.OshimaModules.Skills
|
||||
public override bool CanSelectEnemy => false;
|
||||
public override bool CanSelectTeammate => true;
|
||||
public override int CanSelectTargetCount => 1;
|
||||
public override double MagicBottleneck => 12 + 13 * (Level - 1);
|
||||
|
||||
public 强音之力(Character? character = null) : base(SkillType.Magic, character)
|
||||
{
|
||||
@ -34,7 +35,7 @@ namespace Oshima.FunGame.OshimaModules.Skills
|
||||
public override DispelledType DispelledType => DispelledType.Weak;
|
||||
|
||||
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) * MagicEfficacy) : (!_durative && _durationTurn > 0 ? ((int)Math.Round(_durationTurn + _levelGrowth * (Level - 1) * MagicEfficacy, 0, MidpointRounding.ToPositiveInfinity)) : 0);
|
||||
|
||||
private readonly bool _durative;
|
||||
private readonly double _duration;
|
||||
|
||||
@ -33,6 +33,7 @@ namespace Oshima.FunGame.OshimaModules.Skills
|
||||
};
|
||||
}
|
||||
}
|
||||
public override double MagicBottleneck => 14 + 15 * (Level - 1);
|
||||
|
||||
public 强音之力复(Character? character = null) : base(SkillType.Magic, character)
|
||||
{
|
||||
@ -49,7 +50,7 @@ namespace Oshima.FunGame.OshimaModules.Skills
|
||||
public override DispelledType DispelledType => DispelledType.Weak;
|
||||
|
||||
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) * MagicEfficacy) : (!_durative && _durationTurn > 0 ? ((int)Math.Round(_durationTurn + _levelGrowth * (Level - 1) * MagicEfficacy, 0, MidpointRounding.ToPositiveInfinity)) : 0);
|
||||
|
||||
private readonly bool _durative;
|
||||
private readonly double _duration;
|
||||
|
||||
@ -14,6 +14,7 @@ namespace Oshima.FunGame.OshimaModules.Skills
|
||||
public override double CD => Level > 0 ? 28 - (1 * (Level - 1)) : 28;
|
||||
public override double CastTime => Level > 0 ? 2 + (2 * (Level - 1)) : 2;
|
||||
public override double HardnessTime { get; set; } = 5;
|
||||
public override double MagicBottleneck => 12 + 13 * (Level - 1);
|
||||
|
||||
public 时间减速(Character? character = null) : base(SkillType.Magic, character)
|
||||
{
|
||||
|
||||
@ -31,6 +31,7 @@ namespace Oshima.FunGame.OshimaModules.Skills
|
||||
};
|
||||
}
|
||||
}
|
||||
public override double MagicBottleneck => 14 + 14 * (Level - 1);
|
||||
|
||||
public 时间减速复(Character? character = null) : base(SkillType.Magic, character)
|
||||
{
|
||||
@ -50,7 +51,7 @@ namespace Oshima.FunGame.OshimaModules.Skills
|
||||
public override bool IsDebuff => 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);
|
||||
private double 实际持续时间 => _durative && _duration > 0 ? (_duration + _levelGrowth * (Level - 1) * MagicEfficacy) : (!_durative && _durationTurn > 0 ? ((int)Math.Round(_durationTurn + _levelGrowth * (Level - 1) * MagicEfficacy, 0, MidpointRounding.ToPositiveInfinity)) : 0);
|
||||
|
||||
private readonly bool _durative;
|
||||
private readonly double _duration;
|
||||
|
||||
@ -15,6 +15,7 @@ namespace Oshima.FunGame.OshimaModules.Skills
|
||||
public override double CD => Level > 0 ? 38 - (1 * (Level - 1)) : 38;
|
||||
public override double CastTime => Level > 0 ? 4 + (0.5 * (Level - 1)) : 4;
|
||||
public override double HardnessTime { get; set; } = 4;
|
||||
public override double MagicBottleneck => 15 + 15 * (Level - 1);
|
||||
|
||||
public 时间减速改(Character? character = null) : base(SkillType.Magic, character)
|
||||
{
|
||||
@ -34,7 +35,7 @@ namespace Oshima.FunGame.OshimaModules.Skills
|
||||
public override bool IsDebuff => 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);
|
||||
private double 实际持续时间 => _durative && _duration > 0 ? (_duration + _levelGrowth * (Level - 1) * MagicEfficacy) : (!_durative && _durationTurn > 0 ? ((int)Math.Round(_durationTurn + _levelGrowth * (Level - 1) * MagicEfficacy, 0, MidpointRounding.ToPositiveInfinity)) : 0);
|
||||
|
||||
private readonly bool _durative;
|
||||
private readonly double _duration;
|
||||
|
||||
@ -17,6 +17,7 @@ namespace Oshima.FunGame.OshimaModules.Skills
|
||||
public override bool CanSelectEnemy => false;
|
||||
public override bool CanSelectTeammate => true;
|
||||
public override int CanSelectTargetCount => 1;
|
||||
public override double MagicBottleneck => 12 + 13 * (Level - 1);
|
||||
|
||||
public 时间加速(Character? character = null) : base(SkillType.Magic, character)
|
||||
{
|
||||
|
||||
@ -33,6 +33,7 @@ namespace Oshima.FunGame.OshimaModules.Skills
|
||||
};
|
||||
}
|
||||
}
|
||||
public override double MagicBottleneck => 14 + 14 * (Level - 1);
|
||||
|
||||
public 时间加速复(Character? character = null) : base(SkillType.Magic, character)
|
||||
{
|
||||
@ -51,7 +52,7 @@ namespace Oshima.FunGame.OshimaModules.Skills
|
||||
public override bool IsDebuff => false;
|
||||
|
||||
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) * MagicEfficacy) : (!_durative && _durationTurn > 0 ? ((int)Math.Round(_durationTurn + _levelGrowth * (Level - 1) * MagicEfficacy, 0, MidpointRounding.ToPositiveInfinity)) : 0);
|
||||
|
||||
private readonly bool _durative;
|
||||
private readonly double _duration;
|
||||
|
||||
@ -17,6 +17,7 @@ namespace Oshima.FunGame.OshimaModules.Skills
|
||||
public override bool CanSelectSelf => true;
|
||||
public override bool CanSelectTeammate => true;
|
||||
public override bool CanSelectEnemy => false;
|
||||
public override double MagicBottleneck => 15 + 15 * (Level - 1);
|
||||
|
||||
public 时间加速改(Character? character = null) : base(SkillType.Magic, character)
|
||||
{
|
||||
@ -35,7 +36,7 @@ namespace Oshima.FunGame.OshimaModules.Skills
|
||||
public override bool IsDebuff => false;
|
||||
|
||||
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) * MagicEfficacy) : (!_durative && _durationTurn > 0 ? ((int)Math.Round(_durationTurn + _levelGrowth * (Level - 1) * MagicEfficacy, 0, MidpointRounding.ToPositiveInfinity)) : 0);
|
||||
|
||||
private readonly bool _durative;
|
||||
private readonly double _duration;
|
||||
|
||||
@ -19,6 +19,7 @@ namespace Oshima.FunGame.OshimaModules.Skills
|
||||
public override bool CanSelectEnemy => false;
|
||||
public override bool CanSelectTeammate => true;
|
||||
public override int CanSelectTargetCount => 1;
|
||||
public override double MagicBottleneck => 11 + 12 * (Level - 1);
|
||||
|
||||
public 根源屏障(Character? character = null) : base(SkillType.Magic, character)
|
||||
{
|
||||
|
||||
@ -35,7 +35,7 @@ namespace Oshima.FunGame.OshimaModules.Skills
|
||||
public 死亡咆哮(Character? character = null) : base(SkillType.Magic, character)
|
||||
{
|
||||
Effects.Add(new 纯数值伤害(this, 70, 30, DamageType.Magical));
|
||||
Effects.Add(new 施加概率负面(this, EffectType.Cripple, true, 3, 0, 1, 0.45, 0.05));
|
||||
Effects.Add(new 施加概率负面(this, EffectType.Cripple, true, 3, 0, 1, 0.2, 0.03));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -44,6 +44,7 @@ namespace Oshima.FunGame.OshimaModules.Skills
|
||||
};
|
||||
}
|
||||
}
|
||||
public override double MagicBottleneck => 12 + 13 * (Level - 1);
|
||||
private double 魔法消耗基础 { get; set; } = 65;
|
||||
private double 魔法消耗等级成长 { get; set; } = 65;
|
||||
|
||||
|
||||
@ -17,6 +17,7 @@ namespace Oshima.FunGame.OshimaModules.Skills
|
||||
public override bool CanSelectEnemy => false;
|
||||
public override bool CanSelectTeammate => true;
|
||||
public override int CanSelectTargetCount => 1;
|
||||
public override double MagicBottleneck => 12 + 13 * (Level - 1);
|
||||
|
||||
public 治愈术(Character? character = null) : base(SkillType.Magic, character)
|
||||
{
|
||||
|
||||
@ -35,6 +35,7 @@ namespace Oshima.FunGame.OshimaModules.Skills
|
||||
public override bool IsNonDirectional => true;
|
||||
public override SkillRangeType SkillRangeType => SkillRangeType.Circle;
|
||||
public override int CanSelectTargetRange => 3;
|
||||
public override double MagicBottleneck => 14 + 14 * (Level - 1);
|
||||
|
||||
public 治愈术复(Character? character = null) : base(SkillType.Magic, character)
|
||||
{
|
||||
|
||||
@ -52,7 +52,7 @@ namespace Oshima.FunGame.OshimaModules.Skills
|
||||
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);
|
||||
private double 实际持续时间 => _durative && _duration > 0 ? (_duration + _levelGrowth * (Level - 1) * MagicEfficacy) : (!_durative && _durationTurn > 0 ? ((int)Math.Round(_durationTurn + _levelGrowth * (Level - 1) * MagicEfficacy, 0, MidpointRounding.ToPositiveInfinity)) : 0);
|
||||
private readonly bool _durative;
|
||||
private readonly double _duration;
|
||||
private readonly int _durationTurn;
|
||||
|
||||
@ -19,6 +19,7 @@ namespace Oshima.FunGame.OshimaModules.Skills
|
||||
public override bool CanSelectEnemy => false;
|
||||
public override bool CanSelectTeammate => true;
|
||||
public override bool SelectAllTeammates => true;
|
||||
public override double MagicBottleneck => 14 + 15 * (Level - 1);
|
||||
|
||||
public 盖亚之盾(Character? character = null) : base(SkillType.Magic, character)
|
||||
{
|
||||
|
||||
@ -18,6 +18,7 @@ namespace Oshima.FunGame.OshimaModules.Skills
|
||||
public override bool CanSelectEnemy => false;
|
||||
public override bool CanSelectTeammate => true;
|
||||
public override int CanSelectTargetCount => 1;
|
||||
public override double MagicBottleneck => 12 + 13 * (Level - 1);
|
||||
|
||||
public 神圣祝福(Character? character = null) : base(SkillType.Magic, character)
|
||||
{
|
||||
@ -34,7 +35,7 @@ namespace Oshima.FunGame.OshimaModules.Skills
|
||||
public override DispelledType DispelledType => DispelledType.Weak;
|
||||
|
||||
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) * MagicEfficacy) : (!_durative && _durationTurn > 0 ? ((int)Math.Round(_durationTurn + _levelGrowth * (Level - 1) * MagicEfficacy, 0, MidpointRounding.ToPositiveInfinity)) : 0);
|
||||
|
||||
private readonly bool _durative;
|
||||
private readonly double _duration;
|
||||
|
||||
@ -33,6 +33,7 @@ namespace Oshima.FunGame.OshimaModules.Skills
|
||||
};
|
||||
}
|
||||
}
|
||||
public override double MagicBottleneck => 14 + 15 * (Level - 1);
|
||||
|
||||
public 神圣祝福复(Character? character = null) : base(SkillType.Magic, character)
|
||||
{
|
||||
@ -49,7 +50,7 @@ namespace Oshima.FunGame.OshimaModules.Skills
|
||||
public override DispelledType DispelledType => DispelledType.Weak;
|
||||
|
||||
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) * MagicEfficacy) : (!_durative && _durationTurn > 0 ? ((int)Math.Round(_durationTurn + _levelGrowth * (Level - 1) * MagicEfficacy, 0, MidpointRounding.ToPositiveInfinity)) : 0);
|
||||
|
||||
private readonly bool _durative;
|
||||
private readonly double _duration;
|
||||
|
||||
@ -35,7 +35,7 @@ namespace Oshima.FunGame.OshimaModules.Skills
|
||||
public 等离子之波(Character? character = null) : base(SkillType.Magic, character)
|
||||
{
|
||||
Effects.Add(new 纯数值伤害(this, 60, 20, DamageType.Magical));
|
||||
Effects.Add(new 施加概率负面(this, EffectType.Silence, false, 0, 2, 0, 0.45, 0.05));
|
||||
Effects.Add(new 施加概率负面(this, EffectType.Silence, false, 0, 2, 0, 0.2, 0.03));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -18,6 +18,7 @@ namespace Oshima.FunGame.OshimaModules.Skills
|
||||
public override bool CanSelectEnemy => false;
|
||||
public override bool CanSelectTeammate => true;
|
||||
public override int CanSelectTargetCount => 1;
|
||||
public override double MagicBottleneck => 12 + 13 * (Level - 1);
|
||||
|
||||
public 结晶防护(Character? character = null) : base(SkillType.Magic, character)
|
||||
{
|
||||
@ -34,7 +35,7 @@ namespace Oshima.FunGame.OshimaModules.Skills
|
||||
public override DispelledType DispelledType => DispelledType.Weak;
|
||||
|
||||
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) * MagicEfficacy) : (!_durative && _durationTurn > 0 ? ((int)Math.Round(_durationTurn + _levelGrowth * (Level - 1) * MagicEfficacy, 0, MidpointRounding.ToPositiveInfinity)) : 0);
|
||||
|
||||
private readonly bool _durative;
|
||||
private readonly double _duration;
|
||||
|
||||
@ -33,6 +33,7 @@ namespace Oshima.FunGame.OshimaModules.Skills
|
||||
};
|
||||
}
|
||||
}
|
||||
public override double MagicBottleneck => 14 + 15 * (Level - 1);
|
||||
|
||||
public 结晶防护复(Character? character = null) : base(SkillType.Magic, character)
|
||||
{
|
||||
@ -49,7 +50,7 @@ namespace Oshima.FunGame.OshimaModules.Skills
|
||||
public override DispelledType DispelledType => DispelledType.Weak;
|
||||
|
||||
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) * MagicEfficacy) : (!_durative && _durationTurn > 0 ? ((int)Math.Round(_durationTurn + _levelGrowth * (Level - 1) * MagicEfficacy, 0, MidpointRounding.ToPositiveInfinity)) : 0);
|
||||
|
||||
private readonly bool _durative;
|
||||
private readonly double _duration;
|
||||
|
||||
@ -35,8 +35,8 @@ namespace Oshima.FunGame.OshimaModules.Skills
|
||||
{
|
||||
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, 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.Freeze, false, 0, 1, 0, 0.2, 0.03));
|
||||
Effects.Add(new 施加概率负面(this, EffectType.Vulnerable, false, 0, 3, 0, 0.2, 0.03, DamageType.Magical, 0.3));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -35,7 +35,7 @@ namespace Oshima.FunGame.OshimaModules.Skills
|
||||
|
||||
public 银色荆棘(Character? character = null) : base(SkillType.Magic, character)
|
||||
{
|
||||
Effects.Add(new 银色荆棘特效(this, false, 0, 2, 0, 0.45, 0.05));
|
||||
Effects.Add(new 银色荆棘特效(this, false, 0, 2, 0, 0.2, 0.03));
|
||||
}
|
||||
}
|
||||
|
||||
@ -50,11 +50,11 @@ namespace Oshima.FunGame.OshimaModules.Skills
|
||||
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);
|
||||
private double 实际持续时间 => _durative && _duration > 0 ? (_duration + _levelGrowth * (Level - 1) * MagicEfficacy) : (!_durative && _durationTurn > 0 ? ((int)Math.Round(_durationTurn + _levelGrowth * (Level - 1) * MagicEfficacy, 0, MidpointRounding.ToPositiveInfinity)) : 0);
|
||||
private double Damage => Skill.Level > 0 ? 基础数值伤害 + 基础伤害等级成长 * (Skill.Level - 1) : 基础数值伤害;
|
||||
private double 基础数值伤害 { get; set; } = 50;
|
||||
private double 基础伤害等级成长 { get; set; } = 40;
|
||||
private double ActualConfusionProbability => Level > 0 ? _confusionProbability + _confusionProbabilityLevelGrowth * (Level - 1) : _confusionProbability;
|
||||
private double ActualConfusionProbability => Level > 0 ? (_confusionProbability + _confusionProbabilityLevelGrowth * (Level - 1) * MagicEfficacy) : _confusionProbability;
|
||||
private readonly bool _durative;
|
||||
private readonly double _duration;
|
||||
private readonly int _durationTurn;
|
||||
|
||||
@ -18,6 +18,7 @@ namespace Oshima.FunGame.OshimaModules.Skills
|
||||
public override bool CanSelectEnemy => false;
|
||||
public override bool CanSelectTeammate => true;
|
||||
public override int CanSelectTargetCount => 1;
|
||||
public override double MagicBottleneck => 13 + 14 * (Level - 1);
|
||||
|
||||
public 风之守护(Character? character = null) : base(SkillType.Magic, character)
|
||||
{
|
||||
@ -34,7 +35,7 @@ namespace Oshima.FunGame.OshimaModules.Skills
|
||||
public override DispelledType DispelledType => DispelledType.Weak;
|
||||
|
||||
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) * MagicEfficacy) : (!_durative && _durationTurn > 0 ? ((int)Math.Round(_durationTurn + _levelGrowth * (Level - 1) * MagicEfficacy, 0, MidpointRounding.ToPositiveInfinity)) : 0);
|
||||
|
||||
private readonly bool _durative;
|
||||
private readonly double _duration;
|
||||
|
||||
@ -33,6 +33,7 @@ namespace Oshima.FunGame.OshimaModules.Skills
|
||||
};
|
||||
}
|
||||
}
|
||||
public override double MagicBottleneck => 15 + 16 * (Level - 1);
|
||||
|
||||
public 风之守护复(Character? character = null) : base(SkillType.Magic, character)
|
||||
{
|
||||
@ -49,7 +50,7 @@ namespace Oshima.FunGame.OshimaModules.Skills
|
||||
public override DispelledType DispelledType => DispelledType.Weak;
|
||||
|
||||
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) * MagicEfficacy) : (!_durative && _durationTurn > 0 ? ((int)Math.Round(_durationTurn + _levelGrowth * (Level - 1) * MagicEfficacy, 0, MidpointRounding.ToPositiveInfinity)) : 0);
|
||||
|
||||
private readonly bool _durative;
|
||||
private readonly double _duration;
|
||||
|
||||
@ -35,7 +35,7 @@ namespace Oshima.FunGame.OshimaModules.Skills
|
||||
public 鬼魅之痛(Character? character = null) : base(SkillType.Magic, character)
|
||||
{
|
||||
Effects.Add(new 纯数值伤害(this, 65, 35, DamageType.Magical));
|
||||
Effects.Add(new 施加概率负面(this, EffectType.Stun, true, 6, 0, 0.7, 0.45, 0.05));
|
||||
Effects.Add(new 施加概率负面(this, EffectType.Stun, true, 6, 0, 0.7, 0.2, 0.03));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -591,7 +591,11 @@ namespace Oshima.FunGame.OshimaServers.Service
|
||||
realCharacter.EP += recoveryEP;
|
||||
}
|
||||
// 减少所有技能的冷却时间
|
||||
foreach (Skill skill in realCharacter.Skills)
|
||||
List<Skill> skills = [.. realCharacter.Skills.Union(realCharacter.Items.Where(i => i.Skills.Active != null).Select(i => i.Skills.Active!))];
|
||||
Milimoe.FunGame.Core.Model.GamingQueue.AddCharacterEquipSlotSkills(realCharacter, skills);
|
||||
foreach (Skill skill in skills)
|
||||
{
|
||||
if (skill.CurrentCD > 0)
|
||||
{
|
||||
skill.CurrentCD -= seconds;
|
||||
if (skill.CurrentCD <= 0)
|
||||
@ -600,6 +604,7 @@ namespace Oshima.FunGame.OshimaServers.Service
|
||||
skill.Enable = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
// 移除到时间的特效
|
||||
List<Effect> effects = [.. realCharacter.Effects];
|
||||
foreach (Effect effect in effects)
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user