public EconomicSimulator(IStarSystemRepository starSystemRepository, IEmpireRepository empireRepository, IDevelopmentCalculator developmentCalculator, IMilitaryCalculator militaryCalculator)
 {
     _starSystemRepository  = starSystemRepository;
     _empireRepository      = empireRepository;
     _developmentCalculator = developmentCalculator;
     _militaryCalculator    = militaryCalculator;
 }
Example #2
0
        public ProductionForEmpire()
        {
            _systems = new StarSystem[]
            {
                new StarSystem {
                    Development = 300.0
                },
                new StarSystem {
                    Development = 450.0
                },
                new StarSystem {
                    Development = 250.0
                },
                new StarSystem {
                    Development = 800.0
                },
                new StarSystem {
                    Development = 200.0
                }
            };

            _empire = new EmpireSystemsView
            {
                Empire = new Empire {
                    Alignment = new Alignment {
                        Power = 1.0
                    }
                },
                StarSystems = _systems
            };

            _militaryCalculator = new MilitaryCalculator(_configuration.Object, _random.Object);
        }
Example #3
0
 public MilitarySimulator(IMilitaryCalculator militaryCalculator, IWarRepository warRepository, IEconomicSimulator economicSimulator, IEmpireRepository empireRepository)
 {
     _militaryCalculator = militaryCalculator;
     _warRepository      = warRepository;
     _economicSimulator  = economicSimulator;
     _empireRepository   = empireRepository;
 }
Example #4
0
        public void ProductionIsNegativeIfDevelopmentCannotSustainCurrentMilitary()
        {
            _configuration.Setup(x => x.CapMilitaryProduction)
            .Returns(true);
            _militaryCalculator = new MilitaryCalculator(_configuration.Object, _random.Object);
            var militaryCap = 2000.0 * Parameters.MilitaryCapDevelopmentProportion;

            _empire.Empire.Military = militaryCap + 500.0;
            var result = _militaryCalculator.ProductionForEmpire(_empire);

            Assert.Equal(-500.0, result);
        }
Example #5
0
        public void ProductionIsCappedWhenConfiguredTo()
        {
            _configuration.Setup(x => x.CapMilitaryProduction)
            .Returns(true);
            _militaryCalculator = new MilitaryCalculator(_configuration.Object, _random.Object);
            var militaryCap = 2000.0 * Parameters.MilitaryCapDevelopmentProportion;

            _empire.Empire.Military = militaryCap;
            var result = _militaryCalculator.ProductionForEmpire(_empire);

            Assert.Equal(0.0, result);

            _empire.Empire.Military = militaryCap - 500.0;
            result = _militaryCalculator.ProductionForEmpire(_empire);
            Assert.Equal(500.0, result);
        }
Example #6
0
 public Combat()
 {
     _militaryCalculator = new MilitaryCalculator(_configuration.Object, _random.Object);
 }