|
|
TaskSubMainView = TaskSubMainView or BaseClass(BaseItem)
|
|
local TaskSubMainView = TaskSubMainView
|
|
|
|
|
|
function TaskSubMainView:__init(parent_wnd)
|
|
self.base_file = "task"
|
|
self.layout_file = "TaskSubMainView"
|
|
self.model = TaskModel:getInstance()
|
|
self.layer_name = "UI"
|
|
self.award_item_list = {}
|
|
self.last_click_time = 0
|
|
--self.use_local_view = true
|
|
self:Load()
|
|
end
|
|
|
|
|
|
function TaskSubMainView:__delete()
|
|
|
|
if self.task_event_id then
|
|
self.model:UnBind(self.task_event_id)
|
|
self.task_event_id = nil
|
|
end
|
|
|
|
for i,item in pairs(self.award_item_list) do
|
|
item:DeleteMe()
|
|
end
|
|
|
|
self.award_item_list = {}
|
|
end
|
|
|
|
function TaskSubMainView:Load_callback()
|
|
|
|
self.message_panel,
|
|
self.empty_panel,
|
|
self.opt_btn,
|
|
self.opt_btn_bg,
|
|
self.award_title_con = self:GetChildGameObjects({
|
|
"MessagePanel",
|
|
"EmptyPanel",
|
|
"MessagePanel/OptBtn",
|
|
"MessagePanel/OptBtn/Bg",
|
|
"MessagePanel/3"
|
|
})
|
|
|
|
self.cdn_img = self:GetChildImages({
|
|
"CdnImage",
|
|
})
|
|
|
|
self.title_txt,
|
|
self.task_desc_txt,
|
|
self.task_tip_txt,
|
|
self.opt_btn_txt,
|
|
self.empty_tip_txt = self:GetChildTexts({
|
|
"MessagePanel/Title/Text",
|
|
"MessagePanel/TaskDesc",
|
|
"MessagePanel/TaskTip",
|
|
"MessagePanel/OptBtn/Text",
|
|
"EmptyPanel/EmptyTip"
|
|
})
|
|
|
|
self.mContent,
|
|
self.effect,
|
|
self.roleCon = self:GetChildTransforms({
|
|
"MessagePanel/ScrollView/Viewport/Content",
|
|
"MessagePanel/OptBtn/Effect",
|
|
"roleCon"
|
|
})
|
|
|
|
lua_resM:setOutsideImageSprite(self,self.cdn_img,GameResPath.GetJpgImage("zxui_bg.jpg"))
|
|
|
|
self:InitEvent()
|
|
|
|
if self.need_refreshData then
|
|
self:SetData(self.task_type,self.task_id)
|
|
end
|
|
end
|
|
|
|
function TaskSubMainView:InitEvent()
|
|
|
|
local function onClickHandler(target)
|
|
if target == self.opt_btn then
|
|
if not self.data then
|
|
return
|
|
end
|
|
if Status.NowTime - self.last_click_time < 1 then
|
|
return
|
|
end
|
|
self.last_click_time = Status.NowTime
|
|
if self.data.mainTip then
|
|
GlobalEventSystem:Fire(EventName.OPEN_DAILY_VIEW)
|
|
self.model:Fire(TaskEvent.CLOSE_TASK_VIEW)
|
|
else
|
|
if self:IsExtendFinish() then
|
|
GlobalEventSystem:Fire(TaskEventType.SEND_TASK_FINISH, self.data.id)
|
|
else
|
|
self:AutoFindWay()
|
|
end
|
|
end
|
|
end
|
|
end
|
|
|
|
AddClickEvent(self.opt_btn,onClickHandler)
|
|
|
|
-- 刷新列表
|
|
local function onUpdateView( )
|
|
self:SetData()
|
|
end
|
|
self.task_event_id = self.model:Bind(TaskEvent.TASK_LIST_INIT,onUpdateView)
|
|
end
|
|
|
|
function TaskSubMainView:AutoFindWay()
|
|
if self.data then
|
|
self.model:TaskClickFun(self.data)
|
|
self.model:Fire(TaskEvent.CLOSE_TASK_VIEW)
|
|
end
|
|
end
|
|
|
|
function TaskSubMainView:SetData(task_type,task_id)
|
|
|
|
self.task_type = task_type or self.task_type
|
|
self.task_id = task_id or self.task_id
|
|
|
|
if self.is_loaded then
|
|
self.need_refreshData = false
|
|
|
|
local task_list = self.model:GetTabData(self.task_type)
|
|
|
|
if task_list and #task_list > 0 then
|
|
self.message_panel:SetActive(true)
|
|
self.empty_panel:SetActive(false)
|
|
|
|
local task_vo = task_list[1]
|
|
self.data = task_vo
|
|
self.model:MakeTaskTip(task_vo)
|
|
|
|
self.title_txt.text = Trim(task_vo.taskName)
|
|
self.task_desc_txt.text = Trim(task_vo.description)
|
|
self.task_tip_txt.text = Trim(task_vo.tipContent)
|
|
|
|
local award_list = task_vo.award_list or {}
|
|
for i,v in ipairs(award_list) do
|
|
local item = self.award_item_list[i]
|
|
if item == nil then
|
|
item = AwardItem.New(self.mContent)
|
|
item:SetItemSize(80, 80)
|
|
self.award_item_list[i] = item
|
|
end
|
|
item:SetVisible(true)
|
|
local goods_id, lock = GoodsModel:getInstance():GetMappingTypeId(v[1], v[2])
|
|
item:SetData(goods_id, v[3], nil, nil, lock)
|
|
end
|
|
|
|
self.mContent.sizeDelta = Vector2(#award_list * 85,100)
|
|
|
|
for i = #award_list + 1, #self.award_item_list do
|
|
self.award_item_list[i]:SetVisible(false)
|
|
end
|
|
|
|
if #award_list > 0 then
|
|
self.award_title_con:SetActive(true)
|
|
else
|
|
self.award_title_con:SetActive(false)
|
|
end
|
|
|
|
self:SetOptBtnState(task_vo)
|
|
else
|
|
self.message_panel:SetActive(false)
|
|
self.empty_panel:SetActive(true)
|
|
self.empty_tip_txt.text = string.format("暂无%s", TaskModel.TaskTypeStr3[self.task_type])
|
|
end
|
|
self:SetRoleModel()
|
|
else
|
|
self.need_refreshData = true
|
|
end
|
|
end
|
|
|
|
function TaskSubMainView:SetOptBtnState(taskVO)
|
|
if taskVO.isFinish then
|
|
self.opt_btn:SetActive(false)
|
|
else
|
|
self.opt_btn:SetActive(true)
|
|
if taskVO.acceptType == 1 then
|
|
if taskVO.mainTip then
|
|
self.opt_btn_txt.text = "前往日常"
|
|
self:ClearEffect()
|
|
else
|
|
self.opt_btn_txt.text = "领取任务"
|
|
--self:AddUIEffect("ui_anniu_1", self.effect, self.layer_name, nil, {x=1.22,y=1.1}, true)
|
|
end
|
|
else
|
|
self.opt_btn_txt.text = "立即前往"
|
|
self.opt_btn_bg:SetActive(false)
|
|
self:ClearEffect()
|
|
--如果是支线已完成的
|
|
if self:IsExtendFinish() then
|
|
self.opt_btn_txt.text = "领取奖励"
|
|
self.opt_btn_bg:SetActive(true)
|
|
-- self:AddUIEffect("ui_anniu_1", self.effect, self.layer_name, nil, {x=1.22,y=1.1}, true)
|
|
end
|
|
end
|
|
end
|
|
end
|
|
|
|
function TaskSubMainView:IsExtendFinish( )
|
|
if self.model:IsNeedClickTask(self.data) then
|
|
--点击判断是否已经完成任务,是的话发协议完成任务
|
|
local tip = self.model:GetExtendSpecialTip(self.data)
|
|
if tip and tip.isFinish == 1 then
|
|
return true
|
|
end
|
|
end
|
|
end
|
|
|
|
function TaskSubMainView:ClearEffect( )
|
|
self:ClearUIEffect(self.effect)
|
|
end
|
|
|
|
function TaskSubMainView:SetRoleModel( force )
|
|
if self.is_load_model and not force then
|
|
return
|
|
end
|
|
self.is_load_model = true
|
|
|
|
local data = RoleManager.Instance.mainRoleInfo
|
|
local cloth_id = GetRoleClotheId(data.level_model_list)
|
|
local model_id, texture_id = GetRoleClotheTextureId(data.fashion_model_list)
|
|
local weapon_model_id, weapon_texture_id = GetWeaponClotheId(data)
|
|
local head_model_id, head_clothe_id = GetRoleHeadId(data)
|
|
local function call_back()
|
|
if self._use_delete_method then return end
|
|
end
|
|
local data = {
|
|
career = data.career,
|
|
sex = data.sex,
|
|
clothe_res_id = cloth_id,
|
|
weapon_res_id = weapon_model_id,
|
|
weapon_clothe_id = weapon_texture_id,
|
|
type = SceneBaseType.Role,
|
|
layer_name = self.layer_name,
|
|
fashion_model_id = model_id,
|
|
texture_id = texture_id,
|
|
image_id = data.image_id,
|
|
head_wear_id = head_model_id,
|
|
head_clothe_id =head_clothe_id,
|
|
layout_file = self.layout_file,
|
|
callBack = call_back,
|
|
}
|
|
lua_resM:SetRoleModel(self,self.roleCon, data)
|
|
end
|
|
|
|
function TaskSubMainView:ReOpen_callback()
|
|
if self.is_loaded then
|
|
self:SetRoleModel(true)
|
|
end
|
|
end
|
|
|