//-------------------------------------------------------- // [Author]: 第二世界 // [ Date ]: Tuesday, October 24, 2017 //-------------------------------------------------------- using UnityEngine; using System.Collections; using UnityEngine.UI; using System; namespace Snxxz.UI { public class TeammateInteractPanel : MonoBehaviour { [SerializeField] Button m_ViewBaseInfo; [SerializeField] Button m_AddFriend; [SerializeField] Button m_SetCaptainer; [SerializeField] Button m_AddFairy; [SerializeField] Button m_Chat; int playerId = 0; public event Action activeOrDeActiveEvent; TeamModel model { get { return ModelCenter.Instance.GetModel(); } } FriendsModel friendsModel { get { return ModelCenter.Instance.GetModel(); } } public void Init(int _playerId) { playerId = _playerId; var mySelf = _playerId == PlayerDatas.Instance.baseData.PlayerID; if (!mySelf) { var isFriend = friendsModel.GetFirendInfo((uint)_playerId, (int)GroupType.Friend) != null; m_AddFriend.gameObject.SetActive(!isFriend); var isFairyMember = PlayerDatas.Instance.fairyData.GetMember(_playerId) != null; m_AddFairy.gameObject.SetActive(false);//暂时没有仙盟邀请 m_ViewBaseInfo.gameObject.SetActive(true); m_SetCaptainer.gameObject.SetActive(model.myTeam.iamCaptainer); } } public void UnInit() { } private void ViewBaseInfo() { ModelCenter.Instance.GetModel().ViewRoleEquip(playerId); this.gameObject.SetActive(false); } private void AddFriend() { friendsModel.OnClickAddFriend((uint)playerId); this.gameObject.SetActive(false); } private void FairyInvite() { this.gameObject.SetActive(false); } private void SetCaptainer() { model.RequestSetCaptainer(playerId); this.gameObject.SetActive(false); } private void Chat() { Teammate mate; if (model.myTeam.TryGetMemberByPlayerId(playerId, out mate)) { if (mate.online) { if (!FuncOpen.Instance.IsFuncOpen((int)FuncOpenEnum.Friend)) { FuncOpen.Instance.ProcessorFuncErrorTip((int)FuncOpenEnum.Friend); } else { var playerId = (uint)mate.id; var playerName = mate.mateName; var job = (byte)mate.job; var playerLv = (ushort)mate.level; var realmLv = (ushort)mate.realm; var onLine = mate.online; friendsModel.SetPlayerShortInfo(playerId, playerName, job, playerLv, realmLv, (byte)(onLine ? 1 : 0), true); WindowCenter.Instance.Close(); WindowCenter.Instance.Open(); } } else { SysNotifyMgr.Instance.ShowTip("Friend_OffLine"); } } } private void Awake() { m_ViewBaseInfo.AddListener(ViewBaseInfo); m_AddFriend.AddListener(AddFriend); m_SetCaptainer.AddListener(SetCaptainer); m_AddFairy.AddListener(FairyInvite); m_Chat.AddListener(Chat); } private void OnEnable() { if (activeOrDeActiveEvent != null) { activeOrDeActiveEvent(true); } } private void OnDisable() { if (activeOrDeActiveEvent != null) { activeOrDeActiveEvent(false); } } } }