Ejemplo n.º 1
0
        public ResourceBalanceStrategy(
            IYieldEstimator yieldEstimator, IResourceNodeFactory resourceNodeFactory,
            IResourceRestrictionLogic resourceRestrictionCanon, ICellScorer cellScorer, ITechCanon techCanon,
            IStrategicCopiesLogic strategicCopiesLogic, IWeightedRandomSampler <IHexCell> cellRandomSampler,
            [Inject(Id = "Available Resources")] IEnumerable <IResourceDefinition> availableResources,
            IWeightedRandomSampler <IResourceDefinition> resourceRandomSampler
            )
        {
            YieldEstimator           = yieldEstimator;
            ResourceNodeFactory      = resourceNodeFactory;
            ResourceRestrictionCanon = resourceRestrictionCanon;
            CellScorer            = cellScorer;
            TechCanon             = techCanon;
            StrategicCopiesLogic  = strategicCopiesLogic;
            CellRandomSampler     = cellRandomSampler;
            ResourceRandomSampler = resourceRandomSampler;

            foreach (var yieldType in EnumUtil.GetValues <YieldType>())
            {
                BonusResourcesWithYield[yieldType] = availableResources.Where(
                    resource => resource.Type == ResourceType.Bonus &&
                    YieldEstimator.GetYieldEstimateForResource(resource)[yieldType] > 0f
                    ).ToArray();
            }

            ScoreIncreasingCandidates = availableResources.Where(resource => resource.Type != ResourceType.Luxury).ToList();
        }
Ejemplo n.º 2
0
 public JungleBalanceStrategy(
     IHexGrid grid, ICellModificationLogic modLogic, ICellScorer cellScorer
     )
 {
     Grid       = grid;
     ModLogic   = modLogic;
     CellScorer = cellScorer;
 }
 public MountainBalanceStrategy(
     ICellModificationLogic modLogic, ICellScorer cellScorer,
     IPossessionRelationship <IHexCell, IResourceNode> nodeLocationCanon
     )
 {
     ModLogic          = modLogic;
     CellScorer        = cellScorer;
     NodeLocationCanon = nodeLocationCanon;
 }
Ejemplo n.º 4
0
 public HomelandBalancer(
     IYieldEstimator yieldEstimator, ICellScorer cellScorer, ITechCanon techCanon,
     IWeightedRandomSampler <IBalanceStrategy> balanceStrategySampler
     )
 {
     YieldEstimator         = yieldEstimator;
     CellScorer             = cellScorer;
     TechCanon              = techCanon;
     BalanceStrategySampler = balanceStrategySampler;
 }
Ejemplo n.º 5
0
 public StartingUnitPlacementLogic(
     IHexGrid grid, IUnitFactory unitFactory, ICellScorer cellScorer,
     IUnitPositionCanon unitPositionCanon, ICityConfig cityConfig
     )
 {
     Grid              = grid;
     UnitFactory       = unitFactory;
     CellScorer        = cellScorer;
     UnitPositionCanon = unitPositionCanon;
     CityConfig        = cityConfig;
 }
 public ExpandOceanBalanceStrategy(
     ICellModificationLogic modLogic, IPossessionRelationship <IHexCell, IResourceNode> nodeLocationCanon,
     ICellScorer cellScorer, IRiverCanon riverCanon, IHexGrid grid
     )
 {
     ModLogic          = modLogic;
     NodeLocationCanon = nodeLocationCanon;
     CellScorer        = cellScorer;
     RiverCanon        = riverCanon;
     Grid = grid;
 }