internal QuestsViewModel(GameInformationViewModel rpParent) { var rQuestManager = KanColleGame.Current.Port.Quests; Executing = rpParent.Overview.ExecutingQuests = rQuestManager.Executing?.Select(r => new QuestViewModel(r)).ToList(); Unexecuted = rQuestManager.Unexecuted?.Select(r => new QuestViewModel(r)).ToList(); var rQuestManagerPCEL = PropertyChangedEventListener.FromSource(rQuestManager); rQuestManagerPCEL.Add(nameof(rQuestManager.IsLoaded), (s, e) => IsLoaded = true); rQuestManagerPCEL.Add(nameof(rQuestManager.Executing), (s, e) => Executing = rpParent.Overview.ExecutingQuests = rQuestManager.Executing.Select(r => new QuestViewModel(r)).ToList()); rQuestManagerPCEL.Add(nameof(rQuestManager.Unexecuted), (s, e) => Unexecuted = rQuestManager.Unexecuted.Select(r => new QuestViewModel(r)).ToList()); }
internal QuestsViewModel(GameInformationViewModel rpParent) { var rQuestManager = KanColleGame.Current.Port.Quests; Executing = rpParent.Overview.ExecutingQuests = rQuestManager.Executing?.Select(r => new QuestViewModel(r)).ToList(); Unexecuted = rQuestManager.Unexecuted?.Select(r => new QuestViewModel(r)).ToList(); var rPropertyChangedSource = Observable.FromEventPattern<PropertyChangedEventArgs>(rQuestManager, nameof(rQuestManager.PropertyChanged)) .Select(r => r.EventArgs.PropertyName); rPropertyChangedSource.Where(r => r == nameof(rQuestManager.Executing)) .Subscribe(_ => Executing = rpParent.Overview.ExecutingQuests = rQuestManager.Executing.Select(r => new QuestViewModel(r)).ToList()); rPropertyChangedSource.Where(r => r == nameof(rQuestManager.Unexecuted)) .Subscribe(_ => Unexecuted = rQuestManager.Unexecuted.Select(r => new QuestViewModel(r)).ToList()); }
internal QuestsViewModel(GameInformationViewModel rpOwner) { r_Owner = rpOwner; var rQuestManager = KanColleGame.Current.Port.Quests; var rQuestManagerPCEL = PropertyChangedEventListener.FromSource(rQuestManager); rQuestManagerPCEL.Add(nameof(rQuestManager.IsLoaded), delegate { IsLoaded = true; OnPropertyChanged(nameof(IsLoaded)); }); rQuestManagerPCEL.Add(nameof(rQuestManager.Active), (s, e) => UpdateActiveQuests()); UpdateActiveQuests(); }
internal FleetsViewModel(GameInformationViewModel rpParent) { r_Parent = rpParent; KanColleGame.Current.Port.Fleets.FleetsUpdated += UpdateFleets; SessionService.Instance.Subscribe("api_req_hensei/change", r => SelectedFleet = Fleets[int.Parse(r.Parameters["api_id"]) - 1]); SessionService.Instance.Subscribe("api_req_hensei/preset_select", r => SelectedFleet = Fleets[int.Parse(r.Parameters["api_deck_id"]) - 1]); SessionService.Instance.Subscribe("api_req_kaisou/slotset", r => { Ship rShip; if (!KanColleGame.Current.Port.Ships.TryGetValue(int.Parse(r.Parameters["api_id"]), out rShip)) return; if (rShip.OwnerFleet != null) SelectedFleet = Fleets[rShip.OwnerFleet.ID - 1]; }); SessionService.Instance.Subscribe("api_req_map/start", r => SelectedFleet = Fleets[int.Parse(r.Parameters["api_deck_id"]) - 1]); }
internal FleetsViewModel(GameInformationViewModel rpParent) { r_Parent = rpParent; KanColleGame.Current.Port.Fleets.FleetsUpdated += UpdateFleets; ApiService.Subscribe("api_req_hensei/change", r => SelectedFleet = Fleets[int.Parse(r.Parameters["api_id"]) - 1]); ApiService.Subscribe("api_req_hensei/preset_select", r => SelectedFleet = Fleets[int.Parse(r.Parameters["api_deck_id"]) - 1]); ApiService.Subscribe("api_req_kaisou/slotset", r => { Ship rShip; if (!KanColleGame.Current.Port.Ships.TryGetValue(int.Parse(r.Parameters["api_id"]), out rShip)) { return; } if (rShip.OwnerFleet != null) { SelectedFleet = Fleets[rShip.OwnerFleet.ID - 1]; } }); ApiService.Subscribe("api_req_map/start", r => SelectedFleet = Fleets[int.Parse(r.Parameters["api_deck_id"]) - 1]); }
internal FleetsViewModel(GameInformationViewModel rpParent) { r_Parent = rpParent; KanColleGame.Current.Port.Fleets.FleetsUpdated += UpdateFleets; }