From fbe3a94c3cf1c2da1bcabfe1ca9f608c03b6956a Mon Sep 17 00:00:00 2001 From: Melledy <121644117+Melledy@users.noreply.github.com> Date: Fri, 29 Sep 2023 21:32:29 -0700 Subject: [PATCH] Fixed stagnant shadow bosses being the wrong world level when spawned Also reworked how monsters scaled when changing world level --- src/main/java/emu/lunarcore/game/battle/BattleService.java | 2 +- src/main/java/emu/lunarcore/game/scene/Scene.java | 5 +++++ .../java/emu/lunarcore/game/scene/entity/EntityMonster.java | 2 +- 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/src/main/java/emu/lunarcore/game/battle/BattleService.java b/src/main/java/emu/lunarcore/game/battle/BattleService.java index cc3ca86..f3be006 100644 --- a/src/main/java/emu/lunarcore/game/battle/BattleService.java +++ b/src/main/java/emu/lunarcore/game/battle/BattleService.java @@ -82,7 +82,7 @@ public class BattleService extends BaseGameService { List stages = new ArrayList<>(); for (var monster : monsters) { - StageExcel stage = GameData.getStageExcelMap().get(monster.getStageId(player.getWorldLevel())); + StageExcel stage = GameData.getStageExcelMap().get(monster.getStageId()); if (stage != null) { stages.add(stage); diff --git a/src/main/java/emu/lunarcore/game/scene/Scene.java b/src/main/java/emu/lunarcore/game/scene/Scene.java index 296bd7d..47e9faf 100644 --- a/src/main/java/emu/lunarcore/game/scene/Scene.java +++ b/src/main/java/emu/lunarcore/game/scene/Scene.java @@ -89,6 +89,7 @@ public class Scene { monster.setInstId(monsterInfo.getID()); monster.setEventId(monsterInfo.getEventID()); monster.setGroupId(group.getId()); + monster.setWorldLevel(this.getPlayer().getWorldLevel()); // Add to monsters this.addEntity(monster); @@ -210,6 +211,10 @@ public class Scene { return false; } + if (entity instanceof EntityMonster monster) { + monster.setWorldLevel(worldLevel); + } + player.sendPacket(new PacketActivateFarmElementScRsp(entityId, worldLevel)); return true; } diff --git a/src/main/java/emu/lunarcore/game/scene/entity/EntityMonster.java b/src/main/java/emu/lunarcore/game/scene/entity/EntityMonster.java index 36c84d7..420bdb0 100644 --- a/src/main/java/emu/lunarcore/game/scene/entity/EntityMonster.java +++ b/src/main/java/emu/lunarcore/game/scene/entity/EntityMonster.java @@ -28,7 +28,7 @@ public class EntityMonster implements GameEntity { this.rot = new Position(); } - public int getStageId(int worldLevel) { + public int getStageId() { return (this.getEventId() * 10) + worldLevel; }