From b5589d5dbc359fe9eea1b4e79dbe593e7248ea0b Mon Sep 17 00:00:00 2001 From: rubenpirreram Date: Fri, 27 Mar 2026 18:37:33 +0100 Subject: [PATCH] Add: TribeCard Clone --- .../ingsw/gc14/Model/Cards/TribeCard.java | 3 +++ .../Model/Cards/TribeCards/EventCard.java | 4 ++- .../TribeCards/Events/CavePaintings.java | 5 ++++ .../Model/Cards/TribeCards/Events/Hunt.java | 4 +++ .../TribeCards/Events/ShamanicRitual.java | 4 +++ .../Cards/TribeCards/Events/Sustenance.java | 4 +++ .../java/it/polimi/ingsw/gc14/Model/Game.java | 25 ++++++++++++++++++- 7 files changed, 47 insertions(+), 2 deletions(-) diff --git a/src/main/java/it/polimi/ingsw/gc14/Model/Cards/TribeCard.java b/src/main/java/it/polimi/ingsw/gc14/Model/Cards/TribeCard.java index 0135454..00260f9 100644 --- a/src/main/java/it/polimi/ingsw/gc14/Model/Cards/TribeCard.java +++ b/src/main/java/it/polimi/ingsw/gc14/Model/Cards/TribeCard.java @@ -1,5 +1,6 @@ package it.polimi.ingsw.gc14.Model.Cards; +import it.polimi.ingsw.gc14.Model.Cards.TribeCards.Character; import it.polimi.ingsw.gc14.Model.PlayableCard; public abstract class TribeCard extends PlayableCard { @@ -20,4 +21,6 @@ public abstract class TribeCard extends PlayableCard { this.nMin=nMin; this.isEventCard=isEventCard; } + @Override + public abstract TribeCard clone(); } diff --git a/src/main/java/it/polimi/ingsw/gc14/Model/Cards/TribeCards/EventCard.java b/src/main/java/it/polimi/ingsw/gc14/Model/Cards/TribeCards/EventCard.java index 82d8f11..d77c945 100644 --- a/src/main/java/it/polimi/ingsw/gc14/Model/Cards/TribeCards/EventCard.java +++ b/src/main/java/it/polimi/ingsw/gc14/Model/Cards/TribeCards/EventCard.java @@ -20,7 +20,9 @@ public abstract class EventCard extends TribeCard { // End Constructors // Function - // TODO + @Override + public abstract TribeCard clone(); + public abstract void activateEvent (ArrayList playerList); // End Functions } 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 09918db..f89ca6c 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 @@ -42,4 +42,9 @@ public class CavePaintings extends EventCard { } } } + @Override + public EventCard clone() + { + return new CavePaintings(getEra(), NLower, NPrestigeRem, NPrestigeMul) ; + } } 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 56d5d7e..cc3787e 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 @@ -35,4 +35,8 @@ public class Hunt extends EventCard { player.addPrestige(prestigeMultiplicator * hunterCounter); } } + @Override + public EventCard clone() { + return new Hunt(getEra(), prestigeMultiplicator); + } } 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 fad780d..de9aef0 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 @@ -56,6 +56,10 @@ public class ShamanicRitual extends EventCard { } } + @Override + public EventCard clone() { + return new ShamanicRitual(getEra(), prestigeToAdd, 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 13ec285..00b2a9e 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 @@ -51,4 +51,8 @@ public class Sustenance extends EventCard { } } } + @Override + public EventCard clone() { + return new Sustenance(getEra(), PrestigeDebt); + } } 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 d0553f4..1b4605f 100644 --- a/src/main/java/it/polimi/ingsw/gc14/Model/Game.java +++ b/src/main/java/it/polimi/ingsw/gc14/Model/Game.java @@ -27,7 +27,30 @@ public class Game { private OrderLogicCard orderLogicCard; private Board board; - public int getnPlayers() { + public Player getPlayerByIndex(int playerIndex) throws IndexOutOfBoundsException { + if(playerIndex >= playersList.size()) + throw new IndexOutOfBoundsException("Player index out of bounds"); + return playersList.get(playerIndex); + } + /* + public TribeCard getUpperTribeCardByIndex(int playerIndex) throws IndexOutOfBoundsException + { + } + public TribeCard getLowerTribeCardByIndex() + { + + } + public BuildingCard getUpperBuildingCardByIndex(int playerIndex) throws IndexOutOfBoundsException + { + + } + public BuildingCard getLowerBuildingCardByIndex(int playerIndex) throws IndexOutOfBoundsException + { + + } + */ + + public int getNPlayers() { return nPlayers; } public Game(int nPlayers) {