コード例 #1
0
        public MainViewModel()
        {
            var adjustmentFactory = new ResourceAdjustmentFactory();

            _commandFactory = new DelegateCommandFactory();

            _woodCache = new ObservableResourceCache(new ResourceCache(), () =>
            {
                NotifyPropertyChanged(nameof(Wood));
                NotifyPropertyChanged(nameof(Lumbermill));
            });
            Lumbermill = new Lumbermill(_woodCache, adjustmentFactory);

            Increment = _commandFactory.CreateFor(
                () => _woodCache.Apply(adjustmentFactory.CreateIncreaseEqualTo(1)));
            UpgradeLumbermill = _commandFactory.CreateFor(Lumbermill.Upgrade);

            _loop       = new GameLoop(ticksPerSecond: 100);
            _loop.Tick += (tickDuration) =>
            {
                Lumbermill.Generate(tickDuration);
            };
            _loop.Start();

            _woodCache.Apply(adjustmentFactory.CreateIncreaseEqualTo(20));
        }
コード例 #2
0
            public void ReturnsAdjustmentWithCorrectQuantity(decimal inputQuantity, decimal resultQuantity)
            {
                var resourceAdjustmentFactory = new ResourceAdjustmentFactory();

                var adjustment = resourceAdjustmentFactory.CreateDecreaseEqualTo(inputQuantity);

                Assert.That(adjustment.Quantity, Is.EqualTo(resultQuantity));
            }
コード例 #3
0
 public Lumbermill(IResourceCache resourceCache, ResourceAdjustmentFactory adjustmentFactory)
 {
     _adjustmentFactory = adjustmentFactory;
     _resourceCache     = resourceCache;
     Level = 0;
 }