Instance of deleted on characters, Changed Building Effect Logic
This commit is contained in:
@@ -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);
|
||||||
|
}
|
||||||
@@ -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) {
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -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) {
|
|
||||||
};
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -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) {
|
|
||||||
};
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -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) {
|
|
||||||
};
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -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) {
|
|
||||||
};
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -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) {
|
|
||||||
};
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -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) {
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,12 +1,13 @@
|
|||||||
package it.polimi.ingsw.gc14.Model.Cards;
|
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.Cards.Building.EffectType;
|
||||||
import it.polimi.ingsw.gc14.Model.PlayableCard;
|
import it.polimi.ingsw.gc14.Model.PlayableCard;
|
||||||
import it.polimi.ingsw.gc14.Model.Player;
|
import it.polimi.ingsw.gc14.Model.Player;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
|
||||||
public abstract class BuildingCard extends PlayableCard implements Cloneable {
|
public class BuildingCard extends PlayableCard implements Cloneable , BuildingEffect {
|
||||||
private int price;
|
private int price;
|
||||||
public int getPrice() {
|
public int getPrice() {
|
||||||
return price;
|
return price;
|
||||||
@@ -26,9 +27,19 @@ public abstract class BuildingCard extends PlayableCard implements Cloneable {
|
|||||||
super(era);
|
super(era);
|
||||||
this.price = price;
|
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
|
@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){};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
package it.polimi.ingsw.gc14.Model.Cards.TribeCards;
|
package it.polimi.ingsw.gc14.Model.Cards.TribeCards;
|
||||||
|
|
||||||
import it.polimi.ingsw.gc14.Model.Cards.TribeCard;
|
import it.polimi.ingsw.gc14.Model.Cards.TribeCard;
|
||||||
|
import it.polimi.ingsw.gc14.Model.Player;
|
||||||
|
|
||||||
|
|
||||||
public abstract class Character extends TribeCard implements Cloneable {
|
public abstract class Character extends TribeCard implements Cloneable {
|
||||||
@@ -21,4 +22,6 @@ public abstract class Character extends TribeCard implements Cloneable {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public abstract Character clone();
|
public abstract Character clone();
|
||||||
|
|
||||||
|
public abstract void insert(Player player);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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.Character;
|
||||||
import it.polimi.ingsw.gc14.Model.Cards.TribeCards.CharacterType;
|
import it.polimi.ingsw.gc14.Model.Cards.TribeCards.CharacterType;
|
||||||
|
import it.polimi.ingsw.gc14.Model.Player;
|
||||||
|
|
||||||
public class Artist extends Character {
|
public class Artist extends Character {
|
||||||
|
|
||||||
@@ -26,6 +27,10 @@ public class Artist extends Character {
|
|||||||
return new Artist(getEra());
|
return new Artist(getEra());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void insert(Player player) {
|
||||||
|
player.artists.add(this);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -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.Character;
|
||||||
import it.polimi.ingsw.gc14.Model.Cards.TribeCards.CharacterType;
|
import it.polimi.ingsw.gc14.Model.Cards.TribeCards.CharacterType;
|
||||||
|
import it.polimi.ingsw.gc14.Model.Player;
|
||||||
|
|
||||||
public class Builder extends Character
|
public class Builder extends Character
|
||||||
{
|
{
|
||||||
@@ -42,5 +43,7 @@ public class Builder extends Character
|
|||||||
return new Builder(this);
|
return new Builder(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void insert(Player player) {
|
||||||
|
player.builders.add(this);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@@ -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.Character;
|
||||||
import it.polimi.ingsw.gc14.Model.Cards.TribeCards.CharacterType;
|
import it.polimi.ingsw.gc14.Model.Cards.TribeCards.CharacterType;
|
||||||
|
import it.polimi.ingsw.gc14.Model.Player;
|
||||||
|
|
||||||
public class Gatherers extends Character {
|
public class Gatherers extends Character {
|
||||||
|
|
||||||
@@ -21,5 +22,7 @@ public class Gatherers extends Character {
|
|||||||
public Character clone() {
|
public Character clone() {
|
||||||
return new Gatherers(getEra());
|
return new Gatherers(getEra());
|
||||||
}
|
}
|
||||||
|
public void insert(Player player) {
|
||||||
|
player.gatherers.add(this);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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.Character;
|
||||||
import it.polimi.ingsw.gc14.Model.Cards.TribeCards.CharacterType;
|
import it.polimi.ingsw.gc14.Model.Cards.TribeCards.CharacterType;
|
||||||
|
import it.polimi.ingsw.gc14.Model.Player;
|
||||||
|
|
||||||
public class Hunter extends Character {
|
public class Hunter extends Character {
|
||||||
private boolean icon;
|
private boolean icon;
|
||||||
@@ -33,5 +34,9 @@ public class Hunter extends Character {
|
|||||||
public Character clone() {
|
public Character clone() {
|
||||||
return new Hunter(getEra(), getIcon());
|
return new Hunter(getEra(), getIcon());
|
||||||
}
|
}
|
||||||
|
@Override
|
||||||
|
public void insert(Player player) {
|
||||||
|
player.hunters.add(this);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
package it.polimi.ingsw.gc14.Model.Cards.TribeCards.Characters;
|
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.Character;
|
||||||
import it.polimi.ingsw.gc14.Model.Cards.TribeCards.CharacterType;
|
import it.polimi.ingsw.gc14.Model.Cards.TribeCards.CharacterType;
|
||||||
|
import it.polimi.ingsw.gc14.Model.Player;
|
||||||
|
|
||||||
public class Inventor extends Character {
|
public class Inventor extends Character {
|
||||||
private int icon;
|
private int icon;
|
||||||
@@ -34,5 +35,8 @@ public class Inventor extends Character {
|
|||||||
public Character clone() {
|
public Character clone() {
|
||||||
return new Inventor(getEra(),icon);
|
return new Inventor(getEra(),icon);
|
||||||
}
|
}
|
||||||
|
@Override
|
||||||
|
public void insert(Player player) {
|
||||||
|
player.inventors.add(this);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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.TribeCard;
|
||||||
import it.polimi.ingsw.gc14.Model.Cards.TribeCards.Character;
|
import it.polimi.ingsw.gc14.Model.Cards.TribeCards.Character;
|
||||||
import it.polimi.ingsw.gc14.Model.Cards.TribeCards.CharacterType;
|
import it.polimi.ingsw.gc14.Model.Cards.TribeCards.CharacterType;
|
||||||
|
import it.polimi.ingsw.gc14.Model.Player;
|
||||||
|
|
||||||
public class Shaman extends Character {
|
public class Shaman extends Character {
|
||||||
|
|
||||||
@@ -35,4 +36,9 @@ public class Shaman extends Character {
|
|||||||
return new Shaman(getEra(), getIcon());
|
return new Shaman(getEra(), getIcon());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void insert(Player player)
|
||||||
|
{
|
||||||
|
player.shamans.add(this);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -32,8 +32,8 @@ public class Sustenance extends EventCard {
|
|||||||
for(Player p : playerList){
|
for(Player p : playerList){
|
||||||
ArrayList<Character> characters = player.getCharacterCards();
|
ArrayList<Character> characters = player.getCharacterCards();
|
||||||
for(BuildingCard b : player.getBuildingCards()){
|
for(BuildingCard b : player.getBuildingCards()){
|
||||||
if(b instanceof Building1 b1){
|
if(b.getEffectId() == 1){
|
||||||
NCharDiscount += (int) characters.stream().filter(x -> x.getType().equals(b1.getIcon())).count();
|
NCharDiscount += (int) characters.stream().filter(x -> x.getType().equals(((Building1)b).getIcon())).count();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -9,18 +9,21 @@ import java.util.List;
|
|||||||
|
|
||||||
public class Game {
|
public class Game {
|
||||||
private List<Slot> slotList;
|
private List<Slot> slotList;
|
||||||
private List<BuildingCard> tribeDeck;
|
private List<TribeCard> tribeDeck;
|
||||||
|
private List<BuildingCard> buildingDeck;
|
||||||
private List<TribeCard> upperListTribe;
|
private List<TribeCard> upperListTribe;
|
||||||
private List<TribeCard> lowerListTribe;
|
private List<TribeCard> lowerListTribe;
|
||||||
private List<BuildingCard> upperListBuilding;
|
private List<BuildingCard> upperListBuilding;
|
||||||
private List<BuildingCard> lowerListBuilding;
|
private List<BuildingCard> lowerListBuilding;
|
||||||
|
private List<Player> playersList;//No Clone?
|
||||||
public Game() {
|
public Game(ArrayList<Player> playersList) {
|
||||||
slotList = new ArrayList<Slot>();
|
slotList = new ArrayList<>();
|
||||||
tribeDeck = new ArrayList<>();
|
tribeDeck = new ArrayList<>();
|
||||||
|
buildingDeck = new ArrayList<>();
|
||||||
upperListTribe = new ArrayList<>();
|
upperListTribe = new ArrayList<>();
|
||||||
lowerListTribe = new ArrayList<>();
|
lowerListTribe = new ArrayList<>();
|
||||||
upperListBuilding = new ArrayList<>();
|
upperListBuilding = new ArrayList<>();
|
||||||
lowerListBuilding = new ArrayList<>();
|
lowerListBuilding = new ArrayList<>();
|
||||||
|
this.playersList = playersList;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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.BuildingCard;
|
||||||
import it.polimi.ingsw.gc14.Model.Cards.TribeCard;
|
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.Character;
|
||||||
|
import it.polimi.ingsw.gc14.Model.Cards.TribeCards.Characters.*;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
|
||||||
@@ -18,6 +19,13 @@ public class Player {
|
|||||||
private ArrayList <Character> CharacterCards;
|
private ArrayList <Character> CharacterCards;
|
||||||
public ArrayList <Character> getCharacterCards() {
|
public ArrayList <Character> getCharacterCards() {
|
||||||
ArrayList <Character> copy = new ArrayList <>();
|
ArrayList <Character> copy = new ArrayList <>();
|
||||||
|
ArrayList<Character> 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){
|
for(Character character:CharacterCards){
|
||||||
copy.add(character.clone());
|
copy.add(character.clone());
|
||||||
}
|
}
|
||||||
@@ -33,6 +41,13 @@ public class Player {
|
|||||||
return copy;
|
return copy;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public ArrayList <Artist> artists;
|
||||||
|
public ArrayList <Builder> builders;
|
||||||
|
public ArrayList <Inventor> inventors;
|
||||||
|
public ArrayList <Gatherers> gatherers;
|
||||||
|
public ArrayList <Shaman> shamans;
|
||||||
|
public ArrayList <Hunter> hunters;
|
||||||
|
|
||||||
private int FoodValue;
|
private int FoodValue;
|
||||||
public int getFoodValue() {
|
public int getFoodValue() {
|
||||||
return FoodValue;
|
return FoodValue;
|
||||||
@@ -52,15 +67,6 @@ public class Player {
|
|||||||
// End getters
|
// End getters
|
||||||
|
|
||||||
// Setters
|
// 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){
|
public void addFood(int Value){
|
||||||
this.FoodValue += Value;
|
this.FoodValue += Value;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user