From d1c96aa9a3f463ce499749eb5ec44a3980b79c1f Mon Sep 17 00:00:00 2001 From: Melledy <121644117+Melledy@users.noreply.github.com> Date: Thu, 9 Nov 2023 00:35:19 -0800 Subject: [PATCH] Dont remove farmable monsters from the scene when they are defeated --- src/main/java/emu/lunarcore/game/battle/BattleService.java | 3 +++ .../emu/lunarcore/game/scene/entity/EntityMonster.java | 7 +++++++ 2 files changed, 10 insertions(+) diff --git a/src/main/java/emu/lunarcore/game/battle/BattleService.java b/src/main/java/emu/lunarcore/game/battle/BattleService.java index 9fac6be..adf39c8 100644 --- a/src/main/java/emu/lunarcore/game/battle/BattleService.java +++ b/src/main/java/emu/lunarcore/game/battle/BattleService.java @@ -205,6 +205,9 @@ public class BattleService extends BaseGameService { case BATTLE_END_WIN -> { // Remove monsters from the map - Could optimize it a little better for (var monster : battle.getNpcMonsters()) { + // Dont remove farmable monsters from the scene when they are defeated + if (monster.isFarmElement()) continue; + // Remove monster player.getScene().removeEntity(monster); } // Drops 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 e688a0b..9904140 100644 --- a/src/main/java/emu/lunarcore/game/scene/entity/EntityMonster.java +++ b/src/main/java/emu/lunarcore/game/scene/entity/EntityMonster.java @@ -26,6 +26,8 @@ public class EntityMonster implements GameEntity { private final Position pos; private final Position rot; + private int farmElementId; + public EntityMonster(Scene scene, NpcMonsterExcel excel, GroupInfo group, MonsterInfo monsterInfo) { this.scene = scene; this.excel = excel; @@ -33,6 +35,11 @@ public class EntityMonster implements GameEntity { this.rot = monsterInfo.getRot().clone(); this.groupId = group.getId(); this.instId = monsterInfo.getID(); + this.farmElementId = monsterInfo.getFarmElementID(); + } + + public boolean isFarmElement() { + return this.farmElementId > 0; } public int getStageId() {