using UnityEngine; using UnityEngine.UI; using System.Collections; using System.Collections.Generic; using Games.GlobeDefine; using GCGame; using Module.Log; using GCGame.Table; using System; using Games.Events; public class TeamFubenEnsure : UIControllerBase { public void Start() { InitBtn(); } public void OnEnable() { SetInstance(this); InitTeam(); SdkControl.instance.ShakeDevice(); } public void OnDisable() { SetInstance(null); } public void Update() { TimeModifyUpdate(); } #region public const int ENSURE_TIME = 15; public UIContainerBase _TeamMenbers; public UIImgText _TimeValue; public Button _BtnCancel; public Button _BtnOk; public GameObject OKBtn; public GameObject _FubenDescObj; public Text _FubenDescText; //public GameObject OKTip; private float _ColddownTime = 0; private void InitTeam() { foreach (var teamMember in GameManager.gameManager.PlayerDataPool.TeamInfo.teamMember) { teamMember.EnsureFuben = false; } _TeamMenbers.InitContentItem(GameManager.gameManager.PlayerDataPool.TeamInfo.teamMember); _BtnCancel.interactable = true; _BtnOk.interactable = true; InitBtn(); //InvokeRepeating 在手机上切应用会导时间有差 //InvokeRepeating("TimeModify", 0, 1.0f); _ColddownTime = Time.realtimeSinceStartup; } private void InitBtn() { //if (Singleton.GetInstance().MainPlayer.IsTeamLeader()) //{ // OKBtn.gameObject.SetActive(false); //} //else { OKBtn.gameObject.SetActive(true); } } private void TimeModifyUpdate() { var timeLost = Time.realtimeSinceStartup - _ColddownTime; if(ENSURE_TIME> timeLost) { _TimeValue.text = ((int)(ENSURE_TIME - timeLost)).ToString(); } else { _TimeValue.text = "0"; } if (timeLost >= ENSURE_TIME) { PopWarningTips(); CloseWindow(); } } public void PopWarningTips() //文字判断要改成MarkIcon是否显示 { TeamFubenEnsureItem[] itemList = _TeamMenbers.GetComponentsInChildren(); for(int index = 0; index < itemList.Length; index++) { if(!itemList[index]._MemberEnsureIcon.activeInHierarchy) { GUIData.AddNotifyData(StrDictionary.GetClientDictionaryString("#{44037}", itemList[index]._MenberName.text)); break; } } } public void TeamFubenNotify(GC_NOTIFY_MEMBER_CONFIRM_ENTER_COPY packet) { CloseWindow(); } public void SetFubenNameTip(int _CopyScenId) { var fuben = TableManager.GetFubenByID(_CopyScenId, 0); if(fuben == null) { _FubenDescObj.SetActive(false); return; } _FubenDescObj.SetActive(true); _FubenDescText.text = StrDictionary.GetClientDictionaryString("#{7173}", fuben.DescInfo); } public void TeamFubenNotify(GC_BROADCAST_CONFIRM_ENTER_COPY packet) { var member = GameManager.gameManager.PlayerDataPool.TeamInfo.GetTeamMemberByguiId((ulong)packet.Memberguid); if (member == null) return; if (packet.Isaccept == 0) { if (member != null) { GUIData.AddNotifyData(StrDictionary.GetClientDictionaryString("#{5127}", member.MemberName)); } CloseWindow(); return; } else { LogModule.DebugLog("GC_BROADCAST_CONFIRM_ENTER_COPY:" + packet.Isaccept); member.EnsureFuben = true; _TeamMenbers.RefreshItems(); if(GameManager.gameManager.PlayerDataPool.MainPlayerBaseAttr.Guid == member.Guid) { if (OKBtn != null) OKBtn.SetActive(false); } } } public void OnBtnOk() { CG_CONFIRM_ENTER_COPY packet = (CG_CONFIRM_ENTER_COPY)PacketDistributed.CreatePacket(MessageID.PACKET_CG_CONFIRM_ENTER_COPY); packet.Isaccept = 1; packet.SendPacket(); OKBtn.gameObject.SetActive(false); // OKTip.gameObject.SetActive(true); } public void OnBtnCancel() { CG_CONFIRM_ENTER_COPY packet = (CG_CONFIRM_ENTER_COPY)PacketDistributed.CreatePacket(MessageID.PACKET_CG_CONFIRM_ENTER_COPY); packet.Isaccept = 0; packet.SendPacket(); CloseWindow(); } public void CloseWindow() { CancelInvoke(); UIManager.CloseUI(UIInfo.TeamFubenEnsure); } #endregion }