Browse Source

Fire appropriate level change events for Hardcore mode.

GJ 11 năm trước cách đây
mục cha
commit
fdaa42edd3
1 tập tin đã thay đổi với 10 bổ sung0 xóa
  1. 10 0
      src/main/java/com/gmail/nossr50/util/HardcoreManager.java

+ 10 - 0
src/main/java/com/gmail/nossr50/util/HardcoreManager.java

@@ -35,8 +35,11 @@ public final class HardcoreManager {
 
             totalLevelsLost += levelsLost;
 
+            float xpRemoved = playerProfile.getSkillXpLevelRaw(skillType);
             playerProfile.modifySkill(skillType, playerSkillLevel - levelsLost);
             playerProfile.removeXp(skillType, xpLost);
+
+            EventUtils.handleLevelChangeEvent(player, skillType, levelsLost, xpLost + xpRemoved, false);
         }
 
         player.sendMessage(LocaleLoader.getString("Hardcore.DeathStatLoss.PlayerDeath", totalLevelsLost));
@@ -69,11 +72,18 @@ public final class HardcoreManager {
 
             totalLevelsStolen += levelsStolen;
 
+            float killerXpRemoved = killerProfile.getSkillXpLevelRaw(skillType);
             killerProfile.modifySkill(skillType, killerSkillLevel + levelsStolen);
+            EventUtils.handleLevelChangeEvent(killer, skillType, levelsStolen, killerXpRemoved, true);
+
             killerProfile.addXp(skillType, xpStolen);
+            EventUtils.handleXpGainEvent(killer, skillType, xpStolen);
 
+            float victimXpRemoved = killerProfile.getSkillXpLevelRaw(skillType);
             victimProfile.modifySkill(skillType, victimSkillLevel - levelsStolen);
             victimProfile.removeXp(skillType, xpStolen);
+
+            EventUtils.handleLevelChangeEvent(victim, skillType, levelsStolen, victimXpRemoved + xpStolen, false);
         }
 
         if (totalLevelsStolen > 0) {