Ejemplo n.º 1
0
 public VMEODHandler(VMEODServer server)
 {
     PlaintextHandlers = new Dictionary <string, EODPlaintextEventHandler>();
     BinaryHandlers    = new Dictionary <string, EODBinaryEventHandler>();
     SimanticsHandlers = new Dictionary <short, EODSimanticsEventHandler>();
     Server            = server;
 }
Ejemplo n.º 2
0
 public VMEODDresserPlugin(VMEODServer server) : base(server)
 {
     Lobby.OnJoinSend("dresser_show");
     PlaintextHandlers["dresser_change_outfit"] = ChangeOutfit;
     PlaintextHandlers["dresser_set_default"]   = SetDefault;
     PlaintextHandlers["dresser_delete_outfit"] = DeleteOutfit;
 }
Ejemplo n.º 3
0
 public VMEODTimerPlugin(VMEODServer server) : base(server)
 {
     BinaryHandlers["Timer_State_Change"]     = StateChangeHandler;
     BinaryHandlers["Timer_IsRunning_Change"] = IsRunningChangeHandler;
     BinaryHandlers["Timer_Set"]      = SetTimerHandler;
     PlaintextHandlers["Timer_Close"] = CloseHandler;
 }
        public VMEODNightclubControllerPlugin(VMEODServer server) : base(server)
        {
            SimanticsHandlers[(short)VMEODNightclubEventTypes.RoundStart] = RoundStartHandler;
            SimanticsHandlers[(short)VMEODNightclubEventTypes.RoundEnd]   = RoundEndHandler;

            HidePortals();
        }
        public VMAbstractEODRackPlugin(VMEODServer server) : base(server)
        {
            // Get the data from the global server containing the rack name
            server.vm.GlobalLink.LoadPluginPersist(server.vm, server.Object.PersistID, server.PluginID, (byte[] data) =>
            {
                lock (this)
                {
                    if (data == null)
                    {
                        Data          = new VMEODRackData();
                        Data.RackName = "Name your rack";
                    }
                    else
                    {
                        Data = new VMEODRackData(data);
                    }
                }
            });

            Lobby = new EODLobby <VMEODPaperChaseSlot>(server, 1)
                    .OnFailedToJoinDisconnect();

            PlaintextHandlers["close"]  = Lobby.Close;
            server.CanBeActionCancelled = true;
        }
Ejemplo n.º 6
0
        public VMEODPaperChasePlugin(VMEODServer server) : base(server)
        {
            Lobby = new EODLobby <VMEODPaperChaseSlot>(server, 3)
                    .BroadcastPlayersOnChange("paperchase_players")
                    .OnJoinSend("paperchase_show")
                    .OnFailedToJoinDisconnect();

            PlaintextHandlers["close"] = Lobby.Close;
            PlaintextHandlers["paperchase_chooseletter"] = SetPlayerLetter;

            StateMachine = new StateMachine <VMEODPaperChaseState>(VMEODPaperChaseState.Lobby);
            StateMachine.OnTransition += StateMachine_OnTransition;

            //The random function is crappy, if we use it to choose single chars it very often chooses the same combination
            //Expanding the list gives us more variance
            Combinations = new short[27][];
            var i = 0;

            for (var x = 0; x < 3; x++)
            {
                for (var y = 0; y < 3; y++)
                {
                    for (var z = 0; z < 3; z++)
                    {
                        //1 = a, 2 = b, 3=c
                        Combinations[i] = new short[] {
                            (short)(x + 1),
                            (short)(y + 1),
                            (short)(z + 1)
                        };
                        i++;
                    }
                }
            }
        }
Ejemplo n.º 7
0
 public VMEODHandler(VMEODServer server)
 {
     PlaintextHandlers = new Dictionary<string, EODPlaintextEventHandler>();
     BinaryHandlers = new Dictionary<string, EODBinaryEventHandler>();
     SimanticsHandlers = new Dictionary<short, EODSimanticsEventHandler>();
     Server = server;
 }
