using System;
using TMPro;
using UnityEngine;
using UnityEngine.EventSystems;
using UnityEngine.UI;

// Token: 0x020000B9 RID: 185
public class ItemEquipped : MonoBehaviour, IPointerEnterHandler, IEventSystemHandler, IPointerExitHandler, IPointerDownHandler, IPointerUpHandler
{
	// Token: 0x060011AA RID: 4522 RVA: 0x00159C60 File Offset: 0x00157E60
	public void SetDurabilityVisual()
	{
		if (this.inPortrait)
		{
			return;
		}
		if (this.itemRenderer && this.invRow != null)
		{
			if (this.invRow._DurabilityMax > 0)
			{
				if (this.durability.x <= (float)Records.x.durabilityThreshold)
				{
					this.itemRenderer.material.SetFloat("_Glow", 1f);
				}
				else
				{
					this.itemRenderer.material.SetFloat("_Glow", 0f);
				}
			}
			if (this.invRow._Life > 0 && !this.invRow._Effect.Contains("Cure"))
			{
				if ((int)this.durability.x - (int)Mathf.Floor((float)Links.x.gameplay.GetCurrentGameTimeHours()) <= 10)
				{
					this.itemRenderer.material.SetFloat("_Glow", 1f);
				}
				else
				{
					this.itemRenderer.material.SetFloat("_Glow", 0f);
				}
			}
			if (this.socketA.x > 0f && (this.invRow._Tag == "Weapon" || this.invRow._Tag == "Jewelry"))
			{
				this.itemRenderer.material.SetFloat("_Sparkle", 1f);
			}
			else
			{
				this.itemRenderer.material.SetFloat("_Sparkle", 0f);
			}
		}
		if (this.img)
		{
			bool flag = false;
			if (this.socketA.x > 0f && (this.invRow._Tag == "Weapon" || this.invRow._Tag == "Jewelry"))
			{
				flag = true;
			}
			if (this.invRow._DurabilityMax > 0)
			{
				if (this.durability.x <= (float)Records.x.durabilityThreshold)
				{
					if (this.durability.x <= 0f)
					{
						this.img.material = Links.x.inventory.inventoryItemBrokenMaterial;
						if (flag)
						{
							this.img.material = Links.x.inventory.inventoryItemMagicBrokenMaterial;
						}
					}
					else
					{
						this.img.material = Links.x.inventory.inventoryItemLowDurabilityMaterial;
						if (flag)
						{
							this.img.material = Links.x.inventory.inventoryItemMagicLowDurabilityMaterial;
						}
					}
				}
				else if (flag)
				{
					this.img.material = Links.x.inventory.inventoryItemMagic;
				}
				else
				{
					this.img.material = Links.x.inventory.inventoryItemMaterial;
				}
			}
			else if (flag)
			{
				this.img.material = Links.x.inventory.inventoryItemMagic;
			}
			else
			{
				this.img.material = Links.x.inventory.inventoryItemMaterial;
			}
			if (this.invRow._Life > 0)
			{
				if ((int)this.durability.x - (int)Mathf.Floor((float)Links.x.gameplay.GetCurrentGameTimeHours()) <= 10 && !this.invRow._Effect.Contains("Cure"))
				{
					this.img.material = Links.x.inventory.inventoryItemLowDurabilityMaterial;
				}
				else
				{
					this.img.material = Links.x.inventory.inventoryItemMaterial;
				}
			}
		}
		if (this.thisImg)
		{
			bool flag2 = false;
			if (this.socketA.x > 0f && (this.invRow._Tag == "Weapon" || this.invRow._Tag == "Jewelry"))
			{
				flag2 = true;
			}
			if (this.invRow._DurabilityMax > 0)
			{
				if (this.durability.x <= (float)Records.x.durabilityThreshold)
				{
					if (this.durability.x <= 0f)
					{
						this.thisImg.material = Links.x.inventory.inventoryItemBrokenMaterial;
						if (flag2)
						{
							this.thisImg.material = Links.x.inventory.inventoryItemMagicBrokenMaterial;
						}
					}
					else
					{
						this.thisImg.material = Links.x.inventory.inventoryItemLowDurabilityMaterial;
						if (flag2)
						{
							this.thisImg.material = Links.x.inventory.inventoryItemMagicLowDurabilityMaterial;
						}
					}
				}
				else if (flag2)
				{
					this.thisImg.material = Links.x.inventory.inventoryItemMagic;
				}
				else
				{
					this.thisImg.material = Links.x.inventory.inventoryItemMaterial;
				}
			}
			else if (flag2)
			{
				this.thisImg.material = Links.x.inventory.inventoryItemMagic;
			}
			else
			{
				this.thisImg.material = Links.x.inventory.inventoryItemMaterial;
			}
			if (this.invRow._Life > 0)
			{
				if ((int)this.durability.x - (int)Mathf.Floor((float)Links.x.gameplay.GetCurrentGameTimeHours()) <= 10 && !this.invRow._Effect.Contains("Cure"))
				{
					this.thisImg.material = Links.x.inventory.inventoryItemLowDurabilityMaterial;
					return;
				}
				this.thisImg.material = Links.x.inventory.inventoryItemMaterial;
			}
		}
	}

