Add Population Target and more deriveds
This commit is contained in:
		@@ -1,7 +1,9 @@
 | 
			
		||||
using System.Collections.ObjectModel;
 | 
			
		||||
using System.Reactive.Disposables;
 | 
			
		||||
using System.Reactive.Linq;
 | 
			
		||||
using Microsoft.EntityFrameworkCore;
 | 
			
		||||
using ReactiveUI;
 | 
			
		||||
using ReactiveUI.SourceGenerators;
 | 
			
		||||
using StarsAssistant.Services;
 | 
			
		||||
using Splat;
 | 
			
		||||
 | 
			
		||||
@@ -21,6 +23,12 @@ public partial class PlayerPlanetViewModel : ViewModelBase
 | 
			
		||||
            throw new InvalidOperationException("PlayerPlanet ViewModels can only be created for player planets.");
 | 
			
		||||
 | 
			
		||||
        Planet = planet;
 | 
			
		||||
        PopulationTargetPercent = planet.PopulationTargetPercent;
 | 
			
		||||
 | 
			
		||||
        _populationTargetHelper = this
 | 
			
		||||
            .WhenAnyValue(vm => vm.PopulationTargetPercent)
 | 
			
		||||
            .Select(popTgt => this.MaxPopulation * popTgt / 10000 * 100)
 | 
			
		||||
            .ToProperty(this, vm => vm.PopulationTarget);
 | 
			
		||||
 | 
			
		||||
        this.WhenActivated((CompositeDisposable disposables) => 
 | 
			
		||||
        {
 | 
			
		||||
@@ -101,6 +109,9 @@ public partial class PlayerPlanetViewModel : ViewModelBase
 | 
			
		||||
 | 
			
		||||
    public int PctDamage => Planet.PctDamage ?? 0;
 | 
			
		||||
 | 
			
		||||
    [Reactive]
 | 
			
		||||
    private int _populationTargetPercent;
 | 
			
		||||
 | 
			
		||||
    #endregion
 | 
			
		||||
 | 
			
		||||
    #region Derived Properties
 | 
			
		||||
@@ -123,6 +134,9 @@ public partial class PlayerPlanetViewModel : ViewModelBase
 | 
			
		||||
 | 
			
		||||
    public int ResourcesFromFactories => GameEngine.ResourcesFromFactForPlayer(Population, Factories, Value);
 | 
			
		||||
 | 
			
		||||
    [ObservableAsProperty]
 | 
			
		||||
    private int _populationTarget;
 | 
			
		||||
 | 
			
		||||
    #endregion
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
		Reference in New Issue
	
	Block a user