public async void SendTestRequest() { var request = NetRequest.CreateAndSend(connection, "Test request data"); var result = await request.WaitForResponse(); Log.D(result.data); }
public async void SendMatchRequest() { var request = NetRequest.CreateAndSend(BBClient.Instance.connection, new MatchMakingRequest(playerId, new MatchMakingSettings())); NetReceivedData response = await request.WaitForResponse(); Log.D(response.data); }
public async Task <bool> TryAuthenticate(Credentials credentials) { if (isConnected == false) { return(false); } Log.Info(LogTag, $"Attempting to authenticate player. Username: {credentials.username}."); NetReceivedData response = await NetRequest.CreateAndSend(connection, credentials).WaitForResponse(); if (response.data is AuthenticationResult authenticationResult) { if (authenticationResult.authenticationSuccessfull) { authToken = authenticationResult.authToken; playerId = authenticationResult.playerId; state = ClientState.Authenticated; Log.Info(LogTag, "Authentication successfull."); return(true); } else { Log.Info(LogTag, "Authentication failed."); } } else { Log.Error(LogTag, "Authentication error: Unexpected response type."); } return(false); }
protected async Task <bool> SendBoth(object serializableData) { var request1 = NetRequest.CreateAndSend(player1.NetworkingClient.Connection, serializableData); var request2 = NetRequest.CreateAndSend(player2.NetworkingClient.Connection, serializableData); await Task.WhenAll(request1.WaitForResponse(), request2.WaitForResponse()); return(request1.response.GetDataOrDefault <bool>() && request2.response.GetDataOrDefault <bool>()); }
private async void SendUnitOrderStop(BattleUnit battleUnit) { UnitOrderStop order = new UnitOrderStop(battleData.id, battleUnit.unitInstanceId); var request = NetRequest.CreateAndSend(BBClient.Instance.connection, order); var response = await request.WaitForResponse(); if (response.error == null) { if (response.GetDataOrDefault <bool>()) { selectedUnit.HideOrderArrow(); } } }
private async void SendUnitOrderMove(int x, int y) { UnitOrderMove order = new UnitOrderMove(battleData.id, selectedUnit.unitInstanceId, x, y); var request = NetRequest.CreateAndSend(BBClient.Instance.connection, order); var response = await request.WaitForResponse(); if (response.error == null) { if (response.GetDataOrDefault <bool>()) { selectedUnit.ShowOrderArrow(x, y); } } }
public async void Start() { battlePhase = BattlePhase.Starting; // Register data handlers unitOrderMoveDataHandler = DataHandler.New(HandleUnitOrderMove, new NetDataFilterUnitOrder(battleData.id).And(new NetDataFilterType(typeof(UnitOrderMove)))); unitOrderStopDataHandler = DataHandler.New(HandleUnitOrderStop, new NetDataFilterUnitOrder(battleData.id).And(new NetDataFilterType(typeof(UnitOrderStop)))); NetDataEventManager.Instance.RegisterHandler(unitOrderMoveDataHandler); NetDataEventManager.Instance.RegisterHandler(unitOrderStopDataHandler); // Load players LoadBattleRequestData loadBattleRequestData = new LoadBattleRequestData() { battle = battleData }; NetRequest request1 = NetRequest.CreateAndSend(player1.NetworkingClient.Connection, loadBattleRequestData, Channel.ReliableFragmented); NetRequest request2 = NetRequest.CreateAndSend(player2.NetworkingClient.Connection, loadBattleRequestData, Channel.ReliableFragmented); await Task.WhenAll(request1.WaitForResponse(), request2.WaitForResponse()); bool player01Loaded = request1.response.GetDataOrDefault <bool>(); bool player02Loaded = request2.response.GetDataOrDefault <bool>(); if (player01Loaded == false || player02Loaded == false) { Log.Error(LogTag, $"Failed to start BattleSession for BattleData: {battleData}."); return; } // Start battle phases loop while (battlePhase != BattlePhase.BattleEnded) { StartPlanningPhase(); await WaitForEndOfPhase(); StartActionPhase(); await WaitForEndOfPhase(); if (battleData.unitsOnBoard.Count == 0) { battlePhase = BattlePhase.BattleEnded; } } }