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"]))); }
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(); } }
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; } }
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; } }
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"]))); }
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(); }
public void addProgress(Progress progress) { Progresses.Add(progress); eFProgress.addProgress(progress); }
public void RemoveById() { eFProgress.RemoveById(SelectedItem); Progresses.Remove(SelectedItem); }
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); }
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 }
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(); }
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(); }