Exemplo n.º 1
0
        private async void WebGard_OnProgress(object sender, Progresses progress)
        {
            if (progress != null)
            {
                var dispatcher = Windows.ApplicationModel.Core.CoreApplication.MainView.CoreWindow.Dispatcher;
                await dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, () =>
                {
                    switch (progress.ShowType)
                    {
                    case ShowType.RetrievingData:
                        bbb = true;
                        //pb.Text = Convert.ToString(ShowType.RetrievingData);
                        pb.Visibility = Windows.UI.Xaml.Visibility.Visible;
                        break;

                    case ShowType.Null:
                    case ShowType.DataRetrieved:
                    case ShowType.Filter:
                    case ShowType.Error:
                        bbb = false;
                        //pb.Text = Convert.ToString(ShowType.Error);
                        pb.Visibility = Windows.UI.Xaml.Visibility.Collapsed;
                        break;
                    }
                });
            }
        }
        private void ButtonRemove(object sender, RoutedEventArgs e)
        {
            var progress = ProgressGrid.SelectedItem as Models.Progress;

            if (progress == null)
            {
                MessageBox.Show("Ошибка");
                return;
            }

            _dataApp.Progress.Remove(progress.Id);
            Progresses.Remove(progress);
        }
        public void Initialize()
        {
            SessionService.Instance.SubscribeOnce("api_start2", delegate
            {
                var rDataFile = new FileInfo(DataFilename);
                if (!rDataFile.Exists)
                {
                    Infos = new Dictionary <int, QuestInfo>();
                }
                else
                {
                    using (var rReader = new JsonTextReader(rDataFile.OpenText()))
                    {
                        var rData = JArray.Load(rReader);

                        Infos = rData.Select(r => new QuestInfo(r)).ToDictionary(r => r.ID);
                    }
                }

                new QuestInfo(214);

                if (r_InitializationLock != null)
                {
                    r_InitializationLock.Set();
                    r_InitializationLock.Dispose();
                    r_InitializationLock = null;
                }
            });

            SessionService.Instance.Subscribe("api_get_member/require_info", _ =>
            {
                if (r_InitializationLock != null)
                {
                    r_InitializationLock.Wait();
                }

                Progresses = RecordService.Instance.QuestProgress.Reload();
            });

            SessionService.Instance.Subscribe("api_get_member/questlist", r =>
            {
                using (var rTransaction = RecordService.Instance.BeginTransaction())
                {
                    ProcessQuestList(r.Data as RawQuestList);

                    rTransaction.Commit();
                }
            });
            SessionService.Instance.Subscribe("api_req_quest/clearitemget", r => Progresses.Remove(int.Parse(r.Parameters["api_quest_id"])));
        }
Exemplo n.º 4
0
        void Update()
        {
            Progresses.Clear();
            foreach (Progress progress in eFProgress.getProgressById(stud))
            {
                Progresses.Add(progress);
            }
            if (SelectedItem != null)
            {
                CountProgress = (int)(SelectedItem.ComplitedTasks * 100 / SelectedItem.NeededTasks);

                eFProgress.Find(SelectedItem).TaskProgress   = CountProgress;
                eFProgress.Find(SelectedItem).ComplitedTasks = SelectedItem.ComplitedTasks;
                eFProgress.Find(SelectedItem).NeededTasks    = SelectedItem.NeededTasks;
                SelectedItem.TaskProgress = CountProgress;
                SaveProgress();
            }
        }
Exemplo n.º 5
0
        private async void GetProgresses()
        {
            var categories = Category.GetCategories();
            var expenses   = await Expense.GetExpensesAsync();

            if (expenses != null)
            {
                double totalExpenses = expenses.Sum(e => e.Ammount);

                foreach (string category in categories)
                {
                    double expensesInCategory = expenses.Where(e => e.Category == category).Sum(e => e.Ammount);
                    Progresses.Add(new Progress {
                        Name = category, ProgressValue = expensesInCategory / totalExpenses
                    });
                }

                HasProgresses = true;
            }
        }
Exemplo n.º 6
0
        public void GetProgresses()
        {
            Progresses.Clear();
            var categories = Model.Category.GetCategories();
            var expenses   = Expense.ReadExpenses();

            if (expenses != null)
            {
                double totalExpenses = expenses.Sum(e => e.Quantity);
                foreach (var category in categories)
                {
                    var totalAmount = expenses.Where(x => x.Category == category).Sum(e => e.Quantity);
                    Progresses.Add(new Progress()
                    {
                        Name = category, ProgressValue = totalAmount / totalExpenses
                    });
                }

                HasProgresses = true;
            }
        }
Exemplo n.º 7
0
        public void Initialize()
        {
            ApiService.SubscribeOnceOnlyOnBeforeProcessStarted("api_get_member/require_info", delegate
            {
                byte[] rContent;
                if (!DataStore.TryGet("quest", out rContent))
                {
                    Infos = new ListDictionary <int, QuestInfo>();
                }
                else
                {
                    var rReader = new JsonTextReader(new StreamReader(new MemoryStream(rContent)));
                    var rData   = JArray.Load(rReader);

                    Infos = rData.Select(r => new QuestInfo(r)).ToSortedList(r => r.ID);
                }

                if (r_InitializationLock != null)
                {
                    r_InitializationLock.Set();
                    r_InitializationLock.Dispose();
                    r_InitializationLock = null;
                }
            });

            ApiService.Subscribe("api_get_member/require_info", delegate
            {
                if (r_InitializationLock != null)
                {
                    r_InitializationLock.Wait();
                }

                Progresses = RecordService.Instance.QuestProgress.Reload();
            });

            ApiService.Subscribe("api_get_member/questlist", r => ProcessQuestList(r.Data as RawQuestList));
            ApiService.Subscribe("api_req_quest/clearitemget", r => Progresses.Remove(int.Parse(r.Parameters["api_quest_id"])));
        }
