using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; using GCGame.Table; using Module.Log; public class PvpSceneInfo : MonoBehaviour { public static PvpSceneInfo Instance; private void Awake() { Instance = this; } private void OnDestroy() { Instance = null; } public List _NumSpriteList; public Image _SegmentIcon; public Image _SegmentDescIcon; public Image _SegmentNumIcon; public GameObject _SementLevelDescPanel; public Text _SegmentLevelDesc; public Text _MatchRemainTime; public Text _RemainTimeText; public Text _Desc; private void OnEnable() { OnBtnShow(); ReqPvpInfo(); if (FunctionButtonLogic.Instance()) { FunctionButtonLogic.Instance().IsCanShwoBaseBtns = true; } if (MissionInfoController.Instance() && MissionInfoController.Instance().isActiveAndEnabled) { UIManager.CloseUI(UIInfo.MissionInfoController); } UIManager.CloseUI(UIInfo.MissionDialogAndLeftTabsRoot); _Desc.text = StrDictionary.GetClientDictionaryString("#{81025}"); var remainTime = GetActEndTime(); _RemainTimeText.text = StrDictionary.GetClientDictionaryString("#{81027}", (remainTime / 60).ToString().PadLeft(2, '0'), (remainTime % 60).ToString().PadLeft(2, '0')); StopAllCoroutines(); StartCoroutine(CountRemainTime()); //StartCoroutine(CountMatchRemainTimeSyc()); ReqRewInfo(); } public void InitSegmentInfo() { var _MySelfPvpInfo = GameManager.gameManager.PlayerDataPool.pvpIfo; //必做刷新 var honorTab = TableManager.GetHonorBattlefieldSegmentByID(_MySelfPvpInfo.PvpSegmentLevel, 0); if (honorTab == null) { return; } LoadAssetBundle.Instance.SetImageSprite(_SegmentIcon, honorTab.SegmentIcon); LoadAssetBundle.Instance.SetImageSprite(_SegmentDescIcon, honorTab.SegmentDescIcon); _SegmentNumIcon.overrideSprite = _NumSpriteList[honorTab.SegmentNumDescIconIndex]; if(_MySelfPvpInfo.IsMaxLevel()) { _SementLevelDescPanel.SetActive(false); } else { _SementLevelDescPanel.SetActive(true); _SegmentLevelDesc.text = _MySelfPvpInfo.SelfPvpScore + "/" + _MySelfPvpInfo.GetNextLevelNeedScore(); } } void ReqRewInfo() { ReqHonorBattlefieldPlayerInfo req = new ReqHonorBattlefieldPlayerInfo(); req.Flag = 1; req.SendMsg(); } IEnumerator CountMatchRemainTimeSyc() { while (true) { yield return new WaitForSeconds(1.0f); var remainTime = GameManager.gameManager.PlayerDataPool.pvpIfo._RoomMatchRemainTime - GlobalData.ServerAnsiTime; if (remainTime <= 0) { _MatchRemainTime.text = StrDictionary.GetClientDictionaryString("#{81026}", 0); yield break; } _MatchRemainTime.text = StrDictionary.GetClientDictionaryString("#{81026}", remainTime); } } public int GetActEndTime() { var actTab = ActivityDataManager.Instance.GetActivityTabByServerType(ActivityDataManager.Activity_Type.ACTIVITY_TYPE_PVP); List EndTimeList = new List(); for(int index = 0; index < actTab.getTimeCount(); index++) { if(!actTab.GetTimebyIndex(index).Equals("-1")) { EndTimeList.Add(int.Parse(actTab.GetTimebyIndex(index).Split('|')[1])); } } var curTime = GCGame.Utils.GetServerDateTime().Hour * 100 + GCGame.Utils.GetServerDateTime().Minute; for(int index = 0; index < EndTimeList.Count; index++) { if(curTime < EndTimeList[index]) { var val = ((EndTimeList[index] / 100 - curTime / 100) * 60 + (EndTimeList[index] % 100 - curTime % 100)) * 60 - GCGame.Utils.GetServerDateTime().Second; return val > 0 ? val : 0; } } return 0; } IEnumerator CountRemainTime() { while(true) { yield return new WaitForSeconds(1.0f); var remainTime = GetActEndTime(); if (remainTime < 0) { _RemainTimeText.text = StrDictionary.GetClientDictionaryString("#{81027}", "00", "00"); yield break; } _RemainTimeText.text = StrDictionary.GetClientDictionaryString("#{81027}", (remainTime / 60).ToString().PadLeft(2, '0'), (remainTime % 60).ToString().PadLeft(2, '0')); } } public void OnOpenRoomBtn() { UIManager.ShowUI(UIInfo.PvpRoomListPanel); } public void OnRoomInfoBtn() { UIManager.ShowUI(UIInfo.PvpRoomPanel, delegate(bool bSucess, object param) { if(bSucess) { PvpRoomPanel.Instance.OnShowBtn(); } }); } public void OnInvateBtn() { UIManager.ShowUI(UIInfo.PvpInvateRoot); } public void OnExitBtn() { CG_LEAVE_COPYSCENE send = (CG_LEAVE_COPYSCENE)PacketDistributed.CreatePacket(MessageID.PACKET_CG_LEAVE_COPYSCENE); send.NoParam = 1; send.SendPacket(); UIManager.CloseUI(UIInfo.PvpSceneInfo); } #region move public ObjectTween _MoveTo; public RectTransform _TitleBGRec; public GameObject _ShowBtn; public GameObject _HideBtn; public GameObject _InfoPanel; public GameObject _RedIcon; private bool isShow = false; public void OnBtnShow() { ShowPanel(); _ShowBtn.SetActive(false); _HideBtn.SetActive(true); isShow = true; UIManager.CloseUI(UIInfo.MiniMapRoot); } public void OnBtnHide() { HidePanel(); _ShowBtn.SetActive(true); _HideBtn.SetActive(false); isShow = false; } public void OnTitleBtn() { if (isShow) { OnBtnHide(); } else { OnBtnShow(); } } public void ShowPanel() { _MoveTo.Reset(); _MoveTo.destantPos = new Vector3(0, 0, 0); GCGame.Utils.HideMainTopRightUI(); _TitleBGRec.sizeDelta = new Vector2(300, _TitleBGRec.sizeDelta.y); _InfoPanel.gameObject.SetActive(true); } public void HidePanel() { _MoveTo.Reset(); _MoveTo.destantPos = new Vector3(0, -192, 0); GCGame.Utils.ShowMainTopRightUI(); _TitleBGRec.sizeDelta = new Vector2(230, _TitleBGRec.sizeDelta.y); _InfoPanel.gameObject.SetActive(false); } #endregion public void OnRuleBtn() { PvpMatchRulePanel.OPenUI(); } public void OnRewBtn() { UIManager.ShowUI(UIInfo.PvpRewPanel); } public void RefreshRewRedIconState() { _RedIcon.SetActive(GameManager.gameManager.PlayerDataPool.pvpIfo.IsHaveRew()); } void ReqPvpInfo() { ReqHonorBattlefieldPlayerInfo req = new ReqHonorBattlefieldPlayerInfo(); req.Flag = 1; req.SendMsg(); } public void OnSwitchChannel() { CG_REQ_SCENE_SUB_LINE ask = (CG_REQ_SCENE_SUB_LINE)PacketDistributed.CreatePacket(MessageID.PACKET_CG_REQ_SCENE_SUB_LINE); ask.NoParam = 1; ask.SendPacket(); } }