Time for action – water in the pipes
Add a method to the GameBoard class to clear the water marker from all pieces:
public void ResetWater() { for (int y = 0; y < GameBoardHeight; y++) for (int x = 0; x < GameBoardWidth; x++) boardSquares[x,y].RemoveSuffix("W"); }
Add a method to the GameBoard class to fill an individual piece with water:
public void FillPiece(int X, int Y) { boardSquares[X,Y].AddSuffix("W"); }
What just happened?
The ResetWater()
method simply loops through each item in the boardSquares
array and removes the W
suffix from the GamePiece. Similarly, to fill a piece with water, the FillPiece()
method adds the W
suffix to the GamePiece. Recall that by having a W
suffix, the GetSourceRect()
method of GamePiece shifts the source rectangle one tile to the right on the sprite sheet, returning the image for a pipe filled with water instead of an empty pipe.
Propagating water
Now that we can fill individual pipes with water, we can...