diff --git a/OshimaCore/Utils/FunGameUtil.cs b/OshimaCore/Utils/FunGameUtil.cs index 7d5467b..cfd58b1 100644 --- a/OshimaCore/Utils/FunGameUtil.cs +++ b/OshimaCore/Utils/FunGameUtil.cs @@ -429,20 +429,33 @@ namespace Oshima.Core.Utils { foreach (Skill skill in skillRewards) { + Dictionary effectArgs = []; + if (RoundRewards.TryGetValue((EffectID)skill.Id, out Dictionary? dict) && dict != null) + { + effectArgs = new(dict); + } Dictionary args = new() { { "skill", skill }, - { "values", skill.Values } + { "values", effectArgs } }; skill.GamingQueue = actionQueue; - skill.Effects.Add(Factory.OpenFactory.GetInstance(skill.Id, "回合奖励", args)); + skill.Effects.Add(Factory.OpenFactory.GetInstance(skill.Id, "", args)); skill.Character = characterToAct; skill.Level = 1; - characterToAct.Skills.Add(skill); - realSkillRewards.Add(skill); + actionQueue.LastRound.RoundRewards.Add(skill); + WriteLine($"[ {characterToAct} ] 获得了回合奖励!{skill.Description}".Trim()); + if (skill.IsActive) + { + actionQueue.LastRound.Targets.Add(characterToAct); + skill.OnSkillCasted(actionQueue, characterToAct, [characterToAct]); + } + else + { + characterToAct.Skills.Add(skill); + realSkillRewards.Add(skill); + } } - string msg = $"[ {characterToAct} ] 获得了回合奖励!{string.Join(" / ", realSkillRewards.Select(s => s.Description))}"; - WriteLine(msg.Trim()); } bool isGameEnd = actionQueue.ProcessTurn(characterToAct); @@ -471,11 +484,31 @@ namespace Oshima.Core.Utils WriteLine(""); } + string roundMsg = ""; + if (actionQueue.LastRound.HasKill) + { + roundMsg = Msg; + if (!deathMatchRoundDetail) + { + roundMsg = actionQueue.LastRound.ToString(); + } + Msg = ""; + } + // 模拟时间流逝 double timeLapse = actionQueue.TimeLapse(); totalTime += timeLapse; 下一次空投 -= timeLapse; + if (roundMsg != "") + { + if (isWeb) + { + roundMsg += "\r\n" + Msg; + } + result.Add(roundMsg); + } + if (下一次空投 <= 0) { // 空投 @@ -500,28 +533,6 @@ namespace Oshima.Core.Utils 发放的饰品品质++; } } - - if (actionQueue.LastRound.HasKill) - { - string roundMsg = Msg; - if (!deathMatchRoundDetail) - { - roundMsg = actionQueue.LastRound.ToString(); - } - if (!isWeb) - { - string[] strs = roundMsg.Split("==== 角色状态 ===="); - if (strs.Length > 0) - { - roundMsg = strs[0]; - } - result.Add(roundMsg); - } - else - { - result.Add(roundMsg); - } - } } if (PrintOut) @@ -805,43 +816,76 @@ namespace Oshima.Core.Utils Magics.AddRange([new 冰霜攻击(), new 火之矢(), new 水之矢(), new 风之轮(), new 石之锤(), new 心灵之霞(), new 次元上升(), new 暗物质(), new 回复术(), new 治愈术()]); } + public static Dictionary> RoundRewards + { + get + { + return new() + { + { + EffectID.ExATK, + new() + { + { "exatk", Random.Shared.Next(40, 80) } + } + }, + { + EffectID.ExCritRate, + new() + { + { "excr", Math.Clamp(Random.Shared.NextDouble(), 0.25, 0.5) } + } + }, + { + EffectID.ExCritDMG, + new() + { + { "excrd", Math.Clamp(Random.Shared.NextDouble(), 0.5, 1) } + } + }, + { + EffectID.ExATK2, + new() + { + { "exatk", Math.Clamp(Random.Shared.NextDouble(), 0.15, 0.3) } + } + }, + { + EffectID.RecoverHP, + new() + { + { "hp", Random.Shared.Next(160, 640) } + } + }, + { + EffectID.RecoverMP, + new() + { + { "mp", Random.Shared.Next(140, 490) } + } + }, + { + EffectID.RecoverHP2, + new() + { + { "hp", Math.Clamp(Random.Shared.NextDouble(), 0.04, 0.08) } + } + }, + { + EffectID.RecoverMP2, + new() + { + { "mp", Math.Clamp(Random.Shared.NextDouble(), 0.09, 0.18) } + } + } + }; + } + } + public static Dictionary> GenerateRoundRewards(int maxRound) { Dictionary> roundRewards = []; - // 设定产生的回合奖励 - Dictionary> rewards = new() - { - { - EffectID.ExATK, - new() - { - { "exatk", "60" } - } - }, - { - EffectID.ExCritRate, - new() - { - { "excr", "0.5" } - } - }, - { - EffectID.ExCritDMG, - new() - { - { "excrd", "1" } - } - }, - { - EffectID.ExATK2, - new() - { - { "exatk", "0.3" } - } - } - }; - int currentRound = 1; while (currentRound <= maxRound) { @@ -852,8 +896,16 @@ namespace Oshima.Core.Utils List skills = []; // 添加回合奖励特效 - EffectID effectID = rewards.Keys.ToArray()[Random.Shared.Next(rewards.Count)]; - skills.Add(Factory.OpenFactory.GetInstance((long)effectID, "", rewards[effectID])); + long effectID = (long)RoundRewards.Keys.ToArray()[Random.Shared.Next(RoundRewards.Count)]; + Dictionary args = []; + if (effectID > (long)EffectID.Active_Start) + { + args.Add("active", true); + args.Add("self", true); + args.Add("enemy", false); + } + + skills.Add(Factory.OpenFactory.GetInstance(effectID, "回合奖励", args)); roundRewards[currentRound] = skills; } diff --git a/OshimaModules/Effects/EffectID.cs b/OshimaModules/Effects/EffectID.cs index d3267c8..aa02dd1 100644 --- a/OshimaModules/Effects/EffectID.cs +++ b/OshimaModules/Effects/EffectID.cs @@ -2,6 +2,11 @@ { public enum EffectID : long { + /// + /// 被动特效起点 + /// + Passive_Start = 8000, + /// /// 数值攻击力,参数:exatk /// @@ -159,5 +164,45 @@ /// 最大魔法值%,参数:exmp /// ExMaxMP2 = 8031, + + /// + /// 被动特效终点 + /// + Passive_End = 8699, + + /// + /// 主动特效起点 + /// + Active_Start = 8700, + + /// + /// 立即回复生命值,参数:hp + /// + RecoverHP = 8701, + + /// + /// 立即回复魔法值,参数:mp + /// + RecoverMP = 8702, + + /// + /// 立即回复生命值%,参数:hp + /// + RecoverHP2 = 8703, + + /// + /// 立即回复魔法值%,参数:mp + /// + RecoverMP2 = 8704, + + /// + /// 立即获得能量值,参数:ep + /// + GetEP = 8705, + + /// + /// 主动特效终点 + /// + Active_End = 8999 } } diff --git a/OshimaModules/Effects/ItemEffects/GetEP.cs b/OshimaModules/Effects/ItemEffects/GetEP.cs new file mode 100644 index 0000000..255ec6b --- /dev/null +++ b/OshimaModules/Effects/ItemEffects/GetEP.cs @@ -0,0 +1,35 @@ +using Milimoe.FunGame.Core.Entity; +using Milimoe.FunGame.Core.Library.Constant; +using Oshima.FunGame.OshimaModules.Effects.OpenEffects; + +namespace Oshima.FunGame.OshimaModules.Effects.ItemEffects +{ + public class GetEP : Effect + { + public override long Id => (long)EffectID.GetEP; + public override string Name => "立即获得能量值"; + public override string Description => $"立即获得角色 {实际获得:0.##} 点能量值。" + (Source != null && Skill.Character != Source ? $"来自:[ {Source} ]" + (Skill.Item != null ? $" 的 [ {Skill.Item.Name} ]" : "") : ""); + public override EffectType EffectType => EffectType.Item; + + private readonly double 实际获得 = 0; + + public GetEP(Skill skill, Dictionary args, Character? source = null) : base(skill, args) + { + GamingQueue = skill.GamingQueue; + Source = source; + if (Values.Count > 0) + { + string key = Values.Keys.FirstOrDefault(s => s.Equals("ep", StringComparison.CurrentCultureIgnoreCase)) ?? ""; + if (key.Length > 0 && double.TryParse(Values[key].ToString(), out double ep)) + { + 实际获得 = ep; + } + } + } + + public override void OnSkillCasted(Character caster, List targets, Dictionary others) + { + caster.EP += 实际获得; + } + } +} diff --git a/OshimaModules/Effects/ItemEffects/RecoverHP.cs b/OshimaModules/Effects/ItemEffects/RecoverHP.cs new file mode 100644 index 0000000..a6785a5 --- /dev/null +++ b/OshimaModules/Effects/ItemEffects/RecoverHP.cs @@ -0,0 +1,35 @@ +using Milimoe.FunGame.Core.Entity; +using Milimoe.FunGame.Core.Library.Constant; +using Oshima.FunGame.OshimaModules.Effects.OpenEffects; + +namespace Oshima.FunGame.OshimaModules.Effects.ItemEffects +{ + public class RecoverHP : Effect + { + public override long Id => (long)EffectID.RecoverHP; + public override string Name => "立即回复生命值"; + public override string Description => $"立即回复角色 {实际回复:0.##} 点生命值(不可用于复活)。" + (Source != null && Skill.Character != Source ? $"来自:[ {Source} ]" + (Skill.Item != null ? $" 的 [ {Skill.Item.Name} ]" : "") : ""); + public override EffectType EffectType => EffectType.Item; + + private readonly double 实际回复 = 0; + + public RecoverHP(Skill skill, Dictionary args, Character? source = null) : base(skill, args) + { + GamingQueue = skill.GamingQueue; + Source = source; + if (Values.Count > 0) + { + string key = Values.Keys.FirstOrDefault(s => s.Equals("hp", StringComparison.CurrentCultureIgnoreCase)) ?? ""; + if (key.Length > 0 && double.TryParse(Values[key].ToString(), out double hp)) + { + 实际回复 = hp; + } + } + } + + public override void OnSkillCasted(Character caster, List targets, Dictionary others) + { + HealToTarget(caster, caster, 实际回复, false); + } + } +} diff --git a/OshimaModules/Effects/ItemEffects/RecoverHP2.cs b/OshimaModules/Effects/ItemEffects/RecoverHP2.cs new file mode 100644 index 0000000..572a4bb --- /dev/null +++ b/OshimaModules/Effects/ItemEffects/RecoverHP2.cs @@ -0,0 +1,36 @@ +using Milimoe.FunGame.Core.Entity; +using Milimoe.FunGame.Core.Library.Constant; +using Oshima.FunGame.OshimaModules.Effects.OpenEffects; + +namespace Oshima.FunGame.OshimaModules.Effects.ItemEffects +{ + public class RecoverHP2 : Effect + { + public override long Id => (long)EffectID.RecoverHP2; + public override string Name => "立即回复生命值"; + public override string Description => $"立即回复角色 {回复比例 * 100:0.##}% [ {实际回复:0.##} ] 点生命值(不可用于复活)。" + (Source != null && Skill.Character != Source ? $"来自:[ {Source} ]" + (Skill.Item != null ? $" 的 [ {Skill.Item.Name} ]" : "") : ""); + public override EffectType EffectType => EffectType.Item; + + private double 实际回复 => 回复比例 * (Skill.Character?.MaxHP ?? 0); + private readonly double 回复比例 = 0; + + public RecoverHP2(Skill skill, Dictionary args, Character? source = null) : base(skill, args) + { + GamingQueue = skill.GamingQueue; + Source = source; + if (Values.Count > 0) + { + string key = Values.Keys.FirstOrDefault(s => s.Equals("hp", StringComparison.CurrentCultureIgnoreCase)) ?? ""; + if (key.Length > 0 && double.TryParse(Values[key].ToString(), out double hp)) + { + 回复比例 = hp; + } + } + } + + public override void OnSkillCasted(Character caster, List targets, Dictionary others) + { + HealToTarget(caster, caster, 实际回复, false); + } + } +} diff --git a/OshimaModules/Effects/ItemEffects/RecoverMP.cs b/OshimaModules/Effects/ItemEffects/RecoverMP.cs new file mode 100644 index 0000000..778a04e --- /dev/null +++ b/OshimaModules/Effects/ItemEffects/RecoverMP.cs @@ -0,0 +1,35 @@ +using Milimoe.FunGame.Core.Entity; +using Milimoe.FunGame.Core.Library.Constant; +using Oshima.FunGame.OshimaModules.Effects.OpenEffects; + +namespace Oshima.FunGame.OshimaModules.Effects.ItemEffects +{ + public class RecoverMP : Effect + { + public override long Id => (long)EffectID.RecoverMP; + public override string Name => "立即回复魔法值"; + public override string Description => $"立即回复角色 {实际回复:0.##} 点魔法值。" + (Source != null && Skill.Character != Source ? $"来自:[ {Source} ]" + (Skill.Item != null ? $" 的 [ {Skill.Item.Name} ]" : "") : ""); + public override EffectType EffectType => EffectType.Item; + + private readonly double 实际回复 = 0; + + public RecoverMP(Skill skill, Dictionary args, Character? source = null) : base(skill, args) + { + GamingQueue = skill.GamingQueue; + Source = source; + if (Values.Count > 0) + { + string key = Values.Keys.FirstOrDefault(s => s.Equals("mp", StringComparison.CurrentCultureIgnoreCase)) ?? ""; + if (key.Length > 0 && double.TryParse(Values[key].ToString(), out double mp)) + { + 实际回复 = mp; + } + } + } + + public override void OnSkillCasted(Character caster, List targets, Dictionary others) + { + caster.MP += 实际回复; + } + } +} diff --git a/OshimaModules/Effects/ItemEffects/RecoverMP2.cs b/OshimaModules/Effects/ItemEffects/RecoverMP2.cs new file mode 100644 index 0000000..b0fbab6 --- /dev/null +++ b/OshimaModules/Effects/ItemEffects/RecoverMP2.cs @@ -0,0 +1,36 @@ +using Milimoe.FunGame.Core.Entity; +using Milimoe.FunGame.Core.Library.Constant; +using Oshima.FunGame.OshimaModules.Effects.OpenEffects; + +namespace Oshima.FunGame.OshimaModules.Effects.ItemEffects +{ + public class RecoverMP2 : Effect + { + public override long Id => (long)EffectID.RecoverMP2; + public override string Name => "立即回复魔法值"; + public override string Description => $"立即回复角色 {回复比例 * 100:0.##}% [ {实际回复:0.##} ] 点魔法值。" + (Source != null && Skill.Character != Source ? $"来自:[ {Source} ]" + (Skill.Item != null ? $" 的 [ {Skill.Item.Name} ]" : "") : ""); + public override EffectType EffectType => EffectType.Item; + + private double 实际回复 => 回复比例 * (Skill.Character?.MaxMP ?? 0); + private readonly double 回复比例 = 0; + + public RecoverMP2(Skill skill, Dictionary args, Character? source = null) : base(skill, args) + { + GamingQueue = skill.GamingQueue; + Source = source; + if (Values.Count > 0) + { + string key = Values.Keys.FirstOrDefault(s => s.Equals("mp", StringComparison.CurrentCultureIgnoreCase)) ?? ""; + if (key.Length > 0 && double.TryParse(Values[key].ToString(), out double mp)) + { + 回复比例 = mp; + } + } + } + + public override void OnSkillCasted(Character caster, List targets, Dictionary others) + { + caster.MP += 实际回复; + } + } +} diff --git a/OshimaModules/Effects/ItemEffects/冷却缩减加成.cs b/OshimaModules/Effects/ItemEffects/冷却缩减加成.cs deleted file mode 100644 index 574606b..0000000 --- a/OshimaModules/Effects/ItemEffects/冷却缩减加成.cs +++ /dev/null @@ -1,35 +0,0 @@ -using Milimoe.FunGame.Core.Entity; -using Milimoe.FunGame.Core.Library.Constant; - -namespace Oshima.FunGame.OshimaModules.Effects.ItemEffects -{ - public class 冷却缩减加成 : Effect - { - public override long Id => Skill.Id; - public override string Name => Skill.Name; - public override string Description => $"增加角色 {实际冷却缩减加成 * 100:0.##}% 冷却缩减。" + (!TargetSelf ? $"来自:[ {Source} ]" + (Item != null ? $" 的 [ {Item.Name} ]" : "") : ""); - public override EffectType EffectType => EffectType.Item; - public override bool TargetSelf => true; - - public Item? Item { get; } - private readonly double 实际冷却缩减加成 = 0; - - public override void OnEffectGained(Character character) - { - character.ExCDR += 实际冷却缩减加成; - } - - public override void OnEffectLost(Character character) - { - character.ExCDR -= 实际冷却缩减加成; - } - - public 冷却缩减加成(Skill skill, double exCdr, Character? source = null, Item? item = null) : base(skill) - { - GamingQueue = skill.GamingQueue; - 实际冷却缩减加成 = exCdr; - Source = source; - Item = item; - } - } -} diff --git a/OshimaModules/Effects/ItemEffects/技能硬直时间减少.cs b/OshimaModules/Effects/ItemEffects/技能硬直时间减少.cs deleted file mode 100644 index e43abb6..0000000 --- a/OshimaModules/Effects/ItemEffects/技能硬直时间减少.cs +++ /dev/null @@ -1,51 +0,0 @@ -using Milimoe.FunGame.Core.Entity; -using Milimoe.FunGame.Core.Library.Constant; - -namespace Oshima.FunGame.OshimaModules.Effects.ItemEffects -{ - public class 技能硬直时间减少 : Effect - { - public override long Id => Skill.Id; - public override string Name => Skill.Name; - public override string Description => $"减少角色的所有主动技能 {实际硬直时间减少:0.##} 硬直时间。" + (!TargetSelf ? $"来自:[ {Source} ]" + (Item != null ? $" 的 [ {Item.Name} ]" : "") : ""); - public override EffectType EffectType => EffectType.Item; - public override bool TargetSelf => true; - - public Item? Item { get; } - private readonly double 实际硬直时间减少 = 2; - - public override void OnEffectGained(Character character) - { - foreach (Skill s in character.Skills) - { - s.HardnessTime -= 实际硬直时间减少; - } - foreach (Skill? s in character.Items.Select(i => i.Skills.Active)) - { - if (s != null) - s.HardnessTime -= 实际硬直时间减少; - } - } - - public override void OnEffectLost(Character character) - { - foreach (Skill s in character.Skills) - { - s.HardnessTime += 实际硬直时间减少; - } - foreach (Skill? s in character.Items.Select(i => i.Skills.Active)) - { - if (s != null) - s.HardnessTime += 实际硬直时间减少; - } - } - - public 技能硬直时间减少(Skill skill, double reduce, Character? source = null, Item? item = null) : base(skill) - { - GamingQueue = skill.GamingQueue; - 实际硬直时间减少 = reduce; - Source = source; - Item = item; - } - } -} diff --git a/OshimaModules/Effects/ItemEffects/攻击力加成.cs b/OshimaModules/Effects/ItemEffects/攻击力加成.cs deleted file mode 100644 index cdf0e4f..0000000 --- a/OshimaModules/Effects/ItemEffects/攻击力加成.cs +++ /dev/null @@ -1,35 +0,0 @@ -using Milimoe.FunGame.Core.Entity; -using Milimoe.FunGame.Core.Library.Constant; - -namespace Oshima.FunGame.OshimaModules.Effects.ItemEffects -{ - public class 攻击力加成 : Effect - { - public override long Id => Skill.Id; - public override string Name => Skill.Name; - public override string Description => $"增加角色 {实际攻击力加成:0.##} 点攻击力。" + (!TargetSelf ? $"来自:[ {Source} ]" + (Item != null ? $" 的 [ {Item.Name} ]" : "") : ""); - public override EffectType EffectType => EffectType.Item; - public override bool TargetSelf => true; - - public Item? Item { get; } - private readonly double 实际攻击力加成 = 0; - - public override void OnEffectGained(Character character) - { - character.ExATK2 += 实际攻击力加成; - } - - public override void OnEffectLost(Character character) - { - character.ExATK2 -= 实际攻击力加成; - } - - public 攻击力加成(Skill skill, double exATK, Character? source = null, Item? item = null) : base(skill) - { - GamingQueue = skill.GamingQueue; - 实际攻击力加成 = exATK; - Source = source; - Item = item; - } - } -} diff --git a/OshimaModules/Effects/ItemEffects/普攻硬直时间减少.cs b/OshimaModules/Effects/ItemEffects/普攻硬直时间减少.cs deleted file mode 100644 index 734dba4..0000000 --- a/OshimaModules/Effects/ItemEffects/普攻硬直时间减少.cs +++ /dev/null @@ -1,35 +0,0 @@ -using Milimoe.FunGame.Core.Entity; -using Milimoe.FunGame.Core.Library.Constant; - -namespace Oshima.FunGame.OshimaModules.Effects.ItemEffects -{ - public class 普攻硬直时间减少 : Effect - { - public override long Id => Skill.Id; - public override string Name => Skill.Name; - public override string Description => $"减少角色的普通攻击 {实际硬直时间减少:0.##} 硬直时间。" + (!TargetSelf ? $"来自:[ {Source} ]" + (Item != null ? $" 的 [ {Item.Name} ]" : "") : ""); - public override EffectType EffectType => EffectType.Item; - public override bool TargetSelf => true; - - public Item? Item { get; } - private readonly double 实际硬直时间减少 = 2; - - public override void OnEffectGained(Character character) - { - character.NormalAttack.HardnessTime -= 实际硬直时间减少; - } - - public override void OnEffectLost(Character character) - { - character.NormalAttack.HardnessTime += 实际硬直时间减少; - } - - public 普攻硬直时间减少(Skill skill, double reduce, Character? source = null, Item? item = null) : base(skill) - { - GamingQueue = skill.GamingQueue; - 实际硬直时间减少 = reduce; - Source = source; - Item = item; - } - } -} diff --git a/OshimaModules/Effects/ItemEffects/物理护甲加成.cs b/OshimaModules/Effects/ItemEffects/物理护甲加成.cs deleted file mode 100644 index 1245a4a..0000000 --- a/OshimaModules/Effects/ItemEffects/物理护甲加成.cs +++ /dev/null @@ -1,35 +0,0 @@ -using Milimoe.FunGame.Core.Entity; -using Milimoe.FunGame.Core.Library.Constant; - -namespace Oshima.FunGame.OshimaModules.Effects.ItemEffects -{ - public class 物理护甲加成 : Effect - { - public override long Id => Skill.Id; - public override string Name => Skill.Name; - public override string Description => $"增加角色 {实际物理护甲加成:0.##} 点物理护甲。" + (!TargetSelf ? $"来自:[ {Source} ]" + (Item != null ? $" 的 [ {Item.Name} ]" : "") : ""); - public override EffectType EffectType => EffectType.Item; - public override bool TargetSelf => true; - - public Item? Item { get; } - private readonly double 实际物理护甲加成 = 0; - - public override void OnEffectGained(Character character) - { - character.ExDEF2 += 实际物理护甲加成; - } - - public override void OnEffectLost(Character character) - { - character.ExDEF2 -= 实际物理护甲加成; - } - - public 物理护甲加成(Skill skill, double exDef, Character? source = null, Item? item = null) : base(skill) - { - GamingQueue = skill.GamingQueue; - 实际物理护甲加成 = exDef; - Source = source; - Item = item; - } - } -} diff --git a/OshimaModules/Effects/OpenEffects/AccelerationCoefficient.cs b/OshimaModules/Effects/OpenEffects/AccelerationCoefficient.cs index e0cd337..c8c3cbd 100644 --- a/OshimaModules/Effects/OpenEffects/AccelerationCoefficient.cs +++ b/OshimaModules/Effects/OpenEffects/AccelerationCoefficient.cs @@ -7,11 +7,9 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects { public override long Id => (long)EffectID.AccelerationCoefficient; public override string Name => "加速系数加成"; - public override string Description => $"增加角色 {实际加成 * 100:0.##}% 加速系数。" + (!TargetSelf ? $"来自:[ {Source} ]" + (Item != null ? $" 的 [ {Item.Name} ]" : "") : ""); + public override string Description => $"增加角色 {实际加成 * 100:0.##}% 加速系数。" + (Source != null && Skill.Character != Source ? $"来自:[ {Source} ]" + (Skill.Item != null ? $" 的 [ {Skill.Item.Name} ]" : "") : ""); public override EffectType EffectType => EffectType.Item; - public override bool TargetSelf => true; - - public Item? Item { get; } + private readonly double 实际加成 = 0; public override void OnEffectGained(Character character) @@ -24,11 +22,10 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects character.AccelerationCoefficient -= 实际加成; } - public AccelerationCoefficient(Skill skill, Dictionary args, Character? source = null, Item? item = null) : base(skill, args) + public AccelerationCoefficient(Skill skill, Dictionary args, Character? source = null) : base(skill, args) { GamingQueue = skill.GamingQueue; Source = source; - Item = item; if (Values.Count > 0) { string key = Values.Keys.FirstOrDefault(s => s.Equals("exacc", StringComparison.CurrentCultureIgnoreCase)) ?? ""; diff --git a/OshimaModules/Effects/OpenEffects/ExAGI.cs b/OshimaModules/Effects/OpenEffects/ExAGI.cs index e8ea6ba..a898310 100644 --- a/OshimaModules/Effects/OpenEffects/ExAGI.cs +++ b/OshimaModules/Effects/OpenEffects/ExAGI.cs @@ -7,11 +7,9 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects { public override long Id => (long)EffectID.ExAGI; public override string Name => "敏捷加成"; - public override string Description => $"增加角色 {实际加成:0.##} 点敏捷。" + (!TargetSelf ? $"来自:[ {Source} ]" + (Item != null ? $" 的 [ {Item.Name} ]" : "") : ""); + public override string Description => $"增加角色 {实际加成:0.##} 点敏捷。" + (Source != null && Skill.Character != Source ? $"来自:[ {Source} ]" + (Skill.Item != null ? $" 的 [ {Skill.Item.Name} ]" : "") : ""); public override EffectType EffectType => EffectType.Item; - public override bool TargetSelf => true; - - public Item? Item { get; } + private readonly double 实际加成 = 0; public override void OnEffectGained(Character character) @@ -24,11 +22,10 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects character.ExAGI -= 实际加成; } - public ExAGI(Skill skill, Dictionary args, Character? source = null, Item? item = null) : base(skill, args) + public ExAGI(Skill skill, Dictionary args, Character? source = null) : base(skill, args) { GamingQueue = skill.GamingQueue; Source = source; - Item = item; if (Values.Count > 0) { string key = Values.Keys.FirstOrDefault(s => s.Equals("exagi", StringComparison.CurrentCultureIgnoreCase)) ?? ""; diff --git a/OshimaModules/Effects/OpenEffects/ExAGI2.cs b/OshimaModules/Effects/OpenEffects/ExAGI2.cs index 36edcb6..36e1566 100644 --- a/OshimaModules/Effects/OpenEffects/ExAGI2.cs +++ b/OshimaModules/Effects/OpenEffects/ExAGI2.cs @@ -7,11 +7,9 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects { public override long Id => (long)EffectID.ExAGI2; public override string Name => "敏捷加成"; - public override string Description => $"增加角色 {加成比例 * 100:0.##}% [ {实际加成:0.##} ] 点敏捷。" + (!TargetSelf ? $"来自:[ {Source} ]" + (Item != null ? $" 的 [ {Item.Name} ]" : "") : ""); + public override string Description => $"增加角色 {加成比例 * 100:0.##}% [ {实际加成:0.##} ] 点敏捷。" + (Source != null && Skill.Character != Source ? $"来自:[ {Source} ]" + (Skill.Item != null ? $" 的 [ {Skill.Item.Name} ]" : "") : ""); public override EffectType EffectType => EffectType.Item; - public override bool TargetSelf => true; - - public Item? Item { get; } + private readonly double 加成比例 = 0; private double 实际加成 = 0; @@ -24,14 +22,12 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects public override void OnEffectLost(Character character) { character.ExAGI -= 实际加成; - 实际加成 = 0; } - public ExAGI2(Skill skill, Dictionary args, Character? source = null, Item? item = null) : base(skill, args) + public ExAGI2(Skill skill, Dictionary args, Character? source = null) : base(skill, args) { GamingQueue = skill.GamingQueue; Source = source; - Item = item; if (Values.Count > 0) { string key = Values.Keys.FirstOrDefault(s => s.Equals("exagi", StringComparison.CurrentCultureIgnoreCase)) ?? ""; diff --git a/OshimaModules/Effects/OpenEffects/ExATK.cs b/OshimaModules/Effects/OpenEffects/ExATK.cs index 8ababfb..7e16cde 100644 --- a/OshimaModules/Effects/OpenEffects/ExATK.cs +++ b/OshimaModules/Effects/OpenEffects/ExATK.cs @@ -7,11 +7,9 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects { public override long Id => (long)EffectID.ExATK; public override string Name => "攻击力加成"; - public override string Description => $"增加角色 {实际加成:0.##} 点攻击力。" + (!TargetSelf ? $"来自:[ {Source} ]" + (Item != null ? $" 的 [ {Item.Name} ]" : "") : ""); + public override string Description => $"增加角色 {实际加成:0.##} 点攻击力。" + (Source != null && Skill.Character != Source ? $"来自:[ {Source} ]" + (Skill.Item != null ? $" 的 [ {Skill.Item.Name} ]" : "") : ""); public override EffectType EffectType => EffectType.Item; - public override bool TargetSelf => true; - - public Item? Item { get; } + private readonly double 实际加成 = 0; public override void OnEffectGained(Character character) @@ -24,11 +22,10 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects character.ExATK2 -= 实际加成; } - public ExATK(Skill skill, Dictionary args, Character? source = null, Item? item = null) : base(skill, args) + public ExATK(Skill skill, Dictionary args, Character? source = null) : base(skill, args) { GamingQueue = skill.GamingQueue; Source = source; - Item = item; if (Values.Count > 0) { string key = Values.Keys.FirstOrDefault(s => s.Equals("exatk", StringComparison.CurrentCultureIgnoreCase)) ?? ""; diff --git a/OshimaModules/Effects/OpenEffects/ExATK2.cs b/OshimaModules/Effects/OpenEffects/ExATK2.cs index f3f3c94..25a6a08 100644 --- a/OshimaModules/Effects/OpenEffects/ExATK2.cs +++ b/OshimaModules/Effects/OpenEffects/ExATK2.cs @@ -7,11 +7,9 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects { public override long Id => (long)EffectID.ExATK2; public override string Name => "攻击力加成"; - public override string Description => $"增加角色 {加成比例 * 100:0.##}% [ {实际加成:0.##} ] 点攻击力。" + (!TargetSelf ? $"来自:[ {Source} ]" + (Item != null ? $" 的 [ {Item.Name} ]" : "") : ""); + public override string Description => $"增加角色 {加成比例 * 100:0.##}% [ {实际加成:0.##} ] 点攻击力。" + (Source != null && Source != null && Skill.Character != Source ? $"来自:[ {Source} ]" + (Skill.Item != null ? $" 的 [ {Skill.Item.Name} ]" : "") : ""); public override EffectType EffectType => EffectType.Item; - public override bool TargetSelf => true; - - public Item? Item { get; } + private readonly double 加成比例 = 0; private double 实际加成 = 0; @@ -24,14 +22,12 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects public override void OnEffectLost(Character character) { character.ExATK2 -= 实际加成; - 实际加成 = 0; } - public ExATK2(Skill skill, Dictionary args, Character? source = null, Item? item = null) : base(skill, args) + public ExATK2(Skill skill, Dictionary args, Character? source = null) : base(skill, args) { GamingQueue = skill.GamingQueue; Source = source; - Item = item; if (Values.Count > 0) { string key = Values.Keys.FirstOrDefault(s => s.Equals("exatk", StringComparison.CurrentCultureIgnoreCase)) ?? ""; diff --git a/OshimaModules/Effects/OpenEffects/ExActionCoefficient.cs b/OshimaModules/Effects/OpenEffects/ExActionCoefficient.cs index e39ef8d..ebeb4c8 100644 --- a/OshimaModules/Effects/OpenEffects/ExActionCoefficient.cs +++ b/OshimaModules/Effects/OpenEffects/ExActionCoefficient.cs @@ -7,11 +7,9 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects { public override long Id => (long)EffectID.ExActionCoefficient; public override string Name => "行动系数加成"; - public override string Description => $"增加角色 {实际加成 * 100:0.##}% 行动系数。" + (!TargetSelf ? $"来自:[ {Source} ]" + (Item != null ? $" 的 [ {Item.Name} ]" : "") : ""); + public override string Description => $"增加角色 {实际加成 * 100:0.##}% 行动系数。" + (Source != null && Skill.Character != Source ? $"来自:[ {Source} ]" + (Skill.Item != null ? $" 的 [ {Skill.Item.Name} ]" : "") : ""); public override EffectType EffectType => EffectType.Item; - public override bool TargetSelf => true; - - public Item? Item { get; } + private readonly double 实际加成 = 0; public override void OnEffectGained(Character character) @@ -24,11 +22,10 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects character.ExActionCoefficient -= 实际加成; } - public ExActionCoefficient(Skill skill, Dictionary args, Character? source = null, Item? item = null) : base(skill, args) + public ExActionCoefficient(Skill skill, Dictionary args, Character? source = null) : base(skill, args) { GamingQueue = skill.GamingQueue; Source = source; - Item = item; if (Values.Count > 0) { string key = Values.Keys.FirstOrDefault(s => s.Equals("exac", StringComparison.CurrentCultureIgnoreCase)) ?? ""; diff --git a/OshimaModules/Effects/OpenEffects/ExCDR.cs b/OshimaModules/Effects/OpenEffects/ExCDR.cs index 7a27206..ddc9cab 100644 --- a/OshimaModules/Effects/OpenEffects/ExCDR.cs +++ b/OshimaModules/Effects/OpenEffects/ExCDR.cs @@ -7,11 +7,9 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects { public override long Id => (long)EffectID.ExCDR; public override string Name => "冷却缩减加成"; - public override string Description => $"增加角色 {实际加成 * 100:0.##}% 冷却缩减。" + (!TargetSelf ? $"来自:[ {Source} ]" + (Item != null ? $" 的 [ {Item.Name} ]" : "") : ""); + public override string Description => $"增加角色 {实际加成 * 100:0.##}% 冷却缩减。" + (Source != null && Skill.Character != Source ? $"来自:[ {Source} ]" + (Skill.Item != null ? $" 的 [ {Skill.Item.Name} ]" : "") : ""); public override EffectType EffectType => EffectType.Item; - public override bool TargetSelf => true; - - public Item? Item { get; } + private readonly double 实际加成 = 0; public override void OnEffectGained(Character character) @@ -24,11 +22,10 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects character.ExCDR -= 实际加成; } - public ExCDR(Skill skill, Dictionary args, Character? source = null, Item? item = null) : base(skill, args) + public ExCDR(Skill skill, Dictionary args, Character? source = null) : base(skill, args) { GamingQueue = skill.GamingQueue; Source = source; - Item = item; if (Values.Count > 0) { string key = Values.Keys.FirstOrDefault(s => s.Equals("excdr", StringComparison.CurrentCultureIgnoreCase)) ?? ""; diff --git a/OshimaModules/Effects/OpenEffects/ExCritDMG.cs b/OshimaModules/Effects/OpenEffects/ExCritDMG.cs index 77a6560..c1b8a4f 100644 --- a/OshimaModules/Effects/OpenEffects/ExCritDMG.cs +++ b/OshimaModules/Effects/OpenEffects/ExCritDMG.cs @@ -7,11 +7,9 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects { public override long Id => (long)EffectID.ExCritDMG; public override string Name => "暴击伤害加成"; - public override string Description => $"增加角色 {实际加成 * 100:0.##}% 暴击伤害。" + (!TargetSelf ? $"来自:[ {Source} ]" + (Item != null ? $" 的 [ {Item.Name} ]" : "") : ""); + public override string Description => $"增加角色 {实际加成 * 100:0.##}% 暴击伤害。" + (Source != null && Skill.Character != Source ? $"来自:[ {Source} ]" + (Skill.Item != null ? $" 的 [ {Skill.Item.Name} ]" : "") : ""); public override EffectType EffectType => EffectType.Item; - public override bool TargetSelf => true; - - public Item? Item { get; } + private readonly double 实际加成 = 0; public override void OnEffectGained(Character character) @@ -24,11 +22,10 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects character.ExCritDMG -= 实际加成; } - public ExCritDMG(Skill skill, Dictionary args, Character? source = null, Item? item = null) : base(skill, args) + public ExCritDMG(Skill skill, Dictionary args, Character? source = null) : base(skill, args) { GamingQueue = skill.GamingQueue; Source = source; - Item = item; if (Values.Count > 0) { string key = Values.Keys.FirstOrDefault(s => s.Equals("excrd", StringComparison.CurrentCultureIgnoreCase)) ?? ""; diff --git a/OshimaModules/Effects/OpenEffects/ExCritRate.cs b/OshimaModules/Effects/OpenEffects/ExCritRate.cs index 2e47b6c..2521382 100644 --- a/OshimaModules/Effects/OpenEffects/ExCritRate.cs +++ b/OshimaModules/Effects/OpenEffects/ExCritRate.cs @@ -7,11 +7,9 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects { public override long Id => (long)EffectID.ExCritRate; public override string Name => "暴击率加成"; - public override string Description => $"增加角色 {实际加成 * 100:0.##}% 暴击率。" + (!TargetSelf ? $"来自:[ {Source} ]" + (Item != null ? $" 的 [ {Item.Name} ]" : "") : ""); + public override string Description => $"增加角色 {实际加成 * 100:0.##}% 暴击率。" + (Source != null && Skill.Character != Source ? $"来自:[ {Source} ]" + (Skill.Item != null ? $" 的 [ {Skill.Item.Name} ]" : "") : ""); public override EffectType EffectType => EffectType.Item; - public override bool TargetSelf => true; - - public Item? Item { get; } + private readonly double 实际加成 = 0; public override void OnEffectGained(Character character) @@ -24,11 +22,10 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects character.ExCritRate -= 实际加成; } - public ExCritRate(Skill skill, Dictionary args, Character? source = null, Item? item = null) : base(skill, args) + public ExCritRate(Skill skill, Dictionary args, Character? source = null) : base(skill, args) { GamingQueue = skill.GamingQueue; Source = source; - Item = item; if (Values.Count > 0) { string key = Values.Keys.FirstOrDefault(s => s.Equals("excr", StringComparison.CurrentCultureIgnoreCase)) ?? ""; diff --git a/OshimaModules/Effects/OpenEffects/ExDEF.cs b/OshimaModules/Effects/OpenEffects/ExDEF.cs index f3779e2..3cfdf8a 100644 --- a/OshimaModules/Effects/OpenEffects/ExDEF.cs +++ b/OshimaModules/Effects/OpenEffects/ExDEF.cs @@ -7,11 +7,9 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects { public override long Id => (long)EffectID.ExDEF; public override string Name => "物理护甲加成"; - public override string Description => $"增加角色 {实际加成:0.##} 点物理护甲。" + (!TargetSelf ? $"来自:[ {Source} ]" + (Item != null ? $" 的 [ {Item.Name} ]" : "") : ""); + public override string Description => $"增加角色 {实际加成:0.##} 点物理护甲。" + (Source != null && Skill.Character != Source ? $"来自:[ {Source} ]" + (Skill.Item != null ? $" 的 [ {Skill.Item.Name} ]" : "") : ""); public override EffectType EffectType => EffectType.Item; - public override bool TargetSelf => true; - - public Item? Item { get; } + private readonly double 实际加成 = 0; public override void OnEffectGained(Character character) @@ -24,11 +22,10 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects character.ExDEF2 -= 实际加成; } - public ExDEF(Skill skill, Dictionary args, Character? source = null, Item? item = null) : base(skill, args) + public ExDEF(Skill skill, Dictionary args, Character? source = null) : base(skill, args) { GamingQueue = skill.GamingQueue; Source = source; - Item = item; if (Values.Count > 0) { string key = Values.Keys.FirstOrDefault(s => s.Equals("exdef", StringComparison.CurrentCultureIgnoreCase)) ?? ""; diff --git a/OshimaModules/Effects/OpenEffects/ExDEF2.cs b/OshimaModules/Effects/OpenEffects/ExDEF2.cs index b15d092..968ab5d 100644 --- a/OshimaModules/Effects/OpenEffects/ExDEF2.cs +++ b/OshimaModules/Effects/OpenEffects/ExDEF2.cs @@ -7,11 +7,9 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects { public override long Id => (long)EffectID.ExDEF2; public override string Name => "物理护甲加成"; - public override string Description => $"增加角色 {加成比例 * 100:0.##}% [ {实际加成:0.##} ] 点物理护甲。" + (!TargetSelf ? $"来自:[ {Source} ]" + (Item != null ? $" 的 [ {Item.Name} ]" : "") : ""); + public override string Description => $"增加角色 {加成比例 * 100:0.##}% [ {实际加成:0.##} ] 点物理护甲。" + (Source != null && Skill.Character != Source ? $"来自:[ {Source} ]" + (Skill.Item != null ? $" 的 [ {Skill.Item.Name} ]" : "") : ""); public override EffectType EffectType => EffectType.Item; - public override bool TargetSelf => true; - - public Item? Item { get; } + private readonly double 加成比例 = 0; private double 实际加成 = 0; @@ -24,14 +22,12 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects public override void OnEffectLost(Character character) { character.ExDEF2 -= 实际加成; - 实际加成 = 0; } - public ExDEF2(Skill skill, Dictionary args, Character? source = null, Item? item = null) : base(skill, args) + public ExDEF2(Skill skill, Dictionary args, Character? source = null) : base(skill, args) { GamingQueue = skill.GamingQueue; Source = source; - Item = item; if (Values.Count > 0) { string key = Values.Keys.FirstOrDefault(s => s.Equals("exdef", StringComparison.CurrentCultureIgnoreCase)) ?? ""; diff --git a/OshimaModules/Effects/OpenEffects/ExEvadeRate.cs b/OshimaModules/Effects/OpenEffects/ExEvadeRate.cs index ec6f60e..b9dce60 100644 --- a/OshimaModules/Effects/OpenEffects/ExEvadeRate.cs +++ b/OshimaModules/Effects/OpenEffects/ExEvadeRate.cs @@ -7,11 +7,9 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects { public override long Id => (long)EffectID.ExEvadeRate; public override string Name => "闪避率加成"; - public override string Description => $"增加角色 {实际加成 * 100:0.##}% 闪避率。" + (!TargetSelf ? $"来自:[ {Source} ]" + (Item != null ? $" 的 [ {Item.Name} ]" : "") : ""); + public override string Description => $"增加角色 {实际加成 * 100:0.##}% 闪避率。" + (Source != null && Skill.Character != Source ? $"来自:[ {Source} ]" + (Skill.Item != null ? $" 的 [ {Skill.Item.Name} ]" : "") : ""); public override EffectType EffectType => EffectType.Item; - public override bool TargetSelf => true; - - public Item? Item { get; } + private readonly double 实际加成 = 0; public override void OnEffectGained(Character character) @@ -24,11 +22,10 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects character.ExEvadeRate -= 实际加成; } - public ExEvadeRate(Skill skill, Dictionary args, Character? source = null, Item? item = null) : base(skill, args) + public ExEvadeRate(Skill skill, Dictionary args, Character? source = null) : base(skill, args) { GamingQueue = skill.GamingQueue; Source = source; - Item = item; if (Values.Count > 0) { string key = Values.Keys.FirstOrDefault(s => s.Equals("exer", StringComparison.CurrentCultureIgnoreCase)) ?? ""; diff --git a/OshimaModules/Effects/OpenEffects/ExHR.cs b/OshimaModules/Effects/OpenEffects/ExHR.cs index 21047f7..2a63fbc 100644 --- a/OshimaModules/Effects/OpenEffects/ExHR.cs +++ b/OshimaModules/Effects/OpenEffects/ExHR.cs @@ -7,11 +7,9 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects { public override long Id => (long)EffectID.ExHR; public override string Name => "生命回复加成"; - public override string Description => $"增加角色 {实际加成:0.##} 点生命回复。" + (!TargetSelf ? $"来自:[ {Source} ]" + (Item != null ? $" 的 [ {Item.Name} ]" : "") : ""); + public override string Description => $"增加角色 {实际加成:0.##} 点生命回复。" + (Source != null && Skill.Character != Source ? $"来自:[ {Source} ]" + (Skill.Item != null ? $" 的 [ {Skill.Item.Name} ]" : "") : ""); public override EffectType EffectType => EffectType.Item; - public override bool TargetSelf => true; - - public Item? Item { get; } + private readonly double 实际加成 = 0; public override void OnEffectGained(Character character) @@ -24,11 +22,10 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects character.ExHR -= 实际加成; } - public ExHR(Skill skill, Dictionary args, Character? source = null, Item? item = null) : base(skill, args) + public ExHR(Skill skill, Dictionary args, Character? source = null) : base(skill, args) { GamingQueue = skill.GamingQueue; Source = source; - Item = item; if (Values.Count > 0) { string key = Values.Keys.FirstOrDefault(s => s.Equals("exhr", StringComparison.CurrentCultureIgnoreCase)) ?? ""; diff --git a/OshimaModules/Effects/OpenEffects/ExINT.cs b/OshimaModules/Effects/OpenEffects/ExINT.cs index 71d6192..90d3182 100644 --- a/OshimaModules/Effects/OpenEffects/ExINT.cs +++ b/OshimaModules/Effects/OpenEffects/ExINT.cs @@ -7,11 +7,9 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects { public override long Id => (long)EffectID.ExINT; public override string Name => "智力加成"; - public override string Description => $"增加角色 {实际加成:0.##} 点智力。" + (!TargetSelf ? $"来自:[ {Source} ]" + (Item != null ? $" 的 [ {Item.Name} ]" : "") : ""); + public override string Description => $"增加角色 {实际加成:0.##} 点智力。" + (Source != null && Skill.Character != Source ? $"来自:[ {Source} ]" + (Skill.Item != null ? $" 的 [ {Skill.Item.Name} ]" : "") : ""); public override EffectType EffectType => EffectType.Item; - public override bool TargetSelf => true; - - public Item? Item { get; } + private readonly double 实际加成 = 0; public override void OnEffectGained(Character character) @@ -24,11 +22,10 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects character.ExINT -= 实际加成; } - public ExINT(Skill skill, Dictionary args, Character? source = null, Item? item = null) : base(skill, args) + public ExINT(Skill skill, Dictionary args, Character? source = null) : base(skill, args) { GamingQueue = skill.GamingQueue; Source = source; - Item = item; if (Values.Count > 0) { string key = Values.Keys.FirstOrDefault(s => s.Equals("exint", StringComparison.CurrentCultureIgnoreCase)) ?? ""; diff --git a/OshimaModules/Effects/OpenEffects/ExINT2.cs b/OshimaModules/Effects/OpenEffects/ExINT2.cs index e874046..cf2e86a 100644 --- a/OshimaModules/Effects/OpenEffects/ExINT2.cs +++ b/OshimaModules/Effects/OpenEffects/ExINT2.cs @@ -7,11 +7,9 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects { public override long Id => (long)EffectID.ExINT2; public override string Name => "智力加成"; - public override string Description => $"增加角色 {加成比例 * 100:0.##}% [ {实际加成:0.##} ] 点智力。" + (!TargetSelf ? $"来自:[ {Source} ]" + (Item != null ? $" 的 [ {Item.Name} ]" : "") : ""); + public override string Description => $"增加角色 {加成比例 * 100:0.##}% [ {实际加成:0.##} ] 点智力。" + (Source != null && Skill.Character != Source ? $"来自:[ {Source} ]" + (Skill.Item != null ? $" 的 [ {Skill.Item.Name} ]" : "") : ""); public override EffectType EffectType => EffectType.Item; - public override bool TargetSelf => true; - - public Item? Item { get; } + private readonly double 加成比例 = 0; private double 实际加成 = 0; @@ -24,14 +22,12 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects public override void OnEffectLost(Character character) { character.ExINT -= 实际加成; - 实际加成 = 0; } - public ExINT2(Skill skill, Dictionary args, Character? source = null, Item? item = null) : base(skill, args) + public ExINT2(Skill skill, Dictionary args, Character? source = null) : base(skill, args) { GamingQueue = skill.GamingQueue; Source = source; - Item = item; if (Values.Count > 0) { string key = Values.Keys.FirstOrDefault(s => s.Equals("exint", StringComparison.CurrentCultureIgnoreCase)) ?? ""; diff --git a/OshimaModules/Effects/OpenEffects/ExMDF.cs b/OshimaModules/Effects/OpenEffects/ExMDF.cs index 2ba3eef..a3724ba 100644 --- a/OshimaModules/Effects/OpenEffects/ExMDF.cs +++ b/OshimaModules/Effects/OpenEffects/ExMDF.cs @@ -7,11 +7,9 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects { public override long Id => (long)EffectID.ExMDF; public override string Name => "魔法抗性加成"; - public override string Description => $"增加角色 {实际加成 * 100:0.##}% {CharacterSet.GetMagicResistanceName(魔法类型)}。" + (!TargetSelf ? $"来自:[ {Source} ]" + (Item != null ? $" 的 [ {Item.Name} ]" : "") : ""); + public override string Description => $"增加角色 {实际加成 * 100:0.##}% {CharacterSet.GetMagicResistanceName(魔法类型)}。" + (Source != null && Skill.Character != Source ? $"来自:[ {Source} ]" + (Skill.Item != null ? $" 的 [ {Skill.Item.Name} ]" : "") : ""); public override EffectType EffectType => EffectType.Item; - public override bool TargetSelf => true; - - public Item? Item { get; } + private readonly double 实际加成 = 0; private readonly MagicType 魔法类型 = MagicType.None; @@ -85,11 +83,10 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects } } - public ExMDF(Skill skill, Dictionary args, Character? source = null, Item? item = null) : base(skill, args) + public ExMDF(Skill skill, Dictionary args, Character? source = null) : base(skill, args) { GamingQueue = skill.GamingQueue; Source = source; - Item = item; if (Values.Count > 0) { string key = Values.Keys.FirstOrDefault(s => s.Equals("mdfType", StringComparison.CurrentCultureIgnoreCase)) ?? ""; diff --git a/OshimaModules/Effects/OpenEffects/ExMR.cs b/OshimaModules/Effects/OpenEffects/ExMR.cs index d2758be..a9a11fd 100644 --- a/OshimaModules/Effects/OpenEffects/ExMR.cs +++ b/OshimaModules/Effects/OpenEffects/ExMR.cs @@ -7,11 +7,9 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects { public override long Id => (long)EffectID.ExMR; public override string Name => "魔法回复加成"; - public override string Description => $"增加角色 {实际加成:0.##} 点魔法回复。" + (!TargetSelf ? $"来自:[ {Source} ]" + (Item != null ? $" 的 [ {Item.Name} ]" : "") : ""); + public override string Description => $"增加角色 {实际加成:0.##} 点魔法回复。" + (Source != null && Skill.Character != Source ? $"来自:[ {Source} ]" + (Skill.Item != null ? $" 的 [ {Skill.Item.Name} ]" : "") : ""); public override EffectType EffectType => EffectType.Item; - public override bool TargetSelf => true; - - public Item? Item { get; } + private readonly double 实际加成 = 0; public override void OnEffectGained(Character character) @@ -24,11 +22,10 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects character.ExMR -= 实际加成; } - public ExMR(Skill skill, Dictionary args, Character? source = null, Item? item = null) : base(skill, args) + public ExMR(Skill skill, Dictionary args, Character? source = null) : base(skill, args) { GamingQueue = skill.GamingQueue; Source = source; - Item = item; if (Values.Count > 0) { string key = Values.Keys.FirstOrDefault(s => s.Equals("exmr", StringComparison.CurrentCultureIgnoreCase)) ?? ""; diff --git a/OshimaModules/Effects/OpenEffects/ExMaxHP.cs b/OshimaModules/Effects/OpenEffects/ExMaxHP.cs index 1acd83e..a45f79f 100644 --- a/OshimaModules/Effects/OpenEffects/ExMaxHP.cs +++ b/OshimaModules/Effects/OpenEffects/ExMaxHP.cs @@ -7,11 +7,9 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects { public override long Id => (long)EffectID.ExMaxHP; public override string Name => "最大生命值加成"; - public override string Description => $"增加角色 {实际加成:0.##} 点最大生命值。" + (!TargetSelf ? $"来自:[ {Source} ]" + (Item != null ? $" 的 [ {Item.Name} ]" : "") : ""); + public override string Description => $"增加角色 {实际加成:0.##} 点最大生命值。" + (Source != null && Skill.Character != Source ? $"来自:[ {Source} ]" + (Skill.Item != null ? $" 的 [ {Skill.Item.Name} ]" : "") : ""); public override EffectType EffectType => EffectType.Item; - public override bool TargetSelf => true; - - public Item? Item { get; } + private readonly double 实际加成 = 0; public override void OnEffectGained(Character character) @@ -24,11 +22,10 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects character.ExHP2 -= 实际加成; } - public ExMaxHP(Skill skill, Dictionary args, Character? source = null, Item? item = null) : base(skill, args) + public ExMaxHP(Skill skill, Dictionary args, Character? source = null) : base(skill, args) { GamingQueue = skill.GamingQueue; Source = source; - Item = item; if (Values.Count > 0) { string key = Values.Keys.FirstOrDefault(s => s.Equals("exhp", StringComparison.CurrentCultureIgnoreCase)) ?? ""; diff --git a/OshimaModules/Effects/OpenEffects/ExMaxHP2.cs b/OshimaModules/Effects/OpenEffects/ExMaxHP2.cs index b1b5e89..c2bca87 100644 --- a/OshimaModules/Effects/OpenEffects/ExMaxHP2.cs +++ b/OshimaModules/Effects/OpenEffects/ExMaxHP2.cs @@ -7,11 +7,9 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects { public override long Id => (long)EffectID.ExMaxHP2; public override string Name => "最大生命值加成"; - public override string Description => $"增加角色 {加成比例 * 100:0.##}% [ {实际加成:0.##} ] 点最大生命值。" + (!TargetSelf ? $"来自:[ {Source} ]" + (Item != null ? $" 的 [ {Item.Name} ]" : "") : ""); + public override string Description => $"增加角色 {加成比例 * 100:0.##}% [ {实际加成:0.##} ] 点最大生命值。" + (Source != null && Skill.Character != Source ? $"来自:[ {Source} ]" + (Skill.Item != null ? $" 的 [ {Skill.Item.Name} ]" : "") : ""); public override EffectType EffectType => EffectType.Item; - public override bool TargetSelf => true; - - public Item? Item { get; } + private readonly double 加成比例 = 0; private double 实际加成 = 0; @@ -24,14 +22,12 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects public override void OnEffectLost(Character character) { character.ExHP2 -= 实际加成; - 实际加成 = 0; } - public ExMaxHP2(Skill skill, Dictionary args, Character? source = null, Item? item = null) : base(skill, args) + public ExMaxHP2(Skill skill, Dictionary args, Character? source = null) : base(skill, args) { GamingQueue = skill.GamingQueue; Source = source; - Item = item; if (Values.Count > 0) { string key = Values.Keys.FirstOrDefault(s => s.Equals("exhp", StringComparison.CurrentCultureIgnoreCase)) ?? ""; diff --git a/OshimaModules/Effects/OpenEffects/ExMaxMP.cs b/OshimaModules/Effects/OpenEffects/ExMaxMP.cs index 776620b..04a0945 100644 --- a/OshimaModules/Effects/OpenEffects/ExMaxMP.cs +++ b/OshimaModules/Effects/OpenEffects/ExMaxMP.cs @@ -7,11 +7,9 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects { public override long Id => (long)EffectID.ExMaxMP; public override string Name => "最大魔法值加成"; - public override string Description => $"增加角色 {实际加成:0.##} 点最大魔法值。" + (!TargetSelf ? $"来自:[ {Source} ]" + (Item != null ? $" 的 [ {Item.Name} ]" : "") : ""); + public override string Description => $"增加角色 {实际加成:0.##} 点最大魔法值。" + (Source != null && Skill.Character != Source ? $"来自:[ {Source} ]" + (Skill.Item != null ? $" 的 [ {Skill.Item.Name} ]" : "") : ""); public override EffectType EffectType => EffectType.Item; - public override bool TargetSelf => true; - - public Item? Item { get; } + private readonly double 实际加成 = 0; public override void OnEffectGained(Character character) @@ -24,11 +22,10 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects character.ExMP2 -= 实际加成; } - public ExMaxMP(Skill skill, Dictionary args, Character? source = null, Item? item = null) : base(skill, args) + public ExMaxMP(Skill skill, Dictionary args, Character? source = null) : base(skill, args) { GamingQueue = skill.GamingQueue; Source = source; - Item = item; if (Values.Count > 0) { string key = Values.Keys.FirstOrDefault(s => s.Equals("exmp", StringComparison.CurrentCultureIgnoreCase)) ?? ""; diff --git a/OshimaModules/Effects/OpenEffects/ExMaxMP2.cs b/OshimaModules/Effects/OpenEffects/ExMaxMP2.cs index aabb9aa..c4d78d9 100644 --- a/OshimaModules/Effects/OpenEffects/ExMaxMP2.cs +++ b/OshimaModules/Effects/OpenEffects/ExMaxMP2.cs @@ -7,11 +7,9 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects { public override long Id => (long)EffectID.ExMaxMP2; public override string Name => "最大魔法值加成"; - public override string Description => $"增加角色 {加成比例 * 100:0.##}% [ {实际加成:0.##} ] 点最大魔法值。" + (!TargetSelf ? $"来自:[ {Source} ]" + (Item != null ? $" 的 [ {Item.Name} ]" : "") : ""); + public override string Description => $"增加角色 {加成比例 * 100:0.##}% [ {实际加成:0.##} ] 点最大魔法值。" + (Source != null && Skill.Character != Source ? $"来自:[ {Source} ]" + (Skill.Item != null ? $" 的 [ {Skill.Item.Name} ]" : "") : ""); public override EffectType EffectType => EffectType.Item; - public override bool TargetSelf => true; - - public Item? Item { get; } + private readonly double 加成比例 = 0; private double 实际加成 = 0; @@ -24,14 +22,12 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects public override void OnEffectLost(Character character) { character.ExMP2 -= 实际加成; - 实际加成 = 0; } - public ExMaxMP2(Skill skill, Dictionary args, Character? source = null, Item? item = null) : base(skill, args) + public ExMaxMP2(Skill skill, Dictionary args, Character? source = null) : base(skill, args) { GamingQueue = skill.GamingQueue; Source = source; - Item = item; if (Values.Count > 0) { string key = Values.Keys.FirstOrDefault(s => s.Equals("exmp", StringComparison.CurrentCultureIgnoreCase)) ?? ""; diff --git a/OshimaModules/Effects/OpenEffects/ExPDR.cs b/OshimaModules/Effects/OpenEffects/ExPDR.cs index 671670e..fd51210 100644 --- a/OshimaModules/Effects/OpenEffects/ExPDR.cs +++ b/OshimaModules/Effects/OpenEffects/ExPDR.cs @@ -7,11 +7,9 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects { public override long Id => (long)EffectID.ExPDR; public override string Name => "物理伤害减免加成"; - public override string Description => $"增加角色 {实际加成 * 100:0.##}% 物理伤害减免。" + (!TargetSelf ? $"来自:[ {Source} ]" + (Item != null ? $" 的 [ {Item.Name} ]" : "") : ""); + public override string Description => $"增加角色 {实际加成 * 100:0.##}% 物理伤害减免。" + (Source != null && Skill.Character != Source ? $"来自:[ {Source} ]" + (Skill.Item != null ? $" 的 [ {Skill.Item.Name} ]" : "") : ""); public override EffectType EffectType => EffectType.Item; - public override bool TargetSelf => true; - - public Item? Item { get; } + private readonly double 实际加成 = 0; public override void OnEffectGained(Character character) @@ -24,11 +22,10 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects character.ExPDR -= 实际加成; } - public ExPDR(Skill skill, Dictionary args, Character? source = null, Item? item = null) : base(skill, args) + public ExPDR(Skill skill, Dictionary args, Character? source = null) : base(skill, args) { GamingQueue = skill.GamingQueue; Source = source; - Item = item; if (Values.Count > 0) { string key = Values.Keys.FirstOrDefault(s => s.Equals("expdr", StringComparison.CurrentCultureIgnoreCase)) ?? ""; diff --git a/OshimaModules/Effects/OpenEffects/ExSPD.cs b/OshimaModules/Effects/OpenEffects/ExSPD.cs index 618d8f8..9a9c7b6 100644 --- a/OshimaModules/Effects/OpenEffects/ExSPD.cs +++ b/OshimaModules/Effects/OpenEffects/ExSPD.cs @@ -7,11 +7,9 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects { public override long Id => (long)EffectID.ExSPD; public override string Name => "行动速度加成"; - public override string Description => $"增加角色 {实际加成:0.##} 点行动速度。" + (!TargetSelf ? $"来自:[ {Source} ]" + (Item != null ? $" 的 [ {Item.Name} ]" : "") : ""); + public override string Description => $"增加角色 {实际加成:0.##} 点行动速度。" + (Source != null && Skill.Character != Source ? $"来自:[ {Source} ]" + (Skill.Item != null ? $" 的 [ {Skill.Item.Name} ]" : "") : ""); public override EffectType EffectType => EffectType.Item; - public override bool TargetSelf => true; - - public Item? Item { get; } + private readonly double 实际加成 = 0; public override void OnEffectGained(Character character) @@ -24,11 +22,10 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects character.ExSPD -= 实际加成; } - public ExSPD(Skill skill, Dictionary args, Character? source = null, Item? item = null) : base(skill, args) + public ExSPD(Skill skill, Dictionary args, Character? source = null) : base(skill, args) { GamingQueue = skill.GamingQueue; Source = source; - Item = item; if (Values.Count > 0) { string key = Values.Keys.FirstOrDefault(s => s.Equals("exspd", StringComparison.CurrentCultureIgnoreCase)) ?? ""; diff --git a/OshimaModules/Effects/OpenEffects/ExSTR.cs b/OshimaModules/Effects/OpenEffects/ExSTR.cs index 90796a2..ce92eb6 100644 --- a/OshimaModules/Effects/OpenEffects/ExSTR.cs +++ b/OshimaModules/Effects/OpenEffects/ExSTR.cs @@ -7,11 +7,9 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects { public override long Id => (long)EffectID.ExSTR; public override string Name => "力量加成"; - public override string Description => $"增加角色 {实际加成:0.##} 点力量。" + (!TargetSelf ? $"来自:[ {Source} ]" + (Item != null ? $" 的 [ {Item.Name} ]" : "") : ""); + public override string Description => $"增加角色 {实际加成:0.##} 点力量。" + (Source != null && Skill.Character != Source ? $"来自:[ {Source} ]" + (Skill.Item != null ? $" 的 [ {Skill.Item.Name} ]" : "") : ""); public override EffectType EffectType => EffectType.Item; - public override bool TargetSelf => true; - - public Item? Item { get; } + private readonly double 实际加成 = 0; public override void OnEffectGained(Character character) @@ -24,11 +22,10 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects character.ExSTR -= 实际加成; } - public ExSTR(Skill skill, Dictionary args, Character? source = null, Item? item = null) : base(skill, args) + public ExSTR(Skill skill, Dictionary args, Character? source = null) : base(skill, args) { GamingQueue = skill.GamingQueue; Source = source; - Item = item; if (Values.Count > 0) { string key = Values.Keys.FirstOrDefault(s => s.Equals("exstr", StringComparison.CurrentCultureIgnoreCase)) ?? ""; diff --git a/OshimaModules/Effects/OpenEffects/ExSTR2.cs b/OshimaModules/Effects/OpenEffects/ExSTR2.cs index 743083c..ef5dd92 100644 --- a/OshimaModules/Effects/OpenEffects/ExSTR2.cs +++ b/OshimaModules/Effects/OpenEffects/ExSTR2.cs @@ -7,11 +7,9 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects { public override long Id => (long)EffectID.ExSTR2; public override string Name => "力量加成"; - public override string Description => $"增加角色 {加成比例 * 100:0.##}% [ {实际加成:0.##} ] 点力量。" + (!TargetSelf ? $"来自:[ {Source} ]" + (Item != null ? $" 的 [ {Item.Name} ]" : "") : ""); + public override string Description => $"增加角色 {加成比例 * 100:0.##}% [ {实际加成:0.##} ] 点力量。" + (Source != null && Skill.Character != Source ? $"来自:[ {Source} ]" + (Skill.Item != null ? $" 的 [ {Skill.Item.Name} ]" : "") : ""); public override EffectType EffectType => EffectType.Item; - public override bool TargetSelf => true; - - public Item? Item { get; } + private readonly double 加成比例 = 0; private double 实际加成 = 0; @@ -24,14 +22,12 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects public override void OnEffectLost(Character character) { character.ExSTR -= 实际加成; - 实际加成 = 0; } - public ExSTR2(Skill skill, Dictionary args, Character? source = null, Item? item = null) : base(skill, args) + public ExSTR2(Skill skill, Dictionary args, Character? source = null) : base(skill, args) { GamingQueue = skill.GamingQueue; Source = source; - Item = item; if (Values.Count > 0) { string key = Values.Keys.FirstOrDefault(s => s.Equals("exstr", StringComparison.CurrentCultureIgnoreCase)) ?? ""; diff --git a/OshimaModules/Effects/OpenEffects/MagicalPenetration.cs b/OshimaModules/Effects/OpenEffects/MagicalPenetration.cs index 7a7a67e..f310bf3 100644 --- a/OshimaModules/Effects/OpenEffects/MagicalPenetration.cs +++ b/OshimaModules/Effects/OpenEffects/MagicalPenetration.cs @@ -7,11 +7,9 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects { public override long Id => (long)EffectID.MagicalPenetration; public override string Name => "魔法穿透加成"; - public override string Description => $"增加角色 {实际加成 * 100:0.##}% 魔法穿透。" + (!TargetSelf ? $"来自:[ {Source} ]" + (Item != null ? $" 的 [ {Item.Name} ]" : "") : ""); + public override string Description => $"增加角色 {实际加成 * 100:0.##}% 魔法穿透。" + (Source != null && Skill.Character != Source ? $"来自:[ {Source} ]" + (Skill.Item != null ? $" 的 [ {Skill.Item.Name} ]" : "") : ""); public override EffectType EffectType => EffectType.Item; - public override bool TargetSelf => true; - - public Item? Item { get; } + private readonly double 实际加成 = 0; public override void OnEffectGained(Character character) @@ -24,11 +22,10 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects character.MagicalPenetration -= 实际加成; } - public MagicalPenetration(Skill skill, Dictionary args, Character? source = null, Item? item = null) : base(skill, args) + public MagicalPenetration(Skill skill, Dictionary args, Character? source = null) : base(skill, args) { GamingQueue = skill.GamingQueue; Source = source; - Item = item; if (Values.Count > 0) { string key = Values.Keys.FirstOrDefault(s => s.Equals("exmpt", StringComparison.CurrentCultureIgnoreCase)) ?? ""; diff --git a/OshimaModules/Effects/OpenEffects/NormalAttackHardTimeReduce.cs b/OshimaModules/Effects/OpenEffects/NormalAttackHardTimeReduce.cs index 26b77fc..f213524 100644 --- a/OshimaModules/Effects/OpenEffects/NormalAttackHardTimeReduce.cs +++ b/OshimaModules/Effects/OpenEffects/NormalAttackHardTimeReduce.cs @@ -7,11 +7,9 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects { public override long Id => (long)EffectID.NormalAttackHardTimeReduce; public override string Name => Skill.Name; - public override string Description => $"减少角色的普通攻击 {实际硬直时间减少:0.##} 硬直时间。" + (!TargetSelf ? $"来自:[ {Source} ]" + (Item != null ? $" 的 [ {Item.Name} ]" : "") : ""); + public override string Description => $"减少角色的普通攻击 {实际硬直时间减少:0.##} 硬直时间。" + (Source != null && Skill.Character != Source ? $"来自:[ {Source} ]" + (Skill.Item != null ? $" 的 [ {Skill.Item.Name} ]" : "") : ""); public override EffectType EffectType => EffectType.Item; - public override bool TargetSelf => true; - - public Item? Item { get; } + private readonly double 实际硬直时间减少 = 0; public override void OnEffectGained(Character character) @@ -24,11 +22,10 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects character.NormalAttack.HardnessTime += 实际硬直时间减少; } - public NormalAttackHardTimeReduce(Skill skill, Dictionary args, Character? source = null, Item? item = null) : base(skill, args) + public NormalAttackHardTimeReduce(Skill skill, Dictionary args, Character? source = null) : base(skill, args) { GamingQueue = skill.GamingQueue; Source = source; - Item = item; if (Values.Count > 0) { string key = Values.Keys.FirstOrDefault(s => s.Equals("nahtr", StringComparison.CurrentCultureIgnoreCase)) ?? ""; diff --git a/OshimaModules/Effects/OpenEffects/NormalAttackHardTimeReduce2.cs b/OshimaModules/Effects/OpenEffects/NormalAttackHardTimeReduce2.cs index 3c49c1a..c1481bb 100644 --- a/OshimaModules/Effects/OpenEffects/NormalAttackHardTimeReduce2.cs +++ b/OshimaModules/Effects/OpenEffects/NormalAttackHardTimeReduce2.cs @@ -7,11 +7,9 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects { public override long Id => (long)EffectID.NormalAttackHardTimeReduce2; public override string Name => Skill.Name; - public override string Description => $"减少角色的普通攻击 {减少比例 * 100:0.##}% 硬直时间。" + (!TargetSelf ? $"来自:[ {Source} ]" + (Item != null ? $" 的 [ {Item.Name} ]" : "") : ""); + public override string Description => $"减少角色的普通攻击 {减少比例 * 100:0.##}% 硬直时间。" + (Source != null && Skill.Character != Source ? $"来自:[ {Source} ]" + (Skill.Item != null ? $" 的 [ {Skill.Item.Name} ]" : "") : ""); public override EffectType EffectType => EffectType.Item; - public override bool TargetSelf => true; - - public Item? Item { get; } + private readonly double 减少比例 = 0; public override void OnEffectGained(Character character) @@ -24,11 +22,10 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects character.NormalAttack.HardnessTime += character.NormalAttack.HardnessTime * 减少比例; } - public NormalAttackHardTimeReduce2(Skill skill, Dictionary args, Character? source = null, Item? item = null) : base(skill, args) + public NormalAttackHardTimeReduce2(Skill skill, Dictionary args, Character? source = null) : base(skill, args) { GamingQueue = skill.GamingQueue; Source = source; - Item = item; if (Values.Count > 0) { string key = Values.Keys.FirstOrDefault(s => s.Equals("nahtr", StringComparison.CurrentCultureIgnoreCase)) ?? ""; diff --git a/OshimaModules/Effects/OpenEffects/PhysicalPenetration.cs b/OshimaModules/Effects/OpenEffects/PhysicalPenetration.cs index e59efca..5b22a3c 100644 --- a/OshimaModules/Effects/OpenEffects/PhysicalPenetration.cs +++ b/OshimaModules/Effects/OpenEffects/PhysicalPenetration.cs @@ -7,11 +7,9 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects { public override long Id => (long)EffectID.PhysicalPenetration; public override string Name => "物理穿透加成"; - public override string Description => $"增加角色 {实际加成 * 100:0.##}% 物理穿透。" + (!TargetSelf ? $"来自:[ {Source} ]" + (Item != null ? $" 的 [ {Item.Name} ]" : "") : ""); + public override string Description => $"增加角色 {实际加成 * 100:0.##}% 物理穿透。" + (Source != null && Skill.Character != Source ? $"来自:[ {Source} ]" + (Skill.Item != null ? $" 的 [ {Skill.Item.Name} ]" : "") : ""); public override EffectType EffectType => EffectType.Item; - public override bool TargetSelf => true; - - public Item? Item { get; } + private readonly double 实际加成 = 0; public override void OnEffectGained(Character character) @@ -24,11 +22,10 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects character.PhysicalPenetration -= 实际加成; } - public PhysicalPenetration(Skill skill, Dictionary args, Character? source = null, Item? item = null) : base(skill, args) + public PhysicalPenetration(Skill skill, Dictionary args, Character? source = null) : base(skill, args) { GamingQueue = skill.GamingQueue; Source = source; - Item = item; if (Values.Count > 0) { string key = Values.Keys.FirstOrDefault(s => s.Equals("exppt", StringComparison.CurrentCultureIgnoreCase)) ?? ""; diff --git a/OshimaModules/Effects/OpenEffects/SkillHardTimeReduce.cs b/OshimaModules/Effects/OpenEffects/SkillHardTimeReduce.cs index 3c9a0c3..ab07136 100644 --- a/OshimaModules/Effects/OpenEffects/SkillHardTimeReduce.cs +++ b/OshimaModules/Effects/OpenEffects/SkillHardTimeReduce.cs @@ -7,11 +7,9 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects { public override long Id => (long)EffectID.SkillHardTimeReduce; public override string Name => Skill.Name; - public override string Description => $"减少角色的所有主动技能 {实际硬直时间减少:0.##} 硬直时间。" + (!TargetSelf ? $"来自:[ {Source} ]" + (Item != null ? $" 的 [ {Item.Name} ]" : "") : ""); + public override string Description => $"减少角色的所有主动技能 {实际硬直时间减少:0.##} 硬直时间。" + (Source != null && Skill.Character != Source ? $"来自:[ {Source} ]" + (Skill.Item != null ? $" 的 [ {Skill.Item.Name} ]" : "") : ""); public override EffectType EffectType => EffectType.Item; - public override bool TargetSelf => true; - - public Item? Item { get; } + private readonly double 实际硬直时间减少 = 0; public override void OnEffectGained(Character character) @@ -40,11 +38,10 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects } } - public SkillHardTimeReduce(Skill skill, Dictionary args, Character? source = null, Item? item = null) : base(skill, args) + public SkillHardTimeReduce(Skill skill, Dictionary args, Character? source = null) : base(skill, args) { GamingQueue = skill.GamingQueue; Source = source; - Item = item; if (Values.Count > 0) { string key = Values.Keys.FirstOrDefault(s => s.Equals("shtr", StringComparison.CurrentCultureIgnoreCase)) ?? ""; diff --git a/OshimaModules/Effects/OpenEffects/SkillHardTimeReduce2.cs b/OshimaModules/Effects/OpenEffects/SkillHardTimeReduce2.cs index a4b600e..62bd61c 100644 --- a/OshimaModules/Effects/OpenEffects/SkillHardTimeReduce2.cs +++ b/OshimaModules/Effects/OpenEffects/SkillHardTimeReduce2.cs @@ -7,11 +7,9 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects { public override long Id => (long)EffectID.SkillHardTimeReduce2; public override string Name => Skill.Name; - public override string Description => $"减少角色的所有主动技能 {减少比例 * 100:0.##}% 硬直时间。" + (!TargetSelf ? $"来自:[ {Source} ]" + (Item != null ? $" 的 [ {Item.Name} ]" : "") : ""); + public override string Description => $"减少角色的所有主动技能 {减少比例 * 100:0.##}% 硬直时间。" + (Source != null && Skill.Character != Source ? $"来自:[ {Source} ]" + (Skill.Item != null ? $" 的 [ {Skill.Item.Name} ]" : "") : ""); public override EffectType EffectType => EffectType.Item; - public override bool TargetSelf => true; - public Item? Item { get; } private readonly double 减少比例 = 0; public override void OnEffectGained(Character character) @@ -40,11 +38,10 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects } } - public SkillHardTimeReduce2(Skill skill, Dictionary args, Character? source = null, Item? item = null) : base(skill, args) + public SkillHardTimeReduce2(Skill skill, Dictionary args, Character? source = null) : base(skill, args) { GamingQueue = skill.GamingQueue; Source = source; - Item = item; if (Values.Count > 0) { string key = Values.Keys.FirstOrDefault(s => s.Equals("shtr", StringComparison.CurrentCultureIgnoreCase)) ?? ""; diff --git a/OshimaModules/Effects/PassiveEffects/眩晕.cs b/OshimaModules/Effects/PassiveEffects/眩晕.cs index f7c82af..7b15a65 100644 --- a/OshimaModules/Effects/PassiveEffects/眩晕.cs +++ b/OshimaModules/Effects/PassiveEffects/眩晕.cs @@ -9,7 +9,6 @@ namespace Oshima.FunGame.OshimaModules.Effects.PassiveEffects public override string Name => "眩晕"; public override string Description => $"此角色被眩晕了,不能行动。来自:[ {Source} ] 的 [ {Skill.Name} ]"; public override EffectType EffectType => EffectType.Stun; - public override bool TargetSelf => true; public override Character Source => _sourceCharacter; public override bool Durative => _durative; public override double Duration => _duration; diff --git a/OshimaModules/Effects/PassiveEffects/累积之压标记.cs b/OshimaModules/Effects/PassiveEffects/累积之压标记.cs index 2cd1005..b2648dd 100644 --- a/OshimaModules/Effects/PassiveEffects/累积之压标记.cs +++ b/OshimaModules/Effects/PassiveEffects/累积之压标记.cs @@ -9,7 +9,6 @@ namespace Oshima.FunGame.OshimaModules.Effects.PassiveEffects public override string Name => "累积之压标记"; public override string Description => $"此角色持有累积之压标记,已累计 {MarkLevel} 层。来自:[ {Source} ]"; public override EffectType EffectType => EffectType.Mark; - public override bool TargetSelf => true; public override Character Source => _sourceCharacter; public int MarkLevel { get; set; } = 1; diff --git a/OshimaModules/Effects/SkillEffects/基于属性的伤害.cs b/OshimaModules/Effects/SkillEffects/基于属性的伤害.cs index 4d82239..dd3d49c 100644 --- a/OshimaModules/Effects/SkillEffects/基于属性的伤害.cs +++ b/OshimaModules/Effects/SkillEffects/基于属性的伤害.cs @@ -7,8 +7,7 @@ namespace Oshima.FunGame.OshimaModules.Effects.SkillEffects { public override long Id => Skill.Id; public override string Name => Skill.Name; - public override string Description => $"对目标{(TargetCount > 1 ? $"至多 {TargetCount} 个" : "")}敌人造成 {BaseDamage:0.##} + {AttributeCoefficient * 100:0.##}% {CharacterSet.GetPrimaryAttributeName(基于属性)} [ {Damage:0.##} ] 点{(IsMagic ? CharacterSet.GetMagicDamageName(MagicType) : "物理伤害")}。"; - public override bool TargetSelf => false; + public override string Description => $"对目标{(Skill.CanSelectTargetCount > 1 ? $"至多 {Skill.CanSelectTargetCount} 个" : "")}敌人造成 {BaseDamage:0.##} + {AttributeCoefficient * 100:0.##}% {CharacterSet.GetPrimaryAttributeName(基于属性)} [ {Damage:0.##} ] 点{(IsMagic ? CharacterSet.GetMagicDamageName(MagicType) : "物理伤害")}。"; private double BaseDamage => Skill.Level > 0 ? 基础数值伤害 + 基础伤害等级成长 * (Skill.Level - 1) : 基础数值伤害; private double AttributeCoefficient => Skill.Level > 0 ? 基础属性系数 + 基础系数等级成长 * (Skill.Level - 1) : 基础属性系数; private double Damage diff --git a/OshimaModules/Effects/SkillEffects/基于攻击力的伤害_带基础伤害.cs b/OshimaModules/Effects/SkillEffects/基于攻击力的伤害_带基础伤害.cs index d71a216..1cdaf3d 100644 --- a/OshimaModules/Effects/SkillEffects/基于攻击力的伤害_带基础伤害.cs +++ b/OshimaModules/Effects/SkillEffects/基于攻击力的伤害_带基础伤害.cs @@ -7,12 +7,11 @@ namespace Oshima.FunGame.OshimaModules.Effects.SkillEffects { public override long Id => Skill.Id; public override string Name => Skill.Name; - public override string Description => $"对目标{(TargetCount > 1 ? $"至多 {TargetCount} 个" : "")}敌人造成 {BaseDamage:0.##} + {ATKCoefficient * 100:0.##}% 攻击力 [ {Damage:0.##} ] 点{(IsMagic ? CharacterSet.GetMagicDamageName(MagicType) : "物理伤害")}。"; - public override bool TargetSelf => false; + public override string Description => $"对目标{(Skill.CanSelectTargetCount > 1 ? $"至多 {Skill.CanSelectTargetCount} 个" : "")}敌人造成 {BaseDamage:0.##} + {ATKCoefficient * 100:0.##}% 攻击力 [ {Damage:0.##} ] 点{(IsMagic ? CharacterSet.GetMagicDamageName(MagicType) : "物理伤害")}。"; + private double BaseDamage => Skill.Level > 0 ? 基础数值伤害 + 基础伤害等级成长 * (Skill.Level - 1) : 基础数值伤害; private double ATKCoefficient => Skill.Level > 0 ? 基础攻击力系数 + 基础系数等级成长 * (Skill.Level - 1) : 基础攻击力系数; private double Damage => BaseDamage + (ATKCoefficient * Skill.Character?.ATK ?? 0); - private double 基础数值伤害 { get; set; } = 100; private double 基础伤害等级成长 { get; set; } = 50; private double 基础攻击力系数 { get; set; } = 0.2; diff --git a/OshimaModules/Effects/SkillEffects/基于攻击力的伤害_无基础伤害.cs b/OshimaModules/Effects/SkillEffects/基于攻击力的伤害_无基础伤害.cs index 780ca1e..6bb2cd6 100644 --- a/OshimaModules/Effects/SkillEffects/基于攻击力的伤害_无基础伤害.cs +++ b/OshimaModules/Effects/SkillEffects/基于攻击力的伤害_无基础伤害.cs @@ -7,11 +7,10 @@ namespace Oshima.FunGame.OshimaModules.Effects.SkillEffects { public override long Id => Skill.Id; public override string Name => Skill.Name; - public override string Description => $"对目标{(TargetCount > 1 ? $"至多 {TargetCount} 个" : "")}敌人造成 {ATKCoefficient * 100:0.##}% 攻击力 [ {Damage:0.##} ] 点{(IsMagic ? CharacterSet.GetMagicDamageName(MagicType) : "物理伤害")}。"; - public override bool TargetSelf => false; + public override string Description => $"对目标{(Skill.CanSelectTargetCount > 1 ? $"至多 {Skill.CanSelectTargetCount} 个" : "")}敌人造成 {ATKCoefficient * 100:0.##}% 攻击力 [ {Damage:0.##} ] 点{(IsMagic ? CharacterSet.GetMagicDamageName(MagicType) : "物理伤害")}。"; + private double ATKCoefficient => Skill.Level > 0 ? 基础攻击力系数 + 基础系数等级成长 * (Skill.Level - 1) : 基础攻击力系数; private double Damage => ATKCoefficient * Skill.Character?.ATK ?? 0; - private double 基础攻击力系数 { get; set; } = 1.5; private double 基础系数等级成长 { get; set; } = 0.25; private bool IsMagic { get; set; } = true; diff --git a/OshimaModules/Effects/SkillEffects/基于核心属性的伤害.cs b/OshimaModules/Effects/SkillEffects/基于核心属性的伤害.cs index fa52e38..a4ddd1a 100644 --- a/OshimaModules/Effects/SkillEffects/基于核心属性的伤害.cs +++ b/OshimaModules/Effects/SkillEffects/基于核心属性的伤害.cs @@ -7,12 +7,11 @@ namespace Oshima.FunGame.OshimaModules.Effects.SkillEffects { public override long Id => Skill.Id; public override string Name => Skill.Name; - public override string Description => $"对目标{(TargetCount > 1 ? $"至多 {TargetCount} 个" : "")}敌人造成 {BaseDamage:0.##} + {AttributeCoefficient * 100:0.##}% {CharacterSet.GetPrimaryAttributeName(Skill.Character?.PrimaryAttribute ?? PrimaryAttribute.INT)} [ {Damage:0.##} ] 点{(IsMagic ? CharacterSet.GetMagicDamageName(MagicType) : "物理伤害")}。"; - public override bool TargetSelf => false; + public override string Description => $"对目标{(Skill.CanSelectTargetCount > 1 ? $"至多 {Skill.CanSelectTargetCount} 个" : "")}敌人造成 {BaseDamage:0.##} + {AttributeCoefficient * 100:0.##}% {CharacterSet.GetPrimaryAttributeName(Skill.Character?.PrimaryAttribute ?? PrimaryAttribute.INT)} [ {Damage:0.##} ] 点{(IsMagic ? CharacterSet.GetMagicDamageName(MagicType) : "物理伤害")}。"; + private double BaseDamage => Skill.Level > 0 ? 基础数值伤害 + 基础伤害等级成长 * (Skill.Level - 1) : 基础数值伤害; private double AttributeCoefficient => Skill.Level > 0 ? 基础属性系数 + 基础系数等级成长 * (Skill.Level - 1) : 基础属性系数; private double Damage => BaseDamage + (AttributeCoefficient * Skill.Character?.PrimaryAttributeValue ?? 0); - private double 基础数值伤害 { get; set; } = 100; private double 基础伤害等级成长 { get; set; } = 50; private double 基础属性系数 { get; set; } = 0.4; diff --git a/OshimaModules/Effects/SkillEffects/百分比回复生命值.cs b/OshimaModules/Effects/SkillEffects/百分比回复生命值.cs index 8bb6c39..48d17a8 100644 --- a/OshimaModules/Effects/SkillEffects/百分比回复生命值.cs +++ b/OshimaModules/Effects/SkillEffects/百分比回复生命值.cs @@ -6,8 +6,7 @@ namespace Oshima.FunGame.OshimaModules.Effects.SkillEffects { public override long Id => Skill.Id; public override string Name => Skill.Name; - public override string Description => $"为{(TargetCount > 1 ? $"至多 {TargetCount} 个" : "")}目标回复其最大生命值 {百分比 * 100:0.##}% 点生命值。"; - public override bool TargetSelf => true; + public override string Description => $"为{(Skill.CanSelectTargetCount > 1 ? $"至多 {Skill.CanSelectTargetCount} 个" : "")}目标回复其最大生命值 {百分比 * 100:0.##}% 点生命值。"; private double 基础回复 { get; set; } = 0.03; private double 回复成长 { get; set; } = 0.03; diff --git a/OshimaModules/Effects/SkillEffects/纯数值伤害.cs b/OshimaModules/Effects/SkillEffects/纯数值伤害.cs index 246c336..7b98e38 100644 --- a/OshimaModules/Effects/SkillEffects/纯数值伤害.cs +++ b/OshimaModules/Effects/SkillEffects/纯数值伤害.cs @@ -7,10 +7,9 @@ namespace Oshima.FunGame.OshimaModules.Effects.SkillEffects { public override long Id => Skill.Id; public override string Name => Skill.Name; - public override string Description => $"对目标{(TargetCount > 1 ? $"至多 {TargetCount} 个" : "")}敌人造成 {Damage:0.##} 点{(IsMagic ? CharacterSet.GetMagicDamageName(MagicType) : "物理伤害")}。"; - public override bool TargetSelf => false; + public override string Description => $"对目标{(Skill.CanSelectTargetCount > 1 ? $"至多 {Skill.CanSelectTargetCount} 个" : "")}敌人造成 {Damage:0.##} 点{(IsMagic ? CharacterSet.GetMagicDamageName(MagicType) : "物理伤害")}。"; + private double Damage => Skill.Level > 0 ? 基础数值伤害 + 基础伤害等级成长 * (Skill.Level - 1) : 基础数值伤害; - private double 基础数值伤害 { get; set; } = 200; private double 基础伤害等级成长 { get; set; } = 100; private bool IsMagic { get; set; } = true; diff --git a/OshimaModules/Effects/SkillEffects/纯数值回复生命值.cs b/OshimaModules/Effects/SkillEffects/纯数值回复生命值.cs index 731a720..227b76f 100644 --- a/OshimaModules/Effects/SkillEffects/纯数值回复生命值.cs +++ b/OshimaModules/Effects/SkillEffects/纯数值回复生命值.cs @@ -6,9 +6,8 @@ namespace Oshima.FunGame.OshimaModules.Effects.SkillEffects { public override long Id => Skill.Id; public override string Name => Skill.Name; - public override string Description => $"为{(TargetCount > 1 ? $"至多 {TargetCount} 个" : "")}目标回复 {Heal:0.##} 点生命值。"; - public override bool TargetSelf => true; - + public override string Description => $"为{(Skill.CanSelectTargetCount > 1 ? $"至多 {Skill.CanSelectTargetCount} 个" : "")}目标回复 {Heal:0.##} 点生命值。"; + private double Heal => Skill.Level > 0 ? 基础回复 + 回复成长 * (Skill.Level - 1) : 基础回复; private double 基础回复 { get; set; } = 100; private double 回复成长 { get; set; } = 30; diff --git a/OshimaModules/Effects/SkillEffects/造成眩晕.cs b/OshimaModules/Effects/SkillEffects/造成眩晕.cs index 24194e0..34e8b66 100644 --- a/OshimaModules/Effects/SkillEffects/造成眩晕.cs +++ b/OshimaModules/Effects/SkillEffects/造成眩晕.cs @@ -7,9 +7,8 @@ namespace Oshima.FunGame.OshimaModules.Effects.SkillEffects { public override long Id => Skill.Id; public override string Name => Skill.Name; - public override string Description => $"对目标{(TargetCount > 1 ? $"至多 {TargetCount} 个" : "")}敌人造成眩晕 {眩晕时间}。"; - public override bool TargetSelf => false; - + public override string Description => $"对目标{(Skill.CanSelectTargetCount > 1 ? $"至多 {Skill.CanSelectTargetCount} 个" : "")}敌人造成眩晕 {眩晕时间}。"; + private string 眩晕时间 => _durative && _duration > 0 ? _duration + " 时间" : (!_durative && _durationTurn > 0 ? _durationTurn + " 回合" : "0 时间"); private readonly bool _durative; private readonly double _duration; diff --git a/OshimaModules/Items/Accessory/攻击之爪.cs b/OshimaModules/Items/Accessory/攻击之爪.cs index ed4f2be..f30cb41 100644 --- a/OshimaModules/Items/Accessory/攻击之爪.cs +++ b/OshimaModules/Items/Accessory/攻击之爪.cs @@ -1,6 +1,6 @@ using Milimoe.FunGame.Core.Entity; using Milimoe.FunGame.Core.Library.Constant; -using Oshima.FunGame.OshimaModules.Effects.ItemEffects; +using Oshima.FunGame.OshimaModules.Effects.OpenEffects; using Oshima.FunGame.OshimaModules.Skills; namespace Oshima.FunGame.OshimaModules.Items @@ -54,7 +54,11 @@ namespace Oshima.FunGame.OshimaModules.Items { Level = 1; Item = item; - Effects.Add(new 攻击力加成(this, exATK, character, item)); + Dictionary values = new() + { + { "exatk", exATK } + }; + Effects.Add(new ExATK(this, values, character)); } public override IEnumerable AddInactiveEffectToCharacter() diff --git a/OshimaModules/Items/Weapon/独奏弓.cs b/OshimaModules/Items/Weapon/独奏弓.cs index 05f8d69..bbdbf68 100644 --- a/OshimaModules/Items/Weapon/独奏弓.cs +++ b/OshimaModules/Items/Weapon/独奏弓.cs @@ -1,6 +1,6 @@ using Milimoe.FunGame.Core.Entity; using Milimoe.FunGame.Core.Library.Constant; -using Oshima.FunGame.OshimaModules.Effects.ItemEffects; +using Oshima.FunGame.OshimaModules.Effects.OpenEffects; namespace Oshima.FunGame.OshimaModules.Items { @@ -31,8 +31,13 @@ namespace Oshima.FunGame.OshimaModules.Items { Level = 1; Item = item; - Effects.Add(new 攻击力加成(this, 攻击力加成, character, item)); - Effects.Add(new 普攻硬直时间减少(this, 硬直时间减少, character, item)); + Dictionary values = new() + { + { "exatk", 攻击力加成 }, + { "hatr", 硬直时间减少 } + }; + Effects.Add(new ExATK(this, values, character)); + Effects.Add(new NormalAttackHardTimeReduce(this, values, character)); } public override IEnumerable AddInactiveEffectToCharacter() diff --git a/OshimaModules/Modules/SkillModule.cs b/OshimaModules/Modules/SkillModule.cs index a74815e..e393d28 100644 --- a/OshimaModules/Modules/SkillModule.cs +++ b/OshimaModules/Modules/SkillModule.cs @@ -1,5 +1,6 @@ using Milimoe.FunGame.Core.Api.Utility; using Milimoe.FunGame.Core.Entity; +using Oshima.FunGame.OshimaModules.Effects.ItemEffects; using Oshima.FunGame.OshimaModules.Effects.OpenEffects; using Oshima.FunGame.OshimaModules.Items; using Oshima.FunGame.OshimaModules.Skills; @@ -117,6 +118,11 @@ namespace Oshima.FunGame.OshimaModules EffectID.NormalAttackHardTimeReduce2 => new NormalAttackHardTimeReduce2(skill, dict), EffectID.ExMaxHP2 => new ExMaxHP2(skill, dict), EffectID.ExMaxMP2 => new ExMaxMP2(skill, dict), + EffectID.RecoverHP => new RecoverHP(skill, dict), + EffectID.RecoverMP => new RecoverMP(skill, dict), + EffectID.RecoverHP2 => new RecoverHP2(skill, dict), + EffectID.RecoverMP2 => new RecoverMP2(skill, dict), + EffectID.GetEP => new GetEP(skill, dict), _ => null }; } diff --git a/OshimaModules/Skills/ColdBlue/嗜血本能.cs b/OshimaModules/Skills/ColdBlue/嗜血本能.cs index 809fe62..1f3bc3b 100644 --- a/OshimaModules/Skills/ColdBlue/嗜血本能.cs +++ b/OshimaModules/Skills/ColdBlue/嗜血本能.cs @@ -12,6 +12,8 @@ namespace Oshima.FunGame.OshimaModules.Skills public override double EPCost => 100; public override double CD => 42 - 1 * (Level - 1); public override double HardnessTime { get; set; } = 12; + public override bool CanSelectSelf => true; + public override bool CanSelectEnemy => false; public 嗜血本能(Character? character = null) : base(SkillType.SuperSkill, character) { @@ -24,7 +26,6 @@ namespace Oshima.FunGame.OshimaModules.Skills public override long Id => Skill.Id; public override string Name => Skill.Name; public override string Description => $"{Duration} 时间内,攻击拥有标记的角色将根据标记层数获得 {吸血 * 100:0.##}% 吸血每层。"; - public override bool TargetSelf => true; public override bool Durative => true; public override double Duration => 30; diff --git a/OshimaModules/Skills/ColdBlue/累积之压.cs b/OshimaModules/Skills/ColdBlue/累积之压.cs index 77ae4a5..5b62574 100644 --- a/OshimaModules/Skills/ColdBlue/累积之压.cs +++ b/OshimaModules/Skills/ColdBlue/累积之压.cs @@ -26,8 +26,7 @@ namespace Oshima.FunGame.OshimaModules.Skills public override long Id => Skill.Id; public override string Name => Skill.Name; public override string Description => $"每次造成伤害都可以叠一层标记,累计 4 层时回收该角色所有标记并造成眩晕 1 回合,额外对该角色造成 {系数 * 100:0.##}% 最大生命值的物理伤害。"; - public override bool TargetSelf => true; - + private readonly double 系数 = 0.12; private bool 是否是嵌套伤害 = false; diff --git a/OshimaModules/Skills/MagicalGirl/毁灭之势.cs b/OshimaModules/Skills/MagicalGirl/毁灭之势.cs index 2cf475d..459d9b3 100644 --- a/OshimaModules/Skills/MagicalGirl/毁灭之势.cs +++ b/OshimaModules/Skills/MagicalGirl/毁灭之势.cs @@ -25,8 +25,7 @@ namespace Oshima.FunGame.OshimaModules.Skills public override long Id => Skill.Id; public override string Name => Skill.Name; public override string Description => $"每时间提升 {伤害提升 * 100:0.##}% 所有伤害,无上限,但受到伤害时效果清零。" + (累计伤害 > 0 ? $"(当前总提升:{累计伤害 * 100:0.##}%)" : ""); - public override bool TargetSelf => true; - + private readonly double 伤害提升 = 0.04; private double 累计伤害 = 0; diff --git a/OshimaModules/Skills/MagicalGirl/绝对领域.cs b/OshimaModules/Skills/MagicalGirl/绝对领域.cs index 645bc5b..b66638d 100644 --- a/OshimaModules/Skills/MagicalGirl/绝对领域.cs +++ b/OshimaModules/Skills/MagicalGirl/绝对领域.cs @@ -11,6 +11,8 @@ namespace Oshima.FunGame.OshimaModules.Skills public override double EPCost => Math.Max(100, Character?.EP ?? 100); public override double CD => 32 + (1 * (Level - 1)); public override double HardnessTime { get; set; } = 12; + public override bool CanSelectSelf => true; + public override bool CanSelectEnemy => false; public 绝对领域(Character? character = null) : base(SkillType.SuperSkill, character) { @@ -23,7 +25,6 @@ namespace Oshima.FunGame.OshimaModules.Skills public override long Id => Skill.Id; public override string Name => Skill.Name; public override string Description => $"{Duration:0.##} 时间内无法受到任何伤害,且敏捷提升 {系数 * 100:0.##}% [ {敏捷提升:0.##} ]。此技能会消耗至少 100 点能量。"; - public override bool TargetSelf => true; public override bool Durative => true; public override double Duration => 16 + 释放时的能量值 * 0.03; diff --git a/OshimaModules/Skills/Mayor/精准打击.cs b/OshimaModules/Skills/Mayor/精准打击.cs index 311db24..9de4d5b 100644 --- a/OshimaModules/Skills/Mayor/精准打击.cs +++ b/OshimaModules/Skills/Mayor/精准打击.cs @@ -11,6 +11,8 @@ namespace Oshima.FunGame.OshimaModules.Skills public override double EPCost => 100; public override double CD => 40 - 1 * (Level - 1); public override double HardnessTime { get; set; } = 8; + public override bool CanSelectSelf => true; + public override bool CanSelectEnemy => false; public 精准打击(Character? character = null) : base(SkillType.SuperSkill, character) { @@ -23,7 +25,6 @@ namespace Oshima.FunGame.OshimaModules.Skills public override long Id => Skill.Id; public override string Name => Skill.Name; public override string Description => $"30 时间内暴击率提升 {暴击率提升 * 100:0.##}%,暴击伤害提升 {暴击伤害提升 * 100:0.##}%,物理穿透提升 {物理穿透提升 * 100:0.##}%。"; - public override bool TargetSelf => true; public override bool Durative => true; public override double Duration => 30; diff --git a/OshimaModules/Skills/Mayor/致命打击.cs b/OshimaModules/Skills/Mayor/致命打击.cs index e51aa9a..6d08f59 100644 --- a/OshimaModules/Skills/Mayor/致命打击.cs +++ b/OshimaModules/Skills/Mayor/致命打击.cs @@ -25,8 +25,7 @@ namespace Oshima.FunGame.OshimaModules.Skills public override long Id => Skill.Id; public override string Name => Skill.Name; public override string Description => $"暴击伤害提升 70%。"; - public override bool TargetSelf => true; - + public override void OnEffectGained(Character character) { character.ExCritDMG += 0.7; diff --git a/OshimaModules/Skills/NanGanyu/三重叠加.cs b/OshimaModules/Skills/NanGanyu/三重叠加.cs index 6886355..6d53ee5 100644 --- a/OshimaModules/Skills/NanGanyu/三重叠加.cs +++ b/OshimaModules/Skills/NanGanyu/三重叠加.cs @@ -11,6 +11,8 @@ namespace Oshima.FunGame.OshimaModules.Skills public override double EPCost => 100; public override double CD => 35 - 2 * (Level - 1); public override double HardnessTime { get; set; } = 10; + public override bool CanSelectSelf => true; + public override bool CanSelectEnemy => false; public 三重叠加(Character? character = null) : base(SkillType.SuperSkill, character) { @@ -24,8 +26,7 @@ namespace Oshima.FunGame.OshimaModules.Skills public override string Name => "三重叠加"; public override string Description => $"使 [ 灵能反射 ] 支持普通攻击,且当前释放魔法次数归零,最大硬直消除次数提高到 {灵能反射次数} 次;在魔法命中和普通攻击命中时能够回复所回复能量值的 10 倍魔法值,持续 {技能持续次数} 次(灵能反射每消除次数达到最大时算一次)。" + $"(剩余:{剩余持续次数} 次)"; - public override bool TargetSelf => true; - + public int 剩余持续次数 { get; set; } = 0; private readonly int 灵能反射次数 = 3; private readonly int 技能持续次数 = 2; diff --git a/OshimaModules/Skills/NanGanyu/灵能反射.cs b/OshimaModules/Skills/NanGanyu/灵能反射.cs index eecb192..96ceca5 100644 --- a/OshimaModules/Skills/NanGanyu/灵能反射.cs +++ b/OshimaModules/Skills/NanGanyu/灵能反射.cs @@ -25,8 +25,7 @@ namespace Oshima.FunGame.OshimaModules.Skills public override long Id => Skill.Id; public override string Name => Skill.Name; public override string Description => $"每释放 {触发硬直次数:0.##} 次魔法才会触发硬直时间,且魔法命中时基于 25% 智力 [ {获得额外能量值:0.##} ] 获得额外能量值。"; - public override bool TargetSelf => true; - + public bool 是否支持普攻 { get; set; } = false; public int 触发硬直次数 { get; set; } = 2; public int 释放次数 { get; set; } = 0; diff --git a/OshimaModules/Skills/NiuNan/变幻之心.cs b/OshimaModules/Skills/NiuNan/变幻之心.cs index a783880..01c64c1 100644 --- a/OshimaModules/Skills/NiuNan/变幻之心.cs +++ b/OshimaModules/Skills/NiuNan/变幻之心.cs @@ -11,6 +11,8 @@ namespace Oshima.FunGame.OshimaModules.Skills public override double EPCost => 100; public override double CD => 30; public override double HardnessTime { get; set; } = 10; + public override bool CanSelectSelf => true; + public override bool CanSelectEnemy => false; public 变幻之心(Character? character = null) : base(SkillType.SuperSkill, character) { @@ -23,8 +25,7 @@ namespace Oshima.FunGame.OshimaModules.Skills public override long Id => Skill.Id; public override string Name => "变幻之心"; public override string Description => $"检查 [ 智慧与力量 ] 的模式。在力量模式下,立即回复 {生命值回复 * 100:0.##}% 生命值;智力模式下,下一次魔法伤害提升 {伤害提升 * 100:0.##}%。"; - public override bool TargetSelf => true; - + private double 生命值回复 => 0.25 + 0.03 * (Level - 1); private double 伤害提升 => 0.55 + 0.25 * (Level - 1); diff --git a/OshimaModules/Skills/NiuNan/智慧与力量.cs b/OshimaModules/Skills/NiuNan/智慧与力量.cs index e50f1b5..290464c 100644 --- a/OshimaModules/Skills/NiuNan/智慧与力量.cs +++ b/OshimaModules/Skills/NiuNan/智慧与力量.cs @@ -26,8 +26,7 @@ namespace Oshima.FunGame.OshimaModules.Skills public override string Name => Skill.Name; public override string Description => $"当生命值低于 30% 时,智力转化为力量;当生命值高于或等于 30% 时,力量转化为智力。力量模式下,造成伤害必定暴击;智力模式下,获得 30% 闪避率和 25% 魔法抗性。" + (Skill.Character != null ? "(当前模式:" + CharacterSet.GetPrimaryAttributeName(Skill.Character.PrimaryAttribute) + ")" : ""); - public override bool TargetSelf => true; - + private double 交换前的额外智力 = 0; private double 交换前的额外力量 = 0; private double 实际增加闪避率 = 0.3; diff --git a/OshimaModules/Skills/Oshima/META马.cs b/OshimaModules/Skills/Oshima/META马.cs index b13a0e3..3d5e984 100644 --- a/OshimaModules/Skills/Oshima/META马.cs +++ b/OshimaModules/Skills/Oshima/META马.cs @@ -25,7 +25,7 @@ namespace Oshima.FunGame.OshimaModules.Skills public override long Id => Skill.Id; public override string Name => Skill.Name; public override string Description => $"META马专属被动:力量+5,力量成长+0.5;在受到伤害时,获得的能量提升50%,每回合开始还能获得额外的 [ {EP:0.##} ] 能量值。"; - public override bool TargetSelf => true; + public static double EP => 7; public override void AlterEPAfterGetDamage(Character character, ref double baseEP) diff --git a/OshimaModules/Skills/Oshima/力量爆发.cs b/OshimaModules/Skills/Oshima/力量爆发.cs index 22f7234..6b9c5b7 100644 --- a/OshimaModules/Skills/Oshima/力量爆发.cs +++ b/OshimaModules/Skills/Oshima/力量爆发.cs @@ -11,6 +11,8 @@ namespace Oshima.FunGame.OshimaModules.Skills public override double EPCost => 100; public override double CD => 55; public override double HardnessTime { get; set; } = 0; + public override bool CanSelectSelf => true; + public override bool CanSelectEnemy => false; public 力量爆发(Character? character = null) : base(SkillType.SuperSkill, character) { @@ -23,7 +25,6 @@ namespace Oshima.FunGame.OshimaModules.Skills public override long Id => Skill.Id; public override string Name => "力量爆发"; public override string Description => $"获得 135% 力量 [ {攻击力加成:0.##} ] 的攻击力加成,但每次攻击都会损失 9% 当前生命值 [ {当前生命值:0.##} ],持续 {Duration:0.##} 时间。"; - public override bool TargetSelf => true; public override bool Durative => true; public override double Duration => 10 + 1 * (Level - 1); diff --git a/OshimaModules/Skills/QWQAQW/玻璃大炮.cs b/OshimaModules/Skills/QWQAQW/玻璃大炮.cs index c855ad6..dd07765 100644 --- a/OshimaModules/Skills/QWQAQW/玻璃大炮.cs +++ b/OshimaModules/Skills/QWQAQW/玻璃大炮.cs @@ -26,8 +26,7 @@ namespace Oshima.FunGame.OshimaModules.Skills public override string Name => Skill.Name; public override string Description => $"生命值高于 30% 时,受到额外的 [ {高于30额外伤害下限}~{高于30额外伤害上限}% ] 伤害,但是获得 [ 累计所受伤害的 {高于30的加成下限}~{高于30的加成上限}% ] 伤害加成;生命值低于等于 30% 时,不会受到额外的伤害,仅能获得 [ 累计受到的伤害 {低于30的加成下限}~{低于30的加成上限}% ] 伤害加成。" + $"在没有受到任何伤害的时候,将获得 {常规伤害加成 * 100:0.##}% 伤害加成。" + (累计受到的伤害 > 0 ? $"(当前累计受到伤害:{累计受到的伤害:0.##})" : ""); - public override bool TargetSelf => true; - + private double 累计受到的伤害 = 0; private double 这次的伤害加成 = 0; private double 受到伤害之前的HP = 0; diff --git a/OshimaModules/Skills/QWQAQW/迅捷之势.cs b/OshimaModules/Skills/QWQAQW/迅捷之势.cs index efbafa7..b055d87 100644 --- a/OshimaModules/Skills/QWQAQW/迅捷之势.cs +++ b/OshimaModules/Skills/QWQAQW/迅捷之势.cs @@ -11,6 +11,8 @@ namespace Oshima.FunGame.OshimaModules.Skills public override double EPCost => 100; public override double CD => 60 - 2 * (Level - 1); public override double HardnessTime { get; set; } = 15; + public override bool CanSelectSelf => true; + public override bool CanSelectEnemy => false; public 迅捷之势(Character? character = null) : base(SkillType.SuperSkill, character) { @@ -23,7 +25,6 @@ namespace Oshima.FunGame.OshimaModules.Skills public override long Id => Skill.Id; public override string Name => Skill.Name; public override string Description => $"{Duration:0.##} 时间内,提升自身 25% 物理伤害减免和魔法抗性,普通攻击转为魔法伤害,且硬直时间减少 30%,并基于 {智力系数 * 100:0.##}% 智力 [ {智力加成:0.##} ] 强化普通攻击伤害。"; - public override bool TargetSelf => true; public override bool Durative => true; public override double Duration => 40; @@ -47,10 +48,10 @@ namespace Oshima.FunGame.OshimaModules.Skills public override void OnEffectLost(Character character) { character.NormalAttack.SetMagicType(false, character.MagicType); - 实际物理伤害减免 = 0; - 实际魔法抗性 = 0; character.ExPDR -= 实际物理伤害减免; character.MDF.SetAllValue(-实际魔法抗性, false); + 实际物理伤害减免 = 0; + 实际魔法抗性 = 0; } public override void AlterExpectedDamageBeforeCalculation(Character character, Character enemy, ref double damage, bool isNormalAttack, bool isMagicDamage, MagicType magicType) diff --git a/OshimaModules/Skills/QingXiang/枯竭打击.cs b/OshimaModules/Skills/QingXiang/枯竭打击.cs index 99b32b3..5e711e9 100644 --- a/OshimaModules/Skills/QingXiang/枯竭打击.cs +++ b/OshimaModules/Skills/QingXiang/枯竭打击.cs @@ -25,8 +25,7 @@ namespace Oshima.FunGame.OshimaModules.Skills public override long Id => Skill.Id; public override string Name => Skill.Name; public override string Description => $"每次造成伤害都会随机减少对方 [ 7~15 ] 点能量值,对能量值低于一半的角色额外造成 30% 伤害。对于枯竭打击而言,能量值大于100且小于150时,视为低于一半。"; - public override bool TargetSelf => true; - + private bool 是否是嵌套伤害 = false; public override void AfterDamageCalculation(Character character, Character enemy, double damage, bool isNormalAttack, bool isMagicDamage, MagicType magicType, DamageResult damageResult) diff --git a/OshimaModules/Skills/QingXiang/能量毁灭.cs b/OshimaModules/Skills/QingXiang/能量毁灭.cs index aaa750c..8dd568b 100644 --- a/OshimaModules/Skills/QingXiang/能量毁灭.cs +++ b/OshimaModules/Skills/QingXiang/能量毁灭.cs @@ -12,6 +12,8 @@ namespace Oshima.FunGame.OshimaModules.Skills public override double CD => 55 - 3 * (Level - 1); public override double HardnessTime { get; set; } = 25; public override string Slogan => "从深渊引爆力量,世界将为之颤抖!!!!"; + public override bool CanSelectSelf => true; + public override bool CanSelectEnemy => false; public 能量毁灭(Character? character = null) : base(SkillType.SuperSkill, character) { @@ -30,8 +32,6 @@ namespace Oshima.FunGame.OshimaModules.Skills public override string Name => Skill.Name; public override string Description => $"对所有角色造成 " + $"{能量系数 * 100:0.##}% 其现有能量值 + {智力系数 * 100:0.##}% 智力 [ {智力伤害:0.##} ] 的魔法伤害。"; - public override bool TargetSelf => false; - public override double TargetRange => 999; private double 智力系数 => 0.25 * Level; private double 智力伤害 => 智力系数 * Skill.Character?.INT ?? 0; diff --git a/OshimaModules/Skills/QuDuoduo/弱者猎手.cs b/OshimaModules/Skills/QuDuoduo/弱者猎手.cs index a98bcd7..a0a8974 100644 --- a/OshimaModules/Skills/QuDuoduo/弱者猎手.cs +++ b/OshimaModules/Skills/QuDuoduo/弱者猎手.cs @@ -25,8 +25,7 @@ namespace Oshima.FunGame.OshimaModules.Skills public override long Id => Skill.Id; public override string Name => Skill.Name; public override string Description => $"优先攻击血量更低的角色,对生命值百分比低于自己的角色造成 150% 伤害。"; - public override bool TargetSelf => true; - + public override void AlterExpectedDamageBeforeCalculation(Character character, Character enemy, ref double damage, bool isNormalAttack, bool isMagicDamage, MagicType magicType) { if (character == Skill.Character && (enemy.HP / enemy.MaxHP) <= (character.HP / character.MaxHP)) diff --git a/OshimaModules/Skills/QuDuoduo/血之狂欢.cs b/OshimaModules/Skills/QuDuoduo/血之狂欢.cs index 90cb78f..6fa0e1d 100644 --- a/OshimaModules/Skills/QuDuoduo/血之狂欢.cs +++ b/OshimaModules/Skills/QuDuoduo/血之狂欢.cs @@ -11,6 +11,8 @@ namespace Oshima.FunGame.OshimaModules.Skills public override double EPCost => 100; public override double CD => 45; public override double HardnessTime { get; set; } = 7; + public override bool CanSelectSelf => true; + public override bool CanSelectEnemy => false; public 血之狂欢(Character? character = null) : base(SkillType.SuperSkill, character) { @@ -23,7 +25,6 @@ namespace Oshima.FunGame.OshimaModules.Skills public override long Id => Skill.Id; public override string Name => Skill.Name; public override string Description => $"获得 40% 吸血,持续 {Duration:0.##} 时间。"; - public override bool TargetSelf => true; public override bool Durative => true; public override double Duration => 30; diff --git a/OshimaModules/Skills/XinYin/天赐之力.cs b/OshimaModules/Skills/XinYin/天赐之力.cs index bcca61a..11de31e 100644 --- a/OshimaModules/Skills/XinYin/天赐之力.cs +++ b/OshimaModules/Skills/XinYin/天赐之力.cs @@ -11,6 +11,8 @@ namespace Oshima.FunGame.OshimaModules.Skills public override double EPCost => 100; public override double CD => 60; public override double HardnessTime { get; set; } = 15; + public override bool CanSelectSelf => true; + public override bool CanSelectEnemy => false; public 天赐之力(Character? character = null) : base(SkillType.SuperSkill, character) { @@ -23,8 +25,6 @@ namespace Oshima.FunGame.OshimaModules.Skills public override long Id => Skill.Id; public override string Name => Skill.Name; public override string Description => $"{Duration:0.##} 时间内,增加 40% 攻击力 [ {攻击力提升:0.##} ]、30% 物理穿透和 25% 闪避率(不可叠加),普通攻击硬直时间额外减少 20%,基于 {系数 * 100:0.##}% 敏捷 [ {伤害加成:0.##} ] 强化普通攻击的伤害。在持续时间内,【心灵之火】的冷却时间降低至 3 时间。"; - public override bool TargetSelf => false; - public override int TargetCount => 1; public override bool Durative => true; public override double Duration => 40; diff --git a/OshimaModules/Skills/XinYin/心灵之火.cs b/OshimaModules/Skills/XinYin/心灵之火.cs index 52a65de..9eaaf5c 100644 --- a/OshimaModules/Skills/XinYin/心灵之火.cs +++ b/OshimaModules/Skills/XinYin/心灵之火.cs @@ -26,8 +26,7 @@ namespace Oshima.FunGame.OshimaModules.Skills public override string Name => Skill.Name; public override string Description => $"普通攻击硬直时间减少 20%。每次使用普通攻击时,额外再发动一次普通攻击,伤害特效可叠加,冷却 {基础冷却时间:0.##} 时间。" + (冷却时间 > 0 ? $"(正在冷却:剩余 {冷却时间:0.##} 时间)" : ""); - public override bool TargetSelf => true; - + public double 冷却时间 { get; set; } = 0; public double 基础冷却时间 { get; set; } = 20; private bool 是否是嵌套普通攻击 = false; diff --git a/OshimaModules/Skills/Yang/魔法涌流.cs b/OshimaModules/Skills/Yang/魔法涌流.cs index c6c077d..a8b5345 100644 --- a/OshimaModules/Skills/Yang/魔法涌流.cs +++ b/OshimaModules/Skills/Yang/魔法涌流.cs @@ -11,6 +11,8 @@ namespace Oshima.FunGame.OshimaModules.Skills public override double EPCost => 100; public override double CD => 35; public override double HardnessTime { get; set; } = 10; + public override bool CanSelectSelf => true; + public override bool CanSelectEnemy => false; public 魔法涌流(Character? character = null) : base(SkillType.SuperSkill, character) { @@ -23,7 +25,6 @@ namespace Oshima.FunGame.OshimaModules.Skills public override long Id => Skill.Id; public override string Name => "魔法涌流"; public override string Description => $"{Duration:0.##} 时间内,增加所有伤害的 {减伤比例 * 100:0.##}% 伤害减免,并将普通攻击转为魔法伤害,可叠加魔法震荡的效果。"; - public override bool TargetSelf => true; public override bool Durative => true; public override double Duration => 25; diff --git a/OshimaModules/Skills/Yang/魔法震荡.cs b/OshimaModules/Skills/Yang/魔法震荡.cs index 403990e..b9abe66 100644 --- a/OshimaModules/Skills/Yang/魔法震荡.cs +++ b/OshimaModules/Skills/Yang/魔法震荡.cs @@ -26,8 +26,7 @@ namespace Oshima.FunGame.OshimaModules.Skills public override long Id => Skill.Id; public override string Name => Skill.Name; public override string Description => $"造成魔法伤害时有 35% 几率使敌人眩晕 1 回合。"; - public override bool TargetSelf => true; - + public override void AfterDamageCalculation(Character character, Character enemy, double damage, bool isNormalAttack, bool isMagicDamage, MagicType magicType, DamageResult damageResult) { if (character == Skill.Character && isMagicDamage && damageResult != DamageResult.Evaded && new Random().NextDouble() < 0.35) diff --git a/OshimaModules/Skills/dddovo/平衡强化.cs b/OshimaModules/Skills/dddovo/平衡强化.cs index 3f65bf2..943e3cc 100644 --- a/OshimaModules/Skills/dddovo/平衡强化.cs +++ b/OshimaModules/Skills/dddovo/平衡强化.cs @@ -11,6 +11,8 @@ namespace Oshima.FunGame.OshimaModules.Skills public override double EPCost => 100; public override double CD => 55 - (1 * (Level - 1)); public override double HardnessTime { get; set; } = 12; + public override bool CanSelectSelf => true; + public override bool CanSelectEnemy => false; public 平衡强化(Character? character = null) : base(SkillType.SuperSkill, character) { @@ -23,7 +25,6 @@ namespace Oshima.FunGame.OshimaModules.Skills public override long Id => Skill.Id; public override string Name => Skill.Name; public override string Description => $"敏捷提高 20%,然后将目前的力量补充到与敏捷持平,持续 {Duration:0.##} 时间。"; - public override bool TargetSelf => true; public override bool Durative => true; public override double Duration => 30; diff --git a/OshimaModules/Skills/dddovo/敏捷之刃.cs b/OshimaModules/Skills/dddovo/敏捷之刃.cs index 780df7e..08e6520 100644 --- a/OshimaModules/Skills/dddovo/敏捷之刃.cs +++ b/OshimaModules/Skills/dddovo/敏捷之刃.cs @@ -25,8 +25,7 @@ namespace Oshima.FunGame.OshimaModules.Skills public override long Id => Skill.Id; public override string Name => Skill.Name; public override string Description => $"每次普通攻击都将附带基于 {敏捷系数 * 100:0.##}% 敏捷 [ {敏捷伤害} ] 的魔法伤害。"; - public override bool TargetSelf => true; - + private double 敏捷伤害 => 敏捷系数 * Skill.Character?.AGI ?? 0; private readonly double 敏捷系数 = 2.5; private bool 是否是嵌套伤害 = false; diff --git a/OshimaModules/Skills/战技/疾风步.cs b/OshimaModules/Skills/战技/疾风步.cs index 8547c8b..6e97d79 100644 --- a/OshimaModules/Skills/战技/疾风步.cs +++ b/OshimaModules/Skills/战技/疾风步.cs @@ -12,6 +12,7 @@ namespace Oshima.FunGame.OshimaModules.Skills public override double CD => 35; public override double HardnessTime { get; set; } = 5; public override bool CanSelectSelf => true; + public override bool CanSelectEnemy => false; public 疾风步(Character? character = null) : base(SkillType.Skill, character) { @@ -24,7 +25,6 @@ namespace Oshima.FunGame.OshimaModules.Skills public override long Id => Skill.Id; public override string Name => Skill.Name; public override string Description => $"进入不可选中状态,获得 100 行动速度,提高 8% 暴击率,持续 {Duration:0.##} 时间。破隐一击:在持续时间内,首次造成伤害会附加 {系数 * 100:0.##}% 敏捷 [ {伤害加成:0.##} ] 的强化伤害,并解除不可选中状态。"; - public override bool TargetSelf => true; public override bool Durative => true; public override double Duration => 12 + (1 * (Level - 1)); diff --git a/OshimaModules/Skills/魔法/次元上升.cs b/OshimaModules/Skills/魔法/次元上升.cs index 7e4323c..cc8d392 100644 --- a/OshimaModules/Skills/魔法/次元上升.cs +++ b/OshimaModules/Skills/魔法/次元上升.cs @@ -17,7 +17,7 @@ namespace Oshima.FunGame.OshimaModules.Skills public 次元上升(Character? character = null) : base(SkillType.Magic, character) { Effects.Add(new 造成眩晕(this, true, 15, 0)); - Effects.Add(new 基于攻击力的伤害_带基础伤害(this, 90, 110, 0.5, 0.3)); + Effects.Add(new 基于攻击力的伤害_带基础伤害(this, 80, 55, 0.5, 0.3)); } } } diff --git a/OshimaModules/Skills/魔法/治愈术.cs b/OshimaModules/Skills/魔法/治愈术.cs index 4b6e253..6113b17 100644 --- a/OshimaModules/Skills/魔法/治愈术.cs +++ b/OshimaModules/Skills/魔法/治愈术.cs @@ -9,9 +9,9 @@ namespace Oshima.FunGame.OshimaModules.Skills public override long Id => (long)MagicID.治愈术; public override string Name => "治愈术"; public override string Description => Effects.Count > 0 ? Effects.First().Description : ""; - public override double MPCost => Level > 0 ? 90 + (95 * (Level - 1)) : 90; - public override double CD => 80; - public override double CastTime => 5; + public override double MPCost => Level > 0 ? 80 + (105 * (Level - 1)) : 80; + public override double CD => Level > 0 ? 90 - (1 * (Level - 1)) : 90; + public override double CastTime => Level > 0 ? 5 + (1.5 * (Level - 1)) : 5; public override double HardnessTime { get; set; } = 7; public override bool CanSelectSelf => true; public override bool CanSelectEnemy => false; @@ -21,7 +21,7 @@ namespace Oshima.FunGame.OshimaModules.Skills public 治愈术(Character? character = null) : base(SkillType.Magic, character) { SelectTargetPredicates.Add(c => c.HP > 0 && c.HP < c.MaxHP); - Effects.Add(new 百分比回复生命值(this, 0.03, 0.03)); + Effects.Add(new 百分比回复生命值(this, 0.3, 0.02)); } } }