Properly show rogue talent screen

This commit is contained in:
Melledy
2023-10-27 22:14:29 -07:00
parent f119bb0bd7
commit 88d4f15fbd
10 changed files with 1752 additions and 2 deletions

View File

@@ -34,6 +34,7 @@ public class GameConstants {
// Rogue
public static final int ROGUE_ENTRANCE = 801120102;
public static final int ROGUE_TALENT_POINT_ITEM_ID = 32;
// Custom
public static final int SERVER_CONSOLE_UID = 99;

View File

@@ -34,8 +34,9 @@ public class GameData {
@Getter private static Int2ObjectMap<ChallengeExcel> challengeExcelMap = new Int2ObjectOpenHashMap<>();
@Getter private static Int2ObjectMap<ChallengeTargetExcel> challengeTargetExcelMap = new Int2ObjectOpenHashMap<>();
@Getter private static Int2ObjectMap<RogueAreaExcel> rogueAreaExcelMap = new Int2ObjectOpenHashMap<>();
@Getter private static Int2ObjectMap<RogueManagerExcel> rogueManagerExcelMap = new Int2ObjectOpenHashMap<>();
@Getter private static Int2ObjectMap<RogueTalentExcel> rogueTalentExcelMap = new Int2ObjectOpenHashMap<>();
@Getter private static Int2ObjectMap<RogueAreaExcel> rogueAreaExcelMap = new Int2ObjectOpenHashMap<>();
@Getter private static Int2ObjectMap<RogueRoomExcel> rogueRoomExcelMap = new Int2ObjectOpenHashMap<>();
@Getter private static Int2ObjectMap<RogueMonsterExcel> rogueMonsterExcelMap = new Int2ObjectOpenHashMap<>();

View File

@@ -0,0 +1,21 @@
package emu.lunarcore.data.excel;
import java.util.List;
import emu.lunarcore.data.GameResource;
import emu.lunarcore.data.ResourceType;
import emu.lunarcore.data.common.ItemParam;
import lombok.Getter;
@Getter
@ResourceType(name = {"RogueTalent.json"})
public class RogueTalentExcel extends GameResource {
private int TalentID;
private List<ItemParam> Cost;
@Override
public int getId() {
return TalentID;
}
}

View File

@@ -4,13 +4,14 @@ 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.PacketGetRogueTalentInfoScRsp;
@Opcodes(CmdId.GetRogueTalentInfoCsReq)
public class HandlerGetRogueTalentInfoCsReq extends PacketHandler {
@Override
public void handle(GameSession session, byte[] header, byte[] data) throws Exception {
session.send(CmdId.GetRogueTalentInfoScRsp);
session.send(new PacketGetRogueTalentInfoScRsp(session.getPlayer().getRogueManager()));
}
}

View File

@@ -0,0 +1,29 @@
package emu.lunarcore.server.packet.send;
import emu.lunarcore.data.GameData;
import emu.lunarcore.data.excel.RogueTalentExcel;
import emu.lunarcore.game.rogue.RogueManager;
import emu.lunarcore.proto.GetRogueTalentInfoScRspOuterClass.GetRogueTalentInfoScRsp;
import emu.lunarcore.proto.RogueTalentOuterClass.RogueTalent;
import emu.lunarcore.proto.RogueTalentStatusOuterClass.RogueTalentStatus;
import emu.lunarcore.server.packet.BasePacket;
import emu.lunarcore.server.packet.CmdId;
public class PacketGetRogueTalentInfoScRsp extends BasePacket {
public PacketGetRogueTalentInfoScRsp(RogueManager rogueManager) {
super(CmdId.GetRogueTalentInfoScRsp);
var data = GetRogueTalentInfoScRsp.newInstance();
for (RogueTalentExcel excel : GameData.getRogueTalentExcelMap().values()) {
var talent = RogueTalent.newInstance()
.setTalentId(excel.getTalentID())
.setStatus(RogueTalentStatus.ROGUE_TALENT_STATUS_UNLOCK);
data.getMutableTalentInfo().addRogueTalent(talent);
}
this.setData(data);
}
}