Fix: public access now are private with setter/getter

This commit is contained in:
2026-06-09 21:06:51 +02:00
parent 3318801913
commit cbf6cb3c5b
43 changed files with 351 additions and 336 deletions
@@ -126,7 +126,7 @@ public class Building0 extends BuildingCard {
*/ */
@Override @Override
public void applyEffect(Player player) throws IllegalArgumentException { public void applyEffect(Player player) throws IllegalArgumentException {
if(!player.buildingCards.contains(this)) if(!player.getBuildingCards().contains(this))
throw new IllegalArgumentException(); throw new IllegalArgumentException();
int min_temp=player.getNType(CharacterType.INVENTOR); int min_temp=player.getNType(CharacterType.INVENTOR);
for(CharacterType type : CharacterType.values()) for(CharacterType type : CharacterType.values())
@@ -64,7 +64,7 @@ public class Building10 extends BuildingCard {
*/ */
@Override @Override
public void applyEffect(Player player) throws IllegalArgumentException { public void applyEffect(Player player) throws IllegalArgumentException {
if(!player.buildingCards.contains(this)) if(!player.getBuildingCards().contains(this))
throw new IllegalArgumentException(); throw new IllegalArgumentException();
HashMap<CharacterType,Integer> map = new HashMap<CharacterType,Integer>(); HashMap<CharacterType,Integer> map = new HashMap<CharacterType,Integer>();
@@ -92,7 +92,7 @@ public class Building11 extends BuildingCard {
*/ */
@Override @Override
public void applyEffect(Player player) throws IllegalArgumentException { public void applyEffect(Player player) throws IllegalArgumentException {
if(!player.buildingCards.contains(this)) if(!player.getBuildingCards().contains(this))
throw new IllegalArgumentException(); throw new IllegalArgumentException();
player.addPrestige(player.getNType(getIcon()) * this.getPrestigeMul()); player.addPrestige(player.getNType(getIcon()) * this.getPrestigeMul());
} }
@@ -56,7 +56,7 @@ public class Building13 extends BuildingCard{
*/ */
@Override @Override
public void applyEffect(Player player) throws IllegalArgumentException { public void applyEffect(Player player) throws IllegalArgumentException {
if(!player.buildingCards.contains(this)) if(!player.getBuildingCards().contains(this))
throw new IllegalArgumentException(); throw new IllegalArgumentException();
player.addPrestige(25); player.addPrestige(25);
} }
@@ -74,7 +74,7 @@ public class Building4 extends BuildingCard {
{ {
map.put(i,0); map.put(i,0);
} }
for(Inventor inv : player.inventors) for(Inventor inv : player.getInventors())
{ {
map.merge(inv.Icon(),1,Integer::sum); map.merge(inv.Icon(),1,Integer::sum);
} }
@@ -129,14 +129,14 @@ public class Building4 extends BuildingCard {
*/ */
@Override @Override
public void applyEffect(Player player) throws IllegalArgumentException { public void applyEffect(Player player) throws IllegalArgumentException {
if(!player.buildingCards.contains(this)) if(!player.getBuildingCards().contains(this))
throw new IllegalArgumentException(); throw new IllegalArgumentException();
HashMap<Integer,Integer> map = new HashMap<>(); HashMap<Integer,Integer> map = new HashMap<>();
for(int i=0;i<10;i++) for(int i=0;i<10;i++)
{ {
map.put(i,0); map.put(i,0);
} }
for(Inventor inv : player.inventors) for(Inventor inv : player.getInventors())
{ {
map.merge(inv.Icon(),1,Integer::sum); map.merge(inv.Icon(),1,Integer::sum);
} }
@@ -57,9 +57,9 @@ public class Building8 extends BuildingCard {
*/ */
@Override @Override
public void applyEffect(Player player) throws IllegalArgumentException { public void applyEffect(Player player) throws IllegalArgumentException {
if(!player.buildingCards.contains(this)) if(!player.getBuildingCards().contains(this))
throw new IllegalArgumentException(); throw new IllegalArgumentException();
for (Builder builder : player.builders) { for (Builder builder : player.getBuilders()) {
player.addPrestige(builder.getPrestigeValue()); player.addPrestige(builder.getPrestigeValue());
} }
} }
@@ -243,7 +243,7 @@ public class BuildingCard extends PlayableCard implements Cloneable , BuildingEf
// sum reduction value builder=> sconto // sum reduction value builder=> sconto
public boolean buy(Player player) { public boolean buy(Player player) {
int discount = 0; int discount = 0;
discount = player.builders.stream().mapToInt(x -> x.getReductionValue()).sum(); discount = player.getBuilders().stream().mapToInt(x -> x.getReductionValue()).sum();
if(discount > this.price){ if(discount > this.price){
discount = this.price; discount = this.price;
@@ -251,7 +251,7 @@ public class BuildingCard extends PlayableCard implements Cloneable , BuildingEf
if(bought || !player.removeFood(this.price - discount)) if(bought || !player.removeFood(this.price - discount))
return false; return false;
player.buildingCards.add(this); player.getBuildingCards().add(this);
bought=true; bought=true;
return true; return true;
} }
@@ -81,8 +81,8 @@ public class Artist extends Character {
*/ */
@Override @Override
public void insert(Player player) { public void insert(Player player) {
player.artists.add(this); player.getArtists().add(this);
player.buildingCards.stream().filter(x->x.getEffectId()==0).forEach(x->x.applyEffect(player)); player.getBuildingCards().stream().filter(x->x.getEffectId()==0).forEach(x->x.applyEffect(player));
} }
} }
@@ -175,7 +175,7 @@ public class Builder extends Character {
* @param player the player who receives the card. * @param player the player who receives the card.
*/ */
public void insert(Player player) { public void insert(Player player) {
player.builders.add(this); player.getBuilders().add(this);
player.buildingCards.stream().filter(x->x.getEffectId()==0).forEach(x->x.applyEffect(player)); player.getBuildingCards().stream().filter(x->x.getEffectId()==0).forEach(x->x.applyEffect(player));
} }
} }
@@ -80,7 +80,7 @@ public class Gatherer extends Character {
* @param player the player who receives the card. * @param player the player who receives the card.
*/ */
public void insert(Player player) { public void insert(Player player) {
player.gatherers.add(this); player.getGatherers().add(this);
player.buildingCards.stream().filter(x->x.getEffectId()==0).forEach(x->x.applyEffect(player)); player.getBuildingCards().stream().filter(x->x.getEffectId()==0).forEach(x->x.applyEffect(player));
} }
} }
@@ -136,11 +136,11 @@ public class Hunter extends Character {
*/ */
@Override @Override
public void insert(Player player) { public void insert(Player player) {
player.hunters.add(this); player.getHunters().add(this);
if(this.getIcon()){ if(this.getIcon()){
player.addFood(player.hunters.size()); player.addFood(player.getHunters().size());
} }
player.buildingCards.stream().filter(x->x.getEffectId()==0).forEach(x->x.applyEffect(player)); player.getBuildingCards().stream().filter(x->x.getEffectId()==0).forEach(x->x.applyEffect(player));
} }
} }
@@ -135,8 +135,8 @@ public class Inventor extends Character {
*/ */
@Override @Override
public void insert(Player player) { public void insert(Player player) {
player.inventors.add(this); player.getInventors().add(this);
player.buildingCards.stream().filter(b -> b.getEffectId() == 4).forEach(b4 -> b4.applyEffect(player)); player.getBuildingCards().stream().filter(b -> b.getEffectId() == 4).forEach(b4 -> b4.applyEffect(player));
player.buildingCards.stream().filter(x->x.getEffectId()==0).forEach(x->x.applyEffect(player)); player.getBuildingCards().stream().filter(x->x.getEffectId()==0).forEach(x->x.applyEffect(player));
} }
} }
@@ -124,7 +124,7 @@ public class Shaman extends Character {
@Override @Override
public void insert(Player player) public void insert(Player player)
{ {
player.shamans.add(this); player.getShamans().add(this);
player.buildingCards.stream().filter(x->x.getEffectId()==0).forEach(x->x.applyEffect(player)); player.getBuildingCards().stream().filter(x->x.getEffectId()==0).forEach(x->x.applyEffect(player));
} }
} }
@@ -79,7 +79,7 @@ public class CavePaintings extends EventCard {
for (Player player : playerList){ for (Player player : playerList){
int NArtists = player.getNType(CharacterType.ARTIST); int NArtists = player.getNType(CharacterType.ARTIST);
int NBuildings = 0; int NBuildings = 0;
ArrayList<BuildingCard> buildingCards = player.buildingCards; ArrayList<BuildingCard> buildingCards = player.getBuildingCards();
for(BuildingCard card : buildingCards){ for(BuildingCard card : buildingCards){
if(card.getEffectId() == 9){ if(card.getEffectId() == 9){
@@ -58,7 +58,7 @@ public class Hunt extends EventCard {
int tmpFoodMultiplier = foodMultiplier; int tmpFoodMultiplier = foodMultiplier;
int tmpPrestigeMultiplier = prestigeMultiplier; int tmpPrestigeMultiplier = prestigeMultiplier;
ArrayList <BuildingCard> buildingList = player.buildingCards; ArrayList <BuildingCard> buildingList = player.getBuildingCards();
int hunterCounter=player.getNType(CharacterType.HUNTER); int hunterCounter=player.getNType(CharacterType.HUNTER);
for (BuildingCard buildingCard : buildingList) { for (BuildingCard buildingCard : buildingList) {
@@ -70,8 +70,8 @@ public class ShamanicRitual extends EventCard {
int tmpCount = 0; int tmpCount = 0;
for (Player player : playerList) { for (Player player : playerList) {
tmpIcons = player.shamans.stream().mapToInt(sh -> sh.getIcon()).sum(); tmpIcons = player.getShamans().stream().mapToInt(sh -> sh.getIcon()).sum();
tmpCount = (int) player.buildingCards.stream().filter(b -> b.getEffectId() == 5).count(); tmpCount = (int) player.getBuildingCards().stream().filter(b -> b.getEffectId() == 5).count();
if (tmpCount >= 1) { if (tmpCount >= 1) {
tmpIcons = tmpIcons+(3*tmpCount); tmpIcons = tmpIcons+(3*tmpCount);
} }
@@ -86,7 +86,7 @@ public class ShamanicRitual extends EventCard {
for (Player player : maxIconsPlayer) { for (Player player : maxIconsPlayer) {
if (player.buildingCards.stream().anyMatch(b -> b.getEffectId() == 6) && maxIconsPlayer.size() == 1) { if (player.getBuildingCards().stream().anyMatch(b -> b.getEffectId() == 6) && maxIconsPlayer.size() == 1) {
player.addPrestige(prestigeToAdd * 2); player.addPrestige(prestigeToAdd * 2);
} else { } else {
player.addPrestige(prestigeToAdd); player.addPrestige(prestigeToAdd);
@@ -94,7 +94,7 @@ public class ShamanicRitual extends EventCard {
} }
for (Player player : minIconsPlayer) { for (Player player : minIconsPlayer) {
if (!(player.buildingCards.stream().anyMatch(b -> b.getEffectId() == 2))) { if (!(player.getBuildingCards().stream().anyMatch(b -> b.getEffectId() == 2))) {
player.removePrestige(prestigeToRemove); player.removePrestige(prestigeToRemove);
} }
} }
@@ -72,7 +72,7 @@ public class Sustenance extends EventCard {
int NGatherers = player.getNType(CharacterType.GATHERER); int NGatherers = player.getNType(CharacterType.GATHERER);
int NCharDiscount = 0; int NCharDiscount = 0;
for(BuildingCard b : player.buildingCards){ for(BuildingCard b : player.getBuildingCards()){
if(b.getEffectId() == 1){ if(b.getEffectId() == 1){
CharacterType c = ((Building1)b).getIcon(); CharacterType c = ((Building1)b).getIcon();
NCharDiscount += player.getNType(c); NCharDiscount += player.getNType(c);
@@ -59,7 +59,7 @@ public class Game implements Serializable {
*/ */
public List<Totems>getAvailableTotems() { public List<Totems>getAvailableTotems() {
List<Totems> totems=new ArrayList<>(List.of(Totems.values())); List<Totems> totems=new ArrayList<>(List.of(Totems.values()));
playersList.forEach(player -> {if(player.totem!=null)totems.remove(player.totem);}); playersList.forEach(player -> {if(player.getTotem()!=null)totems.remove(player.getTotem());});
return totems; return totems;
} }
@@ -92,7 +92,7 @@ public class Game implements Serializable {
{ {
return false; return false;
} }
player.totem=totem; player.setTotem(totem);
Player nextPlayer= totemChoiceQueue.poll(); Player nextPlayer= totemChoiceQueue.poll();
if(nextPlayer==null) if(nextPlayer==null)
@@ -104,7 +104,7 @@ public class Game implements Serializable {
{ {
while(disconnetedPlayers.containsKey(nextPlayer)&& disconnetedPlayers.get(nextPlayer)) while(disconnetedPlayers.containsKey(nextPlayer)&& disconnetedPlayers.get(nextPlayer))
{ {
nextPlayer.totem=getAvailableTotems().get(new Random().nextInt(0,getAvailableTotems().size())); nextPlayer.setTotem(getAvailableTotems().get(new Random().nextInt(0,getAvailableTotems().size())));
nextPlayer=totemChoiceQueue.poll(); nextPlayer=totemChoiceQueue.poll();
if(nextPlayer==null) if(nextPlayer==null)
{ {
@@ -154,7 +154,7 @@ public class Game implements Serializable {
} }
else { else {
if (totemChoiceQueue.isEmpty()) { if (totemChoiceQueue.isEmpty()) {
player.totem = getAvailableTotems().get(new Random().nextInt(getAvailableTotems().size())); player.setTotem(getAvailableTotems().get(new Random().nextInt(getAvailableTotems().size())));
} else { } else {
totemChoiceQueue.add(player); totemChoiceQueue.add(player);
} }
@@ -807,7 +807,7 @@ public class Game implements Serializable {
OptionalCardQueue = new LinkedList<>(); OptionalCardQueue = new LinkedList<>();
for (Player p :playersList) { for (Player p :playersList) {
long count = p.buildingCards.stream().filter(x -> x.getEffectId() == 12).count(); long count = p.getBuildingCards().stream().filter(x -> x.getEffectId() == 12).count();
if (count > 0) { if (count > 0) {
if(disconnetedPlayers.containsKey(p)&& disconnetedPlayers.get(p)) if(disconnetedPlayers.containsKey(p)&& disconnetedPlayers.get(p))
{ {
@@ -929,22 +929,22 @@ public class Game implements Serializable {
sustenance.forEach(event->event.activateEvent(playersList)); sustenance.forEach(event->event.activateEvent(playersList));
playersList.forEach(p->{ playersList.forEach(p->{
int temp= p.builders.stream().mapToInt(Builder::getPrestigeValue).sum(); int temp= p.getBuilders().stream().mapToInt(Builder::getPrestigeValue).sum();
p.addPrestige(temp); p.addPrestige(temp);
}); });
playersList.forEach(p->{ playersList.forEach(p->{
int temp=(int) p.inventors.stream().mapToInt(Inventor::Icon).distinct().count(); int temp=(int) p.getInventors().stream().mapToInt(Inventor::Icon).distinct().count();
p.addPrestige(temp*p.getNType(CharacterType.INVENTOR)); p.addPrestige(temp*p.getNType(CharacterType.INVENTOR));
}); });
playersList.forEach(p->{ playersList.forEach(p->{
p.addPrestige(10 * (p.getNType(CharacterType.ARTIST)/2)); p.addPrestige(10 * (p.getNType(CharacterType.ARTIST)/2));
}); });
playersList.forEach(p->{ playersList.forEach(p->{
int temp= p.buildingCards.stream().mapToInt(BuildingCard::getPrestigeValue).sum(); int temp= p.getBuildingCards().stream().mapToInt(BuildingCard::getPrestigeValue).sum();
p.addPrestige(temp); p.addPrestige(temp);
}); });
playersList.forEach( playersList.forEach(
p -> p.buildingCards.stream().filter(x -> x.getEffectType() == EffectType.FINAL). p -> p.getBuildingCards().stream().filter(x -> x.getEffectType() == EffectType.FINAL).
forEach(x -> x.applyEffect(p)) forEach(x -> x.applyEffect(p))
); );
currentState.GameStageUpdate(GameStages.ENDED); currentState.GameStageUpdate(GameStages.ENDED);
@@ -123,7 +123,7 @@ public abstract class OrderLogicCard implements Serializable {
*/ */
protected void buildingEffect(Player player) protected void buildingEffect(Player player)
{ {
for(BuildingCard b : player.buildingCards.stream().filter(x->x.getEffectId()==3).toList()) for(BuildingCard b : player.getBuildingCards().stream().filter(x->x.getEffectId()==3).toList())
player.addFood(1); player.addFood(1);
} }
@@ -24,7 +24,7 @@ public class Player implements Serializable {
* Identifier for the {@code Player} when displaying the game through the GUI. * Identifier for the {@code Player} when displaying the game through the GUI.
* @see Totems * @see Totems
*/ */
public Totems totem; private Totems totem;
// region Getters // region Getters
/** /**
@@ -42,6 +42,10 @@ public class Player implements Serializable {
return UserName; return UserName;
} }
public Totems getTotem() {
return totem;
}
/** /**
* Counts the total {@link it.polimi.ingsw.gc14.Model.Cards.TribeCards.Character Character Cards} * Counts the total {@link it.polimi.ingsw.gc14.Model.Cards.TribeCards.Character Character Cards}
* the player currently possesses. * the player currently possesses.
@@ -69,40 +73,21 @@ public class Player implements Serializable {
case GATHERER -> gatherers.size(); case GATHERER -> gatherers.size();
}; };
} }
/** private ArrayList<BuildingCard> buildingCards;
* The List containing all {@link BuildingCard Building Cards} the player currently possesses. private ArrayList<Artist> artists;
*/ private ArrayList<Builder> builders;
public ArrayList <BuildingCard> buildingCards; private ArrayList<Inventor> inventors;
private ArrayList<Gatherer> gatherers;
private ArrayList<Shaman> shamans;
private ArrayList<Hunter> hunters;
/** public ArrayList<BuildingCard> getBuildingCards() { return buildingCards; }
* The List containing all {@link Artist Artist Character Cards} the player currently possesses. public ArrayList<Artist> getArtists() { return artists; }
*/ public ArrayList<Builder> getBuilders() { return builders; }
public ArrayList <Artist> artists; public ArrayList<Inventor> getInventors() { return inventors; }
public ArrayList<Gatherer> getGatherers() { return gatherers; }
/** public ArrayList<Shaman> getShamans() { return shamans; }
* The List containing all {@link Builder Builder Character Cards} the player currently possesses. public ArrayList<Hunter> getHunters() { return hunters; }
*/
public ArrayList <Builder> builders;
/**
* The List containing all {@link Inventor Inventor Character Cards} the player currently possesses.
*/
public ArrayList <Inventor> inventors;
/**
* The List containing all {@link Gatherer Gatherer Character Cards} the player currently possesses.
*/
public ArrayList <Gatherer> gatherers;
/**
* The List containing all {@link Shaman Shaman Character Cards} the player currently possesses.
*/
public ArrayList <Shaman> shamans;
/**
* The List containing all {@link Hunter Hunter Character Cards} the player currently possesses.
*/
public ArrayList <Hunter> hunters;
/** /**
* The current amount of {@code Food} the Player possesses. * The current amount of {@code Food} the Player possesses.
@@ -147,6 +132,10 @@ public class Player implements Serializable {
this.FoodValue += Value; this.FoodValue += Value;
} }
public void setTotem(Totems totem) {
this.totem = totem;
}
/** /**
* Removes {@code Value} amount of {@code Food} from the Player. * Removes {@code Value} amount of {@code Food} from the Player.
* Note: {@link #FoodValue} cannot be negative, so the method returns * Note: {@link #FoodValue} cannot be negative, so the method returns
@@ -231,6 +220,19 @@ public class Player implements Serializable {
// endregion constructors // endregion constructors
// region Functions // region Functions
@Override
public boolean equals(Object obj) {
if (this == obj) return true;
if (!(obj instanceof Player)) return false;
return UserName.equals(((Player) obj).UserName);
}
@Override
public int hashCode() {
return UserName.hashCode();
}
/** /**
* Prints the {@code Player}'s attributes for the {@code Board}'s representation. * Prints the {@code Player}'s attributes for the {@code Board}'s representation.
* Uses the {@code UNICODE} border style. * Uses the {@code UNICODE} border style.
@@ -189,5 +189,18 @@ public class Slot implements Serializable {
// End Constructors // End Constructors
// Functions // Functions
@Override
public boolean equals(Object obj) {
if (this == obj) return true;
if (!(obj instanceof Slot)) return false;
return slotId == ((Slot) obj).slotId;
}
@Override
public int hashCode() {
return Character.hashCode(slotId);
}
// End functions // End functions
} }
@@ -164,7 +164,7 @@ public class LeaderboardFXMLController {
// Totem // Totem
ImageView totem = new ImageView(loadImage( ImageView totem = new ImageView(loadImage(
"/GUIImages/Totems/totem_" + player.totem.toString().toLowerCase(Locale.ROOT) + ".png")); "/GUIImages/Totems/totem_" + player.getTotem().toString().toLowerCase(Locale.ROOT) + ".png"));
totem.setFitHeight(55); totem.setFitHeight(55);
totem.setPreserveRatio(true); totem.setPreserveRatio(true);
@@ -199,13 +199,13 @@ public class LeaderboardFXMLController {
stats.setAlignment(Pos.CENTER); stats.setAlignment(Pos.CENTER);
stats.getChildren().add(createStatItem("/GUIImages/Icons/Food.png", String.valueOf(player.getFoodValue()), 26)); stats.getChildren().add(createStatItem("/GUIImages/Icons/Food.png", String.valueOf(player.getFoodValue()), 26));
stats.getChildren().add(createStatItem("/GUIImages/Icons/Artist.png", String.valueOf(player.artists.size()), 26)); stats.getChildren().add(createStatItem("/GUIImages/Icons/Artist.png", String.valueOf(player.getArtists().size()), 26));
stats.getChildren().add(createStatItem("/GUIImages/Icons/Gatherer.png", String.valueOf(player.gatherers.size()), 26)); stats.getChildren().add(createStatItem("/GUIImages/Icons/Gatherer.png", String.valueOf(player.getGatherers().size()), 26));
stats.getChildren().add(createStatItem("/GUIImages/Icons/Inventor.png", String.valueOf(player.inventors.size()), 26)); stats.getChildren().add(createStatItem("/GUIImages/Icons/Inventor.png", String.valueOf(player.getInventors().size()), 26));
stats.getChildren().add(createStatItem("/GUIImages/Icons/Builder.png", String.valueOf(player.builders.size()), 26)); stats.getChildren().add(createStatItem("/GUIImages/Icons/Builder.png", String.valueOf(player.getBuilders().size()), 26));
stats.getChildren().add(createStatItem("/GUIImages/Icons/Shaman.png", String.valueOf(player.shamans.size()), 26)); stats.getChildren().add(createStatItem("/GUIImages/Icons/Shaman.png", String.valueOf(player.getShamans().size()), 26));
stats.getChildren().add(createStatItem("/GUIImages/Icons/Hunter.png", String.valueOf(player.hunters.size()), 26)); stats.getChildren().add(createStatItem("/GUIImages/Icons/Hunter.png", String.valueOf(player.getHunters().size()), 26));
stats.getChildren().add(createStatItem("/GUIImages/Icons/Building.png", String.valueOf(player.buildingCards.size()), 26)); stats.getChildren().add(createStatItem("/GUIImages/Icons/Building.png", String.valueOf(player.getBuildingCards().size()), 26));
return stats; return stats;
} }
@@ -256,7 +256,7 @@ public class LeaderboardFXMLController {
HBox header = new HBox(10); HBox header = new HBox(10);
header.setAlignment(Pos.CENTER); header.setAlignment(Pos.CENTER);
ImageView totem = new ImageView(loadImage( ImageView totem = new ImageView(loadImage(
"/GUIImages/Totems/totem_" + player.totem.toString().toLowerCase(Locale.ROOT) + ".png")); "/GUIImages/Totems/totem_" + player.getTotem().toString().toLowerCase(Locale.ROOT) + ".png"));
totem.setFitHeight(30); totem.setFitHeight(30);
totem.setPreserveRatio(true); totem.setPreserveRatio(true);
Label nameLabel = new Label(player.getUserName()); Label nameLabel = new Label(player.getUserName());
@@ -333,13 +333,13 @@ public class LeaderboardFXMLController {
private ArrayList<PlayableCard> getPlayerCards(String username, String type) { private ArrayList<PlayableCard> getPlayerCards(String username, String type) {
Player p = controller.miniModel.players.get(username); Player p = controller.miniModel.players.get(username);
return switch (type) { return switch (type) {
case "artists" -> new ArrayList<>(p.artists); case "artists" -> new ArrayList<>(p.getArtists());
case "gatherers" -> new ArrayList<>(p.gatherers); case "gatherers" -> new ArrayList<>(p.getGatherers());
case "inventors" -> new ArrayList<>(p.inventors); case "inventors" -> new ArrayList<>(p.getInventors());
case "builders" -> new ArrayList<>(p.builders); case "builders" -> new ArrayList<>(p.getBuilders());
case "shamans" -> new ArrayList<>(p.shamans); case "shamans" -> new ArrayList<>(p.getShamans());
case "hunters" -> new ArrayList<>(p.hunters); case "hunters" -> new ArrayList<>(p.getHunters());
case "buildingCards" -> new ArrayList<>(p.buildingCards); case "buildingCards" -> new ArrayList<>(p.getBuildingCards());
default -> new ArrayList<>(); default -> new ArrayList<>();
}; };
} }
@@ -200,7 +200,7 @@ public class MainFXMLController {
HBox headerRow = new HBox(8); HBox headerRow = new HBox(8);
headerRow.setAlignment(Pos.CENTER); headerRow.setAlignment(Pos.CENTER);
ImageView totem = new ImageView(loadImage("/GUIImages/Totems/totem_" ImageView totem = new ImageView(loadImage("/GUIImages/Totems/totem_"
+ player.totem.toString().toLowerCase(Locale.ROOT) + ".png")); + player.getTotem().toString().toLowerCase(Locale.ROOT) + ".png"));
totem.setFitHeight(20); totem.setFitHeight(20);
totem.setPreserveRatio(true); totem.setPreserveRatio(true);
Label usernameLabel = new Label(player.getUserName()); Label usernameLabel = new Label(player.getUserName());
@@ -313,7 +313,7 @@ public class MainFXMLController {
Player player = controller.miniModel.slotPlayerMap.get(slot); Player player = controller.miniModel.slotPlayerMap.get(slot);
if (player != null && controller.miniModel.getPositionByUsername(player.getUserName()) != -1) { if (player != null && controller.miniModel.getPositionByUsername(player.getUserName()) != -1) {
ImageView totem = new ImageView(loadImage("/GUIImages/Totems/totem_" + player.totem.toString().toLowerCase(Locale.ROOT) + ".png")); ImageView totem = new ImageView(loadImage("/GUIImages/Totems/totem_" + player.getTotem().toString().toLowerCase(Locale.ROOT) + ".png"));
totem.fitHeightProperty().bind(img.fitHeightProperty().multiply(0.332)); totem.fitHeightProperty().bind(img.fitHeightProperty().multiply(0.332));
totem.setPreserveRatio(true); totem.setPreserveRatio(true);
StackPane.setAlignment(totem, Pos.TOP_LEFT); StackPane.setAlignment(totem, Pos.TOP_LEFT);
@@ -472,13 +472,13 @@ public class MainFXMLController {
private ArrayList<PlayableCard> getPlayerCards(String username, String type) { private ArrayList<PlayableCard> getPlayerCards(String username, String type) {
Player p = controller.miniModel.players.get(username); Player p = controller.miniModel.players.get(username);
return switch (type) { return switch (type) {
case "artists" -> new ArrayList<>(p.artists); case "artists" -> new ArrayList<>(p.getArtists());
case "gatherers" -> new ArrayList<>(p.gatherers); case "gatherers" -> new ArrayList<>(p.getGatherers());
case "inventors" -> new ArrayList<>(p.inventors); case "inventors" -> new ArrayList<>(p.getInventors());
case "builders" -> new ArrayList<>(p.builders); case "builders" -> new ArrayList<>(p.getBuilders());
case "shamans" -> new ArrayList<>(p.shamans); case "shamans" -> new ArrayList<>(p.getShamans());
case "hunters" -> new ArrayList<>(p.hunters); case "hunters" -> new ArrayList<>(p.getHunters());
case "building" -> new ArrayList<>(p.buildingCards); case "building" -> new ArrayList<>(p.getBuildingCards());
default -> new ArrayList<>(); default -> new ArrayList<>();
}; };
} }
@@ -578,7 +578,7 @@ public class MainFXMLController {
// Carica immagine totem come in createSlot // Carica immagine totem come in createSlot
ImageView totem = new ImageView(loadImage( ImageView totem = new ImageView(loadImage(
"/GUIImages/Totems/totem_" + op.player.totem.toString().toLowerCase(Locale.ROOT) + ".png" "/GUIImages/Totems/totem_" + op.player.getTotem().toString().toLowerCase(Locale.ROOT) + ".png"
)); ));
totem.setPreserveRatio(true); totem.setPreserveRatio(true);
@@ -631,13 +631,13 @@ public class MainFXMLController {
myHand.setAlignment(Pos.CENTER); myHand.setAlignment(Pos.CENTER);
Player me = controller.miniModel.players.get(controller.myUsername); Player me = controller.miniModel.players.get(controller.myUsername);
drawMyHandList(me.artists); drawMyHandList(me.getArtists());
drawMyHandList(me.gatherers); drawMyHandList(me.getGatherers());
drawMyHandList(me.inventors); drawMyHandList(me.getInventors());
drawMyHandList(me.builders); drawMyHandList(me.getBuilders());
drawMyHandList(me.shamans); drawMyHandList(me.getShamans());
drawMyHandList(me.hunters); drawMyHandList(me.getHunters());
drawMyHandList(me.buildingCards); drawMyHandList(me.getBuildingCards());
} }
@@ -34,7 +34,7 @@ class GameControllerTest {
selectedTotem.name() selectedTotem.name()
)); ));
assertEquals(selectedTotem, current.totem); assertEquals(selectedTotem, current.getTotem());
} }
assertEquals(GameStages.SLOT_CHOICE, game.getCurrentState().getGameStage()); assertEquals(GameStages.SLOT_CHOICE, game.getCurrentState().getGameStage());
@@ -109,9 +109,9 @@ class GameControllerTest {
assertNotNull(second); assertNotNull(second);
assertNotNull(third); assertNotNull(third);
first.buildingCards.add(new BuildingCard(12, 1, 1, 0)); first.getBuildingCards().add(new BuildingCard(12, 1, 1, 0));
second.buildingCards.add(new BuildingCard(12, 1, 1, 0)); second.getBuildingCards().add(new BuildingCard(12, 1, 1, 0));
third.buildingCards.add(new BuildingCard(12, 1, 1, 0)); third.getBuildingCards().add(new BuildingCard(12, 1, 1, 0));
} }
private void resolveActionsUntilOptionalCardEffect(Game game, GameController controller) { private void resolveActionsUntilOptionalCardEffect(Game game, GameController controller) {
@@ -228,9 +228,9 @@ class GameControllerTest {
assertEquals(GameStages.SLOT_CHOICE, game.getCurrentState().getGameStage()); assertEquals(GameStages.SLOT_CHOICE, game.getCurrentState().getGameStage());
assertNotNull(game.getPlayerByUsername("Giorgio").totem); assertNotNull(game.getPlayerByUsername("Giorgio").getTotem());
assertNotNull(game.getPlayerByUsername("Marco").totem); assertNotNull(game.getPlayerByUsername("Marco").getTotem());
assertNotNull(game.getPlayerByUsername("Luca").totem); assertNotNull(game.getPlayerByUsername("Luca").getTotem());
} }
@Test @Test
@@ -391,18 +391,18 @@ class GameControllerTest {
assertTrue(current.removeFood(1)); assertTrue(current.removeFood(1));
} }
if (current.builders.isEmpty()) { if (current.getBuilders().isEmpty()) {
assertFalse(controller.drawUpperBuildingCard(current.getUserName(), 0)); assertFalse(controller.drawUpperBuildingCard(current.getUserName(), 0));
} }
current.addFood(100); current.addFood(100);
int foodBefore = current.getFoodValue(); int foodBefore = current.getFoodValue();
int buildingsBefore = current.buildingCards.size(); int buildingsBefore = current.getBuildingCards().size();
assertTrue(controller.drawUpperBuildingCard(current.getUserName(), 0)); assertTrue(controller.drawUpperBuildingCard(current.getUserName(), 0));
assertTrue(current.getFoodValue() <= foodBefore); assertTrue(current.getFoodValue() <= foodBefore);
assertEquals(buildingsBefore + 1, current.buildingCards.size()); assertEquals(buildingsBefore + 1, current.getBuildingCards().size());
} }
@Test @Test
@@ -522,7 +522,7 @@ class GameControllerTest {
Player optionalPlayer = game.getCurrentState().getCurrentPlayer(); Player optionalPlayer = game.getCurrentState().getCurrentPlayer();
assertNotNull(optionalPlayer); assertNotNull(optionalPlayer);
assertTrue(optionalPlayer.buildingCards.stream() assertTrue(optionalPlayer.getBuildingCards().stream()
.anyMatch(building -> building.getEffectId() == 12)); .anyMatch(building -> building.getEffectId() == 12));
List<TribeCard> upperCards = game.getUpperListTribeCards(); List<TribeCard> upperCards = game.getUpperListTribeCards();
@@ -548,7 +548,7 @@ class GameControllerTest {
Player optionalPlayer = game.getCurrentState().getCurrentPlayer(); Player optionalPlayer = game.getCurrentState().getCurrentPlayer();
assertNotNull(optionalPlayer); assertNotNull(optionalPlayer);
assertTrue(optionalPlayer.buildingCards.stream() assertTrue(optionalPlayer.getBuildingCards().stream()
.anyMatch(building -> building.getEffectId() == 12)); .anyMatch(building -> building.getEffectId() == 12));
assertFalse(game.getUpperListBuilding().isEmpty()); assertFalse(game.getUpperListBuilding().isEmpty());
@@ -556,12 +556,12 @@ class GameControllerTest {
optionalPlayer.addFood(100); optionalPlayer.addFood(100);
int foodBefore = optionalPlayer.getFoodValue(); int foodBefore = optionalPlayer.getFoodValue();
int buildingsBefore = optionalPlayer.buildingCards.size(); int buildingsBefore = optionalPlayer.getBuildingCards().size();
assertTrue(controller.drawUpperBuildingCard(optionalPlayer.getUserName(), 0)); assertTrue(controller.drawUpperBuildingCard(optionalPlayer.getUserName(), 0));
assertTrue(optionalPlayer.getFoodValue() <= foodBefore); assertTrue(optionalPlayer.getFoodValue() <= foodBefore);
assertEquals(buildingsBefore + 1, optionalPlayer.buildingCards.size()); assertEquals(buildingsBefore + 1, optionalPlayer.getBuildingCards().size());
} }
@Test @Test
@@ -622,7 +622,7 @@ class GameControllerTest {
Player optionalPlayer = game.getCurrentState().getCurrentPlayer(); Player optionalPlayer = game.getCurrentState().getCurrentPlayer();
assertNotNull(optionalPlayer); assertNotNull(optionalPlayer);
assertTrue(optionalPlayer.buildingCards.stream() assertTrue(optionalPlayer.getBuildingCards().stream()
.anyMatch(building -> building.getEffectId() == 12)); .anyMatch(building -> building.getEffectId() == 12));
assertTrue(controller.skipTurn(optionalPlayer.getUserName())); assertTrue(controller.skipTurn(optionalPlayer.getUserName()));
@@ -86,12 +86,12 @@ class Building0Test {
Hunter h = new Hunter(Era, true); Hunter h = new Hunter(Era, true);
Inventor i = new Inventor(Era, 1); Inventor i = new Inventor(Era, 1);
Shaman s = new Shaman(Era,1); Shaman s = new Shaman(Era,1);
p.artists.add(a); p.getArtists().add(a);
p.builders.add(b); p.getBuilders().add(b);
p.gatherers.add(g); p.getGatherers().add(g);
p.hunters.add(h); p.getHunters().add(h);
p.inventors.add(i); p.getInventors().add(i);
p.shamans.add(s); p.getShamans().add(s);
b0.applyEffect(p); b0.applyEffect(p);
assertEquals(5, p.getFoodValue()); assertEquals(5, p.getFoodValue());
} }
@@ -109,12 +109,12 @@ class Building0Test {
Hunter h = new Hunter(Era, true); Hunter h = new Hunter(Era, true);
Inventor i = new Inventor(Era, 1); Inventor i = new Inventor(Era, 1);
Shaman s = new Shaman(Era,1); Shaman s = new Shaman(Era,1);
p.artists.add(a); p.getArtists().add(a);
p.builders.add(b); p.getBuilders().add(b);
p.gatherers.add(g); p.getGatherers().add(g);
p.hunters.add(h); p.getHunters().add(h);
p.inventors.add(i); p.getInventors().add(i);
p.shamans.add(s); p.getShamans().add(s);
assertEquals(0, p.getFoodValue()); assertEquals(0, p.getFoodValue());
// Corretta creazione / esecuzione building card // Corretta creazione / esecuzione building card
@@ -175,12 +175,12 @@ class Building0Test {
p.addFood(b0.getPrice()); p.addFood(b0.getPrice());
assertTrue(b0.buy(p)); assertTrue(b0.buy(p));
p.artists.add(new Artist(era)); p.getArtists().add(new Artist(era));
p.builders.add(new Builder(era, 0, 0)); p.getBuilders().add(new Builder(era, 0, 0));
p.gatherers.add(new Gatherer(era)); p.getGatherers().add(new Gatherer(era));
p.hunters.add(new Hunter(era, true)); p.getHunters().add(new Hunter(era, true));
p.inventors.add(new Inventor(era, 1)); p.getInventors().add(new Inventor(era, 1));
p.shamans.add(new Shaman(era, 1)); p.getShamans().add(new Shaman(era, 1));
b0.applyEffect(p); b0.applyEffect(p);
assertEquals(5, p.getFoodValue()); assertEquals(5, p.getFoodValue());
@@ -200,12 +200,12 @@ class Building0Test {
assertTrue(b0.buy(p)); assertTrue(b0.buy(p));
for (int k = 0; k < 2; k++) { for (int k = 0; k < 2; k++) {
p.artists.add(new Artist(era)); p.getArtists().add(new Artist(era));
p.builders.add(new Builder(era, 0, 0)); p.getBuilders().add(new Builder(era, 0, 0));
p.gatherers.add(new Gatherer(era)); p.getGatherers().add(new Gatherer(era));
p.hunters.add(new Hunter(era, true)); p.getHunters().add(new Hunter(era, true));
p.inventors.add(new Inventor(era, 1)); p.getInventors().add(new Inventor(era, 1));
p.shamans.add(new Shaman(era, 1)); p.getShamans().add(new Shaman(era, 1));
} }
b0.applyEffect(p); b0.applyEffect(p);
@@ -58,12 +58,12 @@ class Building10Test {
int nSet = 2; int nSet = 2;
for (int i = 0; i < nSet; i++) { for (int i = 0; i < nSet; i++) {
p.artists.add(new Artist(era)); p.getArtists().add(new Artist(era));
p.builders.add(new Builder(era, 0, 0)); p.getBuilders().add(new Builder(era, 0, 0));
p.gatherers.add(new Gatherer(era)); p.getGatherers().add(new Gatherer(era));
p.hunters.add(new Hunter(era, true)); p.getHunters().add(new Hunter(era, true));
p.inventors.add(new Inventor(era, 1)); p.getInventors().add(new Inventor(era, 1));
p.shamans.add(new Shaman(era, 1)); p.getShamans().add(new Shaman(era, 1));
} }
b10.applyEffect(p); b10.applyEffect(p);
@@ -123,11 +123,11 @@ class Building10Test {
int era = 1; int era = 1;
p.artists.add(new Artist(era)); p.getArtists().add(new Artist(era));
p.builders.add(new Builder(era, 0, 0)); p.getBuilders().add(new Builder(era, 0, 0));
p.gatherers.add(new Gatherer(era)); p.getGatherers().add(new Gatherer(era));
p.hunters.add(new Hunter(era, true)); p.getHunters().add(new Hunter(era, true));
p.inventors.add(new Inventor(era, 1)); p.getInventors().add(new Inventor(era, 1));
// Manca lo Shaman, quindi non c'è un set completo. // Manca lo Shaman, quindi non c'è un set completo.
b10.applyEffect(p); b10.applyEffect(p);
@@ -68,7 +68,7 @@ class Building11Test {
assertFalse(b1.buy(p1)); assertFalse(b1.buy(p1));
p1.artists.add(a1); p1.getArtists().add(a1);
assertThrows(IllegalArgumentException.class, () -> b1.applyEffect(p1)); assertThrows(IllegalArgumentException.class, () -> b1.applyEffect(p1));
@@ -92,8 +92,8 @@ class Building11Test {
p2.addFood(b2.getPrice()); p2.addFood(b2.getPrice());
assertTrue(b2.buy(p2)); assertTrue(b2.buy(p2));
p2.artists.add(a2); p2.getArtists().add(a2);
p2.artists.add(a3); p2.getArtists().add(a3);
b2.applyEffect(p2); b2.applyEffect(p2);
@@ -25,13 +25,13 @@ class Building1Test {
void applyEffect(){ void applyEffect(){
String user = "test"; String user = "test";
Player p = new Player(user); Player p = new Player(user);
assertTrue(p.buildingCards.isEmpty()); assertTrue(p.getBuildingCards().isEmpty());
assertTrue(p.inventors.isEmpty()); assertTrue(p.getInventors().isEmpty());
assertTrue(p.builders.isEmpty()); assertTrue(p.getBuilders().isEmpty());
assertTrue(p.gatherers.isEmpty()); assertTrue(p.getGatherers().isEmpty());
assertTrue(p.shamans.isEmpty()); assertTrue(p.getShamans().isEmpty());
assertTrue(p.hunters.isEmpty()); assertTrue(p.getHunters().isEmpty());
assertTrue(p.artists.isEmpty()); assertTrue(p.getArtists().isEmpty());
assertEquals(0, p.getFoodValue()); assertEquals(0, p.getFoodValue());
assertEquals(0, p.getPrestigeValue()); assertEquals(0, p.getPrestigeValue());
assertEquals(user, p.getUserName()); assertEquals(user, p.getUserName());
@@ -39,13 +39,13 @@ class Building1Test {
Building1 b0 = new Building1(1,2,3, CharacterType.INVENTOR); Building1 b0 = new Building1(1,2,3, CharacterType.INVENTOR);
b0.applyEffect(p); b0.applyEffect(p);
assertTrue(p.buildingCards.isEmpty()); assertTrue(p.getBuildingCards().isEmpty());
assertTrue(p.inventors.isEmpty()); assertTrue(p.getInventors().isEmpty());
assertTrue(p.builders.isEmpty()); assertTrue(p.getBuilders().isEmpty());
assertTrue(p.gatherers.isEmpty()); assertTrue(p.getGatherers().isEmpty());
assertTrue(p.shamans.isEmpty()); assertTrue(p.getShamans().isEmpty());
assertTrue(p.hunters.isEmpty()); assertTrue(p.getHunters().isEmpty());
assertTrue(p.artists.isEmpty()); assertTrue(p.getArtists().isEmpty());
assertEquals(0, p.getFoodValue()); assertEquals(0, p.getFoodValue());
assertEquals(0, p.getPrestigeValue()); assertEquals(0, p.getPrestigeValue());
assertEquals(user, p.getUserName()); assertEquals(user, p.getUserName());
@@ -59,8 +59,8 @@ class Building8Test {
Builder builder1 = new Builder(era, 1, 2); Builder builder1 = new Builder(era, 1, 2);
Builder builder2 = new Builder(era, 1, 3); Builder builder2 = new Builder(era, 1, 3);
p.builders.add(builder1); p.getBuilders().add(builder1);
p.builders.add(builder2); p.getBuilders().add(builder2);
b8.applyEffect(p); b8.applyEffect(p);
@@ -73,7 +73,7 @@ class Building8Test {
Player p = new Player("test"); Player p = new Player("test");
Building8 b8 = new Building8(1, 1, 1); Building8 b8 = new Building8(1, 1, 1);
Building0 b0 = new Building0(1, 1, 1); Building0 b0 = new Building0(1, 1, 1);
p.buildingCards.add(b0); p.getBuildingCards().add(b0);
assertThrows(IllegalArgumentException.class, () -> b8.applyEffect(p)); assertThrows(IllegalArgumentException.class, () -> b8.applyEffect(p));
} }
@@ -145,8 +145,8 @@ class BuildingCardTest {
assertTrue(bc0.buy(p1)); assertTrue(bc0.buy(p1));
assertTrue(p1.buildingCards.contains(bc0)); assertTrue(p1.getBuildingCards().contains(bc0));
assertEquals(1, p1.buildingCards.size()); assertEquals(1, p1.getBuildingCards().size());
assertFalse(bc0.buy(p1)); assertFalse(bc0.buy(p1));
assertFalse(bc0.buy(p2)); assertFalse(bc0.buy(p2));
@@ -161,7 +161,7 @@ class BuildingCardTest {
Player p = new Player("test"); Player p = new Player("test");
p.addFood(food); p.addFood(food);
p.builders.add(new Builder(1, RV, 1)); p.getBuilders().add(new Builder(1, RV, 1));
@@ -174,7 +174,7 @@ class BuildingCardTest {
assertEquals(food, p.getFoodValue()); assertEquals(food, p.getFoodValue());
assertTrue(bc.buy(p)); assertTrue(bc.buy(p));
int discount = p.builders.stream().mapToInt(x -> x.getReductionValue()).sum(); int discount = p.getBuilders().stream().mapToInt(x -> x.getReductionValue()).sum();
assertEquals(food - price + discount, p.getFoodValue()); assertEquals(food - price + discount, p.getFoodValue());
p.removeFood(p.getFoodValue()); p.removeFood(p.getFoodValue());
@@ -184,10 +184,10 @@ class BuildingCardTest {
//Testing that to pay == 0 //Testing that to pay == 0
p.removeFood(p.getFoodValue()); p.removeFood(p.getFoodValue());
p.addFood(food); p.addFood(food);
p.builders.add(new Builder(1, RV, 1)); p.getBuilders().add(new Builder(1, RV, 1));
p.builders.add(new Builder(1, RV, 1)); p.getBuilders().add(new Builder(1, RV, 1));
p.builders.add(new Builder(1, RV, 1)); p.getBuilders().add(new Builder(1, RV, 1));
p.builders.add(new Builder(1, RV, 1)); p.getBuilders().add(new Builder(1, RV, 1));
for(int ID = 3; ID < 13; ID++){ for(int ID = 3; ID < 13; ID++){
if(ID == 4 || ID == 8 || ID == 10 || ID == 11){ if(ID == 4 || ID == 8 || ID == 10 || ID == 11){
@@ -206,13 +206,13 @@ class BuildingCardTest {
//Testing that to pay == 0; discount shouldn't go below 0 //Testing that to pay == 0; discount shouldn't go below 0
p.removeFood(p.getFoodValue()); p.removeFood(p.getFoodValue());
p.addFood(food); p.addFood(food);
p.builders.add(new Builder(1, RV, 1)); p.getBuilders().add(new Builder(1, RV, 1));
p.builders.add(new Builder(1, RV, 1)); p.getBuilders().add(new Builder(1, RV, 1));
p.builders.add(new Builder(1, RV, 1)); p.getBuilders().add(new Builder(1, RV, 1));
p.builders.add(new Builder(1, RV, 1)); p.getBuilders().add(new Builder(1, RV, 1));
p.builders.add(new Builder(1, RV, 1)); p.getBuilders().add(new Builder(1, RV, 1));
p.builders.add(new Builder(1, RV, 1)); p.getBuilders().add(new Builder(1, RV, 1));
p.builders.add(new Builder(1, RV, 1)); p.getBuilders().add(new Builder(1, RV, 1));
for(int ID = 3; ID < 13; ID++){ for(int ID = 3; ID < 13; ID++){
if(ID == 4 || ID == 8 || ID == 10 || ID == 11){ if(ID == 4 || ID == 8 || ID == 10 || ID == 11){
@@ -235,7 +235,7 @@ class BuildingCardTest {
Player p2 = new Player("test"); Player p2 = new Player("test");
p2.addFood(food); p2.addFood(food);
p2.builders.add(new Builder(1, RV, 1)); p2.getBuilders().add(new Builder(1, RV, 1));
for(int ID = 3; ID < 13; ID++){ for(int ID = 3; ID < 13; ID++){
if(ID == 4 || ID == 8 || ID == 10 || ID == 11){ if(ID == 4 || ID == 8 || ID == 10 || ID == 11){
@@ -245,7 +245,7 @@ class BuildingCardTest {
assertEquals(food, p2.getFoodValue()); assertEquals(food, p2.getFoodValue());
assertTrue(bc.buy(p2)); assertTrue(bc.buy(p2));
int discount = p2.builders.stream().mapToInt(x -> x.getReductionValue()).sum(); int discount = p2.getBuilders().stream().mapToInt(x -> x.getReductionValue()).sum();
assertEquals(food, p2.getFoodValue()); assertEquals(food, p2.getFoodValue());
p2.removeFood(p2.getFoodValue()); p2.removeFood(p2.getFoodValue());
@@ -266,7 +266,7 @@ class BuildingCardTest {
assertEquals(food, p2.getFoodValue()); assertEquals(food, p2.getFoodValue());
assertTrue(bc.buy(p2)); assertTrue(bc.buy(p2));
int discount = p2.builders.stream().mapToInt(x -> x.getReductionValue()).sum(); int discount = p2.getBuilders().stream().mapToInt(x -> x.getReductionValue()).sum();
assertEquals(food - price + discount, p2.getFoodValue()); assertEquals(food - price + discount, p2.getFoodValue());
p2.removeFood(p2.getFoodValue()); p2.removeFood(p2.getFoodValue());
@@ -274,7 +274,7 @@ class BuildingCardTest {
} }
//Testing discount with staggered values; discount shouldn't go below 0 //Testing discount with staggered values; discount shouldn't go below 0
p2.builders.add(new Builder(1, RV, 1)); p2.getBuilders().add(new Builder(1, RV, 1));
for(int ID = 3; ID < 13; ID++){ for(int ID = 3; ID < 13; ID++){
if(ID == 4 || ID == 8 || ID == 10 || ID == 11){ if(ID == 4 || ID == 8 || ID == 10 || ID == 11){
@@ -315,13 +315,13 @@ class BuildingCardTest {
void applyEffect(){ void applyEffect(){
String user = "test"; String user = "test";
Player p = new Player(user); Player p = new Player(user);
assertTrue(p.buildingCards.isEmpty()); assertTrue(p.getBuildingCards().isEmpty());
assertTrue(p.inventors.isEmpty()); assertTrue(p.getInventors().isEmpty());
assertTrue(p.builders.isEmpty()); assertTrue(p.getBuilders().isEmpty());
assertTrue(p.gatherers.isEmpty()); assertTrue(p.getGatherers().isEmpty());
assertTrue(p.shamans.isEmpty()); assertTrue(p.getShamans().isEmpty());
assertTrue(p.hunters.isEmpty()); assertTrue(p.getHunters().isEmpty());
assertTrue(p.artists.isEmpty()); assertTrue(p.getArtists().isEmpty());
assertEquals(0, p.getFoodValue()); assertEquals(0, p.getFoodValue());
assertEquals(0, p.getPrestigeValue()); assertEquals(0, p.getPrestigeValue());
assertEquals(user, p.getUserName()); assertEquals(user, p.getUserName());
@@ -329,13 +329,13 @@ class BuildingCardTest {
BuildingCard b = new BuildingCard(1,2,3); BuildingCard b = new BuildingCard(1,2,3);
b.applyEffect(p); b.applyEffect(p);
assertTrue(p.buildingCards.isEmpty()); assertTrue(p.getBuildingCards().isEmpty());
assertTrue(p.inventors.isEmpty()); assertTrue(p.getInventors().isEmpty());
assertTrue(p.builders.isEmpty()); assertTrue(p.getBuilders().isEmpty());
assertTrue(p.gatherers.isEmpty()); assertTrue(p.getGatherers().isEmpty());
assertTrue(p.shamans.isEmpty()); assertTrue(p.getShamans().isEmpty());
assertTrue(p.hunters.isEmpty()); assertTrue(p.getHunters().isEmpty());
assertTrue(p.artists.isEmpty()); assertTrue(p.getArtists().isEmpty());
assertEquals(0, p.getFoodValue()); assertEquals(0, p.getFoodValue());
assertEquals(0, p.getPrestigeValue()); assertEquals(0, p.getPrestigeValue());
assertEquals(user, p.getUserName()); assertEquals(user, p.getUserName());
@@ -420,7 +420,7 @@ class BuildingCardTest {
BuildingCard b = new BuildingCard(2, 1, 5, 1); BuildingCard b = new BuildingCard(2, 1, 5, 1);
assertFalse(b.buy(p)); assertFalse(b.buy(p));
assertFalse(p.buildingCards.contains(b)); assertFalse(p.getBuildingCards().contains(b));
assertEquals(2, p.getFoodValue()); assertEquals(2, p.getFoodValue());
} }
} }
@@ -35,14 +35,14 @@ class ArtistTest {
Player p = new Player("test"); Player p = new Player("test");
Artist a = new Artist(1, 5); Artist a = new Artist(1, 5);
assertEquals(0, p.artists.size()); assertEquals(0, p.getArtists().size());
a.insert(p); a.insert(p);
assertEquals(1, p.artists.size()); assertEquals(1, p.getArtists().size());
assertTrue(p.artists.contains(a)); assertTrue(p.getArtists().contains(a));
Artist insertedArtist = p.artists.get(0); Artist insertedArtist = p.getArtists().get(0);
assertSame(a, insertedArtist); assertSame(a, insertedArtist);
assertEquals(1, insertedArtist.getEra()); assertEquals(1, insertedArtist.getEra());
assertEquals(5, insertedArtist.getNMin()); assertEquals(5, insertedArtist.getNMin());
@@ -52,14 +52,14 @@ class BuilderTest {
Player p = new Player("test"); Player p = new Player("test");
Builder b = new Builder(1, 2, 3, 5); Builder b = new Builder(1, 2, 3, 5);
assertEquals(0, p.builders.size()); assertEquals(0, p.getBuilders().size());
b.insert(p); b.insert(p);
assertEquals(1, p.builders.size()); assertEquals(1, p.getBuilders().size());
assertTrue(p.builders.contains(b)); assertTrue(p.getBuilders().contains(b));
Builder insertedBuilder = p.builders.get(0); Builder insertedBuilder = p.getBuilders().get(0);
assertSame(b, insertedBuilder); assertSame(b, insertedBuilder);
assertEquals(1, insertedBuilder.getEra()); assertEquals(1, insertedBuilder.getEra());
assertEquals(5, insertedBuilder.getNMin()); assertEquals(5, insertedBuilder.getNMin());
@@ -36,14 +36,14 @@ class GathererTest {
Player p = new Player("test"); Player p = new Player("test");
Gatherer g = new Gatherer(1, 5); Gatherer g = new Gatherer(1, 5);
assertEquals(0, p.gatherers.size()); assertEquals(0, p.getGatherers().size());
g.insert(p); g.insert(p);
assertEquals(1, p.gatherers.size()); assertEquals(1, p.getGatherers().size());
assertTrue(p.gatherers.contains(g)); assertTrue(p.getGatherers().contains(g));
Gatherer insertedGatherer = p.gatherers.get(0); Gatherer insertedGatherer = p.getGatherers().get(0);
assertSame(g, insertedGatherer); assertSame(g, insertedGatherer);
assertEquals(1, insertedGatherer.getEra()); assertEquals(1, insertedGatherer.getEra());
assertEquals(5, insertedGatherer.getNMin()); assertEquals(5, insertedGatherer.getNMin());
@@ -52,15 +52,15 @@ class HunterTest {
Player p = new Player("test"); Player p = new Player("test");
Hunter h = new Hunter(1, true, 5); Hunter h = new Hunter(1, true, 5);
assertEquals(0, p.hunters.size()); assertEquals(0, p.getHunters().size());
assertEquals(0, p.getFoodValue()); assertEquals(0, p.getFoodValue());
h.insert(p); h.insert(p);
assertEquals(1, p.hunters.size()); assertEquals(1, p.getHunters().size());
assertTrue(p.hunters.contains(h)); assertTrue(p.getHunters().contains(h));
Hunter insertedHunter = p.hunters.get(0); Hunter insertedHunter = p.getHunters().get(0);
assertSame(h, insertedHunter); assertSame(h, insertedHunter);
assertEquals(1, insertedHunter.getEra()); assertEquals(1, insertedHunter.getEra());
assertEquals(5, insertedHunter.getNMin()); assertEquals(5, insertedHunter.getNMin());
@@ -81,8 +81,8 @@ class HunterTest {
h.insert(p); h.insert(p);
assertEquals(1, p.hunters.size()); assertEquals(1, p.getHunters().size());
assertTrue(p.hunters.contains(h)); assertTrue(p.getHunters().contains(h));
assertEquals(0, p.getFoodValue()); assertEquals(0, p.getFoodValue());
} }
@@ -53,14 +53,14 @@ class InventorTest {
Player p = new Player("test"); Player p = new Player("test");
Inventor i = new Inventor(1, 5, 5); Inventor i = new Inventor(1, 5, 5);
assertEquals(0, p.inventors.size()); assertEquals(0, p.getInventors().size());
i.insert(p); i.insert(p);
assertEquals(1, p.inventors.size()); assertEquals(1, p.getInventors().size());
assertTrue(p.inventors.contains(i)); assertTrue(p.getInventors().contains(i));
Inventor insertedInventor = p.inventors.get(0); Inventor insertedInventor = p.getInventors().get(0);
assertSame(i, insertedInventor); assertSame(i, insertedInventor);
assertEquals(1, insertedInventor.getEra()); assertEquals(1, insertedInventor.getEra());
assertEquals(5, insertedInventor.getNMin()); assertEquals(5, insertedInventor.getNMin());
@@ -53,14 +53,14 @@ class ShamanTest {
Player p = new Player("test"); Player p = new Player("test");
Shaman s = new Shaman(1, 4, 5); Shaman s = new Shaman(1, 4, 5);
assertEquals(0, p.shamans.size()); assertEquals(0, p.getShamans().size());
s.insert(p); s.insert(p);
assertEquals(1, p.shamans.size()); assertEquals(1, p.getShamans().size());
assertTrue(p.shamans.contains(s)); assertTrue(p.getShamans().contains(s));
Shaman insertedShaman = p.shamans.get(0); Shaman insertedShaman = p.getShamans().get(0);
assertSame(s, insertedShaman); assertSame(s, insertedShaman);
assertEquals(1, insertedShaman.getEra()); assertEquals(1, insertedShaman.getEra());
assertEquals(5, insertedShaman.getNMin()); assertEquals(5, insertedShaman.getNMin());
@@ -61,7 +61,7 @@ class CavePaintingsTest {
assertEquals(5, p1.getPrestigeValue()); assertEquals(5, p1.getPrestigeValue());
assertEquals(0, p1.getFoodValue()); assertEquals(0, p1.getFoodValue());
p1.artists.clear(); p1.getArtists().clear();
cp3.activateEvent(players); cp3.activateEvent(players);
assertEquals(-5, p1.getPrestigeValue()); assertEquals(-5, p1.getPrestigeValue());
assertEquals(0, p1.getFoodValue()); assertEquals(0, p1.getFoodValue());
@@ -32,7 +32,7 @@ class GameTest {
Totems selectedTotem = availableTotems.get(0); Totems selectedTotem = availableTotems.get(0);
assertTrue(game.totemChoice(current, selectedTotem)); assertTrue(game.totemChoice(current, selectedTotem));
assertEquals(selectedTotem, current.totem); assertEquals(selectedTotem, current.getTotem());
} }
assertEquals(GameStages.SLOT_CHOICE, game.getCurrentState().getGameStage()); assertEquals(GameStages.SLOT_CHOICE, game.getCurrentState().getGameStage());
@@ -90,7 +90,7 @@ class GameTest {
private void giveOptionalEffectToAllPlayers(Player... players) { private void giveOptionalEffectToAllPlayers(Player... players) {
for (Player player : players) { for (Player player : players) {
player.buildingCards.add(new BuildingCard(12, 1, 1, 1)); player.getBuildingCards().add(new BuildingCard(12, 1, 1, 1));
} }
} }
@@ -330,13 +330,13 @@ class GameTest {
assertEquals(GameStages.SLOT_CHOICE, game.getCurrentState().getGameStage()); assertEquals(GameStages.SLOT_CHOICE, game.getCurrentState().getGameStage());
assertNotNull(p1.totem); assertNotNull(p1.getTotem());
assertNotNull(p2.totem); assertNotNull(p2.getTotem());
assertNotNull(p3.totem); assertNotNull(p3.getTotem());
assertEquals( assertEquals(
3, 3,
Stream.of(p1.totem, p2.totem, p3.totem).distinct().count() Stream.of(p1.getTotem(), p2.getTotem(), p3.getTotem()).distinct().count()
); );
} }
@@ -496,7 +496,7 @@ class GameTest {
assertFalse(game.getUpperListBuilding().isEmpty()); assertFalse(game.getUpperListBuilding().isEmpty());
temp_player.builders.clear(); temp_player.getBuilders().clear();
index = 0; index = 0;
BuildingCard selectedBuilding = game.getUpperListBuilding().get(index); BuildingCard selectedBuilding = game.getUpperListBuilding().get(index);
@@ -527,27 +527,27 @@ class GameTest {
switch (((Character) temp_card).getType()) { switch (((Character) temp_card).getType()) {
case ARTIST: case ARTIST:
assertEquals(nCardsByType.get(((Character) temp_card).getType()) + 1, temp_player.artists.size()); assertEquals(nCardsByType.get(((Character) temp_card).getType()) + 1, temp_player.getArtists().size());
nCardsByType.merge(((Character) temp_card).getType(), 1, Integer::sum); nCardsByType.merge(((Character) temp_card).getType(), 1, Integer::sum);
break; break;
case INVENTOR: case INVENTOR:
assertEquals(nCardsByType.get(((Character) temp_card).getType()) + 1, temp_player.inventors.size()); assertEquals(nCardsByType.get(((Character) temp_card).getType()) + 1, temp_player.getInventors().size());
nCardsByType.merge(((Character) temp_card).getType(), 1, Integer::sum); nCardsByType.merge(((Character) temp_card).getType(), 1, Integer::sum);
break; break;
case HUNTER: case HUNTER:
assertEquals(nCardsByType.get(((Character) temp_card).getType()) + 1, temp_player.hunters.size()); assertEquals(nCardsByType.get(((Character) temp_card).getType()) + 1, temp_player.getHunters().size());
nCardsByType.merge(((Character) temp_card).getType(), 1, Integer::sum); nCardsByType.merge(((Character) temp_card).getType(), 1, Integer::sum);
break; break;
case SHAMAN: case SHAMAN:
assertEquals(nCardsByType.get(((Character) temp_card).getType()) + 1, temp_player.shamans.size()); assertEquals(nCardsByType.get(((Character) temp_card).getType()) + 1, temp_player.getShamans().size());
nCardsByType.merge(((Character) temp_card).getType(), 1, Integer::sum); nCardsByType.merge(((Character) temp_card).getType(), 1, Integer::sum);
break; break;
case BUILDER: case BUILDER:
assertEquals(nCardsByType.get(((Character) temp_card).getType()) + 1, temp_player.builders.size()); assertEquals(nCardsByType.get(((Character) temp_card).getType()) + 1, temp_player.getBuilders().size());
nCardsByType.merge(((Character) temp_card).getType(), 1, Integer::sum); nCardsByType.merge(((Character) temp_card).getType(), 1, Integer::sum);
break; break;
case GATHERER: case GATHERER:
assertEquals(nCardsByType.get(((Character) temp_card).getType()) + 1, temp_player.gatherers.size()); assertEquals(nCardsByType.get(((Character) temp_card).getType()) + 1, temp_player.getGatherers().size());
nCardsByType.merge(((Character) temp_card).getType(), 1, Integer::sum); nCardsByType.merge(((Character) temp_card).getType(), 1, Integer::sum);
break; break;
@@ -605,23 +605,23 @@ class GameTest {
assertFalse(game.getUpperListBuilding().isEmpty()); assertFalse(game.getUpperListBuilding().isEmpty());
current.builders.clear(); current.getBuilders().clear();
BuildingCard selectedBuilding = game.getUpperListBuilding().get(0); BuildingCard selectedBuilding = game.getUpperListBuilding().get(0);
int expectedCost = selectedBuilding.getPrice(); int expectedCost = selectedBuilding.getPrice();
current.addFood(expectedCost); current.addFood(expectedCost);
int buildingsBefore = current.buildingCards.size(); int buildingsBefore = current.getBuildingCards().size();
int upperBuildingsBefore = game.getUpperListBuilding().size(); int upperBuildingsBefore = game.getUpperListBuilding().size();
int foodBefore = current.getFoodValue(); int foodBefore = current.getFoodValue();
assertTrue(game.DrawUpperBuildingCardByIndex(current, 0)); assertTrue(game.DrawUpperBuildingCardByIndex(current, 0));
assertEquals(buildingsBefore + 1, current.buildingCards.size()); assertEquals(buildingsBefore + 1, current.getBuildingCards().size());
assertEquals(upperBuildingsBefore - 1, game.getUpperListBuilding().size()); assertEquals(upperBuildingsBefore - 1, game.getUpperListBuilding().size());
assertTrue(current.buildingCards.stream() assertTrue(current.getBuildingCards().stream()
.anyMatch(building -> .anyMatch(building ->
building.getPrice() == selectedBuilding.getPrice() building.getPrice() == selectedBuilding.getPrice()
&& building.getPrestigeValue() == selectedBuilding.getPrestigeValue() && building.getPrestigeValue() == selectedBuilding.getPrestigeValue()
@@ -939,7 +939,7 @@ class GameTest {
List<Player> players = addPlayers(game, 3, "single_optional_"); List<Player> players = addPlayers(game, 3, "single_optional_");
players.get(0).buildingCards.add(new BuildingCard(12, 1, 1, 1)); players.get(0).getBuildingCards().add(new BuildingCard(12, 1, 1, 1));
int roundBefore = game.getCurrentState().getRound(); int roundBefore = game.getCurrentState().getRound();
@@ -1000,7 +1000,7 @@ class GameTest {
assertTrue(current.removeFood(1)); assertTrue(current.removeFood(1));
} }
current.builders.clear(); current.getBuilders().clear();
assertEquals(0, current.getFoodValue()); assertEquals(0, current.getFoodValue());
@@ -1032,14 +1032,14 @@ class GameTest {
if (game.getCurrentState().getNLower() > 0 if (game.getCurrentState().getNLower() > 0
&& !game.getLowerListBuilding().isEmpty()) { && !game.getLowerListBuilding().isEmpty()) {
current.builders.clear(); current.getBuilders().clear();
BuildingCard selectedBuilding = game.getLowerListBuilding().get(0); BuildingCard selectedBuilding = game.getLowerListBuilding().get(0);
int expectedCost = selectedBuilding.getPrice(); int expectedCost = selectedBuilding.getPrice();
current.addFood(expectedCost); current.addFood(expectedCost);
int buildingsBefore = current.buildingCards.size(); int buildingsBefore = current.getBuildingCards().size();
int lowerBuildingsBefore = game.getLowerListBuilding().size(); int lowerBuildingsBefore = game.getLowerListBuilding().size();
int foodBefore = current.getFoodValue(); int foodBefore = current.getFoodValue();
@@ -1048,9 +1048,9 @@ class GameTest {
"DrawLowerBuildingCardByIndex should return true when lower building exists, player can draw lower, and player has food." "DrawLowerBuildingCardByIndex should return true when lower building exists, player can draw lower, and player has food."
); );
assertEquals(buildingsBefore + 1, current.buildingCards.size()); assertEquals(buildingsBefore + 1, current.getBuildingCards().size());
assertEquals(lowerBuildingsBefore - 1, game.getLowerListBuilding().size()); assertEquals(lowerBuildingsBefore - 1, game.getLowerListBuilding().size());
assertTrue(current.buildingCards.stream() assertTrue(current.getBuildingCards().stream()
.anyMatch(building -> .anyMatch(building ->
building.getPrice() == selectedBuilding.getPrice() building.getPrice() == selectedBuilding.getPrice()
&& building.getPrestigeValue() == selectedBuilding.getPrestigeValue() && building.getPrestigeValue() == selectedBuilding.getPrestigeValue()
@@ -1109,16 +1109,16 @@ class GameTest {
assertTrue(current.removeFood(1)); assertTrue(current.removeFood(1));
} }
current.builders.clear(); current.getBuilders().clear();
assertEquals(0, current.getFoodValue()); assertEquals(0, current.getFoodValue());
int buildingsBefore = current.buildingCards.size(); int buildingsBefore = current.getBuildingCards().size();
int upperBuildingsBefore = game.getUpperListBuilding().size(); int upperBuildingsBefore = game.getUpperListBuilding().size();
assertFalse(game.DrawUpperBuildingCardByIndex(current, 0)); assertFalse(game.DrawUpperBuildingCardByIndex(current, 0));
assertEquals(buildingsBefore, current.buildingCards.size()); assertEquals(buildingsBefore, current.getBuildingCards().size());
assertEquals(upperBuildingsBefore, game.getUpperListBuilding().size()); assertEquals(upperBuildingsBefore, game.getUpperListBuilding().size());
assertEquals(0, current.getFoodValue()); assertEquals(0, current.getFoodValue());
@@ -1194,14 +1194,14 @@ class GameTest {
} }
private void preparePlayerForComparableFinalScoring(Player player) { private void preparePlayerForComparableFinalScoring(Player player) {
player.buildingCards.clear(); player.getBuildingCards().clear();
player.builders.clear(); player.getBuilders().clear();
player.inventors.clear(); player.getInventors().clear();
player.artists.clear(); player.getArtists().clear();
player.hunters.clear(); player.getHunters().clear();
player.shamans.clear(); player.getShamans().clear();
player.gatherers.clear(); player.getGatherers().clear();
while (player.getFoodValue() > 0) { while (player.getFoodValue() > 0) {
assertTrue(player.removeFood(1)); assertTrue(player.removeFood(1));
@@ -1211,7 +1211,7 @@ class GameTest {
* Keeps the optional effect, but with zero final prestige. * Keeps the optional effect, but with zero final prestige.
* This preserves the OPT_CARD_E phase while keeping the comparison controlled. * This preserves the OPT_CARD_E phase while keeping the comparison controlled.
*/ */
player.buildingCards.add(new BuildingCard(12, 1, 1, 0)); player.getBuildingCards().add(new BuildingCard(12, 1, 1, 0));
} }
@Test @Test
@@ -1420,16 +1420,16 @@ class GameTest {
assertTrue(current.removeFood(1)); assertTrue(current.removeFood(1));
} }
current.builders.clear(); current.getBuilders().clear();
assertEquals(0, current.getFoodValue()); assertEquals(0, current.getFoodValue());
int buildingsBefore = current.buildingCards.size(); int buildingsBefore = current.getBuildingCards().size();
int lowerBuildingsBefore = game.getLowerListBuilding().size(); int lowerBuildingsBefore = game.getLowerListBuilding().size();
assertFalse(game.DrawLowerBuildingCardByIndex(current, 0)); assertFalse(game.DrawLowerBuildingCardByIndex(current, 0));
assertEquals(buildingsBefore, current.buildingCards.size()); assertEquals(buildingsBefore, current.getBuildingCards().size());
assertEquals(lowerBuildingsBefore, game.getLowerListBuilding().size()); assertEquals(lowerBuildingsBefore, game.getLowerListBuilding().size());
assertEquals(0, current.getFoodValue()); assertEquals(0, current.getFoodValue());
@@ -1623,8 +1623,8 @@ class GameTest {
BuildingCard firstBuilding = new BuildingCard(12, 1, 1, 7); BuildingCard firstBuilding = new BuildingCard(12, 1, 1, 7);
BuildingCard secondBuilding = new BuildingCard(12, 1, 1, 5); BuildingCard secondBuilding = new BuildingCard(12, 1, 1, 5);
testedPlayer.buildingCards.add(firstBuilding); testedPlayer.getBuildingCards().add(firstBuilding);
testedPlayer.buildingCards.add(secondBuilding); testedPlayer.getBuildingCards().add(secondBuilding);
int prestigeDifferenceBefore = int prestigeDifferenceBefore =
testedPlayer.getPrestigeValue() - controlPlayer.getPrestigeValue(); testedPlayer.getPrestigeValue() - controlPlayer.getPrestigeValue();
@@ -1680,11 +1680,11 @@ class GameTest {
preparePlayerForComparableFinalScoring(testedPlayer); preparePlayerForComparableFinalScoring(testedPlayer);
preparePlayerForComparableFinalScoring(players.get(2)); preparePlayerForComparableFinalScoring(players.get(2));
controlPlayer.builders.add(new Builder(1, 0, 0)); controlPlayer.getBuilders().add(new Builder(1, 0, 0));
controlPlayer.builders.add(new Builder(1, 0, 0)); controlPlayer.getBuilders().add(new Builder(1, 0, 0));
testedPlayer.builders.add(new Builder(1, 0, 4)); testedPlayer.getBuilders().add(new Builder(1, 0, 4));
testedPlayer.builders.add(new Builder(1, 0, 3)); testedPlayer.getBuilders().add(new Builder(1, 0, 3));
int prestigeDifferenceBefore = int prestigeDifferenceBefore =
testedPlayer.getPrestigeValue() - controlPlayer.getPrestigeValue(); testedPlayer.getPrestigeValue() - controlPlayer.getPrestigeValue();
@@ -1736,13 +1736,13 @@ class GameTest {
preparePlayerForComparableFinalScoring(testedPlayer); preparePlayerForComparableFinalScoring(testedPlayer);
preparePlayerForComparableFinalScoring(players.get(2)); preparePlayerForComparableFinalScoring(players.get(2));
controlPlayer.builders.add(new Builder(1, 0, 0)); controlPlayer.getBuilders().add(new Builder(1, 0, 0));
controlPlayer.builders.add(new Builder(1, 0, 0)); controlPlayer.getBuilders().add(new Builder(1, 0, 0));
controlPlayer.builders.add(new Builder(1, 0, 0)); controlPlayer.getBuilders().add(new Builder(1, 0, 0));
testedPlayer.inventors.add(new Inventor(1, 0)); testedPlayer.getInventors().add(new Inventor(1, 0));
testedPlayer.inventors.add(new Inventor(1, 1)); testedPlayer.getInventors().add(new Inventor(1, 1));
testedPlayer.inventors.add(new Inventor(1, 1)); testedPlayer.getInventors().add(new Inventor(1, 1));
int prestigeDifferenceBefore = int prestigeDifferenceBefore =
testedPlayer.getPrestigeValue() - controlPlayer.getPrestigeValue(); testedPlayer.getPrestigeValue() - controlPlayer.getPrestigeValue();
@@ -96,7 +96,7 @@ class Order2Test {
Player firstToAct = order.pull(); Player firstToAct = order.pull();
order.pull(); order.pull();
firstToAct.buildingCards.add(new BuildingCard(3, 1, 1, 2)); firstToAct.getBuildingCards().add(new BuildingCard(3, 1, 1, 2));
order.push(firstToAct); order.push(firstToAct);
@@ -108,7 +108,7 @@ class Order3Test {
order.pull(); order.pull();
order.pull(); order.pull();
firstToAct.buildingCards.add(new BuildingCard(3, 1, 1, 2)); firstToAct.getBuildingCards().add(new BuildingCard(3, 1, 1, 2));
order.push(firstToAct); order.push(firstToAct);
@@ -178,7 +178,7 @@ class Order4Test {
order.pull(); order.pull();
order.pull(); order.pull();
firstToAct.buildingCards.add(new BuildingCard(3, 1, 1, 2)); firstToAct.getBuildingCards().add(new BuildingCard(3, 1, 1, 2));
order.push(firstToAct); order.push(firstToAct);
@@ -203,7 +203,7 @@ class Order4Test {
order.pull(); order.pull();
order.pull(); order.pull();
secondToAct.buildingCards.add(new BuildingCard(3, 1, 1, 2)); secondToAct.getBuildingCards().add(new BuildingCard(3, 1, 1, 2));
order.push(firstToAct); order.push(firstToAct);
order.push(secondToAct); order.push(secondToAct);
@@ -238,7 +238,7 @@ class Order5Test {
order.pull(); order.pull();
order.pull(); order.pull();
firstToAct.buildingCards.add(new BuildingCard(3, 1, 1, 2)); firstToAct.getBuildingCards().add(new BuildingCard(3, 1, 1, 2));
order.push(firstToAct); order.push(firstToAct);
@@ -266,7 +266,7 @@ class Order5Test {
order.pull(); order.pull();
order.pull(); order.pull();
secondToAct.buildingCards.add(new BuildingCard(3, 1, 1, 2)); secondToAct.getBuildingCards().add(new BuildingCard(3, 1, 1, 2));
order.push(firstToAct); order.push(firstToAct);
order.push(secondToAct); order.push(secondToAct);
@@ -31,10 +31,10 @@ class PlayerTest {
assertEquals(0, p.getTotCharacters()); assertEquals(0, p.getTotCharacters());
int N = 10; int N = 10;
ArrayList<Artist> a = Stream.generate(() -> new Artist(1, 1)).limit(N).collect(Collectors.toCollection(ArrayList::new)); ArrayList<Artist> a = Stream.generate(() -> new Artist(1, 1)).limit(N).collect(Collectors.toCollection(ArrayList::new));
p.artists.addAll(a); p.getArtists().addAll(a);
assertEquals(N, p.getTotCharacters()); assertEquals(N, p.getTotCharacters());
ArrayList<Builder> b = Stream.generate(() -> new Builder(1, 1, 1)).limit(N).collect(Collectors.toCollection(ArrayList::new)); ArrayList<Builder> b = Stream.generate(() -> new Builder(1, 1, 1)).limit(N).collect(Collectors.toCollection(ArrayList::new));
p.builders.addAll(b); p.getBuilders().addAll(b);
assertEquals(2 * N, p.getTotCharacters()); assertEquals(2 * N, p.getTotCharacters());
} }
@@ -47,22 +47,22 @@ class PlayerTest {
} }
int N = 10; int N = 10;
ArrayList<Artist> a = Stream.generate(() -> new Artist(1, 1)).limit(N).collect(Collectors.toCollection(ArrayList::new)); ArrayList<Artist> a = Stream.generate(() -> new Artist(1, 1)).limit(N).collect(Collectors.toCollection(ArrayList::new));
p.artists.addAll(a); p.getArtists().addAll(a);
ArrayList<Builder> b = Stream.generate(() -> new Builder(1, 1, 1)).limit(N).collect(Collectors.toCollection(ArrayList::new)); ArrayList<Builder> b = Stream.generate(() -> new Builder(1, 1, 1)).limit(N).collect(Collectors.toCollection(ArrayList::new));
p.builders.addAll(b); p.getBuilders().addAll(b);
ArrayList<Inventor> i = Stream.generate(() -> new Inventor(1, 1, 1)).limit(N).collect(Collectors.toCollection(ArrayList::new)); ArrayList<Inventor> i = Stream.generate(() -> new Inventor(1, 1, 1)).limit(N).collect(Collectors.toCollection(ArrayList::new));
p.inventors.addAll(i); p.getInventors().addAll(i);
ArrayList<Gatherer> g = Stream.generate(() -> new Gatherer(1, 1)).limit(N).collect(Collectors.toCollection(ArrayList::new)); ArrayList<Gatherer> g = Stream.generate(() -> new Gatherer(1, 1)).limit(N).collect(Collectors.toCollection(ArrayList::new));
p.gatherers.addAll(g); p.getGatherers().addAll(g);
ArrayList<Shaman> s = Stream.generate(() -> new Shaman(1, 1)).limit(N).collect(Collectors.toCollection(ArrayList::new)); ArrayList<Shaman> s = Stream.generate(() -> new Shaman(1, 1)).limit(N).collect(Collectors.toCollection(ArrayList::new));
p.shamans.addAll(s); p.getShamans().addAll(s);
ArrayList<Hunter> h = Stream.generate(() -> new Hunter(1, true, 1)).limit(N).collect(Collectors.toCollection(ArrayList::new)); ArrayList<Hunter> h = Stream.generate(() -> new Hunter(1, true, 1)).limit(N).collect(Collectors.toCollection(ArrayList::new));
p.hunters.addAll(h); p.getHunters().addAll(h);
assertEquals(N, p.getNType(CharacterType.ARTIST)); assertEquals(N, p.getNType(CharacterType.ARTIST));
assertEquals(N, p.getNType(CharacterType.BUILDER)); assertEquals(N, p.getNType(CharacterType.BUILDER));
@@ -167,13 +167,13 @@ class PlayerTest {
assertEquals(username, p.getUserName()); assertEquals(username, p.getUserName());
assertEquals(0, p.getFoodValue()); assertEquals(0, p.getFoodValue());
assertEquals(0, p.getPrestigeValue()); assertEquals(0, p.getPrestigeValue());
assertTrue(p.inventors.isEmpty()); assertTrue(p.getInventors().isEmpty());
assertTrue(p.builders.isEmpty()); assertTrue(p.getBuilders().isEmpty());
assertTrue(p.gatherers.isEmpty()); assertTrue(p.getGatherers().isEmpty());
assertTrue(p.shamans.isEmpty()); assertTrue(p.getShamans().isEmpty());
assertTrue(p.hunters.isEmpty()); assertTrue(p.getHunters().isEmpty());
assertTrue(p.artists.isEmpty()); assertTrue(p.getArtists().isEmpty());
assertTrue(p.buildingCards.isEmpty()); assertTrue(p.getBuildingCards().isEmpty());
assertTrue(p.getUserName().length() <= 32); assertTrue(p.getUserName().length() <= 32);
assertTrue(p.getUserName().length() > 0); assertTrue(p.getUserName().length() > 0);
@@ -200,26 +200,26 @@ class PlayerTest {
Player p = new Player("test_usr"); Player p = new Player("test_usr");
p.addPrestige(15); p.addPrestige(15);
p.addFood(7); p.addFood(7);
p.artists.add(new Artist(1)); p.getArtists().add(new Artist(1));
p.artists.add(new Artist(1)); p.getArtists().add(new Artist(1));
p.artists.add(new Artist(1)); p.getArtists().add(new Artist(1));
p.artists.add(new Artist(1)); p.getArtists().add(new Artist(1));
p.artists.add(new Artist(1)); p.getArtists().add(new Artist(1));
p.artists.add(new Artist(1)); p.getArtists().add(new Artist(1));
p.artists.add(new Artist(2)); p.getArtists().add(new Artist(2));
p.builders.add(new Builder(2, 5, 1)); p.getBuilders().add(new Builder(2, 5, 1));
p.gatherers.add(new Gatherer(1, 3)); p.getGatherers().add(new Gatherer(1, 3));
p.shamans.add(new Shaman(2, 3, 3)); p.getShamans().add(new Shaman(2, 3, 3));
p.shamans.add(new Shaman(2, 3, 4)); p.getShamans().add(new Shaman(2, 3, 4));
p.inventors.add(new Inventor(3, 1)); p.getInventors().add(new Inventor(3, 1));
p.hunters.add(new Hunter(3, true)); p.getHunters().add(new Hunter(3, true));
p.hunters.add(new Hunter(2, false)); p.getHunters().add(new Hunter(2, false));
p.buildingCards.add(new BuildingCard(2, 1,2, 5)); p.getBuildingCards().add(new BuildingCard(2, 1,2, 5));
p.buildingCards.add(new BuildingCard(2, 2,3, 6)); p.getBuildingCards().add(new BuildingCard(2, 2,3, 6));
p.buildingCards.add(new Building1(2, 5, 5, CharacterType.INVENTOR)); p.getBuildingCards().add(new Building1(2, 5, 5, CharacterType.INVENTOR));
p.buildingCards.add(new Building1(2, 5, 5, CharacterType.SHAMAN)); p.getBuildingCards().add(new Building1(2, 5, 5, CharacterType.SHAMAN));
p.buildingCards.add(new Building11(1, 5, 7, CharacterType.ARTIST , 3)); p.getBuildingCards().add(new Building11(1, 5, 7, CharacterType.ARTIST , 3));
assertEquals(""+ assertEquals(""+
"╔═════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════╗\n" + "╔═════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════╗\n" +
"║ test_usr ║\n" + "║ test_usr ║\n" +
@@ -252,42 +252,42 @@ class PlayerTest {
assertTrue(emptyString.contains("BUILDING CARDS:")); assertTrue(emptyString.contains("BUILDING CARDS:"));
Player onlyArtist = new Player("onlyArtist"); Player onlyArtist = new Player("onlyArtist");
onlyArtist.artists.add(new Artist(1)); onlyArtist.getArtists().add(new Artist(1));
String artistString = onlyArtist.toString(); String artistString = onlyArtist.toString();
assertTrue(artistString.contains("Artists:")); assertTrue(artistString.contains("Artists:"));
assertTrue(artistString.contains("BUILDING CARDS:")); assertTrue(artistString.contains("BUILDING CARDS:"));
Player onlyBuilder = new Player("onlyBuilder"); Player onlyBuilder = new Player("onlyBuilder");
onlyBuilder.builders.add(new Builder(1, 1, 1)); onlyBuilder.getBuilders().add(new Builder(1, 1, 1));
String builderString = onlyBuilder.toString(); String builderString = onlyBuilder.toString();
assertTrue(builderString.contains("Builders:")); assertTrue(builderString.contains("Builders:"));
assertTrue(builderString.contains("BUILDING CARDS:")); assertTrue(builderString.contains("BUILDING CARDS:"));
Player onlyGatherer = new Player("onlyGatherer"); Player onlyGatherer = new Player("onlyGatherer");
onlyGatherer.gatherers.add(new Gatherer(1, 1)); onlyGatherer.getGatherers().add(new Gatherer(1, 1));
String gathererString = onlyGatherer.toString(); String gathererString = onlyGatherer.toString();
assertTrue(gathererString.contains("Gatherers:")); assertTrue(gathererString.contains("Gatherers:"));
assertTrue(gathererString.contains("BUILDING CARDS:")); assertTrue(gathererString.contains("BUILDING CARDS:"));
Player onlyShaman = new Player("onlyShaman"); Player onlyShaman = new Player("onlyShaman");
onlyShaman.shamans.add(new Shaman(1, 1)); onlyShaman.getShamans().add(new Shaman(1, 1));
String shamanString = onlyShaman.toString(); String shamanString = onlyShaman.toString();
assertTrue(shamanString.contains("Shamans:")); assertTrue(shamanString.contains("Shamans:"));
assertTrue(shamanString.contains("BUILDING CARDS:")); assertTrue(shamanString.contains("BUILDING CARDS:"));
Player onlyInventor = new Player("onlyInventor"); Player onlyInventor = new Player("onlyInventor");
onlyInventor.inventors.add(new Inventor(1, 1)); onlyInventor.getInventors().add(new Inventor(1, 1));
String inventorString = onlyInventor.toString(); String inventorString = onlyInventor.toString();
assertTrue(inventorString.contains("Inventors:")); assertTrue(inventorString.contains("Inventors:"));
assertTrue(inventorString.contains("BUILDING CARDS:")); assertTrue(inventorString.contains("BUILDING CARDS:"));
Player onlyHunter = new Player("onlyHunter"); Player onlyHunter = new Player("onlyHunter");
onlyHunter.hunters.add(new Hunter(1, true)); onlyHunter.getHunters().add(new Hunter(1, true));
String hunterString = onlyHunter.toString(); String hunterString = onlyHunter.toString();
assertTrue(hunterString.contains("Hunters:")); assertTrue(hunterString.contains("Hunters:"));