Ejemplo n.º 8
0
        public VMEODGameshowBuzzerHostPlugin(VMEODServer server) : base(server)
        {
            BinaryHandlers["Buzzer_Host_FindNewPlayer"]      = FindNewPlayerHandler;
            BinaryHandlers["Buzzer_Host_MovePlayerRight"]    = MovePlayerRightHandler;
            BinaryHandlers["Buzzer_Host_MovePlayerLeft"]     = MovePlayerLeftHandler;
            BinaryHandlers["Buzzer_Host_ToggleEnablePlayer"] = ToggleEnablePlayerHandler;
            BinaryHandlers["Buzzer_Host_PlayerCorrect"]      = PlayerCorrectHandler;
            BinaryHandlers["Buzzer_Host_PlayerIncorrect"]    = PlayerIncorrectHandler;
            BinaryHandlers["Buzzer_Host_A_ToggleMaster"]     = ToggleMasterHandler;
            BinaryHandlers["Buzzer_Host_A_DeclareWinner"]    = DeclareWinnerHandler;
            BinaryHandlers["Buzzer_Host_A_Deduct"]           = (evt, newFlag, client) => { ToggleOptionHandler(_Options, nameof(VMEODGameshowBuzzerHostOptions.AutoDeductWrongPoints), newFlag, evt); };
            BinaryHandlers["Buzzer_Host_A_Disable"]          = (evt, newFlag, client) => { ToggleOptionHandler(_Options, nameof(VMEODGameshowBuzzerHostOptions.AutoDisableOnWrong), newFlag, evt); };
            BinaryHandlers["Buzzer_Host_A_Enable"]           = (evt, newFlag, client) => { ToggleOptionHandler(_Options, nameof(VMEODGameshowBuzzerHostOptions.AutoEnableAllOnRight), newFlag, evt); };
            BinaryHandlers["Buzzer_Host_A_BuzzerTime"]       = (evt, newTime, client) =>
            { ChangeValueHandler(_Options, nameof(VMEODGameshowBuzzerHostOptions.BuzzerTimeLimit), newTime, MIN_BUZZER_TIME, MAX_BUZZER_TIME, evt, "Buzzer_Host_B_OverBuzzerTime", "Buzzer_Host_B_UnderBuzzerTime"); };
            BinaryHandlers["Buzzer_Host_A_AnswerTime"] = (evt, newTime, client) =>
            { ChangeValueHandler(_Options, nameof(VMEODGameshowBuzzerHostOptions.AnswerTimeLimit), newTime, MIN_ANSWER_TIME, MAX_ANSWER_TIME, evt, "Buzzer_Host_B_OverAnswerTime", "Buzzer_Host_B_UnderAnswerTime"); };
            BinaryHandlers["Buzzer_Host_A_PlayerScore0"] = (evt, newScore, client) => { ChangePlayerScoreHandler(0, newScore); };
            BinaryHandlers["Buzzer_Host_A_PlayerScore1"] = (evt, newScore, client) => { ChangePlayerScoreHandler(1, newScore); };
            BinaryHandlers["Buzzer_Host_A_PlayerScore2"] = (evt, newScore, client) => { ChangePlayerScoreHandler(2, newScore); };
            BinaryHandlers["Buzzer_Host_A_PlayerScore3"] = (evt, newScore, client) => { ChangePlayerScoreHandler(3, newScore); };
            BinaryHandlers["Buzzer_Host_A_GlobalScore"]  = (evt, newAmount, client) =>
            { ChangeValueHandler(_Options, nameof(VMEODGameshowBuzzerHostOptions.CorrectAnswerScore), newAmount, 0, MAX_SCORE, evt, "Buzzer_Host_B_OverGlobalScore", "Buzzer_Host_B_UnderGlobalScore"); };
            BinaryHandlers["Buzzer_Host_Request_Roster"] = RequestRosterHandler;

            SimanticsHandlers[(short)VMEODGameshowHostPluginEvents.Host_Judgment_Callback] = JudgmentCallbackHandler;
            SimanticsHandlers[(short)VMEODGameshowHostPluginEvents.Execute_Declare_Winner] = ExecuteDeclareWinnerHandler;
        }
