Exemplo n.º 1
0
    public TetrominoManager(BaseConfig _config) : base(_config)
    {
        //Set up Spawn system
        spawnConfig               = (TetrominoSpawnConfig)_config;
        tetrominoPoolParent       = new GameObject("TetrominoPool").transform;
        tetrominoSpritePoolParent = new GameObject("TetrominoSpritePool").transform;
        tetrominoSpawner          = new TetrominoSpawner(spawnConfig, tetrominoPoolParent, tetrominoSpritePoolParent);

        CreatePool();
    }
Exemplo n.º 2
0
 void Awake()
 {
     if (_instance != null && _instance != this)
     {
         Destroy(this.gameObject);
     }
     else
     {
         _instance = this;
     }
 }
Exemplo n.º 3
0
        void Start()
        {
            moveDone = true;
            start    = Vector3.zero;
            end      = Vector3.zero;
            brain    = GameObject.FindObjectOfType <Brain>();
            spawner  = GameObject.FindObjectOfType <TetrominoSpawner>();
            //StartCoroutine("move");

            InvokeRepeating("move", 0, 0.2f);
        }
Exemplo n.º 4
0
 public EndGameController(
     EndGamePopUpHandler endGamePopUpHandler,
     IGrid grid,
     TetrominoSpawner tetrominoSpawner,
     MovementController movementController,
     AnimationConfig animationConfig)
 {
     _endGamePopUpHandler = endGamePopUpHandler;
     _grid               = grid;
     _tetrominoSpawner   = tetrominoSpawner;
     _movementController = movementController;
     _animationConfig    = animationConfig;
 }
Exemplo n.º 5
0
    void Awake()
    {
        tetrominoGravity      = new GameObject().AddComponent <Gravity>();
        tetrominoGravity.name = "TetrominoGravity";

        gridGravity      = new GameObject().AddComponent <Gravity>();
        gridGravity.name = "GridGravity";


        scaleFactor           = 16;
        scaleVector           = Vector3Int.one * (scaleFactor - 1);
        transform.localScale += scaleVector;

        transform.position = new Vector3Int(1, -10 * scaleFactor, 0);

        mainCamera = GameObject.Find("Main Camera").GetComponent <Camera>();
        mainCamera.orthographicSize = 12 * scaleFactor;

        basePosition = Vector3Utils.ToVector3Int(transform.position) + new Vector3Int(scaleFactor, scaleFactor, 0);

        tetrominoSpawner = Instantiate(tetrominoSpawnerPrefab).GetComponent <TetrominoSpawner>();
        tetrominoSpawner.Initialize(this);

        pistonSpawner = Instantiate(pistonSpawnerPrefab).GetComponent <PistonSpawner>();
        pistonSpawner.Initialize(this);

        pistonMask = GameObject.Find("PistonMask");
        pistonMask.transform.position    = transform.position + scaleFactor * new Vector3(5.5f, 10.5f, 0);
        pistonMask.transform.localScale += scaleVector;

        debugMap = GameObject.Find("DebugMap").GetComponent <DebugMap>();
        debugMap.transform.position    = scaleFactor * debugMap.transform.position;
        debugMap.transform.localScale += scaleVector;

        grid = new Transform[gridWidth, gridHeight];

        gridUtils.Initialize(grid);

        //rowSlider = new GameObject().AddComponent<RowSlider>();
        //rowSlider.name = "RowSlider";
        //rowSlider.Initialize(this);

        SpawnNextTetromino();

        rowPosition = new Vector3[Map.gridHeight];
        ResetRowPosition();

        currentTetromino.ImmediateFall(playerPrefab);
    }
Exemplo n.º 6
0
 public void Initialize(
     GameController gameController,
     Playfield playfield,
     TetrominoSpawner tetrominoSpawner,
     SoundManager soundManager,
     Input input,
     ScoreController scoreController)
 {
     _gameController   = gameController;
     _playfield        = playfield;
     _tetrominoSpawner = tetrominoSpawner;
     _input            = input;
     _scoreController  = scoreController;
     _soundManager     = soundManager;
 }
