public AbilityExecuter(
     UnitSignals signals, List <IAbilityHandler> abilityHandlers
     )
 {
     Signals         = signals;
     AbilityHandlers = abilityHandlers;
 }
 public void InjectDependencies(
     [Inject(Id = "Unit To Control")] IUnit unitToControl, UnitSignals unitSignals
     )
 {
     UnitToControl = unitToControl;
     UnitSignals   = unitSignals;
 }
 public void InjectDependencies(
     List <UnitDisplayBase> displaysToManage,
     UIStateMachineBrain brain,
     ICombatExecuter combatExecuter,
     IUnitAttackOrderLogic attackOrderLogic,
     IUnitPositionCanon unitPositionCanon,
     IHexPathfinder hexPathfinder,
     ICellPathDrawer pathDrawer,
     CitySignals citySignals,
     UnitSignals unitSignals,
     HexCellSignals cellSignals,
     IHexCellOverlayManager overlayManager,
     [Inject(Id = "Combat Summary Display")] CombatSummaryDisplay combatSummaryDisplay,
     IPossessionRelationship <IHexCell, ICity> cityLocationCanon
     )
 {
     DisplaysToManage     = displaysToManage;
     Brain                = brain;
     CombatExecuter       = combatExecuter;
     AttackOrderLogic     = attackOrderLogic;
     UnitPositionCanon    = unitPositionCanon;
     HexPathfinder        = hexPathfinder;
     PathDrawer           = pathDrawer;
     CitySignals          = citySignals;
     UnitSignals          = unitSignals;
     CellSignals          = cellSignals;
     OverlayManager       = overlayManager;
     CombatSummaryDisplay = combatSummaryDisplay;
     CityLocationCanon    = cityLocationCanon;
 }
        public void CommonInstall()
        {
            AllCells.Clear();

            MockMeleeAttackValidityLogic  = new Mock <IMeleeAttackValidityLogic>();
            MockRangedAttackValidityLogic = new Mock <IRangedAttackValidityLogic>();
            MockUnitPositionCanon         = new Mock <IUnitPositionCanon>();
            MockGrid                       = new Mock <IHexGrid>();
            MockCombatInfoLogic            = new Mock <ICombatInfoLogic>();
            MockHexPathfinder              = new Mock <IHexPathfinder>();
            MockCommonCombatExecutionLogic = new Mock <ICommonCombatExecutionLogic>();

            MockGrid.Setup(grid => grid.Cells).Returns(AllCells.AsReadOnly());

            Container.Bind <IMeleeAttackValidityLogic>  ().FromInstance(MockMeleeAttackValidityLogic.Object);
            Container.Bind <IRangedAttackValidityLogic> ().FromInstance(MockRangedAttackValidityLogic.Object);
            Container.Bind <IUnitPositionCanon>         ().FromInstance(MockUnitPositionCanon.Object);
            Container.Bind <IHexGrid>                   ().FromInstance(MockGrid.Object);
            Container.Bind <ICombatInfoLogic>           ().FromInstance(MockCombatInfoLogic.Object);
            Container.Bind <IHexPathfinder>             ().FromInstance(MockHexPathfinder.Object);
            Container.Bind <ICommonCombatExecutionLogic>().FromInstance(MockCommonCombatExecutionLogic.Object);

            UnitSignals = new UnitSignals();

            Container.Bind <UnitSignals>().FromInstance(UnitSignals);

            Container.Bind <CombatExecuter>().AsSingle();
        }
 public void InjectDependencies(
     IUnitConfig config, IUnitExperienceLogic unitExperienceLogic,
     UnitSignals signals
     )
 {
     Config = config;
     UnitExperienceLogic = unitExperienceLogic;
     Signals             = signals;
 }
        public VisibilityResponder(
            IPossessionRelationship <ICivilization, IUnit> unitPossessionCanon,
            IPossessionRelationship <ICivilization, ICity> cityPossessionCanon,
            IVisibilityCanon visibilityCanon, IExplorationCanon explorationCanon,
            ICityLineOfSightLogic cityLineOfSightLogic,
            IUnitVisibilityLogic unitLineOfSightLogic,
            IUnitFactory unitFactory,
            ICityFactory cityFactory,
            IHexGrid grid,
            [Inject(Id = "Coroutine Invoker")] MonoBehaviour coroutineInvoker,
            IHexCellShaderData hexCellShaderData,
            UnitSignals unitSignals,
            CitySignals citySignals,
            HexCellSignals cellSignals,
            CivilizationSignals civSignals,
            VisibilitySignals visibilitySignals,
            CoreSignals coreSignals,
            MapRenderingSignals mapRenderingSignals
            )
        {
            UnitPossessionCanon  = unitPossessionCanon;
            CityPossessionCanon  = cityPossessionCanon;
            VisibilityCanon      = visibilityCanon;
            ExplorationCanon     = explorationCanon;
            CityLineOfSightLogic = cityLineOfSightLogic;
            UnitLineOfSightLogic = unitLineOfSightLogic;
            UnitFactory          = unitFactory;
            CityFactory          = cityFactory;
            Grid              = grid;
            CoroutineInvoker  = coroutineInvoker;
            HexCellShaderData = hexCellShaderData;

            unitSignals.LeftLocation.Subscribe(OnUnitLeftLocation);
            unitSignals.EnteredLocation.Subscribe(OnUnitEnteredLocation);

            citySignals.LostCellFromBoundaries.Subscribe(OnCityLostCell);
            citySignals.GainedCellToBoundaries.Subscribe(OnCityGainedCell);

            cellSignals.TerrainChanged.Subscribe(data => TryResetCellVisibility());
            cellSignals.ShapeChanged.Subscribe(data => TryResetCellVisibility());
            cellSignals.VegetationChanged.Subscribe(data => TryResetCellVisibility());

            civSignals.CivLosingCity.Subscribe(OnCivLosingCity);
            civSignals.CivGainedCity.Subscribe(OnCivGainedCity);
            civSignals.CivDiscoveredTech.Subscribe(data => TryResetResourceVisibility());
            civSignals.CivUndiscoveredTech.Subscribe(data => TryResetResourceVisibility());

            visibilitySignals.CellVisibilityModeChanged.Subscribe(unit => TryResetCellVisibility());
            visibilitySignals.CellExplorationModeChanged.Subscribe(unit => TryResetCellVisibility());
            visibilitySignals.ResourceVisibilityModeChanged.Subscribe(unit => TryResetResourceVisibility());

            coreSignals.ActivePlayerChanged.Subscribe(OnActivePlayerChanged);

            mapRenderingSignals.MapFinishedLoading.Subscribe(Unit => TryResetCellVisibility());
            mapRenderingSignals.MapFinishedLoading.Subscribe(Unit => TryResetResourceVisibility());
        }
