From 30c10595dd0795387e59d1dd6d259c2c4119869a Mon Sep 17 00:00:00 2001 From: milimoe Date: Tue, 6 Jan 2026 02:01:05 +0800 Subject: [PATCH] =?UTF-8?q?=E9=9D=9E=E6=8C=87=E5=90=91=E6=80=A7=E6=8A=80?= =?UTF-8?q?=E8=83=BD=E6=B5=8B=E8=AF=95=E5=92=8C=E6=B7=BB=E5=8A=A0=E6=9B=B4?= =?UTF-8?q?=E5=A4=9A=E6=8A=80=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- OshimaModules/Effects/ItemEffects/GetEP.cs | 6 +- OshimaModules/Effects/ItemEffects/GetEXP.cs | 6 +- .../Effects/ItemEffects/RecoverHP.cs | 6 +- .../Effects/ItemEffects/RecoverHP2.cs | 6 +- .../Effects/ItemEffects/RecoverMP.cs | 6 +- .../Effects/ItemEffects/RecoverMP2.cs | 6 +- .../Effects/PassiveEffects/持续性弱驱散.cs | 2 +- .../Effects/PassiveEffects/持续性强驱散.cs | 2 +- .../Effects/SkillEffects/吸取生命值.cs | 3 +- .../Effects/SkillEffects/吸取能量值.cs | 3 +- .../Effects/SkillEffects/吸取魔法值.cs | 3 +- .../Effects/SkillEffects/基于属性的伤害.cs | 3 +- .../基于攻击力的伤害_带基础伤害.cs | 3 +- .../基于攻击力的伤害_无基础伤害.cs | 3 +- .../SkillEffects/基于核心属性的伤害.cs | 3 +- .../Effects/SkillEffects/增加混合护盾值.cs | 3 +- .../SkillEffects/增加物理护盾_护盾值型.cs | 3 +- .../SkillEffects/增加物理护盾_特效持续型.cs | 3 +- .../SkillEffects/增加魔法护盾_护盾值型.cs | 3 +- .../SkillEffects/增加魔法护盾_特效持续型.cs | 3 +- .../Effects/SkillEffects/弱驱散特效.cs | 3 +- .../Effects/SkillEffects/强驱散特效.cs | 3 +- .../Effects/SkillEffects/打断施法.cs | 5 +- .../Effects/SkillEffects/提升友方行动速度.cs | 3 +- .../Effects/SkillEffects/施加免疫.cs | 3 +- .../Effects/SkillEffects/施加持续性弱驱散.cs | 5 +- .../Effects/SkillEffects/施加持续性强驱散.cs | 5 +- .../Effects/SkillEffects/施加概率负面.cs | 3 +- .../Effects/SkillEffects/百分比回复生命值.cs | 3 +- .../Effects/SkillEffects/纯数值伤害.cs | 3 +- .../Effects/SkillEffects/纯数值回复生命值.cs | 3 +- .../Effects/SkillEffects/造成封技.cs | 3 +- .../Effects/SkillEffects/造成气绝.cs | 3 +- .../Effects/SkillEffects/造成眩晕.cs | 3 +- .../Effects/SkillEffects/造成虚弱.cs | 3 +- .../Effects/SkillEffects/降低敌方行动速度.cs | 3 +- OshimaModules/Modules/SkillModule.cs | 8 +- OshimaModules/Skills/ColdBlue/嗜血本能.cs | 3 +- OshimaModules/Skills/MagicalGirl/绝对领域.cs | 5 +- OshimaModules/Skills/Mayor/精准打击.cs | 3 +- OshimaModules/Skills/NanGanyu/三重叠加.cs | 3 +- OshimaModules/Skills/NiuNan/变幻之心.cs | 3 +- OshimaModules/Skills/Oshima/力量爆发.cs | 3 +- OshimaModules/Skills/QWQAQW/迅捷之势.cs | 3 +- OshimaModules/Skills/QingXiang/能量毁灭.cs | 3 +- OshimaModules/Skills/QuDuoduo/血之狂欢.cs | 3 +- OshimaModules/Skills/SkillExtension.cs | 75 +++++++++++++++++-- OshimaModules/Skills/XinYin/天赐之力.cs | 3 +- OshimaModules/Skills/Yang/魔法涌流.cs | 3 +- OshimaModules/Skills/dddovo/平衡强化.cs | 3 +- OshimaModules/Skills/战技/养命功.cs | 25 +++++++ OshimaModules/Skills/战技/剑风闪.cs | 23 ++++++ OshimaModules/Skills/战技/助威.cs | 3 +- OshimaModules/Skills/战技/双连击.cs | 3 +- OshimaModules/Skills/战技/回复弹.cs | 29 +++++++ OshimaModules/Skills/战技/天堂之吻.cs | 27 +++++++ OshimaModules/Skills/战技/挑拨.cs | 3 +- OshimaModules/Skills/战技/疾走.cs | 3 +- OshimaModules/Skills/战技/疾风步.cs | 3 +- OshimaModules/Skills/战技/镜花水月.cs | 25 +++++++ OshimaModules/Skills/战技/闪现.cs | 17 ++++- OshimaModules/Skills/魔法/圣灵术.cs | 2 +- OshimaModules/Skills/魔法/大地之墙.cs | 3 +- OshimaModules/Skills/魔法/强音之力.cs | 3 +- OshimaModules/Skills/魔法/强音之力复.cs | 3 +- OshimaModules/Skills/魔法/时间减速复.cs | 3 +- OshimaModules/Skills/魔法/时间减速改.cs | 3 +- OshimaModules/Skills/魔法/时间加速复.cs | 3 +- OshimaModules/Skills/魔法/时间加速改.cs | 3 +- OshimaModules/Skills/魔法/根源屏障.cs | 17 ++--- OshimaModules/Skills/魔法/治愈术.cs | 2 +- OshimaModules/Skills/魔法/治愈术复.cs | 2 +- OshimaModules/Skills/魔法/灾难冲击波.cs | 3 +- OshimaModules/Skills/魔法/神圣祝福.cs | 3 +- OshimaModules/Skills/魔法/神圣祝福复.cs | 3 +- OshimaModules/Skills/魔法/结晶防护.cs | 3 +- OshimaModules/Skills/魔法/结晶防护复.cs | 3 +- OshimaModules/Skills/魔法/银色荆棘.cs | 3 +- OshimaModules/Skills/魔法/风之守护.cs | 3 +- OshimaModules/Skills/魔法/风之守护复.cs | 3 +- OshimaServers/Service/FunGameService.cs | 3 +- OshimaServers/Service/FunGameSimulation.cs | 2 + 82 files changed, 383 insertions(+), 102 deletions(-) create mode 100644 OshimaModules/Skills/战技/养命功.cs create mode 100644 OshimaModules/Skills/战技/剑风闪.cs create mode 100644 OshimaModules/Skills/战技/回复弹.cs create mode 100644 OshimaModules/Skills/战技/天堂之吻.cs create mode 100644 OshimaModules/Skills/战技/镜花水月.cs diff --git a/OshimaModules/Effects/ItemEffects/GetEP.cs b/OshimaModules/Effects/ItemEffects/GetEP.cs index a27344a..16a08aa 100644 --- a/OshimaModules/Effects/ItemEffects/GetEP.cs +++ b/OshimaModules/Effects/ItemEffects/GetEP.cs @@ -1,4 +1,5 @@ using Milimoe.FunGame.Core.Entity; +using Milimoe.FunGame.Core.Library.Common.Addon; using Milimoe.FunGame.Core.Library.Constant; using Oshima.FunGame.OshimaModules.Effects.OpenEffects; using Oshima.FunGame.OshimaModules.Skills; @@ -28,7 +29,7 @@ namespace Oshima.FunGame.OshimaModules.Effects.ItemEffects } } - public override void OnSkillCasted(Character caster, List targets, Dictionary others) + public override async Task OnSkillCasted(Character caster, List targets, List grids, Dictionary others) { foreach (Character target in targets) { @@ -37,8 +38,9 @@ namespace Oshima.FunGame.OshimaModules.Effects.ItemEffects } } - public override void OnSkillCasted(User user, List targets, Dictionary others) + public override async Task OnSkillCasted(User user, List targets, Dictionary others) { + await base.OnSkillCasted(user, targets, others); foreach (Character target in targets) { target.EP += 实际获得; diff --git a/OshimaModules/Effects/ItemEffects/GetEXP.cs b/OshimaModules/Effects/ItemEffects/GetEXP.cs index 13a9ac9..ef643ac 100644 --- a/OshimaModules/Effects/ItemEffects/GetEXP.cs +++ b/OshimaModules/Effects/ItemEffects/GetEXP.cs @@ -1,4 +1,5 @@ using Milimoe.FunGame.Core.Entity; +using Milimoe.FunGame.Core.Library.Common.Addon; using Milimoe.FunGame.Core.Library.Constant; using Oshima.FunGame.OshimaModules.Effects.OpenEffects; using Oshima.FunGame.OshimaModules.Skills; @@ -28,7 +29,7 @@ namespace Oshima.FunGame.OshimaModules.Effects.ItemEffects } } - public override void OnSkillCasted(Character caster, List targets, Dictionary others) + public override async Task OnSkillCasted(Character caster, List targets, List grids, Dictionary others) { foreach (Character target in targets) { @@ -37,8 +38,9 @@ namespace Oshima.FunGame.OshimaModules.Effects.ItemEffects } } - public override void OnSkillCasted(User user, List targets, Dictionary others) + public override async Task OnSkillCasted(User user, List targets, Dictionary others) { + await base.OnSkillCasted(user, targets, others); foreach (Character target in targets) { target.EXP += 实际获得; diff --git a/OshimaModules/Effects/ItemEffects/RecoverHP.cs b/OshimaModules/Effects/ItemEffects/RecoverHP.cs index d26fdd9..aa39a80 100644 --- a/OshimaModules/Effects/ItemEffects/RecoverHP.cs +++ b/OshimaModules/Effects/ItemEffects/RecoverHP.cs @@ -1,4 +1,5 @@ using Milimoe.FunGame.Core.Entity; +using Milimoe.FunGame.Core.Library.Common.Addon; using Milimoe.FunGame.Core.Library.Constant; using Oshima.FunGame.OshimaModules.Effects.OpenEffects; using Oshima.FunGame.OshimaModules.Skills; @@ -34,7 +35,7 @@ namespace Oshima.FunGame.OshimaModules.Effects.ItemEffects } } - public override void OnSkillCasted(Character caster, List targets, Dictionary others) + public override async Task OnSkillCasted(Character caster, List targets, List grids, Dictionary others) { foreach (Character target in targets) { @@ -42,8 +43,9 @@ namespace Oshima.FunGame.OshimaModules.Effects.ItemEffects } } - public override void OnSkillCasted(User user, List targets, Dictionary others) + public override async Task OnSkillCasted(User user, List targets, Dictionary others) { + await base.OnSkillCasted(user, targets, others); foreach (Character target in targets) { target.HP += 实际回复; diff --git a/OshimaModules/Effects/ItemEffects/RecoverHP2.cs b/OshimaModules/Effects/ItemEffects/RecoverHP2.cs index b57ea8b..1f93188 100644 --- a/OshimaModules/Effects/ItemEffects/RecoverHP2.cs +++ b/OshimaModules/Effects/ItemEffects/RecoverHP2.cs @@ -1,4 +1,5 @@ using Milimoe.FunGame.Core.Entity; +using Milimoe.FunGame.Core.Library.Common.Addon; using Milimoe.FunGame.Core.Library.Constant; using Oshima.FunGame.OshimaModules.Effects.OpenEffects; using Oshima.FunGame.OshimaModules.Skills; @@ -34,7 +35,7 @@ namespace Oshima.FunGame.OshimaModules.Effects.ItemEffects } } - public override void OnSkillCasted(Character caster, List targets, Dictionary others) + public override async Task OnSkillCasted(Character caster, List targets, List grids, Dictionary others) { foreach (Character target in targets) { @@ -42,8 +43,9 @@ namespace Oshima.FunGame.OshimaModules.Effects.ItemEffects } } - public override void OnSkillCasted(User user, List targets, Dictionary others) + public override async Task OnSkillCasted(User user, List targets, Dictionary others) { + await base.OnSkillCasted(user, targets, others); foreach (Character target in targets) { target.HP += 回复比例 * (target?.MaxHP ?? 0); diff --git a/OshimaModules/Effects/ItemEffects/RecoverMP.cs b/OshimaModules/Effects/ItemEffects/RecoverMP.cs index ae87ea3..c0d67b2 100644 --- a/OshimaModules/Effects/ItemEffects/RecoverMP.cs +++ b/OshimaModules/Effects/ItemEffects/RecoverMP.cs @@ -1,4 +1,5 @@ using Milimoe.FunGame.Core.Entity; +using Milimoe.FunGame.Core.Library.Common.Addon; using Milimoe.FunGame.Core.Library.Constant; using Oshima.FunGame.OshimaModules.Effects.OpenEffects; using Oshima.FunGame.OshimaModules.Skills; @@ -28,7 +29,7 @@ namespace Oshima.FunGame.OshimaModules.Effects.ItemEffects } } - public override void OnSkillCasted(Character caster, List targets, Dictionary others) + public override async Task OnSkillCasted(Character caster, List targets, List grids, Dictionary others) { foreach (Character target in targets) { @@ -37,8 +38,9 @@ namespace Oshima.FunGame.OshimaModules.Effects.ItemEffects } } - public override void OnSkillCasted(User user, List targets, Dictionary others) + public override async Task OnSkillCasted(User user, List targets, Dictionary others) { + await base.OnSkillCasted(user, targets, others); foreach (Character target in targets) { target.MP += 实际回复; diff --git a/OshimaModules/Effects/ItemEffects/RecoverMP2.cs b/OshimaModules/Effects/ItemEffects/RecoverMP2.cs index 36c5e32..e5d79a7 100644 --- a/OshimaModules/Effects/ItemEffects/RecoverMP2.cs +++ b/OshimaModules/Effects/ItemEffects/RecoverMP2.cs @@ -1,4 +1,5 @@ using Milimoe.FunGame.Core.Entity; +using Milimoe.FunGame.Core.Library.Common.Addon; using Milimoe.FunGame.Core.Library.Constant; using Oshima.FunGame.OshimaModules.Effects.OpenEffects; using Oshima.FunGame.OshimaModules.Skills; @@ -28,7 +29,7 @@ namespace Oshima.FunGame.OshimaModules.Effects.ItemEffects } } - public override void OnSkillCasted(Character caster, List targets, Dictionary others) + public override async Task OnSkillCasted(Character caster, List targets, List grids, Dictionary others) { foreach (Character target in targets) { @@ -38,8 +39,9 @@ namespace Oshima.FunGame.OshimaModules.Effects.ItemEffects } } - public override void OnSkillCasted(User user, List targets, Dictionary others) + public override async Task OnSkillCasted(User user, List targets, Dictionary others) { + await base.OnSkillCasted(user, targets, others); foreach (Character target in targets) { target.MP += 回复比例 * (target?.MaxHP ?? 0); diff --git a/OshimaModules/Effects/PassiveEffects/持续性弱驱散.cs b/OshimaModules/Effects/PassiveEffects/持续性弱驱散.cs index 56ed5b0..d254da2 100644 --- a/OshimaModules/Effects/PassiveEffects/持续性弱驱散.cs +++ b/OshimaModules/Effects/PassiveEffects/持续性弱驱散.cs @@ -8,7 +8,7 @@ namespace Oshima.FunGame.OshimaModules.Effects.PassiveEffects { public override long Id => (long)PassiveEffectID.持续性弱驱散; public override string Name => "持续性弱驱散"; - public override string Description => $"此角色正在被持续性弱驱散。来自:[ {Source} ] 的 [ {Skill.Name} ]"; + public override string Description => $"此角色正在被持续性弱驱散。无法保护吟唱动作。来自:[ {Source} ] 的 [ {Skill.Name} ]"; public override EffectType EffectType => EffectType.WeakDispelling; public override DispelType DispelType => DispelType.DurativeWeak; public override Character Source => _sourceCharacter; diff --git a/OshimaModules/Effects/PassiveEffects/持续性强驱散.cs b/OshimaModules/Effects/PassiveEffects/持续性强驱散.cs index bdd3d77..7300671 100644 --- a/OshimaModules/Effects/PassiveEffects/持续性强驱散.cs +++ b/OshimaModules/Effects/PassiveEffects/持续性强驱散.cs @@ -8,7 +8,7 @@ namespace Oshima.FunGame.OshimaModules.Effects.PassiveEffects { public override long Id => (long)PassiveEffectID.持续性强驱散; public override string Name => "持续性强驱散"; - public override string Description => $"此角色正在被持续性强驱散。来自:[ {Source} ] 的 [ {Skill.Name} ]"; + public override string Description => $"此角色正在被持续性强驱散。无法保护吟唱动作。来自:[ {Source} ] 的 [ {Skill.Name} ]"; public override EffectType EffectType => EffectType.StrongDispelling; public override DispelType DispelType => DispelType.DurativeStrong; public override Character Source => _sourceCharacter; diff --git a/OshimaModules/Effects/SkillEffects/吸取生命值.cs b/OshimaModules/Effects/SkillEffects/吸取生命值.cs index 1e8ba94..0b1ebe8 100644 --- a/OshimaModules/Effects/SkillEffects/吸取生命值.cs +++ b/OshimaModules/Effects/SkillEffects/吸取生命值.cs @@ -1,5 +1,6 @@ using Milimoe.FunGame.Core.Api.Utility; using Milimoe.FunGame.Core.Entity; +using Milimoe.FunGame.Core.Library.Common.Addon; using Oshima.FunGame.OshimaModules.Skills; namespace Oshima.FunGame.OshimaModules.Effects.SkillEffects @@ -26,7 +27,7 @@ namespace Oshima.FunGame.OshimaModules.Effects.SkillEffects this.转化百分比 = Calculation.PercentageCheck(转化百分比); } - public override void OnSkillCasted(Character caster, List targets, Dictionary others) + public override async Task OnSkillCasted(Character caster, List targets, List grids, Dictionary others) { double total = 0; foreach (Character target in targets) diff --git a/OshimaModules/Effects/SkillEffects/吸取能量值.cs b/OshimaModules/Effects/SkillEffects/吸取能量值.cs index b8b9d24..e6d1225 100644 --- a/OshimaModules/Effects/SkillEffects/吸取能量值.cs +++ b/OshimaModules/Effects/SkillEffects/吸取能量值.cs @@ -1,5 +1,6 @@ using Milimoe.FunGame.Core.Api.Utility; using Milimoe.FunGame.Core.Entity; +using Milimoe.FunGame.Core.Library.Common.Addon; using Oshima.FunGame.OshimaModules.Skills; namespace Oshima.FunGame.OshimaModules.Effects.SkillEffects @@ -26,7 +27,7 @@ namespace Oshima.FunGame.OshimaModules.Effects.SkillEffects this.转化百分比 = Calculation.PercentageCheck(转化百分比); } - public override void OnSkillCasted(Character caster, List targets, Dictionary others) + public override async Task OnSkillCasted(Character caster, List targets, List grids, Dictionary others) { double total = 0; foreach (Character target in targets) diff --git a/OshimaModules/Effects/SkillEffects/吸取魔法值.cs b/OshimaModules/Effects/SkillEffects/吸取魔法值.cs index 783680a..22d2599 100644 --- a/OshimaModules/Effects/SkillEffects/吸取魔法值.cs +++ b/OshimaModules/Effects/SkillEffects/吸取魔法值.cs @@ -1,5 +1,6 @@ using Milimoe.FunGame.Core.Api.Utility; using Milimoe.FunGame.Core.Entity; +using Milimoe.FunGame.Core.Library.Common.Addon; using Oshima.FunGame.OshimaModules.Skills; namespace Oshima.FunGame.OshimaModules.Effects.SkillEffects @@ -26,7 +27,7 @@ namespace Oshima.FunGame.OshimaModules.Effects.SkillEffects this.转化百分比 = Calculation.PercentageCheck(转化百分比); } - public override void OnSkillCasted(Character caster, List targets, Dictionary others) + public override async Task OnSkillCasted(Character caster, List targets, List grids, Dictionary others) { double total = 0; foreach (Character target in targets) diff --git a/OshimaModules/Effects/SkillEffects/基于属性的伤害.cs b/OshimaModules/Effects/SkillEffects/基于属性的伤害.cs index 89cbc59..012a992 100644 --- a/OshimaModules/Effects/SkillEffects/基于属性的伤害.cs +++ b/OshimaModules/Effects/SkillEffects/基于属性的伤害.cs @@ -1,4 +1,5 @@ using Milimoe.FunGame.Core.Entity; +using Milimoe.FunGame.Core.Library.Common.Addon; using Milimoe.FunGame.Core.Library.Constant; using Oshima.FunGame.OshimaModules.Skills; @@ -48,7 +49,7 @@ namespace Oshima.FunGame.OshimaModules.Effects.SkillEffects MagicType = magicType; } - public override void OnSkillCasted(Character caster, List targets, Dictionary others) + public override async Task OnSkillCasted(Character caster, List targets, List grids, Dictionary others) { foreach (Character enemy in targets) { diff --git a/OshimaModules/Effects/SkillEffects/基于攻击力的伤害_带基础伤害.cs b/OshimaModules/Effects/SkillEffects/基于攻击力的伤害_带基础伤害.cs index 3c77ebd..58af144 100644 --- a/OshimaModules/Effects/SkillEffects/基于攻击力的伤害_带基础伤害.cs +++ b/OshimaModules/Effects/SkillEffects/基于攻击力的伤害_带基础伤害.cs @@ -1,4 +1,5 @@ using Milimoe.FunGame.Core.Entity; +using Milimoe.FunGame.Core.Library.Common.Addon; using Milimoe.FunGame.Core.Library.Constant; using Oshima.FunGame.OshimaModules.Skills; @@ -30,7 +31,7 @@ namespace Oshima.FunGame.OshimaModules.Effects.SkillEffects MagicType = magicType; } - public override void OnSkillCasted(Character caster, List targets, Dictionary others) + public override async Task OnSkillCasted(Character caster, List targets, List grids, Dictionary others) { foreach (Character enemy in targets) { diff --git a/OshimaModules/Effects/SkillEffects/基于攻击力的伤害_无基础伤害.cs b/OshimaModules/Effects/SkillEffects/基于攻击力的伤害_无基础伤害.cs index 76ddae4..c8e8493 100644 --- a/OshimaModules/Effects/SkillEffects/基于攻击力的伤害_无基础伤害.cs +++ b/OshimaModules/Effects/SkillEffects/基于攻击力的伤害_无基础伤害.cs @@ -1,4 +1,5 @@ using Milimoe.FunGame.Core.Entity; +using Milimoe.FunGame.Core.Library.Common.Addon; using Milimoe.FunGame.Core.Library.Constant; using Oshima.FunGame.OshimaModules.Skills; @@ -25,7 +26,7 @@ namespace Oshima.FunGame.OshimaModules.Effects.SkillEffects MagicType = magicType; } - public override void OnSkillCasted(Character caster, List targets, Dictionary others) + public override async Task OnSkillCasted(Character caster, List targets, List grids, Dictionary others) { foreach (Character enemy in targets) { diff --git a/OshimaModules/Effects/SkillEffects/基于核心属性的伤害.cs b/OshimaModules/Effects/SkillEffects/基于核心属性的伤害.cs index 419fea3..c7d1f63 100644 --- a/OshimaModules/Effects/SkillEffects/基于核心属性的伤害.cs +++ b/OshimaModules/Effects/SkillEffects/基于核心属性的伤害.cs @@ -1,4 +1,5 @@ using Milimoe.FunGame.Core.Entity; +using Milimoe.FunGame.Core.Library.Common.Addon; using Milimoe.FunGame.Core.Library.Constant; using Oshima.FunGame.OshimaModules.Skills; @@ -30,7 +31,7 @@ namespace Oshima.FunGame.OshimaModules.Effects.SkillEffects MagicType = magicType; } - public override void OnSkillCasted(Character caster, List targets, Dictionary others) + public override async Task OnSkillCasted(Character caster, List targets, List grids, Dictionary others) { foreach (Character enemy in targets) { diff --git a/OshimaModules/Effects/SkillEffects/增加混合护盾值.cs b/OshimaModules/Effects/SkillEffects/增加混合护盾值.cs index d272add..204156a 100644 --- a/OshimaModules/Effects/SkillEffects/增加混合护盾值.cs +++ b/OshimaModules/Effects/SkillEffects/增加混合护盾值.cs @@ -1,4 +1,5 @@ using Milimoe.FunGame.Core.Entity; +using Milimoe.FunGame.Core.Library.Common.Addon; using Milimoe.FunGame.Core.Library.Constant; using Oshima.FunGame.OshimaModules.Skills; @@ -21,7 +22,7 @@ namespace Oshima.FunGame.OshimaModules.Effects.SkillEffects this.基础护盾等级成长 = 基础护盾等级成长; } - public override void OnSkillCasted(Character caster, List targets, Dictionary others) + public override async Task OnSkillCasted(Character caster, List targets, List grids, Dictionary others) { foreach (Character target in targets) { diff --git a/OshimaModules/Effects/SkillEffects/增加物理护盾_护盾值型.cs b/OshimaModules/Effects/SkillEffects/增加物理护盾_护盾值型.cs index a529fb7..70a0bf0 100644 --- a/OshimaModules/Effects/SkillEffects/增加物理护盾_护盾值型.cs +++ b/OshimaModules/Effects/SkillEffects/增加物理护盾_护盾值型.cs @@ -1,4 +1,5 @@ using Milimoe.FunGame.Core.Entity; +using Milimoe.FunGame.Core.Library.Common.Addon; using Milimoe.FunGame.Core.Library.Constant; using Oshima.FunGame.OshimaModules.Skills; @@ -21,7 +22,7 @@ namespace Oshima.FunGame.OshimaModules.Effects.SkillEffects this.基础护盾等级成长 = 基础护盾等级成长; } - public override void OnSkillCasted(Character caster, List targets, Dictionary others) + public override async Task OnSkillCasted(Character caster, List targets, List grids, Dictionary others) { foreach (Character target in targets) { diff --git a/OshimaModules/Effects/SkillEffects/增加物理护盾_特效持续型.cs b/OshimaModules/Effects/SkillEffects/增加物理护盾_特效持续型.cs index a58a762..c34e979 100644 --- a/OshimaModules/Effects/SkillEffects/增加物理护盾_特效持续型.cs +++ b/OshimaModules/Effects/SkillEffects/增加物理护盾_特效持续型.cs @@ -1,4 +1,5 @@ using Milimoe.FunGame.Core.Entity; +using Milimoe.FunGame.Core.Library.Common.Addon; using Milimoe.FunGame.Core.Library.Constant; using Oshima.FunGame.OshimaModules.Effects.PassiveEffects; using Oshima.FunGame.OshimaModules.Skills; @@ -29,7 +30,7 @@ namespace Oshima.FunGame.OshimaModules.Effects.SkillEffects _durationTurn = durationTurn; } - public override void OnSkillCasted(Character caster, List targets, Dictionary others) + public override async Task OnSkillCasted(Character caster, List targets, List grids, Dictionary others) { foreach (Character target in targets) { diff --git a/OshimaModules/Effects/SkillEffects/增加魔法护盾_护盾值型.cs b/OshimaModules/Effects/SkillEffects/增加魔法护盾_护盾值型.cs index 5b25aaf..3edf660 100644 --- a/OshimaModules/Effects/SkillEffects/增加魔法护盾_护盾值型.cs +++ b/OshimaModules/Effects/SkillEffects/增加魔法护盾_护盾值型.cs @@ -1,4 +1,5 @@ using Milimoe.FunGame.Core.Entity; +using Milimoe.FunGame.Core.Library.Common.Addon; using Milimoe.FunGame.Core.Library.Constant; using Oshima.FunGame.OshimaModules.Skills; @@ -21,7 +22,7 @@ namespace Oshima.FunGame.OshimaModules.Effects.SkillEffects this.基础护盾等级成长 = 基础护盾等级成长; } - public override void OnSkillCasted(Character caster, List targets, Dictionary others) + public override async Task OnSkillCasted(Character caster, List targets, List grids, Dictionary others) { foreach (Character target in targets) { diff --git a/OshimaModules/Effects/SkillEffects/增加魔法护盾_特效持续型.cs b/OshimaModules/Effects/SkillEffects/增加魔法护盾_特效持续型.cs index 4f98778..85530f3 100644 --- a/OshimaModules/Effects/SkillEffects/增加魔法护盾_特效持续型.cs +++ b/OshimaModules/Effects/SkillEffects/增加魔法护盾_特效持续型.cs @@ -1,4 +1,5 @@ using Milimoe.FunGame.Core.Entity; +using Milimoe.FunGame.Core.Library.Common.Addon; using Milimoe.FunGame.Core.Library.Constant; using Oshima.FunGame.OshimaModules.Effects.PassiveEffects; using Oshima.FunGame.OshimaModules.Skills; @@ -29,7 +30,7 @@ namespace Oshima.FunGame.OshimaModules.Effects.SkillEffects _durationTurn = durationTurn; } - public override void OnSkillCasted(Character caster, List targets, Dictionary others) + public override async Task OnSkillCasted(Character caster, List targets, List grids, Dictionary others) { foreach (Character target in targets) { diff --git a/OshimaModules/Effects/SkillEffects/弱驱散特效.cs b/OshimaModules/Effects/SkillEffects/弱驱散特效.cs index dc7747a..d0d89bb 100644 --- a/OshimaModules/Effects/SkillEffects/弱驱散特效.cs +++ b/OshimaModules/Effects/SkillEffects/弱驱散特效.cs @@ -1,4 +1,5 @@ using Milimoe.FunGame.Core.Entity; +using Milimoe.FunGame.Core.Library.Common.Addon; using Milimoe.FunGame.Core.Library.Constant; using Oshima.FunGame.OshimaModules.Skills; @@ -16,7 +17,7 @@ namespace Oshima.FunGame.OshimaModules.Effects.SkillEffects GamingQueue = skill.GamingQueue; } - public override void OnSkillCasted(Character caster, List targets, Dictionary others) + public override async Task OnSkillCasted(Character caster, List targets, List grids, Dictionary others) { Dictionary isTeammateDictionary = GamingQueue?.GetIsTeammateDictionary(caster, targets) ?? []; foreach (Character target in targets) diff --git a/OshimaModules/Effects/SkillEffects/强驱散特效.cs b/OshimaModules/Effects/SkillEffects/强驱散特效.cs index b64de1e..842ae7c 100644 --- a/OshimaModules/Effects/SkillEffects/强驱散特效.cs +++ b/OshimaModules/Effects/SkillEffects/强驱散特效.cs @@ -1,4 +1,5 @@ using Milimoe.FunGame.Core.Entity; +using Milimoe.FunGame.Core.Library.Common.Addon; using Milimoe.FunGame.Core.Library.Constant; using Oshima.FunGame.OshimaModules.Skills; @@ -16,7 +17,7 @@ namespace Oshima.FunGame.OshimaModules.Effects.SkillEffects GamingQueue = skill.GamingQueue; } - public override void OnSkillCasted(Character caster, List targets, Dictionary others) + public override async Task OnSkillCasted(Character caster, List targets, List grids, Dictionary others) { Dictionary isTeammateDictionary = GamingQueue?.GetIsTeammateDictionary(caster, targets) ?? []; foreach (Character target in targets) diff --git a/OshimaModules/Effects/SkillEffects/打断施法.cs b/OshimaModules/Effects/SkillEffects/打断施法.cs index 26f6060..ecba1e1 100644 --- a/OshimaModules/Effects/SkillEffects/打断施法.cs +++ b/OshimaModules/Effects/SkillEffects/打断施法.cs @@ -1,4 +1,5 @@ using Milimoe.FunGame.Core.Entity; +using Milimoe.FunGame.Core.Library.Common.Addon; namespace Oshima.FunGame.OshimaModules.Effects.SkillEffects { @@ -13,11 +14,11 @@ namespace Oshima.FunGame.OshimaModules.Effects.SkillEffects GamingQueue = skill.GamingQueue; } - public override void OnSkillCasted(Character caster, List targets, Dictionary others) + public override async Task OnSkillCasted(Character caster, List targets, List grids, Dictionary others) { foreach (Character target in targets) { - GamingQueue?.InterruptCastingAsync(target, caster); + InterruptCasting(target, caster); } } } diff --git a/OshimaModules/Effects/SkillEffects/提升友方行动速度.cs b/OshimaModules/Effects/SkillEffects/提升友方行动速度.cs index e9e6c5f..1dea49e 100644 --- a/OshimaModules/Effects/SkillEffects/提升友方行动速度.cs +++ b/OshimaModules/Effects/SkillEffects/提升友方行动速度.cs @@ -1,4 +1,5 @@ using Milimoe.FunGame.Core.Entity; +using Milimoe.FunGame.Core.Library.Common.Addon; using Milimoe.FunGame.Core.Library.Constant; using Oshima.FunGame.OshimaModules.Effects.OpenEffects; using Oshima.FunGame.OshimaModules.Skills; @@ -29,7 +30,7 @@ namespace Oshima.FunGame.OshimaModules.Effects.SkillEffects _durationTurn = durationTurn; } - public override void OnSkillCasted(Character caster, List targets, Dictionary others) + public override async Task OnSkillCasted(Character caster, List targets, List grids, Dictionary others) { foreach (Character target in targets) { diff --git a/OshimaModules/Effects/SkillEffects/施加免疫.cs b/OshimaModules/Effects/SkillEffects/施加免疫.cs index 1a52949..d67197d 100644 --- a/OshimaModules/Effects/SkillEffects/施加免疫.cs +++ b/OshimaModules/Effects/SkillEffects/施加免疫.cs @@ -1,4 +1,5 @@ using Milimoe.FunGame.Core.Entity; +using Milimoe.FunGame.Core.Library.Common.Addon; using Milimoe.FunGame.Core.Library.Constant; using Oshima.FunGame.OshimaModules.Effects.PassiveEffects; using Oshima.FunGame.OshimaModules.Skills; @@ -37,7 +38,7 @@ namespace Oshima.FunGame.OshimaModules.Effects.SkillEffects }; } - public override void OnSkillCasted(Character caster, List targets, Dictionary others) + public override async Task OnSkillCasted(Character caster, List targets, List grids, Dictionary others) { foreach (Character target in targets) { diff --git a/OshimaModules/Effects/SkillEffects/施加持续性弱驱散.cs b/OshimaModules/Effects/SkillEffects/施加持续性弱驱散.cs index ae7f66e..5521740 100644 --- a/OshimaModules/Effects/SkillEffects/施加持续性弱驱散.cs +++ b/OshimaModules/Effects/SkillEffects/施加持续性弱驱散.cs @@ -1,4 +1,5 @@ using Milimoe.FunGame.Core.Entity; +using Milimoe.FunGame.Core.Library.Common.Addon; using Milimoe.FunGame.Core.Library.Constant; using Oshima.FunGame.OshimaModules.Effects.PassiveEffects; using Oshima.FunGame.OshimaModules.Skills; @@ -9,7 +10,7 @@ namespace Oshima.FunGame.OshimaModules.Effects.SkillEffects { public override long Id => Skill.Id; public override string Name => Skill.Name; - public override string Description => $"持续弱驱散{Skill.TargetDescription()}{(_durativeWithoutDuration ? _durationString : $",持续 {持续时间}")}。\r\n持续性驱散是持续性临时驱散,它会在持续时间结束之后恢复目标尚未结束的特效。"; + public override string Description => $"持续弱驱散{Skill.TargetDescription()}{(_durativeWithoutDuration ? _durationString : $",持续 {持续时间}")}。\r\n持续性驱散是持续性临时驱散,它会在持续时间结束之后恢复目标尚未结束的特效。无法保护吟唱动作。"; public override DispelType DispelType => DispelType.DurativeWeak; private string 持续时间 => _durative && _duration > 0 ? 实际持续时间 + $" {GameplayEquilibriumConstant.InGameTime}" : (!_durative && _durationTurn > 0 ? 实际持续时间 + " 回合" : $"0 {GameplayEquilibriumConstant.InGameTime}"); @@ -35,7 +36,7 @@ namespace Oshima.FunGame.OshimaModules.Effects.SkillEffects } } - public override void OnSkillCasted(Character caster, List targets, Dictionary others) + public override async Task OnSkillCasted(Character caster, List targets, List grids, Dictionary others) { Dictionary isTeammateDictionary = GamingQueue?.GetIsTeammateDictionary(caster, targets) ?? []; foreach (Character target in targets) diff --git a/OshimaModules/Effects/SkillEffects/施加持续性强驱散.cs b/OshimaModules/Effects/SkillEffects/施加持续性强驱散.cs index 58f7d99..f203630 100644 --- a/OshimaModules/Effects/SkillEffects/施加持续性强驱散.cs +++ b/OshimaModules/Effects/SkillEffects/施加持续性强驱散.cs @@ -1,4 +1,5 @@ using Milimoe.FunGame.Core.Entity; +using Milimoe.FunGame.Core.Library.Common.Addon; using Milimoe.FunGame.Core.Library.Constant; using Oshima.FunGame.OshimaModules.Effects.PassiveEffects; using Oshima.FunGame.OshimaModules.Skills; @@ -9,7 +10,7 @@ namespace Oshima.FunGame.OshimaModules.Effects.SkillEffects { public override long Id => Skill.Id; public override string Name => Skill.Name; - public override string Description => $"持续强驱散{Skill.TargetDescription()}{(_durativeWithoutDuration ? _durationString : $",持续 {持续时间}")}。\r\n持续性驱散是持续性临时驱散,它会在持续时间结束之后恢复目标尚未结束的特效。"; + public override string Description => $"持续强驱散{Skill.TargetDescription()}{(_durativeWithoutDuration ? _durationString : $",持续 {持续时间}")}。\r\n持续性驱散是持续性临时驱散,它会在持续时间结束之后恢复目标尚未结束的特效。无法保护吟唱动作。"; public override DispelType DispelType => DispelType.DurativeStrong; private string 持续时间 => _durative && _duration > 0 ? 实际持续时间 + $" {GameplayEquilibriumConstant.InGameTime}" : (!_durative && _durationTurn > 0 ? 实际持续时间 + " 回合" : $"0 {GameplayEquilibriumConstant.InGameTime}"); @@ -35,7 +36,7 @@ namespace Oshima.FunGame.OshimaModules.Effects.SkillEffects } } - public override void OnSkillCasted(Character caster, List targets, Dictionary others) + public override async Task OnSkillCasted(Character caster, List targets, List grids, Dictionary others) { Dictionary isTeammateDictionary = GamingQueue?.GetIsTeammateDictionary(caster, targets) ?? []; foreach (Character target in targets) diff --git a/OshimaModules/Effects/SkillEffects/施加概率负面.cs b/OshimaModules/Effects/SkillEffects/施加概率负面.cs index 3d8f28c..d7bc368 100644 --- a/OshimaModules/Effects/SkillEffects/施加概率负面.cs +++ b/OshimaModules/Effects/SkillEffects/施加概率负面.cs @@ -1,4 +1,5 @@ using Milimoe.FunGame.Core.Entity; +using Milimoe.FunGame.Core.Library.Common.Addon; using Milimoe.FunGame.Core.Library.Constant; using Oshima.FunGame.OshimaModules.Effects.PassiveEffects; using Oshima.FunGame.OshimaModules.Skills; @@ -48,7 +49,7 @@ namespace Oshima.FunGame.OshimaModules.Effects.SkillEffects SetDescription(); } - public override void OnSkillCasted(Character caster, List targets, Dictionary others) + public override async Task OnSkillCasted(Character caster, List targets, List grids, Dictionary others) { foreach (Character target in targets) { diff --git a/OshimaModules/Effects/SkillEffects/百分比回复生命值.cs b/OshimaModules/Effects/SkillEffects/百分比回复生命值.cs index 94d60c3..c2004f1 100644 --- a/OshimaModules/Effects/SkillEffects/百分比回复生命值.cs +++ b/OshimaModules/Effects/SkillEffects/百分比回复生命值.cs @@ -1,4 +1,5 @@ using Milimoe.FunGame.Core.Entity; +using Milimoe.FunGame.Core.Library.Common.Addon; using Oshima.FunGame.OshimaModules.Skills; namespace Oshima.FunGame.OshimaModules.Effects.SkillEffects @@ -22,7 +23,7 @@ namespace Oshima.FunGame.OshimaModules.Effects.SkillEffects CanRespawn = canRespawn; } - public override void OnSkillCasted(Character caster, List targets, Dictionary others) + public override async Task OnSkillCasted(Character caster, List targets, List grids, Dictionary others) { foreach (Character target in targets) { diff --git a/OshimaModules/Effects/SkillEffects/纯数值伤害.cs b/OshimaModules/Effects/SkillEffects/纯数值伤害.cs index 353d26f..ad03b68 100644 --- a/OshimaModules/Effects/SkillEffects/纯数值伤害.cs +++ b/OshimaModules/Effects/SkillEffects/纯数值伤害.cs @@ -1,4 +1,5 @@ using Milimoe.FunGame.Core.Entity; +using Milimoe.FunGame.Core.Library.Common.Addon; using Milimoe.FunGame.Core.Library.Constant; using Oshima.FunGame.OshimaModules.Skills; @@ -24,7 +25,7 @@ namespace Oshima.FunGame.OshimaModules.Effects.SkillEffects MagicType = magicType; } - public override void OnSkillCasted(Character caster, List targets, Dictionary others) + public override async Task OnSkillCasted(Character caster, List targets, List grids, Dictionary others) { foreach (Character enemy in targets) { diff --git a/OshimaModules/Effects/SkillEffects/纯数值回复生命值.cs b/OshimaModules/Effects/SkillEffects/纯数值回复生命值.cs index 2536bac..8894a11 100644 --- a/OshimaModules/Effects/SkillEffects/纯数值回复生命值.cs +++ b/OshimaModules/Effects/SkillEffects/纯数值回复生命值.cs @@ -1,4 +1,5 @@ using Milimoe.FunGame.Core.Entity; +using Milimoe.FunGame.Core.Library.Common.Addon; using Oshima.FunGame.OshimaModules.Skills; namespace Oshima.FunGame.OshimaModules.Effects.SkillEffects @@ -22,7 +23,7 @@ namespace Oshima.FunGame.OshimaModules.Effects.SkillEffects CanRespawn = canRespawn; } - public override void OnSkillCasted(Character caster, List targets, Dictionary others) + public override async Task OnSkillCasted(Character caster, List targets, List grids, Dictionary others) { foreach (Character target in targets) { diff --git a/OshimaModules/Effects/SkillEffects/造成封技.cs b/OshimaModules/Effects/SkillEffects/造成封技.cs index 9d53e25..d3022f4 100644 --- a/OshimaModules/Effects/SkillEffects/造成封技.cs +++ b/OshimaModules/Effects/SkillEffects/造成封技.cs @@ -1,4 +1,5 @@ using Milimoe.FunGame.Core.Entity; +using Milimoe.FunGame.Core.Library.Common.Addon; using Oshima.FunGame.OshimaModules.Effects.PassiveEffects; using Oshima.FunGame.OshimaModules.Skills; @@ -26,7 +27,7 @@ namespace Oshima.FunGame.OshimaModules.Effects.SkillEffects _levelGrowth = levelGrowth; } - public override void OnSkillCasted(Character caster, List targets, Dictionary others) + public override async Task OnSkillCasted(Character caster, List targets, List grids, Dictionary others) { foreach (Character enemy in targets) { diff --git a/OshimaModules/Effects/SkillEffects/造成气绝.cs b/OshimaModules/Effects/SkillEffects/造成气绝.cs index 6ed816d..2b441f0 100644 --- a/OshimaModules/Effects/SkillEffects/造成气绝.cs +++ b/OshimaModules/Effects/SkillEffects/造成气绝.cs @@ -1,4 +1,5 @@ using Milimoe.FunGame.Core.Entity; +using Milimoe.FunGame.Core.Library.Common.Addon; using Milimoe.FunGame.Core.Library.Constant; using Oshima.FunGame.OshimaModules.Effects.PassiveEffects; @@ -36,7 +37,7 @@ namespace Oshima.FunGame.OshimaModules.Effects.SkillEffects _durationDamagePercent = durationDamagePercent; } - public override void OnSkillCasted(Character caster, List targets, Dictionary others) + public override async Task OnSkillCasted(Character caster, List targets, List grids, Dictionary others) { foreach (Character enemy in targets) { diff --git a/OshimaModules/Effects/SkillEffects/造成眩晕.cs b/OshimaModules/Effects/SkillEffects/造成眩晕.cs index ff78893..c1ae944 100644 --- a/OshimaModules/Effects/SkillEffects/造成眩晕.cs +++ b/OshimaModules/Effects/SkillEffects/造成眩晕.cs @@ -1,4 +1,5 @@ using Milimoe.FunGame.Core.Entity; +using Milimoe.FunGame.Core.Library.Common.Addon; using Milimoe.FunGame.Core.Library.Constant; using Oshima.FunGame.OshimaModules.Effects.PassiveEffects; using Oshima.FunGame.OshimaModules.Skills; @@ -28,7 +29,7 @@ namespace Oshima.FunGame.OshimaModules.Effects.SkillEffects _levelGrowth = levelGrowth; } - public override void OnSkillCasted(Character caster, List targets, Dictionary others) + public override async Task OnSkillCasted(Character caster, List targets, List grids, Dictionary others) { foreach (Character enemy in targets) { diff --git a/OshimaModules/Effects/SkillEffects/造成虚弱.cs b/OshimaModules/Effects/SkillEffects/造成虚弱.cs index be9f7ed..9a45cd2 100644 --- a/OshimaModules/Effects/SkillEffects/造成虚弱.cs +++ b/OshimaModules/Effects/SkillEffects/造成虚弱.cs @@ -1,4 +1,5 @@ using Milimoe.FunGame.Core.Entity; +using Milimoe.FunGame.Core.Library.Common.Addon; using Milimoe.FunGame.Core.Library.Constant; using Oshima.FunGame.OshimaModules.Effects.PassiveEffects; using Oshima.FunGame.OshimaModules.Skills; @@ -51,7 +52,7 @@ namespace Oshima.FunGame.OshimaModules.Effects.SkillEffects _healingReductionPercentLevelGrowth = healingReductionPercentLevelGrowth; } - public override void OnSkillCasted(Character caster, List targets, Dictionary others) + public override async Task OnSkillCasted(Character caster, List targets, List grids, Dictionary others) { foreach (Character enemy in targets) { diff --git a/OshimaModules/Effects/SkillEffects/降低敌方行动速度.cs b/OshimaModules/Effects/SkillEffects/降低敌方行动速度.cs index c8b7ebe..72ba428 100644 --- a/OshimaModules/Effects/SkillEffects/降低敌方行动速度.cs +++ b/OshimaModules/Effects/SkillEffects/降低敌方行动速度.cs @@ -1,4 +1,5 @@ using Milimoe.FunGame.Core.Entity; +using Milimoe.FunGame.Core.Library.Common.Addon; using Milimoe.FunGame.Core.Library.Constant; using Oshima.FunGame.OshimaModules.Effects.OpenEffects; using Oshima.FunGame.OshimaModules.Skills; @@ -29,7 +30,7 @@ namespace Oshima.FunGame.OshimaModules.Effects.SkillEffects _durationTurn = durationTurn; } - public override void OnSkillCasted(Character caster, List targets, Dictionary others) + public override async Task OnSkillCasted(Character caster, List targets, List grids, Dictionary others) { foreach (Character target in targets) { diff --git a/OshimaModules/Modules/SkillModule.cs b/OshimaModules/Modules/SkillModule.cs index 13bd247..bd1b659 100644 --- a/OshimaModules/Modules/SkillModule.cs +++ b/OshimaModules/Modules/SkillModule.cs @@ -100,7 +100,6 @@ namespace Oshima.FunGame.OshimaModules (long)MagicID.时间加速复 => new 时间加速复(), (long)MagicID.时间减速复 => new 时间减速复(), (long)SkillID.疾风步 => new 疾风步(), - (long)SkillID.疾走 => new 疾走(), (long)SkillID.助威 => new 助威(), (long)SkillID.挑拨 => new 挑拨(), (long)SkillID.绞丝棍 => new 绞丝棍(), @@ -110,6 +109,13 @@ namespace Oshima.FunGame.OshimaModules (long)SkillID.绝影 => new 绝影(), (long)SkillID.胧 => new 胧(), (long)SkillID.魔眼 => new 魔眼(), + (long)SkillID.天堂之吻 => new 天堂之吻(), + (long)SkillID.回复弹 => new 回复弹(), + (long)SkillID.养命功 => new 养命功(), + (long)SkillID.镜花水月 => new 镜花水月(), + (long)SkillID.剑风闪 => new 剑风闪(), + (long)SkillID.疾走 => new 疾走(), + (long)SkillID.闪现 => new 闪现(), (long)SuperSkillID.力量爆发 => new 力量爆发(), (long)SuperSkillID.天赐之力 => new 天赐之力(), (long)SuperSkillID.魔法涌流 => new 魔法涌流(), diff --git a/OshimaModules/Skills/ColdBlue/嗜血本能.cs b/OshimaModules/Skills/ColdBlue/嗜血本能.cs index c9e61be..0dd45fe 100644 --- a/OshimaModules/Skills/ColdBlue/嗜血本能.cs +++ b/OshimaModules/Skills/ColdBlue/嗜血本能.cs @@ -1,4 +1,5 @@ using Milimoe.FunGame.Core.Entity; +using Milimoe.FunGame.Core.Library.Common.Addon; using Milimoe.FunGame.Core.Library.Constant; namespace Oshima.FunGame.OshimaModules.Skills @@ -51,7 +52,7 @@ namespace Oshima.FunGame.OshimaModules.Skills } } - public override void OnSkillCasted(Character caster, List targets, Dictionary others) + public override async Task OnSkillCasted(Character caster, List targets, List grids, Dictionary others) { RemainDuration = Duration; if (!caster.Effects.Contains(this)) diff --git a/OshimaModules/Skills/MagicalGirl/绝对领域.cs b/OshimaModules/Skills/MagicalGirl/绝对领域.cs index 2df3b3b..ac2981f 100644 --- a/OshimaModules/Skills/MagicalGirl/绝对领域.cs +++ b/OshimaModules/Skills/MagicalGirl/绝对领域.cs @@ -1,4 +1,5 @@ using Milimoe.FunGame.Core.Entity; +using Milimoe.FunGame.Core.Library.Common.Addon; using Milimoe.FunGame.Core.Library.Constant; namespace Oshima.FunGame.OshimaModules.Skills @@ -68,12 +69,12 @@ namespace Oshima.FunGame.OshimaModules.Skills return false; } - public override void OnSkillCasting(Character caster, List targets) + public override void OnSkillCasting(Character caster, List targets, List grids) { 释放时的能量值 = caster.EP; } - public override void OnSkillCasted(Character caster, List targets, Dictionary others) + public override async Task OnSkillCasted(Character caster, List targets, List grids, Dictionary others) { RemainDuration = Duration; if (!caster.Effects.Contains(this)) diff --git a/OshimaModules/Skills/Mayor/精准打击.cs b/OshimaModules/Skills/Mayor/精准打击.cs index db332e5..6bf3381 100644 --- a/OshimaModules/Skills/Mayor/精准打击.cs +++ b/OshimaModules/Skills/Mayor/精准打击.cs @@ -1,4 +1,5 @@ using Milimoe.FunGame.Core.Entity; +using Milimoe.FunGame.Core.Library.Common.Addon; using Milimoe.FunGame.Core.Library.Constant; namespace Oshima.FunGame.OshimaModules.Skills @@ -55,7 +56,7 @@ namespace Oshima.FunGame.OshimaModules.Skills character.PhysicalPenetration -= 实际物理穿透提升; } - public override void OnSkillCasted(Character caster, List targets, Dictionary others) + public override async Task OnSkillCasted(Character caster, List targets, List grids, Dictionary others) { RemainDuration = Duration; if (!caster.Effects.Contains(this)) diff --git a/OshimaModules/Skills/NanGanyu/三重叠加.cs b/OshimaModules/Skills/NanGanyu/三重叠加.cs index 005879b..c5730c1 100644 --- a/OshimaModules/Skills/NanGanyu/三重叠加.cs +++ b/OshimaModules/Skills/NanGanyu/三重叠加.cs @@ -1,4 +1,5 @@ using Milimoe.FunGame.Core.Entity; +using Milimoe.FunGame.Core.Library.Common.Addon; using Milimoe.FunGame.Core.Library.Constant; namespace Oshima.FunGame.OshimaModules.Skills @@ -67,7 +68,7 @@ namespace Oshima.FunGame.OshimaModules.Skills } } - public override void OnSkillCasted(Character caster, List targets, Dictionary others) + public override async Task OnSkillCasted(Character caster, List targets, List grids, Dictionary others) { 剩余持续次数 = 技能持续次数; if (!caster.Effects.Contains(this)) diff --git a/OshimaModules/Skills/NiuNan/变幻之心.cs b/OshimaModules/Skills/NiuNan/变幻之心.cs index 1eba41a..dbc747e 100644 --- a/OshimaModules/Skills/NiuNan/变幻之心.cs +++ b/OshimaModules/Skills/NiuNan/变幻之心.cs @@ -1,4 +1,5 @@ using Milimoe.FunGame.Core.Entity; +using Milimoe.FunGame.Core.Library.Common.Addon; using Milimoe.FunGame.Core.Library.Constant; namespace Oshima.FunGame.OshimaModules.Skills @@ -142,7 +143,7 @@ namespace Oshima.FunGame.OshimaModules.Skills } } - public override void OnSkillCasted(Character caster, List targets, Dictionary others) + public override async Task OnSkillCasted(Character caster, List targets, List grids, Dictionary others) { IEnumerable effects = caster.Effects.Where(e => e is 智慧与力量特效); if (effects.Any()) diff --git a/OshimaModules/Skills/Oshima/力量爆发.cs b/OshimaModules/Skills/Oshima/力量爆发.cs index 653f336..c95323f 100644 --- a/OshimaModules/Skills/Oshima/力量爆发.cs +++ b/OshimaModules/Skills/Oshima/力量爆发.cs @@ -1,4 +1,5 @@ using Milimoe.FunGame.Core.Entity; +using Milimoe.FunGame.Core.Library.Common.Addon; using Milimoe.FunGame.Core.Library.Constant; namespace Oshima.FunGame.OshimaModules.Skills @@ -57,7 +58,7 @@ namespace Oshima.FunGame.OshimaModules.Skills } } - public override void OnSkillCasted(Character caster, List targets, Dictionary others) + public override async Task OnSkillCasted(Character caster, List targets, List grids, Dictionary others) { RemainDuration = Duration; if (!caster.Effects.Contains(this)) diff --git a/OshimaModules/Skills/QWQAQW/迅捷之势.cs b/OshimaModules/Skills/QWQAQW/迅捷之势.cs index 8a19f96..019762f 100644 --- a/OshimaModules/Skills/QWQAQW/迅捷之势.cs +++ b/OshimaModules/Skills/QWQAQW/迅捷之势.cs @@ -1,4 +1,5 @@ using Milimoe.FunGame.Core.Entity; +using Milimoe.FunGame.Core.Library.Common.Addon; using Milimoe.FunGame.Core.Library.Constant; namespace Oshima.FunGame.OshimaModules.Skills @@ -71,7 +72,7 @@ namespace Oshima.FunGame.OshimaModules.Skills baseHardnessTime *= 0.3; } - public override void OnSkillCasted(Character caster, List targets, Dictionary others) + public override async Task OnSkillCasted(Character caster, List targets, List grids, Dictionary others) { RemainDuration = Duration; if (!caster.Effects.Contains(this)) diff --git a/OshimaModules/Skills/QingXiang/能量毁灭.cs b/OshimaModules/Skills/QingXiang/能量毁灭.cs index 7316b9f..23fd000 100644 --- a/OshimaModules/Skills/QingXiang/能量毁灭.cs +++ b/OshimaModules/Skills/QingXiang/能量毁灭.cs @@ -1,4 +1,5 @@ using Milimoe.FunGame.Core.Entity; +using Milimoe.FunGame.Core.Library.Common.Addon; using Milimoe.FunGame.Core.Library.Constant; namespace Oshima.FunGame.OshimaModules.Skills @@ -42,7 +43,7 @@ namespace Oshima.FunGame.OshimaModules.Skills private double 智力伤害 => 智力系数 * Skill.Character?.INT ?? 0; private double 能量系数 => 1 * Level; - public override void OnSkillCasted(Character caster, List targets, Dictionary others) + public override async Task OnSkillCasted(Character caster, List targets, List grids, Dictionary others) { foreach (Character c in targets) { diff --git a/OshimaModules/Skills/QuDuoduo/血之狂欢.cs b/OshimaModules/Skills/QuDuoduo/血之狂欢.cs index d70a253..0db8293 100644 --- a/OshimaModules/Skills/QuDuoduo/血之狂欢.cs +++ b/OshimaModules/Skills/QuDuoduo/血之狂欢.cs @@ -1,4 +1,5 @@ using Milimoe.FunGame.Core.Entity; +using Milimoe.FunGame.Core.Library.Common.Addon; using Milimoe.FunGame.Core.Library.Constant; namespace Oshima.FunGame.OshimaModules.Skills @@ -41,7 +42,7 @@ namespace Oshima.FunGame.OshimaModules.Skills } } - public override void OnSkillCasted(Character caster, List targets, Dictionary others) + public override async Task OnSkillCasted(Character caster, List targets, List grids, Dictionary others) { RemainDuration = Duration; if (!caster.Effects.Contains(this)) diff --git a/OshimaModules/Skills/SkillExtension.cs b/OshimaModules/Skills/SkillExtension.cs index 45848c6..626163e 100644 --- a/OshimaModules/Skills/SkillExtension.cs +++ b/OshimaModules/Skills/SkillExtension.cs @@ -1,4 +1,5 @@ using Milimoe.FunGame.Core.Entity; +using Milimoe.FunGame.Core.Library.Constant; namespace Oshima.FunGame.OshimaModules.Skills { @@ -6,30 +7,92 @@ namespace Oshima.FunGame.OshimaModules.Skills { public static string TargetDescription(this Skill skill) { + if (skill.IsNonDirectional) + { + return skill.RangeTargetDescription(); + } + + string str; + if (skill.SelectAllTeammates) { - return "友方全体角色"; + str = "友方全体角色"; } else if (skill.SelectAllEnemies) { - return "敌方全体角色"; + str = "敌方全体角色"; } if (skill.CanSelectTeammate && !skill.CanSelectEnemy) { - return $"目标{(skill.CanSelectTargetCount > 1 ? $"至多 {skill.CanSelectTargetCount} 个" : "")}友方角色{(!skill.CanSelectSelf ? "(不可选择自己)" : "")}"; + str = $"目标{(skill.CanSelectTargetCount > 1 ? $"至多 {skill.CanSelectTargetCount} 个" : "")}友方角色{(!skill.CanSelectSelf ? "(不可选择自己)" : "")}"; } else if (!skill.CanSelectTeammate && skill.CanSelectEnemy) { - return $"目标{(skill.CanSelectTargetCount > 1 ? $"至多 {skill.CanSelectTargetCount} 个" : "")}敌方角色"; + str = $"目标{(skill.CanSelectTargetCount > 1 ? $"至多 {skill.CanSelectTargetCount} 个" : "")}敌方角色"; } else if (!skill.CanSelectTeammate && !skill.CanSelectEnemy && skill.CanSelectSelf) { - return $"自身"; + str = $"自身"; } else { - return $"{(skill.CanSelectTargetCount > 1 ? $"至多 {skill.CanSelectTargetCount} 个" : "")}目标"; + str = $"{(skill.CanSelectTargetCount > 1 ? $"至多 {skill.CanSelectTargetCount} 个" : "")}目标"; } + + if (skill.CanSelectTargetRange > 0) + { + str += $"以及以{(skill.CanSelectTargetCount > 1 ? "这些" : "该")}目标为中心,半径为 {skill.CanSelectTargetRange} 格的菱形区域中的等同阵营角色"; + } + + return str; + } + + public static string RangeTargetDescription(this Skill skill) + { + string str = ""; + + int range = skill.CanSelectTargetRange; + if (range <= 0) + { + str = "目标地点"; + } + else + { + switch (skill.SkillRangeType) + { + case SkillRangeType.Diamond: + str = "目标菱形区域"; + break; + case SkillRangeType.Circle: + str = "目标圆形区域"; + break; + case SkillRangeType.Square: + str = "目标正方形区域"; + break; + case SkillRangeType.Line: + str = "与目标地点之间的直线区域"; + break; + case SkillRangeType.LinePass: + str = "贯穿目标地点直至地图边缘的直线区域"; + break; + case SkillRangeType.Sector: + str = "目标扇形区域"; + break; + default: + break; + } + } + + if (skill.SelectIncludeCharacterGrid) + { + str = "可包含被角色占据的" + str; + } + else + { + str = "不被角色占据的"; + } + + return str; } } } diff --git a/OshimaModules/Skills/XinYin/天赐之力.cs b/OshimaModules/Skills/XinYin/天赐之力.cs index b63c90c..b3eabaa 100644 --- a/OshimaModules/Skills/XinYin/天赐之力.cs +++ b/OshimaModules/Skills/XinYin/天赐之力.cs @@ -1,4 +1,5 @@ using Milimoe.FunGame.Core.Entity; +using Milimoe.FunGame.Core.Library.Common.Addon; using Milimoe.FunGame.Core.Library.Constant; using Milimoe.FunGame.Core.Model; @@ -83,7 +84,7 @@ namespace Oshima.FunGame.OshimaModules.Skills baseHardnessTime *= 0.8; } - public override void OnSkillCasted(Character caster, List targets, Dictionary others) + public override async Task OnSkillCasted(Character caster, List targets, List grids, Dictionary others) { RemainDuration = Duration; if (!caster.Effects.Contains(this)) diff --git a/OshimaModules/Skills/Yang/魔法涌流.cs b/OshimaModules/Skills/Yang/魔法涌流.cs index b031730..57f8132 100644 --- a/OshimaModules/Skills/Yang/魔法涌流.cs +++ b/OshimaModules/Skills/Yang/魔法涌流.cs @@ -1,4 +1,5 @@ using Milimoe.FunGame.Core.Entity; +using Milimoe.FunGame.Core.Library.Common.Addon; using Milimoe.FunGame.Core.Library.Constant; namespace Oshima.FunGame.OshimaModules.Skills @@ -65,7 +66,7 @@ namespace Oshima.FunGame.OshimaModules.Skills return 0; } - public override void OnSkillCasted(Character caster, List targets, Dictionary others) + public override async Task OnSkillCasted(Character caster, List targets, List grids, Dictionary others) { RemainDuration = Duration; if (!caster.Effects.Contains(this)) diff --git a/OshimaModules/Skills/dddovo/平衡强化.cs b/OshimaModules/Skills/dddovo/平衡强化.cs index 79c3267..3d0b3a9 100644 --- a/OshimaModules/Skills/dddovo/平衡强化.cs +++ b/OshimaModules/Skills/dddovo/平衡强化.cs @@ -1,4 +1,5 @@ using Milimoe.FunGame.Core.Entity; +using Milimoe.FunGame.Core.Library.Common.Addon; using Milimoe.FunGame.Core.Library.Constant; namespace Oshima.FunGame.OshimaModules.Skills @@ -65,7 +66,7 @@ namespace Oshima.FunGame.OshimaModules.Skills character.Recovery(pastHP, pastMP, pastMaxHP, pastMaxMP); } - public override void OnSkillCasted(Character caster, List targets, Dictionary others) + public override async Task OnSkillCasted(Character caster, List targets, List grids, Dictionary others) { RemainDuration = Duration; if (!caster.Effects.Contains(this)) diff --git a/OshimaModules/Skills/战技/养命功.cs b/OshimaModules/Skills/战技/养命功.cs new file mode 100644 index 0000000..07b0bb9 --- /dev/null +++ b/OshimaModules/Skills/战技/养命功.cs @@ -0,0 +1,25 @@ +using Milimoe.FunGame.Core.Entity; +using Milimoe.FunGame.Core.Library.Constant; +using Oshima.FunGame.OshimaModules.Effects.SkillEffects; + +namespace Oshima.FunGame.OshimaModules.Skills +{ + public class 养命功 : Skill + { + public override long Id => (long)SkillID.养命功; + public override string Name => "养命功"; + public override string Description => string.Join("", Effects.Select(e => e.Description)); + public override string DispelDescription => Effects.Count > 0 ? Effects.First(e => e is 施加持续性弱驱散).DispelDescription : ""; + public override double EPCost => 55; + public override double CD => 45; + public override double HardnessTime { get; set; } = 10; + public override bool CanSelectSelf => true; + public override bool CanSelectEnemy => false; + public override bool CanSelectTeammate => false; + + public 养命功(Character? character = null) : base(SkillType.Skill, character) + { + Effects.Add(new 施加持续性弱驱散(this, durationTurn: 3)); + } + } +} diff --git a/OshimaModules/Skills/战技/剑风闪.cs b/OshimaModules/Skills/战技/剑风闪.cs new file mode 100644 index 0000000..1bcd4ef --- /dev/null +++ b/OshimaModules/Skills/战技/剑风闪.cs @@ -0,0 +1,23 @@ +using Milimoe.FunGame.Core.Entity; +using Milimoe.FunGame.Core.Library.Constant; +using Oshima.FunGame.OshimaModules.Effects.SkillEffects; + +namespace Oshima.FunGame.OshimaModules.Skills +{ + public class 剑风闪 : Skill + { + public override long Id => (long)SkillID.剑风闪; + public override string Name => "剑风闪"; + public override string Description => Effects.Count > 0 ? Effects.First().Description : ""; + public override string DispelDescription => Effects.Count > 0 ? Effects.First().DispelDescription : ""; + public override double EPCost => 70; + public override double CD => 28; + public override double HardnessTime { get; set; } = 10; + public override int CanSelectTargetRange => 2; + + public 剑风闪(Character? character = null) : base(SkillType.Skill, character) + { + Effects.Add(new 基于攻击力的伤害_带基础伤害(this, 55, 50, 0.1, 0.035, DamageType.Physical)); + } + } +} diff --git a/OshimaModules/Skills/战技/助威.cs b/OshimaModules/Skills/战技/助威.cs index 51d1810..8f7683b 100644 --- a/OshimaModules/Skills/战技/助威.cs +++ b/OshimaModules/Skills/战技/助威.cs @@ -1,4 +1,5 @@ using Milimoe.FunGame.Core.Entity; +using Milimoe.FunGame.Core.Library.Common.Addon; using Milimoe.FunGame.Core.Library.Constant; using Oshima.FunGame.OshimaModules.Effects.OpenEffects; @@ -48,7 +49,7 @@ namespace Oshima.FunGame.OshimaModules.Skills GamingQueue = skill.GamingQueue; } - public override void OnSkillCasted(Character caster, List targets, Dictionary others) + public override async Task OnSkillCasted(Character caster, List targets, List grids, Dictionary others) { foreach (Character target in targets) { diff --git a/OshimaModules/Skills/战技/双连击.cs b/OshimaModules/Skills/战技/双连击.cs index a0d31a1..47c6951 100644 --- a/OshimaModules/Skills/战技/双连击.cs +++ b/OshimaModules/Skills/战技/双连击.cs @@ -1,4 +1,5 @@ using Milimoe.FunGame.Core.Entity; +using Milimoe.FunGame.Core.Library.Common.Addon; using Milimoe.FunGame.Core.Library.Constant; using Milimoe.FunGame.Core.Model; @@ -35,7 +36,7 @@ namespace Oshima.FunGame.OshimaModules.Skills GamingQueue = skill.GamingQueue; } - public override void OnSkillCasted(Character caster, List targets, Dictionary others) + public override async Task OnSkillCasted(Character caster, List targets, List grids, Dictionary others) { if (GamingQueue != null) { diff --git a/OshimaModules/Skills/战技/回复弹.cs b/OshimaModules/Skills/战技/回复弹.cs new file mode 100644 index 0000000..4b59eb2 --- /dev/null +++ b/OshimaModules/Skills/战技/回复弹.cs @@ -0,0 +1,29 @@ +using Milimoe.FunGame.Core.Entity; +using Milimoe.FunGame.Core.Library.Constant; +using Oshima.FunGame.OshimaModules.Effects.OpenEffects; +using Oshima.FunGame.OshimaModules.Effects.SkillEffects; + +namespace Oshima.FunGame.OshimaModules.Skills +{ + public class 回复弹 : Skill + { + public override long Id => (long)SkillID.回复弹; + public override string Name => "回复弹"; + public override string Description => string.Join("", Effects.Select(e => e.Description)); + public override string DispelDescription => Effects.Count > 0 ? Effects.First(e => e is 弱驱散特效).DispelDescription : ""; + public override double EPCost => 50; + public override double CD => 45; + public override double HardnessTime { get; set; } = 9; + public override bool CanSelectSelf => true; + public override bool CanSelectTeammate => true; + public override bool CanSelectEnemy => false; + public override int CanSelectTargetCount => 1; + + public 回复弹(Character? character = null) : base(SkillType.Skill, character) + { + CastRange = 4; + Effects.Add(new 纯数值回复生命(this, 200, 150)); + Effects.Add(new 弱驱散特效(this)); + } + } +} diff --git a/OshimaModules/Skills/战技/天堂之吻.cs b/OshimaModules/Skills/战技/天堂之吻.cs new file mode 100644 index 0000000..aac8bfe --- /dev/null +++ b/OshimaModules/Skills/战技/天堂之吻.cs @@ -0,0 +1,27 @@ +using Milimoe.FunGame.Core.Entity; +using Milimoe.FunGame.Core.Library.Constant; +using Oshima.FunGame.OshimaModules.Effects.SkillEffects; + +namespace Oshima.FunGame.OshimaModules.Skills +{ + public class 天堂之吻 : Skill + { + public override long Id => (long)SkillID.天堂之吻; + public override string Name => "天堂之吻"; + public override string Description => Effects.Count > 0 ? Effects.First().Description : ""; + public override string DispelDescription => Effects.Count > 0 ? Effects.First().DispelDescription : ""; + public override double EPCost => 60; + public override double CD => 40; + public override double HardnessTime { get; set; } = 10; + public override bool CanSelectSelf => true; + public override bool CanSelectTeammate => true; + public override bool CanSelectEnemy => false; + public override int CanSelectTargetCount => 2; + + public 天堂之吻(Character? character = null) : base(SkillType.Skill, character) + { + CastRange = 5; + Effects.Add(new 提升友方行动速度(this, 120, 50, duration: 20)); + } + } +} diff --git a/OshimaModules/Skills/战技/挑拨.cs b/OshimaModules/Skills/战技/挑拨.cs index 670adc9..0276f96 100644 --- a/OshimaModules/Skills/战技/挑拨.cs +++ b/OshimaModules/Skills/战技/挑拨.cs @@ -1,4 +1,5 @@ using Milimoe.FunGame.Core.Entity; +using Milimoe.FunGame.Core.Library.Common.Addon; using Milimoe.FunGame.Core.Library.Constant; using Oshima.FunGame.OshimaModules.Effects.PassiveEffects; @@ -46,7 +47,7 @@ namespace Oshima.FunGame.OshimaModules.Skills GamingQueue = skill.GamingQueue; } - public override void OnSkillCasted(Character caster, List targets, Dictionary others) + public override async Task OnSkillCasted(Character caster, List targets, List grids, Dictionary others) { foreach (Character target in targets) { diff --git a/OshimaModules/Skills/战技/疾走.cs b/OshimaModules/Skills/战技/疾走.cs index 4a5eb51..f7b3977 100644 --- a/OshimaModules/Skills/战技/疾走.cs +++ b/OshimaModules/Skills/战技/疾走.cs @@ -1,4 +1,5 @@ using Milimoe.FunGame.Core.Entity; +using Milimoe.FunGame.Core.Library.Common.Addon; using Milimoe.FunGame.Core.Library.Constant; using Milimoe.FunGame.Core.Model; @@ -61,7 +62,7 @@ namespace Oshima.FunGame.OshimaModules.Skills character.ExMOV -= 本次提升; } - public override void OnSkillCasted(Character caster, List targets, Dictionary others) + public override async Task OnSkillCasted(Character caster, List targets, List grids, Dictionary others) { 本次提升 = 0; if (!caster.Effects.Contains(this)) diff --git a/OshimaModules/Skills/战技/疾风步.cs b/OshimaModules/Skills/战技/疾风步.cs index 2e96257..a37807f 100644 --- a/OshimaModules/Skills/战技/疾风步.cs +++ b/OshimaModules/Skills/战技/疾风步.cs @@ -1,4 +1,5 @@ using Milimoe.FunGame.Core.Entity; +using Milimoe.FunGame.Core.Library.Common.Addon; using Milimoe.FunGame.Core.Library.Constant; namespace Oshima.FunGame.OshimaModules.Skills @@ -74,7 +75,7 @@ namespace Oshima.FunGame.OshimaModules.Skills return 0; } - public override void OnSkillCasted(Character caster, List targets, Dictionary others) + public override async Task OnSkillCasted(Character caster, List targets, List grids, Dictionary others) { if (!caster.Effects.Contains(this)) { diff --git a/OshimaModules/Skills/战技/镜花水月.cs b/OshimaModules/Skills/战技/镜花水月.cs new file mode 100644 index 0000000..15cd3ec --- /dev/null +++ b/OshimaModules/Skills/战技/镜花水月.cs @@ -0,0 +1,25 @@ +using Milimoe.FunGame.Core.Entity; +using Milimoe.FunGame.Core.Library.Constant; +using Oshima.FunGame.OshimaModules.Effects.SkillEffects; + +namespace Oshima.FunGame.OshimaModules.Skills +{ + public class 镜花水月 : Skill + { + public override long Id => (long)SkillID.镜花水月; + public override string Name => "镜花水月"; + public override string Description => string.Join("", Effects.Select(e => e.Description)); + public override string DispelDescription => Effects.Count > 0 ? Effects.First(e => e is 施加免疫).DispelDescription : ""; + public override double EPCost => 70; + public override double CD => 40; + public override double HardnessTime { get; set; } = 10; + public override bool CanSelectSelf => true; + public override bool CanSelectEnemy => false; + public override bool CanSelectTeammate => false; + + public 镜花水月(Character? character = null) : base(SkillType.Skill, character) + { + Effects.Add(new 施加免疫(this, ImmuneType.All, false, 0, 2)); + } + } +} diff --git a/OshimaModules/Skills/战技/闪现.cs b/OshimaModules/Skills/战技/闪现.cs index 0a6b094..5b1becf 100644 --- a/OshimaModules/Skills/战技/闪现.cs +++ b/OshimaModules/Skills/战技/闪现.cs @@ -1,9 +1,9 @@ using Milimoe.FunGame.Core.Entity; +using Milimoe.FunGame.Core.Library.Common.Addon; using Milimoe.FunGame.Core.Library.Constant; namespace Oshima.FunGame.OshimaModules.Skills { - [Obsolete("非指向性技能测试,请勿使用")] public class 闪现 : Skill { public override long Id => (long)SkillID.闪现; @@ -11,12 +11,18 @@ namespace Oshima.FunGame.OshimaModules.Skills public override string Description => Effects.Count > 0 ? Effects.First().Description : ""; public override string DispelDescription => Effects.Count > 0 ? Effects.First().DispelDescription : ""; public override double EPCost => 25; - public override double CD => 25; + public override double CD => 35 - 1.5 * Level; public override double HardnessTime { get; set; } = 3; public override bool IsNonDirectional => true; + public override bool CanSelectSelf => true; + public override bool CanSelectEnemy => false; + public override bool CanSelectTeammate => false; + public override int CanSelectTargetRange => 0; + public override bool SelectIncludeCharacterGrid => false; public 闪现(Character? character = null) : base(SkillType.Skill, character) { + CastRange = 7; Effects.Add(new 闪现特效(this)); } } @@ -28,9 +34,12 @@ namespace Oshima.FunGame.OshimaModules.Skills public override string Description => $"立即将角色传送到范围内的任意一个没有被角色占据的指定地点。"; public override string DispelDescription => ""; - public override void OnSkillCasted(Character caster, List targets, Dictionary others) + public override async Task OnSkillCasted(Character caster, List targets, List grids, Dictionary others) { - + if (GamingQueue?.Map is GameMap map && grids.Count > 0) + { + map.CharacterMove(caster, map.GetCharacterCurrentGrid(caster), grids[0]); + } } } } diff --git a/OshimaModules/Skills/魔法/圣灵术.cs b/OshimaModules/Skills/魔法/圣灵术.cs index 331f167..672a57e 100644 --- a/OshimaModules/Skills/魔法/圣灵术.cs +++ b/OshimaModules/Skills/魔法/圣灵术.cs @@ -12,7 +12,7 @@ namespace Oshima.FunGame.OshimaModules.Skills public override string DispelDescription => Effects.FirstOrDefault(e => e is 弱驱散特效)?.DispelDescription ?? ""; public override double MPCost => Level > 0 ? 110 + (95 * (Level - 1)) : 110; public override double CD => Level > 0 ? 110 - (2 * (Level - 1)) : 110; - public override double CastTime => 7; + public override double CastTime => 5; public override double HardnessTime { get; set; } = 7; public override bool CanSelectSelf => true; public override bool CanSelectEnemy => false; diff --git a/OshimaModules/Skills/魔法/大地之墙.cs b/OshimaModules/Skills/魔法/大地之墙.cs index 9b07a1f..2ebdb17 100644 --- a/OshimaModules/Skills/魔法/大地之墙.cs +++ b/OshimaModules/Skills/魔法/大地之墙.cs @@ -1,4 +1,5 @@ using Milimoe.FunGame.Core.Entity; +using Milimoe.FunGame.Core.Library.Common.Addon; using Milimoe.FunGame.Core.Library.Constant; using Oshima.FunGame.OshimaModules.Effects.PassiveEffects; using Oshima.FunGame.OshimaModules.Effects.SkillEffects; @@ -111,7 +112,7 @@ namespace Oshima.FunGame.OshimaModules.Skills } } - public override void OnSkillCasted(Character caster, List targets, Dictionary others) + public override async Task OnSkillCasted(Character caster, List targets, List grids, Dictionary others) { _targets = targets; foreach (Character target in targets) diff --git a/OshimaModules/Skills/魔法/强音之力.cs b/OshimaModules/Skills/魔法/强音之力.cs index a8fd5dd..77a7e8d 100644 --- a/OshimaModules/Skills/魔法/强音之力.cs +++ b/OshimaModules/Skills/魔法/强音之力.cs @@ -1,4 +1,5 @@ using Milimoe.FunGame.Core.Entity; +using Milimoe.FunGame.Core.Library.Common.Addon; using Milimoe.FunGame.Core.Library.Constant; using Oshima.FunGame.OshimaModules.Effects.OpenEffects; @@ -51,7 +52,7 @@ namespace Oshima.FunGame.OshimaModules.Skills _levelGrowth = levelGrowth; } - public override void OnSkillCasted(Character caster, List targets, Dictionary others) + public override async Task OnSkillCasted(Character caster, List targets, List grids, Dictionary others) { foreach (Character target in targets) { diff --git a/OshimaModules/Skills/魔法/强音之力复.cs b/OshimaModules/Skills/魔法/强音之力复.cs index dbeb162..d7485a1 100644 --- a/OshimaModules/Skills/魔法/强音之力复.cs +++ b/OshimaModules/Skills/魔法/强音之力复.cs @@ -1,4 +1,5 @@ using Milimoe.FunGame.Core.Entity; +using Milimoe.FunGame.Core.Library.Common.Addon; using Milimoe.FunGame.Core.Library.Constant; using Oshima.FunGame.OshimaModules.Effects.OpenEffects; @@ -66,7 +67,7 @@ namespace Oshima.FunGame.OshimaModules.Skills _levelGrowth = levelGrowth; } - public override void OnSkillCasted(Character caster, List targets, Dictionary others) + public override async Task OnSkillCasted(Character caster, List targets, List grids, Dictionary others) { foreach (Character target in targets) { diff --git a/OshimaModules/Skills/魔法/时间减速复.cs b/OshimaModules/Skills/魔法/时间减速复.cs index 7ce64ef..42acb37 100644 --- a/OshimaModules/Skills/魔法/时间减速复.cs +++ b/OshimaModules/Skills/魔法/时间减速复.cs @@ -1,4 +1,5 @@ using Milimoe.FunGame.Core.Entity; +using Milimoe.FunGame.Core.Library.Common.Addon; using Milimoe.FunGame.Core.Library.Constant; using Oshima.FunGame.OshimaModules.Effects.OpenEffects; @@ -74,7 +75,7 @@ namespace Oshima.FunGame.OshimaModules.Skills _accLevelGrowth = accLevelGrowth; } - public override void OnSkillCasted(Character caster, List targets, Dictionary others) + public override async Task OnSkillCasted(Character caster, List targets, List grids, Dictionary others) { foreach (Character target in targets) { diff --git a/OshimaModules/Skills/魔法/时间减速改.cs b/OshimaModules/Skills/魔法/时间减速改.cs index a5a1aa0..182361d 100644 --- a/OshimaModules/Skills/魔法/时间减速改.cs +++ b/OshimaModules/Skills/魔法/时间减速改.cs @@ -1,4 +1,5 @@ using Milimoe.FunGame.Core.Entity; +using Milimoe.FunGame.Core.Library.Common.Addon; using Milimoe.FunGame.Core.Library.Constant; using Oshima.FunGame.OshimaModules.Effects.OpenEffects; @@ -58,7 +59,7 @@ namespace Oshima.FunGame.OshimaModules.Skills _accLevelGrowth = accLevelGrowth; } - public override void OnSkillCasted(Character caster, List targets, Dictionary others) + public override async Task OnSkillCasted(Character caster, List targets, List grids, Dictionary others) { foreach (Character target in targets) { diff --git a/OshimaModules/Skills/魔法/时间加速复.cs b/OshimaModules/Skills/魔法/时间加速复.cs index 3ff6cc5..3cc1d71 100644 --- a/OshimaModules/Skills/魔法/时间加速复.cs +++ b/OshimaModules/Skills/魔法/时间加速复.cs @@ -1,4 +1,5 @@ using Milimoe.FunGame.Core.Entity; +using Milimoe.FunGame.Core.Library.Common.Addon; using Milimoe.FunGame.Core.Library.Constant; using Oshima.FunGame.OshimaModules.Effects.OpenEffects; @@ -77,7 +78,7 @@ namespace Oshima.FunGame.OshimaModules.Skills _accLevelGrowth = accLevelGrowth; } - public override void OnSkillCasted(Character caster, List targets, Dictionary others) + public override async Task OnSkillCasted(Character caster, List targets, List grids, Dictionary others) { foreach (Character target in targets) { diff --git a/OshimaModules/Skills/魔法/时间加速改.cs b/OshimaModules/Skills/魔法/时间加速改.cs index d614ab4..0084be1 100644 --- a/OshimaModules/Skills/魔法/时间加速改.cs +++ b/OshimaModules/Skills/魔法/时间加速改.cs @@ -1,4 +1,5 @@ using Milimoe.FunGame.Core.Entity; +using Milimoe.FunGame.Core.Library.Common.Addon; using Milimoe.FunGame.Core.Library.Constant; using Oshima.FunGame.OshimaModules.Effects.OpenEffects; @@ -61,7 +62,7 @@ namespace Oshima.FunGame.OshimaModules.Skills _accLevelGrowth = accLevelGrowth; } - public override void OnSkillCasted(Character caster, List targets, Dictionary others) + public override async Task OnSkillCasted(Character caster, List targets, List grids, Dictionary others) { foreach (Character target in targets) { diff --git a/OshimaModules/Skills/魔法/根源屏障.cs b/OshimaModules/Skills/魔法/根源屏障.cs index 8e1e102..e72eb37 100644 --- a/OshimaModules/Skills/魔法/根源屏障.cs +++ b/OshimaModules/Skills/魔法/根源屏障.cs @@ -1,4 +1,5 @@ using Milimoe.FunGame.Core.Entity; +using Milimoe.FunGame.Core.Library.Common.Addon; using Milimoe.FunGame.Core.Library.Constant; using Oshima.FunGame.OshimaModules.Effects.SkillEffects; @@ -40,12 +41,8 @@ namespace Oshima.FunGame.OshimaModules.Skills { return Level switch { - 3 => 2, - 4 => 2, - 5 => 2, - 6 => 3, - 7 => 3, - 8 => 3, + 3 or 4 or 5 => 2, + 6 or 7 or 8 => 3, _ => 1 }; } @@ -56,12 +53,14 @@ namespace Oshima.FunGame.OshimaModules.Skills GamingQueue = skill.GamingQueue; } - public override void OnSkillCasted(Character caster, List targets, Dictionary others) + public override async Task OnSkillCasted(Character caster, List targets, List grids, Dictionary others) { - new 施加免疫(Skill, ImmuneType.Magical, false, 0, 实际持续时间).OnSkillCasted(caster, targets, others); + Effect effect = new 施加免疫(Skill, ImmuneType.Magical, false, 0, 实际持续时间); + await effect.OnSkillCasted(caster, targets, grids, others); if (Level > 4) { - new 施加免疫(Skill, ImmuneType.Skilled, false, 0, 1).OnSkillCasted(caster, targets, others); + effect = new 施加免疫(Skill, ImmuneType.Skilled, false, 0, 1); + await effect.OnSkillCasted(caster, targets, grids, others); } } } diff --git a/OshimaModules/Skills/魔法/治愈术.cs b/OshimaModules/Skills/魔法/治愈术.cs index c910fd6..b366f48 100644 --- a/OshimaModules/Skills/魔法/治愈术.cs +++ b/OshimaModules/Skills/魔法/治愈术.cs @@ -11,7 +11,7 @@ namespace Oshima.FunGame.OshimaModules.Skills public override string Description => string.Join("", Effects.Select(e => e.Description)); public override double MPCost => Level > 0 ? 80 + (85 * (Level - 1)) : 80; public override double CD => Level > 0 ? 80 - (1 * (Level - 1)) : 80; - public override double CastTime => Level > 0 ? 5 + (0.25 * (Level - 1)) : 5; + public override double CastTime => Level > 0 ? 3 + (0.25 * (Level - 1)) : 3; public override double HardnessTime { get; set; } = 6; public override bool CanSelectSelf => true; public override bool CanSelectEnemy => false; diff --git a/OshimaModules/Skills/魔法/治愈术复.cs b/OshimaModules/Skills/魔法/治愈术复.cs index d66ebb7..bf8646b 100644 --- a/OshimaModules/Skills/魔法/治愈术复.cs +++ b/OshimaModules/Skills/魔法/治愈术复.cs @@ -11,7 +11,7 @@ namespace Oshima.FunGame.OshimaModules.Skills public override string Description => string.Join("", Effects.Select(e => e.Description)); public override double MPCost => Level > 0 ? 85 + (90 * (Level - 1)) : 85; public override double CD => Level > 0 ? 92 - (1 * (Level - 1)) : 92; - public override double CastTime => Level > 0 ? 6 + (0.25 * (Level - 1)) : 6; + public override double CastTime => Level > 0 ? 3 + (0.25 * (Level - 1)) : 3; public override double HardnessTime { get; set; } = 7; public override bool CanSelectSelf => true; public override bool CanSelectEnemy => false; diff --git a/OshimaModules/Skills/魔法/灾难冲击波.cs b/OshimaModules/Skills/魔法/灾难冲击波.cs index fd09c71..0ea8893 100644 --- a/OshimaModules/Skills/魔法/灾难冲击波.cs +++ b/OshimaModules/Skills/魔法/灾难冲击波.cs @@ -1,4 +1,5 @@ using Milimoe.FunGame.Core.Entity; +using Milimoe.FunGame.Core.Library.Common.Addon; using Milimoe.FunGame.Core.Library.Constant; using Oshima.FunGame.OshimaModules.Effects.OpenEffects; using Oshima.FunGame.OshimaModules.Effects.SkillEffects; @@ -67,7 +68,7 @@ namespace Oshima.FunGame.OshimaModules.Skills _MDFReductionPercentLevelGrowth = MDFReductionPercentLevelGrowth; } - public override void OnSkillCasted(Character caster, List targets, Dictionary others) + public override async Task OnSkillCasted(Character caster, List targets, List grids, Dictionary others) { foreach (Character target in targets) { diff --git a/OshimaModules/Skills/魔法/神圣祝福.cs b/OshimaModules/Skills/魔法/神圣祝福.cs index 7c4e099..5022bcc 100644 --- a/OshimaModules/Skills/魔法/神圣祝福.cs +++ b/OshimaModules/Skills/魔法/神圣祝福.cs @@ -1,4 +1,5 @@ using Milimoe.FunGame.Core.Entity; +using Milimoe.FunGame.Core.Library.Common.Addon; using Milimoe.FunGame.Core.Library.Constant; using Oshima.FunGame.OshimaModules.Effects.OpenEffects; @@ -53,7 +54,7 @@ namespace Oshima.FunGame.OshimaModules.Skills _levelGrowth = levelGrowth; } - public override void OnSkillCasted(Character caster, List targets, Dictionary others) + public override async Task OnSkillCasted(Character caster, List targets, List grids, Dictionary others) { foreach (Character target in targets) { diff --git a/OshimaModules/Skills/魔法/神圣祝福复.cs b/OshimaModules/Skills/魔法/神圣祝福复.cs index 617f10b..88cb04f 100644 --- a/OshimaModules/Skills/魔法/神圣祝福复.cs +++ b/OshimaModules/Skills/魔法/神圣祝福复.cs @@ -1,4 +1,5 @@ using Milimoe.FunGame.Core.Entity; +using Milimoe.FunGame.Core.Library.Common.Addon; using Milimoe.FunGame.Core.Library.Constant; using Oshima.FunGame.OshimaModules.Effects.OpenEffects; @@ -68,7 +69,7 @@ namespace Oshima.FunGame.OshimaModules.Skills _levelGrowth = levelGrowth; } - public override void OnSkillCasted(Character caster, List targets, Dictionary others) + public override async Task OnSkillCasted(Character caster, List targets, List grids, Dictionary others) { foreach (Character target in targets) { diff --git a/OshimaModules/Skills/魔法/结晶防护.cs b/OshimaModules/Skills/魔法/结晶防护.cs index 19cf41e..3a7185a 100644 --- a/OshimaModules/Skills/魔法/结晶防护.cs +++ b/OshimaModules/Skills/魔法/结晶防护.cs @@ -1,4 +1,5 @@ using Milimoe.FunGame.Core.Entity; +using Milimoe.FunGame.Core.Library.Common.Addon; using Milimoe.FunGame.Core.Library.Constant; using Oshima.FunGame.OshimaModules.Effects.OpenEffects; @@ -52,7 +53,7 @@ namespace Oshima.FunGame.OshimaModules.Skills _levelGrowth = levelGrowth; } - public override void OnSkillCasted(Character caster, List targets, Dictionary others) + public override async Task OnSkillCasted(Character caster, List targets, List grids, Dictionary others) { foreach (Character target in targets) { diff --git a/OshimaModules/Skills/魔法/结晶防护复.cs b/OshimaModules/Skills/魔法/结晶防护复.cs index 0ecd351..afbdd3a 100644 --- a/OshimaModules/Skills/魔法/结晶防护复.cs +++ b/OshimaModules/Skills/魔法/结晶防护复.cs @@ -1,4 +1,5 @@ using Milimoe.FunGame.Core.Entity; +using Milimoe.FunGame.Core.Library.Common.Addon; using Milimoe.FunGame.Core.Library.Constant; using Oshima.FunGame.OshimaModules.Effects.OpenEffects; @@ -67,7 +68,7 @@ namespace Oshima.FunGame.OshimaModules.Skills _levelGrowth = levelGrowth; } - public override void OnSkillCasted(Character caster, List targets, Dictionary others) + public override async Task OnSkillCasted(Character caster, List targets, List grids, Dictionary others) { foreach (Character target in targets) { diff --git a/OshimaModules/Skills/魔法/银色荆棘.cs b/OshimaModules/Skills/魔法/银色荆棘.cs index 349be16..57c225f 100644 --- a/OshimaModules/Skills/魔法/银色荆棘.cs +++ b/OshimaModules/Skills/魔法/银色荆棘.cs @@ -1,4 +1,5 @@ using Milimoe.FunGame.Core.Entity; +using Milimoe.FunGame.Core.Library.Common.Addon; using Milimoe.FunGame.Core.Library.Constant; using Oshima.FunGame.OshimaModules.Effects.PassiveEffects; @@ -69,7 +70,7 @@ namespace Oshima.FunGame.OshimaModules.Skills _confusionProbabilityLevelGrowth = confusionProbabilityLevelGrowth; } - public override void OnSkillCasted(Character caster, List targets, Dictionary others) + public override async Task OnSkillCasted(Character caster, List targets, List grids, Dictionary others) { foreach (Character target in targets) { diff --git a/OshimaModules/Skills/魔法/风之守护.cs b/OshimaModules/Skills/魔法/风之守护.cs index b6e10d5..cfcff70 100644 --- a/OshimaModules/Skills/魔法/风之守护.cs +++ b/OshimaModules/Skills/魔法/风之守护.cs @@ -1,4 +1,5 @@ using Milimoe.FunGame.Core.Entity; +using Milimoe.FunGame.Core.Library.Common.Addon; using Milimoe.FunGame.Core.Library.Constant; using Oshima.FunGame.OshimaModules.Effects.OpenEffects; @@ -52,7 +53,7 @@ namespace Oshima.FunGame.OshimaModules.Skills _levelGrowth = levelGrowth; } - public override void OnSkillCasted(Character caster, List targets, Dictionary others) + public override async Task OnSkillCasted(Character caster, List targets, List grids, Dictionary others) { foreach (Character target in targets) { diff --git a/OshimaModules/Skills/魔法/风之守护复.cs b/OshimaModules/Skills/魔法/风之守护复.cs index dbf5f74..9adf045 100644 --- a/OshimaModules/Skills/魔法/风之守护复.cs +++ b/OshimaModules/Skills/魔法/风之守护复.cs @@ -1,4 +1,5 @@ using Milimoe.FunGame.Core.Entity; +using Milimoe.FunGame.Core.Library.Common.Addon; using Milimoe.FunGame.Core.Library.Constant; using Oshima.FunGame.OshimaModules.Effects.OpenEffects; @@ -67,7 +68,7 @@ namespace Oshima.FunGame.OshimaModules.Skills _levelGrowth = levelGrowth; } - public override void OnSkillCasted(Character caster, List targets, Dictionary others) + public override async Task OnSkillCasted(Character caster, List targets, List grids, Dictionary others) { foreach (Character target in targets) { diff --git a/OshimaServers/Service/FunGameService.cs b/OshimaServers/Service/FunGameService.cs index 5ade699..bd74969 100644 --- a/OshimaServers/Service/FunGameService.cs +++ b/OshimaServers/Service/FunGameService.cs @@ -46,7 +46,8 @@ namespace Oshima.FunGame.OshimaServers.Service FunGameConstant.Characters.Add(new dddovo()); FunGameConstant.Characters.Add(new Quduoduo()); - FunGameConstant.Skills.AddRange([new 疾风步(), new 疾走(), new 助威(), new 挑拨(), new 绞丝棍(), new 金刚击(), new 旋风轮(), new 双连击(), new 绝影(), new 胧(), new 魔眼()]); + FunGameConstant.Skills.AddRange([new 疾风步(), new 助威(), new 挑拨(), new 绞丝棍(), new 金刚击(), new 旋风轮(), new 双连击(), new 绝影(), new 胧(), new 魔眼(), + new 天堂之吻(), new 回复弹(), new 养命功(), new 镜花水月(), new 剑风闪(), new 疾走(), new 闪现()]); FunGameConstant.SuperSkills.AddRange([new 嗜血本能(), new 平衡强化(), new 绝对领域(), new 精准打击(), new 三重叠加(), new 变幻之心(), new 力量爆发(), new 能量毁灭(), new 血之狂欢(), new 迅捷之势(), new 天赐之力(), new 魔法涌流()]); diff --git a/OshimaServers/Service/FunGameSimulation.cs b/OshimaServers/Service/FunGameSimulation.cs index 7e44722..4933683 100644 --- a/OshimaServers/Service/FunGameSimulation.cs +++ b/OshimaServers/Service/FunGameSimulation.cs @@ -2,7 +2,9 @@ using System.Text; using System.Text.Json; using Milimoe.FunGame.Core.Api.Utility; +using Milimoe.FunGame.Core.Controller; using Milimoe.FunGame.Core.Entity; +using Milimoe.FunGame.Core.Interface.Base; using Milimoe.FunGame.Core.Library.Common.Addon; using Milimoe.FunGame.Core.Library.Constant; using Milimoe.FunGame.Core.Model;