diff --git a/src/main/java/it/polimi/ingsw/gc14/Model/Cards/Building/Effects/Building0.java b/src/main/java/it/polimi/ingsw/gc14/Model/Cards/Building/Effects/Building0.java index accf0f5..bb3b869 100644 --- a/src/main/java/it/polimi/ingsw/gc14/Model/Cards/Building/Effects/Building0.java +++ b/src/main/java/it/polimi/ingsw/gc14/Model/Cards/Building/Effects/Building0.java @@ -1,21 +1,20 @@ package it.polimi.ingsw.gc14.Model.Cards.Building.Effects; -import it.polimi.ingsw.gc14.Model.Cards.Building.BuildingEffect; import it.polimi.ingsw.gc14.Model.Cards.Building.EffectType; -import it.polimi.ingsw.gc14.Model.Cards.TribeCard; -import it.polimi.ingsw.gc14.Model.Cards.TribeCards.CharacterType; +import it.polimi.ingsw.gc14.Model.Cards.BuildingCard; import it.polimi.ingsw.gc14.Model.Player; +import it.polimi.ingsw.gc14.Model.Cards.TribeCards.Character; +import it.polimi.ingsw.gc14.Model.Cards.TribeCards.CharacterType; import java.util.ArrayList; import java.util.HashMap; -import java.util.Set; -public class Effect0 extends BuildingEffect { +public class Building0 extends BuildingCard { boolean purchased ; int numSet; - public Effect0() { - super(EffectType.CARDSET,0); + public Building0(int era,int price,EffectType effectType) { + super(era,price,0,EffectType.CARDSET); purchased = false; numSet = 0; } @@ -23,20 +22,26 @@ public class Effect0 extends BuildingEffect { public void setSetCards(Player player) { - if(purchased) { return; } HashMap map = new HashMap(); - for(TribeCard c : player.getTribeCards()) + for(CharacterType type : CharacterType.values()) + { + map.put(type,0); + } + for(Character c : player.getCharacterCards()) { } purchased = true; } - + @Override + public BuildingCard clone() { + return new Building0(getEra(),getPrice(),getEffectType()); + } @Override public void applyEffect(ArrayList players) { for (Player p : players) { 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 6938a30..200b3c9 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,20 +1,34 @@ 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; -public class BuildingCard extends PlayableCard { +import java.util.ArrayList; + +public abstract class BuildingCard extends PlayableCard implements Cloneable { private int price; public int getPrice() { return price; } - private BuildingEffect buildingEffect; - public BuildingEffect getBuildingEffect() { - return buildingEffect; + + private int effectId; + public int getEffectId(){ + return effectId; } - private BuildingCard(int era,int price,BuildingEffect buildingEffect) { + private EffectType effectType; + public EffectType getEffectType() { + return effectType; + } + public BuildingCard(int era,int price,int effectId,EffectType effectType) { super(era); this.price = price; - this.buildingEffect = buildingEffect; + this.effectId=effectId; + this.effectType = effectType; } + + @Override + public abstract BuildingCard clone() ; + + public abstract void applyEffect(ArrayList players); } 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 00f9a1f..ee325a7 100644 --- a/src/main/java/it/polimi/ingsw/gc14/Model/Player.java +++ b/src/main/java/it/polimi/ingsw/gc14/Model/Player.java @@ -26,7 +26,11 @@ public class Player { private ArrayList BuildingCards; public ArrayList getBuildingCards() { - return BuildingCards; + ArrayList copy = new ArrayList <>(); + for(BuildingCard building:BuildingCards){ + copy.add(building.clone()); + } + return copy; } private int FoodValue; diff --git a/src/main/java/module-info.java b/src/main/java/module-info.java index af19c11..99faaf9 100644 --- a/src/main/java/module-info.java +++ b/src/main/java/module-info.java @@ -5,6 +5,7 @@ module it.polimi.ingsw.gc14 { requires org.controlsfx.controls; requires java.rmi; requires java.smartcardio; + requires it.polimi.ingsw.gc14; opens it.polimi.ingsw.gc14 to javafx.fxml; exports it.polimi.ingsw.gc14;