Files
JJBB/Assets/Project/Script/GUI/Pet/AddPetFromBag.cs

107 lines
3.8 KiB
C#
Raw Permalink Normal View History

2024-08-23 15:49:34 +08:00
using UnityEngine;
using UnityEngine.UI;
using System.Collections;
using System.Collections.Generic;
using Games.Item;
using GCGame.Table;
using Games.Events;
public class AddPetFromBag : MonoBehaviour
{
public GameObject m_TransPosition;
public GameObject m_petItemClone;
public List<GameObject> petItems = new List<GameObject>();
public void AddNewFellow()
{
for (int i = 0; i < petItems.Count; i++)
{
GameObject.DestroyImmediate(petItems[i]);
}
ShowPetsInBag();
}
public void OnEnable()
{
ShowPetsInBag();
}
public void Close()
{
for(int i=0;i<petItems.Count;i++)
{
GameObject.Destroy(petItems[i]);
}
gameObject.SetActive(false);
}
public void ShowPetsInBag()
{
List<GameItem> gameItems = GameManager.gameManager.PlayerDataPool.BackPack.GetList();
int Count = gameItems.Count;
if (m_petItemClone == null)
return;
for (int i = 0; i < Count; i++)
{
GameItem gameItem = gameItems[i];
Tab_CommonItem tabItem = TableManager.GetCommonItemByID(gameItem.DataID, 0);
if (tabItem == null)
continue;
if (tabItem.ClassID == (int)ItemClass.FELLOW && tabItem.SubClassID == (int)FellowSubClass.CALL)
{
GameObject petObj = UnityEngine.Object.Instantiate(m_petItemClone) as GameObject;
if (petObj != null)
{
petObj.transform.SetParent(m_petItemClone.transform.parent);
petObj.transform.localEulerAngles = m_petItemClone.transform.localEulerAngles;
petObj.transform.localScale = m_petItemClone.transform.localScale;
petObj.SetActive(true);
Transform headIcon = petObj.transform.Find("headIcon");
if (headIcon != null)
{
Image headImage = headIcon.GetComponent<Image>();
if (headImage != null)
{
LoadAssetBundle.Instance.SetImageSprite(headImage, tabItem.Icon);
if (tabItem.QualityEffect > 0)
{
CommonItemContainerItem.ShowQualityEffect(true, tabItem.QualityEffect, headImage.transform);
}
else
{
CommonItemContainerItem.ShowQualityEffect(false, tabItem.QualityEffect, headImage.transform);
}
}
}
Transform QuilityIcon = petObj.transform.Find("Quility");
if (QuilityIcon != null)
{
Image QuilityImage = QuilityIcon.GetComponent<Image>();
if (QuilityImage != null)
LoadAssetBundle.Instance.SetImageSprite(QuilityImage, GCGame.Utils.GetItemQualityFrame(tabItem));
}
Button Btn = petObj.GetComponentInChildren<Button>();
if (Btn != null)
{
Btn.onClick.AddListener(delegate ()
{
UsePetComment(gameItem);
});
}
petItems.Add(petObj);
}
}
}
}
public void UsePetComment(GameItem gameItem)
{
if (gameItem == null)
return;
if (gameItem.CanUse() == false)
return;
ItemTooltipsLogic.ShowItemTooltip(gameItem, ItemTooltipsLogic.ShowType.Normal, transform.position);
}
}