@@ -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.82 ;
@@ -223,6 +224,11 @@ bool GameController::handleBoardEvent(ScreenCoordinate screenCoord) {
223224 model.buyUpgradeOnSettlement (coord, model.getCurrentPlayer ());
224225 handleCancelButtonEvent (screenCoord);
225226 break ;
227+ case BUILDWONDER:
228+ std::cout << " attempting to build a wonder" << std::endl;
229+ model.buyUpgradeOnWonder (coord, model.getCurrentPlayer ());
230+ handleCancelButtonEvent (screenCoord);
231+ break ;
226232 default :
227233 break ;
228234 }
@@ -312,6 +318,21 @@ bool GameController::handleCityButtonEvent(ScreenCoordinate coord) {
312318 return true ;
313319}
314320
321+ /* *
322+ * Handles a click on the "create wonder" button. Changes the internal state to indicate the user is going to be upgrading settlements/cities on the board.
323+ * @param coord The place the user clicked on screen.
324+ * @return Whether this event was handled by this element. Always true.
325+ */
326+ bool GameController::handleWonderButtonEvent (ScreenCoordinate coord) {
327+ if (getState () != BASESTATE) {
328+ return false ;
329+ }
330+
331+ view.setControlStateText (" Click on a settlement/city to upgrade to wonder. (5 of ea rsc)" );
332+ pushState (BUILDWONDER);
333+ return true ;
334+ }
335+
315336
316337/* *
317338 * 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