예제 #7
0
        public UnitExperienceLogic(
            IUnitConfig config, IUnitModifiers unitModifiers, UnitSignals unitSignals
            )
        {
            Config        = config;
            UnitModifiers = unitModifiers;

            unitSignals.MeleeCombatWithUnit.Subscribe(OnMeleeCombat);
            unitSignals.RangedCombatWithUnit.Subscribe(OnRangedCombat);
        }
 public void InjectDependencies(
     IUnitExperienceLogic experienceLogic, IUnitPromotionLogic unitPromotionLogic,
     UnitSignals unitSignals, DiContainer container
     )
 {
     UnitExperienceLogic = experienceLogic;
     UnitPromotionLogic  = unitPromotionLogic;
     UnitSignals         = unitSignals;
     Container           = container;
 }
예제 #9
0
        public UnitPossessionCanon(
            IResourceLockingCanon resourceLockingCanon, CivilizationSignals civSignals,
            UnitSignals unitSignals
            )
        {
            ResourceLockingCanon = resourceLockingCanon;
            CivSignals           = civSignals;
            UnitSignals          = unitSignals;

            civSignals.CivBeingDestroyed.Subscribe(OnCivilizationBeingDestroyed);
        }
예제 #10
0
        public GoldRaidingLogic(
            IPossessionRelationship <ICivilization, IUnit> unitPossessionLogic,
            ICivModifiers civModifiers, UnitSignals signals
            )
        {
            UnitPossessionLogic = unitPossessionLogic;
            CivModifiers        = civModifiers;

            signals.MeleeCombatWithUnit.Subscribe(OnMeleeCombatWithUnit);
            signals.RangedCombatWithUnit.Subscribe(HandleBounty);
        }
        public void CommonInstall()
        {
            MockResourceLockingCanon = new Mock <IResourceLockingCanon>();
            CivSignals  = new CivilizationSignals();
            UnitSignals = new UnitSignals();

            Container.Bind <IResourceLockingCanon>().FromInstance(MockResourceLockingCanon.Object);
            Container.Bind <CivilizationSignals>  ().FromInstance(CivSignals);
            Container.Bind <UnitSignals>          ().FromInstance(UnitSignals);

            Container.Bind <UnitPossessionCanon>().AsSingle();
        }
