diff --git a/src/main/java/emu/nebula/data/GameData.java b/src/main/java/emu/nebula/data/GameData.java index 3ed8603..d4aa271 100644 --- a/src/main/java/emu/nebula/data/GameData.java +++ b/src/main/java/emu/nebula/data/GameData.java @@ -94,6 +94,7 @@ public class GameData { @Getter private static DataTable SubNoteSkillPromoteGroupDataTable = new DataTable<>(); @Getter private static DataTable StarTowerBookFateCardBundleDataTable = new DataTable<>(); + @Getter private static DataTable StarTowerBookFateCardQuestDataTable = new DataTable<>(); @Getter private static DataTable StarTowerBookFateCardDataTable = new DataTable<>(); @Getter private static DataTable FateCardDataTable = new DataTable<>(); diff --git a/src/main/java/emu/nebula/data/resources/StarTowerBookFateCardQuestDef.java b/src/main/java/emu/nebula/data/resources/StarTowerBookFateCardQuestDef.java new file mode 100644 index 0000000..a981544 --- /dev/null +++ b/src/main/java/emu/nebula/data/resources/StarTowerBookFateCardQuestDef.java @@ -0,0 +1,16 @@ +package emu.nebula.data.resources; + +import emu.nebula.data.BaseDef; +import emu.nebula.data.ResourceType; +import lombok.Getter; + +@Getter +@ResourceType(name = "StarTowerBookFateCardQuest.json") +public class StarTowerBookFateCardQuestDef extends BaseDef { + private int Id; + + @Override + public int getId() { + return Id; + } +} diff --git a/src/main/java/emu/nebula/server/handlers/HandlerTowerBookFateCardDetailReq.java b/src/main/java/emu/nebula/server/handlers/HandlerTowerBookFateCardDetailReq.java new file mode 100644 index 0000000..e35a696 --- /dev/null +++ b/src/main/java/emu/nebula/server/handlers/HandlerTowerBookFateCardDetailReq.java @@ -0,0 +1,30 @@ +package emu.nebula.server.handlers; + +import emu.nebula.net.NetHandler; +import emu.nebula.net.NetMsgId; +import emu.nebula.proto.TowerBookFateCardDetail.TowerBookFateCardDetailResp; +import emu.nebula.net.HandlerId; +import emu.nebula.data.GameData; +import emu.nebula.net.GameSession; + +@HandlerId(NetMsgId.tower_book_fate_card_detail_req) +public class HandlerTowerBookFateCardDetailReq extends NetHandler { + + @Override + public byte[] handle(GameSession session, byte[] message) throws Exception { + // Build response + var rsp = TowerBookFateCardDetailResp.newInstance(); + + for (int card : session.getPlayer().getProgress().getFateCards()) { + rsp.addCards(card); + } + + for (var quest : GameData.getStarTowerBookFateCardQuestDataTable()) { + rsp.addQuests(quest.getId()); + } + + // Encode and send + return session.encodeMsg(NetMsgId.tower_book_fate_card_detail_succeed_ack, rsp); + } + +} diff --git a/src/main/java/emu/nebula/server/handlers/HandlerVampireTalentShowReq.java b/src/main/java/emu/nebula/server/handlers/HandlerVampireTalentShowReq.java new file mode 100644 index 0000000..14f2d96 --- /dev/null +++ b/src/main/java/emu/nebula/server/handlers/HandlerVampireTalentShowReq.java @@ -0,0 +1,17 @@ +package emu.nebula.server.handlers; + +import emu.nebula.net.NetHandler; +import emu.nebula.net.NetMsgId; +import emu.nebula.net.HandlerId; +import emu.nebula.net.GameSession; + +@HandlerId(NetMsgId.vampire_talent_show_req) +public class HandlerVampireTalentShowReq extends NetHandler { + + @Override + public byte[] handle(GameSession session, byte[] message) throws Exception { + // Encode and send + return session.encodeMsg(NetMsgId.vampire_talent_show_succeed_ack); + } + +}