refactor(suoha): 重构游戏房间逻辑

- 移除了 EXRoom 类中冗余的空行和注释
- 优化了 EXRoomStartGameState 类中的游戏开始逻辑
- 更新了游戏结束处理逻辑,简化了回放结果的生成过程
master
苗庆帅 2025-06-19 21:30:36 +08:00
parent e4e3e22a1e
commit c22f15dbf4
7 changed files with 63 additions and 81 deletions

View File

@ -1,5 +1,5 @@
#Generated by Maven #Generated by Maven
#Tue Jun 17 19:53:13 CST 2025 #Thu Jun 19 21:25:43 CST 2025
version=1.0.0 version=1.0.0
groupId=com.game groupId=com.game
artifactId=game_common artifactId=game_common

View File

@ -1,37 +1,37 @@
D:\aga\suoha_6.11\libs\game_common\src\main\java\com\game\player\state\PlayerSpectatorState.java D:\aga\suoha_6.19\suoha_server\libs\game_common\src\main\java\com\game\GroupPublisherService.java
D:\aga\suoha_6.11\libs\game_common\src\main\java\com\game\manager\SessionManager.java D:\aga\suoha_6.19\suoha_server\libs\game_common\src\main\java\com\game\room\state\RoomWaitState.java
D:\aga\suoha_6.11\libs\game_common\src\main\java\com\game\ActionEvent.java D:\aga\suoha_6.19\suoha_server\libs\game_common\src\main\java\com\game\data\Hp.java
D:\aga\suoha_6.11\libs\game_common\src\main\java\com\game\GPSUtil.java D:\aga\suoha_6.19\suoha_server\libs\game_common\src\main\java\com\game\player\state\PlayerInitState.java
D:\aga\suoha_6.11\libs\game_common\src\main\java\com\game\player\state\PlayerEndState.java D:\aga\suoha_6.19\suoha_server\libs\game_common\src\main\java\com\game\data\Room.java
D:\aga\suoha_6.11\libs\game_common\src\main\java\com\game\player\state\PlayerPopupState.java D:\aga\suoha_6.19\suoha_server\libs\game_common\src\main\java\com\game\data\BasePlayBack.java
D:\aga\suoha_6.11\libs\game_common\src\main\java\com\game\room\state\RoomDestoryGameState.java D:\aga\suoha_6.19\suoha_server\libs\game_common\src\main\java\com\game\player\state\PlayerEndState.java
D:\aga\suoha_6.11\libs\game_common\src\main\java\com\game\room\state\RoomWaitState.java D:\aga\suoha_6.19\suoha_server\libs\game_common\src\main\java\com\game\player\state\PlayerPopupState.java
D:\aga\suoha_6.11\libs\game_common\src\main\java\com\game\data\RoomDismiss.java D:\aga\suoha_6.19\suoha_server\libs\game_common\src\main\java\com\game\data\Player.java
D:\aga\suoha_6.11\libs\game_common\src\main\java\com\game\data\Score.java D:\aga\suoha_6.19\suoha_server\libs\game_common\src\main\java\com\game\GameController.java
D:\aga\suoha_6.11\libs\game_common\src\main\java\com\game\GameController.java D:\aga\suoha_6.19\suoha_server\libs\game_common\src\main\java\com\game\manager\SessionManager.java
D:\aga\suoha_6.11\libs\game_common\src\main\java\com\game\state\StateMachine.java D:\aga\suoha_6.19\suoha_server\libs\game_common\src\main\java\com\game\data\Timer.java
D:\aga\suoha_6.11\libs\game_common\src\main\java\com\game\EventController.java D:\aga\suoha_6.19\suoha_server\libs\game_common\src\main\java\com\game\manager\RoomManager.java
D:\aga\suoha_6.11\libs\game_common\src\main\java\com\game\MainServer.java D:\aga\suoha_6.19\suoha_server\libs\game_common\src\main\java\com\game\room\state\RoomDestoryGameState.java
D:\aga\suoha_6.11\libs\game_common\src\main\java\com\game\Router.java D:\aga\suoha_6.19\suoha_server\libs\game_common\src\main\java\com\game\Router.java
D:\aga\suoha_6.11\libs\game_common\src\main\java\com\game\GroupPublisherService.java D:\aga\suoha_6.19\suoha_server\libs\game_common\src\main\java\com\game\player\state\PlayerWaitState.java
D:\aga\suoha_6.11\libs\game_common\src\main\java\com\game\data\Player.java D:\aga\suoha_6.19\suoha_server\libs\game_common\src\main\java\com\game\GPSUtil.java
D:\aga\suoha_6.11\libs\game_common\src\main\java\com\game\state\StateBase.java D:\aga\suoha_6.19\suoha_server\libs\game_common\src\main\java\com\game\player\state\PlayerSpectatorState.java
D:\aga\suoha_6.11\libs\game_common\src\main\java\com\game\Global.java D:\aga\suoha_6.19\suoha_server\libs\game_common\src\main\java\com\game\state\StateMachine.java
D:\aga\suoha_6.11\libs\game_common\src\main\java\com\game\player\state\PlayerInitState.java D:\aga\suoha_6.19\suoha_server\libs\game_common\src\main\java\com\game\data\RoomDismiss.java
D:\aga\suoha_6.11\libs\game_common\src\main\java\com\game\room\state\RoomEndState.java D:\aga\suoha_6.19\suoha_server\libs\game_common\src\main\java\com\game\room\state\RoomEndState.java
D:\aga\suoha_6.11\libs\game_common\src\main\java\com\game\Constant.java D:\aga\suoha_6.19\suoha_server\libs\game_common\src\main\java\com\game\ActionEvent.java
D:\aga\suoha_6.11\libs\game_common\src\main\java\com\game\data\Timer.java D:\aga\suoha_6.19\suoha_server\libs\game_common\src\main\java\com\game\Util.java
D:\aga\suoha_6.11\libs\game_common\src\main\java\com\game\GameInterceptor.java D:\aga\suoha_6.19\suoha_server\libs\game_common\src\main\java\com\game\Constant.java
D:\aga\suoha_6.11\libs\game_common\src\main\java\com\game\Util.java D:\aga\suoha_6.19\suoha_server\libs\game_common\src\main\java\com\game\data\JoinRoomData.java
D:\aga\suoha_6.11\libs\game_common\src\main\java\com\game\manager\RoomManager.java D:\aga\suoha_6.19\suoha_server\libs\game_common\src\main\java\com\game\state\StateBase.java
D:\aga\suoha_6.11\libs\game_common\src\main\java\com\game\data\BasePlayBack.java D:\aga\suoha_6.19\suoha_server\libs\game_common\src\main\java\com\game\EventController.java
D:\aga\suoha_6.11\libs\game_common\src\main\java\com\game\data\Room.java D:\aga\suoha_6.19\suoha_server\libs\game_common\src\main\java\com\game\player\state\PlayerReloadState.java
D:\aga\suoha_6.11\libs\game_common\src\main\java\com\game\room\state\RoomInitState.java D:\aga\suoha_6.19\suoha_server\libs\game_common\src\main\java\com\game\Global.java
D:\aga\suoha_6.11\libs\game_common\src\main\java\com\game\data\Hp.java D:\aga\suoha_6.19\suoha_server\libs\game_common\src\main\java\com\game\room\state\RoomReloadState.java
D:\aga\suoha_6.11\libs\game_common\src\main\java\com\game\room\state\RoomReloadState.java D:\aga\suoha_6.19\suoha_server\libs\game_common\src\main\java\com\game\GameInterceptor.java
D:\aga\suoha_6.11\libs\game_common\src\main\java\com\game\player\state\PlayerReloadState.java D:\aga\suoha_6.19\suoha_server\libs\game_common\src\main\java\com\game\MainServer.java
D:\aga\suoha_6.11\libs\game_common\src\main\java\com\game\player\state\PlayerReadyState.java D:\aga\suoha_6.19\suoha_server\libs\game_common\src\main\java\com\game\room\state\RoomInitState.java
D:\aga\suoha_6.11\libs\game_common\src\main\java\com\game\player\state\PlayerWaitState.java D:\aga\suoha_6.19\suoha_server\libs\game_common\src\main\java\com\game\player\state\PlayerReadyState.java
D:\aga\suoha_6.11\libs\game_common\src\main\java\com\game\player\state\PlayerPauseState.java D:\aga\suoha_6.19\suoha_server\libs\game_common\src\main\java\com\game\player\state\PlayerPauseState.java
D:\aga\suoha_6.11\libs\game_common\src\main\java\com\game\data\JoinRoomData.java D:\aga\suoha_6.19\suoha_server\libs\game_common\src\main\java\com\game\data\Score.java
D:\aga\suoha_6.11\libs\game_common\src\main\java\com\game\room\state\RoomStartGameState.java D:\aga\suoha_6.19\suoha_server\libs\game_common\src\main\java\com\game\room\state\RoomStartGameState.java

