diff --git a/src/player/BasePlayer.java b/src/player/BasePlayer.java new file mode 100644 index 0000000..93834fb --- /dev/null +++ b/src/player/BasePlayer.java @@ -0,0 +1,76 @@ +package player; + +import org.json.JSONArray; +import org.json.JSONObject; + +import card.Card; +import server.ServerGame.PROTOCOL; + +public class BasePlayer { + protected int id; + protected String name; + protected Card[] cards; + public final PROTOCOL PROTO; + + public BasePlayer(int id, int nrOfCards){ + this(id, nrOfCards, ""); + } + + public BasePlayer(int id, int nrOfCards, String name){ + this(); + this.id = id; + this.cards = new Card[nrOfCards]; + this.name = name; + } + + public BasePlayer(JSONObject jo){ + this(); + cards = new Card[jo.getJSONArray("cards").length()]; + fromJson(jo); + } + + private BasePlayer() { + PROTO = PROTOCOL.VIBE_DUMB; + } + + public void setCard(int index, Card c){ + cards[index] = c; + } + + public Card getCard(int index){ + return cards[index]; + } + + public Card[] getCards(){ + return cards; + } + + public JSONObject toJson(){ + JSONObject root = new JSONObject(); + root.put("name", name); + root.put("id", id); + root.put("cards", cardsToJson()); + return root; + } + + private JSONArray cardsToJson(){ + JSONArray cardArray = new JSONArray(); + for(Card c : cards){ + cardArray.put(c.toJson()); + } + return cardArray; + } + + private void fromJson(JSONObject jo){ + int id = jo.getInt("id"); + String name = jo.getString("name"); + JSONArray cardsArray = jo.getJSONArray("cards"); + for(int i=0; i