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;
}