コード例 #1
0
    public LetterTileModel RemoveOldestTile()
    {
        LetterTileModel oldTile = activeTiles [0];

        activeTiles.RemoveAt(0);
        return(oldTile);
    }
コード例 #2
0
 public bool isTileOnBelt(LetterTileModel _tile)
 {
     if (activeTiles.IndexOf(_tile) == -1)
     {
         return(false);
     }
     return(true);
 }
コード例 #3
0
 public void activate(LetterTileModel _model, clickDelegate _callBack)
 {
     model = _model;
     letterValueText.text = model.getLetterValue().ToString().ToUpper();
     gameObject.SetActive(true);
     setRotation(0);
     if (clickEvent == null)
     {
         clickEvent += _callBack;
     }
 }
コード例 #4
0
    void RemoveOldestLetter()
    {
        LetterTileModel oldTile = gameState.RemoveOldestTile();

        belt.removeTile(oldTile.tileView);
        switch (oldTile.state)
        {
        case LetterTileModel.STATE_ONBELT:
            gameView.setFallingTile(oldTile.tileView);
            oldTile.state = LetterTileModel.STATE_FALLING;
            break;
        }
    }
コード例 #5
0
 void removeTileFromPlay(LetterTileModel tile)
 {
     playHolder.removeTile(tile.tileView);
     gameState.RemoveTileFromPlay(tile);
     if (gameState.isTileOnBelt(tile))
     {
         tile.state = LetterTileModel.STATE_ONBELT;
         belt.repositionTiles();
     }
     else
     {
         KillTile(tile);
     }
 }
コード例 #6
0
    void RefillBag()
    {
        //TempLetters = new List<char> (LetterDistribution);
        TempLetters = letters.ToCharArray().ToList();

        foreach (char s in TempLetters)
        {
            LetterTileModel tile = new LetterTileModel();
            tile.setupTile(s);
            AddToTileBag(tile);
        }

        //Debug.Log ("Refilled bag "+gameState.GetNumActiveTiles().ToString());
    }
コード例 #7
0
    public LetterTileModel PullTileFromBag()
    {
        if (IsBagEmpty())
        {
            RefillBag();
        }

        randomBagTilePos = rnd.Next(0, tileBag.Count);
        //randomBagTilePos = (int)Random.Range(0, tileBag.Count);
        LetterTileModel newTile = tileBag[randomBagTilePos];

        activeTiles.Add(newTile);
        tileBag.Remove(newTile);

        return(newTile);
    }
コード例 #8
0
    void PushNewLetter()
    {
        GameObject      tileGameObject = TileFactoryPool.GetTile();
        LetterTileModel newTileModel   = gameState.PullTileFromBag();
        LetterTileView  tileView       = tileGameObject.GetComponent <LetterTileView> ();

        newTileModel.activateTile(tileView);
        tileView.activate(newTileModel, LetterTileClickHandler);

        belt.AddTile(tileView);

        int num = gameState.GetNumActiveTiles();

        if (num >= maxActiveLetters)
        {
            RemoveOldestLetter();
        }
    }
コード例 #9
0
    void LetterTileClickHandler(LetterTileModel clickedTile)
    {
        switch (clickedTile.state)
        {
        case LetterTileModel.STATE_ONBELT:
        case LetterTileModel.STATE_FALLING:
            clickedTile.state = LetterTileModel.STATE_INPLAY;
            gameState.AddTileToPlay(clickedTile);
            playHolder.addTile(clickedTile.tileView);
            break;

        case LetterTileModel.STATE_INPLAY:
            removeTileFromPlay(clickedTile);
            break;

        case LetterTileModel.STATE_DEAD:
            break;
        }
    }
コード例 #10
0
    void KillTile(LetterTileModel tile)
    {
        if (tile.state == LetterTileModel.STATE_DEAD)
        {
            return;
        }


        tile.state = LetterTileModel.STATE_DEAD;
        gameState.RemoveActiveTile(tile);

        playHolder.removeTile(tile.tileView);
        gameState.RemoveTileFromPlay(tile);
        if (gameState.isTileOnBelt(tile))
        {
            tile.state = LetterTileModel.STATE_ONBELT;
            belt.repositionTiles();
        }

        TileFactoryPool.ReturnTile(tile.tileView.gameObject);
        belt.removeTile(tile.tileView);
        belt.MoveTileToStart(tile.tileView);
        tile.deactivateTile();
    }
コード例 #11
0
 void OnDisable()
 {
     model = null;
 }
コード例 #12
0
 public void RemoveActiveTile(LetterTileModel tile)
 {
     activeTiles.Remove(tile);
 }
コード例 #13
0
 public void AddToTileBag(LetterTileModel _tile)
 {
     tileBag.Add(_tile);
 }
コード例 #14
0
 public void RemoveTileFromPlay(LetterTileModel tile)
 {
     inPlayTiles.Remove(tile);
 }
コード例 #15
0
 public void AddTileToPlay(LetterTileModel tile)
 {
     inPlayTiles.Add(tile);
 }