fix Archive

This commit is contained in:
Hiro
2023-11-28 10:54:17 +02:00
parent 9f40c17cb6
commit 55ff4c18b1
8 changed files with 1013 additions and 1 deletions

View File

@@ -58,6 +58,7 @@ public class GameData {
private static Int2ObjectMap<ChatBubbleExcel> chatBubbleExcelMap = new Int2ObjectOpenHashMap<>();
private static Int2ObjectMap<PhoneThemeExcel> phoneThemeExcelMap = new Int2ObjectOpenHashMap<>();
private static Int2ObjectMap<MonsterDropExcel> monsterDropExcelMap = new Int2ObjectOpenHashMap<>();
private static Int2ObjectMap<MonsterExcel> monsterExcelMap = new Int2ObjectOpenHashMap<>();
private static Int2ObjectMap<PlayerLevelExcel> playerLevelExcelMap = new Int2ObjectOpenHashMap<>();
private static Int2ObjectMap<ExpTypeExcel> expTypeExcelMap = new Int2ObjectOpenHashMap<>();
@@ -66,6 +67,7 @@ public class GameData {
private static Int2ObjectMap<RelicMainAffixExcel> relicMainAffixExcelMap = new Int2ObjectOpenHashMap<>();
private static Int2ObjectMap<RelicSubAffixExcel> relicSubAffixExcelMap = new Int2ObjectOpenHashMap<>();
private static Int2ObjectMap<RelicSetExcel> relicSetExcelMap = new Int2ObjectOpenHashMap<>();
// Configs (Bin)
@Getter private static Object2ObjectMap<String, FloorInfo> floorInfos = new Object2ObjectOpenHashMap<>();
@@ -98,6 +100,35 @@ public class GameData {
return allIds;
}
public static List<Integer> getAllRelicIds() {
List<Integer> allIds = new ArrayList<>();
for (Int2ObjectMap.Entry<RelicExcel> entry : relicExcelMap.int2ObjectEntrySet()) {
RelicExcel relicExcel = entry.getValue();
allIds.add(relicExcel.getId());
}
return allIds;
}
public static int getRelicSetFromId(int relicId) {
RelicExcel relicExcel = GameData.getRelicExcelMap().get(relicId);
if (relicExcel == null) {
return 0;
}
return relicExcel.getSetId();
}
public static int getRelicTypeFromId(int relicId) {
RelicExcel relicExcel = GameData.getRelicExcelMap().get(relicId);
if (relicExcel == null) {
return 0;
}
return relicExcel.getType().getVal();
}
public static List<Integer> getAllMusicIds() {
List<Integer> allIds = new ArrayList<>();
@@ -109,6 +140,17 @@ public class GameData {
return allIds;
}
public static List<Integer> getAllMonsterIds() {
List<Integer> allIds = new ArrayList<>();
for (Int2ObjectMap.Entry<MonsterExcel> entry : monsterExcelMap.int2ObjectEntrySet()) {
MonsterExcel monsterExcel = entry.getValue();
allIds.add(monsterExcel.getId());
}
return allIds;
}
public static int getMusicGroupId(int musicId) {
var excel = backGroundMusicExcelMap.get(musicId);
return excel != null ? excel.getGroupId() : 0;

View File

@@ -0,0 +1,19 @@
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 = {"MonsterConfig.json"})
public class MonsterExcel extends GameResource {
private int MonsterID;
@Override
public int getId() {
return MonsterID;
}
}

View File

@@ -26,6 +26,9 @@ public class RelicExcel extends GameResource {
public int getId() {
return ID;
}
public int getSetId() {
return SetID;
}
@Override
public void onLoad() {

View File

@@ -0,0 +1,19 @@
package emu.lunarcore.data.excel;
import emu.lunarcore.data.GameDepot;
import emu.lunarcore.data.GameResource;
import emu.lunarcore.data.ResourceType;
import emu.lunarcore.data.ResourceType.LoadPriority;
import emu.lunarcore.game.enums.AvatarPropertyType;
import lombok.Getter;
@Getter
@ResourceType(name = {"RelicSetConfig.json"}, loadPriority = LoadPriority.NORMAL)
public class RelicSetExcel extends GameResource {
private int SetID;
@Override
public int getId() {
return SetID;
}
}

View File

@@ -2,6 +2,8 @@ package emu.lunarcore.server.packet.send;
import emu.lunarcore.data.GameData;
import emu.lunarcore.proto.GetArchiveDataScRspOuterClass.GetArchiveDataScRsp;
import emu.lunarcore.proto.MonsterArchiveOuterClass.MonsterArchive;
import emu.lunarcore.proto.RelicArchiveOuterClass.RelicArchive;
import emu.lunarcore.server.packet.BasePacket;
import emu.lunarcore.server.packet.CmdId;
@@ -16,6 +18,22 @@ public class PacketGetArchiveDataScRsp extends BasePacket {
for (var avatarExcel : GameData.getAvatarExcelMap().values()) {
data.getMutableArchiveData().addArchiveAvatarIdList(avatarExcel.getAvatarID());
}
for (var MonsterId : GameData.getAllMonsterIds()) {
MonsterArchive monsterinfo = MonsterArchive.newInstance()
.setMonsterId(MonsterId)
.setNum(1); // todo: add to db
data.getMutableArchiveData().addArchiveMonsterIdList(monsterinfo);
}
for (var RelicId : GameData.getAllRelicIds()) {
RelicArchive relicInfo = RelicArchive.newInstance()
.setType(GameData.getRelicTypeFromId(RelicId))
.setRelicId(GameData.getRelicSetFromId(RelicId)); // todo: add to db
data.getMutableArchiveData().addArchiveRelicList(relicInfo);
}
for (var itemExcel : GameData.getItemExcelMap().values()) {
if (!itemExcel.isEquipment()) continue;