public void UpdateQuestList(CliProto.SC_GIFT_DAY_NTF netMsg) { m_questInfos.Clear(); Hashtable dailyQuestDB = sdConfDataMgr.Instance().m_dailyQuestDB; foreach (DictionaryEntry item in dailyQuestDB) { DailyQuest dailyQuest = item.Value as DailyQuest; QuestInfo questInfo = new QuestInfo(); questInfo.questType = (uint)dailyQuest.DayQuestType; questInfo.questFinishedTimes = 0; questInfo.questIdx = dailyQuest.DayQuestId; questInfo.questTotalTimes = dailyQuest.DayQuestCount; questInfo.questScroe = dailyQuest.DayQuestScore; questInfo.questTitile = dailyQuest.QuestTitle; questInfo.questDescript = dailyQuest.QuestDescription; questInfo.finished = false; //m_questInfos.Insert(questInfo.questIdx-1, questInfo); m_questInfos.Add(questInfo); //if(questInfo.questScroe > m_maxScore) // m_maxScore = questInfo.questScroe; } m_questInfos.Sort(delegate(QuestInfo x, QuestInfo y) { return(x.questIdx.CompareTo(y.questIdx)); }); for (int i = 0; i < netMsg.m_Count; i++) { foreach (QuestInfo item in m_questInfos) { if (item.questType == netMsg.m_Info[i].m_QuestId) { item.questFinishedTimes = netMsg.m_Info[i].m_FinishProgress; if (netMsg.m_Info[i].m_ScoreReceived == 0) { item.finished = false; } else { m_curScore += item.questScroe; item.finished = true; } } } } if (m_goWndRoot != null && _bWndOpen) { RefreshAwardBox(); RefreshQuestList(false); } }
QuestStrip SetCompensations(QuestStrip qs, DailyQuest quest) { int i = 0; foreach (var comp in quest.CompensationList) { qs.compensations.RowDefinitions.Add(new RowDefinition()); TextBlock nameTb = new TextBlock(); TextBlock amountTb = new TextBlock(); string name = Program.ItemList.Find(x => x.Id == comp.TemplateId).Name; Console.WriteLine(name); nameTb.Text = name; amountTb.Text = comp.Amount.ToString(); Grid.SetRow(nameTb, i); Grid.SetRow(amountTb, i); Grid.SetColumn(nameTb, 0); Grid.SetColumn(amountTb, 1); nameTb.HorizontalAlignment = HorizontalAlignment.Left; amountTb.HorizontalAlignment = HorizontalAlignment.Left; nameTb.VerticalAlignment = VerticalAlignment.Center; amountTb.VerticalAlignment = VerticalAlignment.Center; if (comp.Type == CompensationType.reputationPoint) { nameTb.FontWeight = FontWeights.Bold; amountTb.FontWeight = FontWeights.Bold; nameTb.Foreground = new SolidColorBrush(Colors.Purple); amountTb.Foreground = new SolidColorBrush(Colors.Purple); } switch (quest.Event.type) { case EventType.Field: qs.Foreground = new SolidColorBrush(Color.FromArgb(255, 0, 134, 84)); break; case EventType.Dungeon: qs.Foreground = new SolidColorBrush(Color.FromArgb(255, 0, 125, 180)); break; case EventType.BattleField: qs.Foreground = new SolidColorBrush(Colors.DarkOrange); break; default: break; } qs.compensations.Children.Add(nameTb); qs.compensations.Children.Add(amountTb); i++; } return(qs); }