Exemplo n.º 8
0
        void QuestUpdated(string apiname, dynamic data)
        {
            var quests = KCDatabase.Instance.Quest;

            //消えている・達成済みの任務の進捗情報を削除
            if (quests.IsLoadCompleted)
            {
                Progresses.RemoveAll(q => !quests.Quests.ContainsKey(q.QuestID) || quests[q.QuestID].State == 3);
            }


            foreach (var q in quests.Quests.Values)
            {
                //達成済みはスキップ
                if (q.State == 3)
                {
                    continue;
                }

                // 進捗情報の生成
                if (!Progresses.ContainsKey(q.QuestID))
                {
                    #region 地 獄 の 任 務 I D べ た 書 き 祭 り

                    switch (q.QuestID)
                    {
                    case 201:                               //|201|敵艦隊を撃破せよ!|勝利1
                        Progresses.Add(new ProgressBattle(q, 1, "B", null, false));
                        break;

                    case 216:                               //|216|敵艦隊主力を撃滅せよ!|戦闘1
                        Progresses.Add(new ProgressBattle(q, 1, "E", null, false));
                        break;

                    case 210:                               //|210|敵艦隊を10回邀撃せよ!|戦闘10
                        Progresses.Add(new ProgressBattle(q, 10, "E", null, false));
                        break;

                    case 211:                               //|211|敵空母を3隻撃沈せよ!|空母3
                        Progresses.Add(new ProgressSlaughter(q, 3, new[] { 7, 11 }));
                        break;

                    case 212:                               //|212|敵輸送船団を叩け!|輸送5
                        Progresses.Add(new ProgressSlaughter(q, 5, new[] { 15 }));
                        break;

                    case 218:                               //|218|敵補給艦を3隻撃沈せよ!|輸送3
                        Progresses.Add(new ProgressSlaughter(q, 3, new[] { 15 }));
                        break;

                    case 226:                               //|226|南西諸島海域の制海権を握れ!|2-(1~5)ボス勝利5
                        Progresses.Add(new ProgressBattle(q, 5, "B", new[] { 21, 22, 23, 24, 25 }, true));
                        break;

                    case 230:                               //|230|敵潜水艦を制圧せよ!|潜水6
                        Progresses.Add(new ProgressSlaughter(q, 6, new[] { 13 }));
                        break;

                    case 213:                               //|213|海上通商破壊作戦|輸送20
                        Progresses.Add(new ProgressSlaughter(q, 20, new[] { 15 }));
                        break;

                    case 214:                               //|214|あ号作戦|出撃36/S勝利6/ボス24/ボス勝利12
                        Progresses.Add(new ProgressAGo(q));
                        break;

                    case 220:                               //|220|い号作戦|空母20
                        Progresses.Add(new ProgressSlaughter(q, 20, new[] { 7, 11 }));
                        break;

                    case 221:                               //|221|ろ号作戦|輸送50
                        Progresses.Add(new ProgressSlaughter(q, 50, new[] { 15 }));
                        break;

                    case 228:                               //|228|海上護衛戦|潜水15
                        Progresses.Add(new ProgressSlaughter(q, 15, new[] { 13 }));
                        break;

                    case 229:                               //|229|敵東方艦隊を撃滅せよ!|4-(1~5)ボス勝利12
                        Progresses.Add(new ProgressBattle(q, 12, "B", new[] { 41, 42, 43, 44, 45 }, true));
                        break;

                    case 242:                               //|242|敵東方中枢艦隊を撃破せよ!|4-4ボス勝利1
                        Progresses.Add(new ProgressBattle(q, 1, "B", new[] { 44 }, true));
                        break;

                    case 243:                               //|243|南方海域珊瑚諸島沖の制空権を握れ!|5-2ボスS勝利2
                        Progresses.Add(new ProgressBattle(q, 2, "S", new[] { 52 }, true));
                        break;

                    case 261:                               //|261|海上輸送路の安全確保に努めよ!|1-5ボスA勝利3
                        Progresses.Add(new ProgressBattle(q, 3, "A", new[] { 15 }, true));
                        break;

                    case 241:                               //|241|敵北方艦隊主力を撃滅せよ!|3-(3~5)ボス勝利5
                        Progresses.Add(new ProgressBattle(q, 5, "B", new[] { 33, 34, 35 }, true));
                        break;

                    case 249:                               //|249|月|「第五戦隊」出撃せよ!|2-5ボスS勝利1|要「那智」「妙高」「羽黒」
                        Progresses.Add(new ProgressSpecialBattle(q, 1, "S", new[] { 25 }, true));
                        break;

                    case 256:                               //|256|「潜水艦隊」出撃せよ!|6-1ボスS勝利3
                        Progresses.Add(new ProgressBattle(q, 3, "S", new[] { 61 }, true));
                        break;

                    case 257:                               //|257|月|「水雷戦隊」南西へ!|1-4ボスS勝利1|要軽巡旗艦、軽巡3隻まで、他駆逐艦 他艦種禁止
                        Progresses.Add(new ProgressSpecialBattle(q, 1, "S", new[] { 14 }, true));
                        break;

                    case 259:                               //|259|月|「水上打撃部隊」南方へ!|5-1ボスS勝利1|要(大和型or長門型or伊勢型or扶桑型)3/軽巡1 巡戦禁止、戦艦追加禁止
                        Progresses.Add(new ProgressSpecialBattle(q, 1, "S", new[] { 51 }, true));
                        break;

                    case 264:                               //|264|月|「空母機動部隊」西へ!|4-2ボスS勝利1|要(空母or軽母or装母)2/駆逐2
                        Progresses.Add(new ProgressSpecialBattle(q, 1, "S", new[] { 42 }, true));
                        break;

                    case 266:                               //|266|月|「水上反撃部隊」突入せよ!|2-5ボスS勝利1|要駆逐旗艦、重巡1軽巡1駆逐4
                        Progresses.Add(new ProgressSpecialBattle(q, 1, "S", new[] { 25 }, true));
                        break;

                    case 280:                               //|280|月|兵站線確保!海上警備を強化実施せよ!|1-2・1-3・1-4・2-1ボスS勝利各1|要(軽母or軽巡or雷巡or練巡)1/(駆逐or海防)3
                        Progresses.Add(new ProgressMultiBattle(q, new[] {
                            new ProgressSpecialBattle(q, 1, "S", new[] { 12 }, true),
                            new ProgressSpecialBattle(q, 1, "S", new[] { 13 }, true),
                            new ProgressSpecialBattle(q, 1, "S", new[] { 14 }, true),
                            new ProgressSpecialBattle(q, 1, "S", new[] { 21 }, true),
                        }));
                        break;

                    case 265:                               //|265|海上護衛強化月間|1-5ボスA勝利10
                        Progresses.Add(new ProgressBattle(q, 10, "A", new[] { 15 }, true));
                        break;

                    case 822:                               //|822|季|沖ノ島海域迎撃戦|2-4ボスS勝利2
                        Progresses.Add(new ProgressBattle(q, 2, "S", new[] { 24 }, true));
                        break;

                    case 854:                               //|854|季|戦果拡張任務!「Z作戦」前段作戦|2-4・6-1・6-3ボスA勝利各1/6-4ボスS勝利1
                        Progresses.Add(new ProgressMultiBattle(q, new[] {
                            new ProgressBattle(q, 1, "A", new[] { 24 }, true),
                            new ProgressBattle(q, 1, "A", new[] { 61 }, true),
                            new ProgressBattle(q, 1, "A", new[] { 63 }, true),
                            new ProgressBattle(q, 1, "S", new[] { 64 }, true),
                        }));
                        break;

                    case 861:                               //|861|季|強行輸送艦隊、抜錨!|1-6終点到達2|要(航空戦艦or補給艦)2
                        Progresses.Add(new ProgressSpecialBattle(q, 2, "x", new[] { 16 }, true));
                        break;

                    case 862:                               //|862|季|前線の航空偵察を実施せよ!|6-3ボスA勝利2|要水母1軽巡2
                        Progresses.Add(new ProgressSpecialBattle(q, 2, "A", new[] { 63 }, true));
                        break;

                    case 872:                               //|872|季|戦果拡張任務!「Z作戦」後段作戦|5-5・6-2・6-5・7-2(第二)ボスS勝利各1|要第一艦隊?
                        Progresses.Add(new ProgressMultiBattle(q, new[] {
                            new ProgressBattle(q, 1, "S", new[] { 55 }, true),
                            new ProgressBattle(q, 1, "S", new[] { 62 }, true),
                            new ProgressBattle(q, 1, "S", new[] { 65 }, true),
                            new ProgressSpecialBattle(q, 1, "S", new[] { 72 }, true, 2),
                        }));
                        break;

                    case 873:                               //|873|季|北方海域警備を実施せよ!|3-1・3-2・3-3ボスA勝利各1|要軽巡1, 1エリア達成で50%,2エリアで80%
                        Progresses.Add(new ProgressMultiBattle(q, new[] {
                            new ProgressSpecialBattle(q, 1, "A", new[] { 31 }, true),
                            new ProgressSpecialBattle(q, 1, "A", new[] { 32 }, true),
                            new ProgressSpecialBattle(q, 1, "A", new[] { 33 }, true),
                        }));
                        break;

                    case 875:                               //|875|季|精鋭「三一駆」、鉄底海域に突入せよ!|5-4ボスS勝利2|要長波改二/(高波改or沖波改or朝霜改)
                        Progresses.Add(new ProgressSpecialBattle(q, 2, "S", new[] { 54 }, true));
                        break;

                    case 888:                               //|888|季|新編成「三川艦隊」、鉄底海峡に突入せよ!|5-1・5-3・5-4ボスS勝利各1|要(鳥海or青葉or衣笠or加古or古鷹or天龍or夕張)4
                        Progresses.Add(new ProgressMultiBattle(q, new[] {
                            new ProgressSpecialBattle(q, 1, "S", new[] { 51 }, true),
                            new ProgressSpecialBattle(q, 1, "S", new[] { 53 }, true),
                            new ProgressSpecialBattle(q, 1, "S", new[] { 54 }, true),
                        }));
                        break;

                    case 893:                               //|893|季|泊地周辺海域の安全確保を徹底せよ!|1-5・7-1・7-2(第一&第二)ボスS勝利各3|3エリア達成時点で80%
                        Progresses.Add(new ProgressMultiBattle(q, new[] {
                            new ProgressBattle(q, 3, "S", new[] { 15 }, true),
                            new ProgressBattle(q, 3, "S", new[] { 71 }, true),
                            new ProgressSpecialBattle(q, 3, "S", new[] { 72 }, true, 1),
                            new ProgressSpecialBattle(q, 3, "S", new[] { 72 }, true, 2),
                        })); break;

                    case 894:                               //|894|季|空母戦力の投入による兵站線戦闘哨戒|1-3・1-4・2-1・2-2・2-3ボスS勝利各1?|要空母系
                        Progresses.Add(new ProgressMultiBattle(q, new[] {
                            new ProgressSpecialBattle(q, 1, "S", new[] { 13 }, true),
                            new ProgressSpecialBattle(q, 1, "S", new[] { 14 }, true),
                            new ProgressSpecialBattle(q, 1, "S", new[] { 21 }, true),
                            new ProgressSpecialBattle(q, 1, "S", new[] { 22 }, true),
                            new ProgressSpecialBattle(q, 1, "S", new[] { 23 }, true),
                        }));
                        break;

                    case 284:                               //|284|季|南西諸島方面「海上警備行動」発令!|1-4・2-1・2-2・2-3ボスS勝利各1|要(軽母or軽巡or雷巡or練巡)1/(駆逐or海防)3
                        Progresses.Add(new ProgressMultiBattle(q, new[] {
                            new ProgressSpecialBattle(q, 1, "S", new[] { 14 }, true),
                            new ProgressSpecialBattle(q, 1, "S", new[] { 21 }, true),
                            new ProgressSpecialBattle(q, 1, "S", new[] { 22 }, true),
                            new ProgressSpecialBattle(q, 1, "S", new[] { 23 }, true),
                        }));
                        break;

                    case 303:                               //|303|「演習」で練度向上!|演習3
                        Progresses.Add(new ProgressPractice(q, 3, false));
                        break;

                    case 304:                               //|304|「演習」で他提督を圧倒せよ!|演習勝利5
                        Progresses.Add(new ProgressPractice(q, 5, true));
                        break;

                    case 302:                               //|302|大規模演習|演習勝利20
                        Progresses.Add(new ProgressPractice(q, 20, true));
                        break;

                    case 311:                               //|311|精鋭艦隊演習|演習勝利7|マンスリーだが1日で進捗リセット
                        Progresses.Add(new ProgressPractice(q, 7, true));
                        break;

                    case 402:                               //|402|「遠征」を3回成功させよう!|遠征成功3
                        Progresses.Add(new ProgressExpedition(q, 3, null));
                        break;

                    case 403:                               //|403|「遠征」を10回成功させよう!|遠征成功10
                        Progresses.Add(new ProgressExpedition(q, 10, null));
                        break;

                    case 404:                               //|404|大規模遠征作戦、発令!|遠征成功30
                        Progresses.Add(new ProgressExpedition(q, 30, null));
                        break;

                    case 410:                               //|410|南方への輸送作戦を成功させよ!|「東京急行」「東京急行(弐)」成功1
                        Progresses.Add(new ProgressExpedition(q, 1, new[] { 37, 38 }));
                        break;

                    case 411:                               //|411|南方への鼠輸送を継続実施せよ!|「東京急行」「東京急行(弐)」成功6
                        Progresses.Add(new ProgressExpedition(q, 6, new[] { 37, 38 }));
                        Progresses[q.QuestID].SharedCounterShift = 1;
                        break;

                    case 424:                               //|424|月|輸送船団護衛を強化せよ!|「海上護衛任務」成功4
                        Progresses.Add(new ProgressExpedition(q, 4, new[] { 5 }));
                        Progresses[q.QuestID].SharedCounterShift = 1;
                        break;

                    case 426:                               //|426|季|海上通商航路の警戒を厳とせよ!|「警備任務」「対潜警戒任務」「海上護衛任務」「強行偵察任務」成功各1|3エリア達成時点で80%
                        Progresses.Add(new ProgressMultiExpedition(q, new[] {
                            new ProgressExpedition(q, 1, new[] { 3 }),
                            new ProgressExpedition(q, 1, new[] { 4 }),
                            new ProgressExpedition(q, 1, new[] { 5 }),
                            new ProgressExpedition(q, 1, new[] { 10 }),
                        }));
                        break;

                    case 428:                               //|428|季|近海に侵入する敵潜を制圧せよ!|「対潜警戒任務」「海峡警備行動」「長時間対潜警戒」成功各2|1エリア達成ごとに進捗が進む
                        Progresses.Add(new ProgressMultiExpedition(q, new[] {
                            new ProgressExpedition(q, 2, new[] { 4 }),
                            new ProgressExpedition(q, 2, new[] { 101 }),
                            new ProgressExpedition(q, 2, new[] { 102 }),
                        }));
                        break;

                    case 503:                               //|503|艦隊大整備!|入渠5
                        Progresses.Add(new ProgressDocking(q, 5));
                        break;

                    case 504:                               //|504|艦隊酒保祭り!|補給15回
                        Progresses.Add(new ProgressSupply(q, 15));
                        break;

                    case 605:                               //|605|新装備「開発」指令|開発1
                        Progresses.Add(new ProgressDevelopment(q, 1));
                        break;

                    case 606:                               //|606|新造艦「建造」指令|建造1
                        Progresses.Add(new ProgressConstruction(q, 1));
                        break;

                    case 607:                               //|607|装備「開発」集中強化!|開発3
                        Progresses.Add(new ProgressDevelopment(q, 3));
                        Progresses[q.QuestID].SharedCounterShift = 1;
                        break;

                    case 608:                               //|608|艦娘「建造」艦隊強化!|建造3
                        Progresses.Add(new ProgressConstruction(q, 3));
                        Progresses[q.QuestID].SharedCounterShift = 1;
                        break;

                    case 609:                               //|609|軍縮条約対応!|解体2
                        Progresses.Add(new ProgressDestruction(q, 2));
                        break;

                    case 619:                               //|619|装備の改修強化|装備改修1(失敗可)
                        Progresses.Add(new ProgressImprovement(q, 1));
                        break;

                    case 673:                               //|673|装備開発力の整備|小口径主砲廃棄4個|進捗は1/5から始まる(3個廃棄時点で80%達成になる)
                        Progresses.Add(new ProgressDiscard(q, 4, true, new[] { 1 }));
                        Progresses[q.QuestID].SharedCounterShift = 1;
                        break;

                    case 674:                               //|674|工廠環境の整備|機銃廃棄3個,鋼材300保有|進捗は2/5から始まる(2個廃棄時点で80%達成になる)
                        Progresses.Add(new ProgressDiscard(q, 3, true, new[] { 21 }));
                        Progresses[q.QuestID].SharedCounterShift = 2;
                        break;

                    case 613:                               //|613|資源の再利用|廃棄24回
                        Progresses.Add(new ProgressDiscard(q, 24, false, null));
                        break;

                    case 638:                               //|638|対空機銃量産|機銃廃棄6個|回ではない
                        Progresses.Add(new ProgressDiscard(q, 6, true, new[] { 21 }));
                        break;

                    case 676:                               //|676|週|装備開発力の集中整備|(中口径主砲x3, 副砲x3, 簡易輸送部材x1)廃棄, 鋼材2400保有|進捗は n/7 で1つごとに進む
                        Progresses.Add(new ProgressMultiDiscard(q, new[] {
                            new ProgressDiscard(q, 3, true, new[] { 2 }),
                            new ProgressDiscard(q, 3, true, new[] { 4 }),
                            new ProgressDiscard(q, 1, true, new[] { 30 }),
                        }));
                        break;

                    case 677:                               //|677|週|継戦支援能力の整備|(大口径主砲x4, 水上偵察機x2, 魚雷x3)廃棄, 鋼材3600保有
                        Progresses.Add(new ProgressMultiDiscard(q, new[] {
                            new ProgressDiscard(q, 4, true, new[] { 3 }),
                            new ProgressDiscard(q, 2, true, new[] { 10 }),
                            new ProgressDiscard(q, 3, true, new[] { 5 }),
                        }));
                        break;

                    case 626:                               //|626|月|精鋭「艦戦」隊の新編成|熟練搭乗員, 零式艦戦21型>>装備の鳳翔旗艦, (零式艦戦21型x2,九六式艦戦x1)廃棄
                        Progresses.Add(new ProgressMultiDiscard(q, new[] {
                            new ProgressDiscard(q, 2, true, new[] { 20 }, -1),
                            new ProgressDiscard(q, 1, true, new[] { 19 }, -1),
                        }));
                        break;

                    case 628:                               //|628|月|機種転換|零式艦戦21型(熟練)>>装備の空母旗艦, 零式艦戦52型x2廃棄
                        Progresses.Add(new ProgressDiscard(q, 2, true, new[] { 21 }, -1));
                        break;

                    case 645:                               //|645|月|「洋上補給」物資の調達|三式弾廃棄, (燃料750, 弾薬750, ドラム缶(輸送用)x2, 九一式徹甲弾)保有
                        Progresses.Add(new ProgressDiscard(q, 1, true, new[] { 18 }));
                        break;

                    case 643:                               //|643|季|主力「陸攻」の調達|零式艦戦21型x2廃棄, (九六式陸攻x1, 九七式艦攻x2)保有
                        Progresses.Add(new ProgressDiscard(q, 2, true, new[] { 20 }, -1));
                        break;

                    case 663:                               //|663|季|新型艤装の継続研究|大口径主砲x10廃棄, 鋼材18000保有
                        Progresses.Add(new ProgressDiscard(q, 10, true, new[] { 3 }));
                        break;

                    case 675:                               //|675|季|運用装備の統合整備|(艦上戦闘機x6, 機銃x4)廃棄, ボーキ800保有
                        Progresses.Add(new ProgressMultiDiscard(q, new[] {
                            new ProgressDiscard(q, 6, true, new[] { 6 }),
                            new ProgressDiscard(q, 4, true, new[] { 21 }),
                        }));
                        break;

                    case 678:                               //|678|季|主力艦上戦闘機の更新|(九六式艦戦x3, 零式艦戦21型x5)廃棄, 秘書艦の第1・第2スロットに零式艦戦52型装備, ボーキ4000保有
                        Progresses.Add(new ProgressMultiDiscard(q, new[] {
                            new ProgressDiscard(q, 3, true, new[] { 19 }, -1),
                            new ProgressDiscard(q, 5, true, new[] { 20 }, -1),
                        }));
                        break;

                    case 680:                               //|680|季|対空兵装の整備拡充|(対空機銃x4, (小型電探or大型電探)x4)廃棄, ボーキ1500保有
                        Progresses.Add(new ProgressMultiDiscard(q, new[] {
                            new ProgressDiscard(q, 4, true, new[] { 21 }),
                            new ProgressDiscard(q, 4, true, new[] { 12, 13 }),
                        }));
                        break;

                    case 686:                               //|686|季|戦時改修A型高角砲の量産|12.7cm連装砲A型改二★10を第一スロ装備の特型駆逐艦旗艦, (10cm連装高角砲x4, 94式高射装置x1)廃棄, (開発資材30, 鋼材900, 新型砲熕兵装資材1)保有
                        Progresses.Add(new ProgressMultiDiscard(q, new[] {
                            new ProgressDiscard(q, 4, true, new[] { 3 }, -1),
                            new ProgressDiscard(q, 1, true, new[] { 121 }, -1),
                        }));
                        break;

                    case 688:                               //|688|季|航空戦力の強化|(艦上戦闘機x3, 艦上爆撃機x3, 艦上攻撃機x3, 水上偵察機x3)廃棄, (熟練搭乗員x1, ボーキサイトx1800)保有
                        Progresses.Add(new ProgressMultiDiscard(q, new[] {
                            new ProgressDiscard(q, 3, true, new[] { 6 }),
                            new ProgressDiscard(q, 3, true, new[] { 7 }),
                            new ProgressDiscard(q, 3, true, new[] { 8 }),
                            new ProgressDiscard(q, 3, true, new[] { 10 }),
                        }));
                        break;

                    case 702:                               //|702|艦の「近代化改修」を実施せよ!|改修成功2
                        Progresses.Add(new ProgressModernization(q, 2));
                        break;

                    case 703:                               //|703|「近代化改修」を進め、戦備を整えよ!|改修成功15
                        Progresses.Add(new ProgressModernization(q, 15));
                        break;
                    }

                    #endregion
                }

                // 進捗度にずれがあった場合補正する
                var p = Progresses[q.QuestID];
                if (p != null)
                {
                    p.CheckProgress(q);
                }
            }

            LastUpdateTime = DateTime.Now;
            OnProgressChanged();
        }
        void QuestUpdated(string apiname, dynamic data)
        {
            var quests = KCDatabase.Instance.Quest;

            //消えている・達成済みの任務の進捗情報を削除
            if (quests.IsLoadCompleted)
            {
                Progresses.RemoveAll(q => !quests.Quests.ContainsKey(q.QuestID) || quests[q.QuestID].State == 3);
            }


            foreach (var q in quests.Quests.Values)
            {
                //達成済みはスキップ
                if (q.State == 3)
                {
                    continue;
                }

                // 進捗情報の生成
                if (!Progresses.ContainsKey(q.QuestID))
                {
                    #region 地 獄 の 任 務 I D べ た 書 き 祭 り

                    switch (q.QuestID)
                    {
                    case 201:                                   //|201|敵艦隊を撃破せよ!|勝利1
                        Progresses.Add(new ProgressBattle(q, 1, "B", null, false));
                        break;

                    case 216:                                   //|216|敵艦隊主力を撃滅せよ!|戦闘1
                        Progresses.Add(new ProgressBattle(q, 1, "E", null, false));
                        break;

                    case 210:                                   //|210|敵艦隊を10回邀撃せよ!|戦闘10
                        Progresses.Add(new ProgressBattle(q, 10, "E", null, false));
                        break;

                    case 211:                                   //|211|敵空母を3隻撃沈せよ!|空母3
                        Progresses.Add(new ProgressSlaughter(q, 3, new int[] { 7, 11 }));
                        break;

                    case 212:                                   //|212|敵輸送船団を叩け!|輸送5
                        Progresses.Add(new ProgressSlaughter(q, 5, new int[] { 15 }));
                        break;

                    case 218:                                   //|218|敵補給艦を3隻撃沈せよ!|輸送3
                        Progresses.Add(new ProgressSlaughter(q, 3, new int[] { 15 }));
                        break;

                    case 226:                                   //|226|南西諸島海域の制海権を握れ!|2-(1~5)ボス勝利5
                        Progresses.Add(new ProgressBattle(q, 5, "B", new int[] { 21, 22, 23, 24, 25 }, true));
                        break;

                    case 230:                                   //|230|敵潜水艦を制圧せよ!|潜水6
                        Progresses.Add(new ProgressSlaughter(q, 6, new int[] { 13 }));
                        break;

                    case 213:                                   //|213|海上通商破壊作戦|輸送20
                        Progresses.Add(new ProgressSlaughter(q, 20, new int[] { 15 }));
                        break;

                    case 214:                                   //|214|あ号作戦|出撃36/S勝利6/ボス24/ボス勝利12
                        Progresses.Add(new ProgressAGo(q));
                        break;

                    case 220:                                   //|220|い号作戦|空母20
                        Progresses.Add(new ProgressSlaughter(q, 20, new int[] { 7, 11 }));
                        break;

                    case 221:                                   //|221|ろ号作戦|輸送50
                        Progresses.Add(new ProgressSlaughter(q, 50, new int[] { 15 }));
                        break;

                    case 228:                                   //|228|海上護衛戦|潜水15
                        Progresses.Add(new ProgressSlaughter(q, 15, new int[] { 13 }));
                        break;

                    case 229:                                   //|229|敵東方艦隊を撃滅せよ!|4-(1~5)ボス勝利12
                        Progresses.Add(new ProgressBattle(q, 12, "B", new int[] { 41, 42, 43, 44, 45 }, true));
                        break;

                    case 242:                                   //|242|敵東方中枢艦隊を撃破せよ!|4-4ボス勝利1
                        Progresses.Add(new ProgressBattle(q, 1, "B", new int[] { 44 }, true));
                        break;

                    case 243:                                   //|243|南方海域珊瑚諸島沖の制空権を握れ!|5-2ボスS勝利2
                        Progresses.Add(new ProgressBattle(q, 2, "S", new int[] { 52 }, true));
                        break;

                    case 261:                                   //|261|海上輸送路の安全確保に努めよ!|1-5ボスA勝利3
                        Progresses.Add(new ProgressBattle(q, 3, "A", new int[] { 15 }, true));
                        break;

                    case 241:                                   //|241|敵北方艦隊主力を撃滅せよ!|3-(3~5)ボス勝利5
                        Progresses.Add(new ProgressBattle(q, 5, "B", new int[] { 33, 34, 35 }, true));
                        break;

                    case 256:                                   //|256|「潜水艦隊」出撃せよ!|6-1ボスS勝利3
                        Progresses.Add(new ProgressBattle(q, 3, "S", new int[] { 61 }, true));
                        break;

                    case 265:                                   //|265|海上護衛強化月間|1-5ボスA勝利10
                        Progresses.Add(new ProgressBattle(q, 10, "A", new int[] { 15 }, true));
                        break;

                    case 303:                                   //|303|「演習」で練度向上!|演習3
                        Progresses.Add(new ProgressPractice(q, 3, false));
                        break;

                    case 304:                                   //|304|「演習」で他提督を圧倒せよ!|演習勝利5
                        Progresses.Add(new ProgressPractice(q, 5, true));
                        break;

                    case 302:                                   //|302|大規模演習|演習勝利20
                        Progresses.Add(new ProgressPractice(q, 20, true));
                        break;

                    case 311:                                   //|311|精鋭艦隊演習|演習勝利7|マンスリーだが1日で進捗リセット
                        Progresses.Add(new ProgressPractice(q, 7, true));
                        break;

                    case 402:                                   //|402|「遠征」を3回成功させよう!|遠征成功3
                        Progresses.Add(new ProgressExpedition(q, 3, null));
                        break;

                    case 403:                                   //|403|「遠征」を10回成功させよう!|遠征成功10
                        Progresses.Add(new ProgressExpedition(q, 10, null));
                        break;

                    case 404:                                   //|404|大規模遠征作戦、発令!|遠征成功30
                        Progresses.Add(new ProgressExpedition(q, 30, null));
                        break;

                    case 410:                                   //|410|南方への輸送作戦を成功させよ!|「東京急行」「東京急行(弐)」成功1
                        Progresses.Add(new ProgressExpedition(q, 1, new int[] { 37, 38 }));
                        break;

                    case 411:                                   //|411|南方への鼠輸送を継続実施せよ!|「東京急行」「東京急行(弐)」成功6
                        Progresses.Add(new ProgressExpedition(q, 6, new int[] { 37, 38 }));
                        Progresses[q.QuestID].SharedCounterShift = 1;
                        break;

                    case 503:                                   //|503|艦隊大整備!|入渠5
                        Progresses.Add(new ProgressDocking(q, 5));
                        break;

                    case 504:                                   //|504|艦隊酒保祭り!|補給15回
                        Progresses.Add(new ProgressSupply(q, 15));
                        break;

                    case 605:                                   //|605|新装備「開発」指令|開発1
                        Progresses.Add(new ProgressDevelopment(q, 1));
                        break;

                    case 606:                                   //|606|新造艦「建造」指令|建造1
                        Progresses.Add(new ProgressConstruction(q, 1));
                        break;

                    case 607:                                   //|607|装備「開発」集中強化!|開発3
                        Progresses.Add(new ProgressDevelopment(q, 3));
                        Progresses[q.QuestID].SharedCounterShift = 1;
                        break;

                    case 608:                                   //|608|艦娘「建造」艦隊強化!|建造3
                        Progresses.Add(new ProgressConstruction(q, 3));
                        Progresses[q.QuestID].SharedCounterShift = 1;
                        break;

                    case 609:                                   //|609|軍縮条約対応!|解体2
                        Progresses.Add(new ProgressDestruction(q, 2));
                        break;

                    case 619:                                   //|619|装備の改修強化|装備改修1(失敗可)
                        Progresses.Add(new ProgressImprovement(q, 1));
                        break;

                    case 613:                                   //|613|資源の再利用|廃棄24回
                        Progresses.Add(new ProgressDiscard(q, 24, false, null));
                        break;

                    case 638:                                   //|638|対空機銃量産|機銃廃棄6個|回ではない
                        Progresses.Add(new ProgressDiscard(q, 6, true, new int[] { 21 }));
                        break;

                    case 702:                                   //|702|艦の「近代化改修」を実施せよ!|改修成功2
                        Progresses.Add(new ProgressModernization(q, 2));
                        break;

                    case 703:                                   //|703|「近代化改修」を進め、戦備を整えよ!|改修成功15
                        Progresses.Add(new ProgressModernization(q, 15));
                        break;
                    }

                    #endregion
                }

                // 進捗度にずれがあった場合補正する
                var p = Progresses[q.QuestID];
                if (p != null)
                {
                    p.CheckProgress(q);
                }
            }

            LastUpdateTime = DateTime.Now;
            OnProgressChanged();
        }
 public void Clear()
 {
     Progresses.Clear();
 }
