コード例 #1
0
        /// <summary>
        /// Checks if a new table should be moved to the active spot
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void moveTables_Tick(object sender, System.EventArgs e)
        {
            // Check for lobby minimizing
            if (Settings.KeepLobbyMinimized)
            {
                foreach (PartyLobby lobby in pokerLobbies.Values)
                {
                    lobby.MinimizeWindow();
                }
            }

            // Check for lobby opening
            if (Settings.KeepLobbyOpened)
            {
                foreach (PartyLobby lobby in pokerLobbies.Values)
                {
                    lobby.OpenWindow();
                }
            }

            // Update tables
            try
            {
                foreach (PokerTable table in pokerTables.Values)
                {
                    table.InvokeActionTick();
                }
            }
            catch
            {
            }

            // Check if any tables are unpositioned, and if autoarrange is on
            if (Settings.AutoArrangeTables)
            {
                foreach (PokerTable table in pokerTables.Values)
                {
                    if (!disabledTables.ContainsKey(table.Handle))
                    {
                        if (table.Quadrant == 0 || (table.IsSittingOut && table.Quadrant != Settings.NonSeatedTableQuadrant && Settings.PlaceUnseatedTablesAtSpecialLocation) || (!table.IsSittingOut && table.Quadrant == Settings.NonSeatedTableQuadrant && Settings.PlaceUnseatedTablesAtSpecialLocation))
                        {
                            // Don't arrange tables while SNG Opener is open
                            if (!SuspendMovement)
                            {
                                if ((!table.IsSeated() || table.IsSittingOut) && Settings.PlaceUnseatedTablesAtSpecialLocation)
                                {
                                    table.MoveToQuadrant(Settings.GetQuad(Settings.NonSeatedTableQuadrant), false);
                                }
                                else
                                {
                                    moveTableToFreeQuadrant(table.Handle, 0);
                                }
                            }
                        }
                    }
                }
            }

            // If there isn't an active table righ now
            if (!pokerTables.ContainsKey(activeTable) && actionQueue.Count > 0)
            {
                // Get the first in line table
                PokerTable table = pokerTables[actionQueue[0]];

                // Move any tables currently occupying the active location, unless it's the table that's now active
                if (Settings.MoveActiveTable && table.Quadrant != Settings.ActiveTableQuadrant)
                {
                    removeTableFromActiveQuadrant(table.Quadrant);
                }

                // Remove it from the queue
                if (actionQueue.Count > 0)
                {
                    actionQueue.RemoveAt(0);
                }

                // Move it to the active quadrant
                if (Settings.MoveActiveTable)
                {
                    table.MoveToQuadrant(Settings.GetQuad(Settings.ActiveTableQuadrant), true);
                }

                // Update activeTable
                activeTable = table.Handle;

                // Log table activation
                Log.Write(table.Name);

                // Start forceActivation timer
                if (Settings.ForceActiveTableToBeTopmost)
                {
                    tableOnTopTimer.Enabled = true;
                }

                // Move mouse to table if wanted
                if (Settings.MoveCursorToActiveTable)
                {
                    // Get the current table position
                    Point pos = table.GetPosition();

                    // Only move the mouse if it's outside the table area
                    if (Cursor.Position.X < pos.X || Cursor.Position.X > pos.X + table.Width || Cursor.Position.Y < pos.Y || Cursor.Position.Y > pos.Y + table.Height)
                    {
                        table.MoveCursorToTable();
                    }
                }

                // Notify the table that it's been activated
                table.HasBeenActivated();
            }
        }
コード例 #2
0
        // Fires when a key has been pressed, used in conjunction with keyboard controls
        private void MyKeyDown(object sender, KeyEventArgs e)
        {
            if (Settings.RequireNumLock)
            {
                if (!Win32.NumLock())
                {
                    return;
                }
            }

            if (Settings.RequireCapsLock)
            {
                if (!Win32.CapsLock())
                {
                    return;
                }
            }

            if (Settings.UseKeyboardControls)
            {
                string keyCode = GetKeyCode(e);

                // Do we have an active table?
                if (pokerTables.ContainsKey(activeTable))
                {
                    PokerTable table = (PokerTable)pokerTables[activeTable];

                    switch (keyCode)
                    {
                    case "back":
                        string txt = table.GetRaiseValue();

                        if (txt.Length > 0)
                        {
                            table.SetRaiseValue(txt.Substring(0, txt.Length - 1));
                        }
                        break;

                    case "0":
                        table.SetRaiseValue(table.GetRaiseValue() + "0");
                        break;

                    case "1":
                        table.SetRaiseValue(table.GetRaiseValue() + "1");
                        break;

                    case "2":
                        table.SetRaiseValue(table.GetRaiseValue() + "2");
                        break;

                    case "3":
                        table.SetRaiseValue(table.GetRaiseValue() + "3");
                        break;

                    case "4":
                        table.SetRaiseValue(table.GetRaiseValue() + "4");
                        break;

                    case "5":
                        table.SetRaiseValue(table.GetRaiseValue() + "5");
                        break;

                    case "6":
                        table.SetRaiseValue(table.GetRaiseValue() + "6");
                        break;

                    case "7":
                        table.SetRaiseValue(table.GetRaiseValue() + "7");
                        break;

                    case "8":
                        table.SetRaiseValue(table.GetRaiseValue() + "8");
                        break;

                    case "9":
                        table.SetRaiseValue(table.GetRaiseValue() + "9");
                        break;

                    case ".":
                        table.SetRaiseValue(table.GetRaiseValue() + ".");
                        break;
                    }

                    // Check / call
                    if (keyCode == Settings.CheckCallKeyCode)
                    {
                        table.CheckCall();
                    }

                    // Bet / raise
                    if (keyCode == Settings.BetRaiseKeyCode)
                    {
                        table.BetRaise();
                    }

                    // Fold
                    if (keyCode == Settings.FoldKeyCode)
                    {
                        table.Fold();
                    }

                    // Auto push
                    if (keyCode == Settings.AutoPushKeyCode)
                    {
                        table.AutoPush();
                    }

                    // Move cursor to active table
                    if (keyCode == Settings.MoveCursorToActiveTableKeyCode)
                    {
                        table.MoveCursorToTable();
                    }
                }

                // Generic keyboard control functions
                // Rearrange tables
                if (keyCode == Settings.RearrangeTablesKeyCode)
                {
                    rearrangeTables();
                }

                // Toggle force table to top
                if (keyCode == Settings.ForceActiveTableTopmostKeyCode)
                {
                    Settings.ForceActiveTableToBeTopmost = !Settings.ForceActiveTableToBeTopmost;
                }

                // Toggle lobby opened/minimized
                if (keyCode == Settings.ToggleLobbyKeyCode)
                {
                    if (Settings.KeepLobbyMinimized || (!Settings.KeepLobbyOpened))
                    {
                        Settings.KeepLobbyMinimized = false;
                        Settings.KeepLobbyOpened    = true;
                    }
                    else if (Settings.KeepLobbyOpened)
                    {
                        Settings.KeepLobbyMinimized = true;
                        Settings.KeepLobbyOpened    = false;
                    }
                }
            }
        }