private void pop(Tile t) { if (t == null) { return; } Ice iceAboveTile = (Ice)getIceTile(t.getRow(), t.getCol()); if (iceAboveTile != null && !iceAboveTile.isBreakable()) { iceTiles[t.getRow()][t.getCol()] = null; iceAboveTile.pop(); poppedIceCount += 1; } if (!(t is WordTile)) { return; } if (t is RootedTile) { RootedTile tile = (RootedTile)t; tile.pop(); if (!tile.isBreakable()) { return; } } WordTile k = (WordTile)t; if (k.crown) { consumeCrown(k); } k.disappear(); tilePoppedThisTurn.Add(k); setTile(null, k.getRow(), k.getCol()); if (k.blasterDirection == 1) //Horizontal { k.blasterAnimation(); for (int c = 0; c < col; c++) { pop(getTile(k.getRow(), c)); } } else if (k.blasterDirection == 2) //Vertical { k.blasterAnimation(); for (int r = 0; r < row; r++) { pop(getTile(r, k.getCol())); } } else if (k.blasterDirection == 3) //diagonalArrow1 { k.blasterAnimation(); for (int i = 0; i < row; i++) { pop(getTile((k.getRow() + i), (k.getCol() + i))); pop(getTile((k.getRow() - i), (k.getCol() - i))); } } else if (k.blasterDirection == 4) //diagonalArrow2 { k.blasterAnimation(); for (int i = 0; i < row; i++) { pop(getTile((k.getRow() + i), (k.getCol() - i))); pop(getTile((k.getRow() - i), (k.getCol() + i))); } } else if (k.blasterDirection == 5) //UpDown { k.blasterAnimation(); for (int c = 0; c < col; c++) { pop(getTile(k.getRow(), c)); } for (int r = 0; r < row; r++) { pop(getTile(r, k.getCol())); } } else if (k.blasterDirection == 6) //Corner { k.blasterAnimation(); for (int i = 0; i < row; i++) { pop(getTile((k.getRow() + i), (k.getCol() - i))); pop(getTile((k.getRow() - i), (k.getCol() + i))); pop(getTile((k.getRow() + i), (k.getCol() + i))); pop(getTile((k.getRow() - i), (k.getCol() - i))); } } else if (k.blasterDirection == 7) //allDirection { k.blasterAnimation(); for (int i = 0; i < row; i++) { pop(getTile((k.getRow() + i), (k.getCol() - i))); pop(getTile((k.getRow() - i), (k.getCol() + i))); pop(getTile((k.getRow() + i), (k.getCol() + i))); pop(getTile((k.getRow() - i), (k.getCol() - i))); } for (int c = 0; c < col; c++) { pop(getTile(k.getRow(), c)); } for (int r = 0; r < row; r++) { pop(getTile(r, k.getCol())); } } }