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