214 lines
6.5 KiB
C#
214 lines
6.5 KiB
C#
|
using System.Collections;
|
|||
|
using System.Collections.Generic;
|
|||
|
using UnityEngine;
|
|||
|
using UnityEngine.UI;
|
|||
|
using GCGame.Table;
|
|||
|
using Module.Log;
|
|||
|
using GCGame;
|
|||
|
using Games.Events;
|
|||
|
|
|||
|
public class DailyCopyUseItem : UIItemBase {
|
|||
|
|
|||
|
public Image icon;
|
|||
|
public Image quality;
|
|||
|
public Text num;
|
|||
|
public Text itemName;
|
|||
|
public Text itemDesc;
|
|||
|
public Button useBtn;
|
|||
|
|
|||
|
private int itemID = -1;
|
|||
|
private int itemNum = 0;
|
|||
|
|
|||
|
public override void Init()
|
|||
|
{
|
|||
|
useBtn.onClick.RemoveAllListeners();
|
|||
|
useBtn.onClick.AddListener(OnUseBtnClick);
|
|||
|
|
|||
|
//title.text = StrDictionary.GetClientDictionaryString("#{}");
|
|||
|
//tip.text = StrDictionary.GetClientDictionaryString("#{}");
|
|||
|
|
|||
|
//title.text = "标题未配置";
|
|||
|
//tip.text = "描述未配置";
|
|||
|
}
|
|||
|
|
|||
|
public override void Show(Hashtable hash)
|
|||
|
{
|
|||
|
itemID = (int)hash["InitObj"];
|
|||
|
//itemNum = ObjManager.GetInstance
|
|||
|
itemNum = GameManager.gameManager.PlayerDataPool.BackPack.GetItemCountByDataId(itemID);
|
|||
|
|
|||
|
ShowInfo(itemID);
|
|||
|
|
|||
|
base.Show(hash);
|
|||
|
}
|
|||
|
|
|||
|
#region 物品数量更新监听
|
|||
|
private void OnEnable()
|
|||
|
{
|
|||
|
EventDispatcher.Instance.Remove(Games.Events.EventId.FRESHSAMEUSETIP, OnItemUpdate);
|
|||
|
EventDispatcher.Instance.Add(Games.Events.EventId.FRESHSAMEUSETIP, OnItemUpdate);
|
|||
|
}
|
|||
|
|
|||
|
private void OnDisable()
|
|||
|
{
|
|||
|
EventDispatcher.Instance.Remove(Games.Events.EventId.FRESHSAMEUSETIP, OnItemUpdate);
|
|||
|
}
|
|||
|
#endregion
|
|||
|
|
|||
|
private void OnItemUpdate(object args)
|
|||
|
{
|
|||
|
itemNum = GameManager.gameManager.PlayerDataPool.BackPack.GetItemCountByDataId(itemID);
|
|||
|
SetItemNum(itemNum);
|
|||
|
}
|
|||
|
|
|||
|
public void ShowInfo(int id)
|
|||
|
{
|
|||
|
Tab_CommonItem commonItem = TableManager.GetCommonItemByID(itemID, 0);
|
|||
|
if (commonItem != null)
|
|||
|
{
|
|||
|
SetItemNum(itemNum);
|
|||
|
itemName.text = Utils.GetItemNameColor(itemID);
|
|||
|
itemDesc.text = commonItem.Tips.Replace("#r", "\n");
|
|||
|
LoadAssetBundle.Instance.SetImageSprite(icon, commonItem.Icon);
|
|||
|
LoadAssetBundle.Instance.SetImageSprite(quality, GCGame.Utils.GetItemQualityFrame(commonItem));
|
|||
|
if (commonItem.QualityEffect > 0)
|
|||
|
{
|
|||
|
CommonItemContainerItem.ShowQualityEffect(true, commonItem.QualityEffect, icon.transform);
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
CommonItemContainerItem.ShowQualityEffect(false, commonItem.QualityEffect, icon.transform);
|
|||
|
}
|
|||
|
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
LogModule.ErrorLog("Can't Show Item, commonitem is null");
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
public void OnUseBtnClick()
|
|||
|
{
|
|||
|
if (itemNum > 0)
|
|||
|
{
|
|||
|
//var useitem = (CG_USE_ITEM)PacketDistributed.CreatePacket(MessageID.PACKET_CG_USE_ITEM);
|
|||
|
//ulong itemGuid = GameManager.gameManager.PlayerDataPool.BackPack.GetItemGuidByDataID(itemID);
|
|||
|
//useitem.SetItemguid(itemGuid);
|
|||
|
//useitem.SendPacket();
|
|||
|
Games.Item.GameItem gameItem = GameManager.gameManager.PlayerDataPool.BackPack.GetItemByDataID(itemID);
|
|||
|
ItemTooltipsLogic.UseGameProp(gameItem);
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
Tab_ItemGetPath tab = TableManager.GetItemGetPathByID(itemID, 0);
|
|||
|
if (tab != null)
|
|||
|
{
|
|||
|
ItemGetPathPopRoot.Show(itemID, transform.position);
|
|||
|
//string path_0 = tab.GetItemPathbyIndex(0).Trim(' ', '\'', '"');
|
|||
|
//string path_1 = tab.GetItemPathbyIndex(1).Trim(' ', '\'', '"');
|
|||
|
//string path_2 = tab.GetItemPathbyIndex(2).Trim(' ', '\'', '"');
|
|||
|
|
|||
|
//int t = -1;
|
|||
|
//string jumpInfo = "";
|
|||
|
//if (path_0 != "-1")
|
|||
|
//{
|
|||
|
// t = 0;
|
|||
|
// jumpInfo = path_0;
|
|||
|
//}
|
|||
|
//else if (path_1 != "-1")
|
|||
|
//{
|
|||
|
// t = 1;
|
|||
|
// jumpInfo = path_1;
|
|||
|
//}
|
|||
|
//else if (path_2 != "-1")
|
|||
|
//{
|
|||
|
// t = 2;
|
|||
|
// jumpInfo = path_2;
|
|||
|
//}
|
|||
|
|
|||
|
//ItemGetPathPopRoot.GetPathData getPathInfo = GetItemGetPath(t, jumpInfo);
|
|||
|
//if (getPathInfo != null)
|
|||
|
//{
|
|||
|
// ItemGetPathPopRoot.GoGetPath(getPathInfo);
|
|||
|
//}
|
|||
|
//else
|
|||
|
//{
|
|||
|
// LogModule.ErrorLog("Can get get path info");
|
|||
|
//}
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
//GUIData.AddNotifyData(StrDictionary.GetClientDictionaryString("#{}"));
|
|||
|
GUIData.AddNotifyData("未配置");
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
public ItemGetPathPopRoot.GetPathData GetItemGetPath(int t, string param)
|
|||
|
{
|
|||
|
switch(t)
|
|||
|
{
|
|||
|
case 0:
|
|||
|
{
|
|||
|
// 以上为只会有一种情况的路径
|
|||
|
ItemGetPathPopRoot.GetPathData pathInfo = new ItemGetPathPopRoot.GetPathData();
|
|||
|
pathInfo.pathType = 0;
|
|||
|
pathInfo.info = param;
|
|||
|
pathInfo.itemID = itemID;
|
|||
|
return pathInfo;
|
|||
|
}
|
|||
|
case 1:
|
|||
|
case 2:
|
|||
|
{
|
|||
|
// 多种情况的路径
|
|||
|
string[] infos = param.Split('|');
|
|||
|
ItemGetPathPopRoot.GetPathData pathInfo = new ItemGetPathPopRoot.GetPathData();
|
|||
|
for (int j = 0; j < infos.Length; ++j)
|
|||
|
{
|
|||
|
pathInfo.pathType = t;
|
|||
|
pathInfo.info = param;
|
|||
|
pathInfo.itemID = itemID;
|
|||
|
}
|
|||
|
|
|||
|
return pathInfo;
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
return null;
|
|||
|
}
|
|||
|
|
|||
|
private void SetItemNum(int count)
|
|||
|
{
|
|||
|
string s = Utils.ConvertLargeNumToString(itemNum);
|
|||
|
if (count > 0)
|
|||
|
{
|
|||
|
num.text = s;
|
|||
|
L_getBtn.SetActive(false);
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
num.text = StrDictionary.GetClientDictionaryString("#{51916}", s);
|
|||
|
L_getBtn.SetActive(true);
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
public override void OnItemClick()
|
|||
|
{
|
|||
|
ItemTooltipsLogic.ShowItemTooltip(itemID, ItemTooltipsLogic.ShowType.GetPath, this.transform.position);
|
|||
|
base.OnItemClick();
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
#region 经验提升界面增加"去获取"
|
|||
|
public GameObject L_getBtn;
|
|||
|
public void L_OnItemGetBtn()
|
|||
|
{
|
|||
|
ItemTooltipsLogic.ShowItemTooltip(itemID, ItemTooltipsLogic.ShowType.GetPath, this.transform.position);
|
|||
|
}
|
|||
|
#endregion
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
}
|