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