//--------------------------------------------------------
|
// [Author]: 第二世界
|
// [ Date ]: Sunday, May 05, 2019
|
//--------------------------------------------------------
|
|
using System;
|
using System.Collections;
|
using System.Collections.Generic;
|
using UnityEngine;
|
using UnityEngine.UI;
|
|
namespace vnxbqy.UI
|
{
|
|
public class FairyBasicFunctionWin : Window
|
{
|
[SerializeField] Button SkillBtn;
|
[SerializeField] Button HallBtn;
|
[SerializeField] Button bossBtn;
|
[SerializeField] Button zhenfaBtn;
|
[SerializeField] Button sitBtn;
|
[SerializeField] Button _fairyStoreBtn;
|
[SerializeField] Button m_SalaryGetBtn;
|
[SerializeField] Text textFairyName;
|
[SerializeField] Text textFairyLv;
|
[SerializeField] Text m_FairyRankTxt;
|
[SerializeField] Button donateBtn;
|
[SerializeField] Button lilianBtn;
|
[SerializeField] Button cgBtn;
|
[SerializeField] Button fudiBtn;
|
[SerializeField] Button zbgBtn;
|
[SerializeField] Text zbgTime;
|
|
StoreModel _storeModel;
|
StoreModel m_storeModel
|
{
|
get { return _storeModel ?? (_storeModel = ModelCenter.Instance.GetModel<StoreModel>()); }
|
}
|
|
FairyModel m_Model;
|
FairyModel model
|
{
|
get
|
{
|
return m_Model ?? (m_Model = ModelCenter.Instance.GetModel<FairyModel>());
|
}
|
}
|
CoinTaskTipModel m_CoinTaskTip;
|
CoinTaskTipModel coinTaskTip { get { return m_CoinTaskTip ?? (m_CoinTaskTip = ModelCenter.Instance.GetModel<CoinTaskTipModel>()); } }
|
FairyNewModel familyModel { get { return ModelCenter.Instance.GetModel<FairyNewModel>(); } }
|
|
DailyQuestModel dailyQuestModel { get { return ModelCenter.Instance.GetModel<DailyQuestModel>(); } }
|
FairyFeastModel fairyFeastModel
|
{
|
get { return ModelCenter.Instance.GetModel<FairyFeastModel>(); }
|
}
|
#region Built-in
|
protected override void BindController()
|
{
|
}
|
|
protected override void AddListeners()
|
{
|
_fairyStoreBtn.onClick.AddListener(OnClickFairyStoreBtn);
|
bossBtn.onClick.AddListener(OnBossBtn);
|
//m_SalaryGetBtn.onClick.AddListener(OnSalaryGet);
|
SkillBtn.onClick.AddListener(SkillBtna);
|
HallBtn.onClick.AddListener(HallButton);
|
donateBtn.AddListener(() => {
|
WindowCenter.Instance.Open<FamilyMoneyDonateWin>();
|
});
|
lilianBtn.AddListener(() =>
|
{
|
WindowCenter.Instance.Open<FamilyAffairWin>();
|
});
|
zhenfaBtn.AddListener(() =>
|
{
|
WindowCenter.Instance.Open<FamilyZhenfaWin>();
|
});
|
sitBtn.AddListener(ShowSitInfo);
|
cgBtn.AddListener(() =>
|
{
|
if (!FuncOpen.Instance.IsFuncOpen(84))
|
{
|
var config = FuncOpenLVConfig.Get(84);
|
SysNotifyMgr.Instance.ShowTip("RealmPoolOpenLimit", config.LimitLV);
|
return;
|
}
|
WindowCenter.Instance.Open<FairyFeastTransmitListWin>();
|
});
|
fudiBtn.AddListener(() =>
|
{
|
WindowCenter.Instance.Open<BlessedLandWin>();
|
});
|
zbgBtn.AddListener(() =>
|
{
|
WindowCenter.Instance.Open<FamilyZBGWin>();
|
});
|
}
|
|
|
protected override void OnPreOpen()
|
{
|
PlayerDatas.Instance.fairyData.OnRefreshFairyInfo += OnRefreshFairyInfo;
|
//model.UpdateFairySalaryEvent += UpdateFairySalaryEvent;
|
InitFairyInfo();
|
//UpdateFairySalaryEvent();
|
HandleAchievement();
|
familyModel.UpdateZhenfaRedpoint();
|
cgBtn.SetActive(fairyFeastModel.activeOpenday > TimeUtility.OpenDay);
|
|
fudiBtn.SetActive(FuncOpen.Instance.IsFuncOpen(227));
|
|
}
|
|
protected override void OnAfterOpen()
|
{
|
if (cgBtn.IsActive())
|
{
|
if (CanCG())
|
{
|
cgBtn.GetComponent<ScaleTween>().Play();
|
}
|
else
|
{
|
cgBtn.GetComponent<ScaleTween>().Stop();
|
}
|
|
}
|
}
|
|
protected override void OnPreClose()
|
{
|
PlayerDatas.Instance.fairyData.OnRefreshFairyInfo -= OnRefreshFairyInfo;
|
//model.UpdateFairySalaryEvent -= UpdateFairySalaryEvent;
|
}
|
|
protected override void OnAfterClose()
|
{
|
}
|
|
float m_Time;
|
//间隔1秒刷新一次
|
protected override void LateUpdate()
|
{
|
m_Time += Time.deltaTime;
|
if (m_Time < 1)
|
{
|
return;
|
}
|
m_Time = 0;
|
|
if (familyModel.familyZBGActions.ContainsKey(1))
|
{
|
zbgBtn.SetActive(true);
|
zbgTime.text = TimeUtility.SecondsToHMS((int)(TimeUtility.GetNext5Time() - TimeUtility.ServerNow).TotalSeconds);
|
}
|
else
|
{
|
zbgBtn.SetActive(false);
|
}
|
}
|
#endregion
|
|
//是否可传功
|
bool CanCG()
|
{
|
if (!FuncOpen.Instance.IsFuncOpen(84))
|
return false;
|
|
var completedTimes = dailyQuestModel.GetDailyQuestCompletedTimes((int)DailyQuestType.FairyChuanGong);
|
var totalTimes = dailyQuestModel.GetDailyQuestTotalTimes((int)DailyQuestType.FairyChuanGong);
|
|
if (completedTimes >= totalTimes)
|
return false;
|
|
return true;
|
}
|
|
|
void InitFairyInfo()
|
{
|
PlayerFairyData.FairyData fairy = PlayerDatas.Instance.fairyData.fairy;
|
if (fairy != null)
|
{
|
textFairyName.text = fairy.FamilyName;
|
textFairyLv.text = fairy.FamilyLV.ToString();
|
m_FairyRankTxt.text = fairy.WarRank == 0 ? Language.Get("UnDetermind") : GetGrade((int)fairy.WarRank);
|
}
|
CheckFairyStoreOpen();
|
CheckFairyMethodToOpen();
|
CheckFairyBossOpen();
|
}
|
|
void CheckFairyStoreOpen()
|
{
|
_fairyStoreBtn.image.color = _fairyStoreBtn.image.color.SetA(model.fairyStoreOpen ? 1 : 0.5f);
|
}
|
|
void CheckFairyMethodToOpen()
|
{
|
SkillBtn.image.color = SkillBtn.image.color.SetA(model.fairyMethodToOpen ? 1 : 0.5f);
|
}
|
|
void CheckFairyBossOpen()
|
{
|
bossBtn.image.color = bossBtn.image.color.SetA(model.fairyBossFuncOpen ? 1 : 0.5f);
|
}
|
|
void SkillBtna()
|
{
|
if (!model.fairyMethodToOpen)
|
{
|
model.ProcessMethodToErrorTip();
|
return;
|
}
|
WindowCenter.Instance.Open<MethodToWin>();
|
}
|
|
void HallButton()
|
{
|
WindowCenter.Instance.Open<HallTipsWin>();
|
}
|
|
private void OnBossBtn()
|
{
|
if (!model.fairyBossFuncOpen)
|
{
|
model.ProcessFairyBossErrorTip();
|
return;
|
}
|
WindowCenter.Instance.Open<FairyBoss>();
|
}
|
|
|
//private void OnSalaryGet()
|
//{
|
// if (!model.fairySalaryGet)
|
// {
|
// model.SendGetFairySalary();
|
// }
|
//}
|
|
//private void UpdateFairySalaryEvent()
|
//{
|
// m_SalaryGetBtn.interactable = !model.fairySalaryGet;
|
//}
|
|
private void OnClickFairyStoreBtn()
|
{
|
if (!model.fairyStoreOpen)
|
{
|
model.ProcessErrorTip();
|
return;
|
}
|
m_storeModel.ControllerRedPoint(true);
|
WindowCenter.Instance.Open<UnionStoreWin>();
|
}
|
|
|
|
private void OnRefreshFairyInfo()
|
{
|
InitFairyInfo();
|
}
|
|
private string GetGrade(int _rank)
|
{
|
_rank = Mathf.CeilToInt((float)_rank / 4);
|
switch (_rank)
|
{
|
case 1:
|
return Language.Get("Fairy_S");
|
case 2:
|
return Language.Get("Fairy_A");
|
case 3:
|
return Language.Get("Fairy_B");
|
case 4:
|
return Language.Get("Fairy_C");
|
default:
|
return Language.Get("Fairy_D");
|
}
|
}
|
|
void HandleAchievement()
|
{
|
if (AchievementGoto.achievementType == AchievementGoto.FairySalary)
|
{
|
if (!model.fairySalaryGet)
|
{
|
var _effect = AchievementGuideEffectPool.Require(1);
|
_effect.transform.SetParentEx(m_SalaryGetBtn.transform, Vector3.zero, Vector3.zero, Vector3.one);
|
}
|
else
|
{
|
SysNotifyMgr.Instance.ShowTip("Achievement_113");
|
}
|
AchievementGoto.achievementType = 0;
|
}
|
}
|
|
void ShowSitInfo()
|
{
|
var sitRound = Language.Get("FamilySit2", familyModel.sitRound, familyModel.sitMaxRound);
|
if (familyModel.sitRound == familyModel.sitMaxRound)
|
{
|
sitRound += Language.Get("FamilySit5");
|
}
|
|
DailyQuestOpenTime openTime;
|
dailyQuestModel.TryGetOpenTime((int)DailyQuestType.default3, out openTime);
|
|
ConfirmCancel.ShowRealmPopConfirm(Language.Get("FamilySit6"), string.Format("{0}</r>{1}</r>{2}", Language.Get("DailyQuestWin_OpenTime") + openTime.ToOpenTimeString(),
|
sitRound, Language.Get("FamilySit1", familyModel.addExpRateInfo[0] / 100, familyModel.addExpRateInfo[1] / 100, familyModel.roundSeconds)),
|
Language.Get("Z1074"), () =>
|
{
|
if (openTime.InOpenTime())
|
{
|
if (familyModel.sitRound != familyModel.sitMaxRound)
|
ModelCenter.Instance.GetModel<DungeonModel>().SingleChallenge(31230);
|
else
|
SysNotifyMgr.Instance.ShowTip("ActionFinish");
|
}
|
else
|
SysNotifyMgr.Instance.ShowTip("ActionUnOpen");
|
});
|
}
|
}
|
|
}
|
|
|
|
|