	// Token: 0x060011AB RID: 4523 RVA: 0x0015A1EC File Offset: 0x001583EC
	public void UpdateStackSize()
	{
		if (!this.thisImg && !this.buddyItemEquipped2D)
		{
			return;
		}
		if (this.inPortrait)
		{
			return;
		}
		if (this.invRow == null)
		{
			return;
		}
		if (!this.stackSizeText)
		{
			return;
		}
		if (this.thisImg && !this.thisImg.enabled && this.stackSizeText)
		{
			this.stackSizeText.text = "";
			return;
		}
		if (!this.invRow._Stackable)
		{
			this.stackSizeText.text = "";
			return;
		}
		if (this.buddyItemEquipped2D && this.buddyItemEquipped2D.stackSizeText)
		{
			this.buddyItemEquipped2D.stackSizeText.text = this.buddyItemEquipped2D.stackSize.ToString();
		}
		if (this.stackSizeText)
		{
			this.stackSizeText.text = this.stackSize.ToString();
		}
	}

	// Token: 0x060011AC RID: 4524 RVA: 0x0015A2EC File Offset: 0x001584EC
	public void ClearItem()
	{
		this.invRow = Links.x.library.GetInvRow(0);
		this.ID = 0;
		if (this.img)
		{
			this.img.enabled = false;
		}
		if (this.thisImg)
		{
			this.thisImg.enabled = false;
		}
	}

	// Token: 0x060011AD RID: 4525 RVA: 0x0015A348 File Offset: 0x00158548
	public void ReturnToArchives()
	{
		if (this.itemRenderer)
		{
			this.itemRenderer.material.SetFloat("_Hover", 0f);
			this.itemRenderer.material.SetFloat("_Sparkle", 0f);
		}
		if (base.gameObject.layer != 26)
		{
			if (this.btn)
			{
				this.img.enabled = false;
				this.buddyItemEquipped2D.buddyItemEquipped3D = null;
			}
			if (this.stackSizeText)
			{
				this.stackSizeText.text = "";
			}
			if (this.buddyItemEquipped2D && this.buddyItemEquipped2D.stackSizeText)
			{
				this.buddyItemEquipped2D.stackSizeText.text = "";
			}
		}
		if (base.gameObject.layer != 26)
		{
			if (this.buddyItemEquipped2D)
			{
				this.buddyItemEquipped2D.ClearItem();
			}
			if (this.buddyItemEquipped3D)
			{
				this.buddyItemEquipped3D.ClearItem();
			}
		}
		this.inPortrait = false;
	}

