private static void TrySelectingTransformation(TransformationDefinition def, UIMouseEvent evt, UIElement listeningElement) { MyPlayer player = Main.LocalPlayer.GetModPlayer <MyPlayer>(); if (def.DoesShowInMenu(player) && player.PlayerTransformations.ContainsKey(def) && def.MeetsSelectionRequirements(player)) { SoundHelper.PlayVanillaSound(SoundID.MenuTick); if (player.SelectedTransformation != def) { player.SelectedTransformation = def; Main.NewText($"Selected {def.Text}, Mastery: {Math.Round(100f * def.GetPlayerMastery(player), 2)}%"); } else { Main.NewText($"{def.Text} Mastery: {Math.Round(100f * def.GetPlayerMastery(player), 2)}%"); } } else if (def.SelectionRequirementsFailed.Invoke(player, def)) { SoundHelper.PlayVanillaSound(SoundID.MenuClose); if (def.FailureText == null) { return; } Main.NewText(def.FailureText); } }