mirror of
https://github.com/Melledy/LunarCore.git
synced 2025-12-23 10:44:36 +01:00
fix some events (most events are available) prepare for rogue DLC
This commit is contained in:
@@ -58,6 +58,9 @@ public class GameConstants {
|
||||
public static final int ROGUE_ENTRANCE = 801120102;
|
||||
public static final int ROGUE_TALENT_POINT_ITEM_ID = 32;
|
||||
|
||||
// Activity
|
||||
public static final int[] ENABLE_ACTIVITY_TYPES = { 18, 34 };
|
||||
|
||||
// Custom
|
||||
public static final int SERVER_CONSOLE_UID = 99;
|
||||
public static final int EQUIPMENT_SLOT_ID = 100;
|
||||
|
||||
@@ -59,6 +59,7 @@ public class GameData {
|
||||
@Getter private static Int2ObjectMap<RogueBuffExcel> rogueBuffTagExcelMap = new Int2ObjectOpenHashMap<>();
|
||||
@Getter private static Int2ObjectMap<RogueBuffGroupExcel> rogueBuffGroupExcelMap = new Int2ObjectOpenHashMap<>();
|
||||
|
||||
@Getter private static Int2ObjectMap<RogueDLCAreaExcel> rogueDLCAreaExcelMap = new Int2ObjectOpenHashMap<>();
|
||||
@Getter private static Int2ObjectMap<RogueNousMainStoryExcel> rogueNousMainStoryExcelMap = new Int2ObjectOpenHashMap<>();
|
||||
@Getter private static Int2ObjectMap<RogueNousSubStoryExcel> rogueNousSubStoryExcelMap = new Int2ObjectOpenHashMap<>();
|
||||
@Getter private static Int2ObjectMap<RogueNousDiceBranchExcel> rogueNousDiceBranchExcelMap = new Int2ObjectOpenHashMap<>();
|
||||
|
||||
@@ -12,6 +12,9 @@ import lombok.Getter;
|
||||
|
||||
// Game data that is parsed by the server goes here
|
||||
public class GameDepot {
|
||||
// Activity
|
||||
@Getter private static List<ActivitySchedulingExcel> activityScheduleExcels = new ArrayList<>();
|
||||
|
||||
// Exp
|
||||
@Getter private static List<AvatarExpItemExcel> avatarExpExcels = new ArrayList<>();
|
||||
@Getter private static List<EquipmentExpItemExcel> equipmentExpExcels = new ArrayList<>();
|
||||
|
||||
@@ -7,6 +7,7 @@ import java.util.concurrent.atomic.AtomicInteger;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
import emu.lunarcore.data.config.*;
|
||||
import emu.lunarcore.data.excel.ActivitySchedulingExcel;
|
||||
import org.reflections.Reflections;
|
||||
|
||||
import com.google.gson.Gson;
|
||||
@@ -43,6 +44,8 @@ public class ResourceLoader {
|
||||
loadMazeAbilities();
|
||||
// Load rogue maps
|
||||
loadRogueMapGen();
|
||||
// Load activity schedule config
|
||||
loadActivityScheduleConfig();
|
||||
// Load rogue dialogue events
|
||||
loadRogueDialogueEvent();
|
||||
|
||||
@@ -339,4 +342,16 @@ public class ResourceLoader {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
private static void loadActivityScheduleConfig() {
|
||||
File file = new File(LunarCore.getConfig().getDataDir() + "/ActivityScheduling.json");
|
||||
if (!file.exists()) return;
|
||||
|
||||
try (FileReader reader = new FileReader(file)) {
|
||||
List<ActivitySchedulingExcel> activityScheduleConfig = gson.fromJson(reader, TypeToken.getParameterized(List.class, ActivitySchedulingExcel.class).getType());
|
||||
GameDepot.getActivityScheduleExcels().addAll(activityScheduleConfig);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,13 @@
|
||||
package emu.lunarcore.data.excel;
|
||||
|
||||
import lombok.Getter;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Getter
|
||||
public class ActivitySchedulingExcel {
|
||||
private int activityId;
|
||||
private long beginTime;
|
||||
private long endTime;
|
||||
private int moduleId;
|
||||
}
|
||||
@@ -0,0 +1,38 @@
|
||||
package emu.lunarcore.data.excel;
|
||||
|
||||
import com.google.gson.annotations.SerializedName;
|
||||
import emu.lunarcore.data.GameData;
|
||||
import emu.lunarcore.data.GameResource;
|
||||
import emu.lunarcore.data.ResourceType;
|
||||
import lombok.Getter;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Getter
|
||||
@ResourceType(name = { "RogueDLCArea.json" })
|
||||
public class RogueDLCAreaExcel extends GameResource {
|
||||
private int AreaID;
|
||||
private String SubType;
|
||||
|
||||
private List<Integer> DifficultyID;
|
||||
private List<Integer> LayerIDList;
|
||||
|
||||
private List<RogueDLCAreaScoreMap> AreaScoreMap;
|
||||
|
||||
@Getter
|
||||
public static class RogueDLCAreaScoreMap {
|
||||
@SerializedName("FJBAFMJHNCA") private int LayerID;
|
||||
@SerializedName("LHKHLPFAKGD") private int Score;
|
||||
@SerializedName("NDPIHCHCLGA") private int FinishedScore;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getId() {
|
||||
return AreaID;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onLoad() {
|
||||
GameData.getRogueDLCAreaExcelMap().put(AreaID, this);
|
||||
}
|
||||
}
|
||||
@@ -177,7 +177,7 @@ public class RogueManager extends BasePlayerManager {
|
||||
|
||||
var score = RogueScoreRewardInfo.newInstance()
|
||||
.setPoolId(20 + getPlayer().getWorldLevel()) // TODO pool ids should not change when world level changes
|
||||
//.setPoolRefreshed(true)
|
||||
.setPoolRefreshed(true)
|
||||
.setHasTakenInitialScore(true)
|
||||
.setBeginTime(beginTime)
|
||||
.setEndTime(endTime);
|
||||
@@ -210,17 +210,6 @@ public class RogueManager extends BasePlayerManager {
|
||||
|
||||
// Rogue data
|
||||
RogueInstance instance = this.getPlayer().getRogueInstance();
|
||||
// if (instance != null) {
|
||||
// proto.setStatus(instance.getStatus());
|
||||
// proto.setRogueProgress(this.getPlayer().getRogueInstance().toProto());
|
||||
// proto.setRoomMap(proto.getRogueProgress().getRoomMap());
|
||||
//
|
||||
// for (int id : instance.getBaseAvatarIds()) {
|
||||
// proto.addBaseAvatarIdList(id);
|
||||
// }
|
||||
//
|
||||
// aeonInfo.setSelectedAeonId(instance.getAeonId());
|
||||
// }
|
||||
|
||||
// Add areas
|
||||
var areaInfo = RogueAreaInfo.newInstance();
|
||||
|
||||
@@ -1,27 +0,0 @@
|
||||
package emu.lunarcore.game.rogue.chess;
|
||||
|
||||
import emu.lunarcore.data.GameData;
|
||||
import emu.lunarcore.game.player.BasePlayerManager;
|
||||
import emu.lunarcore.game.player.Player;
|
||||
import it.unimi.dsi.fastutil.ints.Int2ObjectMap;
|
||||
import it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap;
|
||||
|
||||
import java.util.HashSet;
|
||||
import java.util.Set;
|
||||
|
||||
public class ChessRogueManager extends BasePlayerManager {
|
||||
public ChessRogueManager(Player player) {
|
||||
super(player);
|
||||
}
|
||||
|
||||
public Int2ObjectMap<Set<Integer>> getRogueDefaultDice() {
|
||||
var map = new Int2ObjectOpenHashMap<Set<Integer>>();
|
||||
for (var entry: GameData.getRogueNousDiceBranchExcelMap().values()) {
|
||||
var set = new HashSet<Integer>();
|
||||
set.add(entry.getDefaultUltraSurface());
|
||||
set.addAll(entry.getDefaultCommonSurfaceList());
|
||||
map.put(entry.getBranchId(), set);
|
||||
}
|
||||
return map;
|
||||
}
|
||||
}
|
||||
@@ -1,16 +0,0 @@
|
||||
package emu.lunarcore.server.packet.recv;
|
||||
|
||||
import emu.lunarcore.server.game.GameSession;
|
||||
import emu.lunarcore.server.packet.CmdId;
|
||||
import emu.lunarcore.server.packet.Opcodes;
|
||||
import emu.lunarcore.server.packet.PacketHandler;
|
||||
import emu.lunarcore.server.packet.send.PacketChessRogueQueryScRsp;
|
||||
|
||||
@Opcodes(CmdId.ChessRogueQueryCsReq)
|
||||
public class HandlerChessRogueQueryCsReq extends PacketHandler {
|
||||
|
||||
@Override
|
||||
public void handle(GameSession session, byte[] data) throws Exception {
|
||||
session.send(new PacketChessRogueQueryScRsp(session.getPlayer()));
|
||||
}
|
||||
}
|
||||
@@ -1,39 +0,0 @@
|
||||
package emu.lunarcore.server.packet.send;
|
||||
|
||||
import emu.lunarcore.data.GameData;
|
||||
import emu.lunarcore.game.player.Player;
|
||||
import emu.lunarcore.proto.ChessRogueNousDiceInfoOuterClass.ChessRogueNousDiceInfo;
|
||||
import emu.lunarcore.proto.ChessRogueNousDiceSurfaceInfoOuterClass.ChessRogueNousDiceSurfaceInfo;
|
||||
import emu.lunarcore.proto.ChessRogueNousQueryInfoOuterClass.ChessRogueNousQueryInfo;
|
||||
import emu.lunarcore.proto.ChessRogueQueryOuterClass.ChessRogueQuery;
|
||||
import emu.lunarcore.proto.ChessRogueQueryScRspOuterClass.ChessRogueQueryScRsp;
|
||||
import emu.lunarcore.server.packet.BasePacket;
|
||||
import emu.lunarcore.server.packet.CmdId;
|
||||
|
||||
public class PacketChessRogueQueryScRsp extends BasePacket {
|
||||
public PacketChessRogueQueryScRsp(Player player) {
|
||||
super(CmdId.ChessRogueQueryScRsp);
|
||||
|
||||
var data = ChessRogueQuery.newInstance();
|
||||
|
||||
for (var entry: GameData.getRogueNousMainStoryExcelMap().keySet()) {
|
||||
data.addMainStoryId(entry);
|
||||
}
|
||||
player.getChessRogueManager().getRogueDefaultDice().forEach((k, v) -> {
|
||||
var dice = ChessRogueNousDiceInfo.newInstance()
|
||||
.setDiceBranchId(k);
|
||||
var index = 0;
|
||||
for (Integer d : v) {
|
||||
dice.addDiceSurface(ChessRogueNousDiceSurfaceInfo.newInstance()
|
||||
.setIndex(++index)
|
||||
.setDiceId(d));
|
||||
}
|
||||
data.addDiceInfo(dice);
|
||||
});
|
||||
var proto = ChessRogueQueryScRsp.newInstance()
|
||||
.setRogueNous(ChessRogueNousQueryInfo.newInstance()
|
||||
.setQueryInfo(data));
|
||||
|
||||
this.setData(proto);
|
||||
}
|
||||
}
|
||||
@@ -1,6 +1,6 @@
|
||||
package emu.lunarcore.server.packet.send;
|
||||
|
||||
import emu.lunarcore.data.GameData;
|
||||
import emu.lunarcore.data.GameDepot;
|
||||
import emu.lunarcore.proto.ActivityScheduleInfoOuterClass.ActivityScheduleInfo;
|
||||
import emu.lunarcore.proto.GetActivityScheduleConfigScRspOuterClass.GetActivityScheduleConfigScRsp;
|
||||
import emu.lunarcore.server.packet.BasePacket;
|
||||
@@ -15,14 +15,12 @@ public class PacketGetActivityScheduleConfigScRsp extends BasePacket {
|
||||
|
||||
var data = GetActivityScheduleConfigScRsp.newInstance();
|
||||
|
||||
for (var activity : GameData.getActivityPanelExcelMap().values()) {
|
||||
if (activity.getType() != 18) continue;
|
||||
|
||||
for (var activity : GameDepot.getActivityScheduleExcels()) {
|
||||
var info = ActivityScheduleInfo.newInstance()
|
||||
.setActivityId(activity.getPanelID())
|
||||
.setModuleId(activity.getActivityModuleID())
|
||||
.setBeginTime(0)
|
||||
.setEndTime(Integer.MAX_VALUE);
|
||||
.setActivityId(activity.getActivityId())
|
||||
.setModuleId(activity.getModuleId())
|
||||
.setBeginTime(activity.getBeginTime())
|
||||
.setEndTime(activity.getEndTime());
|
||||
|
||||
data.addActivityScheduleList(info);
|
||||
}
|
||||
|
||||
@@ -19,7 +19,7 @@ public class PacketGetRogueScoreRewardInfoScRsp extends BasePacket {
|
||||
|
||||
data.getMutableScoreRewardInfo()
|
||||
.setPoolId(20 + player.getWorldLevel()) // TODO pool ids should not change when world level changes
|
||||
//.setPoolRefreshed(true)
|
||||
.setPoolRefreshed(true)
|
||||
.setHasTakenInitialScore(true)
|
||||
.setBeginTime(beginTime)
|
||||
.setEndTime(endTime);
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
package emu.lunarcore.server.packet.send;
|
||||
|
||||
import emu.lunarcore.game.scene.entity.EntityNpc;
|
||||
import emu.lunarcore.proto.MEMPJPLINCNOuterClass.MEMPJPLINCN;
|
||||
import emu.lunarcore.proto.DialogueResultOuterClass.DialogueResult;
|
||||
import emu.lunarcore.proto.RogueDialogueEventOuterClass.RogueDialogueEvent;
|
||||
import emu.lunarcore.proto.RogueDialogueEventParamOuterClass.RogueDialogueEventParam;
|
||||
import emu.lunarcore.proto.SelectRogueDialogueEventScRspOuterClass.SelectRogueDialogueEventScRsp;
|
||||
@@ -30,14 +30,14 @@ public class PacketSelectRogueDialogueEventScRsp extends BasePacket {
|
||||
.setGBMDBBBMBEJ(instance.getEventId())
|
||||
.addAllRogueDialogueEventParam(params.toArray(RogueDialogueEventParam[]::new));
|
||||
|
||||
var l = MEMPJPLINCN.newInstance();
|
||||
var l = DialogueResult.newInstance();
|
||||
for (var param : params) {
|
||||
l.addBLGIMDCNDHJ(param.getDialogueEventId());
|
||||
}
|
||||
if (nextEventId != 0) {
|
||||
l.addBLGIMDCNDHJ(nextEventId);
|
||||
}
|
||||
data.addLELKNNDCGJM(l);
|
||||
data.addDialogueResult(l);
|
||||
data.setEventData(event);
|
||||
|
||||
this.setData(data);
|
||||
|
||||
Reference in New Issue
Block a user