294 lines
8.4 KiB
C#
294 lines
8.4 KiB
C#
using System;
|
|
using System.Collections;
|
|
using TMPro;
|
|
using UnityEngine;
|
|
using UnityEngine.UI;
|
|
|
|
// Token: 0x020000DF RID: 223
|
|
public class Tooltip : MonoBehaviour
|
|
{
|
|
// Token: 0x060014BD RID: 5309 RVA: 0x00191404 File Offset: 0x0018F604
|
|
private void Start()
|
|
{
|
|
this.txt.text = "";
|
|
this.tr = this.tooltip.GetComponent<RectTransform>();
|
|
this.anim = base.gameObject.GetComponent<Animator>();
|
|
this.v = new Vector3[4];
|
|
this.anim.SetBool("Open", false);
|
|
this.startParent = this.tr.parent;
|
|
}
|
|
|
|
// Token: 0x060014BE RID: 5310 RVA: 0x00191471 File Offset: 0x0018F671
|
|
public void AddHoverText(string add, GameObject hoverObj, string direction)
|
|
{
|
|
this.currText = add;
|
|
this.DoHover(add, hoverObj, direction);
|
|
}
|
|
|
|
// Token: 0x060014BF RID: 5311 RVA: 0x00191484 File Offset: 0x0018F684
|
|
public Vector3 WorldToUISpace(Canvas parentCanvas, Vector3 worldPos)
|
|
{
|
|
if (this.dir == "Character" && !Links.x.worldCamera.orthographic)
|
|
{
|
|
Vector3 vector = Links.x.worldCamera.WorldToViewportPoint(worldPos);
|
|
vector.x -= 0.5f;
|
|
worldPos.x += vector.x * 2f;
|
|
}
|
|
Vector3 vector2 = Links.x.worldCamera.WorldToScreenPoint(worldPos);
|
|
Vector2 vector3;
|
|
RectTransformUtility.ScreenPointToLocalPointInRectangle(parentCanvas.transform as RectTransform, vector2, parentCanvas.worldCamera, out vector3);
|
|
return parentCanvas.transform.TransformPoint(vector3);
|
|
}
|
|
|
|
// Token: 0x060014C0 RID: 5312 RVA: 0x00191530 File Offset: 0x0018F730
|
|
public void DoHover(string add, GameObject hoverObj, string direction)
|
|
{
|
|
bool flag = false;
|
|
if (this.coroutine != null)
|
|
{
|
|
base.StopCoroutine(this.coroutine);
|
|
flag = true;
|
|
}
|
|
this.coroutine = this.StartHoverCoroutine(add, hoverObj, direction, flag);
|
|
base.StartCoroutine(this.coroutine);
|
|
}
|
|
|
|
// Token: 0x060014C1 RID: 5313 RVA: 0x00191572 File Offset: 0x0018F772
|
|
private IEnumerator StartHoverCoroutine(string add, GameObject hoverObj, string direction, bool immediate)
|
|
{
|
|
this.open = true;
|
|
yield return new WaitForSecondsRealtime(0.1f);
|
|
this.txt.text = "";
|
|
this.dir = direction;
|
|
this.savedObj = hoverObj;
|
|
this.txt.spriteAsset = Links.x.GetSpriteSheetAsset(Links.x.gameplay.currentSpriteSheetAsset);
|
|
if (!this.anim.GetCurrentAnimatorStateInfo(0).IsName("TooltipOnLoop"))
|
|
{
|
|
if (this.anim.GetCurrentAnimatorStateInfo(0).IsName("TooltipOffLoop"))
|
|
{
|
|
this.anim.Play("TooltipOn");
|
|
}
|
|
else
|
|
{
|
|
this.anim.Play("TooltipOn", 0, 0.5f);
|
|
}
|
|
}
|
|
if (!add.Contains("voffset"))
|
|
{
|
|
if (direction == "Down")
|
|
{
|
|
this.txt.margin = new Vector4(0f, 22f, 0f, 19f);
|
|
RectOffset rectOffset = new RectOffset(this.horizontalLayoutGroup.padding.left, this.horizontalLayoutGroup.padding.right, this.horizontalLayoutGroup.padding.top, this.horizontalLayoutGroup.padding.bottom);
|
|
rectOffset.top = -10;
|
|
rectOffset.bottom = -10;
|
|
this.horizontalLayoutGroup.padding = rectOffset;
|
|
}
|
|
else
|
|
{
|
|
add += "<voffset=.4em><size=0><sprite=62></size></voffset>\n";
|
|
this.txt.margin = new Vector4(7f, 7f, 7f, 7f);
|
|
RectOffset rectOffset2 = new RectOffset(this.horizontalLayoutGroup.padding.left, this.horizontalLayoutGroup.padding.right, this.horizontalLayoutGroup.padding.top, this.horizontalLayoutGroup.padding.bottom);
|
|
rectOffset2.top = 15;
|
|
rectOffset2.bottom = 12;
|
|
this.horizontalLayoutGroup.padding = rectOffset2;
|
|
}
|
|
}
|
|
else if (add.Contains("Rest"))
|
|
{
|
|
this.txt.margin = new Vector4(0f, 6f, 0f, 19f);
|
|
RectOffset rectOffset3 = new RectOffset(this.horizontalLayoutGroup.padding.left, this.horizontalLayoutGroup.padding.right, this.horizontalLayoutGroup.padding.top, this.horizontalLayoutGroup.padding.bottom);
|
|
rectOffset3.top = -10;
|
|
rectOffset3.bottom = -10;
|
|
this.horizontalLayoutGroup.padding = rectOffset3;
|
|
}
|
|
else
|
|
{
|
|
this.txt.margin = new Vector4(0f, -19f, -23f, 0f);
|
|
RectOffset rectOffset4 = new RectOffset(this.horizontalLayoutGroup.padding.left, this.horizontalLayoutGroup.padding.right, this.horizontalLayoutGroup.padding.top, this.horizontalLayoutGroup.padding.bottom);
|
|
rectOffset4.top = -10;
|
|
rectOffset4.bottom = -10;
|
|
this.horizontalLayoutGroup.padding = rectOffset4;
|
|
}
|
|
this.txt.text = add;
|
|
if (this.open)
|
|
{
|
|
this.anim.SetBool("Open", true);
|
|
}
|
|
if (hoverObj)
|
|
{
|
|
if (direction == "World")
|
|
{
|
|
this.obj = hoverObj;
|
|
this.tr.position = this.WorldToUISpace(this.canvas, hoverObj.transform.GetChild(0).position + new Vector3(0f, 3f, 0f));
|
|
}
|
|
else if (direction == "Interact")
|
|
{
|
|
this.obj = hoverObj;
|
|
this.tr.position = this.WorldToUISpace(this.canvas, Vector3.zero);
|
|
}
|
|
else if (direction == "Character")
|
|
{
|
|
this.obj = hoverObj;
|
|
this.tr.position = this.WorldToUISpace(this.canvas, Vector3.zero);
|
|
}
|
|
else
|
|
{
|
|
this.obj = null;
|
|
RectTransform component = hoverObj.GetComponent<RectTransform>();
|
|
if (component)
|
|
{
|
|
this.tr.SetParent(component.parent, true);
|
|
this.tr.anchoredPosition3D = component.anchoredPosition3D + new Vector3(0f, this.mapAdd, 0f);
|
|
if (direction == "UpMap")
|
|
{
|
|
float num = this.mapAdd;
|
|
if (Links.x.joy)
|
|
{
|
|
this.mapAdd += 15f;
|
|
}
|
|
this.tr.anchoredPosition3D = component.anchoredPosition3D + new Vector3(0f, this.mapAdd, 0f);
|
|
}
|
|
if (direction == "Up")
|
|
{
|
|
this.tr.anchoredPosition3D = component.anchoredPosition3D + new Vector3(0f, this.upAdd, 0f);
|
|
}
|
|
if (direction == "UpMenuButtons")
|
|
{
|
|
this.tr.anchoredPosition3D = component.anchoredPosition3D + new Vector3(0f, this.upMenuBtnAdd, 0f);
|
|
}
|
|
if (direction == "UpMenuButtonsRight")
|
|
{
|
|
this.tr.anchoredPosition3D = component.anchoredPosition3D + new Vector3(50f, this.upMenuBtnAdd, 0f);
|
|
}
|
|
if (direction == "UpMenuButtonsLeft")
|
|
{
|
|
this.tr.anchoredPosition3D = component.anchoredPosition3D + new Vector3(-50f, this.upMenuBtnAdd + 50f, 0f);
|
|
}
|
|
if (direction == "UpEffects")
|
|
{
|
|
this.tr.position = hoverObj.transform.position + new Vector3(0f, this.upAdd, 0f);
|
|
}
|
|
if (direction == "Down")
|
|
{
|
|
this.tr.anchoredPosition3D = component.anchoredPosition3D + new Vector3(0f, this.upAdd * -0.5f, 0f);
|
|
}
|
|
if (direction == "PortraitUp")
|
|
{
|
|
this.tr.anchoredPosition3D = component.anchoredPosition3D + new Vector3(0f, this.portraitAdd, 0f);
|
|
}
|
|
if (direction == "Center")
|
|
{
|
|
this.tr.position = component.gameObject.transform.position;
|
|
}
|
|
this.tr.SetParent(this.startParent, true);
|
|
this.img.sprite = this.activeImg;
|
|
}
|
|
}
|
|
}
|
|
this.coroutine = null;
|
|
yield return new WaitForSecondsRealtime(0.01f);
|
|
yield break;
|
|
}
|
|
|
|
// Token: 0x060014C2 RID: 5314 RVA: 0x00191598 File Offset: 0x0018F798
|
|
public void EndHoverText(GameObject endObj, bool overrideEnd)
|
|
{
|
|
this.open = false;
|
|
this.twoLines = false;
|
|
if (!overrideEnd && endObj != this.savedObj)
|
|
{
|
|
return;
|
|
}
|
|
if (!this.anim)
|
|
{
|
|
return;
|
|
}
|
|
this.anim.SetBool("Open", false);
|
|
if (this.coroutine != null)
|
|
{
|
|
base.StopCoroutine(this.coroutine);
|
|
}
|
|
}
|
|
|
|
// Token: 0x040023E5 RID: 9189
|
|
public TextMeshProUGUI txt;
|
|
|
|
// Token: 0x040023E6 RID: 9190
|
|
public bool hovering;
|
|
|
|
// Token: 0x040023E7 RID: 9191
|
|
public Image img;
|
|
|
|
// Token: 0x040023E8 RID: 9192
|
|
public Canvas canvas;
|
|
|
|
// Token: 0x040023E9 RID: 9193
|
|
private Animator anim;
|
|
|
|
// Token: 0x040023EA RID: 9194
|
|
private RectTransform tr;
|
|
|
|
// Token: 0x040023EB RID: 9195
|
|
public RectTransform rt;
|
|
|
|
// Token: 0x040023EC RID: 9196
|
|
public GameObject tooltip;
|
|
|
|
// Token: 0x040023ED RID: 9197
|
|
private Vector3[] v;
|
|
|
|
// Token: 0x040023EE RID: 9198
|
|
private string currText;
|
|
|
|
// Token: 0x040023EF RID: 9199
|
|
private IEnumerator coroutine;
|
|
|
|
// Token: 0x040023F0 RID: 9200
|
|
public Interact interact;
|
|
|
|
// Token: 0x040023F1 RID: 9201
|
|
private string dir;
|
|
|
|
// Token: 0x040023F2 RID: 9202
|
|
private GameObject obj;
|
|
|
|
// Token: 0x040023F3 RID: 9203
|
|
private GameObject savedObj;
|
|
|
|
// Token: 0x040023F4 RID: 9204
|
|
public bool open;
|
|
|
|
// Token: 0x040023F5 RID: 9205
|
|
public Sprite activeImg;
|
|
|
|
// Token: 0x040023F6 RID: 9206
|
|
public Sprite inactiveImg;
|
|
|
|
// Token: 0x040023F7 RID: 9207
|
|
public Character character;
|
|
|
|
// Token: 0x040023F8 RID: 9208
|
|
public bool twoLines;
|
|
|
|
// Token: 0x040023F9 RID: 9209
|
|
public Character player;
|
|
|
|
// Token: 0x040023FA RID: 9210
|
|
public HorizontalLayoutGroup horizontalLayoutGroup;
|
|
|
|
// Token: 0x040023FB RID: 9211
|
|
private Transform startParent;
|
|
|
|
// Token: 0x040023FC RID: 9212
|
|
public float portraitAdd = 15f;
|
|
|
|
// Token: 0x040023FD RID: 9213
|
|
public float mapAdd = 10f;
|
|
|
|
// Token: 0x040023FE RID: 9214
|
|
public float upAdd = 15f;
|
|
|
|
// Token: 0x040023FF RID: 9215
|
|
public float upMenuBtnAdd = 12f;
|
|
}
|