public double GetProductionPoints(Citizen citizen, Company company)
        {
            var factory = new ProductionPointsCalculatorFactory()
                          .SetProductType(company.GetProducedProductType());

            var calculator = factory.Create();
            var args       = new ProductionPointsCalculateArgs(citizen, company, regionService, regionRepository);

            return(calculator.Calculate(args));
        }
        public double GetProductionPoints(ProductTypeEnum producedProduct, int hitPoints, double skill, double distance, int quality, int resourceQuality, double regionDevelopment, int peopleCount)
        {
            var factory = new ProductionPointsCalculatorFactory()
                          .SetProductType(producedProduct);

            var calculator = factory.Create();
            var args       = new ProductionPointsCalculateArgs()
            {
                Development     = regionDevelopment,
                Distance        = distance,
                PeopleCount     = peopleCount,
                ProducedProduct = producedProduct,
                Quality         = quality,
                ResourceQuality = resourceQuality,
                Skill           = skill,
                HitPoints       = hitPoints
            };

            return(calculator.Calculate(args));
        }
Beispiel #3
0
        public CompanyStatisticsViewModel(Company company, ICompanyService companyService, IRegionService regionService, IRegionRepository regionRepository)
        {
            var calculator = new ProductionPointsCalculatorFactory()
                             .SetProductType(company.GetProducedProductType())
                             .Create();

            var args = new ProductionPointsCalculateArgs(company, regionService, regionRepository)
            {
                Skill     = 4.0,
                Distance  = 0.0,
                HitPoints = 100
            };


            RawMultiplier       = Percentage.ConvertToPercent(calculator.CalculateRawMultiplier(args));
            QualityModifier     = Percentage.ConvertToPercent(calculator.CalculateQualityModifier(args));
            ProductionModifier  = Percentage.ConvertToPercent(calculator.CalculateProductModifier(args));
            DevelopmentModifier = Percentage.ConvertToPercent(calculator.CalculateDevelopmentModifier(args));
            PeopleModifier      = Percentage.ConvertToPercent(calculator.CalculatePeopleModifier(args));

            ShowRawMultiplier   = companyService.CanUseRawMultiplier(company);
            ShowQualityModifier = companyService.CanUseQualityModifier(company);
        }