internal virtual void AddTile( PlayerTrain playerTrain, DominoTileEntity tile, Guid playerId) { throw new IllegalStateActionException(GetType()); }
protected void AddTile( PlayerTrain playerTrain, DominoTileEntity tile) { tile.Link(playerTrain.head); playerTrain.head = tile; }
internal override void AddTile( PlayerTrain playerTrain, DominoTileEntity tile, Guid playerId) { base.AddTile( playerTrain, tile); if (playerId == playerTrain.ownerId) { playerTrain.state = new ClosedPlayerTrainState();; } }
internal override void AddTile( PlayerTrain playerTrain, DominoTileEntity tile, Guid playerId) { if (playerId != playerTrain.ownerId) { throw new ApplicationException("Can't add tile to a closed player train."); } base.AddTile( playerTrain, tile); if (tile.IsDouble()) { playerTrain.state = new OpenPlayerTrainState(); } }
internal override void ForceAddTile( PlayerTrain playerTrain, DominoTileEntity tile ) => base.AddTile(playerTrain, tile);