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); } }
public static FText GetNameText(this EFortRarity rarity) => rarity switch {