/// <summary>
        /// Updates the pivot.
        /// </summary>
        public void UpdatePivot()
        {
            // Get the mouse position
            Vector3 targetPosition = Input.mousePosition;

            // Determine which corner of the screen is closest to the mouse position
            Vector2 corner = new Vector2(
                ((targetPosition.x > (Screen.width / 2f)) ? 1f : 0f),
                ((targetPosition.y > (Screen.height / 2f)) ? 1f : 0f)
                );

            // Set the pivot
            this.SetPivot(UITooltip.VectorPivotToCorner(corner));
        }
Exemplo n.º 2
0
        protected virtual void Awake()
        {
            // Save instance reference
            mInstance = this;

            // Get the rect transform
            this.m_Rect = this.gameObject.GetComponent <RectTransform>();

            // Get the canvas group
            this.m_CanvasGroup = this.gameObject.GetComponent <CanvasGroup>();

            // Get the content size fitter
            this.m_SizeFitter = this.gameObject.GetComponent <ContentSizeFitter>();
        }
        /// <summary>
        /// Raises the tooltip event.
        /// </summary>
        /// <param name="show">If set to <c>true</c> show.</param>
        public virtual void OnTooltip(bool show)
        {
            if (!this.enabled || !this.IsActive())
            {
                return;
            }

            UITooltip.InstantiateIfNecessary(this.gameObject);

            // If we are showing the tooltip
            if (show)
            {
                // Set the title if not empty
                if (!string.IsNullOrEmpty(this.m_Title))
                {
                    UITooltip.AddTitle(this.m_Title);
                }

                // Spacer
                if (!string.IsNullOrEmpty(this.m_Title) && !string.IsNullOrEmpty(this.m_Description))
                {
                    UITooltip.AddSpacer();
                }

                // Set description if not empty
                if (!string.IsNullOrEmpty(this.m_Description))
                {
                    UITooltip.AddDescription(this.m_Description);
                }

                // Anchor to this slot
                if (this.m_Position == Position.Anchored)
                {
                    UITooltip.AnchorToRect(this.transform as RectTransform);
                }

                // Show the tooltip
                UITooltip.Show();
            }
            else
            {
                // Hide the tooltip
                UITooltip.Hide();
            }
        }
        /// <summary>
        /// Prepares the tooltip with the specified item info.
        /// </summary>
        /// <param name="itemInfo">Item info.</param>
        public static void PrepareTooltip(UIItemInfo itemInfo)
        {
            if (itemInfo == null)
            {
                return;
            }

            // Set the title and description
            UITooltip.AddTitle("<color=#" + UIItemQualityColor.GetHexColor(itemInfo.Quality) + ">" + itemInfo.Name + "</color>");

            // Spacer
            UITooltip.AddSpacer();

            // Item types
            UITooltip.AddLineColumn(itemInfo.Type, "ItemAttribute");
            UITooltip.AddLineColumn(itemInfo.Subtype, "ItemAttribute");

            if (itemInfo.ItemType == 1)
            {
                UITooltip.AddLineColumn(itemInfo.Damage.ToString() + " Damage", "ItemAttribute");
                UITooltip.AddLineColumn(itemInfo.AttackSpeed.ToString("0.0") + " Attack speed", "ItemAttribute");

                UITooltip.AddLine("(" + ((float)itemInfo.Damage / itemInfo.AttackSpeed).ToString("0.0") + " damage per second)", "ItemAttribute");
            }
            else
            {
                UITooltip.AddLineColumn(itemInfo.Armor.ToString() + " Armor", "ItemAttribute");
                UITooltip.AddLineColumn(itemInfo.Block.ToString() + " Block", "ItemAttribute");
            }

            UITooltip.AddSpacer();

            UITooltip.AddLine("+" + itemInfo.Stamina.ToString() + " Stamina", "ItemStat");
            UITooltip.AddLine("+" + itemInfo.Strength.ToString() + " Strength", "ItemStat");

            // Set the item description if not empty
            if (!string.IsNullOrEmpty(itemInfo.Description))
            {
                UITooltip.AddSpacer();
                UITooltip.AddLine(itemInfo.Description, "ItemDescription");
            }
        }
        /// <summary>
        /// Raises the pointer enter event.
        /// </summary>
        /// <param name="eventData">Event data.</param>
        public virtual void OnPointerEnter(PointerEventData eventData)
        {
            // Check if tooltip is enabled
            if (this.enabled && this.IsActive())
            {
                // Instantiate the tooltip now
                UITooltip.InstantiateIfNecessary(this.gameObject);

                // Start the tooltip delayed show coroutine
                // If delay is set at all
                if (this.m_Delay > 0f)
                {
                    this.StartCoroutine("DelayedShow");
                }
                else
                {
                    this.InternalShowTooltip();
                }
            }
        }
        protected virtual void Awake()
        {
            // Save instance reference
            mInstance = this;

            // Get the rect transform
            this.m_Rect = this.gameObject.GetComponent <RectTransform>();

            // Get the canvas group
            this.m_CanvasGroup = this.gameObject.GetComponent <CanvasGroup>();

            // Make sure the tooltip does not block raycasts
            this.m_CanvasGroup.blocksRaycasts = false;
            this.m_CanvasGroup.interactable   = false;

            // Get the content size fitter
            this.m_SizeFitter = this.gameObject.GetComponent <ContentSizeFitter>();

            // Prepare the content size fitter
            this.m_SizeFitter.verticalFit = ContentSizeFitter.FitMode.PreferredSize;

            // Prepare the vertical layout group
            VerticalLayoutGroup vlg = this.gameObject.GetComponent <VerticalLayoutGroup>();

            vlg.childControlHeight = true;
            vlg.childControlWidth  = true;

            // Make sure we have the always on top component
            UIAlwaysOnTop aot = this.gameObject.GetComponent <UIAlwaysOnTop>();

            if (aot == null)
            {
                aot       = this.gameObject.AddComponent <UIAlwaysOnTop>();
                aot.order = UIAlwaysOnTop.TooltipOrder;
            }

            // Hide
            this.SetAlpha(0f);
            this.m_VisualState = VisualState.Hidden;
            this.InternalOnHide();
        }
        /// <summary>
        /// Raises the tooltip event.
        /// </summary>
        /// <param name="show">If set to <c>true</c> show.</param>
        public override void OnTooltip(bool show)
        {
            UITooltip.InstantiateIfNecessary(this.gameObject);

            // Handle unassigned
            if (!this.IsAssigned())
            {
                // If we are showing the tooltip
                if (show)
                {
                    UITooltip.AddTitle(UIEquipSlot.EquipTypeToString(this.m_EquipType));
                    UITooltip.SetHorizontalFitMode(ContentSizeFitter.FitMode.PreferredSize);
                    UITooltip.AnchorToRect(this.transform as RectTransform);
                    UITooltip.Show();
                }
                else
                {
                    UITooltip.Hide();
                }
            }
            else
            {
                // Make sure we have spell info, otherwise game might crash
                if (this.m_ItemInfo == null)
                {
                    return;
                }

                // If we are showing the tooltip
                if (show)
                {
                    UIItemSlot.PrepareTooltip(this.m_ItemInfo);
                    UITooltip.AnchorToRect(this.transform as RectTransform);
                    UITooltip.Show();
                }
                else
                {
                    UITooltip.Hide();
                }
            }
        }
        /// <summary>
        /// Updates the tooltip position.
        /// </summary>
        public virtual void UpdatePositionAndPivot()
        {
            // Update the tooltip position to the mosue position
            // If the tooltip is not anchored to a target
            // Anchored position should be updated after updating the pivot
            if (this.m_AnchorToTarget == null)
            {
                // Convert the offset based on the pivot
                Vector3 pivotBasedOffset = new Vector3(((this.m_Rect.pivot.x == 1f) ? (this.m_Offset.x * -1f) : this.m_Offset.x),
                                                       ((this.m_Rect.pivot.y == 1f) ? (this.m_Offset.y * -1f) : this.m_Offset.y), 0f);

                // Update the position including the offset
                this.m_Rect.position = pivotBasedOffset + Input.mousePosition;
            }

            // Update the tooltip pivot
            this.UpdatePivot();

            // Check if we are anchored to a rect
            if (this.m_AnchorToTarget != null)
            {
                // Set the anchor position to the opposite of the tooltip's pivot
                Vector3[] targetWorldCorners = new Vector3[4];
                this.m_AnchorToTarget.GetWorldCorners(targetWorldCorners);

                // Convert the tooltip pivot to corner
                Corner pivotCorner = UITooltip.VectorPivotToCorner(this.m_Rect.pivot);

                // Get the opposite corner of the pivot corner
                Corner oppositeCorner = UITooltip.GetOppositeCorner(pivotCorner);

                // Convert the offset based on the pivot
                Vector3 pivotBasedOffset = new Vector3(((this.m_Rect.pivot.x == 1f) ? (this.m_AnchoredOffset.x * -1f) : this.m_AnchoredOffset.x),
                                                       ((this.m_Rect.pivot.y == 1f) ? (this.m_AnchoredOffset.y * -1f) : this.m_AnchoredOffset.y), 0f);

                // Update the position
                this.transform.position = pivotBasedOffset + targetWorldCorners[(int)oppositeCorner];
            }
        }
