コード例 #1
0
        /// <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);
                }
            }
        }