//--------------------------------------------------------
|
// [Author]: 第二世界
|
// [ Date ]: Wednesday, December 19, 2018
|
//--------------------------------------------------------
|
|
using System;
|
using System.Collections;
|
using System.Collections.Generic;
|
|
using UnityEngine;
|
using UnityEngine.UI;
|
|
namespace vnxbqy.UI
|
{
|
|
|
public class CrossServerSettlementWin : Window
|
{
|
[SerializeField] GameObject m_BackFailure;
|
[SerializeField] GameObject m_BackWin;
|
[SerializeField] Button m_DropOutBtn;
|
[SerializeField] Text m_DropOutBtnText;
|
|
[SerializeField] GameObject m_Normal;
|
[SerializeField] GameObject m_RoundWinOne;
|
[SerializeField] Text m_m_RoundWinOneTxt;
|
[SerializeField] GameObject m_RoundWinTwo;
|
[SerializeField] Text m_m_RoundWinTwo;
|
[SerializeField] GameObject m_RoundWinThree;
|
[SerializeField] Text m_m_RoundWinThree;
|
[SerializeField] GameObject m_SessionObj;
|
[SerializeField] Text m_SessionTxt;
|
[SerializeField] GameObject m_SegmentObj;
|
[SerializeField] Text m_SegmentTxt1;
|
[SerializeField] Text m_SegmentTxt2;
|
|
[SerializeField] Text m_SorceText;
|
|
|
|
[SerializeField] GameObject m_BrokenLine;
|
[SerializeField] Text m_BrokenLineText;
|
[SerializeField] GameObject m_SessionObj1;
|
[SerializeField] Text m_SessionTxt1;
|
[SerializeField] GameObject m_SegmentObj1;
|
[SerializeField] Text m_Segment_Txt1;
|
[SerializeField] Text m_Segment_Txt2;
|
[SerializeField] Text m_Sorce_Txt;
|
#region Built-in
|
CrossServerOneVsOneModel crossServerModel { get { return ModelCenter.Instance.GetModel<CrossServerOneVsOneModel>(); } }
|
DungeonModel model { get { return ModelCenter.Instance.GetModel<DungeonModel>(); } }
|
BuffModel m_BuffModel;
|
BuffModel Buffmodel { get { return m_BuffModel ?? (m_BuffModel = ModelCenter.Instance.GetModel<BuffModel>()); } }
|
float timer = 0f;
|
private int WinSorce = 0;
|
private int FailureSorce = 0;
|
protected override void BindController()
|
{
|
var configNum1 = FuncConfigConfig.Get("CrossRealmPKScore").Numerical2;
|
var _jsonDataC = LitJson.JsonMapper.ToObject(configNum1);
|
if (_jsonDataC.Count > 0)
|
{
|
WinSorce = int.Parse(_jsonDataC[0].ToString());
|
FailureSorce = int.Parse(_jsonDataC[1].ToString());
|
}
|
}
|
|
protected override void AddListeners()
|
{
|
m_DropOutBtn.AddListener(ExitDungeon);
|
}
|
|
protected override void OnPreOpen()
|
{
|
timer = 0f;
|
int WinnerID = crossServerModel.pkResultInfo.WinnerID;
|
int playerID = (int)PlayerDatas.Instance.baseData.PlayerID;
|
if (WinnerID == playerID)
|
{
|
m_BackFailure.SetActive(false);
|
m_BackWin.SetActive(true);
|
}
|
else
|
{
|
m_BackFailure.SetActive(true);
|
m_BackWin.SetActive(false);
|
}
|
if (crossServerModel.pkResultInfo.OverType == 0)
|
{
|
m_Normal.SetActive(true);
|
m_BrokenLine.SetActive(false);
|
SetNormal();
|
}
|
else
|
{
|
SetBrokenLine();
|
m_Normal.SetActive(false);
|
m_BrokenLine.SetActive(true);
|
}
|
|
}
|
|
protected override void OnAfterOpen()
|
{
|
}
|
|
protected override void OnPreClose()
|
{
|
CrossServerOneVsOneRewardModel.SetPkType();
|
Buffmodel.PkType = CrossServerOneVsOneRewardModel.PkType;
|
}
|
|
protected override void OnAfterClose()
|
{
|
}
|
protected override void LateUpdate()
|
{
|
base.LateUpdate();
|
|
timer -= Time.deltaTime;
|
if (timer < 0f)
|
{
|
timer = 1f;
|
var endTime = model.GetCoolDownEndTime(DungeonCoolDownType.LeaveMap);
|
var seconds = (endTime - TimeUtility.ServerNow).TotalSeconds;
|
m_DropOutBtnText.text = Language.Get("DungeonVictoryWin_Btn_Exit_1", Mathf.Clamp((int)seconds, 0, int.MaxValue));
|
if (seconds <= 0)
|
{
|
ExitDungeon();
|
}
|
}
|
}
|
#endregion
|
private void ExitDungeon()
|
{
|
if (ClientCrossServerOneVsOne.isClientCrossServerOneVsOne)
|
{
|
ClientCrossServerOneVsOne.StopClientCrossServerOneVsOne();
|
}
|
else
|
{
|
CrossServerOneVsOneRewardModel.ExitCrossRealm();
|
}
|
|
CloseClick();
|
}
|
|
private void SetNormal()
|
{
|
m_RoundWinOne.SetActive(false);
|
m_RoundWinTwo.SetActive(false);
|
m_RoundWinThree.SetActive(false);
|
m_SessionObj.SetActive(false);
|
m_SegmentObj.SetActive(false);
|
int WinnerID = crossServerModel.pkResultInfo.WinnerID;
|
int PlayerId = (int)PlayerDatas.Instance.baseData.PlayerID;
|
for (int i = 0; i < crossServerModel.pkResultInfo.RoundCount; i++)
|
{
|
int winID = (int)crossServerModel.pkResultInfo.RoundWinnerIDs[i];
|
if (i == 0)
|
{
|
m_RoundWinOne.SetActive(true);
|
if (winID == PlayerId)
|
{
|
m_m_RoundWinOneTxt.text = Language.Get("CrossServer113");
|
m_m_RoundWinOneTxt.color = new Color32(255, 239, 71, 255);
|
}
|
else
|
{
|
m_m_RoundWinOneTxt.text = Language.Get("CrossServer114");
|
m_m_RoundWinOneTxt.color = new Color32(255, 244, 205, 255);
|
}
|
}
|
else if (i == 1)
|
{
|
m_RoundWinTwo.SetActive(true);
|
if (winID == PlayerId)
|
{
|
m_m_RoundWinTwo.text = Language.Get("CrossServer113");
|
m_m_RoundWinTwo.color = new Color32(255, 239, 71, 255);
|
}
|
else
|
{
|
m_m_RoundWinTwo.text = Language.Get("CrossServer114");
|
m_m_RoundWinTwo.color = new Color32(255, 244, 205, 255);
|
}
|
}
|
else if (i == 2)
|
{
|
m_RoundWinThree.SetActive(true);
|
if (winID == PlayerId)
|
{
|
m_m_RoundWinThree.text = Language.Get("CrossServer113");
|
m_m_RoundWinThree.color = new Color32(255, 239, 71, 255);
|
}
|
else
|
{
|
m_m_RoundWinThree.text = Language.Get("CrossServer114");
|
m_m_RoundWinThree.color = new Color32(255, 244, 205, 255);
|
}
|
}
|
|
}
|
if (crossServerModel.pkResultInfo.WinStreak > 1)
|
{
|
m_SessionObj.SetActive(true);
|
m_SessionTxt.text = crossServerModel.pkResultInfo.WinStreak.ToString();
|
}
|
if (crossServerModel.pkResultInfo.DanLV != CrossServerOneVsOneRewardModel.PkDanLvNow)
|
{
|
var config1 = CrossServerArenaConfig.Get(CrossServerOneVsOneRewardModel.PkDanLvNow);
|
m_SegmentObj.SetActive(true);
|
m_SegmentTxt1.text = config1.Name;
|
var config2 = CrossServerArenaConfig.Get(crossServerModel.pkResultInfo.DanLV);
|
m_SegmentTxt2.text = config2.Name;
|
|
}
|
if (crossServerModel.pkResultInfo.WinStreak > 1)
|
{
|
m_SorceText.text = Language.Get("CrossServer_Z1", crossServerModel.pkResultInfo.AddScore, (crossServerModel.pkResultInfo.AddScore - WinSorce));
|
}
|
else
|
{
|
if (WinnerID == PlayerId)
|
{
|
m_SorceText.text = Language.Get("CrossServer_Z2", crossServerModel.pkResultInfo.AddScore);
|
}
|
else
|
{
|
m_SorceText.text = Language.Get("CrossServer_Z2", crossServerModel.pkResultInfo.AddScore);
|
}
|
}
|
}
|
|
private void SetBrokenLine()
|
{
|
int WinnerID = crossServerModel.pkResultInfo.WinnerID;
|
int playerID = (int)PlayerDatas.Instance.baseData.PlayerID;
|
if (WinnerID == playerID)
|
{
|
m_BrokenLineText.text = Language.Get("CrossServer_Z6");
|
}
|
else
|
{
|
m_BrokenLineText.text = Language.Get("CrossServer_Z7");
|
}
|
if (crossServerModel.pkResultInfo.WinStreak > 1)
|
{
|
m_SessionObj1.SetActive(true);
|
m_SessionTxt1.text = crossServerModel.pkResultInfo.WinStreak.ToString();
|
}
|
else
|
{
|
m_SessionObj1.SetActive(false);
|
}
|
if (crossServerModel.pkResultInfo.DanLV != CrossServerOneVsOneRewardModel.PkDanLvNow)
|
{
|
var config1 = CrossServerArenaConfig.Get(CrossServerOneVsOneRewardModel.PkDanLvNow);
|
m_SegmentObj1.SetActive(true);
|
m_Segment_Txt1.text = config1.Name;
|
var config2 = CrossServerArenaConfig.Get(crossServerModel.pkResultInfo.DanLV);
|
m_Segment_Txt2.text = config2.Name;
|
}
|
else
|
{
|
m_SegmentObj1.SetActive(false);
|
}
|
if (crossServerModel.pkResultInfo.WinStreak > 1)
|
{
|
m_Sorce_Txt.text = Language.Get("CrossServer_Z1", crossServerModel.pkResultInfo.AddScore, (crossServerModel.pkResultInfo.AddScore - WinSorce));
|
}
|
else
|
{
|
if (WinnerID == playerID)
|
{
|
m_Sorce_Txt.text = Language.Get("CrossServer_Z2", crossServerModel.pkResultInfo.AddScore);
|
}
|
else
|
{
|
m_Sorce_Txt.text = Language.Get("CrossServer_Z2", crossServerModel.pkResultInfo.AddScore);
|
}
|
}
|
}
|
}
|
|
}
|
|
|
|
|