/// <summary> /// Callback for player joining the room /// </summary> /// <param name="info"></param> public override void OnJoin(IJoinGameCallInfo info) { base.OnJoin(info); if (PluginHost.GameActors.Count > NumberOfPlayers) { PluginHost.RemoveActor(info.ActorNr, 0, "Room is Full"); PluginHost.LogError("Game is full"); return; } if (IsGameStarted) { if (!joinAfterStart) { PluginHost.RemoveActor(info.ActorNr, 0, "Game already started"); return; } PluginHost.CreateOneTimeTimer( () => SyncPlayer(info), 200); } else { if ((PluginHost.GameActors.Count >= 2 && joinAfterStart) || (PluginHost.GameActors.Count >= NumberOfPlayers && !joinAfterStart)) { PluginHost.CreateOneTimeTimer( () => StartGame(), startDuration); } } }