using System; using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; namespace Snxxz.UI { [XLua.Hotfix] public class MainCollectBehaviour : MonoBehaviour { [SerializeField] RectTransform m_ContainerNormalCollect; [SerializeField] Button m_NormalCollect; [SerializeField] Image m_NormalCollectIcon; [SerializeField] Text m_NormalCollectLabel; [SerializeField] GatherSoulBuildBehaviour m_GatherSoulBuild; int collectNpcId = 0; uint serverInstanceId = 0; DungeonModel dungeonModel { get { return ModelCenter.Instance.GetModel(); } } private void Awake() { m_NormalCollect.AddListener(NormalCollect); } public void Display(int npcId, uint sid) { if (npcId == collectNpcId && sid == serverInstanceId) { return; } collectNpcId = npcId; serverInstanceId = sid; var mapId = dungeonModel.GetDataMapIdByMapId(PlayerDatas.Instance.baseData.MapID); m_ContainerNormalCollect.gameObject.SetActive(false); m_GatherSoulBuild.gameObject.SetActive(false); switch (mapId) { case GatherSoulDungeonModel.DUNGEON_MAPID: m_GatherSoulBuild.gameObject.SetActive(true); m_GatherSoulBuild.Display(npcId, sid); break; default: m_ContainerNormalCollect.gameObject.SetActive(true); DisplayNormalCollect(); break; } } public void Dispose() { collectNpcId = 0; serverInstanceId = 0; m_GatherSoulBuild.Dispose(); } void DisplayNormalCollect() { var mapId = dungeonModel.GetDataMapIdByMapId(PlayerDatas.Instance.baseData.MapID); switch (mapId) { case 31230: m_NormalCollectIcon.SetSprite("TY_UI_8"); m_NormalCollectLabel.text = Language.Get("Collect_FairyFeast"); break; default: m_NormalCollectIcon.SetSprite("TY_UI_6"); m_NormalCollectLabel.text = Language.Get("Collect_Normal"); break; } m_NormalCollectIcon.SetNativeSize(); } private void NormalCollect() { if (collectNpcId != 0 && serverInstanceId != 0) { NPCInteractProcessor.InvokeEvent(E_NpcType.Collect, collectNpcId, serverInstanceId); } } } }