Exemplo n.º 1
0
        private void LoadTxt()
        {
            Txt t = Txt.s;

            btnMMenu.Content = t._[(int)TxI.BACK_MMENU];
            txtDt.Text       = t._[(int)TxI.DATE_L];
            txtHm.Text       = t._[(int)TxI.TIME_L];
            txtIU.Text       = t._[(int)TxI.IUS];
            tbi1.Header      = t._[(int)TxI.PREP_NEE];
            tbi2.Header      = t._[(int)TxI.PREP_Q];
            txtId.Text       = t._[(int)TxI.NEEID_S];
            txtName.Text     = t._[(int)TxI.NEE_NAME];
            txtBirdate.Text  = t._[(int)TxI.BIRDATE];
            txtBirpl.Text    = t._[(int)TxI.BIRPL];
            txtRoom.Text     = t._[(int)TxI.ROOM];
            btnImp.Content   = t._[(int)TxI.PREP_IMP];
            btnDelQ.Content  = t._[(int)TxI.PREP_DEL_SEL];
            btnImpQ.Content  = t._[(int)TxI.PREP_IMP];
            StringBuilder sb = new StringBuilder();

            sb.AppendFormat(Txt.s._[(int)TxI.Q_DB], 0, QuestSheet.DBGetND(mSelQCat));
            tbiDBQ.Header = sb.ToString();
            sb.Clear();
            sb.AppendFormat(Txt.s._[(int)TxI.Q_TMP], 0, mTmpQS.CountD);
            tbiTmpQ.Header = sb.ToString();
        }
Exemplo n.º 2
0
        public QuestList(QuestSheet questSheet,
                         QuestRewardSheet questRewardSheet,
                         QuestItemRewardSheet questItemRewardSheet,
                         EquipmentItemRecipeSheet equipmentItemRecipeSheet,
                         EquipmentItemSubRecipeSheet equipmentItemSubRecipeSheet
                         )
        {
            _quests = new List <Quest>();
            foreach (var questData in questSheet.OrderedList)
            {
                var reward = GetQuestReward(
                    questData.QuestRewardId,
                    questRewardSheet,
                    questItemRewardSheet
                    );

                var quest = CreateQuest(questData, reward, equipmentItemRecipeSheet);
                if (quest is null)
                {
                    continue;
                }

                _quests.Add(quest);
            }
        }
Exemplo n.º 3
0
 public void InitQPanel()
 {
     ExamLv[] l = new ExamLv[2];
     l[0] = ExamLv.A;
     l[1] = ExamLv.B;
     foreach (ExamLv lv in l)
     {
         int n = QuestSheet.GetIUs(lv).Count();
         for (int i = 0; i < n; ++i)
         {
             TextBox t = vtxtNEsyDif[lv][i];
             if (t != null)
             {
                 t.MaxLength       = 2;
                 t.PreviewKeyDown += tbxIU_PrevwKeyDown;
                 t.TextChanged    += tbxIU_TextChanged;
             }
             t = vtxtNDiff[lv][i];
             if (t != null)
             {
                 t.MaxLength       = 2;
                 t.PreviewKeyDown += tbxIU_PrevwKeyDown;
                 t.TextChanged    += tbxIUdif_TextChanged;
             }
         }
     }
 }
Exemplo n.º 4
0
 private void Button_Click(object sender, RoutedEventArgs e)
 {
     QS = new QuestSheet();
     QS.ReadDocx(System.IO.Directory.GetCurrentDirectory() + "\\QS.docx");
     examPage      = new ExamPage();
     examPage.mNee = new ExamineeC("A0001");
     examPage.mQSh = QS;
     NavigationService.Navigate(examPage);
 }
Exemplo n.º 5
0
 public Prep0()
 {
     InitializeComponent();
     mSelQCat = IUx._0;
     mDBQS    = new QuestSheet();
     mTmpQS   = new QuestSheet();
     mBrd     = new ExamBoard();
     vChk     = new List <CheckBox>();
 }