Ejemplo n.º 9
0
 public VMEODRackOwnerPlugin(VMEODServer server) : base(server)
 {
     PlaintextHandlers["rackowner_update_name"]  = UpdateNameHandler;
     PlaintextHandlers["rackowner_stock"]        = Stock;
     PlaintextHandlers["rackowner_delete"]       = DeleteStock;
     PlaintextHandlers["rackowner_update_price"] = UpdatePrice;
 }
Ejemplo n.º 10
0
        public VMEODSlotsPlugin(VMEODServer server) : base(server)
        {
            // Insitialise stop probability data for 100% RTP slot machine, these will change below if owner set payout is not 100%
            InitialBlankStops = 75;
            TotalFirstStops   = 42;
            TotalSecondStops  = 49;
            TotalThirdStops   = 36;
            TotalFourthStops  = 24;
            TotalFifthStops   = 12;
            TotalSixthStops   = 6;

            BinaryHandlers["slots_new_odds"]          = NewOddsHandler;
            PlaintextHandlers["slots_toggle_onOff"]   = ToggleOnOffHandler;
            PlaintextHandlers["slots_execute_bet"]    = BetHandler;
            PlaintextHandlers["slots_wheels_stopped"] = WheelsStoppedHandler;
            PlaintextHandlers["slots_close_UI"]       = SlotsCloseHandler;
            PlaintextHandlers["slots_withdraw"]       = WithdrawHandler;
            PlaintextHandlers["slots_deposit"]        = DepositHandler;
            SimanticsHandlers[(short)VMOEDSlotsObjectEvents.GameOver]          = GameOverHandler;
            SimanticsHandlers[(short)VMOEDSlotsObjectEvents.InsufficientFunds] = GameOverHandler;
            SimanticsHandlers[1] = UnknownEventHandler;
            SimanticsHandlers[2] = UnknownEventHandler;
            SimanticsHandlers[3] = UnknownEventHandler;
            SimanticsHandlers[7] = UnknownEventHandler;
        }
Ejemplo n.º 11
0
        public VMEODScoreboardPlugin(VMEODServer server) : base(server, "scoreboard")
        {
            Persist = new EODPersist <VMEODScoreboardData>(server);

            PlaintextHandlers["scoreboard_updatecolor"] = UpdateColor;
            PlaintextHandlers["scoreboard_updatescore"] = UpdateScore;
            PlaintextHandlers["scoreboard_setscore"]    = SetScore;
        }
        public VMEODTwoPersonJobObjectMazePlugin(VMEODServer server) : base(server)
        {
            GameState = VMEODTwoPersonJobObjectMazePluginStates.Waiting_For_Player;
            Rng       = new Random();

            // listeners
            BinaryHandlers["TSOMaze_Button_Click"] = CharismaButtonClickedHandler;
        }
Ejemplo n.º 13
0
        public VMEODBulletinPlugin(VMEODServer server) : base(server)
        {
            PlaintextHandlers["bulletin_mode"]   = P_Mode;
            PlaintextHandlers["bulletin_posted"] = P_Posted;
            PlaintextHandlers["close"]           = P_Close;

            SimanticsHandlers[(short)VMEODBulletinEventIn.AnimChanged] = S_AnimChanged;
        }
Ejemplo n.º 14
0
 public VMEODNCDanceFloorPlugin(VMEODServer server) : base(server)
 {
     //PlaintextHandlers["close"] = P_Close;
     //PlaintextHandlers["press_button"] = P_DanceButton;
     SimanticsHandlers[(short)VMEODNCDanceFloorEvents.DiscoverTiles] = S_DiscoverTiles;
     SimanticsHandlers[(short)VMEODNCDanceFloorEvents.SetAnimation]  = S_SetAnimation;
     SimanticsHandlers[(short)VMEODNCDanceFloorEvents.SetRatings]    = S_SetRatings;
 }
