예제 #1
0
        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);*/
        }
예제 #2
0
        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)}%");
                }
            }
        }