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)