From 94935fde8393a0486ec85b3559a191e8dc2211e9 Mon Sep 17 00:00:00 2001 From: Melledy <121644117+Melledy@users.noreply.github.com> Date: Tue, 3 Oct 2023 02:09:10 -0700 Subject: [PATCH] Only teleport back to anchors when retreating from maze battles --- .../java/emu/lunarcore/game/battle/Battle.java | 18 +++++++++++++++++- .../lunarcore/game/battle/BattleService.java | 5 ++++- 2 files changed, 21 insertions(+), 2 deletions(-) diff --git a/src/main/java/emu/lunarcore/game/battle/Battle.java b/src/main/java/emu/lunarcore/game/battle/Battle.java index 27a65ae..3f62aed 100644 --- a/src/main/java/emu/lunarcore/game/battle/Battle.java +++ b/src/main/java/emu/lunarcore/game/battle/Battle.java @@ -8,6 +8,7 @@ import emu.lunarcore.data.GameData; import emu.lunarcore.data.excel.MazeBuffExcel; import emu.lunarcore.data.excel.StageExcel; import emu.lunarcore.game.avatar.GameAvatar; +import emu.lunarcore.game.enums.StageType; import emu.lunarcore.game.player.Player; import emu.lunarcore.game.player.PlayerLineup; import emu.lunarcore.game.scene.entity.EntityMonster; @@ -49,6 +50,22 @@ public class Battle { this.stages.addAll(stages); } + public StageType getStageType() { + StageExcel stage = this.getFirstStage(); + if (stage != null) { + return stage.getStageType(); + } + return StageType.Unknown; + } + + public StageExcel getFirstStage() { + if (this.getStages().size() > 0) { + return this.getStages().get(0); + } else { + return null; + } + } + public int getStageId() { if (this.getStages().size() > 0) { return this.getStages().get(0).getId(); @@ -57,7 +74,6 @@ public class Battle { } } - public MazeBuff addBuff(int buffId, int ownerIndex) { return addBuff(buffId, ownerIndex, 0xffffffff); } diff --git a/src/main/java/emu/lunarcore/game/battle/BattleService.java b/src/main/java/emu/lunarcore/game/battle/BattleService.java index d01d7cc..60756fb 100644 --- a/src/main/java/emu/lunarcore/game/battle/BattleService.java +++ b/src/main/java/emu/lunarcore/game/battle/BattleService.java @@ -206,8 +206,11 @@ public class BattleService extends BaseGameService { teleportToAnchor = true; } case BATTLE_END_QUIT -> { - teleportToAnchor = true; updateStatus = false; + // Only teleport back to anchor if stage is a random fight + if (battle.getStageType().getVal() <= StageType.Maze.getVal()) { + teleportToAnchor = true; + } } default -> { updateStatus = false;