diff --git a/Entity/Character/Character.cs b/Entity/Character/Character.cs index 9f40818..37da4b0 100644 --- a/Entity/Character/Character.cs +++ b/Entity/Character/Character.cs @@ -1190,6 +1190,7 @@ namespace Milimoe.FunGame.Core.Entity /// public void OnLevelUp(int level = 0, bool checkLevelBreak = true) { + bool isUp = false; int count = 0; while (true) { @@ -1213,6 +1214,7 @@ namespace Milimoe.FunGame.Core.Entity { EXP -= need; Level++; + isUp = true; OnAttributeChanged(); Recovery(); } @@ -1221,6 +1223,14 @@ namespace Milimoe.FunGame.Core.Entity break; } } + if (isUp) + { + Effect[] effects = [.. Effects.Where(e => e.IsInEffect)]; + foreach (Effect e in effects) + { + e.OnOwnerLevelUp(this, Level); + } + } } /// diff --git a/Entity/Skill/Skill.cs b/Entity/Skill/Skill.cs index f56e688..61dde4f 100644 --- a/Entity/Skill/Skill.cs +++ b/Entity/Skill/Skill.cs @@ -288,6 +288,14 @@ namespace Milimoe.FunGame.Core.Entity } } } + if (Level > 0 && Character != null) + { + Effect[] effects = [.. Character.Effects.Where(e => e.IsInEffect)]; + foreach (Effect e in effects) + { + e.OnSkillLevelUp(Character, Level); + } + } } ///