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; }
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); }