//--------------------------------------------------------
|
// [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<OffLineOnHookModel>()); } }
|
|
#region Built-in
|
protected override void BindController()
|
{
|
}
|
|
protected override void AddListeners()
|
{
|
m_CloseBtn.AddListener(OnClickCloseButton);
|
getBtn.AddListener(() =>
|
{
|
CloseClick();
|
var seconds = TimeUtility.AllSeconds - onHookModel.startSeconds + onHookModel.mCTJGInfoClass.AwardSeconds;
|
//时间太短不结算
|
if (seconds < 65)
|
return;
|
onHookModel.GetAward(0);
|
});
|
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<float>(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<ItemCell>();
|
|
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, bool>)((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<ForeverCardWin>();
|
}
|
isToggleON = isToggle;
|
}));
|
|
}
|
else
|
{
|
onHookModel.GetAward(1);
|
}
|
}
|
}
|
|
}
|
|
}
|
|
|
|
|