Juliakn66
2 years ago
40 changed files with 1574 additions and 487 deletions
-
27README.md
-
24playerconfig.json
-
3src/main/java/org/bitbiome/Boot.java
-
96src/main/java/org/bitbiome/classes/BlackJack.java
-
6src/main/java/org/bitbiome/classes/Colors.java
-
24src/main/java/org/bitbiome/classes/CreateLocations.java
-
37src/main/java/org/bitbiome/classes/InteractionLoop.java
-
37src/main/java/org/bitbiome/classes/JsonParser.java
-
273src/main/java/org/bitbiome/classes/Shop.java
-
11src/main/java/org/bitbiome/classes/TravelEngine.java
-
109src/main/java/org/bitbiome/commands/BlackJackCommand.java
-
4src/main/java/org/bitbiome/commands/CommandAPI.java
-
2src/main/java/org/bitbiome/commands/CommandListener.java
-
19src/main/java/org/bitbiome/commands/HelpCommand.java
-
14src/main/java/org/bitbiome/commands/LookaroundCommand.java
-
7src/main/java/org/bitbiome/commands/QuitCommand.java
-
107src/main/java/org/bitbiome/commands/QuizCommand.java
-
85src/main/java/org/bitbiome/commands/ShopCommand.java
-
15src/main/java/org/bitbiome/commands/TravelCommand.java
-
43src/main/java/org/bitbiome/entities/Item.java
-
8src/main/java/org/bitbiome/entities/Location.java
-
4src/main/java/org/bitbiome/entities/Mob.java
-
15src/main/java/org/bitbiome/entities/Player.java
-
54src/main/resources/gameconfig.json
-
25src/main/resources/items.json
-
8src/main/resources/playerconfig.json
-
83src/main/resources/quiz.json
-
44src/test/java/org/bitbiome/classes/BlackJackTest.java
-
23src/test/java/org/bitbiome/classes/ColorsTest.java
-
2src/test/java/org/bitbiome/commands/CollectCommandTest.java
-
25src/test/java/org/bitbiome/commands/HelpCommandTest.java
-
4src/test/java/org/bitbiome/commands/InventoryCommandTest.java
-
20src/test/java/org/bitbiome/commands/LookaroundCommandTest.java
-
4src/test/java/org/bitbiome/commands/QuitCommandTest.java
-
36src/test/java/org/bitbiome/commands/QuizCommandTest.java
-
87src/test/java/org/bitbiome/commands/ShopCommandTest.java
-
50src/test/java/org/bitbiome/entitiesTest/ItemTest.java
-
24src/test/java/org/bitbiome/entitiesTest/LocationTest.java
-
35src/test/java/org/bitbiome/entitiesTest/MobTest.java
-
43src/test/java/org/bitbiome/entitiesTest/PlayerTest.java
@ -0,0 +1,27 @@ |
|||
*Hier Logo* |
|||
--- |
|||
# BitBiome - TextAdventure |
|||
## What is the game about? |
|||
BitBiome is an exciting text adventure. Whether you want to travel through exciting biomes or measure with dangerous opponents. You can prove your knowledge in a quiz and buy new items in the shop as a reward. |
|||
BitBiome is a game for everyone who likes dangerous adventures. |
|||
|
|||
## Commands: |
|||
- help |
|||
- exit / quit |
|||
- quiz |
|||
- quitquiz / canclequiz |
|||
- shop |
|||
- travel |
|||
- location |
|||
|
|||
## Our developers: |
|||
- David Hermann |
|||
- Julia Kunze |
|||
- Frederike von Gruben |
|||
- Philipp Völler |
|||
- Tanja Herche |
|||
- Max Gerbeth |
|||
|
|||
--- |
|||
|
|||
*Fulda University of Applied Sciences - Applied Computer Science (#AI1001 Papendieck)* |
@ -0,0 +1,24 @@ |
|||
{ |
|||
"gold": 0, |
|||
"name": "null", |
|||
"hp": 10, |
|||
"inventory": [ |
|||
{ |
|||
"gold": 5, |
|||
"damage": "10", |
|||
"amount": 5, |
|||
"durability": 1000, |
|||
"name": "Holz", |
|||
"doesDamage": true |
|||
}, |
|||
{ |
|||
"gold": 5, |
|||
"damage": "10", |
|||
"amount": 5, |
|||
"durability": 1000, |
|||
"name": "Stein", |
|||
"doesDamage": true |
|||
} |
|||
], |
|||
"currentLocation": "Wald" |
|||
} |
@ -0,0 +1,96 @@ |
|||
package org.bitbiome.classes; |
|||
|
|||
import java.util.Random; |
|||
|
|||
public class BlackJack { |
|||
|
|||
public enum Entity { |
|||
PLAYER(1), BOT(2); |
|||
private int value; |
|||
|
|||
private Entity(int value) { |
|||
this.value = value; |
|||
} |
|||
|
|||
public int getValue() { |
|||
return value; |
|||
} |
|||
//Just for testing from some SO answers, but no use |
|||
public void setValue(int value) { |
|||
this.value = value; |
|||
} |
|||
|
|||
public static Entity getEventStatusById(int id) { |
|||
|
|||
Entity entity = null; |
|||
|
|||
switch (id) { |
|||
case 1 -> entity = PLAYER; |
|||
case 2 -> entity = BOT; |
|||
default -> { |
|||
} |
|||
} |
|||
return entity; |
|||
} |
|||
} |
|||
|
|||
private String playerName; |
|||
private int playerPoints; |
|||
private int botPoints; |
|||
private boolean playerIn; |
|||
private boolean botIn; |
|||
|
|||
public BlackJack(String playerName) { |
|||
this.playerName = playerName; |
|||
this.playerPoints = 0; |
|||
this.botPoints = 0; |
|||
this.playerIn = true; |
|||
this.botIn = true; |
|||
} |
|||
|
|||
public String getPlayerName(Entity entity) { |
|||
return entity == Entity.PLAYER ? playerName : "BitBiome"; |
|||
} |
|||
|
|||
public int getPoints(Entity entity) { |
|||
return entity == Entity.PLAYER ? playerPoints : botPoints; |
|||
} |
|||
|
|||
public boolean isIn(Entity entity) { |
|||
return entity == Entity.PLAYER ? playerIn : botIn; |
|||
} |
|||
|
|||
public Entity getEntity(int ID) { |
|||
return Entity.getEventStatusById(ID); |
|||
} |
|||
|
|||
public void addPoints(Entity entity, int points) { |
|||
if (entity == Entity.BOT) botPoints += points; |
|||
if (entity == Entity.PLAYER) playerPoints += points; |
|||
} |
|||
|
|||
public boolean botWantsToPlay() { |
|||
if (botIn) { |
|||
if (botPoints <= 10) { |
|||
return true; |
|||
} else if (botPoints <= 17) { |
|||
int r = new Random().nextInt(1, 9); |
|||
if (r <= 3) { |
|||
botIn = false; |
|||
return false; |
|||
} else { |
|||
return true; |
|||
} |
|||
} else { |
|||
botIn = false; |
|||
return false; |
|||
} |
|||
} else { |
|||
return false; |
|||
} |
|||
} |
|||
|
|||
public void playerOut() { |
|||
this.playerIn = false; |
|||
} |
|||
} |
@ -1,24 +0,0 @@ |
|||
package org.bitbiome.classes; |
|||
|
|||
import org.bitbiome.entities.Item; |
|||
import org.bitbiome.entities.Location; |
|||
import org.bitbiome.entities.Mob; |
|||
|
|||
import java.util.ArrayList; |
|||
|
|||
public class CreateLocations { |
|||
|
|||
public static Location createForest() { |
|||
ArrayList<Item> items = new ArrayList<>(); |
|||
ArrayList<Mob> mobs = new ArrayList<>(); |
|||
String name = "Wald"; |
|||
return new Location(name, mobs, items); |
|||
} |
|||
|
|||
public static Location createBeach() { |
|||
ArrayList<Item> items = new ArrayList<>(); |
|||
ArrayList<Mob> mobs = new ArrayList<>(); |
|||
String name = "Strand"; |
|||
return new Location(name, mobs, items); |
|||
} |
|||
} |
@ -0,0 +1,273 @@ |
|||
package org.bitbiome.classes; |
|||
|
|||
import org.bitbiome.commands.BlackJackCommand; |
|||
import org.bitbiome.commands.QuizCommand; |
|||
import org.bitbiome.entities.Item; |
|||
import org.json.JSONArray; |
|||
import org.json.JSONObject; |
|||
|
|||
import java.io.File; |
|||
import java.nio.file.Files; |
|||
import java.nio.file.Paths; |
|||
import java.util.ArrayList; |
|||
import java.util.HashSet; |
|||
import java.util.Random; |
|||
import java.util.Scanner; |
|||
|
|||
public class Shop { |
|||
public ArrayList<Item> allItems; |
|||
public ArrayList<Item> currentShopItems; |
|||
public QuizCommand quizCommand = new QuizCommand(); |
|||
public BlackJackCommand blackJackCommand = new BlackJackCommand(); |
|||
public Scanner scanner; |
|||
public boolean isRunning; |
|||
public String message; |
|||
public TravelEngine travelEngine; |
|||
|
|||
public Shop(Scanner scanner, boolean isRunning, String message, TravelEngine travelEngin) { |
|||
this.scanner = scanner; |
|||
this.message = message; |
|||
this.isRunning = isRunning; |
|||
this.travelEngine = travelEngin; |
|||
|
|||
try { |
|||
allItems = loadAllItems(); |
|||
currentShopItems = loadPartofItems(allItems, 3); |
|||
} catch (Exception e) { |
|||
e.printStackTrace(); |
|||
} |
|||
} |
|||
|
|||
public boolean buy(String itemName, int amount) { |
|||
// Create File Objects |
|||
currentShopItems = loadCurrentShopItems(); |
|||
File filePlayerConfig = new File("src/main/resources/playerconfig.json"); |
|||
File fileGameConfig = new File("src/main/resources/gameconfig.json"); |
|||
File fileItem = new File("src/main/resources/items.json"); |
|||
try { |
|||
// Create JSONObjects |
|||
String content1 = new String(Files.readAllBytes(Paths.get(filePlayerConfig.toURI())), "UTF-8"); |
|||
JSONObject playerConfig = new JSONObject(content1); |
|||
|
|||
String content2 = new String(Files.readAllBytes(Paths.get(fileGameConfig.toURI())), "UTF-8"); |
|||
JSONObject gameConfig = new JSONObject(content2); |
|||
|
|||
String content3 = new String(Files.readAllBytes(Paths.get(fileItem.toURI())), "UTF-8"); |
|||
JSONArray itemJSON = new JSONArray(content3); |
|||
|
|||
// Test if item still available in the shop |
|||
int itemIndex = -1; |
|||
for (int i = 0; i < currentShopItems.size(); i++) { |
|||
if (currentShopItems.get(i).getName().equals(itemName)) { |
|||
itemIndex = i; |
|||
} |
|||
} |
|||
if (itemIndex == -1) { |
|||
System.out.println( |
|||
Colors.ANSI_BG_RED + Colors.ANSI_BLACK + "Dieses Item gibt es nicht!" + Colors.ANSI_RESET); |
|||
return false; |
|||
} |
|||
if (!(currentShopItems.get(itemIndex).getAmount() > 0)) { |
|||
System.out.println( |
|||
Colors.ANSI_BG_RED + Colors.ANSI_BLACK + "Es gibt zu wenige Items!" + Colors.ANSI_RESET); |
|||
return false; |
|||
} |
|||
// Test if the player has enough gold |
|||
int costs = currentShopItems.get(itemIndex).getGold() * amount; |
|||
int gold = (int) playerConfig.get("gold"); |
|||
if (!(gold >= costs)) { |
|||
System.out |
|||
.println(Colors.ANSI_BG_RED + Colors.ANSI_BLACK + "Du hast zu wenig Gold!" + Colors.ANSI_RESET); |
|||
return false; |
|||
} |
|||
|
|||
// Player gold subtract |
|||
playerConfig.put("gold", subtractGold(gold, costs)); |
|||
|
|||
// Gameconfig amount reduese |
|||
JSONArray jsonArray2 = gameConfig.getJSONArray("shopitems"); |
|||
int intNewAmount; |
|||
|
|||
for (int i = 0; i < jsonArray2.length(); i++) { |
|||
JSONObject tempJSON = jsonArray2.getJSONObject(i); |
|||
if (tempJSON.getString("name").equals(itemName)) { |
|||
intNewAmount = tempJSON.getInt("amount") - amount; |
|||
jsonArray2.remove(i); |
|||
tempJSON.put("amount", intNewAmount); |
|||
jsonArray2.put(tempJSON); |
|||
gameConfig.put("shopitems", jsonArray2); |
|||
JsonParser.writeObject("src/main/resources/gameconfig.json", gameConfig); |
|||
currentShopItems = loadCurrentShopItems(); |
|||
break; |
|||
} |
|||
} |
|||
|
|||
// Give Player the Item |
|||
JSONArray jsonArray = playerConfig.getJSONArray("inventory"); |
|||
int newAmount; |
|||
for (int i = 0; i < jsonArray.length(); i++) { |
|||
JSONObject tempJSON = jsonArray.getJSONObject(i); |
|||
if (tempJSON.getString("name").equals(itemName)) { |
|||
newAmount = tempJSON.getInt("amount") + amount; |
|||
jsonArray.remove(i); |
|||
tempJSON.put("amount", newAmount); |
|||
jsonArray.put(tempJSON); |
|||
playerConfig.put("inventory", jsonArray); |
|||
JsonParser.writeObject("src/main/resources/playerconfig.json", playerConfig); |
|||
return true; |
|||
} |
|||
} |
|||
|
|||
// Item do not exist in the playerinventory |
|||
int durability = 0; |
|||
for (int i = 0; i < itemJSON.length(); i++) { |
|||
JSONObject tempJSON = itemJSON.getJSONObject(i); |
|||
if (tempJSON.getString("name").equals(itemName)) { |
|||
durability = (int) tempJSON.get("durability"); |
|||
} |
|||
} |
|||
|
|||
JSONObject inventory = new JSONObject(); |
|||
inventory.put("name", itemName); |
|||
inventory.put("amount", 1); |
|||
inventory.put("durability", durability); |
|||
|
|||
jsonArray.put(inventory); |
|||
playerConfig.put("inventory", jsonArray); |
|||
JsonParser.writeObject("src/main/resources/playerconfig.json", playerConfig); |
|||
|
|||
} catch (Exception e) { |
|||
e.printStackTrace(); |
|||
} |
|||
|
|||
return true; |
|||
} |
|||
|
|||
private ArrayList<Item> loadAllItems() { |
|||
ArrayList<Item> arrayList = new ArrayList<>(); |
|||
JSONArray itemJSON = returnJSONArrayOfAllItems(); |
|||
|
|||
arrayList = addToList(itemJSON, arrayList, "amountShop"); |
|||
return arrayList; |
|||
} |
|||
|
|||
public static JSONArray returnJSONArrayOfAllItems() { |
|||
File file = new File("src/main/resources/items.json"); |
|||
JSONArray itemJSON = null; |
|||
try { |
|||
String content3 = new String(Files.readAllBytes(Paths.get(file.toURI())), "UTF-8"); |
|||
itemJSON = new JSONArray(content3); |
|||
} catch (Exception e) { |
|||
e.printStackTrace(); |
|||
} |
|||
return itemJSON; |
|||
} |
|||
|
|||
public ArrayList<Item> loadCurrentShopItems() { |
|||
|
|||
ArrayList<Item> arrayList = new ArrayList<>(); |
|||
JSONObject jsonObject = JsonParser.getJSONObject("src/main/resources/gameconfig.json"); |
|||
JSONArray jsonArray = jsonObject.getJSONArray("shopitems"); |
|||
|
|||
return addToList(jsonArray, arrayList, "amount"); |
|||
} |
|||
|
|||
public JSONObject getItemByName(String itemName, JSONArray itemArray) { |
|||
for (int i = 0; i < itemArray.length(); i++) { |
|||
if (itemArray.getJSONObject(i).getString("name").equals(itemName)) { |
|||
return itemArray.getJSONObject(i); |
|||
} |
|||
} |
|||
return null; |
|||
} |
|||
|
|||
public ArrayList<Item> addToList(JSONArray itemJSON, ArrayList<Item> arrayList, String key) { |
|||
JSONArray allItems = returnJSONArrayOfAllItems(); |
|||
for (int i = 0; i < itemJSON.length(); i++) { |
|||
JSONObject tempJSON = itemJSON.getJSONObject(i); |
|||
String damage; |
|||
boolean doesDmg; |
|||
if (key.equals("amount")) { |
|||
damage = getItemByName(tempJSON.getString("name"), allItems).getString("damage"); |
|||
} else { |
|||
damage = tempJSON.getString("damage"); |
|||
} |
|||
doesDmg = !damage.equals("0") ? false : true; |
|||
arrayList.add(new Item(tempJSON.getString("name"), doesDmg, damage, tempJSON.getInt(key), |
|||
tempJSON.getInt("gold"))); |
|||
} |
|||
return arrayList; |
|||
} |
|||
|
|||
private ArrayList<Item> loadPartofItems(ArrayList<Item> alleItems, int itemCount) { |
|||
ArrayList<Item> arrayList = new ArrayList<>(); |
|||
try { |
|||
File fileGameConfig = new File("src/main/resources/gameconfig.json"); |
|||
String content2 = new String(Files.readAllBytes(Paths.get(fileGameConfig.toURI())), "UTF-8"); |
|||
JSONObject gameConfig = new JSONObject(content2); |
|||
|
|||
//JSONArray jsonArray = gameConfig.getJSONArray("shopitems"); |
|||
HashSet<Integer> hashSet = new HashSet<>(); |
|||
JSONArray shopitems = new JSONArray(); |
|||
Random random = new Random(); |
|||
while (hashSet.size() < itemCount) { |
|||
int rand = random.nextInt(alleItems.size()); |
|||
if (!hashSet.contains(rand)) { |
|||
hashSet.add(rand); |
|||
arrayList.add(alleItems.get(rand)); |
|||
JSONObject jsonObject = new JSONObject(); |
|||
jsonObject.put("name", alleItems.get(rand).getName()); |
|||
jsonObject.put("amount", alleItems.get(rand).getAmount()); |
|||
jsonObject.put("gold", alleItems.get(rand).getGold()); |
|||
shopitems.put(jsonObject); |
|||
} |
|||
} |
|||
// write in gameconfig.json |
|||
gameConfig.remove("shopitems"); |
|||
gameConfig.put("shopitems", shopitems); |
|||
JsonParser.writeObject("src/main/resources/gameconfig.json", gameConfig); |
|||
|
|||
} catch (Exception e) { |
|||
e.printStackTrace(); |
|||
} |
|||
|
|||
return arrayList; |
|||
} |
|||
|
|||
public void itemRotation() { |
|||
try { |
|||
currentShopItems = loadPartofItems(allItems, 3); |
|||
} catch (Exception e) { |
|||
e.printStackTrace(); |
|||
} |
|||
} |
|||
|
|||
public void printCurrentShopItems() { |
|||
printArrayList(currentShopItems); |
|||
} |
|||
|
|||
public void quiz() { |
|||
quizCommand.performCommand(scanner, isRunning, message, travelEngine); |
|||
} |
|||
|
|||
public void blackJack() { |
|||
System.out.println(""); |
|||
blackJackCommand.performCommand(scanner, isRunning, message, travelEngine); |
|||
System.out.println(""); |
|||
} |
|||
|
|||
private void printArrayList(ArrayList<Item> arrayList) { |
|||
System.out.println(""); |
|||
for (int i = 0; i < arrayList.size(); i++) { |
|||
if (arrayList.get(i).getAmount() != 0) { |
|||
System.out.println(arrayList.get(i).getName() + " | Anzahl: " + arrayList.get(i).getAmount() |
|||
+ " | Kosten: " + arrayList.get(i).getGold()); |
|||
} |
|||
} |
|||
System.out.println(""); |
|||
} |
|||
|
|||
public int subtractGold(int gold, int cost) { |
|||
return gold - cost; |
|||
} |
|||
} |
@ -0,0 +1,109 @@ |
|||
package org.bitbiome.commands; |
|||
|
|||
|
|||
import org.bitbiome.classes.BlackJack; |
|||
import org.bitbiome.classes.TravelEngine; |
|||
|
|||
import java.util.Random; |
|||
import java.util.Scanner; |
|||
|
|||
public class BlackJackCommand implements CommandAPI { |
|||
private boolean over; |
|||
@Override |
|||
public void performCommand(Scanner scanner, boolean isRunning, String message, TravelEngine travelEngine) { |
|||
|
|||
System.out.println("Du hast das Spiel BlackJack gestartet. Die Spielregeln lauten wie folgt: Du und dein Gegner bekommen jede Runde Zahlen von 4 - 11. \nDerjenige, der zuerst 21 Punkte hat gewinnt. Derjenige, der über 21 Punkte hat verliert. Möchte keiner mehr Karten ziehen, gewinnt der mit dem höchsten Blatt!\nViel Spaß!"); |
|||
|
|||
over = false; |
|||
spielen(); |
|||
} |
|||
Scanner sc; |
|||
public void spielen() { |
|||
BlackJack bj = new BlackJack("Dave"); |
|||
sc = new Scanner(System.in); |
|||
BlackJack.Entity player = bj.getEntity(1); |
|||
while (!over) { |
|||
int r = new Random().nextInt(4, 11); |
|||
bj.addPoints(player, r); |
|||
System.out.println(bj.getPlayerName(player) + " hat " + r + " bekommen. Er hat insgesamt " + bj.getPoints(player) + "."); |
|||
|
|||
if (bj.getPoints(player) >= 21) { |
|||
over21(player, bj); |
|||
has21(player, bj); |
|||
over = true; |
|||
break; |
|||
} |
|||
System.out.print("Weiter?"); |
|||
|
|||
if (player == BlackJack.Entity.BOT) { |
|||
if (bj.botWantsToPlay()) { |
|||
System.out.println("Na klar!"); |
|||
} else { |
|||
System.out.println("Nope, ich bin fertig."); |
|||
} |
|||
} else { |
|||
String eingabe = sc.nextLine(); |
|||
if (!eingabe.toLowerCase().startsWith("j")) { |
|||
bj.playerOut(); |
|||
} |
|||
} |
|||
|
|||
|
|||
player = switchPlayer(player, bj); |
|||
|
|||
} |
|||
} |
|||
|
|||
public void over21(BlackJack.Entity player, BlackJack bj) { |
|||
if (bj.getPoints(player) > 21) { |
|||
over = true; |
|||
System.out.println(bj.getPlayerName(player) + " hat über 21 Punkte und damit verloren."); |
|||
} |
|||
|
|||
} |
|||
|
|||
|
|||
public void has21(BlackJack.Entity player, BlackJack bj) { |
|||
if (bj.getPoints(player) == 21) { |
|||
System.out.println(bj.getPlayerName(player) + " hat gewonnen! Du hast 21 Punkte!"); |
|||
over = true; |
|||
} |
|||
} |
|||
|
|||
public BlackJack.Entity switchPlayer(BlackJack.Entity player, BlackJack bj) { |
|||
BlackJack.Entity BOT = BlackJack.Entity.BOT; |
|||
BlackJack.Entity PLAYER = BlackJack.Entity.PLAYER; |
|||
if (bj.isIn(BOT) || bj.isIn(PLAYER)) { |
|||
if (player == PLAYER) { |
|||
if (bj.isIn(BOT)) { |
|||
return BOT; |
|||
} |
|||
return PLAYER; |
|||
} else { |
|||
if (bj.isIn(PLAYER)) { |
|||
return PLAYER; |
|||
} |
|||
return BOT; |
|||
} |
|||
} else { |
|||
over = true; |
|||
getWinner(bj); |
|||
return null; |
|||
} |
|||
} |
|||
|
|||
|
|||
public void getWinner(BlackJack bj) { |
|||
BlackJack.Entity entity; |
|||
if (bj.getPoints(BlackJack.Entity.BOT) < bj.getPoints(BlackJack.Entity.PLAYER)) { |
|||
entity = BlackJack.Entity.PLAYER; |
|||
System.out.println(bj.getPlayerName(entity) + " hat gewonnen, da er mehr Punkte hat!"); |
|||
} else if (bj.getPoints(BlackJack.Entity.BOT) == bj.getPoints(BlackJack.Entity.PLAYER)){ |
|||
System.out.println("Es ist Gleichstand!"); |
|||
} else { |
|||
entity = BlackJack.Entity.BOT; |
|||
System.out.println(bj.getPlayerName(entity) + " hat gewonnen, da er mehr Punkte hat!"); |
|||
} |
|||
|
|||
} |
|||
} |
@ -0,0 +1,107 @@ |
|||
package org.bitbiome.commands; |
|||
|
|||
|
|||
import org.bitbiome.classes.Colors; |
|||
import org.bitbiome.classes.JsonParser; |
|||
import org.json.JSONArray; |
|||
import org.json.JSONObject; |
|||
import org.bitbiome.classes.TravelEngine; |
|||
|
|||
|
|||
import java.util.Date; |
|||
import java.util.Random; |
|||
import java.util.Scanner; |
|||
|
|||
public class QuizCommand { |
|||
private Scanner quizScanner; |
|||
|
|||
public void performCommand(Scanner scanner, boolean isRunning, String message, TravelEngine travelEngine) { |
|||
quizScanner = new Scanner(System.in); |
|||
|
|||
String path = "src/main/resources/quiz.json"; |
|||
JSONObject quiz = JsonParser.getJSONObject(path); |
|||
|
|||
long diffTime = canPlayAgain(quiz.getLong("lastPlayed")); |
|||
if (diffTime > 0) { |
|||
print(Colors.ANSI_BG_RED + "Du darfst erst in " + diffTime / 1000 / 60 + " Minuten spielen." + Colors.ANSI_RESET + "\n"); |
|||
return; |
|||
} |
|||
|
|||
JSONArray fragen = quiz.getJSONArray("Quiz"); |
|||
JSONObject frage = fragen.getJSONObject(random(fragen.length())); |
|||
|
|||
JSONArray antworten = frage.getJSONArray("antworten"); |
|||
|
|||
|
|||
String korrekteAntwort = frage.getString("korrekteAntwort"); |
|||
|
|||
print(starterMessage()); |
|||
|
|||
print(generateQuestion(frage, antworten)); |
|||
|
|||
int eingabe = quizScanner.nextInt(); |
|||
|
|||
if (answerIsCorrect(eingabe, korrekteAntwort, antworten)) { |
|||
int neuerStand = addGold(); |
|||
print(Colors.ANSI_BG_GREEN + "Richtig! Du hast 5 Münzen verdient." + Colors.ANSI_RESET + Colors.ANSI_CYAN + "\nDein Münzstand beträgt: " + Colors.ANSI_RESET + Colors.ANSI_BLUE + neuerStand + Colors.ANSI_RESET); |
|||
} else { |
|||
print(Colors.ANSI_BG_RED + "Leider falsch... Richtig ist: " + korrekteAntwort + Colors.ANSI_RESET + "\n"); |
|||
} |
|||
|
|||
print(endMessage()); |
|||
|
|||
Date d = new Date(); |
|||
long lastPlayed = d.getTime(); |
|||
quiz.put("lastPlayed", lastPlayed); |
|||
JsonParser.writeObject(path, quiz); |
|||
} |
|||
|
|||
public static boolean answerIsCorrect(int picked, String answer, JSONArray answers) { |
|||
return answers.getString(picked - 1).equalsIgnoreCase(answer); |
|||
} |
|||
|
|||
public static String print(String message) { |
|||
System.out.println(message); |
|||
return message; |
|||
} |
|||
|
|||
public static int random(int length) { |
|||
return new Random().nextInt(length); |
|||
} |
|||
|
|||
public static String generateQuestion(JSONObject frage, JSONArray answers) { |
|||
StringBuilder sb = new StringBuilder(); |
|||
sb.append(frage.getString("frage")).append("\n"); |
|||
for (int i = 0; i < answers.length(); i++) { |
|||
sb.append(i+1).append(". ").append(answers.getString(i)).append("\n"); |
|||
} |
|||
return sb.toString(); |
|||
} |
|||
|
|||
public static int addGold() { |
|||
String playerpath = "src/main/resources/playerconfig.json"; |
|||
JSONObject playerconfig = JsonParser.getJSONObject(playerpath); |
|||
int gold = playerconfig.getInt("gold"); |
|||
gold = gold + 5; |
|||
playerconfig.put("gold", gold); |
|||
JsonParser.writeObject(playerpath, playerconfig); |
|||
return gold; |
|||
} |
|||
|
|||
public static long canPlayAgain(long lastPlayedTime) { |
|||
long currentTime = System.currentTimeMillis(); |
|||
long minTime = lastPlayedTime + (60 * 5 * 1000); |
|||
return minTime - currentTime; |
|||
} |
|||
|
|||
public static String starterMessage(){ |
|||
return Colors.ANSI_CYAN + "Du hast das Quiz gestartet! Hinweis: Wähle deine Antwort, indem du die Zahl (1-4) eingibst. Ist deine Lösung richtig, erhälst du 5 Münzen. Viel Erfolg!" + Colors.ANSI_RESET + " \n"; |
|||
|
|||
} |
|||
|
|||
public static String endMessage(){ |
|||
return Colors.ANSI_CYAN + "Das Quiz ist vorbei!" + Colors.ANSI_RESET; |
|||
} |
|||
} |
|||
|
|||
|
@ -0,0 +1,85 @@ |
|||
package org.bitbiome.commands; |
|||
|
|||
import org.bitbiome.classes.BlackJack; |
|||
import org.bitbiome.classes.Colors; |
|||
import org.bitbiome.classes.Shop; |
|||
import org.bitbiome.classes.TravelEngine; |
|||
import org.bitbiome.entities.Item; |
|||
|
|||
import java.util.ArrayList; |
|||
import java.util.Scanner; |
|||
|
|||
public class ShopCommand implements CommandAPI{ |
|||
|
|||
Shop shop; |
|||
BlackJack blackJack; |
|||
public ShopCommand(){ |
|||
|
|||
} |
|||
|
|||
@Override |
|||
public void performCommand(Scanner scanner, boolean isRunning, String message, TravelEngine travelEngine) { |
|||
shop = new Shop(scanner, isRunning, message, travelEngine); |
|||
blackJack = new BlackJack(travelEngine.getPlayer().getName()); |
|||
System.out.println(Colors.ANSI_BG_YELLOW + Colors.ANSI_BLACK + "Willkommen im Shop!" + Colors.ANSI_RESET); |
|||
ArrayList<Item> currentItems = shop.loadCurrentShopItems(); |
|||
|
|||
//whileloop for userinputs in the shop |
|||
while (true){ |
|||
System.out.println("Was willst Du hier im Shop?"); |
|||
System.out.println(Colors.ANSI_CYAN + "Etwas kaufen: 1"); |
|||
System.out.println("Das Quiz spielen: 2"); |
|||
System.out.println("Blackjack spielen: 3"); |
|||
System.out.println("Den Shop verlassen: 4" + Colors.ANSI_RESET); |
|||
|
|||
String input = scanner.nextLine(); |
|||
if(validInput(input)){ |
|||
if(input.equals("1")){ |
|||
System.out.println("Folgende Items sind im Shop: "); |
|||
for(int i = 0; i < currentItems.size(); i++){ |
|||
System.out.println((i + 1) + ". " + currentItems.get(i).getName() + " | Anzahl: " + currentItems.get(i).getAmount() + " | Gold: " + currentItems.get(i).getGold()); |
|||
} |
|||
System.out.println("0 Eingeben um den Shop zu verlassen."); |
|||
System.out.println(""); |
|||
System.out.print("Welches Item moechtest du kaufen? "); |
|||
String itemNumber = scanner.nextLine(); |
|||
if(!itemNumber.equals("0")) { |
|||
System.out.print("Anzahl eingeben: "); |
|||
String amount = scanner.nextLine(); |
|||
try { |
|||
if ((Integer.parseInt(amount) <= currentItems.get(Integer.parseInt(itemNumber) - 1).getAmount()) && ((Integer.parseInt(amount) - 1) > -1)) { |
|||
boolean bool = shop.buy(currentItems.get(Integer.parseInt(itemNumber) - 1).getName(), Integer.parseInt(amount)); |
|||
currentItems = shop.loadCurrentShopItems(); |
|||
if (bool) { |
|||
System.out.println(""); |
|||
System.out.println(Colors.ANSI_BG_GREEN + Colors.ANSI_BLACK + "Vielen Dank für Ihren Einkauf!" + Colors.ANSI_RESET); |
|||
System.out.println(""); |
|||
} else { |
|||
System.out.println(Colors.ANSI_BG_RED + Colors.ANSI_BLACK + "Fehler!" + Colors.ANSI_RESET); |
|||
} |
|||
} else { |
|||
System.out.println(Colors.ANSI_BG_RED + Colors.ANSI_BLACK + "Fehler!" + Colors.ANSI_RESET); |
|||
} |
|||
}catch (Exception e){ |
|||
System.out.println(Colors.ANSI_BG_RED + Colors.ANSI_BLACK + "Fehler!" + Colors.ANSI_RESET); |
|||
} |
|||
} |
|||
} else if(input.equals("2")){ |
|||
shop.quiz(); |
|||
} else if(input.equals("3")){ |
|||
shop.blackJack(); |
|||
}else if(input.equals("4")){ |
|||
System.out.println(Colors.ANSI_BG_YELLOW + "Der Shop wurde verlassen!" + Colors.ANSI_RESET); |
|||
break; |
|||
} |
|||
}else { |
|||
System.out.println("Unbekannte Eingabe!"); |
|||
} |
|||
} |
|||
} |
|||
|
|||
public static boolean validInput(String input){ |
|||
return (input.equals("1") || input.equals("2") || input.equals("3") || input.equals("4")); |
|||
} |
|||
|
|||
} |
@ -1,56 +1,48 @@ |
|||
{ |
|||
"shopitems": [ |
|||
{ |
|||
"name": "Holz", |
|||
"amount": 10, |
|||
"gold": 10 |
|||
"gold": 1000, |
|||
"amount": 1, |
|||
"name": "Heiliges Schwert der Engel" |
|||
}, |
|||
{ |
|||
"name": "Heiliges Schwert der Engel", |
|||
"amount": 1, |
|||
"gold": 1000 |
|||
"gold": 2, |
|||
"amount": 1500, |
|||
"name": "Stein" |
|||
}, |
|||
{ |
|||
"name": "Stein", |
|||
"amount": 5, |
|||
"gold": 100 |
|||
"gold": 10, |
|||
"amount": 10, |
|||
"name": "Holz" |
|||
} |
|||
], |
|||
"locations": [ |
|||
{ |
|||
"mobs": [{ |
|||
"isFriendly": true, |
|||
"damage": "15", |
|||
"name": "Big Foot", |
|||
"hp": 50, |
|||
"items": ["Fell"] |
|||
}], |
|||
"name": "Wald", |
|||
"items": [ |
|||
"Holz", |
|||
"Stein" |
|||
], |
|||
"mobs": [ |
|||
{ |
|||
"name": "Big Foot", |
|||
"hp": 50, |
|||
"damage": 15, |
|||
"isFriendly": true, |
|||
"items": [ |
|||
"Fell" |
|||
] |
|||
} |
|||
] |
|||
}, |
|||
{ |
|||
"mobs": [{ |
|||
"isFriendly": true, |
|||
"damage": "15", |
|||
"name": "Big Foot", |
|||
"hp": 50, |
|||
"items": ["Fell"] |
|||
}], |
|||
"name": "Strand", |
|||
"items": [ |
|||
"Holz", |
|||
"Stein" |
|||
], |
|||
"mobs": [ |
|||
{ |
|||
"name": "Big Foot", |
|||
"hp": 50, |
|||
"damage": 15, |
|||
"isFriendly": true, |
|||
"items": [ |
|||
"Fell" |
|||
] |
|||
} |
|||
] |
|||
} |
|||
] |
@ -1,30 +1,39 @@ |
|||
|
|||
[ |
|||
{ |
|||
"name": "Holz", |
|||
"damage": 0, |
|||
"damage": "1-3", |
|||
"crafting": true, |
|||
"doesDamage": true, |
|||
"durability": 1000, |
|||
"doesDamage": false |
|||
"amountShop": 10, |
|||
"gold": 10 |
|||
}, |
|||
{ |
|||
"name": "Heiliges Schwert der Engel", |
|||
"damage": 1000, |
|||
"damage": "1000", |
|||
"crafting": false, |
|||
"doesDamage": true, |
|||
"durability": 1000, |
|||
"doesDamage": true |
|||
"amountShop": 1, |
|||
"gold": 1000 |
|||
}, |
|||
{ |
|||
"name": "Stein", |
|||
"damage": 10, |
|||
"damage": "5-10", |
|||
"crafting": true, |
|||
"doesDamage": true, |
|||
"durability": 1000, |
|||
"doesDamage": true |
|||
"amountShop": 1500, |
|||
"gold": 2 |
|||
}, |
|||
{ |
|||
"name": "Fell", |
|||
"damage": 0, |
|||
"damage": "0", |
|||
"crafting": true, |
|||
"doesDamage": false, |
|||
"durability": 1000, |
|||
"doesDamage": false; |
|||
"amountShop": 500, |
|||
"gold": 100 |
|||
} |
|||
] |
@ -0,0 +1,44 @@ |
|||
package org.bitbiome.classes; |
|||
|
|||
import org.junit.jupiter.api.BeforeAll; |
|||
import org.junit.jupiter.api.Test; |
|||
|
|||
import static org.junit.jupiter.api.Assertions.*; |
|||
|
|||
public class BlackJackTest { |
|||
|
|||
private static BlackJack bj; |
|||
@BeforeAll |
|||
public static void setUpTest() { |
|||
bj = new BlackJack("UnitTest"); |
|||
} |
|||
@Test |
|||
public void testGetEntity() { |
|||
assertEquals(BlackJack.Entity.PLAYER, bj.getEntity(1)); |
|||
} |
|||
|
|||
@Test |
|||
public void testGetEntityBot() { |
|||
assertEquals(BlackJack.Entity.BOT, bj.getEntity(2)); |
|||
} |
|||
|
|||
@Test |
|||
public void testPlayerName() { |
|||
assertEquals("UnitTest", bj.getPlayerName(BlackJack.Entity.PLAYER)); |
|||
} |
|||
|
|||
@Test |
|||
public void testBotName() { |
|||
assertEquals("BitBiome", bj.getPlayerName(BlackJack.Entity.BOT)); |
|||
} |
|||
|
|||
@Test |
|||
public void testPlayerIsIn() { |
|||
assertTrue(bj.isIn(BlackJack.Entity.PLAYER)); |
|||
} |
|||
|
|||
@Test |
|||
public void testBotIsIn() { |
|||
assertTrue(bj.isIn(BlackJack.Entity.BOT)); |
|||
} |
|||
} |
@ -0,0 +1,23 @@ |
|||
package org.bitbiome.classes; |
|||
|
|||
import static org.junit.jupiter.api.Assertions.assertEquals; |
|||
|
|||
import org.junit.jupiter.api.Test; |
|||
|
|||
public class ColorsTest { |
|||
|
|||
@Test |
|||
public void testResetCode() { |
|||
assertEquals("\u001B[0m", Colors.ANSI_RESET); |
|||
} |
|||
|
|||
@Test |
|||
public void testBlueCode() { |
|||
assertEquals("\u001B[34m", Colors.ANSI_BLUE); |
|||
} |
|||
|
|||
@Test |
|||
public void testCyanCode() { |
|||
assertEquals("\u001B[36m", Colors.ANSI_CYAN); |
|||
} |
|||
} |
@ -1,36 +1,15 @@ |
|||
package org.bitbiome.commands; |
|||
|
|||
import org.bitbiome.classes.Colors; |
|||
import org.junit.jupiter.api.Test; |
|||
import static org.junit.jupiter.api.Assertions.assertEquals; |
|||
import static org.junit.jupiter.api.Assertions.assertTrue; |
|||
|
|||
|
|||
public class HelpCommandTest { |
|||
|
|||
@Test |
|||
public void testHelpCommand() { |
|||
String helpMessage = HelpCommand.getHelpMessage(); |
|||
StringBuilder outputMessage = new StringBuilder(); |
|||
outputMessage |
|||
.append("|______________|_______________________________|\n") |
|||
.append("|" + Colors.ANSI_PURPLE + " Command" + Colors.ANSI_RESET + " | " + Colors.ANSI_PURPLE + "Description" + Colors.ANSI_RESET + " |\n") |
|||
.append("|--------------|-------------------------------|\n") |
|||
.append("|" + Colors.ANSI_GREEN + " help" + Colors.ANSI_RESET + " | Gibt diese Nachricht aus |\n") |
|||
.append("|--------------|-------------------------------|\n") |
|||
.append("|" + Colors.ANSI_GREEN + " exit/quit" + Colors.ANSI_RESET + " | Beendet das Spiel |\n") |
|||
.append("|--------------|-------------------------------|\n") |
|||
.append("|" + Colors.ANSI_GREEN + " travel" + Colors.ANSI_RESET + " | Startet das Reise System |\n") |
|||
.append("|--------------|-------------------------------|\n") |
|||
.append("|" + Colors.ANSI_GREEN + " location" + Colors.ANSI_RESET + " | Gibt deine Location aus |\n") |
|||
.append("|--------------|-------------------------------|\n") |
|||
.append("|" + Colors.ANSI_GREEN + " inventory" + Colors.ANSI_RESET + " | Gibt dein Inventar aus |\n") |
|||
.append("|--------------|-------------------------------|\n") |
|||
.append("|" + Colors.ANSI_GREEN + " collect " + Colors.ANSI_RESET + " | Gibt deine Location aus |\n") |
|||
.append("|--------------|-------------------------------|\n") |
|||
.append("|" + Colors.ANSI_GREEN + " lookaround" + Colors.ANSI_RESET + " | Zeigt dir deine Umgebung, |\n") |
|||
.append("|" + Colors.ANSI_GREEN + " " + Colors.ANSI_RESET + " | Items und Mobs in der Nähe |\n") |
|||
.append("|______________|_______________________________|\n"); |
|||
assertEquals(outputMessage.toString(), helpMessage); |
|||
assertTrue(helpMessage.contains("Command") && helpMessage.contains("Description")); |
|||
} |
|||
|
|||
|
|||
|
@ -0,0 +1,36 @@ |
|||
package org.bitbiome.commands; |
|||
|
|||
import org.junit.jupiter.api.Test; |
|||
|
|||
|
|||
import static org.junit.jupiter.api.Assertions.*; |
|||
|
|||
public class QuizCommandTest { |
|||
|
|||
@Test |
|||
public void testStartMessage() { |
|||
assertTrue(QuizCommand.starterMessage().contains("Du hast das Quiz gestartet!")); |
|||
} |
|||
|
|||
@Test |
|||
public void testEndMessage() { |
|||
assertTrue(QuizCommand.endMessage().contains("Das Quiz ist vorbei!")); |
|||
} |
|||
|
|||
@Test |
|||
public void testLastTimePlayed() { |
|||
long lastTimePlayed = System.currentTimeMillis(); |
|||
assertTrue(QuizCommand.canPlayAgain(lastTimePlayed) < lastTimePlayed); |
|||
} |
|||
|
|||
@Test |
|||
public void testRandomNumberGenerator() { |
|||
int getRandom = QuizCommand.random(3); |
|||
assertTrue(getRandom >= 0 && getRandom <= 3); |
|||
} |
|||
|
|||
@Test |
|||
public void testPrintFunction() { |
|||
assertEquals("I am a unit test!", QuizCommand.print("I am a unit test!")); |
|||
} |
|||
} |
@ -0,0 +1,87 @@ |
|||
package org.bitbiome.commands; |
|||
|
|||
import org.junit.jupiter.api.Test; |
|||
|
|||
import static org.junit.jupiter.api.Assertions.assertEquals; |
|||
|
|||
import org.bitbiome.classes.Shop; |
|||
|
|||
public class ShopCommandTest { |
|||
final Shop shop = new Shop(null, true, null, null); |
|||
@Test |
|||
public void testValidInput1(){ |
|||
boolean expected = true; |
|||
boolean result = ShopCommand.validInput("1"); |
|||
assertEquals(expected, result); |
|||
} |
|||
@Test |
|||
public void testValidInput2(){ |
|||
boolean expected = true; |
|||
boolean result = ShopCommand.validInput("2"); |
|||
assertEquals(expected, result); |
|||
} |
|||
@Test |
|||
public void testValidInput3(){ |
|||
boolean expected = true; |
|||
boolean result = ShopCommand.validInput("3"); |
|||
assertEquals(expected, result); |
|||
} |
|||
@Test |
|||
public void testValidInput4(){ |
|||
boolean expected = true; |
|||
boolean result = ShopCommand.validInput("4"); |
|||
assertEquals(expected, result); |
|||
} |
|||
|
|||
|
|||
|
|||
@Test |
|||
public void testSubtractGold(){ |
|||
int expected = 1; |
|||
int result = shop.subtractGold(3, 2); |
|||
assertEquals(expected, result); |
|||
} |
|||
@Test |
|||
public void testSubtractGold1(){ |
|||
int expected = 10; |
|||
int result = shop.subtractGold(12, 2); |
|||
assertEquals(expected, result); |
|||
} |
|||
@Test |
|||
public void testSubtractGold2(){ |
|||
int expected = 4; |
|||
int result = shop.subtractGold(7, 3); |
|||
assertEquals(expected, result); |
|||
} |
|||
@Test |
|||
public void testSubtractGold3(){ |
|||
int expected = 5; |
|||
int result = shop.subtractGold(10, 5); |
|||
assertEquals(expected, result); |
|||
} |
|||
@Test |
|||
public void testSubtractGold4(){ |
|||
int expected = 1; |
|||
int result = shop.subtractGold(2, 1); |
|||
assertEquals(expected, result); |
|||
} |
|||
@Test |
|||
public void testSubtractGold5(){ |
|||
int expected = 10; |
|||
int result = shop.subtractGold(20, 10); |
|||
assertEquals(expected, result); |
|||
} |
|||
|
|||
@Test |
|||
public void testSubtractGold6(){ |
|||
int expected = 12; |
|||
int result = shop.subtractGold(24, 12); |
|||
assertEquals(expected, result); |
|||
} |
|||
@Test |
|||
public void testSubtractGold7(){ |
|||
int expected = 15; |
|||
int result = shop.subtractGold(31, 16); |
|||
assertEquals(expected, result); |
|||
} |
|||
} |
@ -0,0 +1,50 @@ |
|||
package org.bitbiome.entitiesTest; |
|||
import static org.junit.jupiter.api.Assertions.assertEquals; |
|||
import static org.junit.jupiter.api.Assumptions.assumeTrue; |
|||
|
|||
import org.bitbiome.entities.Item; |
|||
import org.junit.jupiter.api.BeforeAll; |
|||
import org.junit.jupiter.api.Test; |
|||
|
|||
|
|||
public class ItemTest { |
|||
|
|||
private static Item item; |
|||
|
|||
@BeforeAll |
|||
public static void setItem() { |
|||
item = new Item(); |
|||
item.setName("Unit"); |
|||
item.setDamage("12,5"); |
|||
item.changeDoesDamage(true); |
|||
item.setAmount(5); |
|||
item.setGold(100); |
|||
} |
|||
|
|||
@Test |
|||
public void testGetName() { |
|||
assertEquals("Unit", item.getName()); |
|||
} |
|||
|
|||
@Test |
|||
public void testGetDamage() { |
|||
assertEquals("12,5", item.getDamage()); |
|||
} |
|||
|
|||
@Test |
|||
public void testDoesDamage() { |
|||
boolean doesDamage = item.doesDamage(); |
|||
assumeTrue(item.getDamage().equals("12,5")); |
|||
assumeTrue(doesDamage); |
|||
} |
|||
|
|||
@Test |
|||
public void testGetAmount() { |
|||
assumeTrue(item.getAmount() == 5); |
|||
} |
|||
|
|||
@Test |
|||
public void testGetGold() { |
|||
assumeTrue(item.getGold() == 100); |
|||
} |
|||
} |
@ -0,0 +1,24 @@ |
|||
package org.bitbiome.entitiesTest; |
|||
|
|||
import static org.junit.jupiter.api.Assertions.assertEquals; |
|||
|
|||
import org.bitbiome.entities.Location; |
|||
import org.junit.jupiter.api.BeforeAll; |
|||
import org.junit.jupiter.api.Test; |
|||
|
|||
public class LocationTest { |
|||
|
|||
private static Location location; |
|||
|
|||
|
|||
@BeforeAll |
|||
public static void setLocation() { |
|||
location = new Location(); |
|||
location.setName("NewUnitWorld"); |
|||
} |
|||
|
|||
@Test |
|||
public void testLocationName() { |
|||
assertEquals("NewUnitWorld", location.getName()); |
|||
} |
|||
} |
@ -0,0 +1,35 @@ |
|||
package org.bitbiome.entitiesTest; |
|||
import static org.junit.jupiter.api.Assertions.assertEquals; |
|||
import org.bitbiome.entities.Mob; |
|||
import org.junit.jupiter.api.BeforeAll; |
|||
import org.junit.jupiter.api.Test; |
|||
|
|||
|
|||
public class MobTest { |
|||
|
|||
private static Mob mob; |
|||
|
|||
@BeforeAll |
|||
public static void setMob() { |
|||
mob = new Mob(); |
|||
mob.setFriendly(true); |
|||
mob.setDamage(0F); |
|||
mob.setHp(561.45F); |
|||
} |
|||
|
|||
|
|||
@Test |
|||
public void testFriendly() { |
|||
assertEquals(mob.isFriendly(), true); |
|||
} |
|||
|
|||
@Test |
|||
public void testDamage() { |
|||
assertEquals(mob.getDamage(), 0F); |
|||
} |
|||
|
|||
@Test |
|||
public void testHp() { |
|||
assertEquals(mob.getHp(), 561.45F); |
|||
} |
|||
} |
@ -0,0 +1,43 @@ |
|||
package org.bitbiome.entitiesTest; |
|||
|
|||
import static org.junit.jupiter.api.Assertions.assertEquals; |
|||
|
|||
import org.bitbiome.entities.Location; |
|||
import org.bitbiome.entities.Player; |
|||
import org.junit.jupiter.api.BeforeAll; |
|||
import org.junit.jupiter.api.Test; |
|||
|
|||
public class PlayerTest { |
|||
|
|||
private static Player player; |
|||
private static Location location; |
|||
|
|||
@BeforeAll |
|||
public static void setPlayer() { |
|||
player = new Player(); |
|||
location = new Location(); |
|||
|
|||
location.setName("NewUnitWorld"); |
|||
|
|||
player.setName("UnitPlayer"); |
|||
player.setLocation(location); |
|||
player.setHp(100F); |
|||
} |
|||
|
|||
@Test |
|||
public void testPlayerName() { |
|||
assertEquals("UnitPlayer", player.getName()); |
|||
} |
|||
|
|||
|
|||
@Test |
|||
public void testPlayerHp() { |
|||
assertEquals(100F, player.getHp()); |
|||
} |
|||
|
|||
@Test |
|||
public void testLocationNameFromPlayer() { |
|||
assertEquals("NewUnitWorld", player.getLocation().getName()); |
|||
} |
|||
|
|||
} |
Write
Preview
Loading…
Cancel
Save
Reference in new issue