Fix: Sustenence Effect, Player Corrected And Minor Fixes
This commit is contained in:
@@ -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());
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user