示例#1
0
    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);
        }
    }
示例#2
0
        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);
        }