From 5e6173e730add939f2633fa45522601c89e819d7 Mon Sep 17 00:00:00 2001 From: rubenpirreram Date: Thu, 19 Mar 2026 16:54:13 +0100 Subject: [PATCH] Game initialize --- .../ingsw/gc14/Model/Cards/BuildingCard.java | 7 ++++- .../TribeCards/Events/CavePaintings.java | 2 +- .../Model/Cards/TribeCards/Events/Hunt.java | 2 +- .../TribeCards/Events/ShamanicRitual.java | 6 ++--- .../Cards/TribeCards/Events/Sustenance.java | 2 +- .../java/it/polimi/ingsw/gc14/Model/Game.java | 27 +++++++++++++++++++ .../it/polimi/ingsw/gc14/Model/Player.java | 14 ++-------- .../java/it/polimi/ingsw/gc14/Model/Slot.java | 9 +++++-- 8 files changed, 48 insertions(+), 21 deletions(-) diff --git a/src/main/java/it/polimi/ingsw/gc14/Model/Cards/BuildingCard.java b/src/main/java/it/polimi/ingsw/gc14/Model/Cards/BuildingCard.java index 4b36d23..63f1d55 100644 --- a/src/main/java/it/polimi/ingsw/gc14/Model/Cards/BuildingCard.java +++ b/src/main/java/it/polimi/ingsw/gc14/Model/Cards/BuildingCard.java @@ -40,6 +40,11 @@ public class BuildingCard extends PlayableCard implements Cloneable , BuildingEf { 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){}; } diff --git a/src/main/java/it/polimi/ingsw/gc14/Model/Cards/TribeCards/Events/CavePaintings.java b/src/main/java/it/polimi/ingsw/gc14/Model/Cards/TribeCards/Events/CavePaintings.java index 23c1b0d..db70423 100644 --- a/src/main/java/it/polimi/ingsw/gc14/Model/Cards/TribeCards/Events/CavePaintings.java +++ b/src/main/java/it/polimi/ingsw/gc14/Model/Cards/TribeCards/Events/CavePaintings.java @@ -28,7 +28,7 @@ public class CavePaintings extends EventCard { for (Player player : playerList){ int NArtists = player.getNType(CharacterType.ARTIST); int NBuildings = 0; - ArrayList buildingCards = player.getBuildingCards(); + ArrayList buildingCards = player.buildingCards; for(BuildingCard card : buildingCards){ if(card.getEffectId() == 9){ diff --git a/src/main/java/it/polimi/ingsw/gc14/Model/Cards/TribeCards/Events/Hunt.java b/src/main/java/it/polimi/ingsw/gc14/Model/Cards/TribeCards/Events/Hunt.java index 4c73fe6..1887fd7 100644 --- a/src/main/java/it/polimi/ingsw/gc14/Model/Cards/TribeCards/Events/Hunt.java +++ b/src/main/java/it/polimi/ingsw/gc14/Model/Cards/TribeCards/Events/Hunt.java @@ -21,7 +21,7 @@ public class Hunt extends EventCard { @Override public void activateEvent (ArrayList playerList){ for (Player player : playerList) { - ArrayList buildingList = player.getBuildingCards(); + ArrayList buildingList = player.buildingCards; int hunterCounter=player.getNType(CharacterType.HUNTER); for (BuildingCard buildingCard : buildingList) { diff --git a/src/main/java/it/polimi/ingsw/gc14/Model/Cards/TribeCards/Events/ShamanicRitual.java b/src/main/java/it/polimi/ingsw/gc14/Model/Cards/TribeCards/Events/ShamanicRitual.java index c5f1b24..8303dd4 100644 --- a/src/main/java/it/polimi/ingsw/gc14/Model/Cards/TribeCards/Events/ShamanicRitual.java +++ b/src/main/java/it/polimi/ingsw/gc14/Model/Cards/TribeCards/Events/ShamanicRitual.java @@ -27,7 +27,7 @@ public class ShamanicRitual extends EventCard { for (Player player : playerList) { 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; } playerMap.put(player, tmpIcons); @@ -41,7 +41,7 @@ public class ShamanicRitual extends EventCard { 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); } else { player.addPrestige(prestigeToAdd); @@ -49,7 +49,7 @@ public class ShamanicRitual extends EventCard { } 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); } } diff --git a/src/main/java/it/polimi/ingsw/gc14/Model/Cards/TribeCards/Events/Sustenance.java b/src/main/java/it/polimi/ingsw/gc14/Model/Cards/TribeCards/Events/Sustenance.java index 5e541ce..9ac693c 100644 --- a/src/main/java/it/polimi/ingsw/gc14/Model/Cards/TribeCards/Events/Sustenance.java +++ b/src/main/java/it/polimi/ingsw/gc14/Model/Cards/TribeCards/Events/Sustenance.java @@ -29,7 +29,7 @@ public class Sustenance extends EventCard { int NCharDiscount = 0; for(Player p : playerList){ - for(BuildingCard b : player.getBuildingCards()){ + for(BuildingCard b : player.buildingCards){ if(b.getEffectId() == 1){ CharacterType c = ((Building1)b).getIcon(); NCharDiscount += p.getNType(c); diff --git a/src/main/java/it/polimi/ingsw/gc14/Model/Game.java b/src/main/java/it/polimi/ingsw/gc14/Model/Game.java index d9b2a95..afcf47a 100644 --- a/src/main/java/it/polimi/ingsw/gc14/Model/Game.java +++ b/src/main/java/it/polimi/ingsw/gc14/Model/Game.java @@ -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.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 java.util.ArrayList; @@ -16,7 +20,23 @@ public class Game { private List upperListBuilding; private List lowerListBuilding; private List playersList;//No Clone? + + private OrderLogicCard orderLogicCard; public Game(ArrayList 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<>(); tribeDeck = new ArrayList<>(); buildingDeck = new ArrayList<>(); @@ -26,4 +46,11 @@ public class Game { lowerListBuilding = new ArrayList<>(); this.playersList = playersList; } + public void init() + { + + } + + + } diff --git a/src/main/java/it/polimi/ingsw/gc14/Model/Player.java b/src/main/java/it/polimi/ingsw/gc14/Model/Player.java index c8f44d0..93f7f74 100644 --- a/src/main/java/it/polimi/ingsw/gc14/Model/Player.java +++ b/src/main/java/it/polimi/ingsw/gc14/Model/Player.java @@ -1,14 +1,11 @@ package it.polimi.ingsw.gc14.Model; 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.Characters.*; import java.util.ArrayList; import java.util.Arrays; -import java.util.List; -import java.util.concurrent.atomic.AtomicInteger; import static java.lang.Math.abs; @@ -35,14 +32,7 @@ public class Player { }; } - private ArrayList BuildingCards; - public ArrayList getBuildingCards() { - ArrayList copy = new ArrayList <>(); - for(BuildingCard building:BuildingCards){ - copy.add(building.clone()); - } - return copy; - } + public ArrayList buildingCards; public ArrayList artists; public ArrayList builders; @@ -107,7 +97,7 @@ public class Player { this.hunters = new ArrayList <>(); this.artists = new ArrayList<>(); - this.BuildingCards = new ArrayList<>(); + this.buildingCards = new ArrayList<>(); this.FoodValue = 0; this.PrestigeValue = 0; } diff --git a/src/main/java/it/polimi/ingsw/gc14/Model/Slot.java b/src/main/java/it/polimi/ingsw/gc14/Model/Slot.java index bb47f1e..e7807b4 100644 --- a/src/main/java/it/polimi/ingsw/gc14/Model/Slot.java +++ b/src/main/java/it/polimi/ingsw/gc14/Model/Slot.java @@ -6,7 +6,11 @@ public class Slot { public int getNUpper(){ return NUpper; } - + private int nMinPlayer; + public int getNMinPlayer() + { + return nMinPlayer; + } private int NLower; public int getNLower(){ return NLower; @@ -22,13 +26,14 @@ public class Slot { // End setters // 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.NLower = NLower; this.Food = Food; if(Food != 0 && (NUpper != 0 || NLower != 0)){ throw new IllegalArgumentException(); } + this.nMinPlayer = nMinPlayer; } // End Constructors