Explorar o código

增加玩家出牌逻辑

johnclot69 hai 6 meses
pai
achega
18cebdb466

BIN=BIN
.gradle/7.5.1/checksums/checksums.lock


BIN=BIN
.gradle/7.5.1/checksums/md5-checksums.bin


BIN=BIN
.gradle/7.5.1/checksums/sha1-checksums.bin


BIN=BIN
.gradle/7.5.1/executionHistory/executionHistory.bin


BIN=BIN
.gradle/7.5.1/executionHistory/executionHistory.lock


BIN=BIN
.gradle/7.5.1/fileHashes/fileHashes.bin


BIN=BIN
.gradle/7.5.1/fileHashes/fileHashes.lock


BIN=BIN
.gradle/buildOutputCleanup/buildOutputCleanup.lock


BIN=BIN
.gradle/file-system.probe


BIN=BIN
incubator-game/build/tmp/compileJava/previous-compilation-data.bin


+ 2 - 2
incubator-game/src/main/java/com/incubator/game/data/model/RoomPO.java

@@ -43,8 +43,8 @@ public class RoomPO {
 	public Player currentPlayer;
 	/** 当前出牌玩家打出的牌集合 **/
 	public List<Integer> curDisCardList = new ArrayList<>();
-	/** 当前出牌玩家性别 **/
-	public int curDisCardSex;
+	/** 当前出牌玩家 **/
+	public Player disCardPlayer;
 
 	public RoomPO() {}
 

+ 14 - 1
incubator-game/src/main/java/com/incubator/game/room/jdgd/JDGDRoom.java

@@ -137,7 +137,7 @@ public class JDGDRoom extends Room implements GRoomInterface {
         // 定庄
         this.data.zhuangPos = 0;
         // 设置当前操作玩家
-
+        this.data.currentPlayer = this.data.playerMap.get(this.data.zhuangPos);
         // 发牌
         this.doSendCard();
         // 广播
@@ -183,12 +183,25 @@ public class JDGDRoom extends Room implements GRoomInterface {
             return;
         }
         if (CardUtils.contains(player.data.remainCards, disCardList)) {
+            logger.info("*****出牌玩家ID:{}, 位置:{}, 手牌大小:{}, 内容: {}", player.getId(), player.data.pos, player.data.remainCards.length, Arrays.toString(player.data.remainCards));
             // 从手牌中移除
             for (Integer card : disCardList) {
                 player.data.remainCards = CardUtils.remove(player.data.remainCards, card);
             }
             // 设置出牌堆
             this.data.curDisCardList = disCardList;
+            // 设置当前出牌的玩家
+            this.data.disCardPlayer = player;
+            // 设置下一个操作玩家
+            Integer[] nextPos = this._getSorcPos(player.data.pos);
+            this.data.currentPlayer = this.data.playerMap.get(nextPos[0]);
+            // 广播其他3人
+            for (Player tmPlayer : this.data.playerMap.values()) {
+                if (tmPlayer != null && !Objects.equals(tmPlayer.getId(), player.getId())) {
+                    Map<String, Object> data = MsgUtil.roomToMessage(this, tmPlayer, null);
+                    tmPlayer.receive(CommonProto.Cmd.OtherPlayCards_VALUE, data);
+                }
+            }
         }
     }
 }

+ 2 - 1
incubator-game/src/main/java/com/incubator/game/util/MsgUtil.java

@@ -47,7 +47,8 @@ public final class MsgUtil {
         data.put("opId", opPlayer != null ? opPlayer.getId() : "");
         data.put("opPos", opPlayer != null ? opPlayer.data.pos : -1);
         data.put("curDisCardList", room.data.curDisCardList);
-        data.put("CurDisCardSex", room.data.curDisCardSex);
+        data.put("curDisCardPlayer", room.data.disCardPlayer.getId());
+        data.put("CurDisCardSex", room.data.disCardPlayer.data.sex);
         data.put("myInfo", playerRoomToMessage(room, player, true));
         List<Map<String, Object>> otherInfo = new ArrayList<>();
         for (Player tmPlayer : room.data.playerMap.values()) {