Ejemplo n.º 1
0
    //  _////////////////////////////////////////////////_    _____   Emit   _____   Action   _____
    public void ActionGameObj(NodeGameBase gameObj)
    {
        Ag.LogIntense(2, true);
        Ag.LogString(mName + "  ActionGameObj    Emit  ...  \t\t\t\t <<<   Action :: Game   >>>");

        if (gameObj.msgType != "REVERSE")
        {
            arrGameSend.Add(gameObj);
        }
        SendGameMsg(gameObj);
        Ag.LogIntense(1, false);
    }
Ejemplo n.º 2
0
    //  _////////////////////////////////////////////////_    _///////////////////////_    _____  Send in Dic  _____  GameMsg  _____
    public void SendGameMsg(NodeGameBase pObj)
    {
        string content = JsonMapper.ToJson(pObj);

        Ag.LogString("   SendGameMsg ::  content  >>  " + content);

        content = content.DodgeBackSlashQuoMark();

        Ag.LogStartWithStr(2, mName + "  SendGameMsg    >>> " + content);
        Ag.LogString("         Message Length >>>   content.Length   :   " + content.Length);

        Dictionary <string, string> aDic = new Dictionary <string, string> ();

        aDic ["msgType"] = pObj.msgType;
        aDic ["content"] = content;
        MySocket.Emit("GAMEMSG", aDic);
        TimerSet();
    }
Ejemplo n.º 3
0
    void ResGameMsg(IMessage theData)
    {
        //   {"name":"RES_GAMEMSG","args":[{"status":"FAIL","code":"ERR_NOOPPONENT"}]
        TimerStop();
        Ag.LogStartWithStr(2, mName + "  ResGameMsg    Rcvd  ...  " + IsGameHost.Value.ShowBool("I am ", "Host", "Vstr") + "\t\t\t\t >>>   Re Action   <<<");
        JSONNode argsJ = GetArguments(theData, mName);

        try {
            gameMsgCode = argsJ ["code"];
        } catch {
            Ag.LogString(mName + "  ResGameMsg ::  No code ");
        }

        if (NoOpponentProcess(gameMsgCode))
        {
            return;
        }

        JSONNode gData   = argsJ ["data"];// JsonMapper.ToObject (argsJ ["data"]);
        string   msgType = gData ["msgType"];

        gData = gData ["content"];

        string dodgeStr = gData.ToString().DodgeBackSlashQuoMark();

        (" ResGameMsg ::   dodgeStr  ::: " + dodgeStr).HtLog();
        dodgeStr = dodgeStr.Substring(1, dodgeStr.Length - 2);
        gData    = JSON.Parse(dodgeStr);
        (" ResGameMsg ::   gData ::: " + gData.ToString()).HtLog();

        Ag.LogString(mName + "  msgType    >>>>>  " + msgType + "  <<<<<   ");
        NodeGameBase theObj = null;

        switch (msgType)
        {
        case "GameStartMsg":
            GameStartMsg.Enem = true;
            return;

        case "SceneLoadComplete":
            SceneLoadComplete.Enem = true;
            return;

        case "RematchApply":
            ReMatchSent.Enem = true;
            return;

        case "RematchRefuse":
            ReMatchRefuseSend.Enem = true;
            return;

        case "AmUser":
            gData = JSON.Parse(dodgeStr.RecoverFromDodgeStr("@#@"));
            Ag.LogString(" ResGameMsg :: " + gData.ToString());

            EnemyUser = new AmUser(true, "DodgeDeviceID");
            EnemyUser = (new NodeAmUser()).ParseFrom(gData);
            "  NodeSocket :: ResGameMsg ::     case  ''AmUser''    >>>>>     Parsing Ended .....  ".HtLog();
            //AgStt.IsGaming = EnemyUser.Parsed = true;
            //AgStt.IsGaming = true;


            Ag.GameStt.EnemyInfoExchangeParsed(" AmUser ");


            if (!IsGameHost.Value)
            {
                ExchangeInfo();
            }
            //EnemyUser.ShowMyself ();
            return;

        case "PREPARE":
            AgStt.EnemyNodePrepareObj = new NodeGamePrepare();
            AgStt.MyNodePrepareObj    = new NodeGamePrepare();
            AgStt.EnemyNodePrepareObj.Parse(gData);
            AgStt.EnemyNodePrepareObj.ShowMyself();
            if (!IsGameHost.Value)
            {
                if (AgStt.EnemyNodePrepareObj.sessionKey != null && AgStt.EnemyNodePrepareObj.sessionKey.Length > 5)
                {
                    sessionKey = MyUser.WAS.GameSessionKey = AgStt.EnemyNodePrepareObj.sessionKey;
                }
                ActionGamePrepare(AgStt.MyNodePrepareObj);
            }
            return;

        case "TURN_RSLT":
            Ag.LogString(mName + "  Parsing   NodeGameTurnRslt   Object   ");
            theObj = new NodeGameTurnRslt();
            ((NodeGameTurnRslt)theObj).Parse(gData);
            //theObj = JsonMapper.ToObject<NodeGameTurnRslt> (gData.ToJson ());

            if (!IsGameHost.Value) // 받는 부분
            {
                sessionKey = ((NodeGameTurnRslt)theObj).sessionKey;
            }

            Ag.LogString(mName + "  Parsing Data" + theObj.ToString());
            Ag.LogString(mName + "  Parsing   NodeGameTurnRslt   Object   ... End   ");
            break;

        case "HOST_SEND":
            Ag.LogString(mName + "  Parsing   Game Void   Received    ... End   ");
            Ag.LogIntense(2, false);
            //theObj = JsonMapper.ToObject<NodeGameHostSend> (gData.ToJson ());
            return;//break;

        case "REVERSE":
            Ag.LogString(mName + "  ResGameMsg         REVERSE ... End ");
            dlgtReverseHostVstr();
            return;

        case "GOLDENBALL":
            Ag.LogString(mName + "  ResGameMsg         GOLDENBALL   " + gData ["BallKind"].ToString());
            Ag.LogString(mName + "  ResGameMsg         GOLDENBALL ... End ");
            return;
        }

        Ag.LogString(mName + "  ResGameMsg         Rcvd ... End ");
        arrGameRcvd.Add(theObj);

        dlgtGameGotResult();

        Ag.LogIntense(2, false);
    }