Пример #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);
                }
            }
        }
Пример #2
0
 void Start()
 {
     _healAmountPerSec    = GameConfigRepository.LoadStaminaHealAmount();
     _consumeAmountPerTap = GameConfigRepository.LoadStaminaConsumeAmount();
     _currentAmount       = InGameParameters.PlayerStaminaMax;
     _isPause             = false;
 }
Пример #3
0
        public ActionConfig(int actionId)
        {
            _gameConfigRepository = CallContext <GameConfigRepository> .GetData("GameConfigRepository");

            var actions = _gameConfigRepository.GetEntities("Action");

            _action = actions.GetById(actionId);
        }
Пример #4
0
        public MovementConfig(int movementId)
        {
            _gameConfigRepository = CallContext <GameConfigRepository> .GetData("GameConfigRepository");

            var movements = _gameConfigRepository.GetEntities("Movement");

            _movement = movements.GetById(movementId);

            IncrementSightBy = DetermineIncrementSightBy(movementId);
        }
Пример #5
0
        public void Setup()
        {
            if (_repo != null)
            {
                return;
            }

            _repo = new GameConfigRepository();

            CallContext <GameConfigRepository> .SetData("GameConfigRepository", _repo);
        }
Пример #6
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");
        }
Пример #7
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);
        }
Пример #8
0
    private void Run()
    {
        float stamina   = GetComponent <PlayerStamina>().GetCurrentValue();
        float velocityX = PlayerMovementMathFunctions.GetVelocityByStamina(stamina, GameConfigRepository.LoadMovementEquationType());

        if (_player.GetState() == Player.State.Damaged)
        {
            velocityX += InGameParameters.PlayerMinusVelocityWhenDamaged;
        }
        velocityX = Mathf.Clamp(
            velocityX,
            InGameParameters.PlayerVelocityMin,
            InGameParameters.PlayerVelocityMax);
        Vector3 velocity = GetComponent <Rigidbody2D>().velocity;

        velocity.x = velocityX;
        GetComponent <Rigidbody2D>().velocity = velocity;
    }
Пример #9
0
    void Start()
    {
        Debug.Assert(_dropdownMovementFunction != null);
        Debug.Assert(_dropdownStaminaHealAmount != null);
        Debug.Assert(_dropdownStaminaConsumeAmount != null);

        _movementFunctionOptions = new MovementFunctionOption[] {
            new MovementFunctionOption(
                PlayerMovementMathFunctions.Type.LinerEquation01,
                "1次方程式01"
                ),
            new MovementFunctionOption(
                PlayerMovementMathFunctions.Type.QuarticEquation01,
                "2次方程式01"
                ),
        };
        _staminaHealAmountOptions = Enumerable.Range((int)InGameParameters.StaminaHealAmountMin, (int)(InGameParameters.StaminaHealAmountMax - InGameParameters.StaminaHealAmountMin + 1))
                                    .Select((x) => (float)x)
                                    .ToArray();
        _staminaConsumeAmountOptions = Enumerable.Range((int)InGameParameters.StaminaConsumeAmountMin, (int)(InGameParameters.StaminaConsumeAmountMax - InGameParameters.StaminaConsumeAmountMin + 1))
                                       .Select((x) => (float)x)
                                       .ToArray();

        List <string> labels = _movementFunctionOptions.Select(x => x.Label).ToList();
        int           index  = System.Array.FindIndex(_movementFunctionOptions, x => x.Type == GameConfigRepository.LoadMovementEquationType());

        _dropdownMovementFunction.ClearOptions();
        _dropdownMovementFunction.AddOptions(labels);
        _dropdownMovementFunction.value = (index != -1) ? index : 0;


        labels = _staminaHealAmountOptions.Select(x => x.ToString("")).ToList();
        index  = System.Array.FindIndex(_staminaHealAmountOptions, x => x == GameConfigRepository.LoadStaminaHealAmount());
        _dropdownStaminaHealAmount.ClearOptions();
        _dropdownStaminaHealAmount.AddOptions(labels);
        _dropdownStaminaHealAmount.value = (index != -1) ? index : 0;


        labels = _staminaConsumeAmountOptions.Select(x => x.ToString("")).ToList();
        index  = System.Array.FindIndex(_staminaConsumeAmountOptions, x => x == GameConfigRepository.LoadStaminaConsumeAmount());
        _dropdownStaminaConsumeAmount.ClearOptions();
        _dropdownStaminaConsumeAmount.AddOptions(labels);
        _dropdownStaminaConsumeAmount.value = (index != -1) ? index : 0;
    }
Пример #10
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);
        }
Пример #11
0
        public MainGame(PointI desiredResolution)
        {
            _graphicsDeviceManager = new GraphicsDeviceManager(this);
            Content.RootDirectory  = "Content";

            var gameConfigRepository = new GameConfigRepository();

            CallContext <GameConfigRepository> .SetData("GameConfigRepository", gameConfigRepository);

            var gameConfigCache = new GameConfigCache();

            CallContext <GameConfigCache> .SetData("GameConfigCache", gameConfigCache);

            var gameDataRepository = new GameDataRepository();

            CallContext <GameDataRepository> .SetData("GameDataRepository", gameDataRepository);

            var presentationContext = new GlobalContextPresentation {
                DesiredResolution = desiredResolution
            };

            CallContext <GlobalContextPresentation> .SetData("GlobalContextPresentation", presentationContext);
        }
Пример #12
0
 public void OnStaminaConsumeAmountOptionChanged(int index)
 {
     GameConfigRepository.SaveStaminaConsumeAmount(_staminaConsumeAmountOptions[index]);
 }
Пример #13
0
 public void OnMovementFunctionOptionChanged(int index)
 {
     GameConfigRepository.SaveMovementEquationType(_movementFunctionOptions[index].Type);
 }