public void Run()
        {
            MouseInput();

            if (UndoEvt.IsEmpty() && RedoEvt.IsEmpty())
            {
                return;
            }
            Counters(undo: !UndoEvt.IsEmpty(), redo: !RedoEvt.IsEmpty(), false);
            _preventHistoryInsert = true;
            if (!_preventSelectionSet)
            {
                (var history, var id) = Globals <PersistentUndoRedoState> .Value;
                SelectionEntry entry = history[id];
                if (entry.Valid())
                {
                    Selection.objects = entry.IsGuids
                        ? entry.Guids.Select(AssetDatabase.GUIDToAssetPath).Select(AssetDatabase.LoadAssetAtPath <Object>).Where(obj => obj).ToArray()
                        : entry.SceneObjects;
                }
            }

            _preventSelectionSet = false;

            UndoEvt.AllDestroy();
            RedoEvt.AllDestroy();
        }
Esempio n. 2
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;
            }
        }
        public void Run()
        {
            if (!_up.IsEmpty())
            {
                foreach (var i in _up)
                {
                    _up.Entities[i].Unset <OnScreenTapUp>();
                }
            }

            if (Input.GetMouseButtonUp(0) && _up.IsEmpty())
            {
                _ecsWorld.NewEntity().Set <OnScreenTapUp>();
            }
            else if (!_up.IsEmpty())
            {
                foreach (var i in _up)
                {
                    _up.Entities[i].Unset <OnScreenTapUp>();
                }
            }

            if (Input.GetMouseButtonDown(0) && _down.IsEmpty())
            {
                _ecsWorld.NewEntity().Set <OnScreenTapDown>();
            }
            else if (!_down.IsEmpty())
            {
                foreach (var i in _down)
                {
                    _down.Entities[i].Unset <OnScreenTapDown>();
                }
            }

            if (Input.GetMouseButton(0))
            {
                if (_filter.IsEmpty())
                {
                    _ecsWorld.NewEntity().Set <OnScreenHold>();
                }
            }
            else
            {
                if (!_filter.IsEmpty())
                {
                    foreach (var i in _filter)
                    {
                        _filter.Entities[i].Destroy();
                    }
                }
            }
        }
        protected override void OnButtonClick()
        {
            base.OnButtonClick();
            if (!_canBoosting)
            {
                return;
            }
            if (!_autoMerge.IsEmpty())
            {
                return;
            }

            _world.NewEntity().Get <AutoMergeIsRun>();
            AutoMerge();
        }
Esempio n. 5
0
        public void Run()
        {
            if (_filter.IsEmpty())
            {
                return;
            }
            var clockEntity   = _ecsWorld.NewEntity();
            var clockPosition = new Vector3(-10f + _gameState.SpawnedClocks * 10f, 0f, 0f);
            var clockGo       = Object.Instantiate(_sceneData.clockPrefab, clockPosition, Quaternion.identity);

            clockEntity.Get <ClockComponent>() = new ClockComponent
            {
                CurrentAngle   = 0f,
                MaxAngle       = 360f,
                HandSpeed      = 6f,
                ScorePerSecond = 20f,
                SpeedHandBack  = 60f,
                HandTransform  = clockGo.GetComponent <HandTransformProvider>().handTransform,
                Bounds         = clockGo.GetComponent <SpriteBoundProvider>().bounds,
                Transform      = clockGo.transform,
                helperCount    = 0
            };
            if (_gameState.ActiveClock.IsNull())
            {
                _gameState.ActiveClock = clockEntity;
                clockGo.transform.GetComponent <SetState>().Set(true);
            }
            _gameState.SpawnedClocks++;
        }
Esempio n. 6
0
 void IEcsRunSystem.Run()
 {
     if (!_filterPauseQuit.IsEmpty())
     {
         if (_gameContext.GameState == GameStates.Pause)
         {
             SetGameState(GameStates.Exit);
         }
         if (_gameContext.GameState == GameStates.Play)
         {
             SetGameState(GameStates.Pause);
         }
     }
     else
     {
         if (!_filterAnyKey.IsEmpty())
         {
             if (_gameContext.GameState == GameStates.Pause)
             {
                 SetGameState(GameStates.Play);
             }
             if (_gameContext.GameState == GameStates.GameOver)
             {
                 SetGameState(GameStates.Restart);
             }
         }
     }
 }