Exemplo n.º 11
0
 public void addProgress(Progress progress)
 {
     Progresses.Add(progress);
     eFProgress.addProgress(progress);
 }
Exemplo n.º 12
0
 public void RemoveById()
 {
     eFProgress.RemoveById(SelectedItem);
     Progresses.Remove(SelectedItem);
 }
Exemplo n.º 13
0
        void ProcessQuestList(RawQuestList rpData)
        {
            if (rpData != null && rpData.Quests != null)
            {
                foreach (var rRawQuest in rpData.Quests)
                {
                    ProgressInfo rProgressInfo;
                    if (Progresses.TryGetValue(rRawQuest.ID, out rProgressInfo))
                    {
                        rProgressInfo.ResetType = rRawQuest.Type;
                    }
                }
            }

            var rQuests = KanColleGame.Current.Port.Quests.Table;

            if (GetResetTime(QuestType.Daily) > r_LastProcessTime)
            {
                var rOutdatedProgresses = Progresses.Values.Where(r => GetResetTime(!r.Quest.IsDailyReset ? r.ResetType : QuestType.Daily) > r.UpdateTime).ToArray();
                foreach (var rProgressInfo in rOutdatedProgresses)
                {
                    var rID = rProgressInfo.Quest.ID;

                    rQuests.Remove(rID);
                    Progresses.Remove(rID);
                    RecordService.Instance.QuestProgress.DeleteRecord(rID);
                }
                var rOutdatedQuests = rQuests.Values.Where(r => GetResetTime(r.Type) > r.CreationTime).ToArray();
                foreach (var rQuest in rOutdatedQuests)
                {
                    rQuests.Remove(rQuest);
                }
            }

            if (rpData == null || rpData.Quests == null)
            {
                return;
            }

            foreach (var rRawQuest in rpData.Quests)
            {
                var rID = rRawQuest.ID;

                QuestInfo    rInfo;
                ProgressInfo rProgressInfo = null;
                if (!Infos.TryGetValue(rID, out rInfo))
                {
                    Progresses.TryGetValue(rID, out rProgressInfo);
                }
                else
                {
                    var rTotal = rInfo.Total;
                    if (rTotal > 0)
                    {
                        int rProgress;
                        if (Progresses.TryGetValue(rID, out rProgressInfo) && rQuests.ContainsKey(rID))
                        {
                            rProgress = rProgressInfo.Progress;

                            if (rRawQuest.State == QuestState.Completed)
                            {
                                rProgress = rTotal;
                            }
                            else if (rID != 214)
                            {
                                switch (rRawQuest.Progress)
                                {
                                case QuestProgress.Progress50: rProgress = Math.Max(rProgress, (int)Math.Ceiling(rTotal * 0.5) - rInfo.StartFrom); break;

                                case QuestProgress.Progress80: rProgress = Math.Max(rProgress, (int)Math.Ceiling(rTotal * 0.8) - rInfo.StartFrom); break;
                                }
                            }

                            rProgressInfo.Progress = rProgress;
                            rProgressInfo.State    = rRawQuest.State;
                        }
                        else
                        {
                            rProgress = 0;

                            if (rRawQuest.State == QuestState.Completed)
                            {
                                rProgress = rTotal;
                            }
                            else if (rID != 214)
                            {
                                switch (rRawQuest.Progress)
                                {
                                case QuestProgress.Progress50: rProgress = (int)Math.Ceiling(rTotal * 0.5) - rInfo.StartFrom; break;

                                case QuestProgress.Progress80: rProgress = (int)Math.Ceiling(rTotal * 0.8) - rInfo.StartFrom; break;
                                }
                            }

                            Progresses.Add(rID, rProgressInfo = new ProgressInfo(rID, rRawQuest.Type, rRawQuest.State, rProgress));
                        }

                        if (rID == 214)
                        {
                            OSSQuestProgressRule rOSSRule;
                            if (OSSQuestProgressRule.Maps.TryGetValue(214, out rOSSRule))
                            {
                                ((OperationA)rOSSRule).UpdatePercentage(rProgressInfo);
                            }
                        }

                        if (rRawQuest.State == QuestState.Active)
                        {
                            RecordService.Instance.QuestProgress.InsertRecord(rRawQuest, rProgress);
                        }
                    }
                }

                QuestClass rQuest;
                if (!rQuests.TryGetValue(rID, out rQuest))
                {
                    rQuests.Add(rQuest = new QuestClass(rRawQuest));
                }

                rQuest.RealtimeProgress = rProgressInfo;
                rQuest.Extra            = rInfo;
            }

            r_LastProcessTime = DateTimeOffset.Now.ToOffset(Offset);
        }
