Implement proper monster levels in SU

This commit is contained in:
Melledy
2023-11-12 00:13:03 -08:00
parent d216c61a5a
commit 2ddd89829d
3 changed files with 13 additions and 0 deletions

View File

@@ -41,6 +41,7 @@ public class GameData {
@Getter private static Int2ObjectMap<RogueAeonExcel> rogueAeonExcelMap = new Int2ObjectLinkedOpenHashMap<>();
@Getter private static Int2ObjectMap<RogueAreaExcel> rogueAreaExcelMap = new Int2ObjectOpenHashMap<>();
@Getter private static Int2ObjectMap<RogueRoomExcel> rogueRoomExcelMap = new Int2ObjectOpenHashMap<>();
@Getter private static Int2ObjectMap<RogueMapExcel> rogueMapExcelMap = new Int2ObjectOpenHashMap<>();
@Getter private static Int2ObjectMap<RogueMonsterExcel> rogueMonsterExcelMap = new Int2ObjectOpenHashMap<>();
private static Int2ObjectMap<AvatarPromotionExcel> 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);
}
}

View File

@@ -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() {

View File

@@ -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) {