예제 #12
0
 public GreatMilitaryPointGainLogic(
     IGreatPersonCanon greatPersonCanon, ICivilizationConfig civConfig,
     IPossessionRelationship <ICivilization, IUnit> unitPossessionCanon,
     UnitSignals unitSignals, ICivModifiers civModifiers
     )
 {
     GreatPersonCanon    = greatPersonCanon;
     CivConfig           = civConfig;
     UnitPossessionCanon = unitPossessionCanon;
     UnitSignals         = unitSignals;
     CivModifiers        = civModifiers;
 }
 public void InjectDependencies(
     UnitEditingPanel unitEditingPanel, UIStateMachineBrain brain,
     IUnitPositionCanon unitPositionCanon, UnitSignals unitSignals,
     HexCellSignals cellSignals
     )
 {
     UnitEditingPanel  = unitEditingPanel;
     Brain             = brain;
     UnitPositionCanon = unitPositionCanon;
     UnitSignals       = unitSignals;
     CellSignals       = cellSignals;
 }
        public void CommonInstall()
        {
            AllAbilityHandlers.Clear();

            UnitSignals = new UnitSignals();

            Container.Bind <List <IAbilityHandler> >().FromInstance(AllAbilityHandlers);

            Container.Bind <UnitSignals>().FromInstance(UnitSignals);

            Container.Bind <AbilityExecuter>().AsSingle();
        }
 public void InjectDependencies(
     ICivilizationFactory civilizationFactory, IUnitFactory unitFactory, HexCellSignals cellSignals,
     [Inject(Id = "Available Unit Templates")] IEnumerable <IUnitTemplate> availableTemplates,
     IUnitPositionCanon unitPositionCanon, UnitSignals unitSignals
     )
 {
     CivilizationFactory = civilizationFactory;
     UnitFactory         = unitFactory;
     CellSignals         = cellSignals;
     AvailableTemplates  = availableTemplates.ToList();
     UnitPositionCanon   = unitPositionCanon;
     UnitSignals         = unitSignals;
 }
        public EncampmentClearingResponder(
            UnitSignals unitSignals, IPossessionRelationship <ICivilization, IUnit> unitPossessionCanon,
            IEncampmentLocationCanon encampmentLocationCanon, IEncampmentFactory encampmentFactory,
            IBarbarianConfig barbarianConfig, ICivModifiers civModifiers
            )
        {
            unitSignals.EnteredLocation.Subscribe(OnUnitEnteredLocation);

            UnitPossessionCanon     = unitPossessionCanon;
            EncampmentLocationCanon = encampmentLocationCanon;
            EncampmentFactory       = encampmentFactory;
            BarbarianConfig         = barbarianConfig;
            CivModifiers            = civModifiers;
        }
