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("" .. GFunc.getTaskDesc(self.taskType, taskTarget) .. "") else -- 未完成 or 可领取 self.mask:setActive(false) self.txDesc:setText("" .. GFunc.getTaskDesc(self.taskType, taskTarget) .. "") 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