Exemplo n.º 6
0
        public ExamineeA mNee;//reference to Auth.mNee

        public ExamPage()
        {
            InitializeComponent();
            mState   = NetCode.Dating;
            mClnt    = new Client2(ClntBufHndl, ClntBufPrep, false);
            mCbMsg   = new UICbMsg();
            bRunning = true;

            mQSh = new QuestSheet();
        }
Exemplo n.º 7
0
        private void Main_Loaded(object sender, RoutedEventArgs e)
        {
            Window w = Application.Current.MainWindow;

            w.Closing += W_Closing;
            w.FontSize = 16;

            vtxtNEsyDif = new Dictionary <ExamLv, TextBox[]>();
            vtxtNEsyDif.Add(ExamLv.A, new TextBox[QuestSheet.GetIUs(ExamLv.A).Count()]);
            vtxtNEsyDif.Add(ExamLv.B, new TextBox[QuestSheet.GetIUs(ExamLv.B).Count()]);
            vtxtNDiff = new Dictionary <ExamLv, TextBox[]>();
            vtxtNDiff.Add(ExamLv.A, new TextBox[QuestSheet.GetIUs(ExamLv.A).Count()]);
            vtxtNDiff.Add(ExamLv.B, new TextBox[QuestSheet.GetIUs(ExamLv.B).Count()]);
            int i = -1, j = -1;

            foreach (TextBox tbx in grdA.Children.OfType <TextBox>())
            {
                if (Grid.GetColumn(tbx) == 1)
                {
                    vtxtNEsyDif[ExamLv.A][++i] = tbx;
                    tbx.Name = "n" + i;
                }
                else
                {
                    vtxtNDiff[ExamLv.A][++j] = tbx;
                    tbx.Name = "d" + j;
                }
            }
            i = j = -1;
            foreach (TextBox tbx in grdB.Children.OfType <TextBox>())
            {
                if (Grid.GetColumn(tbx) == 1)
                {
                    vtxtNEsyDif[ExamLv.B][++i] = tbx;
                    tbx.Name = "n" + i;
                }
                else
                {
                    vtxtNDiff[ExamLv.B][++j] = tbx;
                    tbx.Name = "d" + j;
                }
            }

            LoadTxt();
            InitQPanel();

            LoadBrd();

            System.Timers.Timer aTimer = new System.Timers.Timer(2000);
            // Hook up the Elapsed event for the timer.
            aTimer.Elapsed  += UpdateSrvrMsg;
            aTimer.AutoReset = true;
            aTimer.Enabled   = true;
        }
Exemplo n.º 8
0
 public void UpdateList(
     QuestSheet questSheet,
     QuestRewardSheet questRewardSheet,
     QuestItemRewardSheet questItemRewardSheet,
     EquipmentItemRecipeSheet equipmentItemRecipeSheet)
 {
     UpdateListV1(
         _listVersion + 1,
         questSheet,
         questRewardSheet,
         questItemRewardSheet,
         equipmentItemRecipeSheet);
 }
Exemplo n.º 9
0
        private void lbxSl_Selected(object sender, RoutedEventArgs e)
        {
            ListBoxItem i = sender as ListBoxItem;

            if (i == null)
            {
                return;
            }
            if (mBrd.vSl.ContainsKey(i.Content as string))
            {
                return;
            }

            ExamSlot sl = new ExamSlot();
            DateTime dt;

            DT.To_(mBrd.mDt.ToString(DT._) + ' ' + i.Content as string, DT.H, out dt);
            sl.Dt = dt;
            string emsg;

            if ((emsg = sl.DBSelRoomId()) != null)
            {
                WPopup.s.ShowDialog(emsg);
                return;
            }
            sl.DBSelStt();
            sl.DBSelQPkR();
            sl.DBSelNee();
            if (sl.DBSelArchieve(out emsg))
            {
                WPopup.s.ShowDialog(emsg);
                return;
            }
            Op0SlotView tbi = new Op0SlotView(sl);

            tbi.DeepCopy(tbcRefSl);
            tbi.ShowExaminee();
            tbi.ShowQSHeader();
            tbcSl.Items.Add(tbi);
            QuestSheet.DBUpdateCurQSId(mBrd.mDt);
            mBrd.vSl.Add(i.Content as string, sl);
            if ((tbi = tbcSl.SelectedItem as Op0SlotView) != null &&
                tbi.mSl.eStt == ExamStt.Prep)
            {
                EnableQSGen();
            }
            else
            {
                DisableQSGen();
            }
        }
