From 2ddd89829d46447aa6e489242e717f1256591552 Mon Sep 17 00:00:00 2001 From: Melledy <121644117+Melledy@users.noreply.github.com> Date: Sun, 12 Nov 2023 00:13:03 -0800 Subject: [PATCH] Implement proper monster levels in SU --- src/main/java/emu/lunarcore/data/GameData.java | 5 +++++ src/main/java/emu/lunarcore/data/excel/RogueMapExcel.java | 1 + src/main/java/emu/lunarcore/game/rogue/RogueInstance.java | 7 +++++++ 3 files changed, 13 insertions(+) diff --git a/src/main/java/emu/lunarcore/data/GameData.java b/src/main/java/emu/lunarcore/data/GameData.java index dc077c6..8c0070f 100644 --- a/src/main/java/emu/lunarcore/data/GameData.java +++ b/src/main/java/emu/lunarcore/data/GameData.java @@ -41,6 +41,7 @@ public class GameData { @Getter private static Int2ObjectMap rogueAeonExcelMap = new Int2ObjectLinkedOpenHashMap<>(); @Getter private static Int2ObjectMap rogueAreaExcelMap = new Int2ObjectOpenHashMap<>(); @Getter private static Int2ObjectMap rogueRoomExcelMap = new Int2ObjectOpenHashMap<>(); + @Getter private static Int2ObjectMap rogueMapExcelMap = new Int2ObjectOpenHashMap<>(); @Getter private static Int2ObjectMap rogueMonsterExcelMap = new Int2ObjectOpenHashMap<>(); private static Int2ObjectMap avatarPromotionExcelMap = new Int2ObjectOpenHashMap<>(); @@ -142,4 +143,8 @@ public class GameData { public static ChallengeRewardExcel getChallengeRewardExcel(int groupId, int starCount) { return challengeRewardExcelMap.get((groupId << 16) + starCount); } + + public static RogueMapExcel getRogueMapExcel(int rogueMapId, int siteId) { + return rogueMapExcelMap.get((rogueMapId << 8) + siteId); + } } diff --git a/src/main/java/emu/lunarcore/data/excel/RogueMapExcel.java b/src/main/java/emu/lunarcore/data/excel/RogueMapExcel.java index b59cea0..e91250b 100644 --- a/src/main/java/emu/lunarcore/data/excel/RogueMapExcel.java +++ b/src/main/java/emu/lunarcore/data/excel/RogueMapExcel.java @@ -13,6 +13,7 @@ public class RogueMapExcel extends GameResource { private int SiteID; private boolean IsStart; private int[] NextSiteIDList; + private int[] LevelList; @Override public int getId() { diff --git a/src/main/java/emu/lunarcore/game/rogue/RogueInstance.java b/src/main/java/emu/lunarcore/game/rogue/RogueInstance.java index 09d8fbc..41ba7a8 100644 --- a/src/main/java/emu/lunarcore/game/rogue/RogueInstance.java +++ b/src/main/java/emu/lunarcore/game/rogue/RogueInstance.java @@ -6,6 +6,7 @@ import emu.lunarcore.data.GameData; import emu.lunarcore.data.config.AnchorInfo; import emu.lunarcore.data.excel.RogueAeonExcel; import emu.lunarcore.data.excel.RogueAreaExcel; +import emu.lunarcore.data.excel.RogueMapExcel; import emu.lunarcore.game.battle.Battle; import emu.lunarcore.game.player.Player; import emu.lunarcore.proto.BattleEndStatusOuterClass.BattleEndStatus; @@ -226,9 +227,15 @@ public class RogueInstance { // Battle public synchronized void onBattleStart(Battle battle) { + // Add rogue blessings as battle buffs for (var buff : this.getBuffs().values()) { battle.addBuff(buff.toMazeBuff()); } + // Set monster level for battle + RogueMapExcel mapExcel = GameData.getRogueMapExcel(this.getExcel().getMapId(), this.getCurrentSiteId()); + if (mapExcel != null && mapExcel.getLevelList() != null && mapExcel.getLevelList().length >= 1) { + battle.setLevelOverride(mapExcel.getLevelList()[0]); + } } public synchronized void onBattleFinish(Battle battle, BattleEndStatus result, BattleStatistics stats) {