Ejemplo n.º 15
0
 public VMEODMazeTwoPlugin(VMEODServer server) : base(server)
 {
     NextState = FreeSOMazeStates.Invalid;
     ThankU    = new Random();
     BinaryHandlers["FreeSOMaze_choose_difficulty"] = ChooseDifficultyHandler;
     BinaryHandlers["FreeSOMaze_loaded"]            = FirstLoadHandler;
     BinaryHandlers["FreeSOMaze_partner_failsafe"]  = FirstLoadHandler;
     BinaryHandlers["FreeSOMaze_move_request"]      = MoveRequestHandler;
 }
Ejemplo n.º 16
0
        public VMEODSecureTradePlugin(VMEODServer server) : base(server)
        {
            Lobby = new EODLobby <VMEODSecureTradePlayer>(server, 2)
                    .BroadcastPlayersOnChange("trade_players")
                    .OnJoinSend("trade_show")
                    .OnFailedToJoinDisconnect();

            PlaintextHandlers["close"]       = Lobby.Close;
            PlaintextHandlers["trade_offer"] = TradeOffer;
        }
Ejemplo n.º 17
0
        public VMEODPizzaMakerPlugin(VMEODServer server) : base(server)
        {
            PopulateCards();
            PlaintextHandlers["close"]      = P_Close;
            PlaintextHandlers["ingredient"] = P_Ingredient;

            SimanticsHandlers[(short)VMEODPizzaObjEvent.RespondPhone]   = S_RespondPhone;
            SimanticsHandlers[(short)VMEODPizzaObjEvent.AllContributed] = S_AllContributed;
            SimanticsHandlers[(short)VMEODPizzaObjEvent.RespondBake]    = S_RespondBake;
        }
Ejemplo n.º 18
0
        public VMBasicEOD(VMEODServer server, string name) : base(server)
        {
            EODName = name;

            Lobby = new EODLobby <T>(server, 1)
                    .OnJoinSend(EODName + "_show")
                    .OnFailedToJoinDisconnect();

            PlaintextHandlers["close"] = Lobby.Close;
        }
Ejemplo n.º 19
0
 public VMEODWarGamePlugin(VMEODServer server) : base(server)
 {
     Players = NewGame();
     BinaryHandlers["WarGame_Piece_Selection"] = PieceSelectionHandler;
     PlaintextHandlers["WarGame_Close_UI"]     = OnCloseUIHandler;
     SimanticsHandlers[(short)VMEODWarGameEvents.NextRound] = NextRoundHandler;
     SimanticsHandlers[(short)VMEODWarGameEvents.NextGame]  = NextGameHandler;
     GameMessageTimer           = new Timer(5000);
     GameMessageTimer.Elapsed  += GameTieMessageHandler;
     RoundMessageTimer          = new Timer(5000);
     RoundMessageTimer.Elapsed += RoundTieMessageHandler;
 }
Ejemplo n.º 20
0
        public VMEODBandPlugin(VMEODServer server) : base(server)
        {
            Lobby = new EODLobby <VMEODBandSlot>(server, 4)
                    .BroadcastPlayersOnChange("Band_Players")
                    .OnFailedToJoinDisconnect();

            State                  = VMEODBandStates.Idle;
            SequenceTimer          = new Timer(MILLISECONDS_PER_NOTE_IN_SEQUENCE);
            SequenceTimer.Elapsed += SequenceTimerElapsedHandler;

            // event listeners
            BinaryHandlers["Band_Decision"] = RockOnOrSellOutHandler;
            BinaryHandlers["Band_Note"]     = NoteSelectedHandler;
            SimanticsHandlers[(short)VMEODBandEventTypes.NewGame]            = NewGameHandler;
            SimanticsHandlers[(short)VMEODBandEventTypes.AnimationsFinished] = AnimationsFinishedHandler;
        }