Exemplo n.º 14
0
        void MainWindow_Loaded(object sender, RoutedEventArgs e)
        {
            if (!string.IsNullOrWhiteSpace(Settings.Default.LastFileName) && File.Exists(Settings.Default.LastFileName))
            {
                Load(Settings.Default.LastFileName);
            }

            #region Progress

            progressesCollection.Init(Progresses);

            progressesCollection.OnAdd = () =>
            {
                var progress = new Progress {
                    Start = DateTime.Now, Duration = TimeSpan.FromMinutes(83)
                };
                var result = new ProgressWindow(progress)
                {
                    Owner = this
                }.ShowDialog() == true;
                if (result)
                {
                    Progresses = Progresses.Add(progress);
                    return(progress);
                }
                return(null);
            };

            progressesCollection.OnEdit = obj =>
            {
                if (new ProgressWindow((Progress)obj)
                {
                    Owner = this
                }.ShowDialog() == true)
                {
                    SaveProgress();
                }
            };

            progressesCollection.OnRemove = obj =>
            {
                Progresses = Progresses.Remove((Progress)obj);
                return(true);
            };

            progressesCollection.OnOrder = obj => ((Progress)obj).Remain;

            var timer = new DispatcherTimer {
                Interval = TimeSpan.FromMinutes(1)
            };
            timer.Tick += (sender1, e1) => {
                progressesCollection.Refresh();
            };
            timer.Start();

            #endregion

            #region Characters

            charactersCollection.Init(Characters);

            charactersCollection.OnAdd = () =>
            {
                var character = new Character();
                var result    = new CharacterWindow(character)
                {
                    Owner = this
                }.ShowDialog() == true;
                if (result)
                {
                    Characters = Characters.Add(character);
                    return(character);
                }
                return(null);
            };

            charactersCollection.OnEdit = obj =>
            {
                if (new CharacterWindow((Character)obj)
                {
                    Owner = this
                }.ShowDialog() == true)
                {
                    SaveCharacters();
                }
            };

            charactersCollection.OnRemove = obj =>
            {
                Characters = Characters.Remove((Character)obj);
                return(true);
            };

            charactersCollection.OnOrder = obj => ((Character)obj).Remain;

            var timer2 = new DispatcherTimer {
                Interval = TimeSpan.FromMinutes(1)
            };
            timer2.Tick += (sender2, e2) =>
            {
                charactersCollection.Refresh();
            };
            timer2.Start();

            #endregion
        }
