c1_lua/lua/app/ui/activity/common/cell/task_cell.lua
2025-05-08 22:43:25 +08:00

64 lines
2.8 KiB
Lua

local TaskCell = class("TaskCell", BaseCell)
function TaskCell:init()
local uiMap = self:getUIMap()
self.bg = uiMap['task_cell.bg']
self.txDesc = uiMap['task_cell.tx_desc']
self.btn = uiMap['task_cell.btn']
self.txBtn = uiMap['task_cell.btn.tx_btn']
self.imgPoint = uiMap['task_cell.point']
self.rewardCell = uiMap['task_cell.reward_cell']:addLuaComponent(GConst.TYPEOF_LUA_CLASS.REWARD_CELL)
self.imgProg = uiMap['task_cell.prog.img_prog']:getComponent(GConst.TYPEOF_UNITY_CLASS.BF_SLIDER)
self.txProg = uiMap['task_cell.prog.tx_prog']
self.mask = uiMap['task_cell.mask']
self.btn:addClickListener(function()
if DataManager.ActTaskData:canClaimTask(self.data:getActId(), self.taskId) then
self.parentUI:reqTask(self.taskId)
elseif self.taskType == GConst.TaskConst.TASK_TYPE.ACT_NEWBIE_ST_TURNTABLE_NUM then
EventManager:dispatchEvent(EventManager.CUSTOM_EVENT.CHANGE_ACTIVITY_PAGE, 1)
else
ModuleManager.TaskManager:goToTask(self.taskType)
end
end)
end
function TaskCell:refresh(parentUI, dataKey, taskId)
self.parentUI = parentUI or self.parentUI
self.data = dataKey and DataManager[dataKey] or self.data
self.taskId = taskId
self.taskType = DataManager.ActTaskData:getTaskType(self.taskId)
local actId = self.data:getActId()
local taskTarget = DataManager.ActTaskData:getTaskTarget(self.taskId)
local taskProg = DataManager.ActTaskData:getTaskProg(actId, self.taskId)
local taskReward = DataManager.ActTaskData:getTaskReward(self.taskId)
taskProg = taskProg > taskTarget and taskTarget or taskProg
self.rewardCell:refreshByConfig(taskReward)
self.imgProg.value = taskProg / taskTarget
self.txProg:setText(taskProg.."/"..taskTarget)
if DataManager.ActTaskData:isTaskReceived(actId, self.taskId) then
-- 已完成
self.mask:setActive(true)
self.txBtn:setText(I18N:getGlobalText(I18N.GlobalConst.ALREADY_GOT_DESC))
self.btn:setSprite(GConst.ATLAS_PATH.COMMON, "common_btn_gray_4")
self.txDesc:setText("<color=#574A40>" .. GFunc.getTaskDesc(self.taskType, taskTarget) .. "</color>")
else
-- 未完成 or 可领取
self.mask:setActive(false)
self.txDesc:setText("<color=#5C3A2D>" .. GFunc.getTaskDesc(self.taskType, taskTarget) .. "</color>")
if DataManager.ActTaskData:isTaskFinished(actId, self.taskId) then
self.txBtn:setText(I18N:getGlobalText(I18N.GlobalConst.BTN_TEXT_CLAIM))
self.btn:setSprite(GConst.ATLAS_PATH.COMMON, "common_btn_yellow_4")
else
self.txBtn:setText(I18N:getGlobalText(I18N.GlobalConst.BTN_TEXT_GO))
self.btn:setSprite(GConst.ATLAS_PATH.COMMON, "common_btn_blue_4")
end
end
end
return TaskCell