예제 #17
0
 public CombatExecuter(
     IMeleeAttackValidityLogic meleeAttackValidityLogic, IRangedAttackValidityLogic rangedAttackValidityLogic,
     IUnitPositionCanon unitPositionCanon, IHexGrid grid, ICombatInfoLogic combatModifierLogic, UnitSignals unitSignals,
     IHexPathfinder hexPathfinder, ICommonCombatExecutionLogic commonCombatExecutionLogic
     )
 {
     MeleeAttackValidityLogic  = meleeAttackValidityLogic;
     RangedAttackValidityLogic = rangedAttackValidityLogic;
     UnitPositionCanon         = unitPositionCanon;
     Grid                       = grid;
     CombatInfoLogic            = combatModifierLogic;
     UnitSignals                = unitSignals;
     HexPathfinder              = hexPathfinder;
     CommonCombatExecutionLogic = commonCombatExecutionLogic;
 }
        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);
        }
        public void CommonInstall()
        {
            MockUnitPossessionCanon = new Mock <IPossessionRelationship <ICivilization, IUnit> >();
            MockCivModifiers        = new Mock <ICivModifiers>();
            UnitSignals             = new UnitSignals();

            MockGoldBountyPerProductionModifier = new Mock <ICivModifier <float> >();

            MockCivModifiers.Setup(modifiers => modifiers.GoldBountyPerProduction).Returns(MockGoldBountyPerProductionModifier.Object);

            Container.Bind <IPossessionRelationship <ICivilization, IUnit> >().FromInstance(MockUnitPossessionCanon.Object);
            Container.Bind <ICivModifiers>                                ().FromInstance(MockCivModifiers.Object);
            Container.Bind <UnitSignals>                                  ().FromInstance(UnitSignals);

            Container.Bind <GoldRaidingLogic>().AsSingle().NonLazy();
        }
 private void InjectDependencies(
     IUnitFactory unitFactory, IUnitPositionCanon unitPositionCanon, UnitMapIcon.Pool iconPool,
     UnitIconSlot.Pool iconSlotPool, IVisibilityCanon visibilityCanon, UnitSignals unitSignals,
     IPossessionRelationship <ICivilization, IUnit> unitPossessionCanon,
     VisibilitySignals visibilitySignals, IMapRenderConfig hexMapRenderConfig
     )
 {
     UnitFactory         = unitFactory;
     UnitPositionCanon   = unitPositionCanon;
     IconPool            = iconPool;
     IconSlotPool        = iconSlotPool;
     VisibilityCanon     = visibilityCanon;
     UnitPossessionCanon = unitPossessionCanon;
     UnitSignals         = unitSignals;
     VisibilitySignals   = visibilitySignals;
     HexMapRenderConfig  = hexMapRenderConfig;
 }
예제 #21
0
        public UIStateMachineBrain(
            [Inject(Id = "UI Animator")] Animator animator, CompositeCitySignals compositeCitySignals,
            CompositeUnitSignals compositeUnitSignals, PlayerSignals playerSignals, IGameCamera gameCamera,
            DescriptionTooltip descriptionTooltip, CellHoverDisplay cellHoverDisplay,
            CivilizationSignals civSignals, CoreSignals coreSignals, UnitSignals unitSignals
            )
        {
            Animator             = animator;
            CompositeCitySignals = compositeCitySignals;
            CompositeUnitSignals = compositeUnitSignals;
            PlayerSignals        = playerSignals;
            GameCamera           = gameCamera;
            DescriptionTooltip   = descriptionTooltip;
            CellHoverDisplay     = cellHoverDisplay;
            CivSignals           = civSignals;
            UnitSignals          = unitSignals;

            coreSignals.TurnBegan.Subscribe(OnTurnBegan);
        }
        public void CommonInstall()
        {
            MockGreatPersonCanon    = new Mock <IGreatPersonCanon>();
            MockCivConfig           = new Mock <ICivilizationConfig>();
            MockUnitPossessionCanon = new Mock <IPossessionRelationship <ICivilization, IUnit> >();
            MockCivModifiers        = new Mock <ICivModifiers>();
            UnitSignals             = new UnitSignals();

            MockGreatMilitaryGainSpeed = new Mock <ICivModifier <float> >();

            MockCivModifiers.Setup(modifiers => modifiers.GreatMilitaryGainSpeed).Returns(MockGreatMilitaryGainSpeed.Object);

            Container.Bind <IGreatPersonCanon>                            ().FromInstance(MockGreatPersonCanon.Object);
            Container.Bind <ICivilizationConfig>                          ().FromInstance(MockCivConfig.Object);
            Container.Bind <IPossessionRelationship <ICivilization, IUnit> >().FromInstance(MockUnitPossessionCanon.Object);
            Container.Bind <ICivModifiers>                                ().FromInstance(MockCivModifiers.Object);
            Container.Bind <UnitSignals>                                  ().FromInstance(UnitSignals);

            Container.Bind <GreatMilitaryPointGainLogic>().AsSingle();
        }
