Implement simulated universe start screen

This commit is contained in:
Melledy
2023-10-19 08:51:53 -07:00
parent 4d55d4d816
commit 514b022008
21 changed files with 5795 additions and 1 deletions

View File

@@ -29,6 +29,7 @@ public class GameData {
@Getter private static Int2ObjectMap<HeroExcel> heroExcelMap = new Int2ObjectOpenHashMap<>();
@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<ShopExcel> shopExcelMap = new Int2ObjectOpenHashMap<>();
private static Int2ObjectMap<AvatarPromotionExcel> avatarPromotionExcelMap = new Int2ObjectOpenHashMap<>();

View File

@@ -0,0 +1,19 @@
package emu.lunarcore.data.excel;
import emu.lunarcore.data.GameResource;
import emu.lunarcore.data.ResourceType;
import lombok.Getter;
@Getter
@ResourceType(name = {"RogueAreaConfig.json"})
public class RogueAreaExcel extends GameResource {
private int RogueAreaID;
private int AreaProgress;
private int Difficulty;
@Override
public int getId() {
return RogueAreaID;
}
}

View File

@@ -0,0 +1,17 @@
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.PacketGetRogueHandbookDataScRsp;
@Opcodes(CmdId.GetRogueHandbookDataCsReq)
public class HandlerGetRogueHandbookDataCsReq extends PacketHandler {
@Override
public void handle(GameSession session, byte[] header, byte[] data) throws Exception {
session.send(new PacketGetRogueHandbookDataScRsp());
}
}

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.PacketGetRogueInfoScRsp;
@Opcodes(CmdId.GetRogueInfoCsReq)
public class HandlerGetRogueInfoCsReq extends PacketHandler {
@Override
public void handle(GameSession session, byte[] header, byte[] data) throws Exception {
session.send(CmdId.GetRogueInfoScRsp);
session.send(new PacketGetRogueInfoScRsp());
}
}

View File

@@ -0,0 +1,17 @@
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.PacketGetRogueScoreRewardInfoScRsp;
@Opcodes(CmdId.GetRogueScoreRewardInfoCsReq)
public class HandlerGetRogueScoreRewardInfoCsReq extends PacketHandler {
@Override
public void handle(GameSession session, byte[] header, byte[] data) throws Exception {
session.send(new PacketGetRogueScoreRewardInfoScRsp());
}
}

View File

@@ -0,0 +1,16 @@
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;
@Opcodes(CmdId.GetRogueTalentInfoCsReq)
public class HandlerGetRogueTalentInfoCsReq extends PacketHandler {
@Override
public void handle(GameSession session, byte[] header, byte[] data) throws Exception {
session.send(CmdId.GetRogueTalentInfoScRsp);
}
}

View File

@@ -0,0 +1,16 @@
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;
@Opcodes(CmdId.StartRogueCsReq)
public class HandlerStartRogueCsReq extends PacketHandler {
@Override
public void handle(GameSession session, byte[] header, byte[] data) throws Exception {
session.send(CmdId.StartRogueScRsp);
}
}

View File

@@ -0,0 +1,22 @@
package emu.lunarcore.server.packet.send;
import emu.lunarcore.proto.GetRogueHandbookDataScRspOuterClass.GetRogueHandbookDataScRsp;
import emu.lunarcore.proto.RogueHandbookDataOuterClass.RogueHandbookData;
import emu.lunarcore.server.packet.BasePacket;
import emu.lunarcore.server.packet.CmdId;
public class PacketGetRogueHandbookDataScRsp extends BasePacket {
public PacketGetRogueHandbookDataScRsp() {
super(CmdId.GetRogueHandbookDataScRsp);
var handbook = RogueHandbookData.newInstance()
.setRogueCurrentVersion(1)
.setIsMiracleUnlock(true);
var data = GetRogueHandbookDataScRsp.newInstance()
.setHandbookInfo(handbook);
this.setData(data);
}
}

View File

@@ -0,0 +1,59 @@
package emu.lunarcore.server.packet.send;
import java.util.concurrent.TimeUnit;
import emu.lunarcore.data.GameData;
import emu.lunarcore.proto.GetRogueInfoScRspOuterClass.GetRogueInfoScRsp;
import emu.lunarcore.proto.RogueAreaOuterClass.RogueArea;
import emu.lunarcore.proto.RogueAreaStatusOuterClass.RogueAreaStatus;
import emu.lunarcore.proto.RogueInfoDataOuterClass.RogueInfoData;
import emu.lunarcore.proto.RogueInfoOuterClass.RogueInfo;
import emu.lunarcore.proto.RogueScoreRewardInfoOuterClass.RogueScoreRewardInfo;
import emu.lunarcore.proto.RogueSeasonInfoOuterClass.RogueSeasonInfo;
import emu.lunarcore.server.packet.BasePacket;
import emu.lunarcore.server.packet.CmdId;
public class PacketGetRogueInfoScRsp extends BasePacket {
public PacketGetRogueInfoScRsp() {
super(CmdId.GetRogueInfoScRsp);
int seasonId = 67; // TODO un hardcode
long beginTime = (System.currentTimeMillis() / 1000) - TimeUnit.DAYS.toSeconds(1);
long endTime = beginTime + TimeUnit.DAYS.toSeconds(8);
var score = RogueScoreRewardInfo.newInstance()
.setPoolId(seasonId)
.setPoolRefreshed(true)
.setHasTakenInitialScore(true);
var season = RogueSeasonInfo.newInstance()
.setBeginTime(beginTime)
.setRogueSeasonId(seasonId)
.setEndTime(endTime);
var data = RogueInfoData.newInstance()
.setRogueScoreInfo(score)
.setRogueSeasonInfo(season);
// Main proto
var proto = GetRogueInfoScRsp.newInstance();
RogueInfo info = proto.getMutableRogueInfo()
.setRogueScoreInfo(score)
.setRogueData(data)
.setRogueSeasonId(seasonId)
.setBeginTime(beginTime)
.setEndTime(endTime);
for (var excel : GameData.getRogueAreaExcelMap().values()) {
var area = RogueArea.newInstance()
.setAreaId(excel.getRogueAreaID())
.setRogueAreaStatus(RogueAreaStatus.ROGUE_AREA_STATUS_FIRST_PASS);
info.addRogueAreaList(area);
}
this.setData(proto);
}
}

View File

@@ -0,0 +1,21 @@
package emu.lunarcore.server.packet.send;
import emu.lunarcore.proto.GetRogueScoreRewardInfoScRspOuterClass.GetRogueScoreRewardInfoScRsp;
import emu.lunarcore.server.packet.BasePacket;
import emu.lunarcore.server.packet.CmdId;
public class PacketGetRogueScoreRewardInfoScRsp extends BasePacket {
public PacketGetRogueScoreRewardInfoScRsp() {
super(CmdId.GetRogueScoreRewardInfoScRsp);
var data = GetRogueScoreRewardInfoScRsp.newInstance();
data.getMutableScoreRewardInfo()
.setPoolId(1) // TODO un hardcode
.setPoolRefreshed(true)
.setHasTakenInitialScore(true);
this.setData(data);
}
}