//-------------------------------------------------------- // [Author]: 第二世界 // [ Date ]: Wednesday, January 03, 2018 //-------------------------------------------------------- using System; using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; namespace vnxbqy.UI { public class OffLineOnHookWin : Window { [SerializeField] Button m_CloseBtn; [SerializeField] Text onHookTimeText; [SerializeField] Text onHookInfo; [SerializeField] Text onHookEffText; //挂机效益 [SerializeField] Text onHookExpText; //挂机经验 [SerializeField] Text onHookMoneyLSText; //挂机灵石 [SerializeField] Text onHookMoneyTQText; //挂机铜钱 [SerializeField] ScrollerController itemScroller; //挂机物品 [SerializeField] Button buyBtn; [SerializeField] Text buyEffText; [SerializeField] Button getBtn; OffLineOnHookModel m_OnHookModel; OffLineOnHookModel onHookModel { get { return m_OnHookModel ?? (m_OnHookModel = ModelCenter.Instance.GetModel()); } } #region Built-in protected override void BindController() { } protected override void AddListeners() { m_CloseBtn.AddListener(OnClickCloseButton); getBtn.AddListener(() => { if (onHookModel.mCTJGInfoClass.Exp < 0) return; onHookModel.GetAward(0); CloseClick(); }); buyBtn.AddListener(QuickBuy); } void OnClickCloseButton() { Close(); } protected override void OnPreOpen() { GlobalTimeEvent.Instance.secondEvent += OnSecondEvent; onHookModel.onHookTimeEvent += Display; itemScroller.OnRefreshCell += OnRefreshCell; //已打开不再自动打开 onHookModel.openWinState = 0; Display(); } protected override void OnAfterOpen() { } protected override void OnPreClose() { GlobalTimeEvent.Instance.secondEvent -= OnSecondEvent; onHookModel.onHookTimeEvent -= Display; itemScroller.OnRefreshCell -= OnRefreshCell; } protected override void OnAfterClose() { } #endregion void OnSecondEvent() { var maxTime = onHookModel.GetMaxOnHookTimeWithRealm() * 60 * 60; onHookTimeText.text = TimeUtility.SecondsToHMS((int)Math.Min(maxTime, TimeUtility.AllSeconds - onHookModel.startSeconds + onHookModel.mCTJGInfoClass.AwardSeconds)); } void Display() { OnSecondEvent(); Equation.Instance.Clear(); PlayerLVConfig cfg = PlayerLVConfig.Get(PlayerDatas.Instance.baseData.LV); Equation.Instance.AddKeyValue("reLV", PlayerDatas.Instance.baseData.LV); if (cfg != null) { Equation.Instance.AddKeyValue("reExp", cfg.ReExp); } else { Equation.Instance.AddKeyValue("reExp", 0); } Equation.Instance.AddKeyValue("worldLv", PlayerDatas.Instance.worldLv); onHookEffText.text = Language.Get("GameOnHook2", UIHelper.ReplaceLargeNum(3600 * Equation.Instance.Eval(onHookModel.formuleExp))); onHookExpText.text = Language.Get("L2013", Language.Get("L2012"), onHookModel.mCTJGInfoClass.Exp); int lscnt = 0; onHookModel.mCTJGInfoClass.moneys.TryGetValue(2, out lscnt); onHookMoneyLSText.text = Language.Get("L2013", Language.Get("MoneyType_2"), lscnt); int tqcnt = 0; onHookModel.mCTJGInfoClass.moneys.TryGetValue(3, out tqcnt); onHookMoneyTQText.text = Language.Get("L2013", Language.Get("MoneyType_3"), tqcnt); itemScroller.Refresh(); for (int i = 0;i< onHookModel.mCTJGInfoClass.ItemList.Count; i++) { itemScroller.AddCell(ScrollerDataType.Header, i); } itemScroller.Restart(); int hasCnt = onHookModel.GetMaxQuickCount() - onHookModel.mCTJGInfoClass.QuickAwardCount; string cntStr = Language.Get("GameOnHook3", UIHelper.AppendColor(hasCnt == 0 ? TextColType.Red : TextColType.Green, hasCnt.ToString(), true), onHookModel.GetMaxQuickCount()); buyEffText.text = cntStr; if (InvestModel.Instance.IsOnHookQuickBuyFree()) { buyEffText.text = cntStr +"\n"+ Language.Get("Z2014"); } onHookInfo.text = Language.Get("GameOnHook1", onHookModel.GetMaxOnHookTimeWithRealm()); } void OnRefreshCell(ScrollerDataType type, CellView cell) { ItemCell itemCell = cell.GetComponent(); int itemID = onHookModel.mCTJGInfoClass.ItemList[cell.index].x; int count = onHookModel.mCTJGInfoClass.ItemList[cell.index].y; itemCell.Init(new ItemCellModel(itemID, false, (ulong)count)); itemCell.button.AddListener(() => { ItemTipUtility.Show(itemID); }); } bool isToggleON = false; void QuickBuy() { int hasCnt = onHookModel.GetMaxQuickCount() - onHookModel.mCTJGInfoClass.QuickAwardCount; if (hasCnt == 0) { SysNotifyMgr.Instance.ShowTip("OpenHazyAddTimesError_2"); return; } if (InvestModel.Instance.IsOnHookQuickBuyFree()) { onHookModel.GetAward(1); } else { if (!isToggleON) { ConfirmCancel.ToggleConfirmCancel(Language.Get("Mail101"), Language.Get("GameOnHook5"), Language.Get("ConfirmCancel102"), onHookModel.GetQuickCost() + Language.Get("MoneyType_" + onHookModel.quickCostType), Language.Get("GameOnHook6"), (Action)((bool isOk, bool isToggle) => { if (isOk) { if (UIHelper.GetMoneyCnt(onHookModel.quickCostType) < (ulong)onHookModel.GetQuickCost()) { SysNotifyMgr.Instance.ShowTip("LackMoney", onHookModel.quickCostType); return; } onHookModel.GetAward(1); } else { WindowCenter.Instance.Open(); } isToggleON = isToggle; })); } else { onHookModel.GetAward(1); } } } } }