Ejemplo n.º 1
0
        public UnitConfig(int unitId)
        {
            _gameConfigRepository = CallContext <GameConfigRepository> .GetData("GameConfigRepository");

            var units = _gameConfigRepository.GetEntities("Unit");

            _unit                     = units.GetById(unitId);
            _unitActions              = _gameConfigRepository.GetEntities("UnitAction").Filter("UnitId", unitId);
            _unitMovements            = _gameConfigRepository.GetEntities("UnitMovement").Filter("UnitId", unitId);
            _unitBuildings            = _gameConfigRepository.GetEntities("UnitBuilding").Filter("UnitId", unitId);
            _unitRaces                = _gameConfigRepository.GetEntities("UnitRace").Filter("UnitId", unitId);
            _movementIncrementSightBy = _gameConfigRepository.GetEntities("MovementIncrementSightBy");

            ActionsThisUnitCanPerform        = _gameConfigRepository.ToList(_unitActions, "Action", "ActionId", "Name");
            MovementTypesThisUnitCanPerform  = _gameConfigRepository.ToList(_unitMovements, "Movement", "MovementId", "Name");
            BuildingsRequiredToBuildThisUnit = _gameConfigRepository.ToList(_unitBuildings, "Building", "BuildingId", "Name");
            RacesThatCanBuildThisUnit        = _gameConfigRepository.ToList(_unitRaces, "Race", "RaceId", "Name");
            MovementSightIncrements          = new List <int>();

            foreach (var item in _unitMovements)
            {
                var movementId = (int)item.MovementId;
                var movementIncrementSightBy = _movementIncrementSightBy.Filter("MovementId", movementId);
                foreach (var item2 in movementIncrementSightBy)
                {
                    MovementSightIncrements.Add((int)item2.Value);
                }
            }
        }
Ejemplo n.º 2
0
        public List <string> ToList(DynamicDataList fromList, string nameOfToList, string fromAttributeName, string toAttributeName)
        {
            var toList = GetEntities(nameOfToList);
            var list   = new List <string>();

            foreach (var item in fromList)
            {
                var fromAttributeValue = (int)item[fromAttributeName];
                var toItem             = toList.GetById(fromAttributeValue);
                var toAttribute        = (string)toItem[toAttributeName];
                list.Add(toAttribute);
            }

            return(list);
        }
Ejemplo n.º 3
0
        public RaceConfig(int raceId)
        {
            _gameConfigRepository = CallContext <GameConfigRepository> .GetData("GameConfigRepository");

            var races = _gameConfigRepository.GetEntities("Race");

            _race          = races.GetById(raceId);
            _raceTownNames = _gameConfigRepository.GetEntities("RaceTownName").Filter("RaceId", raceId);
            _unitRaces     = _gameConfigRepository.GetEntities("UnitRace").Filter("RaceId", raceId);
            _raceBuildings = _gameConfigRepository.GetEntities("RaceBuilding").Filter("RaceId", raceId);

            TownNamesForThisRace              = _gameConfigRepository.ToList(_raceTownNames, "TownName", "TownNameId", "Name");
            UnitsThatCanBeBuiltByThisRace     = _gameConfigRepository.ToList(_unitRaces, "Unit", "UnitId", "Name");
            BuildingsThatCanBeBuiltByThisRace = _gameConfigRepository.ToList(_raceBuildings, "Building", "BuildingId", "Name");
        }
Ejemplo n.º 4
0
        public GameConfigRepository()
        {
            _entities = new Dictionary <string, DynamicDataList>();

            var jsonFiles = Directory.GetFiles(".\\Content\\GameMetaData", "Config.*.json");

            foreach (var jsonFile in jsonFiles)
            {
                var fileName   = Path.GetFileNameWithoutExtension(jsonFile);
                var entityName = fileName.Split('.')[1];

                var jsonString = File.ReadAllText(jsonFile);
                var list       = DynamicDataList.Create($"{entityName}s", jsonString);
                _entities.Add(entityName, list);
            }
        }
Ejemplo n.º 5
0
        public TerrainConfig(int terrainId)
        {
            _gameConfigRepository = CallContext <GameConfigRepository> .GetData("GameConfigRepository");

            var terrains = _gameConfigRepository.GetEntities("Terrain");

            _terrain          = terrains.GetById(terrainId);
            _terrainMovements = _gameConfigRepository.GetEntities("TerrainMovement").Filter("TerrainId", terrainId);
            _terrainTextures  = _gameConfigRepository.GetEntities("TerrainTexture").Filter("TerrainId", terrainId);

            Movements = DetermineMovementsForThisTerrain();
            PossibleTexturesForThisTerrain = DeterminePossibleTexturesForThisTerrain();

            CanSettleOn          = DetermineCanSettleOn(terrainId);
            FoodOutput           = DetermineFoodOutput(terrainId);
            ProductionPercentage = DetermineProductionPercentage(terrainId);
        }
Ejemplo n.º 6
0
        public BuildingConfig(int buildingId)
        {
            _gameConfigRepository = CallContext <GameConfigRepository> .GetData("GameConfigRepository");

            var buildings = _gameConfigRepository.GetEntities("Building");

            _building          = buildings.GetById(buildingId);
            _raceBuildings     = _gameConfigRepository.GetEntities("RaceBuilding").Filter("BuildingId", buildingId);
            _unitBuildings     = _gameConfigRepository.GetEntities("UnitBuilding").Filter("BuildingId", buildingId);
            _requiredBuildings = _gameConfigRepository.GetEntities("RequiredBuilding").Filter("BuildingId", buildingId);

            RacesThatCanBuildThisBuilding        = _gameConfigRepository.ToList(_raceBuildings, "Race", "RaceId", "Name");
            UnitsThatAreRequiredByThisBuilding   = _gameConfigRepository.ToList(_unitBuildings, "Unit", "UnitId", "Name");
            BuildingsRequiredToBuildThisBuilding = _gameConfigRepository.ToList(_requiredBuildings, "Building", "RequiredBuildingId", "Name");

            MaximumPopulationIncrease    = DetermineMaximumPopulationIncrease(buildingId);
            PopulationGrowthRateIncrease = DeterminePopulationGrowthRateIncrease(buildingId);
            FoodOutputIncrease           = DetermineFoodOutputIncrease(buildingId);
        }
Ejemplo n.º 7
0
        public static DynamicDataList GetActionsThatApplyToAll()
        {
            if (_actionsThatApplyToAll is null)
            {
                var list = DynamicDataList.Create("Actions");

                var gameConfigCache = CallContext <GameConfigCache> .GetData("GameConfigCache");

                var actionIds = gameConfigCache.GetActionConfigIds();

                foreach (var actionId in actionIds)
                {
                    var action = gameConfigCache.GetActionConfigById(actionId);
                    if (action.AppliesToAll)
                    {
                        list.Add(action);
                    }
                }

                _actionsThatApplyToAll = list;
            }

            return(_actionsThatApplyToAll);
        }