Exemplo n.º 9
0
        /// <summary>
        /// Prepares the tooltip with the specified item info.
        /// </summary>
        /// <param name="itemInfo">Item info.</param>
        public static void PrepareTooltip(UIItemInfo itemInfo)
        {
            if (itemInfo == null)
            {
                return;
            }

            // Set the title and description
            UITooltip.AddTitle(itemInfo.Name);

            // Item types
            UITooltip.AddLineColumn(itemInfo.Type);
            UITooltip.AddLineColumn(itemInfo.Subtype);

            if (itemInfo.ItemType == 1)
            {
                UITooltip.AddLineColumn(itemInfo.Damage.ToString() + " Damage");
                UITooltip.AddLineColumn(itemInfo.AttackSpeed.ToString("0.0") + " Attack speed");

                UITooltip.AddLine("(" + ((float)itemInfo.Damage / itemInfo.AttackSpeed).ToString("0.0") + " damage per second)");
            }
            else
            {
                UITooltip.AddLineColumn(itemInfo.Block.ToString() + " Block");
                UITooltip.AddLineColumn(itemInfo.Armor.ToString() + " Armor");
            }

            UITooltip.AddLine("<color=#008000ff>+" + itemInfo.Stamina.ToString() + " Stamina</color>", new RectOffset(0, 0, 6, 0));
            UITooltip.AddLine("<color=#008000ff>+" + itemInfo.Strength.ToString() + " Strength</color>");

            // Set the item description if not empty
            if (!string.IsNullOrEmpty(itemInfo.Description))
            {
                UITooltip.AddDescription(itemInfo.Description);
            }
        }
