Skip to content

Commit

Permalink
Merge pull request #13 from B1G-SAM/Add-ons
Browse files Browse the repository at this point in the history
Add battle interface and made some changes to existing classes
  • Loading branch information
B1G-SAM committed Mar 16, 2024
2 parents 176742a + 8ff3e4f commit 818b0d3
Show file tree
Hide file tree
Showing 14 changed files with 126 additions and 16 deletions.
20 changes: 20 additions & 0 deletions src/main/java/BattleInterface/BattleInterface.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
package BattleInterface;

import InteractableEntity.Enemy;
import InteractableEntity.InteractableEntity;
import textbox.PlayerStatus;
import textbox.TextBox;

import java.lang.management.PlatformLoggingMXBean;

public class BattleInterface {
protected PlayerStatus currentPlayer;
protected TextBox currentTextBox;
protected InteractableEntity currentEntity;

public BattleInterface(PlayerStatus player, TextBox text, InteractableEntity entity){
this.currentPlayer = player;
this.currentTextBox = text;
this.currentEntity = entity;
}
}
13 changes: 13 additions & 0 deletions src/main/java/InteractableEntity/Enemy.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
package InteractableEntity;

public class Enemy extends InteractableEntity{
protected int damage;
protected int defence;
protected String currentImage;

public Enemy(int dmg, int def, String img){
this.damage = dmg;
this.defence = def;
this.currentImage = img;
}
}
6 changes: 6 additions & 0 deletions src/main/java/InteractableEntity/InteractableEntity.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
package InteractableEntity;

public abstract class InteractableEntity {
protected String name;

}
10 changes: 7 additions & 3 deletions src/main/java/command/Command.java
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
package command;

import java.util.ArrayList;
import map.AMap;

