public override void Update(GameTime gameTime) { base.Update(gameTime); DBTPlayer dbtPlayer = Main.LocalPlayer.GetModPlayer <DBTPlayer>(); foreach (KeyValuePair <TransformationDefinition, UIImagePair> kvp in _transformationImagePairs) { TransformationDefinition definition = kvp.Key; bool canAcquire = definition.CheckPrePlayerConditions() && definition.BaseConditions(dbtPlayer); bool currentlyUnlockable = kvp.Key.CanUnlock(dbtPlayer); bool visible = kvp.Key.DoesDisplayInCharacterMenu(dbtPlayer); bool unlocked = dbtPlayer.HasAcquiredTransformation(kvp.Key); if (!canAcquire || !visible) { kvp.Value.button.Width = StyleDimension.Empty; kvp.Value.button.Height = StyleDimension.Empty; kvp.Value.button.SetVisibility(0f, 0f); } if (canAcquire) { kvp.Value.unknownImage.ImageScale = !visible ? 0f : (!currentlyUnlockable ? 0f : (unlocked ? 0f : 1f)); kvp.Value.unknownImageGray.ImageScale = !visible ? 0f : currentlyUnlockable && dbtPlayer.HasAcquiredTransformation(kvp.Key) ? 0f : 1f; kvp.Value.lockedImage.ImageScale = !visible ? 0f : unlocked || currentlyUnlockable ? 0f : 1f; } } // Disabled as it crashes with SpriteBatch. /*for (int i = 0; i < _polyLinesToDraw.Count; i++) * if (_polyLinesToDraw[i].Length > 1) * Main.spriteBatch.DrawPolyLine(_polyLinesToDraw[i], Color.White);*/ }
private void TrySelectingTransformation(TransformationDefinition def, UIMouseEvent evt, UIElement listeningElement) { DBTPlayer dbtPlayer = Main.LocalPlayer.GetModPlayer <DBTPlayer>(); DrawInfoPanel(def); if (def.CheckPrePlayerConditions() && dbtPlayer.HasAcquiredTransformation(def) && def.BaseConditions(dbtPlayer)) { // TODO Add sounds. //SoundHelper.PlayVanillaSound(SoundID.MenuTick); if (!dbtPlayer.SelectedTransformations.Contains(def)) { dbtPlayer.SelectTransformation(def); Main.NewText($"Selected {def.DisplayName}, Mastery: {Math.Round(def.GetMaxMastery(dbtPlayer) * def.GetCurrentMastery(dbtPlayer), 2)}%"); } else { Main.NewText($"{def.DisplayName} Mastery: {Math.Round(100f * def.GetCurrentMastery(dbtPlayer), 2)}%"); } } }