bind fleet summaries, fixup fleet post processing

This commit is contained in:
2024-10-13 22:26:29 +02:00
parent d32ecdcead
commit 5a933d7aea
6 changed files with 55 additions and 10 deletions

View File

@ -2,6 +2,7 @@ using System.Collections.ObjectModel;
using System.Reactive.Disposables;
using System.Reactive.Linq;
using Microsoft.EntityFrameworkCore;
using DynamicData;
using ReactiveUI;
using ReactiveUI.SourceGenerators;
using StarsAssistant.Services;
@ -55,8 +56,24 @@ public partial class PlayerPlanetViewModel : ViewModelBase
.Select(remMines => Math.Max(0, GameEngine.MaxOperableMinesForPlayer(_populationTarget, Value) - Mines))
.ToProperty(this, vm => vm.RemainingMines);
FleetManager fm = Locator.Current.GetService<FleetManager>()!;
var fleetSummaryChanges = fm.FleetSummaries
.Connect()
.Watch(Name)
.Log(this, "fleetSummaryChange", change => $"{Name}: {change.Reason}: {change.Previous} => {change.Current}")
;
_populationEnRouteHelper = fleetSummaryChanges
.Select(change => change.Reason != ChangeReason.Remove ? change.Current.TotalColonists : 0)
.Log(this, "PopulationEnRoute", pop => $"{Name}: {pop}")
.ToProperty(this, vm => vm.PopulationEnRoute)
;
this.WhenActivated((CompositeDisposable disposables) =>
{
disposables.Add(_populationEnRouteHelper);
// /* handle activation */
// Disposable
// .Create(() => { /* handle deactivation */ })
@ -185,6 +202,9 @@ public partial class PlayerPlanetViewModel : ViewModelBase
[ObservableAsProperty]
private int _remainingMines;
[ObservableAsProperty]
private int _populationEnRoute;
#endregion
#region Helper functions