Game initialize

This commit is contained in:
rubenpirreram
2026-03-19 16:54:13 +01:00
parent 1f3d22768b
commit 5e6173e730
8 changed files with 48 additions and 21 deletions
@@ -40,6 +40,11 @@ public class BuildingCard extends PlayableCard implements Cloneable , BuildingEf
{ {
return new BuildingCard(effectId,effectType,getEra(),getPrice()); return new BuildingCard(effectId,effectType,getEra(),getPrice());
} }
public boolean buy(Player player) {
if(!player.removeFood(getPrice()))
return false;
player.buildingCards.add(this);
return true;
}
public void applyEffect(Player player){}; public void applyEffect(Player player){};
} }
@@ -28,7 +28,7 @@ public class CavePaintings extends EventCard {
for (Player player : playerList){ for (Player player : playerList){
int NArtists = player.getNType(CharacterType.ARTIST); int NArtists = player.getNType(CharacterType.ARTIST);
int NBuildings = 0; int NBuildings = 0;
ArrayList<BuildingCard> buildingCards = player.getBuildingCards(); ArrayList<BuildingCard> buildingCards = player.buildingCards;
for(BuildingCard card : buildingCards){ for(BuildingCard card : buildingCards){
if(card.getEffectId() == 9){ if(card.getEffectId() == 9){
@@ -21,7 +21,7 @@ public class Hunt extends EventCard {
@Override @Override
public void activateEvent (ArrayList <Player> playerList){ public void activateEvent (ArrayList <Player> playerList){
for (Player player : playerList) { for (Player player : playerList) {
ArrayList <BuildingCard> buildingList = player.getBuildingCards(); ArrayList <BuildingCard> buildingList = player.buildingCards;
int hunterCounter=player.getNType(CharacterType.HUNTER); int hunterCounter=player.getNType(CharacterType.HUNTER);
for (BuildingCard buildingCard : buildingList) { for (BuildingCard buildingCard : buildingList) {
@@ -27,7 +27,7 @@ public class ShamanicRitual extends EventCard {
for (Player player : playerList) { for (Player player : playerList) {
tmpIcons = player.shamans.stream().mapToInt(sh -> sh.getIcon()).sum(); tmpIcons = player.shamans.stream().mapToInt(sh -> sh.getIcon()).sum();
if (player.getBuildingCards().stream().anyMatch(b -> b.getEffectId() == 5)) { if (player.buildingCards.stream().anyMatch(b -> b.getEffectId() == 5)) {
tmpIcons = tmpIcons+3; tmpIcons = tmpIcons+3;
} }
playerMap.put(player, tmpIcons); playerMap.put(player, tmpIcons);
@@ -41,7 +41,7 @@ public class ShamanicRitual extends EventCard {
for (Player player : maxIconsPlayer) { for (Player player : maxIconsPlayer) {
if (player.getBuildingCards().stream().anyMatch(b -> b.getEffectId() == 6)) { if (player.buildingCards.stream().anyMatch(b -> b.getEffectId() == 6)) {
player.addPrestige(prestigeToAdd *2); player.addPrestige(prestigeToAdd *2);
} else { } else {
player.addPrestige(prestigeToAdd); player.addPrestige(prestigeToAdd);
@@ -49,7 +49,7 @@ public class ShamanicRitual extends EventCard {
} }
for (Player player : minIconsPlayer) { for (Player player : minIconsPlayer) {
if (!(player.getBuildingCards().stream().anyMatch(b -> b.getEffectId() == 2))) { if (!(player.buildingCards.stream().anyMatch(b -> b.getEffectId() == 2))) {
player.removePrestige(prestigeToRemove); player.removePrestige(prestigeToRemove);
} }
} }
@@ -29,7 +29,7 @@ public class Sustenance extends EventCard {
int NCharDiscount = 0; int NCharDiscount = 0;
for(Player p : playerList){ for(Player p : playerList){
for(BuildingCard b : player.getBuildingCards()){ for(BuildingCard b : player.buildingCards){
if(b.getEffectId() == 1){ if(b.getEffectId() == 1){
CharacterType c = ((Building1)b).getIcon(); CharacterType c = ((Building1)b).getIcon();
NCharDiscount += p.getNType(c); NCharDiscount += p.getNType(c);
@@ -2,6 +2,10 @@ package it.polimi.ingsw.gc14.Model;
import it.polimi.ingsw.gc14.Model.Cards.BuildingCard; import it.polimi.ingsw.gc14.Model.Cards.BuildingCard;
import it.polimi.ingsw.gc14.Model.Cards.TribeCard; import it.polimi.ingsw.gc14.Model.Cards.TribeCard;
import it.polimi.ingsw.gc14.Model.Orders.Order2;
import it.polimi.ingsw.gc14.Model.Orders.Order3;
import it.polimi.ingsw.gc14.Model.Orders.Order4;
import it.polimi.ingsw.gc14.Model.Orders.Order5;
import javax.smartcardio.Card; import javax.smartcardio.Card;
import java.util.ArrayList; import java.util.ArrayList;
@@ -16,7 +20,23 @@ public class Game {
private List<BuildingCard> upperListBuilding; private List<BuildingCard> upperListBuilding;
private List<BuildingCard> lowerListBuilding; private List<BuildingCard> lowerListBuilding;
private List<Player> playersList;//No Clone? private List<Player> playersList;//No Clone?
private OrderLogicCard orderLogicCard;
public Game(ArrayList<Player> playersList) { public Game(ArrayList<Player> playersList) {
switch (playersList.size()) {
case 2:
orderLogicCard=new Order2(playersList);
break;
case 3:
orderLogicCard=new Order3(playersList);
break;
case 4:
orderLogicCard=new Order4(playersList);
break;
case 5:
orderLogicCard=new Order5(playersList);
break;
}
slotList = new ArrayList<>(); slotList = new ArrayList<>();
tribeDeck = new ArrayList<>(); tribeDeck = new ArrayList<>();
buildingDeck = new ArrayList<>(); buildingDeck = new ArrayList<>();
@@ -26,4 +46,11 @@ public class Game {
lowerListBuilding = new ArrayList<>(); lowerListBuilding = new ArrayList<>();
this.playersList = playersList; this.playersList = playersList;
} }
public void init()
{
}
} }
@@ -1,14 +1,11 @@
package it.polimi.ingsw.gc14.Model; package it.polimi.ingsw.gc14.Model;
import it.polimi.ingsw.gc14.Model.Cards.BuildingCard; import it.polimi.ingsw.gc14.Model.Cards.BuildingCard;
import it.polimi.ingsw.gc14.Model.Cards.TribeCard;
import it.polimi.ingsw.gc14.Model.Cards.TribeCards.CharacterType; import it.polimi.ingsw.gc14.Model.Cards.TribeCards.CharacterType;
import it.polimi.ingsw.gc14.Model.Cards.TribeCards.Characters.*; import it.polimi.ingsw.gc14.Model.Cards.TribeCards.Characters.*;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;
import java.util.List;
import java.util.concurrent.atomic.AtomicInteger;
import static java.lang.Math.abs; import static java.lang.Math.abs;
@@ -35,14 +32,7 @@ public class Player {
}; };
} }
private ArrayList <BuildingCard> BuildingCards; public ArrayList <BuildingCard> buildingCards;
public ArrayList <BuildingCard> getBuildingCards() {
ArrayList <BuildingCard> copy = new ArrayList <>();
for(BuildingCard building:BuildingCards){
copy.add(building.clone());
}
return copy;
}
public ArrayList <Artist> artists; public ArrayList <Artist> artists;
public ArrayList <Builder> builders; public ArrayList <Builder> builders;
@@ -107,7 +97,7 @@ public class Player {
this.hunters = new ArrayList <>(); this.hunters = new ArrayList <>();
this.artists = new ArrayList<>(); this.artists = new ArrayList<>();
this.BuildingCards = new ArrayList<>(); this.buildingCards = new ArrayList<>();
this.FoodValue = 0; this.FoodValue = 0;
this.PrestigeValue = 0; this.PrestigeValue = 0;
} }
@@ -6,7 +6,11 @@ public class Slot {
public int getNUpper(){ public int getNUpper(){
return NUpper; return NUpper;
} }
private int nMinPlayer;
public int getNMinPlayer()
{
return nMinPlayer;
}
private int NLower; private int NLower;
public int getNLower(){ public int getNLower(){
return NLower; return NLower;
@@ -22,13 +26,14 @@ public class Slot {
// End setters // End setters
// Constructors // Constructors
public Slot(int NUpper, int NLower, int Food) throws IllegalArgumentException { public Slot(int NUpper, int NLower, int Food,int nMinPlayer) throws IllegalArgumentException {
this.NUpper = NUpper; this.NUpper = NUpper;
this.NLower = NLower; this.NLower = NLower;
this.Food = Food; this.Food = Food;
if(Food != 0 && (NUpper != 0 || NLower != 0)){ if(Food != 0 && (NUpper != 0 || NLower != 0)){
throw new IllegalArgumentException(); throw new IllegalArgumentException();
} }
this.nMinPlayer = nMinPlayer;
} }
// End Constructors // End Constructors