Exemplo n.º 10
0
 public void QuestSheetInitialize()
 {
     QuestSheet ??= new QuestSheet();
     QuestSheet.Set(WorldQuestSheet, false);
     QuestSheet.Set(CollectQuestSheet, false);
     QuestSheet.Set(CombinationQuestSheet, false);
     QuestSheet.Set(TradeQuestSheet, false);
     QuestSheet.Set(MonsterQuestSheet, false);
     QuestSheet.Set(ItemEnhancementQuestSheet, false);
     QuestSheet.Set(GeneralQuestSheet, false);
     QuestSheet.Set(ItemGradeQuestSheet, false);
     QuestSheet.Set(ItemTypeCollectQuestSheet, false);
     QuestSheet.Set(GoldQuestSheet, false);
     QuestSheet.Set(CombinationEquipmentQuestSheet);
 }
Exemplo n.º 11
0
        private void InitModels()
        {
            mState   = NetPhase.Dating;
            mClnt    = new Client2(ClntBufHndl, ClntBufPrep, false);
            mCbMsg   = new UICbMsg();
            bRunning = true;

            mExaminee = new ExamineeC();

            QuestSheetModel = new QuestSheet();

            bBtnBusy = false;

            InitRemainingTime();
        }
Exemplo n.º 12
0
 public AvatarSheets(
     WorldSheet worldSheet,
     QuestSheet questSheet,
     QuestRewardSheet questRewardSheet,
     QuestItemRewardSheet questItemRewardSheet,
     EquipmentItemRecipeSheet equipmentItemRecipeSheet,
     EquipmentItemSubRecipeSheet equipmentItemSubRecipeSheet
     )
 {
     WorldSheet                  = worldSheet;
     QuestSheet                  = questSheet;
     QuestRewardSheet            = questRewardSheet;
     QuestItemRewardSheet        = questItemRewardSheet;
     EquipmentItemRecipeSheet    = equipmentItemRecipeSheet;
     EquipmentItemSubRecipeSheet = equipmentItemSubRecipeSheet;
 }
Exemplo n.º 13
0
        public static QuestSheet GetQuestSheet(this IAccountStateDelta states)
        {
            var questSheet = new QuestSheet();

            questSheet.Set(GetSheet <WorldQuestSheet>(states), false);
            questSheet.Set(GetSheet <CollectQuestSheet>(states), false);
            questSheet.Set(GetSheet <CombinationQuestSheet>(states), false);
            questSheet.Set(GetSheet <TradeQuestSheet>(states), false);
            questSheet.Set(GetSheet <MonsterQuestSheet>(states), false);
            questSheet.Set(GetSheet <ItemEnhancementQuestSheet>(states), false);
            questSheet.Set(GetSheet <GeneralQuestSheet>(states), false);
            questSheet.Set(GetSheet <ItemGradeQuestSheet>(states), false);
            questSheet.Set(GetSheet <ItemTypeCollectQuestSheet>(states), false);
            questSheet.Set(GetSheet <GoldQuestSheet>(states), false);
            questSheet.Set(GetSheet <CombinationEquipmentQuestSheet>(states));
            return(questSheet);
        }
