using ET;
using FairyGUI;
using System;
using System.Collections;
using System.Collections.Generic;
using UI.CommonGame;
using UnityEngine;
namespace GFGGame
{
public class ItemUtil
{
/// 是否弹购买成功飘字,默认是
/// 是否打开来源界面。默认否
/// 是否显示购买提示
public static void ExchangeItemById(int itemId, long num, bool showTips = true, Action onSuccess = null, bool openSource = false, int maxCount = 9990, bool showTxtBuyTips = false, string prefix = "")
{
if (itemId == ConstItemID.GOLD)
{
AddGold(num, onSuccess);
}
else if (itemId == ConstItemID.POWER)
{
AddPower();
}
else
{
BuyItemConteoller.Show(itemId, num, ConstBuyType.TYPE_ITEM, 0, onSuccess, showTips, openSource, maxCount);
BuyItemConteoller.showTxtBuyTips = showTxtBuyTips;
}
}
public static void AddPower(string prefix = "", Action onSuccess = null)
{
int maxLimit = ItemExchangeCfgArray.Instance.GetCfg(ConstItemID.POWER).maxLimit;
int lastBuyCount = maxLimit - ItemDataManager.GetItemExchangeTimes(ConstItemID.POWER);
string showTxt = string.Format("每5分钟回复1点体力\n今日剩余购买{0}/{1}次", lastBuyCount, maxLimit);
BuyConfirmController.Show(ConstItemID.POWER, 1, () =>
{
if (onSuccess != null)
{
onSuccess();
}
}, showTxt);
}
public static void AddGold(long value = 0, Action onSuccess = null)
{
BuyConfirmController.Show(ConstItemID.GOLD, 1, () =>
{
if (onSuccess != null)
{
onSuccess();
}
});
}
public static void AddDiamondPurple()
{
ViewManager.Show(ViewName.RECHARGE_STORE_VIEW);
}
//红钻(鲛绡)
public static void AddDiamondRed(int value = 0, Action onSuccess = null)
{
ItemExchangeCfg currencyRatioCfg = ItemExchangeCfgArray.Instance.GetCfg(ConstItemID.DIAMOND_RED);// GetCurrencyRatioCfgById(ConstItemID.DIAMOND_RED);
BuyItemConteoller.Show(currencyRatioCfg.id, value > 0 ? value : 1, ConstBuyType.TYPE_ITEM, 0, onSuccess, true, true);
BuyItemConteoller.showTxtBuyTips = true;
}
public static string GetItemName(int itemId)
{
ItemCfg itemCfg = ItemCfgArray.Instance.GetCfg(itemId);
return itemCfg.name;
}
public static string GetSuitName(int suitId)
{
SuitCfg suitCfg = SuitCfgArray.Instance.GetCfg(suitId);
return suitCfg.name;
}
public static int GetItemRarity(int itemId)
{
ItemCfg itemCfg = ItemCfgArray.Instance.GetCfg(itemId);
return itemCfg.rarity;
}
public static List CreateItemDataList(List items)
{
List itemList = new List();
for (int i = 0; i < items.Count; i++)
{
ItemData itemData = createItemData(items[i].ConfigId, items[i].Count);
itemList.Add(itemData);
}
return itemList;
}
public static List CreateItemDataList(int[][] bonus, bool isOnceBonus = false)
{
List itemList = new List();
foreach (int[] item in bonus)
{
ItemData itemData = createItemData(item);
itemList.Add(itemData);
itemData.isOnceBonus = isOnceBonus;
}
return itemList;
}
public static List CreateItemDataList(int[][] bonus, int num)
{
List itemList = new List();
foreach (int[] item in bonus)
{
int count = 0;
if (item.Length > 1)
{
count = item[1];
}
else
{
count = 1;
}
ItemData itemData = createItemData(item[0], count * num);
itemList.Add(itemData);
}
return itemList;
}
public static List CreateItemDataList(int itemId, long count)
{
List itemList = new List();
ItemData itemData = createItemData(itemId, count);
itemList.Add(itemData);
return itemList;
}
public static ItemData createItemData(int[] bonus)
{
int itemID = bonus[0];
int itemNum = 1;
if (bonus.Length > 1)
{
itemNum = bonus[1];
}
return createItemData(itemID, itemNum);
}
public static ItemData createItemData(int itemId, long count)
{
ItemData itemData = ItemDataPool.GetItemData(itemId);
itemData.num = count;
return itemData;
}
public static Boolean CheckItemEnough(int itemId, int num)
{
long hasNum = ItemDataManager.GetItemNum(itemId);
return hasNum >= num;
}
public static bool CheckMenuType1(int needItemId, int needSuitId, int typeId)
{
DressUpMenuItemCfg1 cfg1 = DressUpMenuItemCfg1Array.Instance.GetCfg(typeId);
if (needItemId > 0)
{
int subType = ItemUtilCS.GetItemSubType(needItemId);
if (subType == cfg1.type)
{
return true;
}
else if (cfg1.subMenusArr.Length > 0)
{
foreach (int id2 in cfg1.subMenusArr)
{
DressUpMenuItemCfg2 cfg2 = DressUpMenuItemCfg2Array.Instance.GetCfg(id2);
if (cfg2.type == subType)
{
return true;
}
}
}
}
else if (needSuitId > 0 && cfg1.type == ConstDressUpItemType.TAO_ZHUANG)
{
return true;
}
return false;
}
public static void SortItemIdsByOwned(int[] array)
{
Array.Sort(array, (int a, int b) =>
{
bool ownedA = ItemDataManager.GetItemNum(a) > 0;
bool ownedB = ItemDataManager.GetItemNum(b) > 0;
if (!ownedB && ownedA)
{
return 1;
}
else if (ownedB && !ownedA)
{
return -1;
}
return 0;
});
}
public static string GetItemResExt(int itemType, int type, bool isIcon = false)
{
if (itemType == ConstItemType.DRESS_UP && type == ConstDressUpItemType.BEI_JING && !isIcon)
{
return "jpg";
}
return "png";
}
public static void UpdateItemNumAndNeedNum(GObject obj, int itemId, int needNum, bool ChangeColor = false)
{
UI_ComCostCurrencyWithHas com = UI_ComCostCurrencyWithHas.Proxy(obj);
long hasNum = ItemDataManager.GetItemNum(itemId);
string needStrColor = ChangeColor ? "#B99F7B" : "#FDEED4";
string strHasNum = StringUtil.GetColorText(hasNum.ToString(), hasNum < needNum ? "#C5645A" : needStrColor); hasNum.ToString();
// com.m_txtNeed.text = needNum.ToString();
com.m_txtCount.text = string.Format("{0}{1}{2}", strHasNum, StringUtil.GetColorText("/", needStrColor), StringUtil.GetColorText(needNum.ToString(), needStrColor));
ItemCfg cfg1 = ItemCfgArray.Instance.GetCfg(itemId);
com.m_loaIcon.url = ResPathUtil.GetCommonGameResPath(cfg1.res);
}
public static void UpdateItemNeedNum(GObject obj, int itemId, int needNum, bool checkNum = true, string color = "#716B59")
{
UI_ComCostCurrency com = UI_ComCostCurrency.Proxy(obj);
com.m_c1.selectedIndex = needNum == 0 ? 0 : 1;
long hasNum = ItemDataManager.GetItemNum(itemId);
string strNeedNum = !checkNum ? StringUtil.GetColorText(needNum.ToString(), color) : StringUtil.GetColorText(needNum.ToString(), hasNum < needNum ? "#D0A09B" : color); needNum.ToString();
com.m_txtNeed.text = strNeedNum;
ItemCfg cfg = ItemCfgArray.Instance.GetCfg(itemId);
com.m_loaIcon.url = ResPathUtil.GetCommonGameResPath(cfg.res);
UI_ComCostCurrency.ProxyEnd();
}
public static void UpdateItemNeedNum(GObject obj, int[] cost, bool checkNum = true, string color = "#716B59")
{
int itemId = cost[0];
int needNum = cost[1];
UI_ComCostCurrency com = UI_ComCostCurrency.Proxy(obj);
com.m_c1.selectedIndex = needNum == 0 ? 0 : 1;
long hasNum = ItemDataManager.GetItemNum(itemId);
string strNeedNum = !checkNum ? StringUtil.GetColorText(needNum.ToString(), color) : StringUtil.GetColorText(needNum.ToString(), hasNum < needNum ? "#D0A09B" : color); needNum.ToString();
com.m_txtNeed.text = strNeedNum;
ItemCfg cfg = ItemCfgArray.Instance.GetCfg(itemId);
com.m_loaIcon.url = ResPathUtil.GetCommonGameResPath(cfg.res);
UI_ComCostCurrency.ProxyEnd();
}
public static void UpdateTag(GObject obj, string tag)
{
UI_ComTag item = UI_ComTag.Proxy(obj);
int tagType = TagCfgArray.Instance.GetCfg(tag).type;
item.m_txtTag.text = tag;
item.m_loaTag.url = ResPathUtil.GetCommonGameResPath("fzd_bqbq_" + tagType);
UI_ComTag.ProxyEnd();
}
}
}