View File

@ -84,8 +84,6 @@ public class EXRoom extends Room {
public EXPlayer win; public EXPlayer win;
public EXRoom(String roomid, Map<String, String> redis_room_map) { public EXRoom(String roomid, Map<String, String> redis_room_map) {
@ -121,7 +119,6 @@ public class EXRoom extends Room {
this.config.putInt(Config.ROOM_CONFIG_BASE_SCORE, 0); this.config.putInt(Config.ROOM_CONFIG_BASE_SCORE, 0);
} }
// System.out.println("底注"+this.config.getInt(Config.ROOM_CONFIG_BASE_SCORE)); // System.out.println("底注"+this.config.getInt(Config.ROOM_CONFIG_BASE_SCORE));
// int num = this.config.getInt(Config.ROOM_CONFIG_BASE_SCORE); // int num = this.config.getInt(Config.ROOM_CONFIG_BASE_SCORE);
// System.out.println(num); // System.out.println(num);
@ -199,11 +196,11 @@ public class EXRoom extends Room {
/** /**
* *
* *
* @param destPlayer * @param destPlayer
*/ */
public void addAllScore(Player destPlayer) { public void addAllScore(Player destPlayer) {
for (Entry<Integer, Player> entry : this.playerMapByPlaying.entrySet()) { for (Entry<Integer, Player> entry : this.playerMapByPlaying.entrySet()) {
if (entry.getKey().equals(destPlayer.playerid)) { if (entry.getKey().equals(destPlayer.playerid)) {
continue; continue;
@ -227,46 +224,28 @@ public class EXRoom extends Room {
EXMainServer.gameCtr.roomTotalResult(this, dissmiss); EXMainServer.gameCtr.roomTotalResult(this, dissmiss);
} }
/** @Override
* public void endGame() {
* addAllScore(win);
* Global.logger.error("EXRoom: endGame");
*
*/
@Override
public void endGame() {
// 累加所有玩家的分数
addAllScore(win);
// 记录游戏结束的日志
Global.logger.error("EXRoom: endGame");
// 将当前的播放数据转换为EXPlayBack对象 EXPlayBack pb = (EXPlayBack) this.playBackData;
EXPlayBack pb = (EXPlayBack) this.playBackData;
// 创建一个新的对象来存储游戏结束后的回放结果 ITObject pbResult = TObject.newInstance();
ITObject pbResult = TObject.newInstance();
// 创建一个数组来存储每个玩家的游戏信息 ITArray info = new TArray();
ITArray info = new TArray(); for (Entry<Integer, Player> entry : playerMapByPlaying.entrySet()) {
// 遍历所有正在玩的玩家,收集他们的座位号和分数 EXPlayer player = (EXPlayer) entry.getValue();
for (Entry<Integer, Player> entry : playerMapByPlaying.entrySet()) { ITObject obj = TObject.newInstance();
EXPlayer player = (EXPlayer) entry.getValue(); obj.putInt("seat", player.seat);
ITObject obj = TObject.newInstance(); obj.putInt("score", player.score.round_score);
obj.putInt("seat", player.seat); info.addTObject(obj);
obj.putInt("score", player.score.round_score); }
info.addTObject(obj); pbResult.putTArray("result", info);
} Global.logger.error("pbResult:" + pbResult);
// 将收集到的玩家信息添加到回放结果中 pb.addResultCommand(win.seat, pbResult);
pbResult.putTArray("result", info);
// 记录回放结果的日志
Global.logger.error("pbResult:" + pbResult);
// 在回放中添加结果命令,包括胜利者的座位号和游戏结果
pb.addResultCommand(win.seat, pbResult);
// 在回放中添加开始新轮游戏的命令
pb.addNewRoundCommand();
// 调用父类的结束游戏方法
super.endGame();
}
pb.addNewRoundCommand();
super.endGame();
}
} }

View File

@ -33,6 +33,7 @@ public void enter(EXRoom owner) {
if (owner.nextRound==1 && owner.config.getInt(Config.ROOM_CONFIG_BASE_SCORE)==0){ if (owner.nextRound==1 && owner.config.getInt(Config.ROOM_CONFIG_BASE_SCORE)==0){
player.totalLostScore=1; player.totalLostScore=1;
player.lostScore=-1; player.lostScore=-1;
} }
owner.sidePot = 2; owner.sidePot = 2;
@ -40,6 +41,7 @@ public void enter(EXRoom owner) {
if (owner.nextRound==1 && owner.config.getInt(Config.ROOM_CONFIG_BASE_SCORE)==1){ if (owner.nextRound==1 && owner.config.getInt(Config.ROOM_CONFIG_BASE_SCORE)==1){
player.totalLostScore=2; player.totalLostScore=2;
player.lostScore=-2; player.lostScore=-2;
} }
owner.sidePot = 4; owner.sidePot = 4;
@ -47,6 +49,7 @@ public void enter(EXRoom owner) {
if (owner.nextRound==1 && owner.config.getInt(Config.ROOM_CONFIG_BASE_SCORE)==2){ if (owner.nextRound==1 && owner.config.getInt(Config.ROOM_CONFIG_BASE_SCORE)==2){
player.totalLostScore=5; player.totalLostScore=5;
player.lostScore=-5; player.lostScore=-5;
} }
owner.sidePot = 10; owner.sidePot = 10;