using System; using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; namespace Snxxz.UI { public class FairyCallMemberBehaviour : MonoBehaviour { [SerializeField] Button m_CallMember; FairyGrabBossModel model { get { return ModelCenter.Instance.GetModel(); } } private void Awake() { m_CallMember.AddListener(CallMember); } private void OnEnable() { model.bossGrabHintEvent += BossGrabHintEvent; PlayerDatas.Instance.fairyData.OnRefreshFairyInfo += OnRefreshFairyInfo; Display(); } private void OnDisable() { model.bossGrabHintEvent -= BossGrabHintEvent; PlayerDatas.Instance.fairyData.OnRefreshFairyInfo -= OnRefreshFairyInfo; } private void BossGrabHintEvent() { Display(); } private void OnRefreshFairyInfo() { Display(); } void Display() { m_CallMember.gameObject.SetActive(CheckCallMember()); } bool CheckCallMember() { if (PlayerDatas.Instance.baseData.Family == 0 || !model.grabBossHintOpen) { return false; } var fairyMember = PlayerDatas.Instance.fairyData.mine; if (fairyMember == null || fairyMember.LV < model.callMemberDuty) { return false; } return true; } private void CallMember() { var bossId = 0; var list = GAMgr.Instance.GetTypeList(E_ActorClassType.NpcFightBoss); if (list != null) { for (int i = 0; i < list.Count; i++) { GA_NpcFightBoss bossActor = list[i] as GA_NpcFightBoss; if (bossActor != null && model.bosses.Contains(bossActor.NpcConfig.NPCID)) { bossId = bossActor.NpcConfig.NPCID; break; } } } if (bossId != 0) { CAC05_tagCGCallupFamilyMemberToBoss pak = new CAC05_tagCGCallupFamilyMemberToBoss(); pak.NPCID = (uint)bossId; GameNetSystem.Instance.SendInfo(pak); } } } }