Пример #1
0
 public override int GetHashCode()
 {
     //unchecked
     {
         int hashCode = DropPieceSimple.GetHashCode();
         hashCode = (hashCode * 397) ^ (Positions?.GetHashCode() ?? 0);
         hashCode = (hashCode * 397) ^ (PositionLerp?.GetHashCode() ?? 0);
         hashCode = (hashCode * 397) ^ (int)CurrentState;
         hashCode = (hashCode * 397) ^ HoldTimer.GetHashCode();
         return(hashCode);
     }
 }
Пример #2
0
 public void TransferTo(DropPiecePreview target)
 {
     for (var c = 0; c < NumColumns; c++)
     {
         for (var r = 0; r < NumRows; r++)
         {
             target._tiles[c, r] = _tiles[c, r];
             _tiles[c, r]        = null;
         }
     }
     target.DropPiece = DropPiece;
     DropPiece        = null;
 }
Пример #3
0
        public DropPiece(DropPieceSimple simple = null)
        {
            Positions    = new PlayfieldPoint[NumColumns];
            PositionLerp = new float[NumColumns];
            // create player block:
            for (var x = 0; x < NumColumns; x++)
            {
                Positions[x] = new PlayfieldPoint();
            }

            CurrentState    = State.Whole;
            DropPieceSimple = simple;
        }
Пример #4
0
        public void Reset(PlayfieldPoint pos, DropPieceSimple simple)
        {
            DropPieceSimple = simple;

            for (var x = 0; x < NumColumns; x++)
            {
                Positions[x].Column = pos.Column + x;
                Positions[x].Row    = pos.Row;
            }

            CurrentState = State.Whole;
            HoldTimer    = HoldTime;
            FastDrop     = false;
        }
Пример #5
0
    public void GenerateTiles(GetPrefabsDelegate getPrefabs, TileAnimParams animParams)
    {
        DropPiece = new DropPieceSimple();
        DropPiece.Reset(true, DropPieceSimple.RandomCell);

        var pfTransform = GameObject.Find("Playfield").transform;

        for (var c = 0; c < NumColumns; c++)
        {
            for (var r = 0; r < NumRows; r++)
            {
                var        cell = DropPiece.Cells[c][r];
                GameObject prefab = null, adornment = null;
                Transform  transform = null;
                getPrefabs(cell, out prefab, out adornment, out transform);
                var tile = new Tile();
                tile.Instantiate(prefab, adornment, Vector3.zero, transform, animParams);
                _tiles[c, r] = tile;
            }
        }
    }
Пример #6
0
        public void Reset(PlayfieldPoint pos, bool allowJewel, DropPieceSimple.GetCellState del = null)
        {
            DropPieceSimple = new DropPieceSimple();

            if (del == null)
            {
                del = DropPieceSimple.RandomCell;
            }

            for (var x = 0; x < NumColumns; x++)
            {
                Positions[x].Column = pos.Column + x;
                Positions[x].Row    = pos.Row;
            }

            DropPieceSimple.Reset(allowJewel, del);

            CurrentState = State.Whole;
            HoldTimer    = HoldTime;
            FastDrop     = false;
        }