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 {
|
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());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user