@@ -25,7 +25,8 @@ GameController::GameController(GameBoard& model, GameView& view) : model(model),
2525
2626 view.addElement (makeViewButtonText (std::bind (&GameController::handleRoadButtonEvent, this , _1), {{0 , 0 }, {0.1 , 0.10 }}, font, fontSize, " Road |" ));
2727 view.addElement (makeViewButtonText (std::bind (&GameController::handleCityButtonEvent, this , _1), {{0.10 , 0.0 }, {0.20 , 0.1 }}, font, fontSize, " City |" ));
28- view.addElement (makeViewButtonText (std::bind (&GameController::handleSettlementButtonEvent, this , _1), {{0.20 , 0.0 }, {0.33 , 0.1 }}, font, fontSize, " Settlement" ));
28+ view.addElement (makeViewButtonText (std::bind (&GameController::handleSettlementButtonEvent, this , _1), {{0.20 , 0.0 }, {0.33 , 0.1 }}, font, fontSize, " Settlement |" ));
29+ view.addElement (makeViewButtonText (std::bind (&GameController::handleWonderButtonEvent, this , _1), {{0.33 , 0.0 }, {0.43 , 0.1 }}, font, fontSize, " Wonder" ));
2930 view.addElement (makeViewButtonText (std::bind (&GameController::nextTurn, this , _1), {{0 , 0.3 }, {0.1 , 0.4 }}, font, fontSize, " End Turn" ));
3031
3132 auto playerTopY = 0.9 ;
@@ -227,6 +228,11 @@ bool GameController::handleBoardEvent(ScreenCoordinate screenCoord) {
227228 model.buyUpgradeOnSettlement (coord, model.getCurrentPlayer ());
228229 handleCancelButtonEvent (screenCoord);
229230 break ;
231+ case BUILDWONDER:
232+ std::cout << " attempting to build a wonder" << std::endl;
233+ model.buyUpgradeOnWonder (coord, model.getCurrentPlayer ());
234+ handleCancelButtonEvent (screenCoord);
235+ break ;
230236 default :
231237 break ;
232238 }
@@ -316,6 +322,21 @@ bool GameController::handleCityButtonEvent(ScreenCoordinate coord) {
316322 return true ;
317323}
318324
325+ /* *
326+ * Handles a click on the "create city" button. Changes the internal state to indicate the user is going to be upgrading settlements to cities on the board.
327+ * @param coord The place the user clicked on screen.
328+ * @return Whether this event was handled by this element. Always true.
329+ */
330+ bool GameController::handleCityButtonEvent (ScreenCoordinate coord) {
331+ if (getState () != BASESTATE) {
332+ return false ;
333+ }
334+
335+ view.setControlStateText (" Click on a settlement/city to upgrade to wonder. (5 of ea rsc)" );
336+ pushState (BUILDWONDER);
337+ return true ;
338+ }
339+
319340
320341/* *
321342 * Handles a click on the road Building Card button. This changes the control state to indicate the user is going to be building roads on the board.
0 commit comments