//размещение фигуры в области сборки public void put_figura(Vector2Int m, FiguraCarcas fd, List <OneSquare> figuraSquares) { SoundManager.PlaySound("figura_landed"); for (int i = 0; i < fd.numPoints; i++) { int x = m.x + fd.coords[i, 0]; int y = m.y + fd.coords[i, 1]; if (y >= GameConstants.AREA_REAL_HEIGHT) { continue; } SetSquare(x, y, figuraSquares[i].type); } int figure_score = (int)UnityEngine.Random.Range(5, 20); scoresController.AddScoreLevel(figure_score); scoresController.AddGraphicsItem(m, figure_score.ToString(), ScoreType.FigurePut); //проверка на заполненные линии check_filled_lines(); //проверка на финиш (заполнение 0 линии), if (is_CapacityFull()) { //область переполнена, запуск анимации удаления камней, а затем рестарт уровня EventManager.TriggerEvent("Anim_Overfill_area"); } //EventManager.TriggerEvent("CanStartNewFigura"); }
//============================================= //инициализация нового уровня void event_InitLevel() { SoundManager.PlayMusicRandom(); //SoundManager.PlayMusic("music_background2"); GamePause(); scoresController.Init(); myUtils.console_log("event InitLevel " + scoresController.user.level); gameState = GameState.NotPlay; //очков за текущий уровень scoresController.AddScoreLevel(0, true); //init GameArea gameArea.Init_New_Level(scoresController.user.level); figuresQueueList.Fill_Figures_Queue(); //FiguraController.GetQueueFigura(); //gameState = GameState.Play; GameContinue(); EventManager.TriggerEvent("NewFigura"); }