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);
+ }
+ }
}
///