Browse Source

还贡阶段显示调整

johnclot69 1 month ago
parent
commit
ca01d963f4

+ 25 - 9
incubator-game/src/main/java/com/incubator/game/handler/room/TributeHandler.java

@@ -125,21 +125,36 @@ public class TributeHandler extends NetHandler {
 		tributeInfo.put("tributeList", room.data.tributeList);
 		tributeInfo.put("twoKingInfo", room.data.towKingList);
 		tributeInfo.put("tributeState", room.data.tributeState);
-		// 进还贡的选牌map
-		tributeInfo.put("tributeCardMap", room.data.tributeCardMap);
-
-		// 还贡是否广播
-		boolean isBroadcast = tributes.contains(player.getId());
 
-		if (backs.contains(player.getId()) && room.checkBackTributeStart()) {
-			isBroadcast = true;
+		// 进贡广播
+		if (tributes.contains(player.getId())) {
+			// 广播其他3人
+			for (Player tmPlayer : room.actors.values()) {
+				if (tmPlayer != null && !Objects.equals(tmPlayer.getId(), player.getId())) {
+					Map<String, Object> data = room.roomToMessage(tmPlayer, null);
+					tributeInfo.put("tributeCardMap", room.data.tributeCardMap);
+					data.put("tributeInfo", tributeInfo);
+					tmPlayer.receive(CommonProto.Cmd.EnterBackCardsBroadcast_VALUE, data);
+				}
+			}
 		}
 
-		// 广播其他3人
-		if (isBroadcast) {
+		// 还贡广播
+		if (backs.contains(player.getId())) {
+			// 广播其他3人
 			for (Player tmPlayer : room.actors.values()) {
 				if (tmPlayer != null && !Objects.equals(tmPlayer.getId(), player.getId())) {
 					Map<String, Object> data = room.roomToMessage(tmPlayer, null);
+
+					Map<String, Integer> tributeCardMap = new HashMap<>();
+					for (Map.Entry<String, Integer> entry : room.data.tributeCardMap.entrySet()) {
+						int value = entry.getValue();
+						if (entry.getKey().equals(player.getId())) {
+							value = room.checkBackTributeStart()? entry.getValue() : 0;
+						}
+						tributeCardMap.put(entry.getKey(), value);
+					}
+					tributeInfo.put("tributeCardMap", tributeCardMap);
 					data.put("tributeInfo", tributeInfo);
 					tmPlayer.receive(CommonProto.Cmd.EnterBackCardsBroadcast_VALUE, data);
 				}
@@ -148,6 +163,7 @@ public class TributeHandler extends NetHandler {
 
 		// 正常返回
 		Map<String, Object> data = room.roomToMessage(player, null);
+		tributeInfo.put("tributeCardMap", room.data.tributeCardMap);
 		data.put("tributeInfo", tributeInfo);
 		response.setData(data);
 	}