public abstract class Command {

protected String commandDescription;
protected ArrayList<ArrayList<Character>> currentMap;
protected AMap currentMap;
public abstract void execute();
public Command(){
commandDescription = "Impossible";
Expand All @@ -14,7 +14,11 @@ public Command(){
public String getCommandDescription(){
return commandDescription;
}
public ArrayList<ArrayList<Character>> getCurrentMap(){
public AMap getCurrentMap(){
return currentMap;
}

public void setCurrentMap(AMap givenMap){
currentMap = givenMap;
}
}
2 changes: 1 addition & 1 deletion src/main/java/command/mapmove/InteractingCommand.java
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,6 @@
public class InteractingCommand extends MapMoveCommand {
@Override
public void execute() {

String entityInteractedWith = currentMap.handleInteract();
}
}
1 change: 1 addition & 0 deletions src/main/java/command/mapmove/MovingDownwardCommand.java
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ public class MovingDownwardCommand extends MapMoveCommand {

@Override
public void execute() {
currentMap.movePlayerDownOne();

}
}
2 changes: 1 addition & 1 deletion src/main/java/command/mapmove/MovingForwardCommand.java
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,6 @@
public class MovingForwardCommand extends MapMoveCommand {
@Override
public void execute() {

currentMap.movePlayerUpOne();
}
}
1 change: 1 addition & 0 deletions src/main/java/command/mapmove/MovingLeftCommand.java
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
public class MovingLeftCommand extends MapMoveCommand {
@Override
public void execute() {
currentMap.movePlayerLeftOne();

}
}
1 change: 1 addition & 0 deletions src/main/java/command/mapmove/MovingRightCommand.java
Original file line number Diff line number Diff line change
Expand Up @@ -4,5 +4,6 @@
public class MovingRightCommand extends MapMoveCommand {
@Override
public void execute() {
currentMap.movePlayerRightOne();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -27,10 +27,10 @@ public void startGame() {
while (true) {
String userCommandText = ui.readInCommand();
userCommand = parser.parserCommand(userCommandText);
userCommand.setCurrentMap(map);
userCommand.execute();

map.nextMapBasedOnCommand(userCommand);
ui.printPlayerStatus(playerStatus);
ui.printMap(map);
textBox.nextTextBoxBasedOnMapAndCommand(userCommand, map);
}
}
Expand Down
37 changes: 33 additions & 4 deletions src/main/java/map/Map.java → src/main/java/map/AMap.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
import command.Command;
import java.util.ArrayList;

public abstract class Map {
public abstract class AMap {
protected int width;
protected int height;
protected ArrayList<ArrayList<Character>> storedMap;
Expand Down Expand Up @@ -44,6 +44,7 @@ public void movePlayerUpOne(){
if (this.playerY - 1 >= 0){
storedMap.get(playerY).set(playerX, '.');
storedMap.get(playerY - 1).set(playerX, 'P');
this.playerY -= 1;
}
}

Expand All @@ -52,6 +53,7 @@ public void movePlayerDownOne(){
if (this.playerY + 1 < height){
storedMap.get(playerY).set(playerX, '.');
storedMap.get(playerY + 1).set(playerX, 'P');
this.playerY += 1;
}
}

Expand All @@ -60,6 +62,7 @@ public void movePlayerLeftOne(){
if (this.playerX - 1 >= 0){
storedMap.get(playerY).set(playerX, '.');
storedMap.get(playerY).set(playerX - 1, 'P');
this.playerX -= 1;
}
}

Expand All @@ -68,14 +71,40 @@ public void movePlayerRightOne(){
if (this.playerY + 1 < width){
storedMap.get(playerY).set(playerX, '.');
storedMap.get(playerY).set(playerX + 1, 'P');
this.playerX += 1;
}
}

public void nextMapBasedOnCommand(Command userCommand){
userCommand.execute();
}

public ArrayList<ArrayList<Character>> getMap(){
return storedMap;
}

public String handleInteract() {
if (playerY > 0 && storedMap.get(playerY - 1).get(playerX) != '.') {
return String.valueOf(storedMap.get(playerY - 1).get(playerX));
}

if (playerX < storedMap.get(0).size() - 1 && storedMap.get(playerY).get(playerX + 1) != '.') {
return String.valueOf(storedMap.get(playerY).get(playerX + 1));
}

if (playerY < storedMap.size() - 1 && storedMap.get(playerY + 1).get(playerX) != '.') {
return String.valueOf(storedMap.get(playerY + 1).get(playerX));
}

if (playerX > 0 && storedMap.get(playerY).get(playerX - 1) != '.') {
return String.valueOf(storedMap.get(playerY).get(playerX - 1));
}
return "no interaction";
}


public int getPlayerX(){
return playerX;
}

public int getPlayerY(){
return playerY;
}
}
2 changes: 1 addition & 1 deletion src/main/java/map/FirstMap.java
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
package map;

public class FirstMap extends Map{
public class FirstMap extends AMap{
protected String DIFFICULTY_MODIFIER = "easy"; //can use to determine question difficulty
}
4 changes: 2 additions & 2 deletions src/main/java/textbox/TextBox.java
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
package textbox;

import command.Command;
import map.Map;
import map.AMap;

public class TextBox {
protected String nextMessage;
public void initTextBox(){
this.nextMessage = " ";
}
public void nextTextBoxBasedOnMapAndCommand(Command userCommand, Map map){
public void nextTextBoxBasedOnMapAndCommand(Command userCommand, AMap map){

}
public String getNextMessage(){
Expand Down
39 changes: 37 additions & 2 deletions src/main/java/ui/Ui.java
Original file line number Diff line number Diff line change
@@ -1,11 +1,14 @@
package ui;
import map.Map;
import BattleInterface.BattleInterface;
import map.AMap;
import textbox.PlayerStatus;
import textbox.TextBox;

import java.util.ArrayList;
import java.util.Scanner;
public class Ui {
private static final int DEFAULT_WIDTH_OF_BATTLE_INTERFACE = 50;
private static final int DEFAULT_HEIGHT_OF_BATTLE_INTERFACE = 50;
public String readInCommand(){
return null;
}
Expand All @@ -32,7 +35,7 @@ public void printTextBox(TextBox box){
printDividingLine();
}

public void printMap(Map map){
public void printMap(AMap map){
printDividingLine();
for (ArrayList<Character> row : map.getStoredMap()) {
for (char cell : row) {
Expand All @@ -42,4 +45,36 @@ public void printMap(Map map){
}
printDividingLine();
}

public void printBattleInterface(BattleInterface currentInteraction){
ArrayList<ArrayList<Character>> constructedInterface = new ArrayList<>();

constructedInterface.add(new ArrayList<>());
for (int j = 0; j < DEFAULT_WIDTH_OF_BATTLE_INTERFACE; j++) {
constructedInterface.get(0).add('-');
}

for (int i = 1; i < DEFAULT_HEIGHT_OF_BATTLE_INTERFACE - 1; i++) {
constructedInterface.add(new ArrayList<>());
constructedInterface.get(i).add('|');
for (int j = 1; j < DEFAULT_WIDTH_OF_BATTLE_INTERFACE - 1; j++) {
constructedInterface.get(i).add(' ');
}
constructedInterface.get(i).add('|');
}


constructedInterface.add(new ArrayList<>());
for (int j = 0; j < DEFAULT_WIDTH_OF_BATTLE_INTERFACE; j++) {
constructedInterface.get(DEFAULT_HEIGHT_OF_BATTLE_INTERFACE - 1).add('-');
}


for (ArrayList<Character> row : constructedInterface) {
for (Character c : row) {
System.out.print(c);
}
System.out.println();
}
}
}

0 comments on commit 818b0d3

Please sign in to comment.