Files
JJBB/Assets/Project/Script/GUI/Shop/IntegralShopCtr.cs
2024-08-23 15:49:34 +08:00

249 lines
7.4 KiB
C#

using GCGame.Table;
using UnityEngine;
using UnityEngine.UI;
public class IntegralShopCtr : MonoBehaviour
{
public enum IntegralType
{
HUOLI = 1, //活力
MENPAI,
ZHANCHANG,
JINGJI
}
public static IntegralShopCtr Instance;
//当前选择的数量
private int CurSelectedCout = 1; //默认的是1
private int CurSelectedItemId = -1;
private int ItemCost = -1;
private int ShopType = -1;
private void Awake()
{
Instance = this;
}
// Use this for initialization
private void Start()
{
}
// Update is called once per frame
private void Update()
{
}
private void OnDestroy()
{
Instance = null;
}
public void InitMyIntegralShopItem(int type) //Type跟Id相对应
{
ShopType = type;
var roleIntegralShop = TableManager.GetRoleIntegralShopByID(type);
if (roleIntegralShop != null)
{
//初始化item
var roleIntegral = TableManager.GetRoleIntegralByID(type);
if (roleIntegral != null)
{
ShopName.text = roleIntegral.IntegralName; //设置商店名字
for (var index = 0; index < roleIntegralShop.getItemCount(); index++)
{
var commonItem = TableManager.GetCommonItemByID(roleIntegralShop.GetItembyIndex(index));
if (commonItem == null) break;
//创建item
var integralItemPrefab = Instantiate(IntrgralShopItemPreResource);
//设置比例
integralItemPrefab.transform.parent = PrefabParent;
integralItemPrefab.transform.localPosition = Vector3.zero;
integralItemPrefab.transform.localScale = Vector3.one;
integralItemPrefab.transform.localRotation = Quaternion.Euler(Vector3.zero);
//第一个设置成打开状态
if (index == 0)
{
integralItemPrefab.GetComponent<Toggle>().isOn = true;
InitMyDescPanel(commonItem.Id);
CurSelectedItemId = commonItem.Id;
CurSelectedCout = 1;
SubBtnMask.gameObject.SetActive(true); //1不能再减
CountMyTotalCost();
}
integralItemPrefab.GetComponent<Toggle>().group = MyToggleGroup;
integralItemPrefab.GetComponent<IntegralShopItem>().InitMyItem(commonItem.Icon, commonItem.Name,
roleIntegralShop.GetCostbyIndex(index), type, commonItem.Id);
}
}
}
}
public void InitItemType(int classId)
{
switch (classId)
{
case 1:
DescItemType.text = StrDictionary.GetClientDictionaryString("#{1046}");
break;
case 2:
DescItemType.text = StrDictionary.GetClientDictionaryString("#{86701}");
break;
case 3:
DescItemType.text = StrDictionary.GetClientDictionaryString("#{86702}");
break;
case 4:
DescItemType.text = StrDictionary.GetClientDictionaryString("#{86703}");
break;
case 5:
DescItemType.text = StrDictionary.GetClientDictionaryString("#{1697}");
break;
case 6:
DescItemType.text = StrDictionary.GetClientDictionaryString("#{86705}");
break;
case 7:
DescItemType.text = StrDictionary.GetClientDictionaryString("#{1879}");
break;
case 8:
DescItemType.text = StrDictionary.GetClientDictionaryString("#{1880}");
break;
case 9:
DescItemType.text = StrDictionary.GetClientDictionaryString("#{86708}");
break;
}
}
//初始化当前选择Item的描述Panel
public void InitMyDescPanel(int itemId)
{
if (itemId == CurSelectedItemId) return;
ItemCost = GetItemCost(itemId);
var commonItem = TableManager.GetCommonItemByID(itemId);
if (commonItem != null)
{
LoadAssetBundle.Instance.SetImageSprite(DescItemIcon, commonItem.Icon);
if (commonItem.QualityEffect > 0)
CommonItemContainerItem.ShowQualityEffect(true, commonItem.QualityEffect, DescItemIcon.transform);
else
CommonItemContainerItem.ShowQualityEffect(false, commonItem.QualityEffect, DescItemIcon.transform);
DescItemname.text = commonItem.Name;
DescItemType.text = "";
DescItemDesc.text = StrDictionary.GetClientString_WithNameSex(commonItem.Tips);
}
CurSelectedCout = 1;
CountText.text = "1";
CurSelectedItemId = itemId;
InitItemType(commonItem.ClassID);
//初始化数量为1 屏蔽减少按钮
if (!SubBtnMask.gameObject.activeInHierarchy)
SubBtnMask.gameObject.SetActive(true);
CountMyTotalCost();
}
//获取当前选择的Item的Cost
public int GetItemCost(int itemId)
{
var Shop = TableManager.GetRoleIntegralShopByID(ShopType);
if (Shop != null)
for (var index = 0; index < Shop.getItemCount(); index++)
if (itemId == Shop.GetItembyIndex(index))
return Shop.GetCostbyIndex(index);
return -1;
}
//显示需要的花费
public void CountMyTotalCost()
{
TotalCostText.text = (ItemCost * CurSelectedCout).ToString();
}
//判断增加或者减少按钮是否需要遮罩
public void AdjustMyMaskImage()
{
if (CurSelectedCout == 1)
if (!SubBtnMask.gameObject.activeInHierarchy)
SubBtnMask.gameObject.SetActive(true);
if (CurSelectedCout > 1 && CurSelectedCout < 99)
{
if (SubBtnMask.gameObject.activeInHierarchy)
SubBtnMask.gameObject.SetActive(false);
if (AddBtnMask.gameObject.activeInHierarchy)
AddBtnMask.gameObject.SetActive(false);
}
if (CurSelectedCout == 99)
{
if (!AddBtnMask.gameObject.activeInHierarchy)
AddBtnMask.gameObject.SetActive(true);
}
}
public void OnSubBtnClick()
{
CurSelectedCout--;
CountText.text = CurSelectedCout.ToString();
CountMyTotalCost();
AdjustMyMaskImage();
}
public void OnAddBtnClick()
{
CurSelectedCout++;
CountText.text = CurSelectedCout.ToString();
CountMyTotalCost();
AdjustMyMaskImage();
}
public void OnBuyButtonClick()
{
//购买协议
}
public void OnCloseItemClick()
{
//UIManager.CloseUI(UIInfo.IntegralShop);
}
#region
public Text ShopName;
public Text DescItemname;
public Text DescItemType;
public Text DescItemDesc;
public Image DescItemIcon;
public Button AddBtn;
public Image AddBtnMask;
public Button SubBtn;
public Image SubBtnMask;
public Text CountText;
public Text TotalCostText;
public Text OwnMoneyCost;
public GameObject IntrgralShopItemPreResource;
public Transform PrefabParent;
public ToggleGroup MyToggleGroup;
#endregion
}