public void InjectDependencies(
     IUnitConfig config, IUnitExperienceLogic unitExperienceLogic,
     UnitSignals signals
     )
 {
     Config = config;
     UnitExperienceLogic = unitExperienceLogic;
     Signals             = signals;
 }
Exemplo n.º 2
0
 public DestructionPostCombatResponder(
     IUnitPositionCanon unitPositionCanon, IUnitConfig unitConfig,
     IPossessionRelationship <ICivilization, IUnit> unitPossessionCanon
     )
 {
     UnitPositionCanon   = unitPositionCanon;
     UnitConfig          = unitConfig;
     UnitPossessionCanon = unitPossessionCanon;
 }
Exemplo n.º 3
0
        public UnitExperienceLogic(
            IUnitConfig config, IUnitModifiers unitModifiers, UnitSignals unitSignals
            )
        {
            Config        = config;
            UnitModifiers = unitModifiers;

            unitSignals.MeleeCombatWithUnit.Subscribe(OnMeleeCombat);
            unitSignals.RangedCombatWithUnit.Subscribe(OnRangedCombat);
        }
        public GreatPersonCanon(
            ICivilizationConfig civConfig, IUnitConfig unitConfig,
            CivilizationSignals civSignals
            )
        {
            CivConfig  = civConfig;
            UnitConfig = unitConfig;

            civSignals.GreatPersonBorn.Subscribe(OnGreatPersonBorn);
        }
 public CombatAuraLogic(
     IUnitConfig unitConfig, IUnitPositionCanon unitPositionCanon,
     IPossessionRelationship <ICivilization, IUnit> unitPossessionCanon,
     IHexGrid grid
     )
 {
     UnitConfig          = unitConfig;
     UnitPositionCanon   = unitPositionCanon;
     UnitPossessionCanon = unitPossessionCanon;
     Grid = grid;
 }
Exemplo n.º 6
0
 public GreatPersonFactory(
     ICapitalCityCanon capitalCityCanon, IPossessionRelationship <IHexCell, ICity> cityLocationCanon,
     IUnitFactory unitFactory, IUnitConfig unitConfig, IHexGrid grid, CivilizationSignals civSignals
     )
 {
     CapitalCityCanon  = capitalCityCanon;
     CityLocationCanon = cityLocationCanon;
     UnitFactory       = unitFactory;
     UnitConfig        = unitConfig;
     Grid       = grid;
     CivSignals = civSignals;
 }
Exemplo n.º 7
0
        public void InjectDependencies(
            IUnitConfig config, UnitSignals signals, IUnitPositionCanon positionCanon,
            IHexGrid grid, IPromotionParser promotionParser
            )
        {
            Config          = config;
            Signals         = signals;
            PositionCanon   = positionCanon;
            Grid            = grid;
            PromotionParser = promotionParser;

            signals.GainedNewOwner.Subscribe(OnUnitGainedNewOwner);
        }
Exemplo n.º 8
0
        public UnitFactory(
            DiContainer container, IUnitPositionCanon unitPositionCanon,
            IPossessionRelationship <ICivilization, IUnit> unitPossessionCanon,
            [Inject(Id = "Unit Container")] Transform unitContainer,
            IUnitConfig unitConfig, UnitSignals signals
            )
        {
            Container           = container;
            UnitPositionCanon   = unitPositionCanon;
            UnitPossessionCanon = unitPossessionCanon;
            UnitContainer       = unitContainer;
            UnitConfig          = unitConfig;
            UnitSignals         = signals;

            signals.BeingDestroyed.Subscribe(OnUnitBeingDestroyed);
        }
 public UnitHealingLogic(
     IUnitConfig unitConfig, IPromotionParser promotionParser,
     IUnitPositionCanon unitPositionCanon,
     IPossessionRelationship <ICivilization, IUnit> unitPossessionCanon,
     IPossessionRelationship <IHexCell, ICity> cityLocationCanon,
     ICivilizationTerritoryLogic civTerritoryLogic, IHexGrid grid
     )
 {
     UnitConfig          = unitConfig;
     PromotionParser     = promotionParser;
     UnitPositionCanon   = unitPositionCanon;
     UnitPossessionCanon = unitPossessionCanon;
     CityLocationCanon   = cityLocationCanon;
     CivTerritoryLogic   = civTerritoryLogic;
     Grid = grid;
 }
