package it.polimi.ingsw.gc14.Model; import it.polimi.ingsw.gc14.Model.Cards.BuildingCard; import java.util.*; public abstract class OrderLogicCard { private Queue players; public OrderLogicCard(ArrayList players) { Collections.shuffle(players); this.players = new LinkedList<>(players); } public void push(Player player){ effect(player,players.size()); players.add(player); } public Player pull(){ return players.remove(); } public Player getFirst() { return players.peek(); } protected abstract void effect(Player player, int index) throws IndexOutOfBoundsException; protected void buildingEffect(Player player) { for(BuildingCard b : player.buildingCards.stream().filter(x->x.getEffectId()==3).toList()) player.addFood(1); } }