Exemplo n.º 7
0
    void Start()
    {
        rotationTiles = GetComponentsInChildren <TetrominoRotationTile>();

        for (int i = 1; i < transform.childCount; ++i)
        {
            tetrominoTiles[i - 1] = transform.GetChild(i).GetComponent <TetrominoTile>();
        }
        game        = Camera.main.GetComponent <Game>();
        input       = Camera.main.GetComponent <SwipeInput>();
        spawner     = GameObject.FindGameObjectWithTag("TetrominoSpawner").GetComponent <TetrominoSpawner>();
        fallingTime = game.tetromino.fallTime;

        assignToInputEvents();
        StartCoroutine(fallingCoroutine());
    }
Exemplo n.º 8
0
    private IEnumerator CheckMatch3()
    {
        HashSet <Block>[] matchingBlocks = new HashSet <Block> [4];

        for (int i = 0; i < 4; i++)
        {
            Block block = Blocks[i];

            matchingBlocks[i] = new HashSet <Block>()
            {
                block
            };

            if (block.BlockDef.BlockType == BlockType.Bomb)
            {
                block.GetSurroundingNeighbors(matchingBlocks[i], 2f);
            }
            else
            {
                block.GetMatchingNeighbors(matchingBlocks[i]);
            }
        }

        for (int i = 0; i < 4; i++)
        {
            var matchSet = matchingBlocks[i];

            for (int j = i + 1; j < 4; j++)
            {
                if (matchingBlocks[j].Any(x => matchSet.Contains(x)))
                {
                    foreach (var item in matchingBlocks[j])
                    {
                        matchSet.Add(item);
                    }

                    matchingBlocks[j].Clear();
                }
            }
        }

        for (int i = 0; i < 4; i++)
        {
            var matchSet = matchingBlocks[i];

            if (matchSet.Count >= 3)
            {
                foreach (var block in matchSet)
                {
                    block.SetToBeDestroyed();
                }
            }
        }

        yield return(new WaitForSeconds(0.4f));

        for (int i = 0; i < 4; i++)
        {
            var matchSet = matchingBlocks[i];

            if (matchSet.Count >= 3)
            {
                if (matchSet.Any(x => x.BlockDef.BlockType == BlockType.Explosive))
                {
                    SoundPlayer.Play(ExplosiveSound);

                    var pointsDisplay = Instantiate(PointsDisplayPrefab, Blocks[i].transform.position, Quaternion.identity);

                    int points = ScoreManager.AddPoints(-matchSet.Count(x => x.BlockDef.BlockType == BlockType.Coin));

                    Health.RemoveHealth(points);
                    pointsDisplay.SetPointsText(points);
                }
                else if (matchSet.Any(x => x.BlockDef.BlockType == BlockType.Bomb))
                {
                    SoundPlayer.Play(BombSound);
                }
                else if (matchSet.Any(x => x.BlockDef.BlockType == BlockType.Coin))
                {
                    SoundPlayer.Play(CoinSound);

                    var pointsDisplay = Instantiate(PointsDisplayPrefab, Blocks[i].transform.position, Quaternion.identity);

                    int points = ScoreManager.AddPoints(matchSet.Count);

                    Health.AddHealth(points);
                    pointsDisplay.SetPointsText(points);
                }
                else
                {
                    SoundPlayer.Play(MatchedSound);
                }

                foreach (var block in matchSet)
                {
                    block.gameObject.transform.SetParent(null);
                    Destroy(block.gameObject);
                }
            }
        }

        //Board.Instance.MakeBlocksFall();

        ScoreManager.AddTetromino();

        if (ScoreManager.TetrominoCount % 15 == 0)
        {
            ScoreManager.AddLevel();
            FallDelay *= 0.6f;
        }

        TetrominoSpawner.Spawn();

        Destroy(gameObject);
    }
 public void Construct(PreviewTetrominoConfig previewTetrominoConfig, TetrominoSpawner tetrominoSpawner)
 {
     _previewTetrominoConfig = previewTetrominoConfig;
     _tetrominoSpawner       = tetrominoSpawner;
 }
Exemplo n.º 10
0
 void Awake()
 {
     tetrominoProgr = 0;
     spawner        = GameObject.FindObjectOfType <TetrominoSpawner>();
     player         = GameObject.FindObjectOfType <AIPlayer>();
 }
Exemplo n.º 11
0
    private void Awake()
    {
        _instance = this;

        Tetromino.FallDelay = 1f;
    }
Exemplo n.º 12
0
 void Start()
 {
     bar     = GetComponentInChildren <CircleBar>();
     spawner = GameObject.FindGameObjectWithTag("TetrominoSpawner").GetComponent <TetrominoSpawner>();
     startCounter();
 }