playerList;
@@ -98,6 +102,12 @@ public abstract class OrderLogicCard implements Serializable {
player.addFood(1);
}
+ /**
+ * Returns the {@code Player}'s position based on it's {@code Username}.
+ * @param username The desired {@code Player}'s username.
+ * @return {@code int} - the {@code Player}'s position.
+ * @see Player
+ */
protected int getPosition(String username)
{
int pos = 0;
diff --git a/src/main/java/it/polimi/ingsw/gc14/Model/Orders/Order2.java b/src/main/java/it/polimi/ingsw/gc14/Model/Orders/Order2.java
index 6d926c4..548f483 100644
--- a/src/main/java/it/polimi/ingsw/gc14/Model/Orders/Order2.java
+++ b/src/main/java/it/polimi/ingsw/gc14/Model/Orders/Order2.java
@@ -26,7 +26,7 @@ public class Order2 extends OrderLogicCard {
/**
* Applies the effect associated with the specified position index for the given player.
* If {@code index == 0}, the player gains 1 Food and the building effect is applied.
- *
If {@code index == 1}, the player tries to remove 1 Food; if the player cannot remove it,
+ *
If {@code index == 1}, the player tries to remove 1 Food; if the player pay it,
* the player loses 2 Prestige.
*
* @param player the player to whom the effect is applied.
diff --git a/src/main/java/it/polimi/ingsw/gc14/Model/Orders/Order3.java b/src/main/java/it/polimi/ingsw/gc14/Model/Orders/Order3.java
index 1d434ea..14bc2db 100644
--- a/src/main/java/it/polimi/ingsw/gc14/Model/Orders/Order3.java
+++ b/src/main/java/it/polimi/ingsw/gc14/Model/Orders/Order3.java
@@ -27,7 +27,8 @@ public class Order3 extends OrderLogicCard {
* Applies the effect associated with the specified position index for the given player.
*
If {@code index == 0}, the player gains 2 Food and the building effect is applied.
*
If {@code index == 1}, no effect is applied.
- *
If {@code index == 2}, if the player can remove 1 Food, the player loses 2 Prestige.
+ *
If {@code index == 2}, the player tries to remove 1 Food; if the player pay it,
+ * the player loses 2 Prestige.
*
* @param player the player to whom the effect is applied.
* @param index the position index of the effect to apply.
diff --git a/src/main/java/it/polimi/ingsw/gc14/Model/Orders/Order4.java b/src/main/java/it/polimi/ingsw/gc14/Model/Orders/Order4.java
index 608bcb6..1fc229c 100644
--- a/src/main/java/it/polimi/ingsw/gc14/Model/Orders/Order4.java
+++ b/src/main/java/it/polimi/ingsw/gc14/Model/Orders/Order4.java
@@ -28,7 +28,7 @@ public class Order4 extends OrderLogicCard {
*
If {@code index == 0}, the player gains 2 Food and the building effect is applied.
*
If {@code index == 1}, the player gains 1 Food and the building effect is applied.
*
If {@code index == 2}, no effect is applied.
- *
If {@code index == 3}, the player tries to remove 1 Food; if the removal succeeds,
+ *
If {@code index == 3}, the player tries to remove 1 Food; if the player pay it,
* the player loses 2 Prestige.
*
* @param player the player to whom the effect is applied.
diff --git a/src/main/java/it/polimi/ingsw/gc14/Model/Orders/Order5.java b/src/main/java/it/polimi/ingsw/gc14/Model/Orders/Order5.java
index b75602d..d184bcc 100644
--- a/src/main/java/it/polimi/ingsw/gc14/Model/Orders/Order5.java
+++ b/src/main/java/it/polimi/ingsw/gc14/Model/Orders/Order5.java
@@ -29,7 +29,7 @@ public class Order5 extends OrderLogicCard {
*
If {@code index == 1}, the player gains 1 Food and the building effect is applied.
*
If {@code index == 2}, no effect is applied.
*
If {@code index == 3}, no effect is applied.
- *
If {@code index == 4}, the player tries to remove 1 Food; if the removal succeeds,
+ *
If {@code index == 4}, the player tries to remove 1 Food; if the player pay it,
* the player loses 2 Prestige.
*
* @param player the player to whom the effect is applied.
diff --git a/src/main/java/it/polimi/ingsw/gc14/Model/Orders/OrderPlayer.java b/src/main/java/it/polimi/ingsw/gc14/Model/Orders/OrderPlayer.java
index 0332e70..cb3034b 100644
--- a/src/main/java/it/polimi/ingsw/gc14/Model/Orders/OrderPlayer.java
+++ b/src/main/java/it/polimi/ingsw/gc14/Model/Orders/OrderPlayer.java
@@ -5,9 +5,10 @@ import it.polimi.ingsw.gc14.Model.Player;
import java.io.Serializable;
/**
- * Abstract base class for all order logic cards.
- * An OrderLogicCard manages a queue of players and defines the effects
- * applied when players are pushed back into the queue.
+ * Abstract base class for all order {@code logic cards}.
+ * An {@code OrderLogicCard} manages a queue of {@code players} and defines the effects
+ * applied when they are pushed back into the queue.
+ * @see it.polimi.ingsw.gc14.Model.Player Player
*/
public class OrderPlayer implements Serializable {
public Player player;
diff --git a/src/main/java/it/polimi/ingsw/gc14/Model/PlayableCard.java b/src/main/java/it/polimi/ingsw/gc14/Model/PlayableCard.java
index 386f731..f2446bd 100644
--- a/src/main/java/it/polimi/ingsw/gc14/Model/PlayableCard.java
+++ b/src/main/java/it/polimi/ingsw/gc14/Model/PlayableCard.java
@@ -45,6 +45,14 @@ public abstract class PlayableCard implements Serializable {
public String toString() {
return "⎕:";
}
+
+ /**
+ * Prints a string representation of this {@code PlayableCard}. This specific variation is used in the {@code Game}'s
+ * toString to print a more detailed version (in this specific case the two methods are equal).
+ * @return {@code String} - a string representation of this {@code PlayableCard}.
+ * @see it.polimi.ingsw.gc14.Model.Game Game
+ * @see it.polimi.ingsw.gc14.Model.GamePackage.Board Board
+ */
public String toStringBoard()
{
return "⎕:";
diff --git a/src/main/java/it/polimi/ingsw/gc14/Model/Player.java b/src/main/java/it/polimi/ingsw/gc14/Model/Player.java
index fd0a3ba..c3eaf90 100644
--- a/src/main/java/it/polimi/ingsw/gc14/Model/Player.java
+++ b/src/main/java/it/polimi/ingsw/gc14/Model/Player.java
@@ -8,7 +8,6 @@ import it.polimi.ingsw.gc14.View.TUI.AsciiTable;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Arrays;
-import java.util.List;
import static it.polimi.ingsw.gc14.View.TUI.BorderStyle.*;
@@ -125,13 +124,6 @@ public class Player implements Serializable {
public int getPrestigeValue() {
return PrestigeValue;
}
-
- /* TODO
- * private Game game;
- * public Game getGame(){
- * return Game;
- * }
- */
// endregion getters
// region Setters
@@ -228,17 +220,34 @@ public class Player implements Serializable {
// endregion constructors
// region Functions
+ /**
+ * Prints the {@code Player}'s attributes for the {@code Board}'s representation.
+ * Uses the {@code UNICODE} border style.
+ *
Includes:
+ *
{@link #FoodValue Food}
+ * {@link #PrestigeValue Prestige}
+ * {@link #artists Artists}
+ * {@link #builders Builders}
+ * {@link #gatherers Gatherers}
+ * {@link #shamans Shamans}
+ * {@link #inventors Inventors}
+ * {@link #hunters Hunters}
+ * {@link #buildingCards Buildings}
+ *
+ * @return {@code String} - A string representation of the {@code Player}'s attributes.
+ * @see it.polimi.ingsw.gc14.View.TUI.BorderStyle BorderStyle
+ */
@Override
public String toString() {
- int Last = 6;
+ int Last = -1;
var table = new AsciiTable(UNICODE, 1);
table.addHeader(this.getUserName());
table.addRow("RESOURCES:");
table.addRow("Food: " + this.getFoodValue());
- table.addSeparator();
table.addRow("Prestige: " + this.getPrestigeValue());
+ table.addSeparator();
if(!this.hunters.isEmpty()){
Last = 6;
@@ -267,44 +276,44 @@ public class Player implements Serializable {
}
table.addRow("CHARACTERS:");
if(!this.artists.isEmpty()){
+ table.addRow("Artists: " + this.artists.toString());
if(Last == 1){
table.addSeparator();
}
- table.addRow("Artists: " + this.artists.toString());
}
if(!this.builders.isEmpty()){
+ table.addRow("Builders: " + this.builders.toString());
if(Last == 2){
table.addSeparator();
}
- table.addRow("Builders: " + this.builders.toString());
}
if(!this.gatherers.isEmpty()){
+ table.addRow("Gatherers: " + this.gatherers.toString());
if(Last == 3){
table.addSeparator();
}
- table.addRow("Gatherers: " + this.gatherers.toString());
}
if(!this.shamans.isEmpty()){
+ table.addRow("Shamans: " + this.shamans.toString());
if(Last == 4){
table.addSeparator();
}
- table.addRow("Shamans: " + this.shamans.toString());
}
if(!this.inventors.isEmpty()){
+ table.addRow("Inventors: " + this.inventors.toString());
if(Last == 5){
table.addSeparator();
}
- table.addRow("Inventors: " + this.inventors.toString());
}
if(!this.hunters.isEmpty()){
- table.addSeparator();
table.addRow("Hunters: " + this.hunters.toString());
+ table.addSeparator();
}
table.addRow("BUILDING CARDS:");
diff --git a/src/main/java/it/polimi/ingsw/gc14/Model/Slot.java b/src/main/java/it/polimi/ingsw/gc14/Model/Slot.java
index 456ee1a..5ec72db 100644
--- a/src/main/java/it/polimi/ingsw/gc14/Model/Slot.java
+++ b/src/main/java/it/polimi/ingsw/gc14/Model/Slot.java
@@ -156,6 +156,19 @@ public class Slot implements Serializable {
}
+ /**
+ * Prints a string representation of this {@code Slot}. This specific variation is used in the {@code Game}'s
+ * toString to print a more detailed version for the TUI implementation.
+ * includes:
+ *
{@link #slotId SlotId}
+ * {@link #NUpper NUpper}
+ * {@link #NLower NLower}
+ * {@link #Food Food}
+ *
+ * @return {@code String} - a string representation of this {@code Slot}.
+ * @see it.polimi.ingsw.gc14.Model.Game Game
+ * @see it.polimi.ingsw.gc14.Model.GamePackage.Board Board
+ */
public String toStringTUI()
{
StringBuilder s = new StringBuilder();
diff --git a/src/main/java/it/polimi/ingsw/gc14/Network/NetworkEvent.java b/src/main/java/it/polimi/ingsw/gc14/Network/NetworkEvent.java
index 1a5d50c..e38e7a3 100644
--- a/src/main/java/it/polimi/ingsw/gc14/Network/NetworkEvent.java
+++ b/src/main/java/it/polimi/ingsw/gc14/Network/NetworkEvent.java
@@ -4,23 +4,39 @@ import it.polimi.ingsw.gc14.Controller.GameController;
import java.io.Serializable;
+//TODO javadoc
public abstract class NetworkEvent implements Serializable {
+ //TODO javadoc
protected String username;
+
+ //TODO javadoc
public String getUsername() {
return username;
}
+
+ //TODO javadoc
protected EventType eventType;
+
+ //TODO javadoc
public EventType getEventType() {return eventType;}
+
+ //TODO javadoc
protected boolean isError;
+
+ //TODO javadoc
public boolean getIsError() {return isError;}
+
+ //TODO javadoc
public void setIsError(boolean isError) {this.isError = isError;}
+ //TODO javadoc
protected NetworkEvent(String username, EventType eventType, boolean isError) {
this.username = username;
this.eventType = eventType;
this.isError = isError;
}
+ //TODO javadoc
@Override
public String toString() {
if(isError) {
@@ -30,5 +46,6 @@ public abstract class NetworkEvent implements Serializable {
}
}
+ //TODO javadoc
public abstract boolean apply(GameController gameController);
}
diff --git a/src/main/java/it/polimi/ingsw/gc14/Network/NetworkEvents/AddPlayer.java b/src/main/java/it/polimi/ingsw/gc14/Network/NetworkEvents/AddPlayer.java
index 8466942..54b633a 100644
--- a/src/main/java/it/polimi/ingsw/gc14/Network/NetworkEvents/AddPlayer.java
+++ b/src/main/java/it/polimi/ingsw/gc14/Network/NetworkEvents/AddPlayer.java
@@ -7,15 +7,23 @@ import it.polimi.ingsw.gc14.View.IView;
import java.io.Serializable;
+//TODO javadoc
public class AddPlayer extends NetworkEvent implements Serializable {
+ //TODO javadoc
private int proposedNPlayer;
+
+ //TODO javadoc
public int getProposedNPlayer() {
return proposedNPlayer;
}
+
+ //TODO javadoc
public AddPlayer(String username, int proposedNPlayer) {
super(username, EventType.ADD_PLAYER, false);
this.proposedNPlayer = proposedNPlayer;
}
+
+ //TODO javadoc
@Override
public boolean apply(GameController gameController)
{
diff --git a/src/main/java/it/polimi/ingsw/gc14/Network/NetworkEvents/DrawLowerBuildingCard.java b/src/main/java/it/polimi/ingsw/gc14/Network/NetworkEvents/DrawLowerBuildingCard.java
index 5656ac8..a160629 100644
--- a/src/main/java/it/polimi/ingsw/gc14/Network/NetworkEvents/DrawLowerBuildingCard.java
+++ b/src/main/java/it/polimi/ingsw/gc14/Network/NetworkEvents/DrawLowerBuildingCard.java
@@ -7,19 +7,24 @@ import it.polimi.ingsw.gc14.View.IView;
import java.io.Serializable;
+//TODO javadoc
public class DrawLowerBuildingCard extends NetworkEvent implements Serializable{
+ //TODO javadoc
private int pos;
+ //TODO javadoc
public DrawLowerBuildingCard(String username, int pos){
super(username, EventType.DRAW_LOWER_BUILD, false);
this.pos = pos;
}
+ //TODO javadoc
@Override
public boolean apply(GameController gameController){
return gameController.drawLowerBuildingCard(username, pos);
}
+ //TODO javadoc
public String apply(IView gameController){
return gameController.toString();
}
diff --git a/src/main/java/it/polimi/ingsw/gc14/Network/NetworkEvents/DrawLowerTribeCard.java b/src/main/java/it/polimi/ingsw/gc14/Network/NetworkEvents/DrawLowerTribeCard.java
index 277627a..f0109c8 100644
--- a/src/main/java/it/polimi/ingsw/gc14/Network/NetworkEvents/DrawLowerTribeCard.java
+++ b/src/main/java/it/polimi/ingsw/gc14/Network/NetworkEvents/DrawLowerTribeCard.java
@@ -8,18 +8,22 @@ import it.polimi.ingsw.gc14.View.IView;
import java.io.Serializable;
public class DrawLowerTribeCard extends NetworkEvent implements Serializable{
+ //TODO javadoc
private int pos;
+ //TODO javadoc
public DrawLowerTribeCard(String username, int pos){
super(username, EventType.DRAW_LOWER_TRIBE, false);
this.pos = pos;
}
+ //TODO javadoc
@Override
public boolean apply(GameController gameController){
return gameController.drawLowerTribeCard(username, pos);
}
+ //TODO javadoc
public String apply(IView gameController){
return gameController.toString();
}
diff --git a/src/main/java/it/polimi/ingsw/gc14/Network/NetworkEvents/DrawUpperBuildingCard.java b/src/main/java/it/polimi/ingsw/gc14/Network/NetworkEvents/DrawUpperBuildingCard.java
index 6fb06cf..56be872 100644
--- a/src/main/java/it/polimi/ingsw/gc14/Network/NetworkEvents/DrawUpperBuildingCard.java
+++ b/src/main/java/it/polimi/ingsw/gc14/Network/NetworkEvents/DrawUpperBuildingCard.java
@@ -7,19 +7,24 @@ import it.polimi.ingsw.gc14.View.IView;
import java.io.Serializable;
+//TODO javadoc
public class DrawUpperBuildingCard extends NetworkEvent implements Serializable{
+ //TODO javadoc
private int pos;
+ //TODO javadoc
public DrawUpperBuildingCard(String username, int pos){
super(username, EventType.DRAW_UPPER_BUILD, false);
this.pos = pos;
}
+ //TODO javadoc
@Override
public boolean apply(GameController gameController){
return gameController.drawUpperBuildingCard(username, pos);
}
+ //TODO javadoc
public String apply(IView gameController){
return gameController.toString();
}
diff --git a/src/main/java/it/polimi/ingsw/gc14/Network/NetworkEvents/DrawUpperTribeCard.java b/src/main/java/it/polimi/ingsw/gc14/Network/NetworkEvents/DrawUpperTribeCard.java
index 8d37f02..4cdbc7e 100644
--- a/src/main/java/it/polimi/ingsw/gc14/Network/NetworkEvents/DrawUpperTribeCard.java
+++ b/src/main/java/it/polimi/ingsw/gc14/Network/NetworkEvents/DrawUpperTribeCard.java
@@ -7,19 +7,24 @@ import it.polimi.ingsw.gc14.View.IView;
import java.io.Serializable;
+//TODO javadoc
public class DrawUpperTribeCard extends NetworkEvent implements Serializable{
+ //TODO javadoc
private int pos;
+ //TODO javadoc
public DrawUpperTribeCard(String username, int pos){
super(username, EventType.DRAW_UPPER_TRIBE, false);
this.pos = pos;
}
+ //TODO javadoc
@Override
public boolean apply(GameController gameController){
return gameController.drawUpperTribeCard(username, pos);
}
+ //TODO javadoc
public String apply(IView gameController){
return gameController.toString();
}
diff --git a/src/main/java/it/polimi/ingsw/gc14/Network/NetworkEvents/PickOptionalBuildingCard.java b/src/main/java/it/polimi/ingsw/gc14/Network/NetworkEvents/PickOptionalBuildingCard.java
index 36be45c..1996398 100644
--- a/src/main/java/it/polimi/ingsw/gc14/Network/NetworkEvents/PickOptionalBuildingCard.java
+++ b/src/main/java/it/polimi/ingsw/gc14/Network/NetworkEvents/PickOptionalBuildingCard.java
@@ -7,19 +7,24 @@ import it.polimi.ingsw.gc14.View.IView;
import java.io.Serializable;
+//TODO javadoc
public class PickOptionalBuildingCard extends NetworkEvent implements Serializable{
+ //TODO javadoc
private int pos;
+ //TODO javadoc
public PickOptionalBuildingCard(String username, int pos){
super(username, EventType.PICK_OPTIONAL_BUILD, false);
this.pos = pos;
}
+ //TODO javadoc
@Override
public boolean apply(GameController gameController){
return gameController.pickOptionalBuildingCard(username, pos);
}
+ //TODO javadoc
public String apply(IView gameController){
return gameController.toString();
}
diff --git a/src/main/java/it/polimi/ingsw/gc14/Network/NetworkEvents/PickOptionalTribeCard.java b/src/main/java/it/polimi/ingsw/gc14/Network/NetworkEvents/PickOptionalTribeCard.java
index f2dadac..0ad9def 100644
--- a/src/main/java/it/polimi/ingsw/gc14/Network/NetworkEvents/PickOptionalTribeCard.java
+++ b/src/main/java/it/polimi/ingsw/gc14/Network/NetworkEvents/PickOptionalTribeCard.java
@@ -7,19 +7,25 @@ import it.polimi.ingsw.gc14.View.IView;
import java.io.Serializable;
+//TODO javadoc
+
public class PickOptionalTribeCard extends NetworkEvent implements Serializable{
+ //TODO javadoc
private int pos;
+ //TODO javadoc
public PickOptionalTribeCard(String username, int pos){
super(username, EventType.PICK_OPTIONAL_TRIBE, false);
this.pos = pos;
}
+ //TODO javadoc
@Override
public boolean apply(GameController gameController){
return gameController.pickOptionalTribeCard(username, pos);
}
+ //TODO javadoc
public String apply(IView gameController){
return gameController.toString();
}
diff --git a/src/main/java/it/polimi/ingsw/gc14/Network/NetworkEvents/SlotChoice.java b/src/main/java/it/polimi/ingsw/gc14/Network/NetworkEvents/SlotChoice.java
index 4bf0d12..e22e491 100644
--- a/src/main/java/it/polimi/ingsw/gc14/Network/NetworkEvents/SlotChoice.java
+++ b/src/main/java/it/polimi/ingsw/gc14/Network/NetworkEvents/SlotChoice.java
@@ -7,19 +7,24 @@ import it.polimi.ingsw.gc14.View.IView;
import java.io.Serializable;
+//TODO javadoc
public class SlotChoice extends NetworkEvent implements Serializable {
+ //TODO javadoc
private int pos;
+ //TODO javadoc
public SlotChoice(String username, int pos) {
super(username, EventType.SLOT_CHOICE, false);
this.pos = pos;
}
+ //TODO javadoc
@Override
public boolean apply(GameController gameController) {
return gameController.slotChoice(username, pos);
}
+ //TODO javadoc
public String apply(IView gameController) {
return gameController.toString();
}
diff --git a/src/main/java/it/polimi/ingsw/gc14/Network/RMI/Client/RMIClient.java b/src/main/java/it/polimi/ingsw/gc14/Network/RMI/Client/RMIClient.java
index 03e0251..2d4c348 100644
--- a/src/main/java/it/polimi/ingsw/gc14/Network/RMI/Client/RMIClient.java
+++ b/src/main/java/it/polimi/ingsw/gc14/Network/RMI/Client/RMIClient.java
@@ -39,7 +39,7 @@ public class RMIClient implements IClient {
this.port = port;
}
-
+ //TODO Javadoc fix
/**
* Connects to the RMI server and attempts to join the game.
* Looks up the RMI registry to retrieve the {@link IGameServer} stub.
diff --git a/src/main/java/it/polimi/ingsw/gc14/View/TUI/AsciiTable.java b/src/main/java/it/polimi/ingsw/gc14/View/TUI/AsciiTable.java
index 8fad4eb..74cf535 100644
--- a/src/main/java/it/polimi/ingsw/gc14/View/TUI/AsciiTable.java
+++ b/src/main/java/it/polimi/ingsw/gc14/View/TUI/AsciiTable.java
@@ -1,22 +1,40 @@
package it.polimi.ingsw.gc14.View.TUI;
import java.util.*;
+//TODO javadoc
// Helper generale per costruire tabelle ASCII
public class AsciiTable {
+ //TODO javadoc
private final BorderStyle s;
+
+ //TODO javadoc
private final int cols;
+
+ //TODO javadoc
private final List> rows = new ArrayList<>();
+
+ //TODO javadoc
private final List separators = new ArrayList<>();
+ //TODO javadoc
public AsciiTable(BorderStyle s, int cols) {
this.s = s; this.cols = cols;
}
+ //TODO javadoc
public void addRow(String... cells) { rows.add(Arrays.asList(cells)); }
+
+ //TODO javadoc
public void addRow(List cells) { rows.add(cells); }
+
+ //TODO javadoc
public void addHeader(String... cells) { rows.add(0, Arrays.asList(cells)); separators.add(0); }
public void addSeparator() { separators.add(rows.size()-1); }
+ //TODO javadoc
+ public void addSeparator() { separators.add(rows.size()-1); }
+
+ //TODO javadoc
public String build() {
var sb = new StringBuilder();
int maxWidth = rows.stream().mapToInt(x->x.stream().mapToInt(y->y.length()).max().getAsInt()).max().getAsInt()+1;
@@ -34,6 +52,7 @@ public class AsciiTable {
return sb.toString();
}
+ //TODO javadoc
private String hline(String l, String m, String r,int maxWidth) {
var sb = new StringBuilder(l);
for (int i = 0; i < cols; i++) {
@@ -43,10 +62,13 @@ public class AsciiTable {
return sb.append(r).toString();
}
+ //TODO javadoc
private static String rpad(String s, int w) {
if (s.length() >= w) return s.substring(0, w);
return s + " ".repeat(w - s.length());
}
+
+ //TODO javadoc
public static String sideBySide(List left, List right, int gap) {
int leftWidth = left.stream().mapToInt(String::length).max().orElse(0);
int maxHeight = Math.max(left.size(), right.size());