using EggLink.DanhengServer.Data.Config.Scene; using EggLink.DanhengServer.Data.Custom; using EggLink.DanhengServer.Data.Excel; using EggLink.DanhengServer.Enums.Rogue; namespace EggLink.DanhengServer.Data; public static class GameData { #region Activity public static ActivityConfig ActivityConfig { get; set; } = new(); #endregion #region Banners public static BannersConfig BannersConfig { get; set; } = new(); #endregion #region Avatar public static Dictionary AvatarConfigData { get; private set; } = []; public static Dictionary AvatarPromotionConfigData { get; private set; } = []; public static Dictionary AvatarExpItemConfigData { get; private set; } = []; public static Dictionary AvatarSkillTreeConfigData { get; private set; } = []; public static Dictionary AvatarDemoConfigData { get; private set; } = []; public static Dictionary ExpTypeData { get; } = []; public static Dictionary MultiplePathAvatarConfigData { get; private set; } = []; public static Dictionary AdventurePlayerData { get; private set; } = []; public static Dictionary SummonUnitDataData { get; private set; } = []; #endregion #region Challenge public static Dictionary ChallengeConfigData { get; private set; } = []; public static Dictionary ChallengeTargetData { get; private set; } = []; public static Dictionary ChallengeGroupData { get; private set; } = []; public static Dictionary> ChallengeRewardData { get; private set; } = []; #endregion #region Battle public static Dictionary CocoonConfigData { get; private set; } = []; public static Dictionary StageConfigData { get; private set; } = []; public static Dictionary RaidConfigData { get; private set; } = []; public static Dictionary MazeBuffData { get; private set; } = []; public static Dictionary InteractConfigData { get; private set; } = []; public static Dictionary NpcMonsterDataData { get; private set; } = []; public static Dictionary MonsterConfigData { get; private set; } = []; public static Dictionary MonsterDropData { get; private set; } = []; public static Dictionary BattleCollegeConfigData { get; private set; } = []; #endregion #region ChessRogue public static Dictionary ActionPointOverdrawData { get; private set; } = []; public static Dictionary> ChessRogueRoomData { get; private set; } = []; public static Dictionary RogueDLCAreaData { get; private set; } = []; public static Dictionary RogueDLCBossDecayData { get; private set; } = []; public static Dictionary RogueDLCBossBpData { get; private set; } = []; public static Dictionary RogueDLCDifficultyData { get; private set; } = []; public static Dictionary RogueNousAeonData { get; private set; } = []; public static Dictionary RogueNousDiceBranchData { get; private set; } = []; public static Dictionary RogueNousDiceSurfaceData { get; private set; } = []; public static Dictionary RogueNousDifficultyLevelData { get; private set; } = []; public static Dictionary RogueNousMainStoryData { get; private set; } = []; public static Dictionary RogueNousSubStoryData { get; private set; } = []; public static Dictionary RogueNousTalentData { get; private set; } = []; public static Dictionary> RogueSwarmChessBoardData { get; private set; } = []; public static Dictionary> RogueNousChessBoardData { get; private set; } = []; #endregion #region Player public static Dictionary QuestDataData { get; private set; } = []; public static Dictionary FinishWayData { get; private set; } = []; public static Dictionary PlayerLevelConfigData { get; } = []; public static Dictionary BackGroundMusicData { get; private set; } = []; public static Dictionary ChatBubbleConfigData { get; private set; } = []; #endregion #region Maze public static Dictionary NpcDataData { get; private set; } = []; public static Dictionary FloorInfoData { get; } = []; public static Dictionary MapEntranceData { get; private set; } = []; public static Dictionary MazePlaneData { get; private set; } = []; public static Dictionary MazePropData { get; private set; } = []; public static Dictionary PlaneEventData { get; private set; } = []; public static Dictionary ContentPackageConfigData { get; private set; } = []; public static Dictionary GroupSystemUnlockDataData { get; private set; } = []; public static Dictionary FuncUnlockDataData { get; private set; } = []; #endregion #region Items public static Dictionary MappingInfoData { get; private set; } = []; public static Dictionary ItemConfigData { get; private set; } = []; public static Dictionary ItemUseBuffDataData { get; private set; } = []; public static Dictionary EquipmentConfigData { get; private set; } = []; public static Dictionary EquipmentExpTypeData { get; } = []; public static Dictionary EquipmentExpItemConfigData { get; private set; } = []; public static Dictionary EquipmentPromotionConfigData { get; private set; } = []; public static Dictionary> RelicMainAffixData { get; private set; } = []; // groupId, affixId public static Dictionary> RelicSubAffixData { get; private set; } = []; // groupId, affixId public static Dictionary RelicConfigData { get; private set; } = []; public static Dictionary RelicExpItemData { get; private set; } = []; public static Dictionary RelicExpTypeData { get; private set; } = []; #endregion #region Special Avatar public static Dictionary SpecialAvatarData { get; private set; } = []; public static Dictionary SpecialAvatarRelicData { get; private set; } = []; #endregion #region Mission public static Dictionary MainMissionData { get; private set; } = []; public static Dictionary SubMissionData { get; private set; } = []; public static Dictionary RewardDataData { get; private set; } = []; public static Dictionary MessageGroupConfigData { get; private set; } = []; public static Dictionary MessageSectionConfigData { get; private set; } = []; public static Dictionary MessageContactsConfigData { get; private set; } = []; public static Dictionary MessageItemConfigData { get; private set; } = []; public static Dictionary PerformanceDData { get; private set; } = []; public static Dictionary PerformanceEData { get; private set; } = []; public static Dictionary StoryLineData { get; private set; } = []; public static Dictionary> StoryLineFloorDataData { get; private set; } = []; public static Dictionary StroyLineTrialAvatarDataData { get; private set; } = []; public static Dictionary HeartDialScriptData { get; private set; } = []; public static Dictionary HeartDialDialogueData { get; private set; } = []; #endregion #region Item Exchange public static Dictionary ShopConfigData { get; private set; } = []; public static Dictionary RollShopConfigData { get; private set; } = []; public static Dictionary RollShopRewardData { get; private set; } = []; public static Dictionary ItemComposeConfigData { get; private set; } = []; #endregion #region Rogue public static Dictionary DialogueEventData { get; private set; } = []; public static Dictionary> DialogueDynamicContentData { get; private set; } = []; public static Dictionary RogueAeonData { get; private set; } = []; public static Dictionary RogueAeonBuffData { get; private set; } = []; public static Dictionary RogueBattleEventData { get; private set; } = []; public static Dictionary> RogueAeonEnhanceData { get; private set; } = []; public static Dictionary RogueAreaConfigData { get; private set; } = []; public static Dictionary RogueBonusData { get; private set; } = []; public static Dictionary RogueBuffData { get; private set; } = []; public static Dictionary RogueBuffGroupData { get; private set; } = []; public static Dictionary RogueHandBookEventData { get; private set; } = []; public static Dictionary RogueHandbookMiracleData { get; private set; } = []; public static Dictionary RogueManagerData { get; private set; } = []; public static Dictionary> RogueMapData { get; private set; } = []; public static Dictionary> RogueMapGenData { get; set; } = []; public static Dictionary RogueMazeBuffData { get; private set; } = []; public static Dictionary RogueMiracleData { get; private set; } = []; public static RogueMiracleEffectConfig RogueMiracleEffectData { get; set; } = new(); public static Dictionary> RogueMiracleGroupData { get; set; } = []; public static Dictionary RogueMiracleDisplayData { get; private set; } = []; public static Dictionary RogueMonsterData { get; private set; } = []; public static Dictionary RogueNPCData { get; private set; } = []; public static Dictionary RogueRoomData { get; private set; } = []; public static Dictionary RogueTalentData { get; private set; } = []; #endregion #region TournRogue public static Dictionary RogueTournAreaData { get; private set; } = []; public static Dictionary RogueTournBuffData { get; private set; } = []; public static Dictionary RogueTournFormulaData { get; private set; } = []; public static Dictionary RogueTournBuffGroupData { get; private set; } = []; public static Dictionary RogueTournHexAvatarBaseTypeData { get; private set; } = []; public static Dictionary RogueTournHandBookEventData { get; private set; } = []; public static Dictionary RogueTournHandbookMiracleData { get; private set; } = []; public static Dictionary RogueTournDifficultyCompData { get; private set; } = []; public static Dictionary RogueTournPermanentTalentData { get; private set; } = []; #endregion #region Actions public static void GetFloorInfo(int planeId, int floorId, out FloorInfo outer) { FloorInfoData.TryGetValue("P" + planeId + "_F" + floorId, out outer!); } public static int GetPlayerExpRequired(int level) { var excel = PlayerLevelConfigData[level]; var prevExcel = PlayerLevelConfigData[level - 1]; return excel != null && prevExcel != null ? excel.PlayerExp - prevExcel.PlayerExp : 0; } public static int GetAvatarExpRequired(int group, int level) { ExpTypeData.TryGetValue(group * 100 + level, out var expType); return expType?.Exp ?? 0; } public static int GetEquipmentExpRequired(int group, int level) { EquipmentExpTypeData.TryGetValue(group * 100 + level, out var expType); return expType?.Exp ?? 0; } public static int GetMinPromotionForLevel(int level) { return Math.Max(Math.Min((int)((level - 11) / 10D), 6), 0); } #endregion }