Ejemplo n.º 21
0
        private bool DisableRead = false; //don't have read permission

        #endregion Fields

        #region Constructors

        public VMEODSignsPlugin(VMEODServer server)
            : base(server)
        {
            //we have data. load from global server.
            server.vm.GlobalLink.LoadPluginPersist(server.vm, server.Object.PersistID, server.PluginID, (byte[] data) =>
            {
                lock (this)
                {
                    if (data == null)
                    {
                        Data = new VMEODSignsData();
                        Data.Flags = (ushort)(VMEODSignPermissionFlags.RoomieWrite | VMEODSignPermissionFlags.RoomieRead
                        | VMEODSignPermissionFlags.FriendRead | VMEODSignPermissionFlags.VisitorRead);
                    }
                    else Data = new VMEODSignsData(data);
                }
            });

            BinaryHandlers["set_message"] = B_SetMessage;
            PlaintextHandlers["close"] = P_Close;
        }
        public bool SentMessage = false; //if false and we have a message, send it to the client.

        public VMEODPermissionDoorPlugin(VMEODServer server) : base(server)
        {
            //we have data. load from global server.
            server.vm.GlobalLink.LoadPluginPersist(server.vm, server.Object.PersistID, server.PluginID, (byte[] data) =>
            {
                lock (this)
                {
                    Code = 0;
                    if (data != null)
                    {
                        uint.TryParse(System.Text.Encoding.UTF8.GetString(data), out var result);
                        Code = result;
                    }
                }
            });

            PlaintextHandlers["set_code"]  = P_SetCode;
            PlaintextHandlers["set_state"] = P_SetState;
            PlaintextHandlers["set_fee"]   = P_SetFee;
            PlaintextHandlers["set_flags"] = P_SetFlags;
            PlaintextHandlers["try_code"]  = P_TryCode;
            PlaintextHandlers["close"]     = P_Close;
        }
Ejemplo n.º 23
0
        private bool DisableRead = false; //don't have read permission

        public VMEODSignsPlugin(VMEODServer server) : base(server)
        {
            //we have data. load from global server.
            server.vm.GlobalLink.LoadPluginPersist(server.vm, server.Object.PersistID, server.PluginID, (byte[] data) =>
            {
                lock (this)
                {
                    if (data == null)
                    {
                        Data       = new VMEODSignsData();
                        Data.Flags = (ushort)(VMEODSignPermissionFlags.RoomieWrite | VMEODSignPermissionFlags.RoomieRead
                                              | VMEODSignPermissionFlags.FriendRead | VMEODSignPermissionFlags.VisitorRead);
                    }
                    else
                    {
                        Data = new VMEODSignsData(data);
                    }
                }
            });

            BinaryHandlers["set_message"] = B_SetMessage;
            PlaintextHandlers["close"]    = P_Close;
        }
Ejemplo n.º 24
0
 public VMEODStubPlugin(VMEODServer server)
     : base(server)
 {
 }
Ejemplo n.º 25
0
 public VMEODRackPlugin(VMEODServer server) : base(server)
 {
     PlaintextHandlers["rack_try_outfit_on"] = TryOutfitOn;
     PlaintextHandlers["rack_purchase"]      = Purchase;
 }
Ejemplo n.º 26
0
 public VMEODDanceFloorPlugin(VMEODServer server) : base(server)
 {
     PlaintextHandlers["close"]        = P_Close;
     PlaintextHandlers["press_button"] = P_DanceButton;
 }
