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 e55b50d..2129e68 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 @@ -2,7 +2,8 @@ package it.polimi.ingsw.gc14.Model.Cards.TribeCards; import it.polimi.ingsw.gc14.Model.Cards.TribeCard; -public abstract class Character extends TribeCard { + +public abstract class Character extends TribeCard implements Cloneable { private CharacterType type; public CharacterType getType() { return type; @@ -17,5 +18,7 @@ public abstract class Character extends TribeCard { public String toString() { return super.toString()+" "+type.toString(); } - public abstract Character clone() ; + + @Override + public abstract Character clone(); } 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 eab672f..49f342d 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 @@ -12,14 +12,20 @@ public class Artist extends Character { public Artist(int Era) { super(Era, CharacterType.ARTIST); } + + public Artist(Artist copy){ + this(copy.getEra()); + } @Override public String toString() { return super.toString(); } @Override - public Artist clone() { + public Character clone() { return new Artist(getEra()); } + + } 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 956bffe..96bf222 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 @@ -21,11 +21,17 @@ public class Builder extends Character } this.reductionValue = reductionValue; } + public Builder(Builder copy) + { + this(copy.getEra(),copy.getReductionValue()); + } @Override public String toString() { return super.toString()+" Reduction Value: " + String.valueOf(reductionValue); } @Override - public Builder clone() { - return new Builder(getEra(),reductionValue); + public Character clone() { + return new Builder(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 da3888a..14b8809 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 @@ -18,7 +18,8 @@ public class Gatherers extends Character { } @Override - public Gatherers clone() { + public Character clone() { return new Gatherers(getEra()); } + } 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 30552c7..1958f61 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 @@ -3,7 +3,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; -public class Hunter extends Character { +public class Hunter extends Character { private boolean icon; /** @@ -30,7 +30,8 @@ public class Hunter extends Character { } @Override - public Hunter clone() { - return new Hunter(getEra(),icon); + public Character clone() { + return new Hunter(getEra(), getIcon()); } + } 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 50b9d6a..d483f9e 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 @@ -31,7 +31,8 @@ public class Inventor extends Character { } @Override - public Inventor clone() { + public Character clone() { return new Inventor(getEra(),icon); } + } 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 df3bb64..9583b52 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 @@ -1,5 +1,6 @@ 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; @@ -30,7 +31,8 @@ public class Shaman extends Character { } @Override - public Shaman clone() { - return new Shaman(getEra(),icon); + public Character clone() { + return new Shaman(getEra(), getIcon()); } + } 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 e7d7afb..00f9a1f 100644 --- a/src/main/java/it/polimi/ingsw/gc14/Model/Player.java +++ b/src/main/java/it/polimi/ingsw/gc14/Model/Player.java @@ -2,6 +2,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 java.util.ArrayList; @@ -15,8 +16,12 @@ public class Player { } private ArrayList CharacterCards; - public ArrayList getCharacterCards() { - return CharacterCards.clone(); + public ArrayList getCharacterCards() { + ArrayList copy = new ArrayList <>(); + for(Character character:CharacterCards){ + copy.add(character.clone()); + } + return copy; } private ArrayList BuildingCards; @@ -51,13 +56,6 @@ public class Player { this.UserName = UserName; } - public void setTribeCards(ArrayList TribeCards){ - this.TribeCards = TribeCards; - } - - public void setBuildingCards(ArrayList BuildingCards){ - this.BuildingCards = BuildingCards; - } public void addFood(int Value){ this.FoodValue += Value; @@ -87,7 +85,7 @@ public class Player { // Constructors public Player(String UserName){ this.UserName = UserName; - this.TribeCards = new ArrayList(); + this.CharacterCards = new ArrayList(); this.BuildingCards = new ArrayList(); this.FoodValue = 0; this.PrestigeValue = 0;