Exemplo n.º 10
0
        public static void PrepareTooltip(UISpellInfo spellInfo)
        {
            // Make sure we have spell info, otherwise game might crash
            if (spellInfo == null)
            {
                return;
            }

            // Set the spell name as title
            UITooltip.AddTitle(spellInfo.Name);

            // Prepare some attributes
            if (spellInfo.Flags.Has(UISpellInfo_Flags.Passive))
            {
                UITooltip.AddLine("Passive");
            }
            else
            {
                // Power consumption
                if (spellInfo.PowerCost > 0f)
                {
                    if (spellInfo.Flags.Has(UISpellInfo_Flags.PowerCostInPct))
                    {
                        UITooltip.AddLineColumn(spellInfo.PowerCost.ToString("0") + "% Energy");
                    }
                    else
                    {
                        UITooltip.AddLineColumn(spellInfo.PowerCost.ToString("0") + " Energy");
                    }
                }

                // Range
                if (spellInfo.Range > 0f)
                {
                    if (spellInfo.Range == 1f)
                    {
                        UITooltip.AddLineColumn("Melee range");
                    }
                    else
                    {
                        UITooltip.AddLineColumn(spellInfo.Range.ToString("0") + " yd range");
                    }
                }

                // Cast time
                if (spellInfo.CastTime == 0f)
                {
                    UITooltip.AddLineColumn("Instant");
                }
                else
                {
                    UITooltip.AddLineColumn(spellInfo.CastTime.ToString("0.0") + " sec cast");
                }

                // Cooldown
                if (spellInfo.Cooldown > 0f)
                {
                    UITooltip.AddLineColumn(spellInfo.Cooldown.ToString("0.0") + " sec cooldown");
                }
            }

            // Set the spell description if not empty
            if (!string.IsNullOrEmpty(spellInfo.Description))
            {
                UITooltip.AddDescription(spellInfo.Description);
            }
        }
 protected virtual void OnDestroy()
 {
     mInstance = null;
 }
