コード例 #1
0
        public void initialize(BattleBuildingRecord info, BattleConfiguration configuration)
        {
            _record       = configuration.buildingRecords.GetByBuildingId(info.id, info.race);
            _battleRecord = info;

            setOwnerId(info.ownerId);
            transform.setFromPoint(info.position);

            units.setCount(_battleRecord.units);

            var unitsPerSecond = infoLevel.UnitsProduction;

            AddComponent <UnitRegenComponent>().setUnitsPerTick((unitsPerSecond / engine.configuration.ticksPerSecond));

            switch (_record.Type)
            {
            case BuildingType.DEFENSE:

                AddComponent <BuildingAttackDefenseComponent>();
                break;

            case BuildingType.MANNA:

                AddComponent <MannaRegenComponent>();
                break;

            case BuildingType.PRODUCTION:
                break;
            }
        }
コード例 #2
0
 public AppMainSettings()
 {
     battleConfiguration = new BattleConfiguration();
     playerSettings      = new PlayerSettings();
     shipSetting         = new ShipSetting();
     boardConfig         = new BoardConfig();
 }
コード例 #3
0
 public void GalaxyController_OnBattleStarted(BattleConfiguration configuration)
 {
     _planet = configuration.Planet;
     ResetBattleValues(configuration);
     PopulateBattleViewSquads(_playerBattleSquads.Values);
     PopulateBattleViewSquads(_opposingBattleSquads.Values);
     BattleView.UpdateNextStepButton("Next Turn", true);
 }
コード例 #4
0
        private void HandleBattles()
        {
            int i = _planetBattleStartedId + 1;

            while (i < GameSettings.Galaxy.Planets.Count)
            {
                Planet planet = GameSettings.Galaxy.GetPlanet(i);
                BattleConfiguration battleConfig =
                    BattleConfigurationBuilder.BuildBattleConfiguration(planet);
                if (battleConfig != null)
                {
                    Debug.Log("Battle breaks out on " + planet.Name);
                    _planetBattleStartedId = i;
                    OnBattleStart.Invoke(battleConfig);
                    return;
                }
                i++;
            }
            OnAllBattlesComplete.Invoke();
        }
コード例 #5
0
        private void ResetBattleValues(BattleConfiguration config)
        {
            BattleView.gameObject.SetActive(true);
            BattleView.Clear();
            BattleView.SetMapSize(new Vector2(config.Grid.GridWidth, config.Grid.GridHeight));
            _turnNumber = 0;

            _grid            = config.Grid;
            _planet          = config.Planet;
            _opposingFaction = config.OpposingSquads[0].Squad.ParentUnit.UnitTemplate.Faction;

            _playerBattleSquads.Clear();
            _soldierBattleSquadMap.Clear();
            _opposingBattleSquads.Clear();
            _startingPlayerBattleSoldiers.Clear();
            _startingEnemyCount = 0;

            foreach (BattleSquad squad in config.PlayerSquads)
            {
                _playerBattleSquads[squad.Id] = squad;
                foreach (BattleSoldier soldier in squad.Soldiers)
                {
                    _soldierBattleSquadMap[soldier.Soldier.Id] = squad;
                }
                _startingPlayerBattleSoldiers.AddRange(squad.Soldiers);
            }

            foreach (BattleSquad squad in config.OpposingSquads)
            {
                _opposingBattleSquads[squad.Id] = squad;
                foreach (BattleSoldier soldier in squad.Soldiers)
                {
                    _soldierBattleSquadMap[soldier.Soldier.Id] = squad;
                }
                _startingEnemyCount += squad.Soldiers.Count;
            }
        }
コード例 #6
0
 public GameConfiguration()
 {
     InitialPlayer = new InitialPlayerConfiguration();
     Battle        = new BattleConfiguration();
     Shops         = new ShopsConfiguration();
 }