72 lines
1.7 KiB
C#
72 lines
1.7 KiB
C#
using Kryz.CharacterStats.Examples;
|
|
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using TMPro;
|
|
using UnityEngine;
|
|
using UnityEngine.EventSystems;
|
|
using UnityEngine.UI;
|
|
|
|
public class VendorSlotUI : ItemSlot
|
|
{
|
|
public TMP_Text priceText;
|
|
public Image currencyIcon;
|
|
public bool soldMultipleTimes = false;
|
|
|
|
CoinBag coinBag;
|
|
Inventory inventory;
|
|
private VendorData currentVendorData;
|
|
VendorItem vendorItem;
|
|
|
|
private void Awake()
|
|
{
|
|
coinBag = FindObjectOfType<CoinBag>();
|
|
inventory = FindObjectOfType<Inventory>();
|
|
}
|
|
|
|
public void AddItem(VendorData vendor, VendorItem newItem)
|
|
{
|
|
vendorItem = newItem;
|
|
Item = vendorItem.item;
|
|
currentVendorData = vendor;
|
|
priceText.text = Item.sellPriceVendor.ToString();
|
|
image.sprite = Item.Icon;
|
|
image.enabled = true;
|
|
}
|
|
|
|
public void ClearSlot()
|
|
{
|
|
Item = null;
|
|
currentVendorData = null;
|
|
priceText.text = "";
|
|
image.sprite = null;
|
|
image.enabled = false;
|
|
}
|
|
|
|
public void Purchase()
|
|
{
|
|
if (Item == null) return;
|
|
|
|
if(coinBag.HasEnoughCoin(Item.sellPriceVendor))
|
|
{
|
|
if(inventory.AddItem(Item))
|
|
{
|
|
coinBag.SpendCoin(Item.sellPriceVendor);
|
|
|
|
if (vendorItem.soldMultipleTimes) return;
|
|
|
|
currentVendorData.items.Remove(vendorItem);
|
|
ClearSlot();
|
|
}
|
|
else
|
|
{
|
|
Debug.Log("Failed to purchase");
|
|
}
|
|
}
|
|
}
|
|
|
|
public override void OnPointerEnter(PointerEventData eventData)
|
|
{
|
|
ItemTooltip.Instance.ShowTooltip(Item);
|
|
}
|
|
}
|