Esempio n. 7
0
 void IEcsRunSystem.Run()
 {
     if (_input.IsEmpty())
     {
         return;
     }
     ref var offset = ref _input.Get1(0).Offset;
        void IEcsRunSystem.Run()
        {
            if (_pieces.IsEmpty())
            {
                return;
            }

            var board = _boards.Get1(0);

            var offsets = new int[board.Size.X];

            foreach (var i in _pieces)
            {
                offsets[_pieces.Get2(i).Value.X]++;
            }

            foreach (var i in _pieces)
            {
                var value    = _pieces.Get1(i).Value;
                var position = _pieces.Get2(i).Value;

                var view = _viewService.CreatePieceView(value, position.X, position.Y + offsets[position.X]);
                view.UpdatePosition(position.X, position.Y);

                _pieces.GetEntity(i).Get <View>().Value = view;
            }
        }
Esempio n. 9
0
        public void Run()
        {
            if (filter.IsEmpty())
            {
                var resourceItemPosition = new Vector3(dependencyContainer.Random.Next(dependencyContainer.Configuration.resourceSpawnItemPositionXMin,
                                                                                       dependencyContainer.Configuration.resourceSpawnItemPositionXMax),
                                                       dependencyContainer.Random.Next(dependencyContainer.Configuration.resourceSpawnItemPositionYMin,
                                                                                       dependencyContainer.Configuration.resourceSpawnItemPositionYMax),
                                                       0);

                var resourceItemGameObject = Object.Instantiate(dependencyContainer.Configuration.resourceItemPrefab,
                                                                resourceItemPosition,
                                                                Quaternion.identity);

                var resourceItemBehaviour = resourceItemGameObject.GetComponent <ResourceItemBehaviour>();

                var uid    = dependencyContainer.ResourceIds[dependencyContainer.Random.Next(dependencyContainer.ResourceIds.Length)];
                var amount = dependencyContainer.Random.Next(dependencyContainer.Configuration.resourceSpawnItemAmountMin,
                                                             dependencyContainer.Configuration.resourceSpawnItemAmountMax);

                var     entity = world.NewEntity();
                ref var resourceItemComponent = ref entity.Get <ResourceItemComponent>();
                resourceItemComponent.uid    = uid;
                resourceItemComponent.amount = amount;

                resourceItemBehaviour.Init(world, ref resourceItemComponent, ref entity);
            }
Esempio n. 10
0
 void IEcsRunSystem.Run()
 {
     if (!_filterDeathMobs.IsEmpty())
     {
         var     sumPower = GetPowerDiedMobs();
         ref var score    = ref _filterScore.Get1(0);
         ref var wrapper  = ref _filterScore.Get2(0);
        public void Run()
        {
            if (!_followPlayer.IsEmpty())
            {
                foreach (var i in _target)
                {
                    foreach (var j in _camera)
                    {
                        _camera.Get2[j].Point.Set(UnityEngine.Mathf.Lerp(_camera.Get2[j].Point.x, _target.Get2[i].Point.x, 3f * _t.DeltaTime), _camera.Get2[j].Point.y, UnityEngine.Mathf.Lerp(_camera.Get2[j].Point.z, _target.Get2[i].Point.z - 60.0f, 3f * _t.DeltaTime));
                    }
                }
            }

            if (!_stopTag.IsEmpty())
            {
                foreach (var i in _followPlayer)
                {
                    _followPlayer.Entities[i].Unset <FollowPlayerTag>();
                }

                foreach (var i in _stopTag)
                {
                    _stopTag.Entities[i].Unset <StopFollowingTag>();
                }
            }
        }
Esempio n. 12
0
 protected override void PreExecuteActions()
 {
     if (!_disabledControls.IsEmpty())
     {
         DisableVehicleControl(true);
     }
 }
Esempio n. 13
0
        public void Run()
        {
            if (_updateEvents.IsEmpty())
            {
                return;
            }

            string scoresString = "";

            foreach (int i in _players)
            {
                PlayerComponent player = _players.Get1[i];
                scoresString += $"P{player.Num.ToString()} Scores:{player.Scores.ToString()} ";

                if (player.IsDead)
                {
                    scoresString += "IS DEAD\n";
                }
                else
                {
                    scoresString += $"Lives:{player.Lives.ToString()}\n";
                }
            }

            foreach (int i in _scoreTables)
            {
                Text unityText = _scoreTables.Get1[i].ScoreText;
                unityText.text = scoresString;
            }
        }
Esempio n. 14
0
        public void Run()
        {
            if (!_filter.IsEmpty())
            {
                _gameState.IsPlaying = false;

                Object.DestroyImmediate(_playerFilter.Get1(0).value.gameObject);
                _playerFilter.GetEntity(0).Destroy();

                int highScore = 0;
                if (PlayerPrefs.HasKey(Configuration.HighScoreToken))
                {
                    highScore = PlayerPrefs.GetInt(Configuration.HighScoreToken);
                }

                if (_gameState.Score > highScore)
                {
                    highScore = _gameState.Score;
                }

                PlayerPrefs.SetInt(Configuration.HighScoreToken, highScore);

                _sceneContext.UI.gameOverScreen.SetScore(_gameState.Score);
                _sceneContext.UI.gameOverScreen.Show(true);
            }
        }
Esempio n. 15
0
 void IEcsRunSystem.Run()
 {
     if (!clearFilter.IsEmpty())
     {
         _sceneData.SelectTilemap.ClearAllTiles();
     }
 }
        public void Run()
        {
            foreach (var index in _filter)
            {
                var data = _filter.Get1(index);
                if (data.Button == PointerEventData.InputButton.Left && data.Sender.CompareTag("PauseButton"))
                {
                    var entity = _filter.GetEntity(index);

                    var hasActiveScreens  = _screenContainer.GetCount() > 0;
                    var hasPauseComponent = _pausedFilter.IsEmpty();

                    var canCreateEvent = hasActiveScreens == hasPauseComponent;  //Pause if has screens and doesn't have Paused component, Unpause if has no screens and has Paused component

                    if (canCreateEvent)
                    {
                        if (hasActiveScreens)
                        {
                            entity.Get <PauseEvent>();
                        }
                        else
                        {
                            entity.Get <UnpauseEvent>();
                        }
                    }
                }
            }
        }
 void IEcsRunSystem.Run()
 {
     if (!_correctAnswerEventFilter.IsEmpty())
     {
         _audioPlayer.EnqueueClip(_soundsContainer.CorrectAnswerClip);
     }
 }
Esempio n. 18
0
        public void Run()
        {
            if (_activateEventFilter.IsEmpty() || _inactiveScenesFilter.IsEmpty())
            {
                return;
            }

            foreach (var idx in _activateEventFilter)
            {
                ref var activateEvent = ref _activateEventFilter.Get1(idx);

                foreach (var idx1 in _inactiveScenesFilter)
                {
                    var sceneController = _inactiveScenesFilter.Get1(idx1).Scene;

                    if (sceneController.SceneName.Equals(activateEvent.SceneName))
                    {
                        sceneController.ShowContent();

                        if (activateEvent.IsMain)
                        {
                            sceneController.SetAsMain();
                        }
                    }
                }
            }
Esempio n. 19
0
        void IEcsRunSystem.Run()
        {
            if (!_correctAnswerEventFilter.IsEmpty())
            {
                foreach (var index in _progressBarFilter)
                {
                    ref var progressBarComponent = ref _progressBarFilter.Get1(index);
                    var     progressBar          = progressBarComponent.ProgressBar;
                    progressBar.CurrentValue++;
                    var   percentage = progressBar.CurrentValue / progressBar.MaxValue * 100;
                    Color color;
                    if (percentage < 61)
                    {
                        color = new Color32(220, 221, 225, 255);
                    }
                    else
                    if (percentage < 71)
                    {
                        color = new Color32(194, 54, 22, 255);
                    }
                    else
                    if (percentage < 91)
                    {
                        color = new Color32(251, 197, 49, 255);
                    }
                    else
                    {
                        color = new Color32(68, 189, 50, 255);
                    }

                    progressBar.Color = color;
                }
            }
Esempio n. 20
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;
                    }
                }
            }
Esempio n. 21
0
        public void Run()
        {
            if (UnityEngine.Time.unscaledTime - _updateTime > 1.0f)
            {
                _worldApi.UpdateOwned(_world);
                _updateTime = UnityEngine.Time.unscaledTime;
            }

            if (_filter.IsEmpty())
            {
                return;
            }

            foreach (var i in _points)
            {
                if (_worldApi.OwnedData.TryGetValue(_points.Get1[i].PointID, out string owner))
                {
                    _points.Entities[i].Set <PointOwner>().OwnerID = owner;
                }
                else
                {
                    _points.Entities[i].Unset <PointOwner>();
                }
            }
        }
Esempio n. 22
0
 public void Run()
 {
     if (!takenEnergizers.IsEmpty())
     {
         ecsWorld.NewEntity().Get <GhostFearStateRequest>();
     }
 }
Esempio n. 23
0
 void IEcsRunSystem.Run()
 {
     if (!_gameOverEventFilter.IsEmpty())
     {
         _audioPlayer.EnqueueClip(_soundsContainer.GameOverClip);
     }
 }
Esempio n. 24
0
 public void Run()
 {
     if (_gemsFilter.IsEmpty())
     {
         SceneManager.LoadScene(_ind);
     }
 }
Esempio n. 25
0
 public void Run()
 {
     if (!_filter.IsEmpty())
     {
         var entity = _filter.GetEntity(0);
         var data   = _dataFilter.Get2(0);
         entity.Get <ClearGridEvent>();
         ref var drawData = ref entity.Get <LineDrawData>();
         var     drawList = new List <(Vector2Int, Sprite)>();
         for (var i = 0; i < data.Points.Count; i++)
         {
             if (i == 0)
             {
                 drawList.Add((data.Points[i], _spritesContainer.LineBeginningSprite));
             }
             else if (i == data.Points.Count - 1)
             {
                 drawList.Add((data.Points[i], _spritesContainer.LineEndSprite));
             }
             else
             {
                 drawList.Add((data.Points[i], _spritesContainer.FilledSprite));
             }
         }
         drawData.drawData = drawList;
     }
        public void Run()
        {
            if (!_localPlayerHit.IsEmpty())
            {
                var localPlayerEntity = _localPlayerHit.GetEntity(0);
                localPlayerEntity.Del <PlayerHitEvent>();

                _remotePlayerHit.Get1(0).Score += 1;
            }

            if (!_remotePlayerHit.IsEmpty())
            {
                var remotePlayerEntity = _remotePlayerHit.GetEntity(0);
                remotePlayerEntity.Del <PlayerHitEvent>();

                _localPlayerHit.Get1(0).Score += 1;
            }

            if (!_localPlayer.IsEmpty())
            {
                _nicknameDisplay.LocalScore = _localPlayer.Get1(0).Score.ToString();
            }
            if (!_remotePlayer.IsEmpty())
            {
                _nicknameDisplay.RemoteScore = _remotePlayer.Get1(0).Score.ToString();
            }
        }
Esempio n. 27
0
        public void Run()
        {
            foreach (int level in _levelEntities)
            {
                ref var levelState = ref _levelEntities.Get1(level).LevelState;
                if (levelState == LevelState.GameEnded)
                {
                    // update win/loose text
                    foreach (int finish in _finishedEnitites)
                    {
                        var  playerComponent = _finishedEnitites.Get1(finish);
                        bool win             = _finishedEnitites.Get3(finish).Win;
                        Debug.Log($"Player {playerComponent.Id} {(win ? "win" : "loose")}");

                        _sceneData.finishText.GetComponent <TextMeshProUGUI>().text =
                            $"Player {playerComponent.Id} {(win ? "win" : "loose")}";
                        _inputManager.RestartButton.gameObject.SetActive(true);
                    }

                    // update score text
                    if (!_finishedEnitites.IsEmpty())
                    {
                        string scoreText = "";
                        foreach (int player in _playerEnitites)
                        {
                            var playerComponent = _playerEnitites.Get1(player);
                            scoreText += $"Player {playerComponent.Id}: {playerComponent.Score} {Environment.NewLine}";
                        }
                        _sceneData.scoreText.GetComponent <TextMeshProUGUI>().text = scoreText;
                    }
                }
            }
Esempio n. 28
0
        void IEcsRunSystem.Run()
        {
            if (_gameState.Score % 10 != 0 || _newCubeFilter.IsEmpty() || !NewCubeIsOnTop())
            {
                return;
            }

            _scene.Camera.transform.DOLocalMove(new Vector3(0, 10f, 10f), 1f).SetRelative(true);

            bool NewCubeIsOnTop()
            {
                var maxCubeY = 0;

                foreach (var i in _cubeFilter)
                {
                    var cubeY = _cubeFilter.Get2(i).Value.y;
                    if (cubeY > maxCubeY)
                    {
                        maxCubeY = cubeY;
                    }
                }
                var newCubeY = _newCubeFilter.Get3(0).Value.y;

                return(newCubeY > maxCubeY);
            }
        }
Esempio n. 29
0
 public void Run()
 {
     if (!_takenEnergizers.IsEmpty())
     {
         _ecsWorld.NewEntityWith(out EnableGhostFearStateEvent _);
     }
 }
Esempio n. 30
0
        public void Run()
        {
            if (!_appFocusOnFilter.IsEmpty())
            {
                log.Info($"App focus ON");
            }

            if (!_appFocusOffFilter.IsEmpty())
            {
                log.Info($"App focus OFF");
            }

            if (!_appPauseOnFilter.IsEmpty())
            {
                log.Info($"App pause ON");
            }

            if (!_appPauseOffFilter.IsEmpty())
            {
                log.Info($"App pause OFF");
            }

            if (!_appQuitFilter.IsEmpty())
            {
                log.Info($"App quit");
            }
        }