async void Start() { Debug.Log("Room scene started"); if (Application.isEditor && Application.isPlaying) { await TestLoginFlow.AttemptCreateRoom(); } RoomNameLabel.text = Client.State().RoomName; RoomIdLabel.text = Client.State().RoomId; var roomStateResponse = await Client.GetRoomState(); if (roomStateResponse.IsStatusOk()) { InitializePlayerListModel(roomStateResponse.Payload.GetRoomStateResponse); } // // subscribe to room change Client.OnRoomStateChange += OnRoomStateChange; }
// Start is called before the first frame update async void Start() { if (Application.isEditor && Application.isPlaying) { await TestLoginFlow.AttemptStartGame(); } // Start listen for messages Client.AddAction("animation", (AnimationPayload anim, Packet packet) => { _ = AnimationDispatcher.HandleAnimation(anim.Animation); }); Client.AddAction("announce_start_turn", (AnnounceStartTurnPayload payload, Packet packet) => { bool isCurrentPlayerTurn = payload.Player.Equals(Client.State().GamePlayerId); if (isCurrentPlayerTurn) { EventBus.StartCurrentPlayerTurn?.Invoke(); } }); Client.AddAction("announce_roll", (AnnounceRollPayload payload, Packet packet) => { }); Client.AddAction("announce_pay_rent", (AnnouncePayRentPayload payload, Packet packet) => { }); Client.AddAction("prompt_purchase", (PromptPurchaseRequest request, Packet packet) => { EventBus.PromptPurchase?.Invoke(request, packet); }); Client.AddAction("announce_purchase", (AnnouncePurchasePayload payload, Packet packet) => { EventBus.PropertyChange?.Invoke(payload.Property, Players.Find(player => player.Id.Equals(payload.Player))); }); Client.AddAction("announce_end_turn", (AnnounceEndTurnPayload payload, Packet packet) => { }); Client.AddAction("announce_bankrupt", (AnnounceBankruptPayload payload, Packet packet) => { }); Client.AddAction("announce_game_over", (AnnounceGameOverPayload payload, Packet packet) => { }); Client.AddAction("announce_player_left", (AnnouncePlayerLeftPayload payload, Packet packet) => { }); Client.AddPacketAction("prompt_chance_confirmation", (Packet packet) => { EventBus.PromptChanceConfirmation?.Invoke(packet); }); EventBus.DiceRolled += OnDiceRolled; EventBus.LeaveRoom += OnLeaveRoom; EventBus.PurchaseDecision += OnPurchaseDecision; EventBus.ConfirmChance += OnConfirmChance; // Get initial game state Packet response = await Client.Request(RequestUtils.NewRequest("get_initial_state", Client.NewId)); if (response.IsStatusOk() && response.Payload.ActionPayload.TryUnpack <GetInitialStateResponse>(out var payload)) { SetupPlayers(payload); } }