Exemplo n.º 1
0
        public CellYieldLogic(
            IPossessionRelationship <IHexCell, IResourceNode> nodePositionCanon,
            IImprovementLocationCanon improvementLocationCanon,
            IPossessionRelationship <ICity, IHexCell> cellPossessionCanon,
            IPossessionRelationship <ICity, IBuilding> buildingPossessionCanon,
            ITechCanon techCanon,
            IFreshWaterLogic freshWaterCanon,
            IGoldenAgeCanon goldenAgeCanon,
            ICivilizationConfig civConfig,

            IInherentCellYieldLogic inherentYieldLogic,
            IResourceNodeYieldLogic nodeYieldLogic,
            IImprovementYieldLogic improvementYieldLogic,
            ICellYieldFromBuildingsLogic buildingYieldLogic
            )
        {
            NodePositionCanon        = nodePositionCanon;
            ImprovementLocationCanon = improvementLocationCanon;
            CellPossessionCanon      = cellPossessionCanon;
            BuildingPossessionCanon  = buildingPossessionCanon;
            TechCanon       = techCanon;
            FreshWaterCanon = freshWaterCanon;
            GoldenAgeCanon  = goldenAgeCanon;
            CivConfig       = civConfig;

            InherentYieldLogic    = inherentYieldLogic;
            NodeYieldLogic        = nodeYieldLogic;
            ImprovementYieldLogic = improvementYieldLogic;
            BuildingYieldLogic    = buildingYieldLogic;
        }
Exemplo n.º 2
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();
        }
 public void InjectDependencies(
     List <CivilizationDisplayBase> civilizationDisplays, CoreSignals coreSignals,
     IGameCore gameCore, UIStateMachineBrain brain, CitySummaryManager citySummaryManager,
     IPossessionRelationship <IHexCell, ICity> cityLocationCanon, ITechCanon techCanon,
     IExplorationCanon explorationCanon, VisibilitySignals visibilitySignals,
     IFreeGreatPeopleCanon freeGreatPeopleCanon, ICameraFocuser cameraFocuser,
     [Inject(Id = "Free Techs Display")] RectTransform freeTechsDisplay,
     [Inject(Id = "Play Mode Default Panels")] List <RectTransform> defaultPanels,
     [Inject(Id = "Free Great People Notification")] RectTransform freeGreatPeopleNotification
     )
 {
     CivilizationDisplays = civilizationDisplays;
     CoreSignals          = coreSignals;
     GameCore             = gameCore;
     Brain = brain;
     CitySummaryManager          = citySummaryManager;
     CityLocationCanon           = cityLocationCanon;
     TechCanon                   = techCanon;
     ExplorationCanon            = explorationCanon;
     VisibilitySignals           = visibilitySignals;
     FreeGreatPeopleCanon        = freeGreatPeopleCanon;
     CameraFocuser               = cameraFocuser;
     FreeTechsDisplay            = freeTechsDisplay;
     DefaultPanels               = defaultPanels;
     FreeGreatPeopleNotification = freeGreatPeopleNotification;
 }
Exemplo n.º 4
0
 public GainFreeTechAbilityHandler(
     IPossessionRelationship <ICivilization, IUnit> unitPossessionCanon, ITechCanon techCanon
     )
 {
     UnitPossessionCanon = unitPossessionCanon;
     TechCanon           = techCanon;
 }
 public UnitUpgradeLogic(
     [Inject(Id = "All Upgrade Lines")] IEnumerable <IUnitUpgradeLine> allUpgradeLines,
     ITechCanon techCanon
     )
 {
     AllUpgradeLines = allUpgradeLines;
     TechCanon       = techCanon;
 }
Exemplo n.º 6
0
 public SocialPolicyCanon(
     ITechCanon techCanon, CivilizationSignals civSignals,
     [Inject(Id = "Available Policy Trees")] IEnumerable <IPolicyTreeDefinition> availablePolicyTrees
     )
 {
     TechCanon            = techCanon;
     CivSignals           = civSignals;
     AvailablePolicyTrees = availablePolicyTrees;
 }
 public void InjectDependencies(
     ITechCanon techCanon, ICivilizationYieldLogic yieldLogic,
     DiContainer container
     )
 {
     TechCanon  = techCanon;
     YieldLogic = yieldLogic;
     Container  = container;
 }
Exemplo n.º 8
0
 public CellScorer(
     IYieldEstimator yieldEstimator, IMapScorer mapScorer, ITechCanon techCanon,
     IPossessionRelationship <IHexCell, IResourceNode> nodeLocationCanon
     )
 {
     YieldEstimator    = yieldEstimator;
     MapScorer         = mapScorer;
     TechCanon         = techCanon;
     NodeLocationCanon = nodeLocationCanon;
 }