예제 #23
0
 public void InjectDependencies(
     UnitSignals unitSignals, HexCellSignals cellSignals, CitySignals citySignals,
     IUnitPositionCanon unitPositionCanon, ICombatExecuter combatExecuter,
     UIStateMachineBrain brain, IPossessionRelationship <IHexCell, ICity> cityLocationCanon,
     [Inject(Id = "Ranged Attack State Displays")] List <UnitDisplayBase> displaysToManage,
     [Inject(Id = "Combat Summary Display")] CombatSummaryDisplay combatSummaryDisplay,
     IHexCellOverlayManager overlayManager
     )
 {
     UnitSignals          = unitSignals;
     CellSignals          = cellSignals;
     CitySignals          = citySignals;
     UnitPositionCanon    = unitPositionCanon;
     CombatExecuter       = combatExecuter;
     Brain                = brain;
     CityLocationCanon    = cityLocationCanon;
     DisplaysToManage     = displaysToManage;
     CombatSummaryDisplay = combatSummaryDisplay;
     OverlayManager       = overlayManager;
 }
예제 #24
0
        public void CommonInstall()
        {
            UnitSignals                 = new UnitSignals();
            MockUnitPossessionCanon     = new Mock <IPossessionRelationship <ICivilization, IUnit> >();
            MockEncampmentLocationCanon = new Mock <IEncampmentLocationCanon>();
            MockEncampmentFactory       = new Mock <IEncampmentFactory>();
            MockBarbarianConfig         = new Mock <IBarbarianConfig>();
            MockCivModifiers            = new Mock <ICivModifiers>();

            MockGoldBountyFromEncampments = new Mock <ICivModifier <float> >();

            MockCivModifiers.Setup(modifiers => modifiers.GoldBountyFromEncampments).Returns(MockGoldBountyFromEncampments.Object);

            Container.Bind <UnitSignals>                                  ().FromInstance(UnitSignals);
            Container.Bind <IPossessionRelationship <ICivilization, IUnit> >().FromInstance(MockUnitPossessionCanon.Object);
            Container.Bind <IEncampmentLocationCanon>                     ().FromInstance(MockEncampmentLocationCanon.Object);
            Container.Bind <IEncampmentFactory>                           ().FromInstance(MockEncampmentFactory.Object);
            Container.Bind <IBarbarianConfig>                             ().FromInstance(MockBarbarianConfig.Object);
            Container.Bind <ICivModifiers>                                ().FromInstance(MockCivModifiers.Object);

            Container.Bind <EncampmentClearingResponder>().AsSingle();
        }
 public void InjectDependencies(UnitSignals unitSignals)
 {
     UnitSignals = unitSignals;
 }
예제 #26
0
 public void InjectDependencies(UnitSignals signals)
 {
     Signals = signals;
 }
예제 #27
0
 private void InjectDependencies(UnitSignals unitSignals)
 {
     UnitSignals = unitSignals;
 }