//-------------------------------------------------------- // [Author]: 第二世界 // [ Date ]: Wednesday, January 03, 2018 //-------------------------------------------------------- using System; using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; namespace Snxxz.UI { public class OffLineOnHookWin : Window { OffLineOnHookModel m_OnHookModel; OffLineOnHookModel onHookModel { get { return m_OnHookModel ?? (m_OnHookModel = ModelCenter.Instance.GetModel()); } } [SerializeField] GameObject m_PlugInTime;//外挂时间 [SerializeField] Text m_CoentText_t; [SerializeField] GameObject m_LevelReached;//等级 [SerializeField] Text m_CoentText_L; [SerializeField] GameObject m_GainExperience;//获得经验 [SerializeField] Text m_CoentText_G; [SerializeField] Button m_CloseBtn; [SerializeField] Button m_OnHookSettingUpBtn; [SerializeField] Button m_KnowCloseBtn; [SerializeField] GameObject m_PointTo;//指向 [SerializeField] Text m_LvCoentText;//升级 [SerializeField] ScrollerController m_ScrollerController; #region Built-in protected override void BindController() { } protected override void AddListeners() { m_CloseBtn.AddListener(OnClickCloseButton); m_OnHookSettingUpBtn.AddListener(OnClickOnHookSettingUpButton); m_KnowCloseBtn.AddListener(OnClickKnowCloseButton); } void OnClickCloseButton() { Close(); onHookModel.IsOpenOffLineOnHookBool = false; } void OnClickOnHookSettingUpButton() { Close(); WindowJumpMgr.Instance.WindowJumpTo(JumpUIType.SystemSettingFunc1); } void OnClickKnowCloseButton() { Close(); onHookModel.IsOpenOffLineOnHookBool = false; } protected override void OnPreOpen() { m_ScrollerController.OnRefreshCell += OnRefreshGridCell; OnCreateGridLineCell(m_ScrollerController); if ((int)PlayerDatas.Instance.baseData.hangTime > 0) { m_CoentText_t.text = TimeText(onHookModel.mCTJGInfoClass.Time) + string.Format(Language.Get("Remaining_Z"), TimeText1((int)PlayerDatas.Instance.baseData.hangTime)); } else { m_CoentText_t.text = TimeText(onHookModel.mCTJGInfoClass.Time); } if (PlayerDatas.Instance.baseData.LV > onHookModel.mCTJGInfoClass.PlayerLV) { m_CoentText_L.text = onHookModel.mCTJGInfoClass.PlayerLV + Language.Get("Z1041"); m_PointTo.SetActive(true); m_LvCoentText.gameObject.SetActive(true); m_LvCoentText.text = PlayerDatas.Instance.baseData.LV + Language.Get("Z1041"); } else { m_CoentText_L.text = PlayerDatas.Instance.baseData.LV + Language.Get("Z1041"); m_PointTo.SetActive(false); m_LvCoentText.gameObject.SetActive(false); } m_CoentText_G.text = ExpText(onHookModel.mCTJGInfoClass.Exp1, onHookModel.mCTJGInfoClass.Exp2); } protected override void OnAfterOpen() { } protected override void OnPreClose() { m_ScrollerController.OnRefreshCell -= OnRefreshGridCell; } protected override void OnAfterClose() { if (!WindowJumpMgr.Instance.IsJumpState) { TipPanel.Instance.IsOPenTip(); WindowCenter.Instance.Open(); } } void OnCreateGridLineCell(ScrollerController gridCtrl)//预制体创建 { gridCtrl.Refresh(); if (onHookModel.mCTJGInfoClass.OrangeEquip != 0)//橙装 { gridCtrl.AddCell(ScrollerDataType.Header, 1); } if (onHookModel.mCTJGInfoClass.PurpleEquip != 0)//紫装 { gridCtrl.AddCell(ScrollerDataType.Header, 2); } if (onHookModel.mCTJGInfoClass.EatPurpleEquip != 0)//装备分解 { gridCtrl.AddCell(ScrollerDataType.Header, 3); } if (onHookModel.mCTJGInfoClass.GiveCount != 0)//炼丹材料 { gridCtrl.AddCell(ScrollerDataType.Header, 4); } foreach (var key in onHookModel.DicItem.Keys) { gridCtrl.AddCell(ScrollerDataType.Header, key); } gridCtrl.Restart(); } private void OnRefreshGridCell(ScrollerDataType type, CellView cell) { int ItemID = cell.index; PickUpInformation pickUpInformation = cell.GetComponent(); if (ItemID == 1) { pickUpInformation.TitleText.text =Language.Get("PickUp_Z"); pickUpInformation.CoentText.text = string.Format(Language.Get("CraftItem"), onHookModel.mCTJGInfoClass.OrangeEquip); } if (ItemID == 2) { pickUpInformation.TitleText.text = Language.Get("PickUp_Z"); pickUpInformation.CoentText.text = string.Format(Language.Get("PurpleEquipment_1"), onHookModel.mCTJGInfoClass.PurpleEquip); } if (ItemID == 3) { pickUpInformation.TitleText.text = Language.Get("EquipmentBreakdown_Z"); pickUpInformation.CoentText.text = string.Format(Language.Get("PurpleEquipment_2"), onHookModel.mCTJGInfoClass.EatPurpleEquip); } if (ItemID == 4) { pickUpInformation.TitleText.text = Language.Get("EquipmentBreakdown_Z"); pickUpInformation.CoentText.text = string.Format(Language.Get("PurpleEquipment_3"), onHookModel.mCTJGInfoClass.GiveCount); } if (ItemID > 4) { pickUpInformation.TitleText.text = Language.Get("PickUp_Z"); ItemConfig itemconfig = ItemConfig.Get(ItemID); pickUpInformation.CoentText.color = UIHelper.GetUIColor(itemconfig.ItemColor, true); pickUpInformation.CoentText.text = string.Format(Language.Get("ItemsToPickUp"), itemconfig.ItemName, onHookModel.DicItem[ItemID]); } } #endregion string TimeText(int second)//脱机时间(使用时间) { string strTime = string.Empty; if (second > 0 && second < 60) { strTime = 1 + Language.Get("RealmWin_Bewrite_34"); return strTime; } else if (second >= 60 && second < 3600) { strTime = Mathf.CeilToInt((float)(second % 3600) / 60) + Language.Get("RealmWin_Bewrite_34"); return strTime; } else if (second >= 3600) { strTime = second / 3600 + Language.Get("RealmWin_Bewrite_33") + Mathf.CeilToInt((float)(second % 3600) / 60) + Language.Get("RealmWin_Bewrite_34"); return strTime; } return strTime; } string TimeText1(int second)//脱机时间和剩余时间(剩余) { string strTime = string.Empty; if (second > 0 && second < 60) { strTime = 0 + Language.Get("RealmWin_Bewrite_34"); return strTime; } else if (second >= 60 && second < 3600) { strTime = Mathf.FloorToInt((float)(second % 3600) / 60) + Language.Get("RealmWin_Bewrite_34"); return strTime; } else if (second >= 3600) { strTime = second / 3600 + Language.Get("RealmWin_Bewrite_33") + Mathf.FloorToInt((float)(second % 3600) / 60) + Language.Get("RealmWin_Bewrite_34"); return strTime; } return strTime; } string ExpText(int exp1, int exp2)//1经验,2亿级经验 { float Number = 0; string expText = string.Empty; if (exp2 != 0) { Number = (float)Math.Round((double)exp1 / 100000000, 2); expText = (float)exp2 + Number + Language.Get("KnapS115"); return expText; } else if (exp1 >= 10000 && exp2 == 0) { Number = (float)Math.Round((double)exp1 / 10000, 2); expText = Number + Language.Get("KnapS114"); return expText; } else if (exp1 < 10000 && exp2 == 0) { expText = exp1.ToString(); return expText; } return expText; } } }