Pedro Gomes 078fda69ac Continued Stat revamp scaling
- updated all abilities to scale with new stat system
- updated difficulty settings using new stat system
- added S+ difficulty as the end game
- updated items using new stat system
- small re-balance to make things a bit more fun to test
2024-08-18 14:45:57 +01:00

75 lines
1.9 KiB
C#

using Kryz.CharacterStats.Examples;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class VendorUI : MonoBehaviour
{
public GameObject vendorUI;
public List<VendorSlotUI> slots = new List<VendorSlotUI>();
[SerializeField] private GameEvent onVendorUIClosed;
[SerializeField] private GameEventListener_VendorData onVendorInteracted;
[SerializeField] private GameEventListener onVendorReleased;
private VendorData currentOpenVendor;
private void Awake()
{
onVendorInteracted.Response.AddListener((vendorData) =>
{
OpenVendor(vendorData);
});
onVendorReleased.Response.AddListener(CloseVendor);
Inventory.Instance.OnItemRightClickedEventWhileVendoring.AddListener(SellItem);
vendorUI.SetActive(false);
}
private void InitializeVendorUI(VendorData vendorData)
{
for (int i = 0; i < slots.Count; i++)
{
slots[i].ClearSlot();
}
for (int i = 0; i < vendorData.items.Count; i++)
{
slots[i].AddItem(currentOpenVendor, vendorData.items[i]);
}
}
public void OpenVendor(VendorData vendor)
{
currentOpenVendor = vendor;
InitializeVendorUI(vendor);
vendorUI.SetActive(true);
Inventory.Instance.isVendoring = true;
Inventory.Instance.OpenInventory();
}
public void CloseVendor()
{
vendorUI.SetActive(false);
currentOpenVendor = null;
Inventory.Instance.isVendoring = false;
Inventory.Instance.CloseInventory();
onVendorUIClosed.Raise();
}
private void SellItem(Item item)
{
if (Inventory.Instance.RemoveItem(item))
{
CoinBag.Instance.ChangeAmount(item.sellPricePlayer);
ItemTooltip.Instance.HideTooltip();
}
}
}