/// <summary> /// Displays the item-hover window on the cursor. For some reason, the base game has six different methods that all pretty much just do this. /// </summary> public static void HoverItem(Item item) { InstanceTracker.GameScript.hoverDroid.SetActive(false); int id = item.id; InstanceTracker.GameScript.txtHoverStat[0].text = string.Empty; InstanceTracker.GameScript.txtHoverStat[1].text = InstanceTracker.GameScript.txtHoverStat[0].text; InstanceTracker.GameScript.txtHoverStatInfo.text = string.Empty; if (Camera.main.ScreenToWorldPoint(Input.mousePosition).y < MenuScript.player.transform.position.y - 4.5f) { InstanceTracker.GameScript.hoverItem.transform.localPosition = new Vector3(5f, 0f, -4.55f); } else { InstanceTracker.GameScript.hoverItem.transform.localPosition = new Vector3(5f, -4f, -4.55f); } if (id != 0) { InstanceTracker.GameScript.itemName.text = GadgetCoreAPI.GetItemName(id); ItemType type = ItemRegistry.GetTypeByID(id); if ((type & ItemType.EQUIPABLE) == ItemType.EQUIPABLE) { if ((type & ItemType.MODABLE) == ItemType.MODABLE) { InstanceTracker.GameScript.itemexpbar.SetActive(true); if (item.tier == 0) { InstanceTracker.GameScript.itemName.color = Color.white; } else if (item.tier == 1) { InstanceTracker.GameScript.itemName.color = Color.cyan; } else if (item.tier == 2) { InstanceTracker.GameScript.itemName.color = Color.magenta; } else if (item.tier == 3) { InstanceTracker.GameScript.itemName.color = Color.yellow; } InstanceTracker.GameScript.hoverItem.GetComponent <Renderer>().material = InstanceTracker.GameScript.hoverItemMat2; InstanceTracker.GameScript.itemDesc.text = string.Empty; float[] itemLevel2 = GetItemLevel2.Invoke(InstanceTracker.GameScript, new object[] { item.exp }) as float[]; int num2 = (int)itemLevel2[0]; InstanceTracker.GameScript.itemexpbar.transform.localScale = new Vector3(itemLevel2[1], 0.015f, 1f); if (num2 < 10) { InstanceTracker.GameScript.itemLevel.text = "Lv." + num2; } else { InstanceTracker.GameScript.itemLevel.text = "MAX"; } for (int i = 0; i < 3; i++) { if (item.aspectLvl[i] > 0) { InstanceTracker.GameScript.itemAspect[i].text = (GetGearAspect.Invoke(InstanceTracker.GameScript, new object[] { item.aspect[i] - 200 }) as string) + " " + item.aspectLvl[i]; } else { InstanceTracker.GameScript.itemAspect[i].text = "(EMPTY)"; } InstanceTracker.GameScript.aspectObj[i].SetActive(true); } int[] gearStats = GadgetCoreAPI.GetGearBaseStats(id).GetStatArray(); for (int i = 0; i < 6; i++) { int num3 = 0; for (int j = 0; j < 3; j++) { if (item.aspect[j] - 200 == i + 1) { num3 += item.aspectLvl[j]; } } int num4; if (gearStats[i] > 0) { num4 = gearStats[i] * num2 + item.tier * 3 + num3; } else { num4 = num3; } if (num4 > 0) { InstanceTracker.GameScript.itemStat[i].text = "+" + num4; } else { InstanceTracker.GameScript.itemStat[i].text = string.Empty; } } InstanceTracker.GameScript.txtStats.SetActive(true); } else { InstanceTracker.GameScript.itemexpbar.SetActive(true); InstanceTracker.GameScript.itemName.color = Color.white; InstanceTracker.GameScript.hoverItem.GetComponent <Renderer>().material = InstanceTracker.GameScript.hoverItemMat1; float[] itemLevel = GetItemLevel2.Invoke(InstanceTracker.GameScript, new object[] { item.exp }) as float[]; int num = (int)itemLevel[0]; InstanceTracker.GameScript.itemexpbar.transform.localScale = new Vector3(itemLevel[1], 0.015f, 1f); if (num < 10) { InstanceTracker.GameScript.itemLevel.text = "Lv." + num; } else { InstanceTracker.GameScript.itemLevel.text = "MAX"; } InstanceTracker.GameScript.itemAspect[0].text = string.Empty; InstanceTracker.GameScript.itemAspect[1].text = string.Empty; InstanceTracker.GameScript.itemAspect[2].text = string.Empty; InstanceTracker.GameScript.txtStats.SetActive(false); InstanceTracker.GameScript.aspectObj[0].SetActive(false); InstanceTracker.GameScript.aspectObj[1].SetActive(false); InstanceTracker.GameScript.aspectObj[2].SetActive(false); InstanceTracker.GameScript.itemDesc.text = GadgetCoreAPI.GetItemDesc(id); } } else { InstanceTracker.GameScript.itemexpbar.SetActive(false); InstanceTracker.GameScript.itemName.color = Color.white; InstanceTracker.GameScript.hoverItem.GetComponent <Renderer>().material = InstanceTracker.GameScript.hoverItemMat1; InstanceTracker.GameScript.itemLevel.text = string.Empty; InstanceTracker.GameScript.itemAspect[0].text = string.Empty; InstanceTracker.GameScript.itemAspect[1].text = string.Empty; InstanceTracker.GameScript.itemAspect[2].text = string.Empty; InstanceTracker.GameScript.txtStats.SetActive(false); InstanceTracker.GameScript.aspectObj[0].SetActive(false); InstanceTracker.GameScript.aspectObj[1].SetActive(false); InstanceTracker.GameScript.aspectObj[2].SetActive(false); InstanceTracker.GameScript.itemDesc.text = GadgetCoreAPI.GetItemDesc(id); } InstanceTracker.GameScript.hoverItem.SetActive(true); } else { InstanceTracker.GameScript.hoverItem.SetActive(false); } }