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(); }
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; }
public HomelandBalancer( IYieldEstimator yieldEstimator, ICellScorer cellScorer, ITechCanon techCanon, IWeightedRandomSampler <IBalanceStrategy> balanceStrategySampler ) { YieldEstimator = yieldEstimator; CellScorer = cellScorer; TechCanon = techCanon; BalanceStrategySampler = balanceStrategySampler; }
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; }