Eabei.GoBangGame/Eabei.GoBangService/Data/Manager/RevocationParse.cs

(开头部分) 4KB

这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。

using Eabei.Model;
using Eabei.Model.EventParam;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;


/********************************
*  命名空间: Eabei.GoBangService.Data.Manager
*  
*  功    能: N/A
*  类    名: RevocationParse
*  
*  作    者: EB
*  创建日期: 2022/6/30 9:06:25
*********************************/

namespace Eabei.GoBangService.Data
{
    /// <summary>
    /// 悔棋,撤回业务逻辑处理
    /// </summary>
    public class RevocationParse : DataThread<(string name, string data)>
    {
        public RevocationParse()
        {
            DataThreadCallback += RevocationParse_DataThreadCallback;
        }

        private void RevocationParse_DataThreadCallback((string name, string data) obj)
        {
            //命令协议----data   1:请求,发起   2: 询问对方 3:对方返回结果 true: 撤回  false:不撤回 4: 结果应答 true: 撤回  false:不撤回 
            if (string.IsNullOrEmpty(obj.data)) return;
            if (Revocation(obj.name, out (PlayerInfo? self, PlayerInfo? rival) pairung, out string msg))
            {
                string code = obj.data[..1];
                string rivalName = pairung.rival?.Name ?? "";
                switch (code)
                {
                    case "1":
                        if (pairung.self.CurrCamp != pairung.self.Camp)
                            Global.Instance.EventManager.Publish(new EventServerDataResult() { DataHeader = DataHeaderInfo.Revocation, Data = new object[] { rivalName, "2" } });
                        else
                            Global.Instance.EventManager.Publish(new EventServerDataResult() { DataHeader = DataHeaderInfo.Message, Data = new object[] { obj.name, "你不能悔棋!" } });
                        break;
                    case "3":
                        string result = obj.data[1..];
                        if (bool.TryParse(result, out bool isOk))
                        {
                            if (isOk) pairung.rival.CurrCamp = pairung.self.CurrCamp = pairung.self.CurrCamp == ChessCardCamp.BlackCamp ? ChessCardCamp.WhiteCamp : ChessCardCamp.BlackCamp;
                            Global.Instance.EventManager.Publish(new EventServerDataResult() { DataHeader = DataHeaderInfo.Revocation, Data = new object[] { rivalName, $"4{result}" } });
                        }
                        break;
                }
            }
            else
            {
                Global.Instance.EventManager.Publish(new Model.EventParam.EventServerDataResult() { DataHeader = DataHeaderInfo.Message, Data = new object[] { obj.name, msg } });
后面还有 44 行代码,解锁后查看完整代码

24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明

AI 解读 AI

登录后可用,每次 10 算力,解读结果公开显示在下面。

还没有人解读过这个文件。