using System;
|
using UnityEngine;
|
using UnityEngine.UI;
|
using TableConfig;
|
|
namespace Snxxz.UI
|
{
|
[XLua.Hotfix]
|
public class CrossServerWin : Window
|
{
|
[SerializeField] Button leftBtn;
|
[SerializeField] Button rightBtn;
|
[SerializeField] Button closeBtn;
|
[SerializeField] FunctionButton arenaFunc;
|
[SerializeField] FunctionButton bossFunc;
|
[SerializeField] FunctionButtonGroup funcGroup;
|
[SerializeField] Image headImg;
|
[SerializeField] Text nameText;
|
[SerializeField] Text lvText;
|
[SerializeField] Text rankText;
|
[SerializeField] Text curScoreText;
|
[SerializeField] Text honorText;
|
[SerializeField] Slider scoreSlider;
|
[SerializeField] Text scorePerText;
|
[SerializeField] GameObject danLvUpObj;
|
[SerializeField] Button scoreRankBtn;
|
[SerializeField] Button rankAwardBtn;
|
[SerializeField] Button arenaBtn;
|
[SerializeField] Button seasonAwardBtn;
|
[SerializeField] Button honorStoreBtn;
|
CrossServerRewardModel m_CrossServerRewardModel;
|
CrossServerRewardModel crossServerRewardModel { get { return m_CrossServerRewardModel ?? (m_CrossServerRewardModel = ModelCenter.Instance.GetModel<CrossServerRewardModel>()); } }
|
CrossServerModel crossServerModel { get { return ModelCenter.Instance.GetModel<CrossServerModel>(); } }
|
#region Built-in
|
protected override void BindController()
|
{
|
|
}
|
protected override void AddListeners()
|
{
|
closeBtn.AddListener(ClickClose);
|
leftBtn.AddListener(ClickLeft);
|
rightBtn.AddListener(ClickRight);
|
arenaFunc.AddListener(ClickArenaFunc);
|
bossFunc.AddListener(ClickBossFunc);
|
scoreRankBtn.AddListener(ClickScoreRank);
|
rankAwardBtn.AddListener(ClickRankAward);
|
arenaBtn.AddListener(ClickArena);
|
seasonAwardBtn.AddListener(ClickSeasonAward);
|
honorStoreBtn.AddListener(ClickHonorStore);
|
}
|
|
protected override void OnPreOpen()
|
{
|
SetDisplay();
|
}
|
|
protected override void OnActived()
|
{
|
base.OnActived();
|
funcGroup.TriggerByOrder(functionOrder);
|
}
|
|
protected override void OnAfterOpen()
|
{
|
|
}
|
|
protected override void OnPreClose()
|
{
|
WindowCenter.Instance.Open<MainInterfaceWin>();
|
}
|
protected override void OnAfterClose()
|
{
|
|
}
|
#endregion
|
|
private void SetDisplay()
|
{
|
var playerData = PlayerDatas.Instance.baseData;
|
headImg.SetSprite(GeneralDefine.GetOtherJobHeadPortrait(playerData.Job, 0));
|
nameText.text = playerData.PlayerName;
|
lvText.text = StringUtility.Contact("Lv.", playerData.LV);
|
scoreSlider.minValue = 0;
|
scoreSlider.maxValue = 1;
|
UpdateScore();
|
|
var arenaConfig = Config.Instance.Get<CrossServerArenaConfig>(crossServerModel.pkResultInfo.DanLV);
|
rankText.text = arenaConfig.Name;
|
|
}
|
|
private void UpdateScore()
|
{
|
curScoreText.text = crossServerModel.pkResultInfo.CurScore.ToString();
|
int maxScore = 0;
|
bool isMaxRank = crossServerModel.TryGetMaxRank(out maxScore);
|
danLvUpObj.SetActive(!isMaxRank);
|
if (!isMaxRank)
|
{
|
scorePerText.text = StringUtility.Contact(crossServerModel.pkResultInfo.CurScore, "/", maxScore);
|
scoreSlider.value = (float)crossServerModel.pkResultInfo.CurScore / maxScore;
|
}
|
}
|
|
#region 点击事件
|
|
private void ClickBossFunc()
|
{
|
CloseSubWindows();
|
}
|
|
private void ClickArenaFunc()
|
{
|
CloseSubWindows();
|
}
|
|
private void ClickRight()
|
{
|
funcGroup.TriggerNext();
|
}
|
|
private void ClickLeft()
|
{
|
funcGroup.TriggerLast();
|
}
|
|
|
private void ClickHonorStore()
|
{
|
CloseSubWindows();
|
WindowCenter.Instance.Open<HonorStoreWin>();
|
}
|
|
private void ClickSeasonAward()
|
{
|
CloseSubWindows();
|
WindowCenter.Instance.Open<SeasonRewardWin>();
|
}
|
|
private void ClickArena()
|
{
|
CloseSubWindows();
|
if (crossServerRewardModel.IsOpenMatch)
|
{
|
WindowCenter.Instance.Open<MatchWin>();
|
}
|
else
|
{
|
WindowCenter.Instance.Open<CrossServerArenaWin>();
|
}
|
}
|
|
private void ClickRankAward()
|
{
|
CloseSubWindows();
|
WindowCenter.Instance.Open<SegmentRewardWin>();
|
}
|
|
private void ClickScoreRank()
|
{
|
CloseSubWindows();
|
WindowCenter.Instance.Open<RankingWin>();
|
}
|
|
|
private void ClickClose()
|
{
|
CloseSubWindows();
|
CloseImmediately();
|
}
|
|
private void CloseSubWindows()
|
{
|
//var children = WindowConfig.Get().FindChildWindows("CrossServerWin");
|
//foreach (var window in children)
|
//{
|
// WindowCenter.Instance.Close(window);
|
//}
|
WindowCenter.Instance.CloseImmediately<CrossServerArenaWin>();
|
WindowCenter.Instance.CloseImmediately<HonorStoreWin>();
|
WindowCenter.Instance.CloseImmediately<RankingWin>();
|
WindowCenter.Instance.CloseImmediately<SeasonRewardWin>();
|
WindowCenter.Instance.CloseImmediately<SegmentRewardWin>();
|
WindowCenter.Instance.CloseImmediately<MatchWin>();
|
}
|
#endregion
|
}
|
}
|