Exemple #1
0
            /// <summary>
            /// Initializes a new instance of the <see cref="PeerTradeSidePanel"/> class.
            /// </summary>
            /// <param name="parent">The parent.</param>
            /// <param name="position">The position.</param>
            /// <param name="isSourceSide">If this control handles the source character's side.</param>
            public PeerTradeSidePanel(PeerTradeFormBase <TChar, TItem, TItemInfo> parent, Vector2 position, bool isSourceSide)
                : base(parent, position, Vector2.One)
            {
                _isSourceSide  = isSourceSide;
                _peerTradeForm = parent;

                ResizeToChildren = true;

                // Create the title label
                _title = new Label(this, Vector2.Zero)
                {
                    Text = (isSourceSide ? "Source" : "Target"), AutoResize = false
                };
                _title.ClientSize = new Vector2(_title.ClientSize.X, _title.Font.DefaultSize);

                // Create the slots
                var slotSize   = Vector2.Zero;
                var slotOffset = new Vector2(0, Title.Size.Y + 4);

                for (var i = 0; i < PeerTradingSettings.Instance.MaxTradeSlots; i++)
                {
                    var slotControl = CreateItemSlotControl(slotOffset, ItemSlotClientSize, new InventorySlot(i));

                    // If this is the first control we created, use it to determine the size of the slot controls
                    if (slotSize == Vector2.Zero)
                    {
                        slotSize = slotControl.Size;
                    }

                    // Update the slot offset, resetting the row to the start
                    if ((i > 0) && ((i + 1) % ItemSlotColumns == 0))
                    {
                        // Start new row below
                        slotOffset.X  = 0;
                        slotOffset.Y += slotSize.Y + ItemSlotPadding.Y;
                    }
                    else
                    {
                        // Move to the right on the existing row
                        slotOffset.X += slotSize.X + ItemSlotPadding.X;
                    }
                }

                // Create the accept label
                _acceptedLabel = new Label(this, new Vector2(0, ClientSize.Y))
                {
                    Text = "Not Accepted", AutoResize = false
                };
                AcceptedLabel.ClientSize = new Vector2(AcceptedLabel.ClientSize.X, AcceptedLabel.Font.DefaultSize);
                AcceptedLabel.Position   = new Vector2(ClientSize.X - AcceptedLabel.ClientSize.X, ClientSize.Y);

                // Create the cash label
                CreateCashLabel(new Vector2(0, AcceptedLabel.Position.Y));

                PeerTradeForm.SetupTradePanelControl(this);
            }
