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); } }
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); }