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