Initial version - 1.2.0.60
EN: 1.2.0.60 CN: 1.2.0.61 JP: 1.2.0.63 KR: 1.2.0.67
This commit is contained in:
@@ -0,0 +1,189 @@
|
||||
local ConsumableCtrl = class("ConsumableCtrl", BaseCtrl)
|
||||
ConsumableCtrl._mapNodeConfig = {
|
||||
blur = {
|
||||
sNodeName = "t_fullscreen_blur_blue"
|
||||
},
|
||||
aniBlur = {
|
||||
sNodeName = "t_fullscreen_blur_blue",
|
||||
sComponentName = "Animator"
|
||||
},
|
||||
btnBlur = {
|
||||
sNodeName = "snapshot",
|
||||
sComponentName = "Button",
|
||||
callback = "OnBtnClick_Cancel"
|
||||
},
|
||||
BatchItem = {
|
||||
sCtrlName = "Game.UI.Consumable.BatchItemCtrl"
|
||||
},
|
||||
OutfitSelect = {
|
||||
sCtrlName = "Game.UI.Consumable.OutfitSelectCtrl"
|
||||
},
|
||||
RandomItemSelect = {
|
||||
sCtrlName = "Game.UI.Consumable.RandomItemSelect"
|
||||
}
|
||||
}
|
||||
ConsumableCtrl._mapEventConfig = {
|
||||
ConfirmUseItem = "OnEvent_ConfirmUseItem",
|
||||
CancelUseItem = "OnEvent_ClickCancel"
|
||||
}
|
||||
ConsumableCtrl._mapRedDotConfig = {}
|
||||
function ConsumableCtrl:Awake()
|
||||
end
|
||||
function ConsumableCtrl:FadeIn()
|
||||
end
|
||||
function ConsumableCtrl:FadeOut()
|
||||
end
|
||||
function ConsumableCtrl:OnEnable()
|
||||
self._mapNode.blur:SetActive(true)
|
||||
local tbParam = self:GetPanelParam()
|
||||
self.tbItems = tbParam[1]
|
||||
self.nCurIdx = 1
|
||||
if self.tbItems == nil then
|
||||
local wait = function()
|
||||
coroutine.yield(CS.UnityEngine.WaitForEndOfFrame())
|
||||
coroutine.yield(CS.UnityEngine.WaitForEndOfFrame())
|
||||
EventManager.Hit(EventId.ClosePanel, PanelId.Consumable)
|
||||
end
|
||||
cs_coroutine.start(wait)
|
||||
else
|
||||
local nItemId = self.tbItems[self.nCurIdx]
|
||||
local mapItemCfgData = ConfigTable.GetData_Item(nItemId)
|
||||
if mapItemCfgData ~= nil then
|
||||
do
|
||||
local wait = function()
|
||||
coroutine.yield(CS.UnityEngine.WaitForEndOfFrame())
|
||||
if mapItemCfgData.Stype == GameEnum.itemStype.OutfitCYO then
|
||||
self._mapNode.OutfitSelect:OpenPanel(nItemId)
|
||||
elseif mapItemCfgData.Stype == GameEnum.itemStype.RandomPackage then
|
||||
local nItemCount = PlayerData.Item:GetItemCountByID(nItemId)
|
||||
self._mapNode.RandomItemSelect:OpenPanel(nItemId, nItemCount)
|
||||
elseif mapItemCfgData.Stype == GameEnum.itemStype.ComCYO then
|
||||
local nItemCount = PlayerData.Item:GetItemCountByID(nItemId)
|
||||
local nSelectItemId = tbParam[2]
|
||||
local nNeedCount = tbParam[3]
|
||||
self._mapNode.BatchItem:OpenPanel(nItemId, nItemCount, nSelectItemId, nNeedCount)
|
||||
end
|
||||
end
|
||||
cs_coroutine.start(wait)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
function ConsumableCtrl:OnDisable()
|
||||
end
|
||||
function ConsumableCtrl:OnDestroy()
|
||||
end
|
||||
function ConsumableCtrl:OnRelease()
|
||||
end
|
||||
function ConsumableCtrl:OnEvent_ConfirmUseItem(nItemId, nCount, nChooseTid)
|
||||
local tbItem = PlayerData.Item:GetItemSortByExpire(nItemId)
|
||||
if #tbItem == 0 then
|
||||
printError("没有可使用的道具:" .. nItemId)
|
||||
return
|
||||
end
|
||||
local tbUseItem = {}
|
||||
local nRemainCount = nCount
|
||||
if nChooseTid ~= nil then
|
||||
for _, tbItemCount in ipairs(tbItem) do
|
||||
if nRemainCount > tbItemCount[2] then
|
||||
table.insert(tbUseItem, {
|
||||
Id = tbItemCount[1],
|
||||
Tid = nItemId,
|
||||
SelectTid = nChooseTid,
|
||||
Qty = tbItemCount[2] == 1 and 0 or tbItemCount[2]
|
||||
})
|
||||
nRemainCount = nRemainCount - tbItemCount[2]
|
||||
else
|
||||
table.insert(tbUseItem, {
|
||||
Id = tbItemCount[1],
|
||||
Tid = nItemId,
|
||||
SelectTid = nChooseTid,
|
||||
Qty = nRemainCount == 1 and 0 or nRemainCount
|
||||
})
|
||||
nRemainCount = 0
|
||||
break
|
||||
end
|
||||
end
|
||||
else
|
||||
for _, tbItemCount in ipairs(tbItem) do
|
||||
if 0 < nRemainCount then
|
||||
if nRemainCount > tbItemCount[2] then
|
||||
table.insert(tbUseItem, {
|
||||
Id = tbItemCount[1],
|
||||
Tid = nItemId,
|
||||
Qty = tbItemCount[2]
|
||||
})
|
||||
nRemainCount = nRemainCount - tbItemCount[2]
|
||||
else
|
||||
table.insert(tbUseItem, {
|
||||
Id = tbItemCount[1],
|
||||
Tid = nItemId,
|
||||
Qty = nRemainCount
|
||||
})
|
||||
nRemainCount = 0
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
local callback = function()
|
||||
EventManager.Hit("ConsumableUsed")
|
||||
self._mapNode.BatchItem.gameObject:SetActive(false)
|
||||
self._mapNode.OutfitSelect.gameObject:SetActive(false)
|
||||
self._mapNode.RandomItemSelect.gameObject:SetActive(false)
|
||||
if self.tbItems[self.nCurIdx + 1] ~= nil then
|
||||
self.nCurIdx = self.nCurIdx + 1
|
||||
local nItemId = self.tbItems[self.nCurIdx]
|
||||
local mapItemCfgData = ConfigTable.GetData_Item(nItemId)
|
||||
if mapItemCfgData ~= nil then
|
||||
if mapItemCfgData.Stype == GameEnum.itemStype.OutfitCYO then
|
||||
self._mapNode.OutfitSelect:OpenPanel(nItemId)
|
||||
elseif mapItemCfgData.Stype == GameEnum.itemStype.RandomPackage then
|
||||
local nItemCount = PlayerData.Item:GetItemCountByID(nItemId)
|
||||
self._mapNode.RandomItemSelect:OpenPanel(nItemId, nItemCount)
|
||||
elseif mapItemCfgData.Stype == GameEnum.itemStype.ComCYO then
|
||||
local nItemCount = PlayerData.Item:GetItemCountByID(nItemId)
|
||||
self._mapNode.BatchItem:OpenPanel(nItemId, nItemCount)
|
||||
end
|
||||
end
|
||||
else
|
||||
EventManager.Hit(EventId.ClosePanel, PanelId.Consumable)
|
||||
end
|
||||
end
|
||||
if nChooseTid ~= nil then
|
||||
PlayerData.Item:SendPickItemMsg(tbUseItem, callback, true)
|
||||
else
|
||||
PlayerData.Item:SendUseItemMsg(tbUseItem, callback, true)
|
||||
end
|
||||
end
|
||||
function ConsumableCtrl:OnEvent_ClickCancel()
|
||||
self._mapNode.aniBlur:SetTrigger("tOut")
|
||||
local wait = function()
|
||||
self._mapNode.BatchItem.gameObject:SetActive(false)
|
||||
self._mapNode.OutfitSelect.gameObject:SetActive(false)
|
||||
self._mapNode.RandomItemSelect.gameObject:SetActive(false)
|
||||
if self.tbItems[self.nCurIdx + 1] ~= nil then
|
||||
self.nCurIdx = self.nCurIdx + 1
|
||||
local nItemId = self.tbItems[self.nCurIdx]
|
||||
local mapItemCfgData = ConfigTable.GetData_Item(nItemId)
|
||||
if mapItemCfgData ~= nil then
|
||||
if mapItemCfgData.Stype == GameEnum.itemStype.OutfitCYO then
|
||||
self._mapNode.OutfitSelect:OpenPanel(nItemId)
|
||||
elseif mapItemCfgData.Stype == GameEnum.itemStype.RandomPackage then
|
||||
local nItemCount = PlayerData.Item:GetItemCountByID(nItemId)
|
||||
self._mapNode.RandomItemSelect:OpenPanel(nItemId, nItemCount)
|
||||
elseif mapItemCfgData.Stype == GameEnum.itemStype.ComCYO then
|
||||
local nItemCount = PlayerData.Item:GetItemCountByID(nItemId)
|
||||
self._mapNode.BatchItem:OpenPanel(nItemId, nItemCount)
|
||||
end
|
||||
end
|
||||
else
|
||||
EventManager.Hit(EventId.ClosePanel, PanelId.Consumable)
|
||||
end
|
||||
end
|
||||
self:AddTimer(1, 0.2, wait, true, true, true)
|
||||
end
|
||||
function ConsumableCtrl:OnBtnClick_Cancel()
|
||||
self._mapNode.aniBlur:SetTrigger("tOut")
|
||||
EventManager.Hit("ConsumableCancel")
|
||||
end
|
||||
return ConsumableCtrl
|
||||
Reference in New Issue
Block a user