Fix: Sustenence Effect, Player Corrected And Minor Fixes

This commit is contained in:
GabrieleRadice
2026-03-18 18:56:10 +01:00
parent acb915b611
commit 959341e421
4 changed files with 36 additions and 16 deletions
@@ -11,11 +11,11 @@ import java.util.ArrayList;
public class Hunt extends EventCard { public class Hunt extends EventCard {
int foodToAdd; int foodToAdd;
int prestigeMoltiplicator; int prestigeMultiplicator;
public Hunt(int Era, int foodToAdd, int prestigeMoltiplicator) { public Hunt(int Era, int foodToAdd, int prestigeMultiplicator) {
super(Era, EventType.HUNT); super(Era, EventType.HUNT);
this.foodToAdd = foodToAdd; this.foodToAdd = foodToAdd;
this.prestigeMoltiplicator = prestigeMoltiplicator; this.prestigeMultiplicator = prestigeMultiplicator;
} }
@Override @Override
@@ -27,12 +27,12 @@ public class Hunt extends EventCard {
for (BuildingCard buildingCard : buildingList) { for (BuildingCard buildingCard : buildingList) {
if (buildingCard.getEffectId() == 7) { if (buildingCard.getEffectId() == 7) {
foodToAdd++; foodToAdd++;
prestigeMoltiplicator++; prestigeMultiplicator++;
} }
} }
player.addFood(foodToAdd); player.addFood(foodToAdd);
player.addPrestige(prestigeMoltiplicator * hunterCounter); player.addPrestige(prestigeMultiplicator * hunterCounter);
} }
} }
} }
@@ -24,13 +24,19 @@ public class Sustenance extends EventCard {
@Override @Override
public void activateEvent (ArrayList <Player> playerList) throws NullPointerException { public void activateEvent (ArrayList <Player> playerList) throws NullPointerException {
for(Player player : playerList){ for(Player player : playerList){
int NChar = player.getCharacterCards().size(); int NChar = player.getTotCharacters();
int NGatherers = int NGatherers = player.getNType(CharacterType.GATHERERS);
(int) player.getCharacterCards().stream().filter(x -> x.getType().equals(CharacterType.GATHERERS)).count();
int NCharDiscount = 0; int NCharDiscount = 0;
for(Player p : playerList){ for(Player p : playerList){
ArrayList<Character> characters = player.getCharacterCards(); ArrayList<Character> characters = new ArrayList<>();
characters.addAll(p.artists);
characters.addAll(p.builders);
characters.addAll(p.inventors);
characters.addAll(p.gatherers);
characters.addAll(p.shamans);
characters.addAll(p.hunters);
for(BuildingCard b : player.getBuildingCards()){ for(BuildingCard b : player.getBuildingCards()){
if(b.getEffectId() == 1){ if(b.getEffectId() == 1){
NCharDiscount += (int) characters.stream().filter(x -> x.getType().equals(((Building1)b).getIcon())).count(); NCharDiscount += (int) characters.stream().filter(x -> x.getType().equals(((Building1)b).getIcon())).count();
@@ -47,14 +53,10 @@ public class Sustenance extends EventCard {
player.removeFood(FoodDebt); player.removeFood(FoodDebt);
} }
else{ else{
while(player.getFoodValue() > 0 && FoodDebt > 0){ FoodDebt -= player.getFoodValue();
player.removeFood(1); player.removeFood(player.getFoodValue()); // player.getFoodValue() == 0
FoodDebt--;
}
if(FoodDebt > 0){
player.removePrestige(FoodDebt * PrestigeDebt); player.removePrestige(FoodDebt * PrestigeDebt);
} }
} }
} }
} }
}
@@ -91,6 +91,14 @@ public class Player {
this.PrestigeValue -= Value; this.PrestigeValue -= Value;
} }
public void setUserName(String UserName) throws IllegalArgumentException{
final int MAXLEN = 32;
if(UserName.isEmpty() || UserName.length() > MAXLEN){
throw new IllegalArgumentException();
}
this.UserName = UserName;
}
// End setters // End setters
// Constructors // Constructors
@@ -3,6 +3,7 @@ package it.polimi.ingsw.gc14.Model;
import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.*; import static org.junit.jupiter.api.Assertions.*;
import static org.junit.jupiter.api.Assertions.assertEquals;
class PlayerAddFoodTest { class PlayerAddFoodTest {
@@ -19,5 +20,14 @@ class PlayerAddFoodTest {
p.addFood(-2); p.addFood(-2);
new_val = p.getFoodValue(); new_val = p.getFoodValue();
assertEquals(-1, new_val); // chiedere prof (dovrebbe essere +3 expected) assertEquals(-1, new_val); // chiedere prof (dovrebbe essere +3 expected)
p.addFood(1);
p.addFood(3);
p.removeFood(3);
assertEquals(0, p.getFoodValue());
p.addFood(4);
p.removeFood(p.getFoodValue());
assertEquals(0, p.getFoodValue());
} }
} }