//--------------------------------------------------------
|
// [Author]: 第二世界
|
// [ Date ]: Tuesday, March 12, 2019
|
//--------------------------------------------------------
|
|
using System;
|
using System.Collections;
|
using System.Collections.Generic;
|
using UnityEngine;
|
using UnityEngine.UI;
|
|
namespace vnxbqy.UI
|
{
|
|
public class AllianceBossInspireWin : Window
|
{
|
[SerializeField] Text m_Remind;
|
[SerializeField] Text m_InspireHurt;
|
[SerializeField] ItemBehaviour[] m_Items;
|
[SerializeField] Text m_InspireLevel;
|
[SerializeField] Button m_Inspire;
|
[SerializeField] Button m_Close;
|
|
DungeonInspireConfig inspireConfig = null;
|
|
DungeonModel model { get { return ModelCenter.Instance.GetModel<DungeonModel>(); } }
|
AllianceBossModel allianceBossModel { get { return ModelCenter.Instance.GetModel<AllianceBossModel>(); } }
|
|
protected override void BindController()
|
{
|
|
}
|
|
protected override void AddListeners()
|
{
|
m_Inspire.AddListener(Inspire);
|
m_Close.AddListener(CloseClick);
|
}
|
|
protected override void OnPreOpen()
|
{
|
model.dungeonInspireLvEvent += DungeonInspireLvEvent;
|
model.updateMissionEvent += UpdateMissionEvent;
|
var inspireConfigs = model.GetDungeonInspire(AllianceBossModel.DATAMAPID);
|
inspireConfig = inspireConfigs[0];
|
|
Display();
|
}
|
|
protected override void OnAfterOpen()
|
{
|
}
|
|
protected override void OnPreClose()
|
{
|
model.dungeonInspireLvEvent -= DungeonInspireLvEvent;
|
model.updateMissionEvent -= UpdateMissionEvent;
|
}
|
|
protected override void OnAfterClose()
|
{
|
}
|
|
void Display()
|
{
|
DisplayRemind();
|
DisplayInspireHurt();
|
DisplayRewards();
|
DisplayInspireLevel();
|
}
|
|
void DisplayRemind()
|
{
|
var singleHurt = model.GetDungeonInspireUpper(AllianceBossModel.DATAMAPID);
|
var maxCount = model.GetInspireMaxCount(AllianceBossModel.DATAMAPID);
|
m_Remind.text = Language.Get("AllianceBossInspireRemind", singleHurt, maxCount * singleHurt);
|
}
|
|
void DisplayInspireHurt()
|
{
|
var currentLevel = model.GetDungeonInspireLevel();
|
var singleHurt = model.GetDungeonInspireUpper(AllianceBossModel.DATAMAPID);
|
m_InspireHurt.text = Language.Get("AllianceBossInspireHurt", currentLevel * singleHurt);
|
}
|
|
void DisplayRewards()
|
{
|
for (int i = 0; i < m_Items.Length; i++)
|
{
|
if (i < allianceBossModel.inspireRewards.Count)
|
{
|
m_Items[i].SetActive(true);
|
m_Items[i].SetItem(allianceBossModel.inspireRewards[i]);
|
}
|
else
|
{
|
m_Items[i].SetActive(false);
|
}
|
}
|
}
|
|
void DisplayInspireLevel()
|
{
|
m_InspireLevel.text = Language.Get("AllianceBossInspireLevel", allianceBossModel.personalInspireCount - model.mission.IsEncourage);
|
if (allianceBossModel.personalInspireCount == model.mission.IsEncourage)
|
m_InspireLevel.color = UIHelper.GetUIColor(TextColType.Red, true);
|
else
|
m_InspireLevel.color = UIHelper.GetUIColor(TextColType.Green, true);
|
}
|
|
private void DungeonInspireLvEvent()
|
{
|
DisplayInspireHurt();
|
}
|
|
private void UpdateMissionEvent()
|
{
|
DisplayInspireLevel();
|
}
|
|
private void Inspire()
|
{
|
var cost = model.GetDungeonInspireCost(inspireConfig);
|
|
if (model.mission.IsEncourage >= allianceBossModel.personalInspireCount)
|
{
|
SysNotifyMgr.Instance.ShowTip("Xjmj_InspireMaxLevel");
|
return;
|
}
|
|
var inspireLevel = model.GetDungeonInspireLevel();
|
var maxLevel = model.GetInspireMaxCount(AllianceBossModel.DATAMAPID);
|
if (inspireLevel >= maxLevel)
|
{
|
SysNotifyMgr.Instance.ShowTip("Xjmj_InspireMaxLevel");
|
return;
|
}
|
|
ConfirmCancel.ShowPopConfirm(Language.Get("Mail101"),
|
Language.Get("AllianceBossInspireConfirm", cost),
|
(bool isOk) =>
|
{
|
if (isOk)
|
{
|
if (cost > PlayerDatas.Instance.baseData.diamond)
|
{
|
WindowCenter.Instance.Open<RechargeTipWin>();
|
return;
|
}
|
CA508_tagCMDoFBAction pak = new CA508_tagCMDoFBAction();
|
pak.ActionType = 0;
|
pak.ActionInfo = (uint)inspireConfig.InspireType;
|
GameNetSystem.Instance.SendInfo(pak);
|
}
|
});
|
}
|
}
|
}
|
|
|
|
|