using System.Collections.Generic; using System.Linq; using LitJson; namespace Wizard; public class PuzzleQuestInfo { private Dictionary _difficultyNameTable; public int CharaId { get; } public PuzzleQuestStatus Status { get; } public List DisplayDatas { get; } public PuzzleQuestInfo(JsonData data) { CharaId = data.GetValueOrDefault("puzzle_quest_chara_id", 0); if (data.TryGetValue("puzzle_quest", out var value)) { bool valueOrDefault = data.GetValueOrDefault("is_display_puzzle_new", defaultValue: false); DisplayDatas = PuzzleQuestSelectDialog.CreateDisplayData(valueOrDefault, value); _difficultyNameTable = CreateDifficultyNameTable(data["puzzle_difficulty_name_list"]); } else { DisplayDatas = new List(); } Status = GetStatus(DisplayDatas); } public string GetDifficultyName(int difficulty) { return _difficultyNameTable[$"{difficulty}"]; } private static PuzzleQuestStatus GetStatus(List displayDatas) { if (displayDatas.Count <= 0) { return PuzzleQuestStatus.None; } if (!displayDatas.All((PuzzleQuestSelectDialog.DisplayData x) => x.IsCleared)) { return PuzzleQuestStatus.InProgress; } return PuzzleQuestStatus.Cleared; } private static Dictionary CreateDifficultyNameTable(JsonData data) { Dictionary dictionary = new Dictionary(); foreach (string key2 in data.Keys) { string key = data[key2].ToString(); dictionary[key] = key2; } return dictionary; } }