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
#Tue Jun 17 19:53:13 CST 2025
#Thu Jun 19 21:25:43 CST 2025
version=1.0.0
groupId=com.game
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.11\libs\game_common\src\main\java\com\game\manager\SessionManager.java
D:\aga\suoha_6.11\libs\game_common\src\main\java\com\game\ActionEvent.java
D:\aga\suoha_6.11\libs\game_common\src\main\java\com\game\GPSUtil.java
D:\aga\suoha_6.11\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\player\state\PlayerPopupState.java
D:\aga\suoha_6.11\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\room\state\RoomWaitState.java
D:\aga\suoha_6.11\libs\game_common\src\main\java\com\game\data\RoomDismiss.java
D:\aga\suoha_6.11\libs\game_common\src\main\java\com\game\data\Score.java
D:\aga\suoha_6.11\libs\game_common\src\main\java\com\game\GameController.java
D:\aga\suoha_6.11\libs\game_common\src\main\java\com\game\state\StateMachine.java
D:\aga\suoha_6.11\libs\game_common\src\main\java\com\game\EventController.java
D:\aga\suoha_6.11\libs\game_common\src\main\java\com\game\MainServer.java
D:\aga\suoha_6.11\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.11\libs\game_common\src\main\java\com\game\data\Player.java
D:\aga\suoha_6.11\libs\game_common\src\main\java\com\game\state\StateBase.java
D:\aga\suoha_6.11\libs\game_common\src\main\java\com\game\Global.java
D:\aga\suoha_6.11\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\room\state\RoomEndState.java
D:\aga\suoha_6.11\libs\game_common\src\main\java\com\game\Constant.java
D:\aga\suoha_6.11\libs\game_common\src\main\java\com\game\data\Timer.java
D:\aga\suoha_6.11\libs\game_common\src\main\java\com\game\GameInterceptor.java
D:\aga\suoha_6.11\libs\game_common\src\main\java\com\game\Util.java
D:\aga\suoha_6.11\libs\game_common\src\main\java\com\game\manager\RoomManager.java
D:\aga\suoha_6.11\libs\game_common\src\main\java\com\game\data\BasePlayBack.java
D:\aga\suoha_6.11\libs\game_common\src\main\java\com\game\data\Room.java
D:\aga\suoha_6.11\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\data\Hp.java
D:\aga\suoha_6.11\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\player\state\PlayerReloadState.java
D:\aga\suoha_6.11\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\PlayerWaitState.java
D:\aga\suoha_6.11\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.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\GroupPublisherService.java
D:\aga\suoha_6.19\suoha_server\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\data\Hp.java
D:\aga\suoha_6.19\suoha_server\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\Room.java
D:\aga\suoha_6.19\suoha_server\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\player\state\PlayerEndState.java
D:\aga\suoha_6.19\suoha_server\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\Player.java
D:\aga\suoha_6.19\suoha_server\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.19\suoha_server\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\manager\RoomManager.java
D:\aga\suoha_6.19\suoha_server\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\Router.java
D:\aga\suoha_6.19\suoha_server\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\GPSUtil.java
D:\aga\suoha_6.19\suoha_server\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\state\StateMachine.java
D:\aga\suoha_6.19\suoha_server\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\room\state\RoomEndState.java
D:\aga\suoha_6.19\suoha_server\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\Util.java
D:\aga\suoha_6.19\suoha_server\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\data\JoinRoomData.java
D:\aga\suoha_6.19\suoha_server\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\EventController.java
D:\aga\suoha_6.19\suoha_server\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\Global.java
D:\aga\suoha_6.19\suoha_server\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.19\suoha_server\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\RoomInitState.java
D:\aga\suoha_6.19\suoha_server\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\player\state\PlayerPauseState.java
D:\aga\suoha_6.19\suoha_server\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\room\state\RoomStartGameState.java

View File

@ -84,8 +84,6 @@ public class EXRoom extends Room {
public EXPlayer win;
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);
}
// System.out.println("底注"+this.config.getInt(Config.ROOM_CONFIG_BASE_SCORE));
// int num = this.config.getInt(Config.ROOM_CONFIG_BASE_SCORE);
// System.out.println(num);
@ -227,28 +224,16 @@ public class EXRoom extends Room {
EXMainServer.gameCtr.roomTotalResult(this, dissmiss);
}
/**
*
*
*
*
*/
@Override
public void endGame() {
// 累加所有玩家的分数
addAllScore(win);
// 记录游戏结束的日志
Global.logger.error("EXRoom: endGame");
// 将当前的播放数据转换为EXPlayBack对象
EXPlayBack pb = (EXPlayBack) this.playBackData;
// 创建一个新的对象来存储游戏结束后的回放结果
ITObject pbResult = TObject.newInstance();
// 创建一个数组来存储每个玩家的游戏信息
ITArray info = new TArray();
// 遍历所有正在玩的玩家,收集他们的座位号和分数
for (Entry<Integer, Player> entry : playerMapByPlaying.entrySet()) {
EXPlayer player = (EXPlayer) entry.getValue();
ITObject obj = TObject.newInstance();
@ -256,17 +241,11 @@ public void endGame() {
obj.putInt("score", player.score.round_score);
info.addTObject(obj);
}
// 将收集到的玩家信息添加到回放结果中
pbResult.putTArray("result", info);
// 记录回放结果的日志
Global.logger.error("pbResult:" + pbResult);
// 在回放中添加结果命令,包括胜利者的座位号和游戏结果
pb.addResultCommand(win.seat, pbResult);
// 在回放中添加开始新轮游戏的命令
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){
player.totalLostScore=1;
player.lostScore=-1;
}
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){
player.totalLostScore=2;
player.lostScore=-2;
}
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){
player.totalLostScore=5;
player.lostScore=-5;
}
owner.sidePot = 10;