diff --git a/src/main/java/emu/lunarcore/GameConstants.java b/src/main/java/emu/lunarcore/GameConstants.java index eec9d9e..feed397 100644 --- a/src/main/java/emu/lunarcore/GameConstants.java +++ b/src/main/java/emu/lunarcore/GameConstants.java @@ -9,7 +9,8 @@ public class GameConstants { public static String VERSION = "1.4.0"; public static String MDK_VERSION = ""; - public static final int CURRENT_TIMEZONE = ZoneOffset.systemDefault().getRules().getOffset(Instant.now()).getTotalSeconds() / 3600; + public static final ZoneOffset CURRENT_ZONEOFFSET = ZoneOffset.systemDefault().getRules().getOffset(Instant.now()); + public static final int CURRENT_TIMEZONE = CURRENT_ZONEOFFSET.getTotalSeconds() / 3600; // Game public static final String DEFAULT_NAME = "Trailblazer"; diff --git a/src/main/java/emu/lunarcore/data/GameData.java b/src/main/java/emu/lunarcore/data/GameData.java index 20e1b6f..b0ed80d 100644 --- a/src/main/java/emu/lunarcore/data/GameData.java +++ b/src/main/java/emu/lunarcore/data/GameData.java @@ -33,8 +33,8 @@ public class GameData { @Getter private static Int2ObjectMap challengeExcelMap = new Int2ObjectOpenHashMap<>(); @Getter private static Int2ObjectMap challengeTargetExcelMap = new Int2ObjectOpenHashMap<>(); - @Getter private static Int2ObjectMap rogueAreaExcelMap = new Int2ObjectLinkedOpenHashMap<>(); - @Getter private static Int2ObjectMap rogueScheduleExcelMap = new Int2ObjectOpenHashMap<>(); + @Getter private static Int2ObjectMap rogueAreaExcelMap = new Int2ObjectOpenHashMap<>(); + @Getter private static Int2ObjectMap rogueManagerExcelMap = new Int2ObjectOpenHashMap<>(); @Getter private static Int2ObjectMap rogueRoomExcelMap = new Int2ObjectOpenHashMap<>(); private static Int2ObjectMap avatarPromotionExcelMap = new Int2ObjectOpenHashMap<>(); diff --git a/src/main/java/emu/lunarcore/data/GameDepot.java b/src/main/java/emu/lunarcore/data/GameDepot.java index e6513da..c75b546 100644 --- a/src/main/java/emu/lunarcore/data/GameDepot.java +++ b/src/main/java/emu/lunarcore/data/GameDepot.java @@ -3,10 +3,11 @@ package emu.lunarcore.data; import java.util.ArrayList; import java.util.List; +import emu.lunarcore.GameConstants; import emu.lunarcore.data.excel.RelicMainAffixExcel; import emu.lunarcore.data.excel.RelicSubAffixExcel; import emu.lunarcore.data.excel.RogueMapExcel; -import emu.lunarcore.data.excel.RogueScheduleExcel; +import emu.lunarcore.data.excel.RogueManagerExcel; import emu.lunarcore.util.Utils; import it.unimi.dsi.fastutil.ints.Int2ObjectMap; import it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap; @@ -43,10 +44,10 @@ public class GameDepot { } // TODO cache this so we dont have to run this function everytime we get the schedule - public static RogueScheduleExcel getCurrentRogueSchedule() { + public static RogueManagerExcel getCurrentRogueSchedule() { long time = System.currentTimeMillis(); - for (var schedule : GameData.getRogueScheduleExcelMap().values()) { + for (var schedule : GameData.getRogueManagerExcelMap().values()) { if (time >= schedule.getBeginTime() && time < schedule.getEndTime()) { return schedule; } diff --git a/src/main/java/emu/lunarcore/data/excel/RogueScheduleExcel.java b/src/main/java/emu/lunarcore/data/excel/RogueManagerExcel.java similarity index 80% rename from src/main/java/emu/lunarcore/data/excel/RogueScheduleExcel.java rename to src/main/java/emu/lunarcore/data/excel/RogueManagerExcel.java index 8f09d4d..12b2704 100644 --- a/src/main/java/emu/lunarcore/data/excel/RogueScheduleExcel.java +++ b/src/main/java/emu/lunarcore/data/excel/RogueManagerExcel.java @@ -3,29 +3,33 @@ package emu.lunarcore.data.excel; import java.time.*; import java.time.format.DateTimeFormatter; +import emu.lunarcore.GameConstants; import emu.lunarcore.data.GameResource; import emu.lunarcore.data.ResourceType; import lombok.AccessLevel; import lombok.Getter; @Getter -@ResourceType(name = {"ScheduleDataRogue.json"}) -public class RogueScheduleExcel extends GameResource { +@ResourceType(name = {"RogueManager.json"}) +public class RogueManagerExcel extends GameResource { private static final DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); - private int ID; + private int ScheduleDataID; + private int RogueSeason; @Getter(AccessLevel.NONE) private String BeginTime; @Getter(AccessLevel.NONE) private String EndTime; + private int[] RogueAreaIDList; + private transient long beginTime; private transient long endTime; @Override public int getId() { - return ID; + return ScheduleDataID; } @Override diff --git a/src/main/java/emu/lunarcore/game/rogue/RogueManager.java b/src/main/java/emu/lunarcore/game/rogue/RogueManager.java index 31f6314..3acfef7 100644 --- a/src/main/java/emu/lunarcore/game/rogue/RogueManager.java +++ b/src/main/java/emu/lunarcore/game/rogue/RogueManager.java @@ -109,7 +109,7 @@ public class RogueManager extends BasePlayerManager { long endTime = beginTime + TimeUnit.DAYS.toSeconds(8); if (schedule != null) { - seasonId = 68; //schedule.getId() % 100000; + seasonId = schedule.getRogueSeason(); } var score = RogueScoreRewardInfo.newInstance() @@ -146,18 +146,23 @@ public class RogueManager extends BasePlayerManager { } // Add areas - for (var excel : GameData.getRogueAreaExcelMap().values()) { - var area = RogueArea.newInstance() - .setAreaId(excel.getRogueAreaID()) - .setRogueAreaStatus(RogueAreaStatus.ROGUE_AREA_STATUS_FIRST_PASS); - - if (curRogue != null && excel == curRogue.getExcel()) { - area.setMapId(curRogue.getExcel().getMapId()); - area.setCurReachRoomNum(curRogue.getCurrentRoomProgress()); - area.setRogueStatus(curRogue.getStatus()); + if (schedule != null) { + for (int i = 0; i < schedule.getRogueAreaIDList().length; i++) { + var excel = GameData.getRogueAreaExcelMap().get(schedule.getRogueAreaIDList()[i]); + if (excel == null) continue; + + var area = RogueArea.newInstance() + .setAreaId(excel.getRogueAreaID()) + .setRogueAreaStatus(RogueAreaStatus.ROGUE_AREA_STATUS_FIRST_PASS); + + if (curRogue != null && excel == curRogue.getExcel()) { + area.setMapId(curRogue.getExcel().getMapId()); + area.setCurReachRoomNum(curRogue.getCurrentRoomProgress()); + area.setRogueStatus(curRogue.getStatus()); + } + + proto.addRogueAreaList(area); } - - proto.addRogueAreaList(area); } return proto;