Example #1
0
        void UpdateActiveQuests()
        {
            if (r_Quests.UpdateRawData(KanColleGame.Current.Port.Quests.Table.Values, r => new QuestViewModel(r), delegate { }))
            {
                All = r_Quests.Values.ToArray();
                OnPropertyChanged(nameof(All));

                var rQuestGroups = All.ToLookup(r => r.Source.Type);

                Daily   = rQuestGroups[QuestType.Daily].ToArray();
                Weekly  = rQuestGroups[QuestType.Weekly].ToArray();
                Monthly = rQuestGroups[QuestType.Monthly].ToArray();
                Once    = rQuestGroups[QuestType.Once].ToArray();
                Others  = rQuestGroups[QuestType.Special].ToArray();

                OnPropertyChanged(nameof(Daily));
                OnPropertyChanged(nameof(Weekly));
                OnPropertyChanged(nameof(Monthly));
                OnPropertyChanged(nameof(Once));
                OnPropertyChanged(nameof(Others));
            }

            var rActiveQuests = KanColleGame.Current.Port.Quests.Active;

            if (rActiveQuests != null)
            {
                Active = rActiveQuests.Select(r => r != Quest.Dummy ? r_Quests[r.ID] : r_Dummy).ToArray();
                r_Owner.Overview.ActiveQuests = Active;

                OnPropertyChanged(nameof(Active));
            }
        }
Example #2
0
 protected override void BeforeRefresh() =>
 r_Ships.UpdateRawData(KanColleGame.Current.Port.Ships.Values,
                       r => new ShipViewModel(r, r_Owner.TypeMaps[r.Info.Type]),
                       (r, _) => r.UpdateType(r_Owner.TypeMaps));