Exemplo n.º 12
0
        /*
         * Function: PrepareTooltip
         * Prepares the tooltip with the specified item info.
         * All infomation are saved in iteminfodatabase. if the specific atrribute is 0, then it will not show up in tooltip panel
         * Parameter: itemInfo - UIItemInfo object
         */
        public static void PrepareTooltip(UIItemInfo itemInfo)
        {
            if (itemInfo == null)
            {
                return;
            }

            // Set the title and description
            UITooltip.AddTitle(itemInfo.Name);
            UITooltip.AddLine("");



            // Item types
            UITooltip.AddLineColumn(itemInfo.Type);
            UITooltip.AddLineColumn(itemInfo.Subtype);

            /*if (itemInfo.ItemType == 1)
             *          {
             *                  UITooltip.AddLineColumn(itemInfo.Damage.ToString() + " Damage");
             *                  UITooltip.AddLineColumn(itemInfo.AttackSpeed.ToString("0.0") + " Attack speed");
             *
             *                  UITooltip.AddLine("(" + ((float)itemInfo.Damage / itemInfo.AttackSpeed).ToString("0.0") + " damage per second)");
             *          }
             *          else
             *          {
             *                  UITooltip.AddLineColumn(itemInfo.Block.ToString() + " Block");
             *                  UITooltip.AddLineColumn(itemInfo.Armor.ToString() + " Armor");
             *          }
             *
             *          UITooltip.AddLine("+" + itemInfo.Stamina.ToString() + " Stamina", new RectOffset(0, 0, 6, 0));
             *          UITooltip.AddLine("+" + itemInfo.Strength.ToString() + " Strength");
             */
            if (itemInfo.weight != 0)
            {
                UITooltip.AddLineColumn("Weight:" + itemInfo.weight.ToString());
                UITooltip.AddLine("");
            }

            if (itemInfo.gemSlot != 0)
            {
                UITooltip.AddLine("<color=#db81fc>" + (itemInfo.gemSlot == 1 ? "FlameStrike GEM" : "Rageful Laser GEM") + "</color>");
            }

            if (itemInfo.Damage != 0)
            {
                UITooltip.AddLineColumn("<color=#fee95e>AttackPower:</color>");
                UITooltip.AddLineColumn("<color=#00ff00> + " + itemInfo.Damage.ToString() + "</color>");
            }

            if (itemInfo.Cooldown != 0)
            {
                UITooltip.AddLineColumn("<color=#fee95e>CoolingDown:</color>");
                UITooltip.AddLineColumn("<color=#00ff00> + " + itemInfo.Cooldown.ToString() + "</color>");
            }

            if (itemInfo.Lifesteal != 0)
            {
                UITooltip.AddLineColumn("<color=#fee95e>Life Steal:</color>");
                UITooltip.AddLineColumn("<color=#00ff00> + " + itemInfo.Lifesteal.ToString() + "</color>");
            }

            if (itemInfo.Range != 0)
            {
                UITooltip.AddLineColumn("<color=#fee95e>Skill Range:</color>");
                UITooltip.AddLineColumn("<color=#00ff00> + " + itemInfo.Range.ToString() + "</color>");
            }

            if (itemInfo.RageGen != 0)
            {
                UITooltip.AddLineColumn("<color=#fee95e>Rage generation:</color>");
                UITooltip.AddLineColumn("<color=#00ff00> + " + itemInfo.RageGen.ToString() + "</color>");
            }

            if (itemInfo.Radius != 0)
            {
                UITooltip.AddLineColumn("<color=#fee95e>Radius:</color>");
                UITooltip.AddLineColumn("<color=#00ff00> + " + itemInfo.Radius.ToString() + "</color>");
            }

            if (itemInfo.LastTime != 0)
            {
                UITooltip.AddLineColumn("<color=#fee95e>Last Time:</color>");
                UITooltip.AddLineColumn("<color=#00ff00> + " + itemInfo.LastTime.ToString() + "</color>");
            }

            if (itemInfo.Stamina != 0)
            {
                UITooltip.AddLineColumn("<color=#fee95e>Health:</color>");
                UITooltip.AddLineColumn("<color=#00ff00> + " + itemInfo.Stamina.ToString() + "</color>");
            }

            if (itemInfo.Armor != 0)
            {
                UITooltip.AddLineColumn("<color=#fee95e>Armor:</color>");
                UITooltip.AddLineColumn("<color=#00ff00> + " + itemInfo.Armor.ToString() + "</color>");
            }



            // Set the item description if not empty
            if (!string.IsNullOrEmpty(itemInfo.Description))
            {
                UITooltip.AddDescription(itemInfo.Description);
            }
            UITooltip.AddLineColumn("");
            UITooltip.AddLineColumn("<color=#fee95e>Sell: " + itemInfo.price.ToString() + "</color>");
        }
Exemplo n.º 13
0
 protected virtual void OnDestroy()
 {
     mInstance = null;
 }
Exemplo n.º 14
0
        protected virtual void Awake()
        {
            // Save instance reference
            mInstance = this;

            // Get the rect transform
            this.m_Rect = this.gameObject.GetComponent<RectTransform>();

            // Get the canvas group
            this.m_CanvasGroup = this.gameObject.GetComponent<CanvasGroup>();

            // Get the content size fitter
            this.m_SizeFitter = this.gameObject.GetComponent<ContentSizeFitter>();
        }