예제 #1
0
        public static void GetInGameRarity(BaseIcon icon, EnumProperty e)
        {
            Package p = Utils.GetPropertyPakPackage("/Game/Balance/RarityData");

            if (p != null && p.HasExport())
            {
                var d = p.GetExport <UObject>();
                if (d != null)
                {
                    EFortRarity rarity = EFortRarity.Uncommon;
                    switch (e?.Value.String)
                    {
                    case "EFortRarity::Common":
                    case "EFortRarity::Handmade":
                        rarity = EFortRarity.Common;
                        break;

                    case "EFortRarity::Rare":
                    case "EFortRarity::Sturdy":
                        rarity = EFortRarity.Rare;
                        break;

                    case "EFortRarity::Epic":
                    case "EFortRarity::Quality":
                        rarity = EFortRarity.Epic;
                        break;

                    case "EFortRarity::Legendary":
                    case "EFortRarity::Fine":
                        rarity = EFortRarity.Legendary;
                        break;

                    case "EFortRarity::Mythic":
                    case "EFortRarity::Elegant":
                        rarity = EFortRarity.Mythic;
                        break;

                    case "EFortRarity::Transcendent":
                    case "EFortRarity::Masterwork":
                        rarity = EFortRarity.Transcendent;
                        break;

                    case "EFortRarity::Unattainable":
                    case "EFortRarity::Badass":
                        rarity = EFortRarity.Unattainable;
                        break;
                    }

                    if (d.Values.ElementAt((int)rarity) is StructProperty s && s.Value is UObject colors)
                    {
                        if (colors.TryGetValue("Color1", out var c1) && c1 is StructProperty s1 && s1.Value is FLinearColor color1 &&
                            colors.TryGetValue("Color2", out var c2) && c2 is StructProperty s2 && s2.Value is FLinearColor color2 &&
                            colors.TryGetValue("Color3", out var c3) && c3 is StructProperty s3 && s3.Value is FLinearColor color3)
                        {
                            icon.RarityBackgroundColors = new SKColor[2] {
                                SKColor.Parse(color1.Hex), SKColor.Parse(color3.Hex)
                            };
                            icon.RarityBorderColor = new SKColor[2] {
                                SKColor.Parse(color2.Hex), SKColor.Parse(color1.Hex)
                            };
                        }
                    }
                }
            }
            else
            {
                GetHardCodedRarity(icon, e);
            }
        }
예제 #2
0
 public static FText GetNameText(this EFortRarity rarity) => rarity switch
 {