Exemplo n.º 10
0
 public CombatInfoLogic(
     IUnitConfig config, IRiverCanon riverCanon,
     IImprovementLocationCanon improvementLocationCanon,
     IPossessionRelationship <ICivilization, IUnit> unitPossessionCanon,
     ICivilizationHappinessLogic civilizationHappinessLogic,
     ICivilizationConfig civConfig, IUnitFortificationLogic fortificationLogic,
     ICombatAuraLogic combatAuraLogic, ICityCombatModifierLogic cityCombatModifierLogic
     )
 {
     UnitConfig = config;
     RiverCanon = riverCanon;
     ImprovementLocationCanon   = improvementLocationCanon;
     UnitPossessionCanon        = unitPossessionCanon;
     CivilizationHappinessLogic = civilizationHappinessLogic;
     CivConfig               = civConfig;
     FortificationLogic      = fortificationLogic;
     CombatAuraLogic         = combatAuraLogic;
     CityCombatModifierLogic = cityCombatModifierLogic;
 }
Exemplo n.º 11
0
        /// <summary>
        /// Наполнение префаба данными
        /// </summary>
        /// <param name="prefab">Объект префаба</param>
        /// <param name="configObject">Объект конфигурационного файла</param>
        /// <typeparam name="T">Тип конфигурационного файла</typeparam>
        private void FillPrefabWithData <T>(GameObject prefab, T configObject)
        {
            var hpComponent     = prefab.GetComponent <HPComponent>();
            var speedComponent  = prefab.GetComponent <SpeedComponent>();
            var attackComponent = prefab.GetComponent <AttackComponent>();
            var costComponent   = prefab.GetComponent <CostComponent>();
            var visionComponent = prefab.GetComponent <VisionComponent>();

            if (typeof(T) == typeof(IBuildingConfig))
            {
                IBuildingConfig buildingConfig = (IBuildingConfig)configObject;
                //TODO заполнить для зданий, когда появятся необходимые компоненты
            }

            if (typeof(T) == typeof(IUnitConfig))
            {
                IUnitConfig unitConfig = (IUnitConfig)configObject;

                if (hpComponent != null)
                {
                    hpComponent.MaxHP = (int)unitConfig.Hp;
                }
                if (speedComponent != null)
                {
                    speedComponent.MaxSpeed = unitConfig.Speed;
                }
                if (attackComponent != null)
                {
                    attackComponent.MinDamage   = (int)unitConfig.MinAttack;
                    attackComponent.MaxDamage   = (int)unitConfig.MaxAttack;
                    attackComponent.AttackDelay = (int)unitConfig.AttackSpeed;
                }
                if (costComponent != null)
                {
                    costComponent.Gold = (int)unitConfig.Cost;
                }
                if (visionComponent != null)
                {
                    visionComponent.AttackRange = unitConfig.MaxDistance;
                }
            }
        }
Exemplo n.º 12
0
        public UnitFortificationLogic(IUnitConfig unitConfig, CoreSignals coreSignals)
        {
            UnitConfig = unitConfig;

            coreSignals.RoundBegan.Subscribe(OnRoundBegan);
        }
Exemplo n.º 13
0
 public static DirectionalTexture GetDirectionalTexture(this IUnitConfig unitConfig)
 {
     return(new DirectionalTexture(unitConfig.TextureNorthEast, unitConfig.TextureSouthEast, unitConfig.TextureSouthWest, unitConfig.TextureNorthWest));
 }
Exemplo n.º 14
0
 public CombatCalculator(IUnitConfig unitConfig)
 {
     UnitConfig = unitConfig;
 }