Exemplo n.º 14
0
        public void UpdateListV1(
            int listVersion,
            QuestSheet questSheet,
            QuestRewardSheet questRewardSheet,
            QuestItemRewardSheet questItemRewardSheet,
            EquipmentItemRecipeSheet equipmentItemRecipeSheet)
        {
            if (listVersion != _listVersion + 1)
            {
                throw new UpdateListVersionException(_listVersion + 1, listVersion);
            }

            if (questSheet.Count <= _quests.Count)
            {
                throw new UpdateListQuestsCountException(_quests.Count, questSheet.Count);
            }

            _listVersion = listVersion;

            ImmutableHashSet <int> questIds = _quests.Select(q => q.Id).ToImmutableHashSet();

            foreach (var questRow in questSheet.OrderedList)
            {
                if (questIds.Contains(questRow.Id))
                {
                    continue;
                }

                var reward = GetQuestReward(
                    questRow.QuestRewardId,
                    questRewardSheet,
                    questItemRewardSheet);

                Quest quest = CreateQuest(questRow, reward, equipmentItemRecipeSheet);
                if (quest is null)
                {
                    continue;
                }

                _quests.Add(quest);
            }
        }
Exemplo n.º 15
0
 public void InitQPanel()
 {
     ExamLv[] l = new ExamLv[2];
     l[0] = ExamLv.A;
     l[1] = ExamLv.B;
     foreach (ExamLv lv in l)
     {
         int n = QuestSheet.GetIUs(lv).Count();
         for (int i = 0; i < n; ++i)
         {
             TextBox t = vtxtNEsyDif[lv][i];
             if (t != null)
             {
                 t.MaxLength = 2;
             }
             t = vtxtNDiff[lv][i];
             if (t != null)
             {
                 t.MaxLength = 2;
             }
         }
     }
 }
