//--------------------------------------------------------
|
// [Author]: 第二世界
|
// [ Date ]: Tuesday, December 05, 2017
|
//--------------------------------------------------------
|
|
using System;
|
using System.Collections;
|
using System.Collections.Generic;
|
|
using UnityEngine;
|
using UnityEngine.UI;
|
|
namespace vnxbqy.UI
|
{
|
|
public class FairyDutyWin : Window
|
{
|
[SerializeField] Button dutyCloseBtn;
|
[SerializeField] Button dutyConfirmBtn;
|
[SerializeField] List<Button> dutyBtns = new List<Button>();
|
[SerializeField] List<RectTransform> m_Dutys;
|
[SerializeField] List<Image> m_Checks;
|
|
[SerializeField] Text changeDutyTxt;
|
|
private FairyModel m_Model;
|
private FairyModel model
|
{
|
get
|
{
|
return m_Model ?? (m_Model = ModelCenter.Instance.GetModel<FairyModel>());
|
}
|
}
|
|
private int presentDuty = 0;
|
private PlayerFairyData.FairyMember changeMember
|
{
|
get
|
{
|
return PlayerDatas.Instance.fairyData.GetMember(model.presentChangeMember);
|
}
|
}
|
#region Built-in
|
protected override void BindController()
|
{
|
}
|
|
protected override void AddListeners()
|
{
|
dutyCloseBtn.onClick.AddListener(CloseClick);
|
dutyConfirmBtn.onClick.AddListener(OnDutyConfirm);
|
for (int i = 0; i < dutyBtns.Count; i++)
|
{
|
var _index = i;
|
dutyBtns[i].onClick.AddListener(() =>
|
{
|
OnDutyClick(_index);
|
});
|
}
|
}
|
|
protected override void OnPreOpen()
|
{
|
PlayerDatas.Instance.fairyData.OnRefreshFairyInfo += OnRefreshFairyInfo;
|
for (int i = 0; i < m_Dutys.Count; i++)
|
{
|
m_Dutys[i].SetActive(true);
|
}
|
for (int i = 0; i < m_Checks.Count; i++)
|
{
|
m_Checks[i].SetActive(false);
|
}
|
PlayerFairyData.FairyMember mine = PlayerDatas.Instance.fairyData.mine;
|
if (mine != null)
|
{
|
if (mine.FamilyLV == 2)
|
{
|
m_Dutys[0].SetActive(false);
|
}
|
OnDutyClick(changeMember.FamilyLV);
|
changeDutyTxt.text = Language.Get("FairyChangeDuty", UIHelper.ServerStringTrim(changeMember.Name));
|
}
|
}
|
|
private void OnRefreshFairyInfo()
|
{
|
PlayerFairyData.FairyData fairy = PlayerDatas.Instance.fairyData.fairy;
|
if (fairy == null || changeMember == null)
|
{
|
CloseImmediately();
|
return;
|
}
|
PlayerFairyData.FairyMember mine = PlayerDatas.Instance.fairyData.mine;
|
if (mine.FamilyLV < 2)
|
{
|
CloseImmediately();
|
return;
|
}
|
if (mine.FamilyLV <= changeMember.FamilyLV)
|
{
|
CloseImmediately();
|
return;
|
}
|
OnDutyClick(changeMember.FamilyLV);
|
}
|
|
protected override void OnAfterOpen()
|
{
|
}
|
|
protected override void OnPreClose()
|
{
|
PlayerDatas.Instance.fairyData.OnRefreshFairyInfo -= OnRefreshFairyInfo;
|
model.presentChangeMember = 0;
|
}
|
|
protected override void OnAfterClose()
|
{
|
}
|
#endregion
|
|
private void OnDutyClick(int id)
|
{
|
if (presentDuty < m_Checks.Count)
|
{
|
m_Checks[presentDuty].SetActive(false);
|
}
|
presentDuty = id;
|
m_Checks[presentDuty].SetActive(true);
|
}
|
|
private void OnDutyConfirm()
|
{
|
if (presentDuty == changeMember.FamilyLV)
|
{
|
ServerTipDetails.DisplayNormalTip(Language.Get("L1029"));
|
return;
|
}
|
FamilyConfig cfg = FamilyConfig.Get(PlayerDatas.Instance.fairyData.fairy.FamilyLV);
|
if (cfg != null)
|
{
|
switch (presentDuty)
|
{
|
case 0:
|
{
|
OnChangeDuty();
|
CloseImmediately();
|
}
|
break;
|
case 1:
|
{
|
if (PlayerDatas.Instance.fairyData.GetEliteList().Count >= cfg.eliteCnt)
|
{
|
ServerTipDetails.DisplayNormalTip(Language.Get("L1030"));
|
return;
|
}
|
OnChangeDuty();
|
CloseImmediately();
|
}
|
break;
|
case 2:
|
{
|
if (PlayerDatas.Instance.fairyData.GetDeputyLeaderList().Count >= cfg.deputyLeaderCnt)
|
{
|
ServerTipDetails.DisplayNormalTip(Language.Get("L1031"));
|
return;
|
}
|
ConfirmCancel.ShowPopConfirm(Language.Get("L1003"), Language.Get("L1032", changeMember.Name), (bool isOk) =>
|
{
|
if (isOk)
|
{
|
OnChangeDuty();
|
CloseImmediately();
|
}
|
});
|
}
|
break;
|
case 3:
|
{
|
ConfirmCancel.ShowPopConfirm(Language.Get("L1003"), Language.Get("L1033", changeMember.Name), (bool isOk) =>
|
{
|
if (isOk)
|
{
|
OnChangeDuty();
|
CloseImmediately();
|
}
|
});
|
}
|
break;
|
}
|
}
|
}
|
|
private void OnChangeDuty()
|
{
|
C0F06_tagCFamilyChangeMember changePack = new C0F06_tagCFamilyChangeMember();
|
changePack.PlayerID = changeMember.PlayerID;
|
changePack.FamilyLV = (byte)presentDuty;
|
GameNetSystem.Instance.SendInfo(changePack);
|
}
|
}
|
|
}
|
|
|
|
|