void ShowToolTip(StatTooltipInfo sti) { Text nameTxt = transform.Find("Item Name").GetComponent <Text>(); Text statsTxt = transform.Find("Stats").GetComponent <Text>(); nameTxt.text = sti.Stat.ToString(); statsTxt.text = sti.StatDescription(); this.transform.SetAsLastSibling(); tooltip.Show(); }
// Update is called once per frame void Update() { if (PauseManager.isPaused) { return; } if (lootTooltip.isShowing) { tooltip.Hide(); return; } PointerEventData pointerData = new PointerEventData(EventSystem.current) { pointerId = -1, }; pointerData.position = Input.mousePosition; List <RaycastResult> results = new List <RaycastResult>(); EventSystem.current.RaycastAll(pointerData, results); foreach (RaycastResult rr in results) { StatTooltipInfo sti = rr.gameObject.GetComponentInParent <StatTooltipInfo>(); if (sti != null) { ShowToolTip(sti); return; } } tooltip.Hide(); }
// Use this for initialization void Start() { statValues = new Dictionary <Stats, float>(); SetValue(Stats.Strength, 10); SetValue(Stats.Dexterity, 10); SetValue(Stats.Constitution, 10); SetValue(Stats.Intelligence, 8); SetValue(Stats.Wisdom, 8); SetValue(Stats.Charisma, 5); SetValue(Stats.AttackSpeed, 0); SetValue(Stats.HealthRegen, Difficulty.DiffLevel == 0 ? 2 : 1); SetValue(Stats.Dodge, 50); SetValue(Stats.Precision, 100); SetValue(Stats.CurrentHP, 999999999); SetValue(Stats.Critical, 5); statStringers = new Dictionary <Stats, StatStringer>(); statStringers[Stats.MaxHP] = (s) => { return("Hit Points: " + GetValue(Stats.CurrentHP) + "/" + GetValue(Stats.MaxHP)); }; statStringers[Stats.CurrentHP] = (s) => { return(""); }; statStringers[Stats.Dodge] = (s) => { return("Dodge: " + DerivedDodge().ToString("#.#")); }; statStringers[Stats.Precision] = (s) => { return("Precision: " + DerivedPrecision().ToString("#.#")); }; statStringers[Stats.ResFire] = (s) => { return("Fire Resist: " + DerivedResFire().ToString("#.#")); }; statStringers[Stats.ResElec] = (s) => { return("Elec Resist: " + DerivedResElec().ToString("#.#")); }; statStringers[Stats.ResCold] = (s) => { return("Cold Resist: " + DerivedResCold().ToString("#.#")); }; statStringers[Stats.Damage] = (s) => { return("Damage: " + DerivedDamage().ToString("#.#")); }; statStringers[Stats.HealthRegen] = (s) => { return("HP Regen: " + GetValueF(Stats.HealthRegen).ToString("#.#") + " pct/sec"); }; statTextBoxes = new Dictionary <Stats, Text>(); // Create all the text boxes int rowLimit = 6; int rowCount = 0; int colCount = 0; Canvas canvas = GetComponentInParent <Canvas>(); foreach (Stats s in System.Enum.GetValues(typeof(Stats))) { if (GetStatString(s) == "") { continue; } GameObject go = Instantiate(StatTextPrefab, this.transform); Text t = go.GetComponentInChildren <Text>(); StatTooltipInfo sti = go.GetComponentInChildren <StatTooltipInfo>(); statTextBoxes.Add(s, t); sti.Stat = s; RectTransform rt = go.GetComponent <RectTransform>(); rt.position += new Vector3( rt.sizeDelta.x * colCount * canvas.scaleFactor, -(rt.sizeDelta.y - 2) * rowCount * canvas.scaleFactor, 0); rowCount++; if (rowCount >= rowLimit) { rowCount = 0; colCount++; } } }