/// <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)); }
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]; } }
/// <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); } }
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; }
/* * 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>"); }
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>(); }