Exemplo n.º 16
0
        private void lbxNee_Selected(object sender, RoutedEventArgs e)
        {
            ListBoxItem i = sender as ListBoxItem;

            if (i == null)
            {
                return;
            }
            ExamineeS0     nee = new ExamineeS0();
            List <TabItem> l   = new List <TabItem>();

            foreach (TabItem ti in tbcSl.Items)
            {
                if (!nee.ParseLvId(ti.Header as string))
                {
                    l.Add(ti);
                }
            }
            foreach (TabItem ti in l)
            {
                tbcSl.Items.Remove(ti);
            }
            if (nee.ParseLvId(i.Content as string))
            {
                return;
            }
            TabItem tbi = new TabItem();

            tbi.Header = i.Content;
            //
            nee.mDt = mBrd.mDt;
            int qsid = nee.DBGetQSId();

            if (qsid < 0)
            {
                return;
            }
            QuestSheet qs = null;

            foreach (ExamSlot sl in mBrd.vSl.Values)
            {
                if (sl.vQPack[nee.eLv].vSheet.ContainsKey(qsid))
                {
                    qs = sl.vQPack[nee.eLv].vSheet[qsid];
                    break;
                }
                else if (sl.vQPackAlt[nee.eLv].vSheet.ContainsKey(qsid))
                {
                    qs = sl.vQPackAlt[nee.eLv].vSheet[qsid];
                    break;
                }
            }
            if (qs == null)
            {
                string t = nee.DBGetT();
                if (!mBrd.vSl.ContainsKey(t))
                {
                    ExamSlot sl = new ExamSlot();
                    DateTime dati;
                    DT.To_(mBrd.mDt.ToString(DT._) + ' ' + t, DT.HS, out dati);
                    sl.Dt = dati;
                    string emsg;
                    if ((emsg = sl.DBSelRoomId()) != null)
                    {
                        WPopup.s.ShowDialog(emsg);
                        return;
                    }
                    sl.DBSelStt();
                    sl.DBSelQPkR();
                    sl.DBSelNee();
                    if (sl.DBSelArchieve(out emsg))
                    {
                        WPopup.s.ShowDialog(emsg);
                        return;
                    }
                    mBrd.vSl.Add(t.Substring(0, 5), sl);
                    //
                    if (sl.vQPack[nee.eLv].vSheet.ContainsKey(qsid))
                    {
                        qs = sl.vQPack[nee.eLv].vSheet[qsid];
                    }
                    else if (sl.vQPackAlt[nee.eLv].vSheet.ContainsKey(qsid))
                    {
                        qs = sl.vQPackAlt[nee.eLv].vSheet[qsid];
                    }
                }
            }
            if (qs == null)
            {
                return;
            }
            nee.DBSelGrade();
            StackPanel spl = new StackPanel();
            TextBlock  tx  = new TextBlock();

            tx.Text = Txt.s._[(int)TxI.QS_ID] + ' ' + qs.tId + ", ";
            spl.Children.Add(tx);
            tx      = new TextBlock();
            tx.Text = Txt.s._[(int)TxI.MARK] + ' ' + nee.Grade;
            spl.Children.Add(tx);
            ScrollViewer svwr = new ScrollViewer();

            svwr.VerticalScrollBarVisibility = ScrollBarVisibility.Auto;
            StackPanel      sp     = new StackPanel();
            int             x      = 0;
            SolidColorBrush evenbg = Theme.s._[(int)BrushId.BG];
            SolidColorBrush oddbg  = Theme.s._[(int)BrushId.Q_BG];
            SolidColorBrush difbg  = Theme.s._[(int)BrushId.Ans_TopLine];
            SolidColorBrush bg;
            bool            even = false;

            char[] ans = nee.DBGetAns();
            int    k   = -1;

            foreach (Question q in qs.ShallowCopy())
            {
                /*if (q.bDiff)
                 *  bg = difbg;
                 * else*/if (even)
                {
                    bg = evenbg;
                }
                else
                {
                    bg = oddbg;
                }
                even = !even;
                TextBlock j = new TextBlock();
                j.Width        = tbcSl.Width - SystemParameters.ScrollWidth;
                j.TextWrapping = TextWrapping.Wrap;
                j.Text         = ++x + ". " + q.Stmt;
                j.Background   = bg;
                sp.Children.Add(j);
                for (int idx = 0; idx < Question.N_ANS; ++idx)
                {
                    j              = new TextBlock();
                    j.Width        = tbcSl.Width - SystemParameters.ScrollWidth;
                    j.TextWrapping = TextWrapping.Wrap;
                    j.Text         = ((char)('A' + idx)).ToString() + ") " + q.vAns[idx];
                    j.Background   = bg;
                    if (q.vKeys[idx])
                    {
                        j.FontWeight = FontWeights.Bold;
                    }
                    if (ans[++k] == Question.C1)
                    {
                        j.Background = Theme.s._[(int)BrushId.Ans_Highlight];
                    }
                    sp.Children.Add(j);
                }
            }
            svwr.Content = sp;
            svwr.Height  = 560;
            spl.Children.Add(svwr);
            tbi.Content = spl;
            //
            tbcSl.Items.Add(tbi);
        }