Exemplo n.º 15
0
 public async virtual Task <List <Progress> > GetProgressAsync()
 {
     return(await Progresses.ToListAsync());
 }
 public void Clear()
 {
     Progresses.Clear();
     LastUpdateTime = DateTime.Now;
 }
        void QuestUpdated(string apiname, dynamic data)
        {
            var quests = KCDatabase.Instance.Quest;

            //消えている・達成済みの任務の進捗情報を削除
            if (quests.IsLoadCompleted)
            {
                Progresses.RemoveAll(q => !quests.Quests.ContainsKey(q.QuestID) || quests[q.QuestID].State == 3);
            }


            foreach (var q in quests.Quests.Values)
            {
                //達成済みはスキップ
                if (q.State == 3)
                {
                    continue;
                }

                // 進捗情報の生成
                if (!Progresses.ContainsKey(q.QuestID))
                {
                    #region 地 獄 の 任 務 I D べ た 書 き 祭 り

                    switch (q.QuestID)
                    {
                    case 201:                               //|201|敵艦隊を撃破せよ!|勝利1
                        Progresses.Add(new ProgressBattle(q, 1, "B", null, false));
                        break;

                    case 216:                               //|216|敵艦隊主力を撃滅せよ!|戦闘1
                        Progresses.Add(new ProgressBattle(q, 1, "E", null, false));
                        break;

                    case 210:                               //|210|敵艦隊を10回邀撃せよ!|戦闘10
                        Progresses.Add(new ProgressBattle(q, 10, "E", null, false));
                        break;

                    case 211:                               //|211|敵空母を3隻撃沈せよ!|空母3
                        Progresses.Add(new ProgressSlaughter(q, 3, new[] { 7, 11 }));
                        break;

                    case 212:                               //|212|敵輸送船団を叩け!|輸送5
                        Progresses.Add(new ProgressSlaughter(q, 5, new[] { 15 }));
                        break;

                    case 218:                               //|218|敵補給艦を3隻撃沈せよ!|輸送3
                        Progresses.Add(new ProgressSlaughter(q, 3, new[] { 15 }));
                        break;

                    case 226:                               //|226|南西諸島海域の制海権を握れ!|2-(1~5)ボス勝利5
                        Progresses.Add(new ProgressBattle(q, 5, "B", new[] { 21, 22, 23, 24, 25 }, true));
                        break;

                    case 230:                               //|230|敵潜水艦を制圧せよ!|潜水6
                        Progresses.Add(new ProgressSlaughter(q, 6, new[] { 13 }));
                        break;

                    case 213:                               //|213|海上通商破壊作戦|輸送20
                        Progresses.Add(new ProgressSlaughter(q, 20, new[] { 15 }));
                        break;

                    case 214:                               //|214|あ号作戦|出撃36/S勝利6/ボス24/ボス勝利12
                        Progresses.Add(new ProgressAGo(q));
                        break;

                    case 220:                               //|220|い号作戦|空母20
                        Progresses.Add(new ProgressSlaughter(q, 20, new[] { 7, 11 }));
                        break;

                    case 221:                               //|221|ろ号作戦|輸送50
                        Progresses.Add(new ProgressSlaughter(q, 50, new[] { 15 }));
                        break;

                    case 228:                               //|228|海上護衛戦|潜水15
                        Progresses.Add(new ProgressSlaughter(q, 15, new[] { 13 }));
                        break;

                    case 229:                               //|229|敵東方艦隊を撃滅せよ!|4-(1~5)ボス勝利12
                        Progresses.Add(new ProgressBattle(q, 12, "B", new[] { 41, 42, 43, 44, 45 }, true));
                        break;

                    case 242:                               //|242|敵東方中枢艦隊を撃破せよ!|4-4ボス勝利1
                        Progresses.Add(new ProgressBattle(q, 1, "B", new[] { 44 }, true));
                        break;

                    case 243:                               //|243|南方海域珊瑚諸島沖の制空権を握れ!|5-2ボスS勝利2
                        Progresses.Add(new ProgressBattle(q, 2, "S", new[] { 52 }, true));
                        break;

                    case 261:                               //|261|海上輸送路の安全確保に努めよ!|1-5ボスA勝利3
                        Progresses.Add(new ProgressBattle(q, 3, "A", new[] { 15 }, true));
                        break;

                    case 241:                               //|241|敵北方艦隊主力を撃滅せよ!|3-(3~5)ボス勝利5
                        Progresses.Add(new ProgressBattle(q, 5, "B", new[] { 33, 34, 35 }, true));
                        break;

                    case 249:                               //|249|月|「第五戦隊」出撃せよ!|2-5ボスS勝利1|要「那智」「妙高」「羽黒」
                        Progresses.Add(new ProgressSpecialBattle(q, 1, "S", new[] { 25 }, true));
                        break;

                    case 256:                               //|256|「潜水艦隊」出撃せよ!|6-1ボスS勝利3
                        Progresses.Add(new ProgressBattle(q, 3, "S", new[] { 61 }, true));
                        break;

                    case 257:                               //|257|月|「水雷戦隊」南西へ!|1-4ボスS勝利1|要軽巡旗艦、軽巡3隻まで、他駆逐艦 他艦種禁止
                        Progresses.Add(new ProgressSpecialBattle(q, 1, "S", new[] { 14 }, true));
                        break;

                    case 259:                               //|259|月|「水上打撃部隊」南方へ!|5-1ボスS勝利1|要(大和型or長門型or伊勢型or扶桑型)3/軽巡1 巡戦禁止、戦艦追加禁止
                        Progresses.Add(new ProgressSpecialBattle(q, 1, "S", new[] { 51 }, true));
                        break;

                    case 264:                               //|264|月|「空母機動部隊」西へ!|4-2ボスS勝利1|要(空母or軽母or装母)2/駆逐2
                        Progresses.Add(new ProgressSpecialBattle(q, 1, "S", new[] { 42 }, true));
                        break;

                    case 266:                               //|266|月|「水上反撃部隊」突入せよ!|2-5ボスS勝利1|要駆逐旗艦、重巡1軽巡1駆逐4
                        Progresses.Add(new ProgressSpecialBattle(q, 1, "S", new[] { 25 }, true));
                        break;

                    case 280:                               //|280|月|兵站線確保!海上警備を強化実施せよ!|1-2・1-3・1-4・2-1ボスS勝利各1|要(軽母or軽巡or雷巡or練巡)1/(駆逐or海防)3
                        Progresses.Add(new ProgressMultiBattle(q, new[] {
                            new ProgressSpecialBattle(q, 1, "S", new[] { 12 }, true),
                            new ProgressSpecialBattle(q, 1, "S", new[] { 13 }, true),
                            new ProgressSpecialBattle(q, 1, "S", new[] { 14 }, true),
                            new ProgressSpecialBattle(q, 1, "S", new[] { 21 }, true),
                        }));
                        break;

                    case 265:                               //|265|海上護衛強化月間|1-5ボスA勝利10
                        Progresses.Add(new ProgressBattle(q, 10, "A", new[] { 15 }, true));
                        break;

                    case 822:                               //|822|季|沖ノ島海域迎撃戦|2-4ボスS勝利2
                        Progresses.Add(new ProgressBattle(q, 2, "S", new[] { 24 }, true));
                        break;

                    case 854:                               //|854|季|戦果拡張任務!「Z作戦」前段作戦|2-4・6-1・6-3ボスA勝利各1/6-4ボスS勝利1
                        Progresses.Add(new ProgressMultiBattle(q, new[] {
                            new ProgressBattle(q, 1, "A", new[] { 24 }, true),
                            new ProgressBattle(q, 1, "A", new[] { 61 }, true),
                            new ProgressBattle(q, 1, "A", new[] { 63 }, true),
                            new ProgressBattle(q, 1, "S", new[] { 64 }, true),
                        }));
                        break;

                    case 861:                               //|861|季|強行輸送艦隊、抜錨!|1-6終点到達2|要(航空戦艦or補給艦)2
                        Progresses.Add(new ProgressSpecialBattle(q, 2, "x", new[] { 16 }, true));
                        break;

                    case 862:                               //|862|季|前線の航空偵察を実施せよ!|6-3ボスA勝利2|要水母1軽巡2
                        Progresses.Add(new ProgressSpecialBattle(q, 2, "A", new[] { 63 }, true));
                        break;

                    case 872:                               //|872|季|戦果拡張任務!「Z作戦」後段作戦|5-5・6-2・6-5・7-2(第二)ボスS勝利各1|要第一艦隊?
                        Progresses.Add(new ProgressMultiBattle(q, new[] {
                            new ProgressBattle(q, 1, "S", new[] { 55 }, true),
                            new ProgressBattle(q, 1, "S", new[] { 62 }, true),
                            new ProgressBattle(q, 1, "S", new[] { 65 }, true),
                            new ProgressSpecialBattle(q, 1, "S", new[] { 72 }, true, 2),
                        }));
                        break;

                    case 873:                               //|873|季|北方海域警備を実施せよ!|3-1・3-2・3-3ボスA勝利各1|要軽巡1, 1エリア達成で50%,2エリアで80%
                        Progresses.Add(new ProgressMultiBattle(q, new[] {
                            new ProgressSpecialBattle(q, 1, "A", new[] { 31 }, true),
                            new ProgressSpecialBattle(q, 1, "A", new[] { 32 }, true),
                            new ProgressSpecialBattle(q, 1, "A", new[] { 33 }, true),
                        }));
                        break;

                    case 875:                               //|875|季|精鋭「三一駆」、鉄底海域に突入せよ!|5-4ボスS勝利2|要長波改二/(高波改or沖波改or朝霜改)
                        Progresses.Add(new ProgressSpecialBattle(q, 2, "S", new[] { 54 }, true));
                        break;

                    case 888:                               //|888|季|新編成「三川艦隊」、鉄底海峡に突入せよ!|5-1・5-3・5-4ボスS勝利各1|要(鳥海or青葉or衣笠or加古or古鷹or天龍or夕張)4
                        Progresses.Add(new ProgressMultiBattle(q, new[] {
                            new ProgressSpecialBattle(q, 1, "S", new[] { 51 }, true),
                            new ProgressSpecialBattle(q, 1, "S", new[] { 53 }, true),
                            new ProgressSpecialBattle(q, 1, "S", new[] { 54 }, true),
                        }));
                        break;

                    case 893:                               //|893|季|泊地周辺海域の安全確保を徹底せよ!|1-5・7-1・7-2(第一&第二)ボスS勝利各3|3エリア達成時点で80%
                        Progresses.Add(new ProgressMultiBattle(q, new[] {
                            new ProgressBattle(q, 3, "S", new[] { 15 }, true),
                            new ProgressBattle(q, 3, "S", new[] { 71 }, true),
                            new ProgressSpecialBattle(q, 3, "S", new[] { 72 }, true, 1),
                            new ProgressSpecialBattle(q, 3, "S", new[] { 72 }, true, 2),
                        })); break;

                    case 894:                               //|894|季|空母戦力の投入による兵站線戦闘哨戒|1-3・1-4・2-1・2-2・2-3ボスS勝利各1?|要空母系
                        Progresses.Add(new ProgressMultiBattle(q, new[] {
                            new ProgressSpecialBattle(q, 1, "S", new[] { 13 }, true),
                            new ProgressSpecialBattle(q, 1, "S", new[] { 14 }, true),
                            new ProgressSpecialBattle(q, 1, "S", new[] { 21 }, true),
                            new ProgressSpecialBattle(q, 1, "S", new[] { 22 }, true),
                            new ProgressSpecialBattle(q, 1, "S", new[] { 23 }, true),
                        }));
                        break;

                    case 284:                               //|284|季|南西諸島方面「海上警備行動」発令!|1-4・2-1・2-2・2-3ボスS勝利各1|要(軽母or軽巡or雷巡or練巡)1/(駆逐or海防)3
                        Progresses.Add(new ProgressMultiBattle(q, new[] {
                            new ProgressSpecialBattle(q, 1, "S", new[] { 14 }, true),
                            new ProgressSpecialBattle(q, 1, "S", new[] { 21 }, true),
                            new ProgressSpecialBattle(q, 1, "S", new[] { 22 }, true),
                            new ProgressSpecialBattle(q, 1, "S", new[] { 23 }, true),
                        }));
                        break;

                    case 845:                               //|845|季|発令!「西方海域作戦」|4-1・4-2・4-3・4-4・4-5ボスS勝利各1
                        Progresses.Add(new ProgressMultiBattle(q, new[] {
                            new ProgressBattle(q, 1, "S", new[] { 41 }, true),
                            new ProgressBattle(q, 1, "S", new[] { 42 }, true),
                            new ProgressBattle(q, 1, "S", new[] { 43 }, true),
                            new ProgressBattle(q, 1, "S", new[] { 44 }, true),
                            new ProgressBattle(q, 1, "S", new[] { 45 }, true),
                        }));
                        break;

                    case 903:                               //|903|季|拡張「六水戦」、最前線へ!|5-1・5-4・6-4・6-5ボスS勝利各1|要旗艦夕張改二(|特|丁), 由良改二or(睦月/如月/弥生/卯月/菊月/望月2)|進捗3/4で80%
                        Progresses.Add(new ProgressMultiBattle(q, new[] {
                            new ProgressSpecialBattle(q, 1, "S", new[] { 51 }, true),
                            new ProgressSpecialBattle(q, 1, "S", new[] { 54 }, true),
                            new ProgressSpecialBattle(q, 1, "S", new[] { 64 }, true),
                            new ProgressSpecialBattle(q, 1, "S", new[] { 65 }, true),
                        }));
                        break;

                    case 904:                               //|904|年(2月)|精鋭「十九駆」、躍り出る!|2-5・3-4・4-5・5-3ボスS勝利各1|要綾波改二/敷波改二
                        Progresses.Add(new ProgressMultiBattle(q, new[] {
                            new ProgressSpecialBattle(q, 1, "S", new[] { 25 }, true),
                            new ProgressSpecialBattle(q, 1, "S", new[] { 34 }, true),
                            new ProgressSpecialBattle(q, 1, "S", new[] { 45 }, true),
                            new ProgressSpecialBattle(q, 1, "S", new[] { 53 }, true),
                        }));
                        break;

                    case 905:                               //|905|年(2月)|「海防艦」、海を護る!|1-1・1-2・1-3・1-5ボスA勝利各1/1-6終点到達1|要海防艦3, 5隻以下の編成
                        Progresses.Add(new ProgressMultiBattle(q, new[] {
                            new ProgressSpecialBattle(q, 1, "A", new[] { 11 }, true),
                            new ProgressSpecialBattle(q, 1, "A", new[] { 12 }, true),
                            new ProgressSpecialBattle(q, 1, "A", new[] { 13 }, true),
                            new ProgressSpecialBattle(q, 1, "A", new[] { 15 }, true),
                            new ProgressSpecialBattle(q, 1, "x", new[] { 16 }, true),
                        }));
                        break;

                    case 912:                               //|912|年(3月)|工作艦「明石」護衛任務|1-3・2-1・2-2・2-3ボスA勝利各1/1-6終点到達1|要明石旗艦, 駆逐艦3
                        Progresses.Add(new ProgressMultiBattle(q, new[] {
                            new ProgressSpecialBattle(q, 1, "A", new[] { 13 }, true),
                            new ProgressSpecialBattle(q, 1, "A", new[] { 21 }, true),
                            new ProgressSpecialBattle(q, 1, "A", new[] { 22 }, true),
                            new ProgressSpecialBattle(q, 1, "A", new[] { 23 }, true),
                            new ProgressSpecialBattle(q, 1, "x", new[] { 16 }, true),
                        }));
                        break;

                    case 914:                               //|914|3|重巡戦隊、西へ!|4-1・4-2・4-3・4-4ボスA勝利各1|要重巡3/駆逐1
                        Progresses.Add(new ProgressMultiBattle(q, new[] {
                            new ProgressSpecialBattle(q, 1, "A", new[] { 41 }, true),
                            new ProgressSpecialBattle(q, 1, "A", new[] { 42 }, true),
                            new ProgressSpecialBattle(q, 1, "A", new[] { 43 }, true),
                            new ProgressSpecialBattle(q, 1, "A", new[] { 44 }, true),
                        }));
                        break;

                    case 928:                               //|928|9|歴戦「第十方面艦隊」、全力出撃!|4-2・7-2(第二)・7-3(第二)ボスS勝利各2|要(羽黒/足柄/妙高/高雄/神風)2
                        Progresses.Add(new ProgressMultiBattle(q, new[] {
                            new ProgressSpecialBattle(q, 2, "S", new[] { 42 }, true),
                            new ProgressSpecialBattle(q, 2, "S", new[] { 72 }, true, 2),
                            new ProgressSpecialBattle(q, 2, "S", new[] { 73 }, true, 2),
                        }));
                        break;

                    case 840:                               //|840|週|【節分任務】令和三年節分作戦|2-(1~3)ボスA勝利各1|要(軽母or軽巡or雷巡or練巡)旗艦/(駆逐or海防)3, 期間限定(2021/01/13~????/??/??)
                        if (DateTime.Now < new DateTime(2021, 4, 1))
                        {
                            Progresses.Add(new ProgressMultiBattle(q, new[] {
                                new ProgressSpecialBattle(q, 1, "A", new[] { 21 }, true),
                                new ProgressSpecialBattle(q, 1, "A", new[] { 22 }, true),
                                new ProgressSpecialBattle(q, 1, "A", new[] { 23 }, true),
                            }));
                        }
                        break;

                    case 841:                               //|841|841|週|【節分任務】令和三年西方海域節分作戦|4-(1~3)ボスS勝利各1|要(水母2or航巡2or重巡2)旗艦, 期間限定(2021/01/13~????/??/??)
                        if (DateTime.Now < new DateTime(2021, 4, 1))
                        {
                            Progresses.Add(new ProgressMultiBattle(q, new[] {
                                new ProgressSpecialBattle(q, 1, "S", new[] { 41 }, true),
                                new ProgressSpecialBattle(q, 1, "S", new[] { 42 }, true),
                                new ProgressSpecialBattle(q, 1, "S", new[] { 43 }, true),
                            }));
                        }
                        break;

                    case 843:                               //|843|週|【節分拡張任務】令和三年節分作戦、全力出撃!|5-2・5-5・6-4ボスS勝利各1|要(戦艦系or空母系)旗艦/駆逐2, 期間限定(2021/01/13~????/??/??)
                        if (DateTime.Now < new DateTime(2021, 4, 1))
                        {
                            Progresses.Add(new ProgressMultiBattle(q, new[] {
                                new ProgressSpecialBattle(q, 1, "S", new[] { 52 }, true),
                                new ProgressSpecialBattle(q, 1, "S", new[] { 55 }, true),
                                new ProgressSpecialBattle(q, 1, "S", new[] { 64 }, true),
                            }));
                        }
                        break;

                    case 303:                               //|303|「演習」で練度向上!|演習3
                        Progresses.Add(new ProgressPractice(q, 3, false));
                        break;

                    case 304:                               //|304|「演習」で他提督を圧倒せよ!|演習勝利5
                        Progresses.Add(new ProgressPractice(q, 5, true));
                        break;

                    case 302:                               //|302|大規模演習|演習勝利20
                        Progresses.Add(new ProgressPractice(q, 20, true));
                        break;

                    case 311:                               //|311|精鋭艦隊演習|演習勝利7|マンスリーだが1日で進捗リセット
                        Progresses.Add(new ProgressPractice(q, 7, true));
                        break;

                    case 402:                               //|402|「遠征」を3回成功させよう!|遠征成功3
                        Progresses.Add(new ProgressExpedition(q, 3, null));
                        break;

                    case 403:                               //|403|「遠征」を10回成功させよう!|遠征成功10
                        Progresses.Add(new ProgressExpedition(q, 10, null));
                        break;

                    case 404:                               //|404|大規模遠征作戦、発令!|遠征成功30
                        Progresses.Add(new ProgressExpedition(q, 30, null));
                        break;

                    case 410:                               //|410|南方への輸送作戦を成功させよ!|「東京急行」「東京急行(弐)」成功1
                        Progresses.Add(new ProgressExpedition(q, 1, new[] { 37, 38 }));
                        break;

                    case 411:                               //|411|南方への鼠輸送を継続実施せよ!|「東京急行」「東京急行(弐)」成功6
                        Progresses.Add(new ProgressExpedition(q, 6, new[] { 37, 38 }));
                        Progresses[q.QuestID].SharedCounterShift = 1;
                        break;

                    case 424:                               //|424|月|輸送船団護衛を強化せよ!|「海上護衛任務」成功4
                        Progresses.Add(new ProgressExpedition(q, 4, new[] { 5 }));
                        Progresses[q.QuestID].SharedCounterShift = 1;
                        break;

                    case 426:                               //|426|季|海上通商航路の警戒を厳とせよ!|「警備任務」「対潜警戒任務」「海上護衛任務」「強行偵察任務」成功各1|3エリア達成時点で80%
                        Progresses.Add(new ProgressMultiExpedition(q, new[] {
                            new ProgressExpedition(q, 1, new[] { 3 }),
                            new ProgressExpedition(q, 1, new[] { 4 }),
                            new ProgressExpedition(q, 1, new[] { 5 }),
                            new ProgressExpedition(q, 1, new[] { 10 }),
                        }));
                        break;

                    case 428:                               //|428|季|近海に侵入する敵潜を制圧せよ!|「対潜警戒任務」「海峡警備行動」「長時間対潜警戒」成功各2|1エリア達成ごとに進捗が進む
                        Progresses.Add(new ProgressMultiExpedition(q, new[] {
                            new ProgressExpedition(q, 2, new[] { 4 }),
                            new ProgressExpedition(q, 2, new[] { 101 }),
                            new ProgressExpedition(q, 2, new[] { 102 }),
                        }));
                        break;

                    case 434:                               //|434|年(2月)|特設護衛船団司令部、活動開始!|「警備任務」「海上護衛任務」「兵站強化任務」「海峡警備行動」「タンカー護衛任務」成功各1|
                        Progresses.Add(new ProgressMultiExpedition(q, new[] {
                            new ProgressExpedition(q, 1, new[] { 3 }),
                            new ProgressExpedition(q, 1, new[] { 5 }),
                            new ProgressExpedition(q, 1, new[] { 100 }),
                            new ProgressExpedition(q, 1, new[] { 101 }),
                            new ProgressExpedition(q, 1, new[] { 9 }),
                        }));
                        break;

                    case 436:                               //|436|年(3月)|練習航海及び警備任務を実施せよ!|「練習航海」「長距離練習航海」「警備任務」「対潜警戒任務」「強行偵察任務」成功各1|
                        Progresses.Add(new ProgressMultiExpedition(q, new[] {
                            new ProgressExpedition(q, 1, new[] { 1 }),
                            new ProgressExpedition(q, 1, new[] { 2 }),
                            new ProgressExpedition(q, 1, new[] { 3 }),
                            new ProgressExpedition(q, 1, new[] { 4 }),
                            new ProgressExpedition(q, 1, new[] { 10 }),
                        })); break;

                    case 437:                               //|437|年(5月)|小笠原沖哨戒線の強化を実施せよ!|「対潜警戒任務」「小笠原沖哨戒線遠征」「小笠原沖戦闘哨戒」「南西方面航空偵察作戦」成功各1?|
                        Progresses.Add(new ProgressMultiExpedition(q, new[] {
                            new ProgressExpedition(q, 1, new[] { 4 }),
                            new ProgressExpedition(q, 1, new[] { 104 }),
                            new ProgressExpedition(q, 1, new[] { 105 }),
                            new ProgressExpedition(q, 1, new[] { 110 }),
                        })); break;

                    case 438:                               //|438|年(8月)|南西諸島方面の海上護衛を強化せよ!|「対潜警戒任務」「兵站強化任務」「タンカー護衛任務」「南西諸島捜索撃滅戦」成功各1|
                        Progresses.Add(new ProgressMultiExpedition(q, new[] {
                            new ProgressExpedition(q, 1, new[] { 4 }),
                            new ProgressExpedition(q, 1, new[] { 100 }),
                            new ProgressExpedition(q, 1, new[] { 9 }),
                            new ProgressExpedition(q, 1, new[] { 114 }),
                        })); break;

                    case 439:                               //|439|年(9月)|兵站強化遠征任務【基本作戦】|「海上護衛任務」「兵站強化任務」「ボーキサイト輸送任務」「南西方面航空偵察作戦」成功各1
                        Progresses.Add(new ProgressMultiExpedition(q, new[] {
                            new ProgressExpedition(q, 1, new[] { 5 }),
                            new ProgressExpedition(q, 1, new[] { 100 }),
                            new ProgressExpedition(q, 1, new[] { 11 }),
                            new ProgressExpedition(q, 1, new[] { 110 }),
                        })); break;

                    case 440:                               //|440|9|兵站強化遠征任務【拡張作戦】|「ブルネイ泊地沖哨戒」「海上護衛任務」「水上機前線輸送」「強行鼠輸送作戦」「南西海域戦闘哨戒」成功各1
                        Progresses.Add(new ProgressMultiExpedition(q, new[] {
                            new ProgressExpedition(q, 1, new[] { 41 }),
                            new ProgressExpedition(q, 1, new[] { 5 }),
                            new ProgressExpedition(q, 1, new[] { 40 }),
                            new ProgressExpedition(q, 1, new[] { 142 }),
                            new ProgressExpedition(q, 1, new[] { 46 }),
                        })); break;

                    case 503:                               //|503|艦隊大整備!|入渠5
                        Progresses.Add(new ProgressDocking(q, 5));
                        break;

                    case 504:                               //|504|艦隊酒保祭り!|補給15回
                        Progresses.Add(new ProgressSupply(q, 15));
                        break;

                    case 605:                               //|605|新装備「開発」指令|開発1
                        Progresses.Add(new ProgressDevelopment(q, 1));
                        break;

                    case 606:                               //|606|新造艦「建造」指令|建造1
                        Progresses.Add(new ProgressConstruction(q, 1));
                        break;

                    case 607:                               //|607|装備「開発」集中強化!|開発3
                        Progresses.Add(new ProgressDevelopment(q, 3));
                        Progresses[q.QuestID].SharedCounterShift = 1;
                        break;

                    case 608:                               //|608|艦娘「建造」艦隊強化!|建造3
                        Progresses.Add(new ProgressConstruction(q, 3));
                        Progresses[q.QuestID].SharedCounterShift = 1;
                        break;

                    case 609:                               //|609|軍縮条約対応!|解体2
                        Progresses.Add(new ProgressDestruction(q, 2));
                        break;

                    case 619:                               //|619|装備の改修強化|装備改修1(失敗可)
                        Progresses.Add(new ProgressImprovement(q, 1));
                        break;

                    case 673:                               //|673|装備開発力の整備|小口径主砲廃棄4個|進捗は1/5から始まる(3個廃棄時点で80%達成になる)
                        Progresses.Add(new ProgressDiscard(q, 4, true, new[] { 1 }));
                        Progresses[q.QuestID].SharedCounterShift = 1;
                        break;

                    case 674:                               //|674|工廠環境の整備|機銃廃棄3個,鋼材300保有|進捗は2/5から始まる(2個廃棄時点で80%達成になる)
                        Progresses.Add(new ProgressDiscard(q, 3, true, new[] { 21 }));
                        Progresses[q.QuestID].SharedCounterShift = 2;
                        break;

                    case 613:                               //|613|資源の再利用|廃棄24回
                        Progresses.Add(new ProgressDiscard(q, 24, false, null));
                        break;

                    case 638:                               //|638|対空機銃量産|機銃廃棄6個|回ではない
                        Progresses.Add(new ProgressDiscard(q, 6, true, new[] { 21 }));
                        break;

                    case 676:                               //|676|週|装備開発力の集中整備|(中口径主砲x3, 副砲x3, 簡易輸送部材x1)廃棄, 鋼材2400保有|進捗は n/7 で1つごとに進む
                        Progresses.Add(new ProgressMultiDiscard(q, new[] {
                            new ProgressDiscard(q, 3, true, new[] { 2 }),
                            new ProgressDiscard(q, 3, true, new[] { 4 }),
                            new ProgressDiscard(q, 1, true, new[] { 30 }),
                        }));
                        break;

                    case 677:                               //|677|週|継戦支援能力の整備|(大口径主砲x4, 水上偵察機x2, 魚雷x3)廃棄, 鋼材3600保有
                        Progresses.Add(new ProgressMultiDiscard(q, new[] {
                            new ProgressDiscard(q, 4, true, new[] { 3 }),
                            new ProgressDiscard(q, 2, true, new[] { 10 }),
                            new ProgressDiscard(q, 3, true, new[] { 5 }),
                        }));
                        break;

                    case 626:                               //|626|月|精鋭「艦戦」隊の新編成|熟練搭乗員, 零式艦戦21型>>装備の鳳翔旗艦, (零式艦戦21型x2,九六式艦戦x1)廃棄
                        Progresses.Add(new ProgressMultiDiscard(q, new[] {
                            new ProgressDiscard(q, 2, true, new[] { 20 }, -1),
                            new ProgressDiscard(q, 1, true, new[] { 19 }, -1),
                        }));
                        break;

                    case 628:                               //|628|月|機種転換|零式艦戦21型(熟練)>>装備の空母旗艦, 零式艦戦52型x2廃棄
                        Progresses.Add(new ProgressDiscard(q, 2, true, new[] { 21 }, -1));
                        break;

                    case 645:                               //|645|月|「洋上補給」物資の調達|三式弾廃棄, (燃料750, 弾薬750, ドラム缶(輸送用)x2, 九一式徹甲弾)保有
                        Progresses.Add(new ProgressDiscard(q, 1, true, new[] { 18 }));
                        break;

                    case 643:                               //|643|季|主力「陸攻」の調達|零式艦戦21型x2廃棄, (九六式陸攻x1, 九七式艦攻x2)保有
                        Progresses.Add(new ProgressDiscard(q, 2, true, new[] { 20 }, -1));
                        break;

                    case 653:                               //|653|季|工廠稼働!次期作戦準備!|14cm単装砲x6廃棄, (家具コイン6000, 35.6cm連装砲x3, 九六式艦戦x3)保有
                        Progresses.Add(new ProgressDiscard(q, 6, true, new[] { 4 }, -1));
                        break;

                    case 663:                               //|663|季|新型艤装の継続研究|大口径主砲x10廃棄, 鋼材18000保有
                        Progresses.Add(new ProgressDiscard(q, 10, true, new[] { 3 }));
                        break;

                    case 675:                               //|675|季|運用装備の統合整備|(艦上戦闘機x6, 機銃x4)廃棄, ボーキ800保有
                        Progresses.Add(new ProgressMultiDiscard(q, new[] {
                            new ProgressDiscard(q, 6, true, new[] { 6 }),
                            new ProgressDiscard(q, 4, true, new[] { 21 }),
                        }));
                        break;

                    case 678:                               //|678|季|主力艦上戦闘機の更新|(九六式艦戦x3, 零式艦戦21型x5)廃棄, 秘書艦の第1・第2スロットに零式艦戦52型装備, ボーキ4000保有
                        Progresses.Add(new ProgressMultiDiscard(q, new[] {
                            new ProgressDiscard(q, 3, true, new[] { 19 }, -1),
                            new ProgressDiscard(q, 5, true, new[] { 20 }, -1),
                        }));
                        break;

                    case 680:                               //|680|季|対空兵装の整備拡充|(対空機銃x4, (小型電探or大型電探)x4)廃棄, ボーキ1500保有
                        Progresses.Add(new ProgressMultiDiscard(q, new[] {
                            new ProgressDiscard(q, 4, true, new[] { 21 }),
                            new ProgressDiscard(q, 4, true, new[] { 12, 13 }),
                        }));
                        break;

                    case 686:                               //|686|季|戦時改修A型高角砲の量産|12.7cm連装砲A型改二★10を第一スロ装備の特型駆逐艦旗艦, (10cm連装高角砲x4, 94式高射装置x1)廃棄, (開発資材30, 鋼材900, 新型砲熕兵装資材1)保有
                        Progresses.Add(new ProgressMultiDiscard(q, new[] {
                            new ProgressDiscard(q, 4, true, new[] { 3 }, -1),
                            new ProgressDiscard(q, 1, true, new[] { 121 }, -1),
                        }));
                        break;

                    case 688:                               //|688|季|航空戦力の強化|(艦上戦闘機x3, 艦上爆撃機x3, 艦上攻撃機x3, 水上偵察機x3)廃棄, (熟練搭乗員x1, ボーキサイトx1800)保有
                        Progresses.Add(new ProgressMultiDiscard(q, new[] {
                            new ProgressDiscard(q, 3, true, new[] { 6 }),
                            new ProgressDiscard(q, 3, true, new[] { 7 }),
                            new ProgressDiscard(q, 3, true, new[] { 8 }),
                            new ProgressDiscard(q, 3, true, new[] { 10 }),
                        }));
                        break;

                    case 657:                               //|657|年(9月)|新型兵装開発整備の強化|(小口径主砲x6, 中口径主砲x5, 魚雷x4)廃棄, 鋼材4000保有|
                        Progresses.Add(new ProgressMultiDiscard(q, new[] {
                            new ProgressDiscard(q, 6, true, new[] { 1 }),
                            new ProgressDiscard(q, 5, true, new[] { 2 }),
                            new ProgressDiscard(q, 4, true, new[] { 5 }),
                        }));
                        break;

                    case 655:                               //|655|11|工廠フル稼働!新兵装を開発せよ!|(小口径主砲x5, 中口径主砲x5, 大口径主砲x5, 水上偵察機x5, 艦上攻撃機x5)廃棄, (燃料x1500, 鋼材x1500, ボーキx1500)保有
                        Progresses.Add(new ProgressMultiDiscard(q, new[] {
                            new ProgressDiscard(q, 5, true, new[] { 1 }),
                            new ProgressDiscard(q, 5, true, new[] { 2 }),
                            new ProgressDiscard(q, 5, true, new[] { 3 }),
                            new ProgressDiscard(q, 5, true, new[] { 8 }),
                            new ProgressDiscard(q, 5, true, new[] { 10 }),
                        }));
                        break;

                    case 654:                               //|654|10|精鋭複葉機飛行隊の編成|(Swordfishx1, Fulmarx2)廃棄, 秘書艦Ark Royalの第一スロットにSwordfish★10装備, (熟練搭乗員x1, 弾薬x1500, ボーキx1500)保有
                        Progresses.Add(new ProgressMultiDiscard(q, new[] {
                            new ProgressDiscard(q, 1, true, new[] { 242 }, -1),
                            new ProgressDiscard(q, 2, true, new[] { 249 }, -1),
                        }));
                        break;

                    case 681:                               //|681|1|航空戦力の再編増強準備|(艦上爆撃機x4, 艦上攻撃機x4)廃棄, (開発資材20, ボーキ1600)保有
                        Progresses.Add(new ProgressMultiDiscard(q, new[] {
                            new ProgressDiscard(q, 4, true, new[] { 7 }),
                            new ProgressDiscard(q, 4, true, new[] { 8 }),
                        }));
                        break;

                    case 702:                               //|702|艦の「近代化改修」を実施せよ!|改修成功2
                        Progresses.Add(new ProgressModernization(q, 2));
                        break;

                    case 703:                               //|703|「近代化改修」を進め、戦備を整えよ!|改修成功15
                        Progresses.Add(new ProgressModernization(q, 15));
                        break;
                    }

                    #endregion
                }

                // 進捗度にずれがあった場合補正する
                var p = Progresses[q.QuestID];
                if (p != null)
                {
                    p.CheckProgress(q);
                }
            }

            LastUpdateTime = DateTime.Now;
            OnProgressChanged();
        }