Exemplo n.º 9
0
 public HomelandBalancer(
     IYieldEstimator yieldEstimator, ICellScorer cellScorer, ITechCanon techCanon,
     IWeightedRandomSampler <IBalanceStrategy> balanceStrategySampler
     )
 {
     YieldEstimator         = yieldEstimator;
     CellScorer             = cellScorer;
     TechCanon              = techCanon;
     BalanceStrategySampler = balanceStrategySampler;
 }
Exemplo n.º 10
0
        public VisibilityCanon(
            IGameCore gameCore, ITechCanon techCanon, VisibilitySignals visibilitySignals,
            HexCellSignals cellSignals
            )
        {
            GameCore          = gameCore;
            TechCanon         = techCanon;
            VisibilitySignals = visibilitySignals;

            cellSignals.MapBeingClearedSignal.Subscribe(unit => ClearCellVisibility());
        }
 public BuildingPossessionCanon(
     CitySignals citySignals, IResourceLockingCanon resourceLockingCanon,
     IPossessionRelationship <ICivilization, ICity> cityPossessionCanon,
     ITechCanon techCanon
     )
 {
     CitySignals          = citySignals;
     ResourceLockingCanon = resourceLockingCanon;
     CityPossessionCanon  = cityPossessionCanon;
     TechCanon            = techCanon;
 }
        public CivilizationFactory(
            DiContainer container, CivilizationSignals signals, ITechCanon techCanon,
            [InjectOptional(Id = "Civ Container")] Transform civContainer
            )
        {
            Container    = container;
            Signals      = signals;
            TechCanon    = techCanon;
            CivContainer = civContainer;

            signals.CivBeingDestroyed.Subscribe(OnCivilizationBeingDestroyed);
        }
Exemplo n.º 13
0
 public HillsBalanceStrategy(
     IYieldEstimator yieldEstimator, IMapScorer mapScorer,
     IPossessionRelationship <IHexCell, IResourceNode> nodeLocationCanon,
     ICellModificationLogic modLogic, ITechCanon techCanon
     )
 {
     YieldEstimator    = yieldEstimator;
     MapScorer         = mapScorer;
     NodeLocationCanon = nodeLocationCanon;
     ModLogic          = modLogic;
     TechCanon         = techCanon;
 }
Exemplo n.º 14
0
 public void InjectDependencies(
     IMapGenerationConfig config, IEnumerable <IMapTemplate> mapTemplates,
     IMapGenerator mapGenerator, [Inject(Id = "UI Animator")] Animator uiAnimator,
     ReadOnlyCollection <ICivilizationTemplate> civTemplates, ITechCanon techCanon
     )
 {
     MapGenerationConfig = config;
     MapTemplates        = mapTemplates;
     MapGenerator        = mapGenerator;
     UIAnimator          = uiAnimator;
     ValidCivTemplates   = civTemplates.Where(template => !template.IsBarbaric).ToList();
     TechCanon           = techCanon;
 }
Exemplo n.º 15
0
 public LakeBalanceStrategy(
     IHexGrid grid, IYieldEstimator yieldEstimator, IMapScorer mapScorer,
     IPossessionRelationship <IHexCell, IResourceNode> nodePositionCanon,
     ICellModificationLogic modLogic, ITechCanon techCanon
     )
 {
     Grid              = grid;
     YieldEstimator    = yieldEstimator;
     MapScorer         = mapScorer;
     NodePositionCanon = nodePositionCanon;
     ModLogic          = modLogic;
     TechCanon         = techCanon;
 }
Exemplo n.º 16
0
 public ResourceExtractionLogic(
     IPossessionRelationship <ICivilization, ICity> cityPossessionCanon,
     IPossessionRelationship <ICity, IHexCell> cellPossessionCanon,
     IPossessionRelationship <IHexCell, IResourceNode> nodePositionCanon,
     IImprovementLocationCanon improvementLocationCanon,
     ITechCanon techCanon
     )
 {
     CityPossessionCanon      = cityPossessionCanon;
     CellPossessionCanon      = cellPossessionCanon;
     NodePositionCanon        = nodePositionCanon;
     ImprovementLocationCanon = improvementLocationCanon;
     TechCanon = techCanon;
 }
 public OasisBalanceStrategy(
     IHexGrid grid, IYieldEstimator yieldEstimator, ITechCanon techCanon,
     IMapScorer mapScorer, ICellModificationLogic modLogic,
     IPossessionRelationship <IHexCell, IResourceNode> nodePositionCanon,
     IWeightedRandomSampler <IHexCell> cellRandomSampler
     )
 {
     Grid              = grid;
     YieldEstimator    = yieldEstimator;
     TechCanon         = techCanon;
     MapScorer         = mapScorer;
     ModLogic          = modLogic;
     NodePositionCanon = nodePositionCanon;
     CellRandomSampler = cellRandomSampler;
 }
        public void InjectDependencies(
            AbilityDisplayMemoryPool abilityDisplayPool, ITechCanon techCanon,
            IPossessionRelationship <ICivilization, IUnit> unitPossessionCanon,
            IAbilityExecuter abilityExecuter, UnitSignals unitSignals
            )
        {
            AbilityDisplayPool  = abilityDisplayPool;
            TechCanon           = techCanon;
            UnitPossessionCanon = unitPossessionCanon;
            AbilityExecuter     = abilityExecuter;


            unitSignals.StoppedMoving.Subscribe(CheckForRefreshCondition);
            unitSignals.SetUpForBombardment.Subscribe(CheckForRefreshCondition);
        }
