using System;
|
using System.Collections;
|
using System.Collections.Generic;
|
|
using UnityEngine;
|
using UnityEngine.UI;
|
namespace vnxbqy.UI
|
{
|
public class FairyMemberWin : Window
|
{
|
[SerializeField] Text textFairyName;
|
[SerializeField] Text textFairyLv;
|
[SerializeField] Text textFairyMemberCnt;
|
[SerializeField] Text textFairyLeader;
|
[SerializeField] Text textFairyContribute;
|
[SerializeField] Text textFairyNotify;
|
[SerializeField] ScrollerController m_MemberControl;
|
[SerializeField] Button acceptBtn;
|
[SerializeField] Button openChangeBtn;
|
[SerializeField] Button applyListBtn;
|
[SerializeField] GameObject acceptCheck;
|
[SerializeField] Button lvBtn;
|
[SerializeField] Button jobBtn;
|
[SerializeField] Button contriBtn;
|
[SerializeField] Button timeBtn;
|
[SerializeField] Button moneyPacketBtn;
|
[SerializeField] List<Image> m_Arrows;
|
[SerializeField] EmblemCell emblemCell;
|
private PlayerFairyData.FairyMember changeMember
|
{
|
get
|
{
|
return PlayerDatas.Instance.fairyData.GetMember(model.presentChangeMember);
|
}
|
}
|
private FairyModel m_Model;
|
private FairyModel model
|
{
|
get
|
{
|
return m_Model ?? (m_Model = ModelCenter.Instance.GetModel<FairyModel>());
|
}
|
}
|
FairyEmblemModel fairyEmblemModel { get { return ModelCenter.Instance.GetModel<FairyEmblemModel>(); } }
|
private void OnOpenChangeBtn()
|
{
|
if (!PlayerDatas.Instance.fairyData.IsCanFunc(PlayerFairyData.LimitFunc.CanNotify))
|
{
|
ServerTipDetails.DisplayNormalTip(Language.Get("L1019"));
|
return;
|
}
|
if (PlayerDatas.Instance.baseData.LV < model.changeNotifyLevelLimit)
|
{
|
SysNotifyMgr.Instance.ShowTip("jiazu_pan_592935", model.changeNotifyLevelLimit);
|
return;
|
}
|
WindowCenter.Instance.Open<FairyChangeTipWin>();
|
}
|
|
private void RefreshChangeTipBtn()
|
{
|
var _changeTip = PlayerDatas.Instance.fairyData.IsCanFunc(PlayerFairyData.LimitFunc.CanNotify);
|
openChangeBtn.SetActive(_changeTip);
|
}
|
|
private void OnRefreshMember()
|
{
|
model.sortFairyMembers.Clear();
|
m_MemberControl.Refresh();
|
PlayerFairyData.FairyData fairy = PlayerDatas.Instance.fairyData.fairy;
|
if (fairy != null)
|
{
|
List<PlayerFairyData.FairyMember> list = fairy.Member;
|
if (list != null)
|
{
|
model.sortFairyMembers.AddRange(list);
|
}
|
model.sortFairyMembers.Sort(model.Compare);
|
for (int i = 0; i < model.sortFairyMembers.Count; i++)
|
{
|
m_MemberControl.AddCell(i % 2 == 0 ? ScrollerDataType.Normal : ScrollerDataType.Header, i, OnMemberClick);
|
}
|
}
|
m_MemberControl.Restart();
|
}
|
|
private void OnMemberClick(CellView cell)
|
{
|
int i = cell.index;
|
if (i < model.sortFairyMembers.Count)
|
{
|
PlayerFairyData.FairyMember member = model.sortFairyMembers[i];
|
if (member.PlayerID == PlayerDatas.Instance.baseData.PlayerID)
|
{
|
return;
|
}
|
model.presentChangeMember = (int)member.PlayerID;
|
//PlayerDetails.ShowPlayerDetails(model.presentChangeMember, OnFuncClick, PlayerDetails.OpenType.Fairy);
|
PlayerDetails.ShowPlayerDetailsEx(model.presentChangeMember, member.Name, member.LV, member.Job,
|
member.OfficialRank, member.Exattr2 == 0 ? 1:0, OnFuncClick, PlayerDetails.OpenType.Fairy);
|
}
|
}
|
|
private void OnFuncClick(PlayerDetails.DetailType type)
|
{
|
switch (type)
|
{
|
case PlayerDetails.DetailType.PrivateChat:
|
{
|
WindowCenter.Instance.Close<UnionPanel>();
|
WindowCenter.Instance.Open<MainInterfaceWin>();
|
}
|
break;
|
}
|
}
|
|
private void OnAcceptClick()
|
{
|
PlayerFairyData.FairyData fairy = PlayerDatas.Instance.fairyData.fairy;
|
if (fairy != null)
|
{
|
if (!PlayerDatas.Instance.fairyData.IsCanFunc(PlayerFairyData.LimitFunc.CanCall))
|
{
|
ServerTipDetails.DisplayNormalTip(Language.Get("L1019"));
|
return;
|
}
|
CA406_tagCGChangeFamilyAcceptJoinType acceptPack = new CA406_tagCGChangeFamilyAcceptJoinType();
|
acceptPack.Type = fairy.AcceptJoin == 1 ? (byte)0 : (byte)1;
|
GameNetSystem.Instance.SendInfo(acceptPack);
|
}
|
}
|
|
private void OnRefreshFairyInfo()
|
{
|
PlayerFairyData.FairyData fairy = PlayerDatas.Instance.fairyData.fairy;
|
if (fairy == null) return;
|
textFairyName.text = fairy.FamilyName;
|
textFairyLv.text = Language.Get("L1102") + fairy.FamilyLV.ToString();
|
FamilyConfig cfg = FamilyConfig.Get(fairy.FamilyLV);
|
if (cfg != null)
|
{
|
textFairyMemberCnt.text = Language.Get("L1101") + fairy.MemberCount.ToString() + "/" + cfg.memberCnt;
|
}
|
PlayerFairyData.FairyMember leader = PlayerDatas.Instance.fairyData.Leader;
|
if (leader != null)
|
{
|
textFairyLeader.text = Language.Get("L1100") + leader.Name;
|
}
|
textFairyContribute.text = Language.Get("L1099") + fairy.FamilyActiveValue.ToString();
|
textFairyNotify.text = (fairy.Broadcast == null || fairy.Broadcast.Equals(string.Empty)) ? Language.Get("GameNotice1") : fairy.Broadcast;
|
acceptCheck.SetActive((fairy.AcceptJoin == 1));
|
OnRefreshMember();
|
RefreshChangeTipBtn();
|
ShowEmblemCell();
|
}
|
|
private void OnSortBtn(int type)
|
{
|
model.OnSort(type);
|
OnUpdateArrows();
|
if (model.sortFairyMembers.Count > 0)
|
{
|
m_MemberControl.m_Scorller.RefreshActiveCellViews();
|
}
|
}
|
|
private void OnUpdateArrows()
|
{
|
for (int i = 0; i < m_Arrows.Count; i++)
|
{
|
m_Arrows[i].SetActive(model.sortType == i + 1);
|
if (model.sortType == i + 1)
|
{
|
var _rot = m_Arrows[i].rectTransform.localEulerAngles;
|
_rot.z = model.up ? 90 : -90;
|
m_Arrows[i].rectTransform.localEulerAngles = _rot;
|
}
|
}
|
}
|
|
private void OnApplyList()
|
{
|
if (!PlayerDatas.Instance.fairyData.IsCanFunc(PlayerFairyData.LimitFunc.CanCall))
|
{
|
ServerTipDetails.DisplayNormalTip(Language.Get("L1019"));
|
return;
|
}
|
WindowCenter.Instance.Open<FairyRequestWin>();
|
}
|
|
private void MoneyPackBtn()
|
{
|
WindowCenter.Instance.Open<RedBagTipsWin>();
|
}
|
|
protected override void BindController()
|
{
|
}
|
protected override void AddListeners()
|
{
|
acceptBtn.onClick.AddListener(OnAcceptClick);
|
applyListBtn.onClick.AddListener(OnApplyList);
|
openChangeBtn.onClick.AddListener(OnOpenChangeBtn);
|
lvBtn.onClick.AddListener(() =>
|
{
|
OnSortBtn(1);
|
});
|
jobBtn.onClick.AddListener(() =>
|
{
|
OnSortBtn(2);
|
});
|
contriBtn.onClick.AddListener(() =>
|
{
|
OnSortBtn(3);
|
});
|
timeBtn.onClick.AddListener(() =>
|
{
|
OnSortBtn(4);
|
});
|
moneyPacketBtn.onClick.AddListener(MoneyPackBtn);
|
}
|
|
private void OnFamilyActionInfoEvent(int arg1, int arg2)
|
{
|
if (arg1 == PlayerDatas.Instance.baseData.FamilyId && arg2 == 15)
|
{
|
ShowEmblemCell();
|
}
|
}
|
protected override void OnPreOpen()
|
{
|
PlayerDatas.Instance.fairyData.OnRefreshFairyInfo += OnRefreshFairyInfo;
|
fairyEmblemModel.UpdateFamilyActionEvent += OnFamilyActionInfoEvent;
|
model.FamilyActionInfoEvent += OnFamilyActionInfoEvent;
|
model.sortType = 4;
|
model.up = false;
|
ShowEmblemCell();
|
OnRefreshFairyInfo();
|
OnUpdateArrows();
|
if (fairyEmblemModel.isSendA408Pack)
|
{
|
fairyEmblemModel.TrySendA408EmblemInfoPack();
|
}
|
fairyEmblemModel.UpdateRedPoint();
|
C0F07_tagCGetFamilyInfo pack = new C0F07_tagCGetFamilyInfo();
|
pack.Type = 0;
|
GameNetSystem.Instance.SendInfo(pack);
|
}
|
|
void ShowEmblemCell()
|
{
|
emblemCell.InitUI(EmblemHelper.GetMyEmblemModel());
|
emblemCell.redpointBehaviour.redpointId = MainRedDot.FairyEmbleManageRepoint;
|
emblemCell.button.SetListener(() =>
|
{
|
if (!FuncOpen.Instance.IsFuncOpen(fairyEmblemModel.FuncId, true))
|
return;
|
if (!WindowCenter.Instance.IsOpen<FairyEmblemWin>())
|
{
|
WindowCenter.Instance.Open<FairyEmblemWin>();
|
|
// 仅盟主可见
|
if (!fairyEmblemModel.IsCaptain())
|
return;
|
// 仙盟2级出现
|
if (PlayerDatas.Instance.fairyData == null || PlayerDatas.Instance.fairyData.fairy.FamilyLV != 2)
|
return;
|
fairyEmblemModel.SetRedPointShow();
|
fairyEmblemModel.UpdateRedPoint();
|
}
|
});
|
}
|
|
protected override void OnAfterOpen()
|
{
|
}
|
protected override void OnPreClose()
|
{
|
PlayerDatas.Instance.fairyData.OnRefreshFairyInfo -= OnRefreshFairyInfo;
|
fairyEmblemModel.UpdateFamilyActionEvent -= OnFamilyActionInfoEvent;
|
model.FamilyActionInfoEvent -= OnFamilyActionInfoEvent;
|
}
|
|
protected override void OnAfterClose()
|
{
|
}
|
}
|
}
|