Exemplo n.º 18
0
        void QuestUpdated(string apiname, dynamic data)
        {
            var quests = KCDatabase.Instance.Quest;

            //消えている・達成済みの任務の進捗情報を削除
            if (quests.IsLoadCompleted)
            {
                Progresses.RemoveAll(q => !quests.Quests.ContainsKey(q.QuestID) || quests[q.QuestID].State == 3);
            }


            foreach (var q in quests.Quests.Values)
            {
                //達成済みはスキップ
                if (q.State == 3)
                {
                    continue;
                }

                // 進捗情報の生成
                if (!Progresses.ContainsKey(q.QuestID))
                {
                    #region 地 獄 の 任 務 I D べ た 書 き 祭 り

                    switch (q.QuestID)
                    {
                    case 201:                               //|201|敵艦隊を撃破せよ!|勝利1
                        Progresses.Add(new ProgressBattle(q, 1, "B", null, false));
                        break;

                    case 216:                               //|216|敵艦隊主力を撃滅せよ!|戦闘1
                        Progresses.Add(new ProgressBattle(q, 1, "E", null, false));
                        break;

                    case 210:                               //|210|敵艦隊を10回邀撃せよ!|戦闘10
                        Progresses.Add(new ProgressBattle(q, 10, "E", null, false));
                        break;

                    case 211:                               //|211|敵空母を3隻撃沈せよ!|空母3
                        Progresses.Add(new ProgressSlaughter(q, 3, new int[] { 7, 11 }));
                        break;

                    case 212:                               //|212|敵輸送船団を叩け!|輸送5
                        Progresses.Add(new ProgressSlaughter(q, 5, new int[] { 15 }));
                        break;

                    case 218:                               //|218|敵補給艦を3隻撃沈せよ!|輸送3
                        Progresses.Add(new ProgressSlaughter(q, 3, new int[] { 15 }));
                        break;

                    case 226:                               //|226|南西諸島海域の制海権を握れ!|2-(1~5)ボス勝利5
                        Progresses.Add(new ProgressBattle(q, 5, "B", new int[] { 21, 22, 23, 24, 25 }, true));
                        break;

                    case 230:                               //|230|敵潜水艦を制圧せよ!|潜水6
                        Progresses.Add(new ProgressSlaughter(q, 6, new int[] { 13 }));
                        break;

                    case 213:                               //|213|海上通商破壊作戦|輸送20
                        Progresses.Add(new ProgressSlaughter(q, 20, new int[] { 15 }));
                        break;

                    case 214:                               //|214|あ号作戦|出撃36/S勝利6/ボス24/ボス勝利12
                        Progresses.Add(new ProgressAGo(q));
                        break;

                    case 220:                               //|220|い号作戦|空母20
                        Progresses.Add(new ProgressSlaughter(q, 20, new int[] { 7, 11 }));
                        break;

                    case 221:                               //|221|ろ号作戦|輸送50
                        Progresses.Add(new ProgressSlaughter(q, 50, new int[] { 15 }));
                        break;

                    case 228:                               //|228|海上護衛戦|潜水15
                        Progresses.Add(new ProgressSlaughter(q, 15, new int[] { 13 }));
                        break;

                    case 229:                               //|229|敵東方艦隊を撃滅せよ!|4-(1~5)ボス勝利12
                        Progresses.Add(new ProgressBattle(q, 12, "B", new int[] { 41, 42, 43, 44, 45 }, true));
                        break;

                    case 242:                               //|242|敵東方中枢艦隊を撃破せよ!|4-4ボス勝利1
                        Progresses.Add(new ProgressBattle(q, 1, "B", new int[] { 44 }, true));
                        break;

                    case 243:                               //|243|南方海域珊瑚諸島沖の制空権を握れ!|5-2ボスS勝利2
                        Progresses.Add(new ProgressBattle(q, 2, "S", new int[] { 52 }, true));
                        break;

                    case 261:                               //|261|海上輸送路の安全確保に努めよ!|1-5ボスA勝利3
                        Progresses.Add(new ProgressBattle(q, 3, "A", new int[] { 15 }, true));
                        break;

                    case 241:                               //|241|敵北方艦隊主力を撃滅せよ!|3-(3~5)ボス勝利5
                        Progresses.Add(new ProgressBattle(q, 5, "B", new int[] { 33, 34, 35 }, true));
                        break;

                    case 256:                               //|256|「潜水艦隊」出撃せよ!|6-1ボスS勝利3
                        Progresses.Add(new ProgressBattle(q, 3, "S", new int[] { 61 }, true));
                        break;

                    case 265:                               //|265|海上護衛強化月間|1-5ボスA勝利10
                        Progresses.Add(new ProgressBattle(q, 10, "A", new int[] { 15 }, true));
                        break;

                    case 822:                               //|822|季|沖ノ島海域迎撃戦|2-4ボスS勝利2
                        Progresses.Add(new ProgressBattle(q, 2, "S", new int[] { 24 }, true));
                        break;

                    case 854:                               //|854|季|戦果拡張任務!「Z作戦」前段作戦|2-4・6-1・6-3ボスA勝利各1/6-4ボスS勝利1
                        Progresses.Add(new ProgressMultiBattle(q, new[] {
                            new ProgressBattle(q, 1, "A", new int[] { 24 }, true),
                            new ProgressBattle(q, 1, "A", new int[] { 61 }, true),
                            new ProgressBattle(q, 1, "A", new int[] { 63 }, true),
                            new ProgressBattle(q, 1, "S", new int[] { 64 }, true),
                        }));
                        break;

                    case 303:                               //|303|「演習」で練度向上!|演習3
                        Progresses.Add(new ProgressPractice(q, 3, false));
                        break;

                    case 304:                               //|304|「演習」で他提督を圧倒せよ!|演習勝利5
                        Progresses.Add(new ProgressPractice(q, 5, true));
                        break;

                    case 302:                               //|302|大規模演習|演習勝利20
                        Progresses.Add(new ProgressPractice(q, 20, true));
                        break;

                    case 311:                               //|311|精鋭艦隊演習|演習勝利7|マンスリーだが1日で進捗リセット
                        Progresses.Add(new ProgressPractice(q, 7, true));
                        break;

                    case 402:                               //|402|「遠征」を3回成功させよう!|遠征成功3
                        Progresses.Add(new ProgressExpedition(q, 3, null));
                        break;

                    case 403:                               //|403|「遠征」を10回成功させよう!|遠征成功10
                        Progresses.Add(new ProgressExpedition(q, 10, null));
                        break;

                    case 404:                               //|404|大規模遠征作戦、発令!|遠征成功30
                        Progresses.Add(new ProgressExpedition(q, 30, null));
                        break;

                    case 410:                               //|410|南方への輸送作戦を成功させよ!|「東京急行」「東京急行(弐)」成功1
                        Progresses.Add(new ProgressExpedition(q, 1, new int[] { 37, 38 }));
                        break;

                    case 411:                               //|411|南方への鼠輸送を継続実施せよ!|「東京急行」「東京急行(弐)」成功6
                        Progresses.Add(new ProgressExpedition(q, 6, new int[] { 37, 38 }));
                        Progresses[q.QuestID].SharedCounterShift = 1;
                        break;

                    case 424:                               //|424|月|輸送船団護衛を強化せよ!|「海上護衛任務」成功4
                        Progresses.Add(new ProgressExpedition(q, 4, new int[] { 5 }));
                        Progresses[q.QuestID].SharedCounterShift = 1;
                        break;

                    case 503:                               //|503|艦隊大整備!|入渠5
                        Progresses.Add(new ProgressDocking(q, 5));
                        break;

                    case 504:                               //|504|艦隊酒保祭り!|補給15回
                        Progresses.Add(new ProgressSupply(q, 15));
                        break;

                    case 605:                               //|605|新装備「開発」指令|開発1
                        Progresses.Add(new ProgressDevelopment(q, 1));
                        break;

                    case 606:                               //|606|新造艦「建造」指令|建造1
                        Progresses.Add(new ProgressConstruction(q, 1));
                        break;

                    case 607:                               //|607|装備「開発」集中強化!|開発3
                        Progresses.Add(new ProgressDevelopment(q, 3));
                        Progresses[q.QuestID].SharedCounterShift = 1;
                        break;

                    case 608:                               //|608|艦娘「建造」艦隊強化!|建造3
                        Progresses.Add(new ProgressConstruction(q, 3));
                        Progresses[q.QuestID].SharedCounterShift = 1;
                        break;

                    case 609:                               //|609|軍縮条約対応!|解体2
                        Progresses.Add(new ProgressDestruction(q, 2));
                        break;

                    case 619:                               //|619|装備の改修強化|装備改修1(失敗可)
                        Progresses.Add(new ProgressImprovement(q, 1));
                        break;

                    case 613:                               //|613|資源の再利用|廃棄24回
                        Progresses.Add(new ProgressDiscard(q, 24, false, null));
                        break;

                    case 638:                               //|638|対空機銃量産|機銃廃棄6個|回ではない
                        Progresses.Add(new ProgressDiscard(q, 6, true, new int[] { 21 }));
                        break;

                    case 673:                               //|673|装備開発力の整備|小口径主砲廃棄4個|進捗は1/5から始まる(3個廃棄時点で80%達成になる)
                        Progresses.Add(new ProgressDiscard(q, 4, true, new int[] { 1 }));
                        Progresses[q.QuestID].SharedCounterShift = 1;
                        break;

                    case 674:                               //|674|工廠環境の整備|機銃廃棄3個,鋼材300保有|進捗は2/5から始まる(2個廃棄時点で80%達成になる)
                        Progresses.Add(new ProgressDiscard(q, 3, true, new int[] { 21 }));
                        Progresses[q.QuestID].SharedCounterShift = 2;
                        break;

                    case 676:                               //|676|週|装備開発力の集中整備|(中口径主砲x3, 副砲x3, 簡易輸送部材x1)廃棄, 鋼材2400保有|進捗は n/7 で1つごとに進む
                        Progresses.Add(new ProgressMultiDiscard(q, new[] {
                            new ProgressDiscard(q, 3, true, new[] { 2 }),
                            new ProgressDiscard(q, 3, true, new[] { 4 }),
                            new ProgressDiscard(q, 1, true, new[] { 30 }),
                        }));
                        break;

                    case 663:                               //|663|季|新型艤装の継続研究|大口径主砲x10廃棄, 鋼材18000保有
                        Progresses.Add(new ProgressDiscard(q, 10, true, new[] { 3 }));
                        break;

                    case 675:                               //|675|季|運用装備の統合整備|(艦上戦闘機x6, 機銃x4)廃棄, ボーキ800保有
                        Progresses.Add(new ProgressMultiDiscard(q, new[] {
                            new ProgressDiscard(q, 6, true, new[] { 6 }),
                            new ProgressDiscard(q, 4, true, new[] { 21 }),
                        }));
                        break;

                    case 677:                               //|677|週|継戦支援能力の整備|(大口径主砲x4, 水上偵察機x2, 魚雷x3)廃棄, 鋼材3600保有
                        Progresses.Add(new ProgressMultiDiscard(q, new[] {
                            new ProgressDiscard(q, 4, true, new[] { 3 }),
                            new ProgressDiscard(q, 2, true, new[] { 10 }),
                            new ProgressDiscard(q, 3, true, new[] { 5 }),
                        }));
                        break;

                    case 702:                               //|702|艦の「近代化改修」を実施せよ!|改修成功2
                        Progresses.Add(new ProgressModernization(q, 2));
                        break;

                    case 703:                               //|703|「近代化改修」を進め、戦備を整えよ!|改修成功15
                        Progresses.Add(new ProgressModernization(q, 15));
                        break;
                    }

                    #endregion
                }

                // 進捗度にずれがあった場合補正する
                var p = Progresses[q.QuestID];
                if (p != null)
                {
                    p.CheckProgress(q);
                }
            }

            LastUpdateTime = DateTime.Now;
            OnProgressChanged();
        }