Exemplo n.º 17
0
        private void ShowDBQ()
        {
            SolidColorBrush evenbg = Theme.s._[(int)BrushId.BG];
            SolidColorBrush oddbg  = Theme.s._[(int)BrushId.Q_BG];
            SolidColorBrush difbg  = Theme.s._[(int)BrushId.Ans_TopLine];
            SolidColorBrush bg;
            bool            even = false;
            int             x    = -1;

            gDBQuest.Children.Clear();
            gDBQuest.RowDefinitions.Clear();
            vChk.Clear();
            double w = gDBQuest.ColumnDefinitions.First().Width.Value;

            foreach (Question q in mDBQS.ShallowCopy())
            {
                TextBlock i = new TextBlock();
                i.Text         = (++x + 1) + ". " + q.Stmt;
                i.Width        = w;
                i.TextWrapping = TextWrapping.Wrap;
                StackPanel sp = new StackPanel();
                sp.Children.Add(i);
                for (int idx = 0; idx < Question.N_ANS; ++idx)
                {
                    TextBlock j = new TextBlock();
                    j.Text         = ((char)('A' + idx)).ToString() + ") " + q.vAns[idx];
                    j.Width        = w;
                    j.TextWrapping = TextWrapping.Wrap;
                    if (q.vKeys[idx])
                    {
                        j.FontWeight = FontWeights.Bold;
                    }
                    sp.Children.Add(j);
                }

                /*if (q.bDiff)
                 *  bg = difbg;
                 * else*/if (even)
                {
                    bg = evenbg;
                }
                else
                {
                    bg = oddbg;
                }
                even          = !even;
                sp.Background = bg;
                RowDefinition rd = new RowDefinition();
                gDBQuest.RowDefinitions.Add(rd);
                Grid.SetRow(sp, x);
                gDBQuest.Children.Add(sp);
                CheckBox chk = new CheckBox();
                chk.Name = "c" + q.uId;
                chk.VerticalAlignment = VerticalAlignment.Center;
                Grid.SetColumn(chk, 1);
                Grid.SetRow(chk, x);
                gDBQuest.Children.Add(chk);
                vChk.Add(chk);
            }
            StringBuilder sb = new StringBuilder();

            sb.AppendFormat(Txt.s._[(int)TxI.Q_DB], mDBQS.Count, QuestSheet.DBGetND(mSelQCat));
            tbiDBQ.Header = sb.ToString();
        }
Exemplo n.º 18
0
        private void tbiQ_GotFocus(object sender, RoutedEventArgs e)
        {
            TabItem tbi = sender as TabItem;

            if (tbi == null || tbi.Content != null)
            {
                return;
            }
            TabControl tbc = tbi.Parent as TabControl;

            if (tbc == null)
            {
                return;
            }
            ExamLv lv;
            int    id;

            if (QuestSheet.ParseLvId((tbi.Header as TextBlock).Text, out lv, out id))
            {
                return;
            }
            QuestSheet qs = null;

            if (mSl.vQPack[lv].vSheet.ContainsKey(id))
            {
                qs = mSl.vQPack[lv].vSheet[id];
            }
            else if (mSl.vQPackAlt[lv].vSheet.ContainsKey(id))
            {
                qs = mSl.vQPackAlt[lv].vSheet[id];
            }
            if (qs == null)
            {
                return;
            }
            ScrollViewer svwr = new ScrollViewer();

            svwr.VerticalScrollBarVisibility = ScrollBarVisibility.Auto;
            StackPanel      sp     = new StackPanel();
            int             x      = 0;
            SolidColorBrush evenbg = Theme.s._[(int)BrushId.BG];
            SolidColorBrush oddbg  = Theme.s._[(int)BrushId.Q_BG];
            SolidColorBrush difbg  = Theme.s._[(int)BrushId.Ans_TopLine];
            SolidColorBrush bg;
            bool            even = false;

            foreach (Question q in qs.ShallowCopy())
            {
                /*if (q.bDiff)
                 *  bg = difbg;
                 * else*/if (even)
                {
                    bg = evenbg;
                }
                else
                {
                    bg = oddbg;
                }
                even = !even;
                TextBlock i = new TextBlock();
                i.Width        = tbc.Width - SystemParameters.ScrollWidth;
                i.TextWrapping = TextWrapping.Wrap;
                i.Text         = ++x + ". " + q.Stmt;
                i.Background   = bg;
                sp.Children.Add(i);
                for (int idx = 0; idx < Question.N_ANS; ++idx)
                {
                    TextBlock j = new TextBlock();
                    j.Width        = tbc.Width - SystemParameters.ScrollWidth;
                    j.TextWrapping = TextWrapping.Wrap;
                    j.Text         = ((char)('A' + idx)).ToString() + ") " + q.vAns[idx];
                    j.Background   = bg;
                    if (q.vKeys[idx])
                    {
                        j.FontWeight = FontWeights.Bold;
                    }
                    sp.Children.Add(j);
                }
            }
            svwr.Content = sp;
            svwr.Height  = 560;
            tbi.Content  = svwr;
        }
