Files
BepInEx/Projects/BanquetForFools/Source/Assembly-CSharp/GroundItemText.cs
2025-05-21 20:40:04 +02:00

314 lines
7.1 KiB
C#

using System;
using Pathfinding;
using TMPro;
using UnityEngine;
using UnityEngine.EventSystems;
using UnityEngine.UI;
// Token: 0x020000AD RID: 173
public class GroundItemText : MonoBehaviour, IPointerUpHandler, IEventSystemHandler, IPointerEnterHandler, IPointerExitHandler
{
// Token: 0x06000FCB RID: 4043 RVA: 0x0013093C File Offset: 0x0012EB3C
private void Awake()
{
this.tr = base.transform;
this.normalTextColor = this.txt.color;
this.normalTextColor.a = 0.75f;
this.txt.color = this.normalTextColor;
this.imgColor = this.img.color;
this.imgHoverColor = this.img.color;
this.imgHoverColor.a = 0.75f;
}
// Token: 0x06000FCC RID: 4044 RVA: 0x001309B9 File Offset: 0x0012EBB9
private void OnDisable()
{
this.active = false;
this.worldPosition = Vector3.zero;
}
// Token: 0x06000FCD RID: 4045 RVA: 0x001309CD File Offset: 0x0012EBCD
private void OnEnable()
{
}
// Token: 0x06000FCE RID: 4046 RVA: 0x001309CF File Offset: 0x0012EBCF
private void Update()
{
if (this.item && !this.item.destroying && this.item.active)
{
this.ItemText();
}
}
// Token: 0x06000FCF RID: 4047 RVA: 0x00130A00 File Offset: 0x0012EC00
public void ItemText()
{
this.str.Clear();
bool flag = this.item.forSale;
bool flag2 = false;
bool flag3 = false;
if (Links.x.main.body.sneaking)
{
flag2 = true;
}
if (flag2)
{
this.item.GetLinkedCharacter();
if (this.item.linkedCharacter)
{
flag3 = this.item.CheckToSteal(false);
}
else
{
flag2 = false;
}
}
if (this.item.forSale)
{
this.item.GetLinkedCharacter();
if (!this.item.linkedCharacter)
{
this.item.forSale = false;
flag = false;
}
if (this.item.linkedCharacter)
{
if (this.item.linkedCharacter.dead)
{
this.item.forSale = false;
flag = false;
}
else if (this.item.linkedCharacter.stunned)
{
flag = false;
}
}
if (flag2)
{
flag = false;
}
}
this.str.Append(this.item.invRow._DisplayName);
if (this.item.stackSize > 1)
{
this.str.Append(" (");
this.str.Append(this.item.stackSize);
this.str.Append(") ");
}
if (flag)
{
this.item.GetLinkedCharacter();
float cost = this.item.GetCost(false, Links.x.main, this.item.linkedCharacter);
if ((float)Links.x.inventory.emeralds < cost)
{
this.str.Append(" <color=#BF493B>(");
}
else
{
this.str.Append(" <color=#92C861>(");
}
this.txt.color = this.normalTextColor;
this.str.Append(cost);
this.str.Append("em");
this.str.Append(")</color>");
}
else if (flag2)
{
if (flag3)
{
this.str.Append(" <color=#629AA4>(Steal)</color>");
}
else
{
this.str.Append(" <color=#BF493B>(Stealing would be seen or heard)</color>");
}
this.txt.color = this.normalTextColor;
}
else
{
this.txt.color = this.normalTextColor;
}
int length = this.txt.text.Length;
if (length != this.letterCount)
{
this.letterCount = length;
this.GetSize(length);
}
this.textColor = this.txt.color;
this.txt.text = this.str.ToString();
}
// Token: 0x06000FD0 RID: 4048 RVA: 0x00130CA6 File Offset: 0x0012EEA6
private void GetSize(int c)
{
this.rt.sizeDelta = new Vector2(this.txt.preferredWidth + 12f, this.rt.sizeDelta.y);
}
// Token: 0x06000FD1 RID: 4049 RVA: 0x00130CDC File Offset: 0x0012EEDC
public void Set()
{
if (!this.item)
{
return;
}
this.ItemText();
this.item.label = this;
int length = this.txt.text.Length;
this.img.enabled = true;
this.worldPosition = Vector3.zero;
this.screenPosition = Vector3.zero;
this.GetSize(length);
this.letterCount = length;
if (Records.x.editor)
{
base.gameObject.name = this.item.gameObject.name;
}
this.active = true;
}
// Token: 0x06000FD2 RID: 4050 RVA: 0x00130D78 File Offset: 0x0012EF78
public void TurnOff()
{
if (!this.tr)
{
this.tr = base.transform;
}
this.tr.position = new Vector3(100000f, 100000f, 0f);
if (this.item)
{
this.item.label = null;
}
this.active = false;
this.item = null;
this.txt.text = "";
this.worldPosition = Vector3.zero;
this.screenPosition = Vector3.zero;
this.uiPosition = Vector3.zero;
this.hovering = false;
}
// Token: 0x06000FD3 RID: 4051 RVA: 0x00130E1C File Offset: 0x0012F01C
public void OnPointerEnter(PointerEventData eventData)
{
Shader.SetGlobalFloat("_HoveringOnItem", 1f);
if (Links.x.inventory.groundBag.toggle)
{
this.item.PostFXRenderers(true);
this.hovering = true;
this.img.color = this.imgHoverColor;
Color color = this.txt.color;
color.a = 1f;
this.txt.color = color;
Shader.SetGlobalFloat("_HoveringOnItem", 1f);
}
}
// Token: 0x06000FD4 RID: 4052 RVA: 0x00130EA8 File Offset: 0x0012F0A8
public void OnPointerExit(PointerEventData eventData)
{
if (!Links.x.inventory.groundBag.toggle)
{
Shader.SetGlobalFloat("_HoveringOnItem", 0f);
}
if (Links.x.inventory.groundBag.toggle)
{
if (this.item)
{
this.item.PostFXRenderers(false);
}
this.hovering = false;
this.img.color = this.imgColor;
Color color = this.txt.color;
color.a = 0.75f;
this.txt.color = color;
return;
}
if (this.item && this.item != Links.x.gameplay.hitItem)
{
this.item.HoverOut();
}
}
// Token: 0x06000FD5 RID: 4053 RVA: 0x00130F7C File Offset: 0x0012F17C
public void OnPointerUp(PointerEventData eventData)
{
if ((Links.x.inventory.groundBag.toggle || this.hovering || Links.x.inventory.groundBag.IsPopItem(this.item)) && this.active && !Records.x.pocketPause && !Links.x.inventory.dragging && Links.x.hasMain)
{
Links.x.gameplay.StoneSoundQuieter();
GraphNode dropNode = this.item.dropNode;
if (this.item)
{
if (!this.item.destroying && this.item.active)
{
this.hovering = false;
}
}
else
{
this.hovering = false;
}
if (Links.x.joy)
{
Links.x.gameplay.ItemPathFinished(this.item, Links.x.main);
}
else
{
Links.x.main.StartGetPathToTarget(dropNode, null, this.item, null, null, null, null, null, Links.x.main, null, Links.x.gameplay.CanScatterPartyToMakePath("Item"), true, false, "Item", false);
}
Links.x.gameplay.clickedCharacter = null;
}
}
// Token: 0x04001A24 RID: 6692
public Image img;
// Token: 0x04001A25 RID: 6693
public Canvas canvas;
// Token: 0x04001A26 RID: 6694
public TextMeshProUGUI txt;
// Token: 0x04001A27 RID: 6695
public RectTransform rt;
// Token: 0x04001A28 RID: 6696
public Item item;
// Token: 0x04001A29 RID: 6697
public bool active;
// Token: 0x04001A2A RID: 6698
public bool hovering;
// Token: 0x04001A2B RID: 6699
public Transform tr;
// Token: 0x04001A2C RID: 6700
private StringFast str = new StringFast(64);
// Token: 0x04001A2D RID: 6701
public Vector3 uiPosition;
// Token: 0x04001A2E RID: 6702
public Vector3 screenPosition;
// Token: 0x04001A2F RID: 6703
public Vector3 worldPosition;
// Token: 0x04001A30 RID: 6704
public Color normalTextColor;
// Token: 0x04001A31 RID: 6705
private Color imgColor;
// Token: 0x04001A32 RID: 6706
private Color imgHoverColor;
// Token: 0x04001A33 RID: 6707
private int letterCount;
// Token: 0x04001A34 RID: 6708
public Color textColor;
}