From d1eed22ee799a260ec69c74b9fc3235111c62225 Mon Sep 17 00:00:00 2001 From: milimoe Date: Tue, 17 Dec 2024 01:31:32 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E4=BA=86=E4=BC=A0=E5=85=A5?= =?UTF-8?q?=20skillsDefined=20=E6=97=B6=E6=B2=A1=E6=9C=89=E6=8C=89?= =?UTF-8?q?=E5=AE=9A=E4=B9=89=E7=9A=84=20args=20=E6=9E=84=E9=80=A0?= =?UTF-8?q?=E7=89=B9=E6=95=88=EF=BC=9B=E6=B7=BB=E5=8A=A0=E7=BB=8F=E9=AA=8C?= =?UTF-8?q?=E5=80=BC=E7=9B=B8=E5=85=B3=E7=9A=84=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- OshimaCore/OshimaWebAPI.cs | 16 --------- OshimaCore/Utils/FunGameActionQueue.cs | 7 ++++ OshimaModules/Effects/EffectID.cs | 5 +++ OshimaModules/Effects/ItemEffects/GetEP.cs | 2 +- OshimaModules/Effects/ItemEffects/GetEXP.cs | 35 ++++++++++++++++++++ OshimaModules/Modules/SkillModule.cs | 1 + OshimaModules/Skills/MagicalGirl/毁灭之势.cs | 2 +- 7 files changed, 50 insertions(+), 18 deletions(-) create mode 100644 OshimaModules/Effects/ItemEffects/GetEXP.cs diff --git a/OshimaCore/OshimaWebAPI.cs b/OshimaCore/OshimaWebAPI.cs index 8fbda9c..fbafb44 100644 --- a/OshimaCore/OshimaWebAPI.cs +++ b/OshimaCore/OshimaWebAPI.cs @@ -48,22 +48,6 @@ namespace Oshima.Core.WebAPI Ignore.InitIgnore(); FunGameService.InitFunGame(); FunGameActionQueue.InitFunGameActionQueue(); - List<(int start, int end, double expPerLevel)> levelRanges = [ - (1, 9, 1000), - (10, 19, 1500), - (20, 29, 2000), - (30, 39, 3000), - (40, 49, 4000), - (50, 59, 5000) - ]; - foreach (var (start, end, expPerLevel) in levelRanges) - { - for (int level = start; level <= end; level++) - { - General.GameplayEquilibriumConstant.EXPUpperLimit[level] = expPerLevel; - } - } - General.GameplayEquilibriumConstant.EXPUpperLimit[60] = 9999999999999; TaskScheduler.Shared.AddTask("重置每日运势", new TimeSpan(0, 0, 0), () => { Controller.WriteLine("已重置所有人的今日运势"); diff --git a/OshimaCore/Utils/FunGameActionQueue.cs b/OshimaCore/Utils/FunGameActionQueue.cs index d75fa97..56725a3 100644 --- a/OshimaCore/Utils/FunGameActionQueue.cs +++ b/OshimaCore/Utils/FunGameActionQueue.cs @@ -1017,6 +1017,13 @@ namespace Oshima.Core.Utils { { "mp", Math.Clamp(Random.Shared.NextDouble(), 0.09, 0.18) } } + }, + { + EffectID.GetEP, + new() + { + { "ep", Random.Shared.Next(20, 40) } + } } }; } diff --git a/OshimaModules/Effects/EffectID.cs b/OshimaModules/Effects/EffectID.cs index aa02dd1..c0c080d 100644 --- a/OshimaModules/Effects/EffectID.cs +++ b/OshimaModules/Effects/EffectID.cs @@ -199,6 +199,11 @@ /// 立即获得能量值,参数:ep /// GetEP = 8705, + + /// + /// 立即获得经验值,参数:exp + /// + GetEXP = 8706, /// /// 主动特效终点 diff --git a/OshimaModules/Effects/ItemEffects/GetEP.cs b/OshimaModules/Effects/ItemEffects/GetEP.cs index cc416ec..1062abf 100644 --- a/OshimaModules/Effects/ItemEffects/GetEP.cs +++ b/OshimaModules/Effects/ItemEffects/GetEP.cs @@ -8,7 +8,7 @@ namespace Oshima.FunGame.OshimaModules.Effects.ItemEffects { 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 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; diff --git a/OshimaModules/Effects/ItemEffects/GetEXP.cs b/OshimaModules/Effects/ItemEffects/GetEXP.cs new file mode 100644 index 0000000..a690d31 --- /dev/null +++ b/OshimaModules/Effects/ItemEffects/GetEXP.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 GetEXP : Effect + { + public override long Id => (long)EffectID.GetEXP; + 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 GetEXP(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("exp", StringComparison.CurrentCultureIgnoreCase)) ?? ""; + if (key.Length > 0 && double.TryParse(Values[key].ToString(), out double exp) && exp > 0) + { + 实际获得 = exp; + } + } + } + + public override void OnSkillCasted(Character caster, List targets, Dictionary others) + { + caster.EXP += 实际获得; + } + } +} \ No newline at end of file diff --git a/OshimaModules/Modules/SkillModule.cs b/OshimaModules/Modules/SkillModule.cs index f8332c8..9ba82fb 100644 --- a/OshimaModules/Modules/SkillModule.cs +++ b/OshimaModules/Modules/SkillModule.cs @@ -117,6 +117,7 @@ namespace Oshima.FunGame.OshimaModules EffectID.RecoverHP2 => new RecoverHP2(skill, dict), EffectID.RecoverMP2 => new RecoverMP2(skill, dict), EffectID.GetEP => new GetEP(skill, dict), + EffectID.GetEXP => new GetEXP(skill, dict), _ => null }; } diff --git a/OshimaModules/Skills/MagicalGirl/毁灭之势.cs b/OshimaModules/Skills/MagicalGirl/毁灭之势.cs index f715348..733bc1d 100644 --- a/OshimaModules/Skills/MagicalGirl/毁灭之势.cs +++ b/OshimaModules/Skills/MagicalGirl/毁灭之势.cs @@ -26,7 +26,7 @@ namespace Oshima.FunGame.OshimaModules.Skills public override string Name => Skill.Name; public override string Description => $"每时间提升 {伤害提升 * 100:0.##}% 所有伤害,无上限,但受到伤害时效果清零。" + (累计伤害 > 0 ? $"(当前总提升:{累计伤害 * 100:0.##}%)" : ""); - private readonly double 伤害提升 = 0.04; + private readonly double 伤害提升 = 0.03; private double 累计伤害 = 0; public override double AlterActualDamageAfterCalculation(Character character, Character enemy, double damage, bool isNormalAttack, bool isMagicDamage, MagicType magicType, DamageResult damageResult, ref bool isEvaded, Dictionary totalDamageBonus)