Ejemplo n.º 27
0
        public VMEODGameCompDrawACardPlugin(VMEODServer server) : base(server)
        {
            // create a default deck until data is retrieved from the server
            Game = new CarducopiaDrawACardGame();

            // Initialize Mode to the unused mode of the plugin
            Mode = VMEODGameCompDrawACardModes.CopyDeck;

            // event listeners & handlers
            BinaryHandlers["DrawCard_Delete_Card"]    = DeleteCurrentCardHandler;
            BinaryHandlers["DrawCard_Edit_Frequency"] = SetCardFrequencyHandler;
            BinaryHandlers["DrawCard_Goto_Card"]      = GotoCardHandler;
            BinaryHandlers["DrawCard_Edit_Card"]      = EditCurrentCardHandler;
            BinaryHandlers["DrawCard_Add_Card"]       = PushNewCardHandler;
            BinaryHandlers["DrawCard_Edit_Game"]      = EditGameHandler;
            PlaintextHandlers["DrawCard_Close"]       = CloseHandler;

            // try to get the data from the server
            server.vm.GlobalLink.LoadPluginPersist(server.vm, server.Object.PersistID, server.PluginID, (byte[] data) =>
            {
                lock (this)
                {
                    if (data == null)
                    {
                        Data = new VMEODGameCompDrawACardData();
                        ResponseFromServer = true;
                    }
                    else
                    {
                        Data = new VMEODGameCompDrawACardData(data);
                        // make a new game based on the received data
                        Game = new CarducopiaDrawACardGame(Data);
                        // update the UI
                        ResponseFromServer = true;
                    }
                }
                if (!UIInitialized)
                {
                    switch (Mode)
                    {
                    case VMEODGameCompDrawACardModes.Manage:
                        {
                            UIInitialized = true;
                            UserClient.Send("DrawCard_Update_Deck", GetDeckListBoxData());
                            UserClient.Send("DrawCard_Update_Deck_Numbers", GetCardNumberData());
                            UserClient.Send("DrawCard_Manage", GetGameInfoMessage());
                            break;
                        }

                    case VMEODGameCompDrawACardModes.ViewCurrent:
                        {
                            UIInitialized = true;
                            // send the card matching the last index
                            UserClient.Send("DrawCard_Drawn", GetCurrentCardData());
                            break;
                        }

                    case VMEODGameCompDrawACardModes.ViewDeck:
                        {
                            UIInitialized = true;
                            UserClient.Send("DrawCard_Update_Deck_Numbers", GetCardNumberData());
                            UserClient.Send("DrawCard_Info", GetGameInfoMessage());
                            break;
                        }

                    case VMEODGameCompDrawACardModes.Draw:
                        {
                            UIInitialized = true;
                            // randomly draw a card
                            int index = DrawCard.Next(0, Game.UniqueCardCount);
                            Game.GotoCard(index);
                            DeckHasChanged = true;

                            // send new card text to UI
                            UserClient.Send("DrawCard_Drawn", GetCurrentCardData());
                            break;
                        }
                    }
                }
            });
        }
Ejemplo n.º 28
0
        public VMEODPizzaMakerPlugin(VMEODServer server)
            : base(server)
        {
            PopulateCards();
            PlaintextHandlers["close"] = P_Close;
            PlaintextHandlers["ingredient"] = P_Ingredient;

            SimanticsHandlers[(short)VMEODPizzaObjEvent.RespondPhone] = S_RespondPhone;
            SimanticsHandlers[(short)VMEODPizzaObjEvent.AllContributed] = S_AllContributed;
            SimanticsHandlers[(short)VMEODPizzaObjEvent.RespondBake] = S_RespondBake;
        }
Ejemplo n.º 29
0
 public VMEODFNewspaperPlugin(VMEODServer server) : base(server, "newspaper")
 {
 }
Ejemplo n.º 30
0
 public VMEODDanceFloorPlugin(VMEODServer server)
     : base(server)
 {
     PlaintextHandlers["close"] = P_Close;
     PlaintextHandlers["press_button"] = P_DanceButton;
 }
Ejemplo n.º 31
0
 public VMEODDJStationPlugin(VMEODServer server) : base(server)
 {
     PlaintextHandlers["close"]        = P_Close;
     PlaintextHandlers["press_button"] = P_DJButton;
 }
 public VMEODGameshowBuzzerPlayerPlugin(VMEODServer server) : base(server)
 {
     BinaryHandlers["Buzzer_Player_Buzzed"] = PlayerBuzzedHandler;
     SimanticsHandlers[(short)VMEODGameshowPlayerPluginEvents.Sync_Callback] = SyncCallbackHandler;
 }
Ejemplo n.º 33
0
 public VMEODAbstractGameshowBuzzerPlugin(VMEODServer server) : base(server)
 {
     SimanticsQueue = new List <VMEODEvent>();
 }
Ejemplo n.º 34
0
 public VMEODStubPlugin(VMEODServer server) : base(server)
 {
 }
Ejemplo n.º 35
0
 public EODPersist(VMEODServer server)
 {
     Server = server;
     Load();
 }