public void Load(byte[] bytes) { DungeonInfoMap = new SortedDictionary <DungeonInfoKey, DungeonInfo>(); BinaryHelper helper = new BinaryHelper(bytes); int dungeonCount = helper.ReadInt(); for (int index = 0; index < dungeonCount; ++index) { DungeonInfo dungeonInfo = new DungeonInfo(); dungeonInfo.DungeonId = helper.ReadInt(); dungeonInfo.DungeonGrade = helper.ReadInt(); dungeonInfo.DungeonName = helper.ReadString(); int sceneCount = helper.ReadInt(); dungeonInfo.SceneIdList = new List <int>(sceneCount); for (int sceneIndex = 0; sceneIndex < sceneCount; sceneIndex++) { dungeonInfo.SceneIdList.Add(helper.ReadInt()); } dungeonInfo.LevelMin = helper.ReadInt(); dungeonInfo.LevelMax = helper.ReadInt(); dungeonInfo.QuestId = helper.ReadInt(); dungeonInfo.NeedEnergy = helper.ReadInt(); dungeonInfo.TeamVolume = helper.ReadInt(); DungeonInfoKey newKey = new DungeonInfoKey(); newKey.DungeonID = dungeonInfo.DungeonId; newKey.DungeonGrade = dungeonInfo.DungeonGrade; DungeonInfoMap.Add(newKey, dungeonInfo); } }
public DungeonInfo Lookup(int dungeonId, int grade) { DungeonInfoKey key = new DungeonInfoKey(); key.DungeonID = dungeonId; key.DungeonGrade = grade; DungeonInfo info = null; if (DungeonInfoMap.TryGetValue(key, out info)) { return(info); } return(null); }