Пример #1
0
    public async Task <FtRequestData> JoinGame()
    {
        FtRequest request = new FtRequest(FtRequestType.JoinGame, new FtRequestData()
        {
            SenderGuid = OS.GetUniqueId(),
            SenderName = System.Environment.MachineName
        });

        HttpResponse response = await Global.Http.Request(Route("join-game"), 5, request.ToJson());

        FtRequestData data = JsonSerializer.Deserialize <FtRequestData>(response.Body);

        return(data);
    }
    private async void Sync()
    {
        FtRequestData response = await Game.Service.Sync(GetAllUnitActions());

        Global.Log(response.ToJson());

        // transform unit actions
        List <JsonElement> elems = response.UnitActions.Cast <JsonElement>().ToList();

        // transform and replay the unit actions
        foreach (JsonElement elem in elems)
        {
            UnitAction action = UnitAction.ActionFromJson(elem);

            await action.Replay();

            await Global.WaitFor(1);
        }
    }
Пример #3
0
    public async Task <FtRequestData> Sync(List <object> unitActions)
    {
        FtRequest request = new FtRequest(FtRequestType.Sync, new FtRequestData()
        {
            SenderGuid  = OS.GetUniqueId(),
            SenderName  = System.Environment.MachineName,
            UnitActions = unitActions
        });

        string json = request.ToJson();

        Global.Log(json);

        HttpResponse response = await Global.Http.Request(Route("sync"), 5, json);

        Global.Log(response.Body);
        FtRequestData data = JsonSerializer.Deserialize <FtRequestData>(response.Body);

        return(data);
    }
Пример #4
0
    private async void JoinGame()
    {
        FtRequestData data = await Game.Service.JoinGame();

        if (!string.IsNullOrEmpty(data.Success))
        {
            debugText.Text = data.Success + "\n Joining game...";
            await Global.WaitFor(2);

            Global.LocalController = new NetworkController()
            {
                HasInitiative = false
            };

            GetTree().ChangeScene("res://games/SimpleGame.tscn");
        }
        else
        {
            debugText.Text = data.Error;
        }
    }
Пример #5
0
 public FtRequest(FtRequestType type, FtRequestData data)
 {
     Type = type.ToString();
     Data = data;
 }