Update - 1.12.0.120
EN: 1.12.0.120 CN: 1.12.0.120 JP: 1.12.0.124 KR: 1.12.0.124
This commit is contained in:
@@ -1,4 +1,16 @@
|
||||
local DailyQuestCtrl = class("DailyQuestCtrl", BaseCtrl)
|
||||
local appendOrStack = function(tbDst, mapItem, sIdKey, sQtyKey, sExtraKey)
|
||||
if mapItem == nil then
|
||||
return
|
||||
end
|
||||
for _, v in ipairs(tbDst) do
|
||||
if v[sIdKey] == mapItem[sIdKey] and v[sExtraKey] == mapItem[sExtraKey] then
|
||||
v[sQtyKey] = (v[sQtyKey] or 0) + (mapItem[sQtyKey] or 0)
|
||||
return
|
||||
end
|
||||
end
|
||||
table.insert(tbDst, mapItem)
|
||||
end
|
||||
DailyQuestCtrl._mapNodeConfig = {
|
||||
txtActValue = {sComponentName = "TMP_Text"},
|
||||
imgActive = {sComponentName = "Image"},
|
||||
@@ -125,13 +137,15 @@ function DailyQuestCtrl:Refresh(tbDailyQuest)
|
||||
self:SetPngSprite(self._mapNode.imgActive, mapItemCfg.Icon)
|
||||
end
|
||||
self:RefreshActivityNode()
|
||||
local bFastReceive = false
|
||||
local bListCanReceive = false
|
||||
for _, mapData in ipairs(self.tbDailyQuest) do
|
||||
if mapData.nStatus == 1 then
|
||||
bFastReceive = true
|
||||
bListCanReceive = true
|
||||
break
|
||||
end
|
||||
end
|
||||
local bActCanReceive = self.tbCanReceiveAct ~= nil and 0 < #self.tbCanReceiveAct
|
||||
local bFastReceive = bListCanReceive or bActCanReceive
|
||||
self._mapNode.dailyQuestLSV.gameObject:SetActive(true)
|
||||
self._mapNode.btnFastReceive.gameObject:SetActive(bFastReceive)
|
||||
self._mapNode.btnFastReceiveGray.gameObject:SetActive(not bFastReceive)
|
||||
@@ -162,16 +176,101 @@ end
|
||||
function DailyQuestCtrl:OnBtnClick_ActReceive()
|
||||
PlayerData.Quest:ReceiveDailyActiveReward()
|
||||
end
|
||||
function DailyQuestCtrl:_RecalcCanReceiveAct()
|
||||
local nActiveCount = 0
|
||||
for _, mapDailyQuest in ipairs(self.tbDailyQuest or {}) do
|
||||
if mapDailyQuest.nStatus == 2 then
|
||||
local mapQuestData = ConfigTable.GetData("DailyQuest", mapDailyQuest.nTid)
|
||||
if mapQuestData ~= nil then
|
||||
nActiveCount = nActiveCount + mapQuestData.Active
|
||||
end
|
||||
end
|
||||
end
|
||||
self.nActiveCount = nActiveCount
|
||||
self.tbCanReceiveAct = {}
|
||||
for k, mapData in ipairs(self.tbQuestActive or {}) do
|
||||
local bComplete = nActiveCount >= mapData.Active
|
||||
local bReceived = PlayerData.Quest:CheckDailyActiveReceive(mapData.Id)
|
||||
if bComplete and not bReceived then
|
||||
table.insert(self.tbCanReceiveAct, k)
|
||||
end
|
||||
end
|
||||
end
|
||||
function DailyQuestCtrl:OnBtnClick_FastReceive()
|
||||
PlayerData.Quest:ReceiveDailyReward(0)
|
||||
local bListCanReceive = false
|
||||
for _, mapData in ipairs(self.tbDailyQuest) do
|
||||
if mapData.nStatus == 1 then
|
||||
bListCanReceive = true
|
||||
break
|
||||
end
|
||||
end
|
||||
local bActCanReceive = self.tbCanReceiveAct ~= nil and #self.tbCanReceiveAct > 0
|
||||
local tab = {}
|
||||
table.insert(tab, {
|
||||
"role_id",
|
||||
tostring(PlayerData.Base._nPlayerId)
|
||||
})
|
||||
NovaAPI.UserEventUpload("daily_mission_complete", tab)
|
||||
if not bListCanReceive and not bActCanReceive then
|
||||
return
|
||||
end
|
||||
if bListCanReceive then
|
||||
PlayerData.Quest:ReceiveDailyReward(0)
|
||||
else
|
||||
PlayerData.Quest:ReceiveDailyActiveReward()
|
||||
end
|
||||
end
|
||||
function DailyQuestCtrl:_AccumulateListChange(mapMsgData)
|
||||
if mapMsgData == nil then
|
||||
return
|
||||
end
|
||||
local mapReward = PlayerData.Item:ProcessRewardChangeInfo(mapMsgData)
|
||||
if mapReward == nil then
|
||||
return
|
||||
end
|
||||
for _, v in ipairs(mapReward.tbReward or {}) do
|
||||
appendOrStack(self._mapMergedReward.tbReward, v, "id", "count", "rewardType")
|
||||
end
|
||||
for _, v in ipairs(mapReward.tbSpReward or {}) do
|
||||
table.insert(self._mapMergedReward.tbSpReward, v)
|
||||
end
|
||||
for _, v in ipairs(mapReward.tbSrc or {}) do
|
||||
appendOrStack(self._mapMergedReward.tbSrc, v, "Tid", "Qty")
|
||||
end
|
||||
for _, v in ipairs(mapReward.tbDst or {}) do
|
||||
appendOrStack(self._mapMergedReward.tbDst, v, "Tid", "Qty")
|
||||
end
|
||||
end
|
||||
function DailyQuestCtrl:_AccumulateDisplayReward(tbShowReward)
|
||||
if tbShowReward == nil then
|
||||
return
|
||||
end
|
||||
for _, v in ipairs(tbShowReward) do
|
||||
appendOrStack(self._mapMergedReward.tbReward, v, "id", "count", "rewardType")
|
||||
end
|
||||
end
|
||||
function DailyQuestCtrl:_FlushBatchReceive()
|
||||
PlayerData.Quest:SetBatchReceiveFlag(false)
|
||||
local mapMerged = self._mapMergedReward or {
|
||||
tbReward = {},
|
||||
tbSpReward = {},
|
||||
tbSrc = {},
|
||||
tbDst = {}
|
||||
}
|
||||
self._mapMergedReward = nil
|
||||
local refreshFunc = function()
|
||||
EventManager.Hit(EventId.QuestDataRefresh, "Daily")
|
||||
end
|
||||
local tipCallback = function()
|
||||
local bOpen = PlayerData.Base:TryOpenWorldClassUpgrade(refreshFunc)
|
||||
if not bOpen then
|
||||
refreshFunc()
|
||||
end
|
||||
end
|
||||
UTILS.OpenReceiveByReward(mapMerged, tipCallback)
|
||||
end
|
||||
function DailyQuestCtrl:OnBtnClick_FastReceiveGray()
|
||||
EventManager.Hit(EventId.OpenMessageBox, ConfigTable.GetUIText("DoubleDrop_Reward_Receive_Tip"))
|
||||
end
|
||||
function DailyQuestCtrl:OnBtnClick_NodeItem(btn, nIndex)
|
||||
local bCanReceive = false
|
||||
|
||||
Reference in New Issue
Block a user