Files
2026-03-04 10:03:45 +08:00

146 lines
4.8 KiB
C#

using UnityEngine;
using UnityEngine.UI;
public class BasketItem : MonoBehaviour
{
public Text itemName;
public Text itemCategory;
public Text itemPrice;
public Text itemPriceOff;
public InputField inputQty;
public Button buyButton;
public int ID;
public ShopManager.Categories category;
public int itemID;
public string sortName = "ALL";
public float price;
public int amount;
public Color overPriceColor = Color.red;
[HideInInspector]
public ShopManager shopManager;
private void Start()
{
itemCategory.text = category.ToString() + " -> " + sortName;
Debug.Log("amount: " + amount);
inputQty.text = amount.ToString();
}
private void Update()
{
}
public void AddSubAmount(int value)
{
for (int i = 0; i < Singleton<SaveDataManager>.Instance.GetCurrentPlayerData().PlayerShopBasket.basketItems.Count; i++)
{
if (Singleton<SaveDataManager>.Instance.GetCurrentPlayerData().PlayerShopBasket.basketItems[i].id == ID)
{
Singleton<SaveDataManager>.Instance.GetCurrentPlayerData().PlayerShopBasket.basketItems[i].amount += value;
if (Singleton<SaveDataManager>.Instance.GetCurrentPlayerData().PlayerShopBasket.basketItems[i].amount < 1)
{
Singleton<SaveDataManager>.Instance.GetCurrentPlayerData().PlayerShopBasket.basketItems[i].amount = 1;
}
if (Singleton<SaveDataManager>.Instance.GetCurrentPlayerData().PlayerShopBasket.basketItems[i].amount > 99)
{
Singleton<SaveDataManager>.Instance.GetCurrentPlayerData().PlayerShopBasket.basketItems[i].amount = 99;
}
inputQty.text = Singleton<SaveDataManager>.Instance.GetCurrentPlayerData().PlayerShopBasket.basketItems[i].amount.ToString();
amount = Singleton<SaveDataManager>.Instance.GetCurrentPlayerData().PlayerShopBasket.basketItems[i].amount;
updatePrice();
GameManager.Instance.PlayOnClickSound();
}
}
}
public void updatePrice()
{
for (int i = 0; i < Singleton<SaveDataManager>.Instance.GetCurrentPlayerData().PlayerShopBasket.basketItems.Count; i++)
{
if (Singleton<SaveDataManager>.Instance.GetCurrentPlayerData().PlayerShopBasket.basketItems[i].id == ID)
{
float prize = Singleton<SaveDataManager>.Instance.GetCurrentPlayerData().PlayerShopBasket.basketItems[i].GetPrize();
itemPrice.text = "$ " + prize;
price = prize;
if (prize > Singleton<SaveDataManager>.Instance.GetCurrentPlayerData().PlayerCash || Singleton<SaveDataManager>.Instance.IsCurrentlySandbox())
{
buyButton.interactable = false;
itemPrice.color = overPriceColor;
}
else
{
buyButton.interactable = true;
itemPrice.color = Color.white;
}
}
}
}
public void onChangeInputQtyValue()
{
for (int i = 0; i < Singleton<SaveDataManager>.Instance.GetCurrentPlayerData().PlayerShopBasket.basketItems.Count; i++)
{
if (Singleton<SaveDataManager>.Instance.GetCurrentPlayerData().PlayerShopBasket.basketItems[i].id == ID)
{
Singleton<SaveDataManager>.Instance.GetCurrentPlayerData().PlayerShopBasket.basketItems[i].amount = int.Parse(inputQty.text);
if (Singleton<SaveDataManager>.Instance.GetCurrentPlayerData().PlayerShopBasket.basketItems[i].amount < 1)
{
Singleton<SaveDataManager>.Instance.GetCurrentPlayerData().PlayerShopBasket.basketItems[i].amount = 1;
}
if (Singleton<SaveDataManager>.Instance.GetCurrentPlayerData().PlayerShopBasket.basketItems[i].amount > 99)
{
Singleton<SaveDataManager>.Instance.GetCurrentPlayerData().PlayerShopBasket.basketItems[i].amount = 99;
}
amount = Singleton<SaveDataManager>.Instance.GetCurrentPlayerData().PlayerShopBasket.basketItems[i].amount;
shopManager.myBasketInfo.UpdateMyBasket();
updatePrice();
}
}
}
public void RemoveItem()
{
for (int i = 0; i < Singleton<SaveDataManager>.Instance.GetCurrentPlayerData().PlayerShopBasket.basketItems.Count; i++)
{
if (Singleton<SaveDataManager>.Instance.GetCurrentPlayerData().PlayerShopBasket.basketItems[i].id == ID)
{
GameManager.Instance.PlayOnClickSound();
Singleton<SaveDataManager>.Instance.GetCurrentPlayerData().PlayerShopBasket.basketItems.Remove(Singleton<SaveDataManager>.Instance.GetCurrentPlayerData().PlayerShopBasket.basketItems[i]);
shopManager.UpdatebasketCounter();
shopManager.myBasketInfo.UpdateMyBasket();
updatePrice();
Object.Destroy(base.gameObject);
}
}
}
public void ShowItem()
{
GameManager.Instance.PlayOnClickSound();
shopManager.currentItemShop = base.gameObject;
shopManager.ShowShopItem(category, itemID, sortName);
}
public void BuyItemOneByButton()
{
GameManager.Instance.PlayOnClickSound();
shopManager.BuyItem(category, itemID, amount, price);
RemoveItem();
Debug.Log("Buy: " + amount + " by " + price);
GameManager.Instance.ShowMessagePopup(LanguageManager.Instance.GetText("BUY_ONE_DONE"), shopManager.transform, deleteLast: true);
}
}