From e98bae5a6ef169a8ee3d5538714639e192aeef7b Mon Sep 17 00:00:00 2001 From: rubenpirreram Date: Tue, 17 Mar 2026 17:39:00 +0100 Subject: [PATCH] Instance of deleted on characters, Changed Building Effect Logic --- .../Model/Cards/Building/BuildingEffect.java | 7 ++++++ .../Cards/Building/Effects/Building12.java | 22 ----------------- .../Cards/Building/Effects/Building2.java | 23 ------------------ .../Cards/Building/Effects/Building3.java | 22 ----------------- .../Cards/Building/Effects/Building5.java | 22 ----------------- .../Cards/Building/Effects/Building6.java | 22 ----------------- .../Cards/Building/Effects/Building7.java | 22 ----------------- .../Cards/Building/Effects/Building9.java | 21 ---------------- .../ingsw/gc14/Model/Cards/BuildingCard.java | 17 ++++++++++--- .../Model/Cards/TribeCards/Character.java | 3 +++ .../Cards/TribeCards/Characters/Artist.java | 5 ++++ .../Cards/TribeCards/Characters/Builder.java | 5 +++- .../TribeCards/Characters/Gatherers.java | 5 +++- .../Cards/TribeCards/Characters/Hunter.java | 5 ++++ .../Cards/TribeCards/Characters/Inventor.java | 6 ++++- .../Cards/TribeCards/Characters/Shaman.java | 6 +++++ .../Cards/TribeCards/Events/Sustenance.java | 4 ++-- .../java/it/polimi/ingsw/gc14/Model/Game.java | 11 +++++---- .../it/polimi/ingsw/gc14/Model/Player.java | 24 ++++++++++++------- 19 files changed, 77 insertions(+), 175 deletions(-) create mode 100644 src/main/java/it/polimi/ingsw/gc14/Model/Cards/Building/BuildingEffect.java delete mode 100644 src/main/java/it/polimi/ingsw/gc14/Model/Cards/Building/Effects/Building12.java delete mode 100644 src/main/java/it/polimi/ingsw/gc14/Model/Cards/Building/Effects/Building2.java delete mode 100644 src/main/java/it/polimi/ingsw/gc14/Model/Cards/Building/Effects/Building3.java delete mode 100644 src/main/java/it/polimi/ingsw/gc14/Model/Cards/Building/Effects/Building5.java delete mode 100644 src/main/java/it/polimi/ingsw/gc14/Model/Cards/Building/Effects/Building6.java delete mode 100644 src/main/java/it/polimi/ingsw/gc14/Model/Cards/Building/Effects/Building7.java delete mode 100644 src/main/java/it/polimi/ingsw/gc14/Model/Cards/Building/Effects/Building9.java diff --git a/src/main/java/it/polimi/ingsw/gc14/Model/Cards/Building/BuildingEffect.java b/src/main/java/it/polimi/ingsw/gc14/Model/Cards/Building/BuildingEffect.java new file mode 100644 index 0000000..967136a --- /dev/null +++ b/src/main/java/it/polimi/ingsw/gc14/Model/Cards/Building/BuildingEffect.java @@ -0,0 +1,7 @@ +package it.polimi.ingsw.gc14.Model.Cards.Building; + +import it.polimi.ingsw.gc14.Model.Player; + +public interface BuildingEffect { + public void applyEffect(Player player); +} diff --git a/src/main/java/it/polimi/ingsw/gc14/Model/Cards/Building/Effects/Building12.java b/src/main/java/it/polimi/ingsw/gc14/Model/Cards/Building/Effects/Building12.java deleted file mode 100644 index b019491..0000000 --- a/src/main/java/it/polimi/ingsw/gc14/Model/Cards/Building/Effects/Building12.java +++ /dev/null @@ -1,22 +0,0 @@ -package it.polimi.ingsw.gc14.Model.Cards.Building.Effects; - -import it.polimi.ingsw.gc14.Model.Cards.Building.EffectType; -import it.polimi.ingsw.gc14.Model.Cards.BuildingCard; -import it.polimi.ingsw.gc14.Model.Player; - -public class Building12 extends BuildingCard { - public Building12(int era, int price) { - super(era,price); - effectType= EffectType.ON_ROUND_END; - effectId=12; - } - @Override - public BuildingCard clone() { - return new Building12(getEra(),getPrice()); - } - @Override - // TODO - public void applyEffect(Player player) { - - } -} diff --git a/src/main/java/it/polimi/ingsw/gc14/Model/Cards/Building/Effects/Building2.java b/src/main/java/it/polimi/ingsw/gc14/Model/Cards/Building/Effects/Building2.java deleted file mode 100644 index 353ef84..0000000 --- a/src/main/java/it/polimi/ingsw/gc14/Model/Cards/Building/Effects/Building2.java +++ /dev/null @@ -1,23 +0,0 @@ -package it.polimi.ingsw.gc14.Model.Cards.Building.Effects; - -import it.polimi.ingsw.gc14.Model.Cards.Building.EffectType; -import it.polimi.ingsw.gc14.Model.Cards.BuildingCard; -import it.polimi.ingsw.gc14.Model.Cards.TribeCards.CharacterType; -import it.polimi.ingsw.gc14.Model.Player; - -public class Building2 extends BuildingCard { - - public Building2(int era, int price) { - super(era,price); - effectType= EffectType.ON_EVENT; - effectId=2; - } - @Override - public BuildingCard clone() { - return new Building2(getEra(),getPrice()); - } - @Override - public void applyEffect(Player player) { - }; - -} \ No newline at end of file diff --git a/src/main/java/it/polimi/ingsw/gc14/Model/Cards/Building/Effects/Building3.java b/src/main/java/it/polimi/ingsw/gc14/Model/Cards/Building/Effects/Building3.java deleted file mode 100644 index a4bb09e..0000000 --- a/src/main/java/it/polimi/ingsw/gc14/Model/Cards/Building/Effects/Building3.java +++ /dev/null @@ -1,22 +0,0 @@ -package it.polimi.ingsw.gc14.Model.Cards.Building.Effects; - -import it.polimi.ingsw.gc14.Model.Cards.Building.EffectType; -import it.polimi.ingsw.gc14.Model.Cards.BuildingCard; -import it.polimi.ingsw.gc14.Model.Player; - -public class Building3 extends BuildingCard { - - public Building3(int era, int price) { - super(era,price); - effectType= EffectType.ON_END_TURN; - effectId=3; - } - @Override - public BuildingCard clone() { - return new Building3(getEra(),getPrice()); - } - @Override - public void applyEffect(Player player) { - }; - -} \ No newline at end of file diff --git a/src/main/java/it/polimi/ingsw/gc14/Model/Cards/Building/Effects/Building5.java b/src/main/java/it/polimi/ingsw/gc14/Model/Cards/Building/Effects/Building5.java deleted file mode 100644 index 9c0ca54..0000000 --- a/src/main/java/it/polimi/ingsw/gc14/Model/Cards/Building/Effects/Building5.java +++ /dev/null @@ -1,22 +0,0 @@ -package it.polimi.ingsw.gc14.Model.Cards.Building.Effects; - -import it.polimi.ingsw.gc14.Model.Cards.Building.EffectType; -import it.polimi.ingsw.gc14.Model.Cards.BuildingCard; -import it.polimi.ingsw.gc14.Model.Player; - -public class Building5 extends BuildingCard { - - public Building5(int era, int price) { - super(era,price); - effectType= EffectType.ON_EVENT; - effectId=5; - } - @Override - public BuildingCard clone() { - return new Building5(getEra(),getPrice()); - } - @Override - public void applyEffect(Player player) { - }; - -} diff --git a/src/main/java/it/polimi/ingsw/gc14/Model/Cards/Building/Effects/Building6.java b/src/main/java/it/polimi/ingsw/gc14/Model/Cards/Building/Effects/Building6.java deleted file mode 100644 index 05082a8..0000000 --- a/src/main/java/it/polimi/ingsw/gc14/Model/Cards/Building/Effects/Building6.java +++ /dev/null @@ -1,22 +0,0 @@ -package it.polimi.ingsw.gc14.Model.Cards.Building.Effects; - -import it.polimi.ingsw.gc14.Model.Cards.Building.EffectType; -import it.polimi.ingsw.gc14.Model.Cards.BuildingCard; -import it.polimi.ingsw.gc14.Model.Player; - -public class Building6 extends BuildingCard { - - public Building6(int era, int price) { - super(era,price); - effectType= EffectType.ON_EVENT; - effectId=6; - } - @Override - public BuildingCard clone() { - return new Building6(getEra(),getPrice()); - } - @Override - public void applyEffect(Player player) { - }; - -} \ No newline at end of file diff --git a/src/main/java/it/polimi/ingsw/gc14/Model/Cards/Building/Effects/Building7.java b/src/main/java/it/polimi/ingsw/gc14/Model/Cards/Building/Effects/Building7.java deleted file mode 100644 index bbbbb70..0000000 --- a/src/main/java/it/polimi/ingsw/gc14/Model/Cards/Building/Effects/Building7.java +++ /dev/null @@ -1,22 +0,0 @@ -package it.polimi.ingsw.gc14.Model.Cards.Building.Effects; - -import it.polimi.ingsw.gc14.Model.Cards.Building.EffectType; -import it.polimi.ingsw.gc14.Model.Cards.BuildingCard; -import it.polimi.ingsw.gc14.Model.Player; - -public class Building7 extends BuildingCard { - - public Building7(int era, int price) { - super(era,price); - effectType= EffectType.ON_EVENT; - effectId=7; - } - @Override - public BuildingCard clone() { - return new Building7(getEra(),getPrice()); - } - @Override - public void applyEffect(Player player) { - }; - -} diff --git a/src/main/java/it/polimi/ingsw/gc14/Model/Cards/Building/Effects/Building9.java b/src/main/java/it/polimi/ingsw/gc14/Model/Cards/Building/Effects/Building9.java deleted file mode 100644 index 13a75e9..0000000 --- a/src/main/java/it/polimi/ingsw/gc14/Model/Cards/Building/Effects/Building9.java +++ /dev/null @@ -1,21 +0,0 @@ -package it.polimi.ingsw.gc14.Model.Cards.Building.Effects; - -import it.polimi.ingsw.gc14.Model.Cards.Building.EffectType; -import it.polimi.ingsw.gc14.Model.Cards.BuildingCard; -import it.polimi.ingsw.gc14.Model.Player; - -public class Building9 extends BuildingCard{ - - public Building9(int era, int price) { - super(era,price); - effectType = EffectType.ON_EVENT; - effectId = 9; - } - @Override - public BuildingCard clone() { - return new Building9(getEra(),getPrice()); - } - @Override - public void applyEffect(Player player) { - }; -} 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 056c7bb..4b36d23 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 @@ -1,12 +1,13 @@ package it.polimi.ingsw.gc14.Model.Cards; +import it.polimi.ingsw.gc14.Model.Cards.Building.BuildingEffect; import it.polimi.ingsw.gc14.Model.Cards.Building.EffectType; import it.polimi.ingsw.gc14.Model.PlayableCard; import it.polimi.ingsw.gc14.Model.Player; import java.util.ArrayList; -public abstract class BuildingCard extends PlayableCard implements Cloneable { +public class BuildingCard extends PlayableCard implements Cloneable , BuildingEffect { private int price; public int getPrice() { return price; @@ -26,9 +27,19 @@ public abstract class BuildingCard extends PlayableCard implements Cloneable { super(era); this.price = price; } + public BuildingCard(int effectId,EffectType effectType ,int era,int price) { + this.effectId = effectId; + this.effectType = effectType; + super(era); + this.price = price; + } + @Override - public abstract BuildingCard clone() ; + public BuildingCard clone() + { + return new BuildingCard(effectId,effectType,getEra(),getPrice()); + } - public abstract void applyEffect(Player player); + public void applyEffect(Player player){}; } diff --git a/src/main/java/it/polimi/ingsw/gc14/Model/Cards/TribeCards/Character.java b/src/main/java/it/polimi/ingsw/gc14/Model/Cards/TribeCards/Character.java index 2129e68..203d87a 100644 --- a/src/main/java/it/polimi/ingsw/gc14/Model/Cards/TribeCards/Character.java +++ b/src/main/java/it/polimi/ingsw/gc14/Model/Cards/TribeCards/Character.java @@ -1,6 +1,7 @@ package it.polimi.ingsw.gc14.Model.Cards.TribeCards; import it.polimi.ingsw.gc14.Model.Cards.TribeCard; +import it.polimi.ingsw.gc14.Model.Player; public abstract class Character extends TribeCard implements Cloneable { @@ -21,4 +22,6 @@ public abstract class Character extends TribeCard implements Cloneable { @Override public abstract Character clone(); + + public abstract void insert(Player player); } diff --git a/src/main/java/it/polimi/ingsw/gc14/Model/Cards/TribeCards/Characters/Artist.java b/src/main/java/it/polimi/ingsw/gc14/Model/Cards/TribeCards/Characters/Artist.java index 49f342d..cbbc0b0 100644 --- a/src/main/java/it/polimi/ingsw/gc14/Model/Cards/TribeCards/Characters/Artist.java +++ b/src/main/java/it/polimi/ingsw/gc14/Model/Cards/TribeCards/Characters/Artist.java @@ -2,6 +2,7 @@ package it.polimi.ingsw.gc14.Model.Cards.TribeCards.Characters; import it.polimi.ingsw.gc14.Model.Cards.TribeCards.Character; import it.polimi.ingsw.gc14.Model.Cards.TribeCards.CharacterType; +import it.polimi.ingsw.gc14.Model.Player; public class Artist extends Character { @@ -26,6 +27,10 @@ public class Artist extends Character { return new Artist(getEra()); } + @Override + public void insert(Player player) { + player.artists.add(this); + } } diff --git a/src/main/java/it/polimi/ingsw/gc14/Model/Cards/TribeCards/Characters/Builder.java b/src/main/java/it/polimi/ingsw/gc14/Model/Cards/TribeCards/Characters/Builder.java index dd1b720..b556169 100644 --- a/src/main/java/it/polimi/ingsw/gc14/Model/Cards/TribeCards/Characters/Builder.java +++ b/src/main/java/it/polimi/ingsw/gc14/Model/Cards/TribeCards/Characters/Builder.java @@ -2,6 +2,7 @@ package it.polimi.ingsw.gc14.Model.Cards.TribeCards.Characters; import it.polimi.ingsw.gc14.Model.Cards.TribeCards.Character; import it.polimi.ingsw.gc14.Model.Cards.TribeCards.CharacterType; +import it.polimi.ingsw.gc14.Model.Player; public class Builder extends Character { @@ -42,5 +43,7 @@ public class Builder extends Character return new Builder(this); } - + public void insert(Player player) { + player.builders.add(this); + } } \ No newline at end of file diff --git a/src/main/java/it/polimi/ingsw/gc14/Model/Cards/TribeCards/Characters/Gatherers.java b/src/main/java/it/polimi/ingsw/gc14/Model/Cards/TribeCards/Characters/Gatherers.java index 14b8809..c1a4400 100644 --- a/src/main/java/it/polimi/ingsw/gc14/Model/Cards/TribeCards/Characters/Gatherers.java +++ b/src/main/java/it/polimi/ingsw/gc14/Model/Cards/TribeCards/Characters/Gatherers.java @@ -2,6 +2,7 @@ package it.polimi.ingsw.gc14.Model.Cards.TribeCards.Characters; import it.polimi.ingsw.gc14.Model.Cards.TribeCards.Character; import it.polimi.ingsw.gc14.Model.Cards.TribeCards.CharacterType; +import it.polimi.ingsw.gc14.Model.Player; public class Gatherers extends Character { @@ -21,5 +22,7 @@ public class Gatherers extends Character { public Character clone() { return new Gatherers(getEra()); } - + public void insert(Player player) { + player.gatherers.add(this); + } } diff --git a/src/main/java/it/polimi/ingsw/gc14/Model/Cards/TribeCards/Characters/Hunter.java b/src/main/java/it/polimi/ingsw/gc14/Model/Cards/TribeCards/Characters/Hunter.java index 1958f61..69a65f0 100644 --- a/src/main/java/it/polimi/ingsw/gc14/Model/Cards/TribeCards/Characters/Hunter.java +++ b/src/main/java/it/polimi/ingsw/gc14/Model/Cards/TribeCards/Characters/Hunter.java @@ -2,6 +2,7 @@ package it.polimi.ingsw.gc14.Model.Cards.TribeCards.Characters; import it.polimi.ingsw.gc14.Model.Cards.TribeCards.Character; import it.polimi.ingsw.gc14.Model.Cards.TribeCards.CharacterType; +import it.polimi.ingsw.gc14.Model.Player; public class Hunter extends Character { private boolean icon; @@ -33,5 +34,9 @@ public class Hunter extends Character { public Character clone() { return new Hunter(getEra(), getIcon()); } + @Override + public void insert(Player player) { + player.hunters.add(this); + } } diff --git a/src/main/java/it/polimi/ingsw/gc14/Model/Cards/TribeCards/Characters/Inventor.java b/src/main/java/it/polimi/ingsw/gc14/Model/Cards/TribeCards/Characters/Inventor.java index d483f9e..f86678d 100644 --- a/src/main/java/it/polimi/ingsw/gc14/Model/Cards/TribeCards/Characters/Inventor.java +++ b/src/main/java/it/polimi/ingsw/gc14/Model/Cards/TribeCards/Characters/Inventor.java @@ -1,6 +1,7 @@ package it.polimi.ingsw.gc14.Model.Cards.TribeCards.Characters; import it.polimi.ingsw.gc14.Model.Cards.TribeCards.Character; import it.polimi.ingsw.gc14.Model.Cards.TribeCards.CharacterType; +import it.polimi.ingsw.gc14.Model.Player; public class Inventor extends Character { private int icon; @@ -34,5 +35,8 @@ public class Inventor extends Character { public Character clone() { return new Inventor(getEra(),icon); } - + @Override + public void insert(Player player) { + player.inventors.add(this); + } } diff --git a/src/main/java/it/polimi/ingsw/gc14/Model/Cards/TribeCards/Characters/Shaman.java b/src/main/java/it/polimi/ingsw/gc14/Model/Cards/TribeCards/Characters/Shaman.java index 9583b52..9c66b32 100644 --- a/src/main/java/it/polimi/ingsw/gc14/Model/Cards/TribeCards/Characters/Shaman.java +++ b/src/main/java/it/polimi/ingsw/gc14/Model/Cards/TribeCards/Characters/Shaman.java @@ -3,6 +3,7 @@ package it.polimi.ingsw.gc14.Model.Cards.TribeCards.Characters; import it.polimi.ingsw.gc14.Model.Cards.TribeCard; import it.polimi.ingsw.gc14.Model.Cards.TribeCards.Character; import it.polimi.ingsw.gc14.Model.Cards.TribeCards.CharacterType; +import it.polimi.ingsw.gc14.Model.Player; public class Shaman extends Character { @@ -35,4 +36,9 @@ public class Shaman extends Character { return new Shaman(getEra(), getIcon()); } + @Override + public void insert(Player player) + { + player.shamans.add(this); + } } 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 57aa8fa..7d0dfcb 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 @@ -32,8 +32,8 @@ public class Sustenance extends EventCard { for(Player p : playerList){ ArrayList characters = player.getCharacterCards(); for(BuildingCard b : player.getBuildingCards()){ - if(b instanceof Building1 b1){ - NCharDiscount += (int) characters.stream().filter(x -> x.getType().equals(b1.getIcon())).count(); + if(b.getEffectId() == 1){ + NCharDiscount += (int) characters.stream().filter(x -> x.getType().equals(((Building1)b).getIcon())).count(); } } } 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 f99a218..d9b2a95 100644 --- a/src/main/java/it/polimi/ingsw/gc14/Model/Game.java +++ b/src/main/java/it/polimi/ingsw/gc14/Model/Game.java @@ -9,18 +9,21 @@ import java.util.List; public class Game { private List slotList; - private List tribeDeck; + private List tribeDeck; + private List buildingDeck; private List upperListTribe; private List lowerListTribe; private List upperListBuilding; private List lowerListBuilding; - - public Game() { - slotList = new ArrayList(); + private List playersList;//No Clone? + public Game(ArrayList playersList) { + slotList = new ArrayList<>(); tribeDeck = new ArrayList<>(); + buildingDeck = new ArrayList<>(); upperListTribe = new ArrayList<>(); lowerListTribe = new ArrayList<>(); upperListBuilding = new ArrayList<>(); lowerListBuilding = new ArrayList<>(); + this.playersList = playersList; } } 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 ee325a7..d20dade 100644 --- a/src/main/java/it/polimi/ingsw/gc14/Model/Player.java +++ b/src/main/java/it/polimi/ingsw/gc14/Model/Player.java @@ -3,6 +3,7 @@ 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.Character; +import it.polimi.ingsw.gc14.Model.Cards.TribeCards.Characters.*; import java.util.ArrayList; @@ -18,6 +19,13 @@ public class Player { private ArrayList CharacterCards; public ArrayList getCharacterCards() { ArrayList copy = new ArrayList <>(); + ArrayList temp = new ArrayList <>(); + temp.addAll(artists); + temp.addAll(builders); + temp.addAll(gatherers); + temp.addAll(inventors); + temp.addAll(shamans); + temp.addAll(hunters); for(Character character:CharacterCards){ copy.add(character.clone()); } @@ -33,6 +41,13 @@ public class Player { return copy; } + public ArrayList artists; + public ArrayList builders; + public ArrayList inventors; + public ArrayList gatherers; + public ArrayList shamans; + public ArrayList hunters; + private int FoodValue; public int getFoodValue() { return FoodValue; @@ -52,15 +67,6 @@ public class Player { // End getters // Setters - public void setUserName(String UserName) throws IllegalArgumentException{ - int max_len = 32; - if(UserName.length() > max_len || UserName.length() == 0){ - throw new IllegalArgumentException(); - } - this.UserName = UserName; - } - - public void addFood(int Value){ this.FoodValue += Value; }