aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/esieequest/controller/commands/BackCommand.java3
-rw-r--r--src/esieequest/controller/commands/GoCommand.java4
-rw-r--r--src/esieequest/controller/commands/NewCommand.java1
-rw-r--r--src/esieequest/controller/commands/TurnCommand.java4
-rw-r--r--src/esieequest/view/Viewable.java15
-rw-r--r--src/esieequest/view/app/UserInterface.java33
-rw-r--r--src/esieequest/view/text/TextInterface.java8
-rw-r--r--src/esieequest/view/web/WebInterface.java9
8 files changed, 37 insertions, 40 deletions
diff --git a/src/esieequest/controller/commands/BackCommand.java b/src/esieequest/controller/commands/BackCommand.java
index 627df59..299bda9 100644
--- a/src/esieequest/controller/commands/BackCommand.java
+++ b/src/esieequest/controller/commands/BackCommand.java
@@ -14,7 +14,8 @@ public class BackCommand implements Executable {
14 public void execute(final String argument, final Game game, final Viewable view) { 14 public void execute(final String argument, final Game game, final Viewable view) {
15 15
16 game.getPlayer().goToPreviousRoom(); 16 game.getPlayer().goToPreviousRoom();
17 view.updateRoom(game.getPlayer().getCurrentRoom()); 17
18 view.updateLocation(game.getPlayer().getCurrentRoom(), game.getPlayer().getCurrentDirection(), game.getPlayer().getCurrentSide());
18 19
19 } 20 }
20 21
diff --git a/src/esieequest/controller/commands/GoCommand.java b/src/esieequest/controller/commands/GoCommand.java
index ccb974b..9ebdf49 100644
--- a/src/esieequest/controller/commands/GoCommand.java
+++ b/src/esieequest/controller/commands/GoCommand.java
@@ -39,8 +39,8 @@ public class GoCommand implements Executable {
39 return; 39 return;
40 } 40 }
41 41
42 view.updateRoom(game.getPlayer().getCurrentRoom()); 42 view.updateLocation(game.getPlayer().getCurrentRoom(), direction, game.getPlayer().getCurrentSide());
43 43
44 // handle challenge mode 44 // handle challenge mode
45 if (game.getPlayer().walk()) { 45 if (game.getPlayer().walk()) {
46 view.echo(Text.CHALLENGE_FAILED.getText()); 46 view.echo(Text.CHALLENGE_FAILED.getText());
diff --git a/src/esieequest/controller/commands/NewCommand.java b/src/esieequest/controller/commands/NewCommand.java
index 3c23882..dcb4f8f 100644
--- a/src/esieequest/controller/commands/NewCommand.java
+++ b/src/esieequest/controller/commands/NewCommand.java
@@ -21,6 +21,7 @@ public class NewCommand implements Executable {
21 game.getPlayer().setCurrentRoom(Room.AMPHITHEATER_SEAT); 21 game.getPlayer().setCurrentRoom(Room.AMPHITHEATER_SEAT);
22 22
23 view.enable(); 23 view.enable();
24 view.updateLocation(game.getPlayer().getCurrentRoom(), game.getPlayer().getCurrentDirection(), game.getPlayer().getCurrentSide());
24 view.echo(Text.WELCOME.getText()); 25 view.echo(Text.WELCOME.getText());
25 26
26 } 27 }
diff --git a/src/esieequest/controller/commands/TurnCommand.java b/src/esieequest/controller/commands/TurnCommand.java
index a03fbab..4f6eb4c 100644
--- a/src/esieequest/controller/commands/TurnCommand.java
+++ b/src/esieequest/controller/commands/TurnCommand.java
@@ -30,8 +30,8 @@ public class TurnCommand implements Executable {
30 final Direction newDirection = currentDirection.rotate(orientation); 30 final Direction newDirection = currentDirection.rotate(orientation);
31 game.getPlayer().setCurrentDirection(newDirection); 31 game.getPlayer().setCurrentDirection(newDirection);
32 32
33 view.updateSide(game.getPlayer().getCurrentSide()); 33 view.updateLocation(game.getPlayer().getCurrentRoom(), newDirection, game.getPlayer().getCurrentSide());
34 34
35 } 35 }
36 36
37} 37}
diff --git a/src/esieequest/view/Viewable.java b/src/esieequest/view/Viewable.java
index 6fc8592..5d2675f 100644
--- a/src/esieequest/view/Viewable.java
+++ b/src/esieequest/view/Viewable.java
@@ -5,6 +5,7 @@ import java.util.HashMap;
5import esieequest.controller.GameEngine; 5import esieequest.controller.GameEngine;
6import esieequest.model.events.Quest; 6import esieequest.model.events.Quest;
7import esieequest.model.items.SimpleItem; 7import esieequest.model.items.SimpleItem;
8import esieequest.model.map.Direction;
8import esieequest.model.map.Room; 9import esieequest.model.map.Room;
9import esieequest.model.map.Side; 10import esieequest.model.map.Side;
10 11
@@ -47,20 +48,16 @@ public interface Viewable {
47 public void disable(); 48 public void disable();
48 49
49 /** 50 /**
50 * Updates the view to match the current room. 51 * Updates the view to match the current location.
51 * 52 *
52 * @param room 53 * @param room
53 * the room to display 54 * the room
54 */ 55 * @param direction
55 public void updateRoom(Room room); 56 * the current direction
56
57 /**
58 * Updates the view to match a side of a room.
59 *
60 * @param side 57 * @param side
61 * the side of a room 58 * the side of a room
62 */ 59 */
63 public void updateSide(Side side); 60 public void updateLocation(Room room, Direction direction, Side side);
64 61
65 /** 62 /**
66 * Updates the view to match the current quest. 63 * Updates the view to match the current quest.
diff --git a/src/esieequest/view/app/UserInterface.java b/src/esieequest/view/app/UserInterface.java
index ba6d786..66a0af1 100644
--- a/src/esieequest/view/app/UserInterface.java
+++ b/src/esieequest/view/app/UserInterface.java
@@ -3,8 +3,10 @@ package esieequest.view.app;
3import java.awt.BorderLayout; 3import java.awt.BorderLayout;
4import java.awt.Dimension; 4import java.awt.Dimension;
5import java.awt.Font; 5import java.awt.Font;
6import java.awt.Graphics;
6import java.awt.event.ActionEvent; 7import java.awt.event.ActionEvent;
7import java.awt.event.ActionListener; 8import java.awt.event.ActionListener;
9import java.awt.image.BufferedImage;
8import java.net.URL; 10import java.net.URL;
9import java.util.HashMap; 11import java.util.HashMap;
10 12
@@ -21,6 +23,7 @@ import esieequest.controller.GameEngine;
21import esieequest.controller.commands.Command; 23import esieequest.controller.commands.Command;
22import esieequest.model.events.Quest; 24import esieequest.model.events.Quest;
23import esieequest.model.items.SimpleItem; 25import esieequest.model.items.SimpleItem;
26import esieequest.model.map.Direction;
24import esieequest.model.map.Orientation; 27import esieequest.model.map.Orientation;
25import esieequest.model.map.Room; 28import esieequest.model.map.Room;
26import esieequest.model.map.Side; 29import esieequest.model.map.Side;
@@ -52,6 +55,7 @@ abstract class UserInterface implements Viewable, ActionListener {
52 public UserInterface() { 55 public UserInterface() {
53 this.buildUI(); 56 this.buildUI();
54 this.inputField.addActionListener(this); 57 this.inputField.addActionListener(this);
58 this.setActionListener(this);
55 this.setControlsState(false); 59 this.setControlsState(false);
56 this.inputField.setEnabled(true); 60 this.inputField.setEnabled(true);
57 } 61 }
@@ -270,15 +274,21 @@ abstract class UserInterface implements Viewable, ActionListener {
270 } 274 }
271 275
272 /** 276 /**
273 * Updates the room illustration. 277 * Updates the room's illustration.
278 *
279 * Placeholder generation from http://stackoverflow.com/a/17802477/1348634
274 */ 280 */
275 private void updateIllustration(final String locationImageName) { 281 private void updateIllustration(final String imageName) {
276 String imageName = locationImageName; 282 final URL imageURL = this.getClass().getClassLoader().getResource(imageName + ".jpg");
277 if (imageName == null) { 283 final StretchIcon imageIcon;
278 imageName = "res/img/placeholder.jpg"; 284 if (imageURL == null) {
285 final BufferedImage bufferedImage = new BufferedImage(240, 135, BufferedImage.TYPE_BYTE_BINARY);
286 final Graphics graphics = bufferedImage.getGraphics();
287 graphics.drawString(imageName, 5, 10 + 5);
288 imageIcon = new StretchIcon(bufferedImage, true);
289 } else {
290 imageIcon = new StretchIcon(imageURL, true);
279 } 291 }
280 final URL imageURL = this.getClass().getClassLoader().getResource(imageName);
281 final StretchIcon imageIcon = new StretchIcon(imageURL, true);
282 this.imageLabel.setIcon(imageIcon); 292 this.imageLabel.setIcon(imageIcon);
283 } 293 }
284 294
@@ -314,14 +324,9 @@ abstract class UserInterface implements Viewable, ActionListener {
314 } 324 }
315 325
316 @Override 326 @Override
317 public void updateRoom(final Room room) { 327 public void updateLocation(final Room room, final Direction direction, final Side side) {
318 // this.updateIllustration(room.getImageName());
319 this.echo(room.getInformations()); 328 this.echo(room.getInformations());
320 } 329 this.updateIllustration(room.name() + "_" + direction.name());
321
322 @Override
323 public void updateSide(final Side side) {
324 // this.updateIllustration(side.getImageName());
325 } 330 }
326 331
327 @Override 332 @Override
diff --git a/src/esieequest/view/text/TextInterface.java b/src/esieequest/view/text/TextInterface.java
index c94eb1a..8f37c53 100644
--- a/src/esieequest/view/text/TextInterface.java
+++ b/src/esieequest/view/text/TextInterface.java
@@ -6,6 +6,7 @@ import esieequest.controller.GameEngine;
6import esieequest.controller.commands.Command; 6import esieequest.controller.commands.Command;
7import esieequest.model.events.Quest; 7import esieequest.model.events.Quest;
8import esieequest.model.items.SimpleItem; 8import esieequest.model.items.SimpleItem;
9import esieequest.model.map.Direction;
9import esieequest.model.map.Room; 10import esieequest.model.map.Room;
10import esieequest.model.map.Side; 11import esieequest.model.map.Side;
11import esieequest.view.Viewable; 12import esieequest.view.Viewable;
@@ -82,16 +83,11 @@ abstract class TextInterface implements Viewable {
82 } 83 }
83 84
84 @Override 85 @Override
85 public void updateRoom(final Room room) { 86 public void updateLocation(Room room, Direction direction, Side side) {
86 this.echo(room.getInformations()); 87 this.echo(room.getInformations());
87 } 88 }