Exemplo n.º 19
0
        public void InjectDependencies(
            ICivilizationYieldLogic yieldLogic, ITechCanon techCanon,
            CivilizationSignals signals, IGreatPersonCanon greatPersonCanon,
            IGreatPersonFactory greatPersonFactory, IGoldenAgeCanon goldenAgeCanon,
            ICivilizationHappinessLogic civHappinessLogic
            )
        {
            YieldLogic         = yieldLogic;
            TechCanon          = techCanon;
            Signals            = signals;
            GreatPersonCanon   = greatPersonCanon;
            GreatPersonFactory = greatPersonFactory;
            GoldenAgeCanon     = goldenAgeCanon;
            CivHappinessLogic  = civHappinessLogic;

            TechQueue = new Queue <ITechDefinition>();
        }
 public void InjectDependencies(IBuildingProductionValidityLogic buildingValidityLogic,
                                IUnitProductionValidityLogic unitValidityLogic, ITechCanon techCanon,
                                IPossessionRelationship <ICivilization, ICity> cityPossessionCanon,
                                IProductionProjectFactory projectFactory, DiContainer container,
                                List <IBuildingTemplate> allBuildingTemplates, IBuildingFactory buildingFactory,
                                CitySignals citySignals
                                )
 {
     BuildingValidityLogic = buildingValidityLogic;
     UnitValidityLogic     = unitValidityLogic;
     TechCanon             = techCanon;
     CityPossessionCanon   = cityPossessionCanon;
     ProjectFactory        = projectFactory;
     Container             = container;
     AllBuildingTemplates  = allBuildingTemplates;
     BuildingFactory       = buildingFactory;
     CitySignals           = citySignals;
 }
 public CivilizationComposer(
     ICivilizationFactory civilizationFactory, ITechCanon techCanon,
     ISocialPolicyComposer policyComposer, IExplorationCanon explorationCanon, IHexGrid grid,
     IFreeBuildingsCanon freeBuildingsCanon, List <IBuildingTemplate> availableBuildings,
     [Inject(Id = "Available Techs")] List <ITechDefinition> availableTechs,
     ReadOnlyCollection <ICivilizationTemplate> availableCivTemplates,
     IGoldenAgeCanon goldenAgeCanon, ICivDiscoveryCanon civDiscoveryCanon
     )
 {
     CivilizationFactory = civilizationFactory;
     TechCanon           = techCanon;
     PolicyComposer      = policyComposer;
     ExplorationCanon    = explorationCanon;
     Grid = grid;
     FreeBuildingsCanon    = freeBuildingsCanon;
     BuildingTemplates     = availableBuildings;
     AvailableTechs        = availableTechs;
     AvailableCivTemplates = availableCivTemplates;
     GoldenAgeCanon        = goldenAgeCanon;
     CivDiscoveryCanon     = civDiscoveryCanon;
 }
Exemplo n.º 22
0
 public YieldEstimator(
     IInherentCellYieldLogic inherentYieldLogic,
     IPossessionRelationship <IHexCell, IResourceNode> nodeLocationCanon,
     IResourceNodeYieldLogic nodeYieldLogic,
     IImprovementYieldLogic improvementYieldLogic,
     IFreshWaterLogic freshWaterCanon,
     ICellYieldFromBuildingsLogic yieldFromBuildingsLogic,
     ITechCanon techCanon,
     IImprovementValidityLogic improvementValidityLogic,
     IMapScorer mapScorer
     )
 {
     InherentYieldLogic      = inherentYieldLogic;
     NodeLocationCanon       = nodeLocationCanon;
     NodeYieldLogic          = nodeYieldLogic;
     ImprovementYieldLogic   = improvementYieldLogic;
     FreshWaterCanon         = freshWaterCanon;
     YieldFromBuildingsLogic = yieldFromBuildingsLogic;
     TechCanon = techCanon;
     ImprovementValidityLogic = improvementValidityLogic;
     MapScorer = mapScorer;
 }
 public void InjectDependencies(ICivilizationYieldLogic yieldLogic, ITechCanon techCanon)
 {
     YieldLogic = yieldLogic;
     TechCanon  = techCanon;
 }
Exemplo n.º 24
0
 public MapScorer(IMapGenerationConfig config, ITechCanon techCanon)
 {
     Config    = config;
     TechCanon = techCanon;
 }