源战役客户端
您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符
 
 
 
 
 

163 行
5.2 KiB

TaskDailyItem = TaskDailyItem or BaseClass(BaseItem)
TaskDailyItem.Width = 170
TaskDailyItem.Height = 65
function TaskDailyItem:__init()
self.base_file = "task"
self.layout_file = "TaskDailyItem"
self.is_delay_callback = true
self.model = TaskModel:getInstance()
self:Load()
end
function TaskDailyItem:Load_callback()
self.icon = self:GetChildImages({
"Icon",
})
self.name_txt,
self.progress_txt,
self.content_txt = self:GetChildTexts({
"Name",
"Progress",
"Content",
})
self.go_btn,
self.recommend = self:GetChildGameObjects({
"GoBtn",
"Recommend",
})
self:InitEvent()
if self.need_refreshData then
self:SetData(self.index,self.info)
end
end
function TaskDailyItem:InitEvent()
local function onClickBtnHandler(target)
if target == self.go_btn then
if not self.info then
return
end
self:ClickOperation(self.info)
end
end
AddClickEvent(self.go_btn,onClickBtnHandler)
end
function TaskDailyItem:SetData(index,info)
self.index = index
self.info = info
if self.is_loaded then
self.need_refreshData = false
self.name_txt.text = self.info.str
if self.info.id == 1 then
local total_times = BaseDungeonModel:getInstance():GetDungeonMaxTimes(3001,BaseDungeonModel.DUN_TYPE.EXP)
local left_times = BaseDungeonModel:getInstance():GetDungeonLeftTimes(BaseDungeonModel.DUN_TYPE.EXP)
local curr_times = math.max(0,total_times - left_times)
self.progress_txt.text = string.format("(%d/%d)",curr_times,total_times)
local exp,level = self.model:GetDoubleExp(self.info.id)
self.content_txt.text = "预计可提升:"..level..""
elseif self.info.id == 2 then
local taskInfo = TaskModel:getInstance():GetCircleTaskInfo(TaskType.BOUNTY_LINE)
if taskInfo then
if self.model:CanAcceptCircleTask(TaskType.BOUNTY_LINE) then
self.progress_txt.text = string.format("(%d/%d)",taskInfo.cur_progress,taskInfo.total_progress)
else
self.progress_txt.text = string.format("(%d/%d)",taskInfo.cur_progress + 1,taskInfo.total_progress)
end
else
self.progress_txt.text = ""
end
local exp,level = self.model:GetDoubleExp(self.info.id)
self.content_txt.text = "预计可提升:"..level..""
elseif self.info.id == 3 then
local taskInfo = TaskModel:getInstance():GetCircleTaskInfo(TaskType.GUILD_LINE)
if taskInfo then
if self.model:CanAcceptCircleTask(TaskType.GUILD_LINE) then
self.progress_txt.text = string.format("(%d/%d)",taskInfo.cur_progress,taskInfo.total_progress)
else
self.progress_txt.text = string.format("(%d/%d)",taskInfo.cur_progress + 1,taskInfo.total_progress)
end
else
self.progress_txt.text = ""
end
local exp,level = self.model:GetDoubleExp(self.info.id)
self.content_txt.text = "预计可提升:"..level..""
elseif self.info.id == 4 then
self.progress_txt.text = ""
local exp,level = self.model:GetDoubleExp(self.info.id)
self.content_txt.text = "预计可提升:"..level..""
elseif self.info.id == 5 then
self.progress_txt.text = ""
self.content_txt.text = "持续挂机,提升等级"
elseif self.info.id == 6 then
local total_times = BaseDungeonModel:getInstance():GetDungeonMaxTimes(3110,BaseDungeonModel.DUN_TYPE.EQUIP)
local left_times = BaseDungeonModel:getInstance():GetDungeonLeftTimes(BaseDungeonModel.DUN_TYPE.EQUIP)
local curr_times = math.max(0,total_times - left_times)
self.progress_txt.text = string.format("(%d/%d)",curr_times,total_times)
local exp,level = self.model:GetDoubleExp(self.info.id)
end
lua_resM:setImageSprite(self,self.icon,"activityIcon_asset",self.info.icon_name,false)
if self.info.show_recommend then
self.recommend:SetActive(true)
else
self.recommend:SetActive(false)
end
self:SetPosition(0,(self.index - 1) * -98)
else
self.need_refreshData = true
end
end
function TaskDailyItem:__delete( )
end
--点击选项处理
function TaskDailyItem:ClickOperation( vo )
GlobalEventSystem:Fire(EventName.OPEN_TASK_DAILY_VIEW, false)
if vo.id == 1 then
BaseDungeonModel:getInstance():OpenViewByDunType(BaseDungeonModel.DUN_TYPE.EXP)
elseif vo.id == 2 then
self.model:DoBountyTask()
elseif vo.id == 3 then
self.model:DoGuildTask()
elseif vo.id == 4 then
EscortModel:getInstance():FlyToNpc()
elseif vo.id == 5 then
local onHookData = DailyModel:getInstance():GetOnhookConfig()
if onHookData then
local pointList = ErlangParser:GetInstance():Parse(onHookData.xy)
local index = math.random(1, #pointList)
local randomPoint = pointList[index]
local x = tonumber(randomPoint[1])
local y = tonumber(randomPoint[2])
local call_back = function ()
GlobalEventSystem:Fire(EventName.STARTAUTOFIGHT)
end
local findVo = FindVo.New()
findVo.type = FindVo.POINT
findVo.sceneId = tonumber(onHookData.scene_id)
findVo.x = x / SceneObj.LogicRealRatio.x
findVo.y = y / SceneObj.LogicRealRatio.y
findVo.call_back = call_back
findVo.force_change_scene = true
GlobalEventSystem:Fire(EventName.STOPAUTOFIGHT)
GlobalEventSystem:Fire(EventName.FORCE_STOP_DO_TASK)
Scene.Instance:FindElement(findVo)
Message.show("正在前往挂机")
end
elseif vo.id == 6 then
BaseDungeonModel:getInstance():OpenViewByDunType(BaseDungeonModel.DUN_TYPE.EQUIP)
end
end