示例#1
0
        public static async Task <IndependentResultStatsViewModel> CreateAsync(
            ObservableCalculator observableCalculator,
            CalculationNodeViewModelFactory nodeFactory)
        {
            var vm = new IndependentResultStatsViewModel(nodeFactory);
            await vm.InitializeAsync(new ExplicitlyRegisteredStatsObserver(observableCalculator));

            return(vm);
        }
        private ComputationViewModel(ObservableCalculator observableCalculator, ComputationSchedulerProvider schedulers)
        {
            _observableCalculator = observableCalculator;
            _nodeFactory          = new CalculationNodeViewModelFactory(observableCalculator, schedulers.Dispatcher);
            var modifierNodeFactory = new ModifierNodeViewModelFactory(observableCalculator, _nodeFactory);

            OffensiveStats = new ResultStatsViewModel(_nodeFactory, modifierNodeFactory);
            DefensiveStats = new ResultStatsViewModel(_nodeFactory, modifierNodeFactory);
        }
示例#3
0
        public AttributesInJewelRadiusViewModel(PassiveTreeDefinition tree, IBuilderFactories builders, ObservableCalculator calculator)
        {
            _tree       = tree;
            _builders   = builders;
            _calculator = calculator;

            _strengthStatBuilder     = new Lazy <IStatBuilder>(() => _builders.StatBuilders.Attribute.Strength);
            _dexterityStatBuilder    = new Lazy <IStatBuilder>(() => _builders.StatBuilders.Attribute.Dexterity);
            _intelligenceStatBuilder = new Lazy <IStatBuilder>(() => _builders.StatBuilders.Attribute.Intelligence);
        }
示例#4
0
        public static async Task <ComputationViewModel> CreateAsync(
            GameData gameData, IBuilderFactories builderFactories,
            ObservableCalculator observableCalculator, ComputationSchedulerProvider schedulers,
            ObservableSet <IReadOnlyList <Skill> > skills)
        {
            var vm = new ComputationViewModel(observableCalculator, schedulers);
            await vm.InitializeAsync(gameData, builderFactories, skills);

            return(vm);
        }
示例#5
0
        private static void SetupSut(
            NodeCollection <IStat> nodeCollection, ICollection <IStat> addedStats, ICollection <IStat> removedStats)
        {
            var observableCalculator = new ObservableCalculator(
                Mock.Of <ICalculator>(c => c.ExplicitlyRegisteredStats == nodeCollection),
                ImmediateScheduler.Instance);
            var sut = new ExplicitlyRegisteredStatsObserver(observableCalculator);

            sut.StatAdded   += (_, s) => addedStats.Add(s);
            sut.StatRemoved += (_, s) => removedStats.Add(s);
            sut.InitializeAsync(ImmediateScheduler.Instance).GetAwaiter().GetResult();
        }
        private async Task InitializeFields(IEnumerable <SkillNode> skillNodes)
        {
            _gameData.PassiveNodes = skillNodes;

            var computationFactory = new ComputationFactory(GameData);
            var calculator         = computationFactory.CreateCalculator();

            _builderFactories = await computationFactory.CreateBuilderFactoriesAsync();

            _parser = await computationFactory.CreateParserAsync();

            _schedulers  = new ComputationSchedulerProvider();
            _observables = new ComputationObservables(_parser);
            _calculator  = new ObservableCalculator(calculator, _schedulers.CalculationThread);
        }
示例#7
0
 public CalculationNodeViewModelFactory(ObservableCalculator calculator, IScheduler observerScheduler)
 => (_calculator, _observerScheduler) = (calculator, observerScheduler);
 public ModifierNodeViewModelFactory(ObservableCalculator calculator,
                                     CalculationNodeViewModelFactory nodeFactory)
 {
     _calculator  = calculator;
     _nodeFactory = nodeFactory;
 }
 private AbyssalSocketObserver(
     ObservableCalculator observableCalculator, IScheduler observeScheduler, IStat abyssalSocketsStat)
 => (_observableCalculator, _observeScheduler, _abyssalSocketsStat)
 public CalculationNodeViewModelFactory(
     ModifierNodeViewModelFactory modifierNodeFactory,
     ObservableCalculator calculator, IScheduler observerScheduler)
 => (_modifierNodeFactory, _calculator, _observerScheduler) =
 public ModifierNodeViewModelFactory(ObservableCalculator calculator)
 {
     _calculator = calculator;
 }