예제 #1
0
        public void AddAvatarButtonList(List <AvatarMetadata> metadataList)
        {
            avatarButtonList.Clear();

            const int offsetX = 108;
            const int offsetY = 86;

            for (int i = 0; i < 25 && i < metadataList.Count(); i++)
            {
                AvatarButton button = new AvatarButton(
                    new Vector2(-95, -175) + new Vector2(offsetX * (i % 5), offsetY * (i / 5)),
                    metadataList[i], AvatarButtonAction, DepthParameter.InterfaceButton);

                button.HideEquippedIndicator();

                if (searchFilter.IsRenderingInventory)
                {
                    if (inventoryRiderPreview.GetEquippedAvatarID(metadataList[i].AvatarCategory) == metadataList[i].ID)
                    {
                        button.ShowEquippedIndicator();
                    }
                }
                else
                {
                    if (shopRiderPreview.GetEquippedAvatarID(metadataList[i].AvatarCategory) == metadataList[i].ID)
                    {
                        button.ShowEquippedIndicator();
                    }
                }

                avatarButtonList.Add(button);
            }
        }
예제 #2
0
        public PopupBuyAvatar(AvatarMetadata avatarMetadata, Action <object> onClose, Action <object> onBuyCash, Action <object> onBuyGold) : base(false)
        {
            Background = new Sprite("Interface/Popup/Blue/Avatar/Buy", layerDepth: DepthParameter.InterfacePopupBackground);

            avatarButton = new AvatarButton(new Vector2(0, -70), avatarMetadata, (o) => { avatarButton.Disable(); avatarButton.Enable(); }, DepthParameter.InterfacePopupButtons);

            onClose += (o) => { Destroy(); };
            buttonList.Add(new Button(ButtonType.Cancel, DepthParameter.InterfacePopupMessageButtons, onClose, PositionOffset + new Vector2(95, 125)));

            spriteTextList.Add(
                new SpriteText(
                    FontTextType.Consolas10, Language.PopupTextConfirmPuchase,
                    Color.White, Alignment.Center, DepthParameter.InterfacePopupText,
예제 #3
0
        /// <summary>
        /// This action is meant for avatar inventory and shop buttons.
        /// </summary>
        private void AvatarButtonAction(object sender)
        {
            AvatarButton avatarButton = (AvatarButton)sender;

            selectedAvatarMetadata = avatarButton.AvatarMetadata;

            // If it is a inventory button
            if (searchFilter.IsRenderingInventory)
            {
                // Equip
                player.EquipAvatar(selectedAvatarMetadata.AvatarCategory, selectedAvatarMetadata.ID);

                // Update Equipped
                avatarButtonList.ForEach((x) => x.HideEquippedIndicator());
                avatarButton.ShowEquippedIndicator();

                inventoryRiderPreview.ReplaceAvatar(selectedAvatarMetadata);
                inventoryInGamePreview.ReplaceAvatar(selectedAvatarMetadata);

                tryButton.Disable(true);
                buyButton.Disable(true);

                return;
            }

            // If it isn't an inventory button
            avatarButtonList.ForEach((x) => { x.Disable(); x.Enable(); });
            avatarButton.ChangeButtonState(ButtonAnimationState.Activated, true);

            if (shopRiderPreview.GetEquippedAvatarID(selectedAvatarMetadata.AvatarCategory) != selectedAvatarMetadata.ID)
            {
                tryButton.Enable();
            }
            else
            {
                tryButton.Disable(true);
            }

            if (player.Gold >= selectedAvatarMetadata.GoldPrice ||
                player.Cash >= selectedAvatarMetadata.CashPrice)
            {
                if (!player.OwnedAvatar[selectedAvatarMetadata.AvatarCategory].Contains(selectedAvatarMetadata.ID))
                {
                    buyButton.Enable();
                }
                else
                {
                    buyButton.Disable(true);
                }
            }
        }
예제 #4
0
 public void ClickOnAvatarButton()
 {
     WaitHelper.WaitForElementAccessable(AvatarButton, WaitHelper.DefaultTimeOutMilliseconds);
     AvatarButton.Click();
 }