Example #1
0
        protected override void OnUpdate()
        {
            var activeScene = GetSingleton <ActiveScene>();
            var gameState   = GetSingleton <GameStateData>();
            var input       = World.GetExistingSystem <InputSystem>();

            if (activeScene.Value == Scenes.Title &&
                InputUtil.GetInputDown(input))
            {
                EntityManager.DestroyEntity(m_CellsQuery);

                AudioUtils.PlaySound(EntityManager, AudioTypes.StartGame);

                activeScene.Value = Scenes.Game;
                SetSingleton(activeScene);

                gameState.State  = GameState.Spawn;
                gameState.Hearts = 3;
                SetSingleton(gameState);
            }
        }
Example #2
0
        protected override void OnUpdate()
        {
            var gameState = GetSingleton <GameStateData>();

            if (gameState.State != GameState.Match)
            {
                return;
            }

            var cellMan = GetSingleton <CellManager>();

            m_MatchCount = 0;

            // find the match
            for (var x = 0; x < cellMan.MaxCol; x++)
            {
                var cells = Entities.GetCellEntitiesAtColumn(x);
                cells.Sort(new ByCol());
                FindMatches(ref cells);
            }

            for (var y = 0; y < cellMan.MaxRow; y++)
            {
                var cells = Entities.GetCellEntitiesAtRow(y);
                cells.Sort(new ByRow());
                FindMatches(ref cells);
            }

            if (m_MatchCount == 0)
            {
                if (!m_SecondMatch)
                {
                    gameState.Hearts--;

                    if (gameState.Hearts == 0)
                    {
                        AudioUtils.PlaySound(EntityManager, AudioTypes.GameOver);
                        gameState.State = GameState.GameOver;
                    }
                    else
                    {
                        AudioUtils.PlaySound(EntityManager, GetFailSounds());
                        gameState.State = GameState.Swap;
                    }
                }
                else
                {
                    gameState.State = GameState.Swap;
                }
                m_SecondMatch = false;
            }
            else
            {
                AudioUtils.PlaySound(EntityManager, GetMatchSound());

                gameState.State = GameState.Spawn;
                m_SecondMatch   = true;
            }

            SetSingleton(gameState);
        }