using System; /// /// 一步走棋数据(本地记录与网络帧同步共用) /// [Serializable] public class ChessMoveData { /// 半回合序号(第几步,从 0 开始,用于帧顺序校验与去重) public int seq; public int fromX; public int fromY; public int toX; public int toY; } /// /// 象棋网络帧同步数据(走 SyncGameData 通道,后端只透传不解析) /// 注意:只用于走棋同步;悔棋/认输/求和走之前写好的 GameOperation 通道 /// [Serializable] public class ChessNetData { /// 消息类型:1=走棋 public int msgType; /// 发送者 userId(接收方用来过滤自己的回声) public string userId; /// 走棋数据(msgType=1 时有效) public ChessMoveData move; } /// /// 走棋事件参数(ChineseChessMainPanel / UIChessBoard 订阅 ChessGameManager 事件用) /// public class ChessMoveEventArgs { /// 这一步的完整数据(含 seq,可直接序列化发给对方) public ChessMoveData move; /// 走子方棋子 id public int movePieceId; /// 被吃棋子 id(没吃子为 -1) public int capturedPieceId = -1; /// 是否本地玩家走的(false = 网络同步过来) public bool isLocal; /// 这步走完后对方是否被将军 public bool isCheck; /// 走子方 public ChessCamp moverCamp; }