void IEcsInitSystem.Init()
 {
     _world.SendMessage(new ChangeGameStateRequest()
     {
         State = GameStates.Pause
     });
     _world.SendMessage(new InputNonConstrainMoveEvent());
     _world.SendMessage(new TargetEvent());
 }
Exemple #2
0
 void IEcsInitSystem.Init()
 {
     _world.SendMessage(new ChangeGameStateRequest()
     {
         State = GameStates.Pause
     });
 }
Exemple #3
0
        public void Run()
        {
            if (_runtimeData.GameState.State != State.Game)
            {
                return;
            }
            if (!_automerge.IsEmpty())
            {
                return;
            }

            foreach (var i in _filter)
            {
                ref var cubeMoveTime = ref _filter.Get1(i);
                cubeMoveTime.Value -= Time.deltaTime;

                if (cubeMoveTime.Value <= 0)
                {
                    _moveCounter++;
                    _world.SendMessage(new OnCubeMoveTimedEvent());

                    cubeMoveTime.Value = _configuration.StartMoveSpeedByRank[_playerData.Rank] -
                                         _configuration.CubesMoveTimeStep * _moveCounter;
                    if (cubeMoveTime.Value < _configuration.CubesMoveIntervalTimeMin)
                    {
                        cubeMoveTime.Value = _configuration.CubesMoveIntervalTimeMin;
                    }
                }
            }
Exemple #4
0
        public void Run()
        {
            if (!Input.GetMouseButtonDown(0))
            {
                return;
            }

            _world.SendMessage(new ClearOutlineEvent());

            Vector3    sreenPos    = Input.mousePosition;
            Vector3    worldPos    = Camera.main.ScreenToWorldPoint(sreenPos);
            Vector3Int tileGridPos = _sceneData.CoreTilemap.WorldToCell(worldPos);

            foreach (var i in _selectedFilter)
            {
                var     selectedCard = _selectedFilter.GetEntity(i);
                ref var fromPos      = ref selectedCard.Get <Selected>();
                if (fromPos.Value != tileGridPos)
                {
                    selectedCard.Get <MoveEvent>() = new MoveEvent()
                    {
                        From = fromPos.Value, To = tileGridPos
                    };
                }
                selectedCard.Del <Selected>();
            }
Exemple #5
0
        void IEcsRunSystem.Run()
        {
            if (_timer > 0)
            {
                _timer -= Time.deltaTime;
                return;
            }
            else
            {
                _timer = _timeUpdateSec;

                foreach (var enemyBlueprint in _context.EnemyBlueprints)
                {
                    var addHealth = _config.healthBonus[_config.healthProbs.RandomOnProbability()];
                    var addDamage = _config.damageBonus[_config.damageProbs.RandomOnProbability()];

                    enemyBlueprint.healthBaseComponent.Value += addHealth;
                    enemyBlueprint.damage += addDamage;
                }

                foreach (var i in _waveDataFilter)
                {
                    ref var waveContainer = ref _waveDataFilter.Get1(i);
                    waveContainer.CurrentWave += 1;
                    var enemiesInWaveCount = UnityEngine.Random.Range(waveContainer.CurrentWave, waveContainer.CurrentWave + _config.EnemyWaveBonus);
                    waveContainer.TotalEnemies += enemiesInWaveCount;
                    _world.SendMessage(new CreateEnemiesRequest()
                    {
                        waveCount = enemiesInWaveCount
                    });
                }
            }
Exemple #6
0
 void IEcsRunSystem.Run()
 {
     if (Input.GetKeyDown(KeyCode.Escape))
     {
         _world.SendMessage(new InputPauseQuitEvent());
         return;
     }
     if (Input.GetKeyDown(KeyCode.R))
     {
         _world.SendMessage(new InputRestartLeveltEvent());
         return;
     }
     if (Input.anyKeyDown)
     {
         _world.SendMessage(new InputAnyKeyEvent());
         return;
     }
 }
 void IEcsRunSystem.Run()
 {
     if (_filter.IsEmpty())
     {
         _world.SendMessage(new ChangeGameStateRequest()
         {
             State = GameStates.GameOver
         });
     }
 }
Exemple #8
0
        public void Run()
        {
            if (_runtimeData.GameState.State != State.Train)
            {
                return;
            }

            if (_clickAnimationObject == null && _trainCube2 == null)
            {
                InitAnimationObject();
            }

            if (!_newSelectEntities.IsEmpty())
            {
                if (_clickAnimationObject != null)
                {
                    _trainCube2.Entity.Get <Selectable>();
                    _clickAnimationObject.transform.SetParent(_trainCube2.CanvasRectTransform);
                    _clickAnimationObject.GetComponent <RectTransform>().localPosition = _configuration
                                                                                         .ClickAnimationPrefab.GetComponent <RectTransform>().localPosition;
                }
            }

            if (!_onMergeCompleteEvent.IsEmpty())
            {
                if (_clickAnimationObject != null)
                {
                    Object.Destroy(_clickAnimationObject.gameObject);
                    foreach (var i in _cubes)
                    {
                        _cubes.GetEntity(i).Get <Selectable>();
                    }
                }
            }

            var secondStageTraining = _runtimeData.PlayerScore >= _countScoreToSecondStageTraining;

            if (secondStageTraining && _canCubesMove)
            {
                _canCubesMove = false;
                _world.SendMessage(new OnCubeMoveTimedEvent());
            }

            if (secondStageTraining && !_onMergeCompleteEvent.IsEmpty())
            {
                _sceneData.UI.TrainScreen.TrainText.SetText(
                    "Набери " + _countScoreToEndTraining + " очков. \n"
                    + "Набрано: " + _runtimeData.PlayerScore);
            }

            if (_runtimeData.PlayerScore >= _countScoreToEndTraining)
            {
                _runtimeData.GameState.State = State.EnterNickname;
            }
        }
Exemple #9
0
        public void Run()
        {
            if (_runtimeData.GameState.State != State.Game)
            {
                return;
            }
            if (_runtimeData.GameMode == GameMode.Endless)
            {
                return;
            }

            foreach (var i in _filter)
            {
                ref var gameTimer = ref _filter.Get1(i);
                gameTimer.Value -= Time.deltaTime;

                if (gameTimer.Value < 0)
                {
                    _world.SendMessage(new OnGameTimerFinishedEvent());
                }
            }
Exemple #10
0
        void IEcsRunSystem.Run()
        {
            totalSum = 0;
            if (_moveFilter.IsEmpty())
            {
                return;
            }

            foreach (var col in _context.WinColumns)
            {
                totalSum += CheckColumn(col.Key, col.Value);
            }

            if (totalSum == 15)
            {
                _world.SendMessage(new ChangeGameStateRequest()
                {
                    State = GameStates.GameOver
                });
            }
        }
        public void Run()
        {
            if (_onClickEvent.IsEmpty())
            {
                return;
            }
            if (!_selectedEntities.AllEntitiesEquals <Score>())
            {
                DeselectAllEntities();
                _world.SendMessage(new OnWrongSelectEvent());
                return;
            }

            if (_selectedEntities.GetEntitiesCount() != 2)
            {
                return;
            }

            _selectedEntities.GetEntity(0).Get <OnMergeEvent>()
            .Target = _selectedEntities.GetEntity(1);
            DeselectAllEntities();
        }
Exemple #12
0
 private void OnRewardedAd()
 {
     Debug.Log("Show AD");
     _world.SendMessage(new OnShowRewardedAdEvent());
 }