Esempio n. 1
0
        private void ChangeBuzzerState(VMEODGameshowBuzzerStates newState)
        {
            switch (newState)
            {
            case VMEODGameshowBuzzerStates.Ready:
            {
                SetUTimer(_Options.BuzzerTimeLimit);
                BroadcastToPlayers("BuzzerEOD_Master", new byte[] { 1 }, true);
                _Tock = 0;
                break;
            }

            case VMEODGameshowBuzzerStates.Engaged:
            {
                SetUTimer(_Options.AnswerTimeLimit);
                _EngagedTimer = ACTIVE_BUZZER_WINDOW_TICKS;
                _Tock         = 0;
                break;
            }

            case VMEODGameshowBuzzerStates.Expired:
            {
                MyClient.Send("Buzzer_Host_Tip", (byte)VMEODGameshowBuzzerPluginEODTips.H_Player_Timeout + "");
                break;
            }

            case VMEODGameshowBuzzerStates.Disabled:
            {
                _AnsweringPlayerIndex = -1;
                BroadcastToPlayers("BuzzerEOD_Master", new byte[] { 0 }, false);
                _Tock = 0;
                break;
            };

            case VMEODGameshowBuzzerStates.Locked:
            {
                // other players should react
                var players = GetConnectedPlayers(_AnsweringPlayerIndex, true);
                foreach (var otherPlayers in players)
                {
                    otherPlayers.ActivateOtherBuzzer();
                }
                break;
            }
            }
            _BuzzerState = newState;
        }
Esempio n. 2
0
        public override void OnConnection(VMEODClient client)
        {
            if (client.Avatar != null)
            {
                _Random      = new Random(DateTime.Now.Millisecond + client.Avatar.ObjectID);
                EODType      = VMEODGameshowBuzzerPluginType.Host;
                MyClient     = client;
                SessionStamp = ClientListRefreshedStamp = _Random.NextDouble();
                _BuzzerState = VMEODGameshowBuzzerStates.Disabled;
                _Options     = new VMEODGameshowBuzzerHostOptions();

                // subscribe to player connection events
                ClientConnect    += NewClientConnectedHandler;
                ClientDisconnect += ClientDisconnectedHandler;
                PlayerBuzzed     += PlayerBuzzedHandler;

                // find players already connected
                FillContestantSpots();

                client.Send("BuzzerEOD_Init", new byte[] { (byte)VMEODGameshowBuzzerPluginType.Host });
            }
            base.OnConnection(client);
        }