	// Token: 0x060011AE RID: 4526 RVA: 0x0015A464 File Offset: 0x00158664
	public void Setup()
	{
		if (this.inPortrait)
		{
			return;
		}
		if (this.invRow._ArmorID == -1)
		{
			return;
		}
		Button button = null;
		Image image = null;
		Links.x.inventory.GetEquipSlotInfo(this.equipIndex, out button, out image);
		this.btn = button;
		this.img = image;
		if (this.img)
		{
			this.img.sprite = Links.x.archives.GetItem(this.invRow._UIModel);
			this.img.enabled = true;
			this.btn.interactable = true;
			this.buddyItemEquipped2D = this.btn.gameObject.GetComponent<ItemEquipped>();
			this.buddyItemEquipped2D.buddyItemEquipped3D = this;
			this.buddyItemEquipped2D.ID = this.ID;
			this.buddyItemEquipped2D.socketA = this.socketA;
			this.buddyItemEquipped2D.socketB = this.socketB;
			this.buddyItemEquipped2D.stackSize = this.stackSize;
			this.buddyItemEquipped2D.invRow = this.invRow;
			this.buddyItemEquipped2D.durability = this.durability;
			this.buddyItemEquipped2D.equipIndex = this.equipIndex;
			this.buddyItemEquipped2D.thisImg = this.img;
			this.buddyItemEquipped2D.SetDurabilityVisual();
			this.SetDurabilityVisual();
			if (this.buddyItemEquipped2D.stackSizeText)
			{
				if (this.invRow._Stackable)
				{
					this.buddyItemEquipped2D.stackSizeText.text = this.stackSize.ToString();
				}
				else
				{
					this.buddyItemEquipped2D.stackSizeText.text = "";
				}
			}
		}
		if (this.buddyItemEquipped2D)
		{
			this.buddyItemEquipped2D.SetDurabilityVisual();
		}
	}

	// Token: 0x060011AF RID: 4527 RVA: 0x0015A628 File Offset: 0x00158828
	public void OnPointerEnter(PointerEventData eventData)
	{
		if (this.inPortrait)
		{
			return;
		}
		if (Links.x.mk)
		{
			Links.x.inventory.dropObject = base.gameObject;
			Links.x.inventory.dropPosition = eventData.position;
			Links.x.inventory.dropScript = Links.x.inventory.equipBag;
		}
		if (this.thisImg)
		{
			this.thisImg.color = Color.white;
		}
	}

	// Token: 0x060011B0 RID: 4528 RVA: 0x0015A6B4 File Offset: 0x001588B4
	public void OnPointerExit(PointerEventData eventData)
	{
		if (this.inPortrait)
		{
			return;
		}
		if (Links.x.mk)
		{
			Links.x.inventory.dropObject = null;
			Links.x.inventory.dropScript = null;
		}
		if (this.thisImg)
		{
			this.thisImg.color = new Color(0.9f, 0.9f, 0.9f, 1f);
		}
	}

	// Token: 0x060011B1 RID: 4529 RVA: 0x0015A728 File Offset: 0x00158928
	public void OnPointerDown(PointerEventData eventData)
	{
		if (this.inPortrait)
		{
			return;
		}
		if (!Links.x.inventory.dragging)
		{
			if (Links.x.mk)
			{
				Links.x.inventory.prevPosition = eventData.position;
			}
			Links.x.inventory.startDragObject = base.gameObject;
			Links.x.inventory.startDragObjectScript = Links.x.inventory.equipBag;
		}
	}

	// Token: 0x060011B2 RID: 4530 RVA: 0x0015A7A8 File Offset: 0x001589A8
	public void OnPointerUp(PointerEventData eventData)
	{
	}

	// Token: 0x04001D21 RID: 7457
	[Header("DATA")]
	public int ID;

	// Token: 0x04001D22 RID: 7458
	public Vector3 socketA = new Vector3(-1f, -1f, -1f);

	// Token: 0x04001D23 RID: 7459
	public Vector3 socketB = new Vector3(-1f, -1f, -1f);

	// Token: 0x04001D24 RID: 7460
	public int stackSize;

	// Token: 0x04001D25 RID: 7461
	public Library.Inventory invRow;

	// Token: 0x04001D26 RID: 7462
	public Vector4 durability;

	// Token: 0x04001D27 RID: 7463
	public int equipIndex;

	// Token: 0x04001D28 RID: 7464
	public bool inPortrait;

	// Token: 0x04001D29 RID: 7465
	[Header("3D VERSION")]
	public Renderer itemRenderer;

	// Token: 0x04001D2A RID: 7466
	public Image img;

	// Token: 0x04001D2B RID: 7467
	public Button btn;

	// Token: 0x04001D2C RID: 7468
	public ItemEquipped buddyItemEquipped2D;

	// Token: 0x04001D2D RID: 7469
	[Header("2D VERSION")]
	public bool is2D;

	// Token: 0x04001D2E RID: 7470
	public ItemEquipped buddyItemEquipped3D;

	// Token: 0x04001D2F RID: 7471
	public Image thisImg;

	// Token: 0x04001D30 RID: 7472
	public TextMeshProUGUI stackSizeText;
}
