diff --git a/src/main/java/com/ntlab/irisserver/entities/Room.java b/src/main/java/com/ntlab/irisserver/entities/Room.java index b0c6d02..b160d4b 100644 --- a/src/main/java/com/ntlab/irisserver/entities/Room.java +++ b/src/main/java/com/ntlab/irisserver/entities/Room.java @@ -40,8 +40,10 @@ public int gameTimerFirstThinkingTimes; //int gameTimerFirstThinkingTimes; - - + @JsonProperty("RedMaster") + private Member RedMaster; + @JsonProperty("BlueMaster") + private Member BlueMaster; Map members= new HashMap<>(); Map drawings = new HashMap<>(); @@ -53,8 +55,69 @@ } + public List getDrawings() { + + List drawingslist = new ArrayList(drawings.values()) ; + return drawingslist; + + } + + //プレイヤーの情報を変更する public void changeTeamAndMaster(String nick, String belongs, boolean isMaster) { + + //変更対象の情報を取得 + Member m = members.get(nick); + + //変更先のチームに既に所属している場合は変更なし + if(m.getBelongs() != belongs){ + + //1チームの最大人数は8人 + //変更先のチームの人数を数える + int memberscount = 0; + List membersList = new ArrayList(members.values()) ; + + for(Member mem :membersList){ + if(mem.getBelongs() == belongs){ + memberscount++; + } + } + + //変更先のチームが満員であれば変更不可 + if(memberscount >= 8) { + return; + }else{ + m.setBelongs(belongs); + } + + } + + //マスターを変更 + if(belongs == "r"){ + + //赤チームのマスターをメンバーに変更 + if(RedMaster != null){ + RedMaster.setMaster(false); + } + + //変更対象を赤チームのマスターに変更 + m.setMaster(true); + RedMaster = m; + } + + if(belongs == "b"){ + + //青チームのマスターをメンバーに変更 + if(BlueMaster != null){ + BlueMaster.setMaster(false); + } + + //変更対象を赤チームのマスターに変更 + m.setMaster(true); + BlueMaster = m; + } + + } public Member getMember(String nick) { @@ -132,4 +195,5 @@ } + }