5e0d58cfad
EN: 1.2.0.60 CN: 1.2.0.61 JP: 1.2.0.63 KR: 1.2.0.67
148 lines
4.5 KiB
Lua
148 lines
4.5 KiB
Lua
local EnergyBatteryUseCtrl = class("EnergyBatteryUseCtrl", BaseCtrl)
|
|
local LayoutRebuilder = CS.UnityEngine.UI.LayoutRebuilder
|
|
EnergyBatteryUseCtrl._mapNodeConfig = {
|
|
goWindow = {},
|
|
animWindow = {sNodeName = "goWindow", sComponentName = "Animator"},
|
|
txtWindowTitle = {
|
|
sComponentName = "TMP_Text",
|
|
sLanguageId = "Energy_Battery_Use_Title"
|
|
},
|
|
btnClose = {
|
|
sComponentName = "UIButton",
|
|
callback = "OnBtnClick_Close"
|
|
},
|
|
txtItemName = {
|
|
sComponentName = "TMP_Text",
|
|
sLanguageId = "Energy_Battery_Title"
|
|
},
|
|
txtItemDesc = {
|
|
sComponentName = "TMP_Text",
|
|
sLanguageId = "Energy_Battery_Desc"
|
|
},
|
|
txtHaveCount = {
|
|
sComponentName = "TMP_Text",
|
|
sLanguageId = "Energy_Item_Count_Text"
|
|
},
|
|
txtHaveCountValue = {sComponentName = "TMP_Text"},
|
|
txtBatteryUseTitle = {
|
|
sComponentName = "TMP_Text",
|
|
sLanguageId = "Energy_Battery_Use_Amount"
|
|
},
|
|
txtBatteryUseValue = {sComponentName = "TMP_Text"},
|
|
goQuantitySlider = {
|
|
sNodeName = "tc_quantity_slider",
|
|
sCtrlName = "Game.UI.TemplateEx.TemplateQuantitySliderCtrl"
|
|
},
|
|
txtHave = {
|
|
sComponentName = "TMP_Text",
|
|
sLanguageId = "Energy_Buy_Confirm_Text"
|
|
},
|
|
imgArrow = {},
|
|
txtBeforeValue = {sComponentName = "TMP_Text"},
|
|
txtAfterValue = {sComponentName = "TMP_Text"},
|
|
goMaxValue = {},
|
|
txtMaxValue = {
|
|
sComponentName = "TMP_Text",
|
|
sLanguageId = "Energy_Count_Max"
|
|
},
|
|
rtCountBg = {
|
|
sNodeName = "imgCountBg",
|
|
sComponentName = "RectTransform"
|
|
},
|
|
btnConfirm2 = {
|
|
sComponentName = "UIButton",
|
|
callback = "OnBtnClick_Confirm"
|
|
},
|
|
txtConfirmBtn = {
|
|
sComponentName = "TMP_Text",
|
|
sLanguageId = "Energy_Item_Use_Btn_Text"
|
|
}
|
|
}
|
|
EnergyBatteryUseCtrl._mapEventConfig = {
|
|
[EventId.UpdateEnergyBattery] = "OnEvent_UpdateEnergyBattery"
|
|
}
|
|
function EnergyBatteryUseCtrl:Awake()
|
|
self.bEnable = false
|
|
end
|
|
function EnergyBatteryUseCtrl:OnEnable()
|
|
self.bEnable = true
|
|
end
|
|
function EnergyBatteryUseCtrl:ShowPanel()
|
|
self.bBlur = self._panel.bBlur
|
|
self.nUseCount = 1
|
|
self.nMaxCount = 0
|
|
self.nMinCount = 0
|
|
self._mapNode.animWindow:Play("t_window_04_t_in")
|
|
EventManager.Hit(EventId.TemporaryBlockInput, 0.3)
|
|
self:RefreshUseLimit()
|
|
local callback = function(nCount)
|
|
self.nUseCount = nCount
|
|
self:RefreshAddCount()
|
|
end
|
|
self._mapNode.goQuantitySlider:Init(callback, self.nUseCount, self.nMaxCount)
|
|
self:RefreshAddCount()
|
|
end
|
|
function EnergyBatteryUseCtrl:OnDisable()
|
|
self.bEnable = false
|
|
end
|
|
function EnergyBatteryUseCtrl:OnDestroy()
|
|
end
|
|
function EnergyBatteryUseCtrl:RefreshUseLimit()
|
|
local nCurEnergyBattery = PlayerData.Base:GetCurEnergyBattery().nEnergyBattery
|
|
local nCurEnergy = PlayerData.Base:GetCurEnergy().nEnergy
|
|
local nMaxEnergy = ConfigTable.GetConfigNumber("EnergyObtainLimit")
|
|
local nMaxCount = nMaxEnergy - nCurEnergy
|
|
NovaAPI.SetTMPText(self._mapNode.txtHaveCountValue, nCurEnergyBattery)
|
|
self.nMaxCount = nCurEnergyBattery < nMaxCount and nCurEnergyBattery or nMaxCount
|
|
end
|
|
function EnergyBatteryUseCtrl:RefreshAddCount()
|
|
NovaAPI.SetTMPText(self._mapNode.txtBatteryUseValue, self.nUseCount)
|
|
local nCurEnergy = PlayerData.Base:GetCurEnergy().nEnergy
|
|
NovaAPI.SetTMPText(self._mapNode.txtBeforeValue, nCurEnergy)
|
|
if self.nUseCount > self.nMaxCount then
|
|
self.nUseCount = self.nMaxCount
|
|
elseif self.nUseCount < 1 then
|
|
self.nUseCount = 1
|
|
end
|
|
local nAfterValue = nCurEnergy + self.nUseCount
|
|
NovaAPI.SetTMPText(self._mapNode.txtAfterValue, nAfterValue)
|
|
self._mapNode.imgArrow.gameObject:SetActive(self.nUseCount > 0)
|
|
self._mapNode.txtAfterValue.gameObject:SetActive(self.nUseCount > 0)
|
|
self._mapNode.goMaxValue.gameObject:SetActive(nAfterValue >= self._panel.nMaxEnergy)
|
|
LayoutRebuilder.ForceRebuildLayoutImmediate(self._mapNode.rtCountBg)
|
|
end
|
|
function EnergyBatteryUseCtrl:Close()
|
|
self._mapNode.animWindow:Play("t_window_04_t_out")
|
|
EventManager.Hit("ConsumableUsed")
|
|
end
|
|
function EnergyBatteryUseCtrl:OnBtnClick_Close()
|
|
EventManager.Hit("CloseEnergyBuyPanel")
|
|
end
|
|
function EnergyBatteryUseCtrl:OnBtnClick_Confirm()
|
|
if self.nUseCount <= 0 then
|
|
return
|
|
end
|
|
if self.nUseCount > self.nMaxCount then
|
|
local sTip = ConfigTable.GetUIText("Energy_Use_Tip_2")
|
|
EventManager.Hit(EventId.OpenMessageBox, {
|
|
nType = AllEnum.MessageBox.Tips,
|
|
sContent = sTip,
|
|
bBlur = false
|
|
})
|
|
return
|
|
end
|
|
local msgCallback = function()
|
|
EventManager.Hit(EventId.OpenPanel, PanelId.ReceivePropsTips, {
|
|
{
|
|
id = AllEnum.CoinItemId.Energy,
|
|
count = self.nUseCount
|
|
}
|
|
})
|
|
EventManager.Hit("CloseEnergyBuyPanel")
|
|
end
|
|
PlayerData.Base:SendEnergyBatteryExtract(self.nUseCount, msgCallback)
|
|
end
|
|
function EnergyBatteryUseCtrl:OnEvent_UpdateEnergyBattery()
|
|
end
|
|
return EnergyBatteryUseCtrl
|