public void ResetDungeonInfoDictionary(int lastDungeonId, List <int> getRewardDungeonIds) { // List <ExpeditionDungeonInfo> infoList = DungeonInfoDictionary.GetValues(); int count = infoList.Count; //ExpeditionData data; ExpeditionDungeonInfo info; for (int i = 0; i < count; i++) { info = infoList[i]; info.SetFinished(info.id <= lastDungeonId); info.SetUnlocked(info.id <= lastDungeonId); info.SetGetReward(info.id <= lastDungeonId); } //unlock if (lastDungeonId == -1) { ExpeditionData firstData = ExpeditionData.ExpeditionDataDictionary.First().Value; CurrentExpeditionDungeonId = firstData.id; DungeonInfoDictionary[firstData.id].SetUnlocked(true); } else { ExpeditionData nextData = ExpeditionData.GetNextExpeditionData(lastDungeonId); if (nextData != null) { CurrentExpeditionDungeonId = nextData.id; DungeonInfoDictionary[nextData.id].SetUnlocked(true); if (nextData.type != (int)ExpeditionDungeonType.Expedition_Normal) { DungeonInfoDictionary[nextData.id].SetFinished(true); } } else { CurrentExpeditionDungeonId = lastDungeonId; } } //reward if (getRewardDungeonIds != null) { count = getRewardDungeonIds.Count; int rewardId; for (int i = 0; i < count; i++) { rewardId = getRewardDungeonIds[i]; if (DungeonInfoDictionary.ContainsKey(rewardId)) { DungeonInfoDictionary[rewardId].SetGetReward(true); } } } if (onUpdateResetSucDelegate != null) { onUpdateResetSucDelegate(); } }
public void Set(int dataid, bool isFinished, bool isGetReward, bool isUnlocked) { id = dataid; data = ExpeditionData.GetExpeditionDataByID(dataid); this.isFinished = isFinished; this.isGetReward = isGetReward; this.isUnlocked = isUnlocked; }
public static ExpeditionData GetNextExpeditionData(int curId) { List <int> keys = ExpeditionDataDictionary.GetKeys(); ExpeditionData data = null; bool isNext = false; int id; for (int i = 0, count = keys.Count; i < count; i++) { id = keys[i]; if (isNext) { data = ExpeditionDataDictionary[id]; break; } if (curId == id) { isNext = true; } } return(data); }