예제 #1
0
    private void UpdateDungeonKeyInterface(List <DungeonKey> currencyList)
    {
        for (var currencyRarityValue = 0; currencyRarityValue < currencyList.Count; currencyRarityValue++)
        {
            var currencyPanel = new StackPanel
            {
                Orientation         = Orientation.Horizontal,
                Margin              = new Thickness(0, 0, 60, 0),
                HorizontalAlignment = HorizontalAlignment.Right,
                Background          = new SolidColorBrush(Colors.Transparent)
            };

            var currencyAmountTextBlock = new TextBlock
            {
                Name              = "Ingot" + currencyRarityValue,
                FontSize          = 18,
                VerticalAlignment = VerticalAlignment.Center
            };

            var currencyAmountBinding = new Binding("Quantity")
            {
                Source       = currencyList[currencyRarityValue],
                StringFormat = "{0}   "
            };
            currencyAmountTextBlock.SetBinding(TextBlock.TextProperty, currencyAmountBinding);

            currencyPanel.Children.Add(currencyAmountTextBlock);
            currencyPanel.Children.Add(GenerateCurrencyIcon <DungeonKey>(currencyRarityValue));

            IngotKeyGrid.Children.Add(currencyPanel);

            Grid.SetColumn(currencyPanel, 1);
            Grid.SetRow(currencyPanel, currencyRarityValue);

            currencyPanel.ToolTip = ItemToolTipHelper.GenerateCurrencyToolTip <DungeonKey>(currencyRarityValue);
        }
    }
예제 #2
0
    public void GenerateRewardsInterface()
    {
        foreach (var rewardPattern in _quest.QuestRewardPatterns)
        {
            var panel = new StackPanel
            {
                Orientation         = Orientation.Horizontal,
                HorizontalAlignment = HorizontalAlignment.Center,
                Margin = new Thickness(0, 0, 0, 5)
            };

            var rewardIcon = new PackIcon
            {
                Width             = 30,
                Height            = 30,
                VerticalAlignment = VerticalAlignment.Center
            };

            var rewardText = new TextBlock
            {
                FontSize          = 22,
                VerticalAlignment = VerticalAlignment.Center
            };

            ToolTip toolTip = null;

            SolidColorBrush rewardColor = null;

            switch (rewardPattern.QuestRewardType)
            {
            case RewardType.Material:
                var material = GameAssets.Materials.FirstOrDefault(x => x.Id == rewardPattern.QuestRewardId);

                toolTip = ItemToolTipHelper.GenerateItemToolTip(material);

                rewardIcon.Kind = PackIconKind.Cog;

                rewardText.Text = $"{rewardPattern.Quantity}x {material.Name}";

                rewardColor = ColorsHelper.GetRarityColor(material.Rarity);

                break;

            case RewardType.Recipe:
                var recipe = GameAssets.Recipes.FirstOrDefault(x => x.Id == rewardPattern.QuestRewardId);

                toolTip = ItemToolTipHelper.GenerateItemToolTip(recipe);

                rewardIcon.Kind = PackIconKind.ScriptText;

                rewardText.Text = $"{rewardPattern.Quantity}x {recipe.Name}";

                rewardColor = ColorsHelper.GetRarityColor(recipe.Rarity);

                break;

            case RewardType.Artifact:
                var artifact = GameAssets.Artifacts.FirstOrDefault(x => x.Id == rewardPattern.QuestRewardId);

                toolTip = ItemToolTipHelper.GenerateItemToolTip(artifact);

                rewardIcon.Kind = PackIconKind.DiamondStone;

                rewardText.Text = $"{rewardPattern.Quantity}x {artifact.Name}";

                rewardColor = ColorsHelper.GetRarityColor(artifact.Rarity);

                break;

            case RewardType.Blessing:
                var blessing = GameAssets.Blessings.FirstOrDefault(x => x.Id == rewardPattern.QuestRewardId);

                toolTip = ItemToolTipHelper.GenerateBlessingToolTip(blessing);

                rewardIcon.Kind = PackIconKind.BookCross;

                rewardText.Text = $"{blessing.Name}";

                rewardColor = ColorsHelper.GetRarityColor(blessing.Rarity);

                break;

            case RewardType.Ingot:
                var ingot = GameAssets.Ingots.FirstOrDefault(x => x.Id == rewardPattern.QuestRewardId);

                toolTip = ItemToolTipHelper.GenerateCurrencyToolTip <Ingot>((int)ingot.Rarity);

                rewardIcon.Kind = PackIconKind.Gold;

                rewardText.Text = $"{rewardPattern.Quantity}x {ingot.Name}";

                rewardColor = ColorsHelper.GetRarityColor(ingot.Rarity);

                break;
            }

            rewardIcon.Foreground = rewardColor;
            rewardText.Foreground = rewardColor;

            panel.Children.Add(rewardIcon);
            panel.Children.Add(rewardText);

            panel.ToolTip = toolTip;

            RewardsPanel.Children.Add(panel);
        }
    }