using UnityEngine;
|
using UnityEngine.UI;
|
|
namespace vnxbqy.UI
|
{
|
|
public class CrossServerOneVsOneWin : Window
|
{
|
[SerializeField] AvatarCell avatarCell;
|
[SerializeField] Text nameText;
|
[SerializeField] Text lvText;
|
[SerializeField] Text fightPowerTxt;
|
[SerializeField] Text rankText;
|
[SerializeField] Text billBoardRankText;
|
[SerializeField] Text curScoreText;
|
[SerializeField] Text honorText;
|
[SerializeField] Image rankImg;
|
[SerializeField] Slider scoreSlider;
|
[SerializeField] Text scorePerText;
|
[SerializeField] GameObject danLvUpObj;
|
[SerializeField] Button rankAwardBtn;
|
[SerializeField] GameObject rankAward_SelectImg;
|
[SerializeField] Button arenaBtn;
|
[SerializeField] GameObject arena_SelectImg;
|
[SerializeField] Button seasonAwardBtn;
|
[SerializeField] GameObject seasonAward_SelectImg;
|
[SerializeField] Button honorStoreBtn;
|
[SerializeField] GameObject honorStore_SelectImg;
|
[SerializeField] Button lookDanLvBtn;
|
public static int funcId = 0;
|
CrossServerOneVsOnePlayerInfo playerInfo;
|
CrossServerWin crossServerWin;
|
CrossServerOneVsOneRewardModel m_CrossServerRewardModel;
|
PhantasmPavilionModel phantasmPavilionModel { get { return ModelCenter.Instance.GetModel<PhantasmPavilionModel>(); } }
|
CrossServerOneVsOneRewardModel crossServerRewardModel { get { return m_CrossServerRewardModel ?? (m_CrossServerRewardModel = ModelCenter.Instance.GetModel<CrossServerOneVsOneRewardModel>()); } }
|
#region Built-in
|
protected override void BindController()
|
{
|
|
}
|
protected override void AddListeners()
|
{
|
rankAwardBtn.AddListener(ClickRankAward);
|
arenaBtn.AddListener(ClickArena);
|
seasonAwardBtn.AddListener(ClickSeasonAward);
|
honorStoreBtn.AddListener(ClickHonorStore);
|
lookDanLvBtn.AddListener(ClickDanLv);
|
}
|
|
protected override void OnPreOpen()
|
{
|
crossServerRewardModel.ViewCrossPKBillboard(CrossServerOneVsOnePKSeason.Instance.ZoneID, CrossServerOneVsOnePKSeason.Instance.SeasonID, true);
|
SetDisplay();
|
PlayerDatas.Instance.playerDataRefreshEvent += UpdatePlayerData;
|
CrossServerOneVsOnePlayerInfo.Instance.UpdatePlayerInfoEvent += UpdatePlayerInfo;
|
crossServerRewardModel.RankInformationUpdate += RankInformationUpdate;
|
RankInformationUpdate();
|
}
|
protected override void OnActived()
|
{
|
|
|
}
|
protected override void OnAfterOpen()
|
{
|
|
}
|
|
protected override void OnPreClose()
|
{
|
CloseSubWindows();
|
PlayerDatas.Instance.playerDataRefreshEvent -= UpdatePlayerData;
|
CrossServerOneVsOnePlayerInfo.Instance.UpdatePlayerInfoEvent -= UpdatePlayerInfo;
|
crossServerRewardModel.RankInformationUpdate -= RankInformationUpdate;
|
funcId = 0;
|
}
|
protected override void OnAfterClose()
|
{
|
|
}
|
#endregion
|
|
private void RankInformationUpdate()
|
{
|
if (crossServerRewardModel.MyRank > -1 && crossServerRewardModel.MyRank < 1000)
|
{
|
billBoardRankText.text = Language.Get("RankingWin__15") + " " + (crossServerRewardModel.MyRank + 1).ToString();
|
}
|
else
|
{
|
billBoardRankText.text = Language.Get("RankingWin__15") + " " + Language.Get("CrossServer123");
|
}
|
|
}
|
|
private void UpdatePlayerInfo()
|
{
|
UpdateScore();
|
UpdateRank();
|
}
|
|
private void UpdatePlayerData(PlayerDataType type)
|
{
|
if (type != PlayerDataType.CDBPlayerRefresh_Honor) return;
|
UpdateHonor();
|
}
|
|
|
private void SetDisplay()
|
{
|
crossServerWin = WindowCenter.Instance.Get<CrossServerWin>();
|
playerInfo = CrossServerOneVsOnePlayerInfo.Instance;
|
var playerData = PlayerDatas.Instance.baseData;
|
|
avatarCell.InitUI(AvatarHelper.GetMyAvatarModel());
|
|
//nameText.text = playerData.PlayerName;
|
//lvText.text = StringUtility.Contact("Lv.", playerData.LV);
|
fightPowerTxt.text = UIHelper.ReplaceLargeArtNum(playerData.FightPoint);
|
scoreSlider.minValue = 0;
|
scoreSlider.maxValue = 1;
|
UpdateScore();
|
UpdateRank();
|
UpdateHonor();
|
switch (funcId)
|
{
|
case 0:
|
case 1:
|
ClickArena();
|
break;
|
case 2:
|
ClickRankAward();
|
break;
|
case 3:
|
ClickSeasonAward();
|
break;
|
case 4:
|
ClickHonorStore();
|
break;
|
}
|
}
|
|
private void UpdateRank()
|
{
|
var arenaConfig = CrossServerArenaConfig.Get(playerInfo.DanLV);
|
rankText.text = arenaConfig.Name;
|
rankText.color = UIHelper.GetDanLVColor(playerInfo.DanLV);
|
rankImg.SetSprite(arenaConfig.IconKey);
|
}
|
|
private void UpdateHonor()
|
{
|
honorText.text = UIHelper.GetMoneyCnt(18).ToString();
|
}
|
|
private void UpdateScore()
|
{
|
curScoreText.text = playerInfo.Score.ToString();
|
int maxScore = 0;
|
bool isMaxRank = playerInfo.TryGetMaxRank(out maxScore);
|
danLvUpObj.SetActive(!isMaxRank);
|
if (!isMaxRank)
|
{
|
var preUpScore = CrossServerArenaConfig.Get(playerInfo.DanLV - 1);
|
int curScore = playerInfo.Score;
|
if(preUpScore != null)
|
{
|
curScore -= preUpScore.LVUpScore;
|
}
|
scorePerText.text = StringUtility.Contact(curScore, "/", maxScore);
|
scoreSlider.value = (float)curScore / maxScore;
|
}
|
}
|
private void ClickHonorStore()
|
{
|
if (honorStore_SelectImg.activeInHierarchy) return;
|
CloseSubWindows();
|
WindowCenter.Instance.Open<CrossServerOneVsOneHonorStoreWin>();
|
honorStore_SelectImg.SetActive(true);
|
}
|
|
private void ClickSeasonAward()
|
{
|
if (seasonAward_SelectImg.activeInHierarchy) return;
|
|
CloseSubWindows();
|
WindowCenter.Instance.Open<SeasonRewardWin>();
|
seasonAward_SelectImg.SetActive(true);
|
|
}
|
|
private void ClickDanLv()
|
{
|
WindowCenter.Instance.Open<CrossServerOneVsOneDanLVWin>();
|
}
|
|
private void ClickArena()
|
{
|
if (arena_SelectImg.activeInHierarchy) return;
|
|
CloseSubWindows();
|
WindowCenter.Instance.Open<CrossServerOneVsOneArenaWin>();
|
arena_SelectImg.SetActive(true);
|
}
|
|
private void ClickRankAward()
|
{
|
if (rankAward_SelectImg.activeInHierarchy) return;
|
|
CloseSubWindows();
|
WindowCenter.Instance.Open<SegmentRewardWin>();
|
rankAward_SelectImg.SetActive(true);
|
}
|
|
private void CloseSubWindows()
|
{
|
WindowCenter.Instance.Close<CrossServerOneVsOneArenaWin>();
|
WindowCenter.Instance.Close<CrossServerOneVsOneHonorStoreWin>();
|
WindowCenter.Instance.Close<SeasonRewardWin>();
|
WindowCenter.Instance.Close<SegmentRewardWin>();
|
arena_SelectImg.SetActive(false);
|
rankAward_SelectImg.SetActive(false);
|
seasonAward_SelectImg.SetActive(false);
|
honorStore_SelectImg.SetActive(false);
|
}
|
}
|
}
|