Exemplo n.º 19
0
        public bool ClntBufHndl(byte[] buf)
        {
            int offs = 0;
            int l, errc;

            switch (mState)
            {
            case NetPhase.Dating:
                if (!DT.ReadByte(buf, ref offs, out mDt) && bRunning)
                {
                    Dispatcher.Invoke(() => {
                        txtDate.Text = Txt.s._[(int)TxI.DATE] + mDt.ToString(DT.RR);
                        EnableControls();
                        btnReconn.IsEnabled = false;
                    });
                    mState = NetPhase.Authenticating;
                }
                break;

            case NetPhase.Authenticating:
                l = buf.Length - offs;
                if (l < 4)
                {
                    break;
                }
                errc  = BitConverter.ToInt32(buf, offs);
                offs += 4;
                if (errc == 0)
                {
                    ExamineeC e = new ExamineeC();
                    e.bLog = User.bLog;
                    bool b = e.ReadByte(buf, ref offs);
                    l = buf.Length - offs;
                    if (!b)
                    {
                        User.Merge(e);
                        mState = NetPhase.ExamRetrieving;
                        return(true);   //continue
                    }
                }
                else
                {
                    string msg = null;
                    if (errc == (int)TxI.SIGNIN_AL)
                    {
                        if (l < 4)
                        {
                            break;
                        }
                        int sz = BitConverter.ToInt32(buf, offs);
                        l    -= 4;
                        offs += 4;
                        if (l < sz)
                        {
                            break;
                        }
                        string comp = "";
                        if (0 < sz)
                        {
                            comp  = Encoding.UTF8.GetString(buf, offs, sz);
                            l    -= sz;
                            offs += sz;
                        }
                        if (l < 8)
                        {
                            break;
                        }
                        int h = BitConverter.ToInt32(buf, offs);
                        offs += 4;
                        int m = BitConverter.ToInt32(buf, offs);
                        offs += 4;
                        l    -= 8;
                        StringBuilder sb = new StringBuilder();
                        sb.AppendFormat(Txt.s._[(int)TxI.SIGNIN_AL], h.ToString() + ':' + m);
                        sb.Append(comp + '.');
                        msg = sb.ToString();
                    }
                    else if (errc == (int)TxI.SIGNIN_NOK)
                    {
                        msg = Txt.s._[(int)TxI.SIGNIN_NOK];
                    }
                    else if (errc == (int)TxI.NEEID_NF)
                    {
                        msg = Txt.s._[(int)TxI.NEEID_NF];
                    }
                    else if (errc == (int)TxI.RECV_DAT_ER)
                    {
                        msg = Txt.s._[(int)TxI.RECV_DAT_ER];
                    }
                    if (bRunning && msg != null)
                    {
                        Dispatcher.Invoke(() => {
                            AppView.Opacity = 0.5;
                            PopupMgr.Singleton.ShowDialog(msg);
                            AppView.Opacity = 1;
                            EnableControls();
                        });
                    }
                }
                break;

            case NetPhase.ExamRetrieving:
                errc  = BitConverter.ToInt32(buf, offs);
                offs += 4;
                if (errc == (int)TxI.QS_NFOUND)
                {
                    mState = NetPhase.Authenticating;
                    int qsid = BitConverter.ToInt32(buf, offs);
                    offs += 4;
                    if (bRunning)
                    {
                        Dispatcher.Invoke(() =>
                        {
                            AppView.Opacity = 0.5;
                            PopupMgr.Singleton.ShowDialog(Txt.s._[(int)TxI.QS_NFOUND] + qsid);
                            AppView.Opacity = 1;
                            EnableControls();
                        });
                    }
                    break;
                }
                QuestSheet qs = new QuestSheet();
                if (qs.ReadByte(buf, ref offs))
                {
                    mState = NetPhase.Authenticating;
                    if (bRunning)
                    {
                        Dispatcher.Invoke(() =>
                        {
                            AppView.Opacity = 0.5;
                            PopupMgr.Singleton.ShowDialog(Txt.s._[(int)TxI.QS_READ_ER]);
                            AppView.Opacity = 1;
                            EnableControls();
                        });
                    }
                    break;
                }
                if (bRunning)
                {
                    Dispatcher.Invoke(() =>
                    {
                        pgTkExm                 = new TakeExam();
                        pgTkExm.mExaminee       = User;
                        pgTkExm.QuestSheetModel = qs;
                        NavigationService.Navigate(pgTkExm);
                    });
                }
                break;
            }
            return(false);
        }