Exemple #2
0
        /// <summary>
        /// Initializes the GUI components.
        /// </summary>
        void InitializeGUI()
        {
            // Set up the fonts
            _guiFont = GameScreenHelper.DefaultGameGUIFont;
            GUIManager.Font = _guiFont;
            GUIManager.Tooltip.Font = _guiFont;
            Character.NameFont = _guiFont;

            _cScreen = new Panel(GUIManager, Vector2.Zero, ScreenManager.ScreenSize) { CanFocus = true };

            // Set up all the forms used by this screen
            _statsForm = new StatsForm(UserInfo, _cScreen);
            _statsForm.RequestRaiseStat += StatsForm_RequestRaiseStat;

            _inventoryForm = new InventoryForm(_dragDropHandler, x => x == UserInfo.Inventory, InventoryInfoRequester,
                new Vector2(250, 0), _cScreen);
            _inventoryForm.RequestDropItem += InventoryForm_RequestDropItem;
            _inventoryForm.RequestUseItem += InventoryForm_RequestUseItem;

            _shopForm = new ShopForm(_dragDropHandler, new Vector2(250, 0), _cScreen);
            _shopForm.RequestPurchase += ShopForm_RequestPurchase;

            _skillsForm = new SkillsForm(SkillCooldownManager, new Vector2(100, 0), _cScreen, UserInfo.KnownSkills);
            _skillsForm.RequestUseSkill += SkillsForm_RequestUseSkill;

            _infoBox = new InfoBox(GameData.ScreenSize - new Vector2(5, 5), _guiFont);

            _equippedForm = new EquippedForm(_dragDropHandler, EquipmentInfoRequester, new Vector2(500, 0), _cScreen);
            _equippedForm.RequestUnequip += EquippedForm_RequestUnequip;

            _chatForm = new ChatForm(_cScreen, new Vector2(0, _cScreen.Size.Y));
            _chatForm.Say += ChatForm_Say;

            _chatDialogForm = new NPCChatDialogForm(new Vector2(50, 50), _cScreen);
            _chatDialogForm.SelectResponse += ChatDialogForm_SelectResponse;
            _chatDialogForm.RequestEndDialog += ChatDialogForm_RequestEndDialog;

            _statusEffectsForm = new StatusEffectsForm(_cScreen, new Vector2(_cScreen.Size.X, 0), this);

            _quickBarForm = new QuickBarForm(this, _cScreen, _cScreen.Position);

            _guildForm = new GuildForm(_cScreen, new Vector2(100, 100)) { GuildInfo = UserInfo.GuildInfo, IsVisible = false };
            _guildForm.JoinRequested += _guildForm_JoinRequested;
            _guildForm.LeaveRequested += _guildForm_LeaveRequested;

            _groupForm = new GroupForm(_cScreen, new Vector2(50, 350), new Vector2(150, 150)) { GroupInfo = UserInfo.GroupInfo };

            Func<QuestID, bool> questStartReqs = x => UserInfo.HasStartQuestRequirements.HasRequirements(x) ?? false;
            Func<QuestID, bool> questFinishReqs =
                x =>
                UserInfo.QuestInfo.ActiveQuests.Contains(x) && (UserInfo.HasFinishQuestRequirements.HasRequirements(x) ?? false);
            _availableQuestsForm = new AvailableQuestsForm(_cScreen, new Vector2(200), new Vector2(250, 350), questStartReqs,
                questFinishReqs);
            _availableQuestsForm.QuestAccepted += availableQuestsForm_QuestAccepted;

            _latencyLabel = new Label(_cScreen, new Vector2(_cScreen.ClientSize.X - 75, 5))
            { Text = string.Format(_latencyString, 0), ForeColor = Color.White };

            _skillCastProgressBar = new SkillCastProgressBar(_cScreen);

            var toolbar = new Toolbar(_cScreen, new Vector2(200, 200));
            toolbar.ItemClicked += Toolbar_ItemClicked;

            var gameMenu = new GameMenuForm(_cScreen);
            gameMenu.ClickedLogOut += GameMenuClickedLogOut;

            _peerTradeForm = new PeerTradeForm(_cScreen, new Vector2(200))
            { PeerTradeInfoHandler = Socket.PacketHandler.PeerTradeInfoHandler };

            // Add the forms to the GUI settings manager (which also restores any existing settings)
            _guiStatePersister = new GUIStatePersister("Default"); // FUTURE: Allow changing of the profile
            _guiStatePersister.Add("InventoryForm", _inventoryForm);
            _guiStatePersister.Add("EquippedForm", _equippedForm);
            _guiStatePersister.Add("StatsForm", _statsForm);
            _guiStatePersister.Add("ChatForm", _chatForm);
            _guiStatePersister.Add("ToolbarForm", toolbar);
            _guiStatePersister.Add("GuildForm", _guildForm);
            _guiStatePersister.Add("StatusEffectsForm", _statusEffectsForm);
            _guiStatePersister.Add("SkillsForm", _skillsForm);
            _guiStatePersister.Add("QuickBarForm", _quickBarForm);
            _guiStatePersister.Add("PeerTradeForm", _peerTradeForm);

            // Set the focus to the screen container
            _cScreen.SetFocus();
        }