//-------------------------------------------------------- // [Author]: 第二世界 // [ Date ]: Wednesday, December 19, 2018 //-------------------------------------------------------- using System; using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; namespace Snxxz.UI { [XLua.Hotfix] 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(); } } DungeonModel model { get { return ModelCenter.Instance.GetModel(); } } BuffModel m_BuffModel; BuffModel Buffmodel { get { return m_BuffModel ?? (m_BuffModel = ModelCenter.Instance.GetModel()); } } 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); } } } } }