Example #1
0
    public void SendFightOffset(float offset,bool slashed)
    {
        if (myResult != null)
            return;

        myResult = new SingleUserFightResult (offset, slashed);

        JSONObject json = new JSONObject ();
        json.AddField("command","FightData");
        json.AddField ("data", this.myResult.ToJSON());
        SendTheMessage (json.ToString());

        if (myResult != null && targetResult != null)
        {
            fullUserFightResult = new FullUserFightResult();
            fullUserFightResult.localResult = myResult;
            fullUserFightResult.oppositeResult = targetResult;
            parseTest.UpdateFightState(fullUserFightResult,()=>
            {
                if(hostMode)
                    parseTest.AddBattleRecord(LocalUserData.userID,LocalUserData.userName,fullUserFightResult.localResult.TimeOffset,PairedUserData.userID,PairedUserData.userName,fullUserFightResult.oppositeResult.TimeOffset);

            });

            if(OnFightResult!=null)OnFightResult.Invoke(fullUserFightResult);

        }
    }
Example #2
0
    private void ParseMessage(string Message)
    {
        try
        {
            JSONObject jsonOBJ = new JSONObject(Message);

            if (HostMode)
            {
                if(jsonOBJ["command"].str == "UserData")
                {
                    this.pairedUserData = new UserData(jsonOBJ["data"]);

                    Invoke("SendUserData",0f);

                    isConnected = true;

                    if(OnPaired!=null)
                    {
                        OnPaired.Invoke(PairedUserData);
                    }

                }
                else if(jsonOBJ["command"].str == "FightSetting")
                {
                    this.fightSetting = new FightSetting(jsonOBJ["data"]);

                    if(OnFightSetting!=null)OnFightSetting.Invoke(this.fightSetting);

                }
                else if(jsonOBJ["command"].str == "FightData")
                {
                    this.targetResult = new SingleUserFightResult(jsonOBJ["data"]);

                    if (myResult != null && targetResult != null)
                    {
                        fullUserFightResult = new FullUserFightResult();
                        fullUserFightResult.localResult = myResult;
                        fullUserFightResult.oppositeResult = targetResult;

                        parseTest.UpdateFightState(fullUserFightResult);
                        parseTest.AddBattleRecord(LocalUserData.userID,LocalUserData.userName,fullUserFightResult.localResult.TimeOffset,PairedUserData.userID,PairedUserData.userName,fullUserFightResult.oppositeResult.TimeOffset);

                        if(OnFightResult!=null)OnFightResult.Invoke(fullUserFightResult);
                    }
                }
                else
                {
                    throw new Exception();
                }
            }
            else
            {
                if(jsonOBJ["command"].str == "UserData")
                {
                    this.pairedUserData = new UserData(jsonOBJ["data"]);

                    if(OnPaired!=null)
                    {
                        OnPaired.Invoke(PairedUserData);
                    }

                    CalculatingRTT = false;

                    isConnected = true;

                    Invoke("SendBattleConfig",0);

                }
                else if(jsonOBJ["command"].str == "FightData")
                {
                    this.targetResult = new SingleUserFightResult(jsonOBJ["data"]);

                    if (myResult != null && targetResult != null)
                    {
                        fullUserFightResult = new FullUserFightResult();
                        fullUserFightResult.localResult = myResult;
                        fullUserFightResult.oppositeResult = targetResult;

                        parseTest.UpdateFightState(fullUserFightResult);

                        if(OnFightResult!=null)OnFightResult.Invoke(fullUserFightResult);
                    }
                }
                else
                {
                    throw new Exception();
                }
            }

        }
        catch
        {
            Debug.Log("unknown command:"+Message);
        }
    }
Example #3
0
 public void FinishAndResetAPI(Action callback = null)
 {
     CancelInvoke ();
     hostMode = false;
     Advertising = false;
     isConnected = false;
     pairedUserData = null;
     fightSetting = null;
     RTTTime = 0;
     CalculatingRTT = false;
     ResponseTimer = 0;
     myResult = null;
     targetResult = null;
     fullUserFightResult = null;
     BluetoothLEHardwareInterface.DeInitialize (callback);
     bluetoothDeviceScript = null;
 }