Exemplo n.º 20
0
        public QuestList(QuestSheet questSheet,
                         QuestRewardSheet questRewardSheet,
                         QuestItemRewardSheet questItemRewardSheet,
                         EquipmentItemRecipeSheet equipmentItemRecipeSheet,
                         EquipmentItemSubRecipeSheet equipmentItemSubRecipeSheet
                         )
        {
            _quests = new List <Quest>();
            foreach (var questData in questSheet.OrderedList)
            {
                Quest       quest;
                QuestReward reward = GetQuestReward(
                    questData.QuestRewardId,
                    questRewardSheet,
                    questItemRewardSheet
                    );
                switch (questData)
                {
                case CollectQuestSheet.Row row:
                    quest = new CollectQuest(row, reward);
                    _quests.Add(quest);
                    break;

                case CombinationQuestSheet.Row row1:
                    quest = new CombinationQuest(row1, reward);
                    _quests.Add(quest);
                    break;

                case GeneralQuestSheet.Row row2:
                    quest = new GeneralQuest(row2, reward);
                    _quests.Add(quest);
                    break;

                case ItemEnhancementQuestSheet.Row row3:
                    quest = new ItemEnhancementQuest(row3, reward);
                    _quests.Add(quest);
                    break;

                case ItemGradeQuestSheet.Row row4:
                    quest = new ItemGradeQuest(row4, reward);
                    _quests.Add(quest);
                    break;

                case MonsterQuestSheet.Row row5:
                    quest = new MonsterQuest(row5, reward);
                    _quests.Add(quest);
                    break;

                case TradeQuestSheet.Row row6:
                    quest = new TradeQuest(row6, reward);
                    _quests.Add(quest);
                    break;

                case WorldQuestSheet.Row row7:
                    quest = new WorldQuest(row7, reward);
                    _quests.Add(quest);
                    break;

                case ItemTypeCollectQuestSheet.Row row8:
                    quest = new ItemTypeCollectQuest(row8, reward);
                    _quests.Add(quest);
                    break;

                case GoldQuestSheet.Row row9:
                    quest = new GoldQuest(row9, reward);
                    _quests.Add(quest);
                    break;

                case CombinationEquipmentQuestSheet.Row row10:
                    int stageId;
                    var recipeRow = equipmentItemRecipeSheet.Values
                                    .FirstOrDefault(r => r.Id == row10.RecipeId);
                    if (recipeRow is null)
                    {
                        throw new ArgumentException($"Invalid Recipe Id : {row10.RecipeId}");
                    }

                    stageId = recipeRow.UnlockStage;
                    if (row10.SubRecipeId.HasValue)
                    {
                        var subRow = equipmentItemSubRecipeSheet.Values
                                     .FirstOrDefault(r => r.Id == row10.SubRecipeId);
                        if (subRow is null)
                        {
                            throw new ArgumentException($"Invalid Sub Recipe Id : {row10.SubRecipeId}");
                        }
                        stageId = Math.Max(stageId, subRow.UnlockStage);
                    }
                    quest = new CombinationEquipmentQuest(row10, reward, stageId);
                    _quests.Add(quest);
                    break;
                }
            }
        }