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 {
int foodToAdd;
int prestigeMoltiplicator;
public Hunt(int Era, int foodToAdd, int prestigeMoltiplicator) {
int prestigeMultiplicator;
public Hunt(int Era, int foodToAdd, int prestigeMultiplicator) {
super(Era, EventType.HUNT);
this.foodToAdd = foodToAdd;
this.prestigeMoltiplicator = prestigeMoltiplicator;
this.prestigeMultiplicator = prestigeMultiplicator;
}
@Override
@@ -27,12 +27,12 @@ public class Hunt extends EventCard {
for (BuildingCard buildingCard : buildingList) {
if (buildingCard.getEffectId() == 7) {
foodToAdd++;
prestigeMoltiplicator++;
prestigeMultiplicator++;
}
}
player.addFood(foodToAdd);
player.addPrestige(prestigeMoltiplicator * hunterCounter);
player.addPrestige(prestigeMultiplicator * hunterCounter);
}
}
}
@@ -24,13 +24,19 @@ public class Sustenance extends EventCard {
@Override
public void activateEvent (ArrayList <Player> playerList) throws NullPointerException {
for(Player player : playerList){
int NChar = player.getCharacterCards().size();
int NGatherers =
(int) player.getCharacterCards().stream().filter(x -> x.getType().equals(CharacterType.GATHERERS)).count();
int NChar = player.getTotCharacters();
int NGatherers = player.getNType(CharacterType.GATHERERS);
int NCharDiscount = 0;
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()){
if(b.getEffectId() == 1){
NCharDiscount += (int) characters.stream().filter(x -> x.getType().equals(((Building1)b).getIcon())).count();
@@ -47,13 +53,9 @@ public class Sustenance extends EventCard {
player.removeFood(FoodDebt);
}
else{
while(player.getFoodValue() > 0 && FoodDebt > 0){
player.removeFood(1);
FoodDebt--;
}
if(FoodDebt > 0){
player.removePrestige(FoodDebt * PrestigeDebt);
}
FoodDebt -= player.getFoodValue();
player.removeFood(player.getFoodValue()); // player.getFoodValue() == 0
player.removePrestige(FoodDebt * PrestigeDebt);
}
}
}
@@ -91,6 +91,14 @@ public class Player {
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
// Constructors
@@ -3,6 +3,7 @@ package it.polimi.ingsw.gc14.Model;
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.*;
import static org.junit.jupiter.api.Assertions.assertEquals;
class PlayerAddFoodTest {
@@ -19,5 +20,14 @@ class PlayerAddFoodTest {
p.addFood(-2);
new_val = p.getFoodValue();
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());
}
}