refactor(suoha): 重构游戏房间逻辑
- 移除了 EXRoom 类中冗余的空行和注释 - 优化了 EXRoomStartGameState 类中的游戏开始逻辑 - 更新了游戏结束处理逻辑,简化了回放结果的生成过程master
parent
e4e3e22a1e
commit
c22f15dbf4
Binary file not shown.
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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);
|
||||||
|
|
@ -227,28 +224,16 @@ public class EXRoom extends Room {
|
||||||
EXMainServer.gameCtr.roomTotalResult(this, dissmiss);
|
EXMainServer.gameCtr.roomTotalResult(this, dissmiss);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
@Override
|
||||||
* 结束游戏处理
|
public void endGame() {
|
||||||
*
|
|
||||||
* 此方法在游戏结束时被调用,负责计算分数、记录日志、以及更新播放数据
|
|
||||||
* 它还负责生成游戏结束后的回放信息,供玩家回顾游戏过程
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
public void endGame() {
|
|
||||||
// 累加所有玩家的分数
|
|
||||||
addAllScore(win);
|
addAllScore(win);
|
||||||
// 记录游戏结束的日志
|
|
||||||
Global.logger.error("EXRoom: endGame");
|
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()) {
|
for (Entry<Integer, Player> entry : playerMapByPlaying.entrySet()) {
|
||||||
EXPlayer player = (EXPlayer) entry.getValue();
|
EXPlayer player = (EXPlayer) entry.getValue();
|
||||||
ITObject obj = TObject.newInstance();
|
ITObject obj = TObject.newInstance();
|
||||||
|
|
@ -256,17 +241,11 @@ public void endGame() {
|
||||||
obj.putInt("score", player.score.round_score);
|
obj.putInt("score", player.score.round_score);
|
||||||
info.addTObject(obj);
|
info.addTObject(obj);
|
||||||
}
|
}
|
||||||
// 将收集到的玩家信息添加到回放结果中
|
|
||||||
pbResult.putTArray("result", info);
|
pbResult.putTArray("result", info);
|
||||||
// 记录回放结果的日志
|
|
||||||
Global.logger.error("pbResult:" + pbResult);
|
Global.logger.error("pbResult:" + pbResult);
|
||||||
// 在回放中添加结果命令,包括胜利者的座位号和游戏结果
|
|
||||||
pb.addResultCommand(win.seat, pbResult);
|
pb.addResultCommand(win.seat, pbResult);
|
||||||
|
|
||||||
// 在回放中添加开始新轮游戏的命令
|
|
||||||
pb.addNewRoundCommand();
|
pb.addNewRoundCommand();
|
||||||
// 调用父类的结束游戏方法
|
|
||||||
super.endGame();
|
super.endGame();
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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;
|
||||||
|
|
||||||
|
|
|
||||||
Binary file not shown.
Binary file not shown.
Loading…
Reference in New Issue