Hunt test added

This commit is contained in:
2026-03-15 21:50:44 +01:00
parent 6c88e07aeb
commit bcd5dd76a4
3 changed files with 95 additions and 2 deletions
@@ -17,7 +17,6 @@ public class Hunt extends EventCard {
this.prestigeMoltiplicator = prestigeMoltiplicator; this.prestigeMoltiplicator = prestigeMoltiplicator;
} }
// TODO
@Override @Override
public void activateEvent (ArrayList <Player> playerList){ public void activateEvent (ArrayList <Player> playerList){
for (Player player : playerList) { for (Player player : playerList) {
@@ -6,13 +6,60 @@ import it.polimi.ingsw.gc14.Model.Player;
import java.util.ArrayList; import java.util.ArrayList;
public class ShamanicRitual extends EventCard { public class ShamanicRitual extends EventCard {
public ShamanicRitual(int Era) { int prestigeToAdd;
int getPrestigeToRemove;
public ShamanicRitual(int Era, int prestigeToAdd, int getPrestigeToRemove) {
super(Era, EventType.SHAMANIC_RITUAL); super(Era, EventType.SHAMANIC_RITUAL);
this.prestigeToAdd = prestigeToAdd;
this.getPrestigeToRemove = getPrestigeToRemove;
} }
// TODO // TODO
@Override @Override
public void activateEvent (ArrayList <Player> playerList){ public void activateEvent (ArrayList <Player> playerList){
int maxPrestige = playerList.get(0).getPrestigeValue();
int minPrestige = playerList.get(0).getPrestigeValue();
ArrayList <Player> maxPrestigePlayer = new ArrayList<>();
ArrayList <Player> minPrestigePlayer = new ArrayList<>();
for (Player player : playerList) {
if (player.getPrestigeValue() > maxPrestige) {
maxPrestige = player.getPrestigeValue();
}
if (player.getPrestigeValue() < minPrestige) {
minPrestige = player.getPrestigeValue();
}
}
for (Player player : playerList) {
int count = (int) player.getBuildingCards().stream().filter(b -> b.getEffectId() == 1).count();
player.addPrestige(3 * count);
if (player.getPrestigeValue() == maxPrestige) {
maxPrestigePlayer.add(player);
}
if (player.getPrestigeValue() == minPrestige) {
minPrestigePlayer.add(player);
}
player.removePrestige(3 * count);
}
for (Player player : maxPrestigePlayer) {
player.addPrestige(prestigeToAdd);
if (player.getBuildingCards().stream().anyMatch(b -> b.getEffectId() == 6)) {
player.addPrestige(prestigeToAdd);
}
}
for (Player player : minPrestigePlayer) {
if (!(player.getBuildingCards().stream().anyMatch(b -> b.getEffectId() == 2))){
player.removePrestige(getPrestigeToRemove);
}
}
} }
} }
@@ -0,0 +1,47 @@
package it.polimi.ingsw.gc14.Model.Cards.TribeCards.Events;
import it.polimi.ingsw.gc14.Model.Player;
import org.junit.jupiter.api.Test;
import java.util.ArrayList;
import java.util.Arrays;
import static org.junit.jupiter.api.Assertions.*;
class HuntEventTest {
@Test
void activateEvent() {
Player p1 = new Player("Giacomo");
Player p2 = new Player("xiaomi");
Player p3 = new Player("intellij");
Player p4 = new Player("mesos");
ArrayList<Player> players = new ArrayList<>(Arrays.asList(p1,p2,p3,p4));
Hunt h1 = new Hunt(1, 1, 3);
h1.activateEvent(players);
assertEquals(0, p1.getPrestigeValue());
assertEquals(1, p1.getFoodValue());
assertEquals(0, p2.getPrestigeValue());
assertEquals(1, p2.getFoodValue());
assertEquals(0, p3.getPrestigeValue());
assertEquals(1, p3.getFoodValue());
assertEquals(0, p4.getPrestigeValue());
assertEquals(1, p4.getFoodValue());
Hunt h2 = new Hunt(1, -11, 0);
h2.activateEvent(players);
assertEquals(0, p1.getPrestigeValue());
assertEquals(-10, p1.getFoodValue());
assertEquals(0, p2.getPrestigeValue());
assertEquals(-10, p2.getFoodValue());
assertEquals(0, p3.getPrestigeValue());
assertEquals(-10, p3.getFoodValue());
assertEquals(0, p4.getPrestigeValue());
assertEquals(-10, p4.getFoodValue());
}
}