|
|
- SevenDayTargetTaskItem = SevenDayTargetTaskItem or BaseClass(BaseItem)
- local SevenDayTargetTaskItem = SevenDayTargetTaskItem
-
- SevenDayTargetTaskItem.HEIGHT = 90
- SevenDayTargetTaskItem.WIDTH = 527
- SevenDayTargetTaskItem.START_X = 8
- SevenDayTargetTaskItem.START_Y = -4
- SevenDayTargetTaskItem.SPACE_Y = 0
-
- local ICON_DES = {
- [1] = "装备",
- [2] = "社交",
- [3] = "战魂",
- [4] = "成长",
- [5] = "制衣",
- [6] = "宠物",
- }
-
- function SevenDayTargetTaskItem:__init()
- self.base_file = "sevenDayTarget"
- self.layout_file = "SevenDayTargetTaskItem"
- self.model = SevenDayTargetModel:GetInstance()
-
- self:Load()
- end
-
- function SevenDayTargetTaskItem:Load_callback()
- self.nodes = {
- "condition_text:tmp", "bg", "item_con", "star_con/star1:img", "star_con/star2:img", "star_con/star3:img",
- "get_image:obj", "btn:obj:img", "btn/btn_red:obj", "btn/btn_text:tmp", "name_text:tmp",
- "star_con", "icon:img", "lb_icon_des:tmp", "lock:obj", "lock/lockText:tmp",
- }
- self:GetChildren(self.nodes)
- self.awardItem = UIObjPool:getInstance():PopItem(UIObjPool.UIType.AwardItem,self.item_con)
- self.awardItem:SetItemSize(62, 62)
-
- SetAnchoredPositionX(self.lb_icon_des, -220)
- self:AddEvents()
- if self.need_refreshData then
- self:UpdateView()
- end
- end
-
- function SevenDayTargetTaskItem:AddEvents( )
- local function on_click( )
- if self.model:TaskItemIsAniming() then
- return
- end
- if self.can_receive then
- self.model:Fire(SevenDayTargetModel.REQUEST_SEVEN_DAY_TARGET_SCMD, 17601, self.data.days, self.data.mod_id, self.data.sub_id)
- else
- if self.data.jump_id then
- local data = stringtotable(self.data.jump_id)
- if data and TableSize(data) > 0 then
- if data[1] == 61000 then--进阶副本跳转特殊处理
- BaseDungeonModel:getInstance():Fire(BaseDungeonModel.OPEN_HALL_VIEW,BaseDungeonModel.DUN_TYPE.MATERIAL,data[2])
- elseif data[1] == 46100 then--击杀特定boss的特殊处理
- OpenFun.Open(461,0,nil,data[2])
- else
- if data[1] == 300 or data[1] == 500 then--任务类关界面 护送也关
- self.model:Fire(SevenDayTargetModel.CLOSE_SEVEN_DAY_TARGET_MAIN_VIEW)
- end
- OpenFun.Open(data[1],data[2])
- end
- end
- end
- end
- end
- AddClickEvent(self.btn_obj, on_click)
- end
-
- function SevenDayTargetTaskItem:UpdateView( )
- if not self.data then return end
-
- local cur_num = 0
- if self.server_data then
- cur_num = self.server_data.progress
- self.is_receive = self.server_data.is_receive == 1 and true or false
- else
- self.is_receive = false
- end
- local total_num = self.data.limit_times or 1
- self.btn_red_obj:SetActive(false)
- if cur_num >= total_num then
- self.btn_text_tmp.text = "领取"
- self.can_receive = true
- self.btn_red_obj:SetActive(true)
- lua_resM:setImageSprite(self, self.btn_img, "alphaCommon_asset", "tyui_btn_2")
- SetTMPSharedMaterial(self.btn_text_tmp,ShaderTools.TMPSharedMaterialType.FZZZOutlineDarkOrangeBtn)
- else
- self.btn_text_tmp.text = "前往"
- self.can_receive = false
- lua_resM:setImageSprite(self, self.btn_img, "alphaCommon_asset", "tyui_btn_1")
- SetTMPSharedMaterial(self.btn_text_tmp,ShaderTools.TMPSharedMaterialType.FZZZOutlineDarkBlueBtn)
- end
-
- local color = cur_num >= total_num and ColorUtil.GREEN_DARK or ColorUtil.RED_DARK
- local desc = string.format("%s(%s/%s)", Trim(self.data.desc), HtmlColorTxt( cur_num, color) , total_num)
- self.condition_text_tmp.text = string.gsub( desc, [[\n]], "\n" )
- -- self.name_text_tmp.text = self.data.name
- -- SetAnchoredPositionX(self.star_con, self.name_text_tmp.preferredWidth + 10 + 44)--44是文本的坐标
- -- for i=1,3 do
- -- if self.data.difficulty >= i then
- -- lua_resM:setImageSprite(self, self["star"..i.."_img"], "sevenDayTarget_asset", "sevenDayTarget_item14")
- -- else
- -- lua_resM:setImageSprite(self, self["star"..i.."_img"], "sevenDayTarget_asset", "sevenDayTarget_item15")
- -- end
- -- end
- local typeId, lock = GoodsModel:getInstance():GetMappingTypeId(self.data.reward_info[1][1], self.data.reward_info[1][2])
- self.awardItem:SetData(typeId, self.data.reward_info[1][3])
-
- -- 图标
- -- local cfg = OpenFun.LinkWin[self.data.mod_id.."@"..self.data.sub_id]
- -- if cfg then
- -- lua_resM:setImageSprite(self, self.icon_img, "activityIcon_asset", cfg.icon_res)
- -- end
- local cfg = Config.Sevengoaltask[string.format('%s@%s@%s', self.data.days, self.data.mod_id, self.data.sub_id)]
- self.lb_icon_des_tmp.text = ICON_DES[cfg.task_tag]
- lua_resM:setImageSprite(self, self.icon_img, "sevenDayTarget_asset", "sevenDayTarget_tag_" .. cfg.task_tag, true)
-
- -- 锁定
- local data = stringtotable(self.data.jump_id)
- local cfg = OpenFun.LinkWin[data[1] .. "@" .. data[2]]
- local is_open, conf = false, false
- if cfg then
- is_open, conf = GetModuleIsOpen(cfg.winId, cfg.subId)
- else
- is_open, conf = GetModuleIsOpen(self.data.mod_id, self.data.sub_id)
- end
-
- if is_open then
- self.lock_obj:SetActive(false)
- self.btn_obj:SetActive(not self.is_receive)
- self.get_image_obj:SetActive(self.is_receive)
- SetImageGray(self.icon_img, false)
- else
- -- local level = RoleManager.Instance.mainRoleInfo.level
- if Trim(self.data.name) ~= "" then -- 有任务
- self.lockText_tmp.text = string.format('%s解锁', HtmlColorTxt(Trim(self.data.name), ColorUtil.RED_DARK))
- elseif conf then -- 没任务 说明是等级解锁
- self.lockText_tmp.text = string.format('等级%s解锁', HtmlColorTxt( conf.open_lv, ColorUtil.RED_DARK))
- else
- print('=======Msh:SevenDayTargetTaskItem.lua[138] ==配置有误=====', self.data.mod_id, self.data.sub_id)
- end
- self.lock_obj:SetActive(true)
- self.btn_obj:SetActive(false)
- self.get_image_obj:SetActive(false)
- SetImageGray(self.icon_img, true)
- end
- end
-
- function SevenDayTargetTaskItem:SetCallBackFunc( func )
- self.callback_func = func
- end
-
- function SevenDayTargetTaskItem:SetData( data,index,server_data )
- self.data = data
- self.index = index
- self.server_data = server_data
- if self.is_loaded then
- self.need_refreshData = false
- self:UpdateView()
- else
- self.need_refreshData = true
- end
- end
-
- ----------领取位移刷新动画 by msh-start---------
- -- 移动到新索引的位置
- function SevenDayTargetTaskItem:MoveNewIndexPosAnimAndUpdate( old_index, new_index, new_data, new_server_data,anim_call_back )
- local origin_pos = self:GetIndexPos(old_index)
- local move_one_index_time = 0.15
- local old_index = old_index
- local new_server_data = new_server_data or nil
- local anim_call_back = anim_call_back or nil
- self.index = new_index -- 存一下新索引
- -- 动画完成后更新索引
- local last_func = function( )
- if anim_call_back then
- anim_call_back()
- end
- end
- if new_index > old_index then -- 位置下移
- -- 从目标索引位置右边 移动到目标索引位置
- local move_func1 = function( )
- local server_data = self.model:GetSevenDayTargetInfo(self.cur_select_day) or {}
- self:SetData( new_data, new_index, new_server_data) -- 消失后 刷新
- self:PlayLineAnim(self:GetIndexPos(new_index, SevenDayTargetTaskItem.WIDTH - 100),
- self:GetIndexPos(new_index),
- move_one_index_time,
- last_func)
- end
- -- 先往右移
- self:PlayLineAnim(origin_pos, self:GetIndexPos(old_index, SevenDayTargetTaskItem.WIDTH - 100),
- move_one_index_time, move_func1)
- elseif old_index - new_index == 1 then -- 上移一格
- self:SetData( new_data, new_index, new_server_data)
- self:PlayLineAnim(origin_pos, self:GetIndexPos(new_index), move_one_index_time ,last_func, move_one_index_time)
- else -- 直接刷
- self:SetData( new_data, new_index, new_server_data)
- last_func()
- end
- end
-
- -- 移动到目标位置
- function SevenDayTargetTaskItem:PlayLineAnim( start_pos, end_pos, anim_time, end_func, delay_time )
- self:SetPosition(start_pos.x, start_pos.y, start_pos.z)
- cc.ActionManager:getInstance():removeAllActionsFromTarget(self.transform)
- local anim_time = anim_time or 0.2
- local delay_time = delay_time or 0
-
- -- 延迟
- local action1 = cc.DelayTime.New( delay_time )
-
- -- 位移
- local function move_func( percent )
- SetLocalPosition(self.transform, start_pos.x + (end_pos.x - start_pos.x) * percent,
- start_pos.y + (end_pos.y - start_pos.y) * percent, 0)
- end
- local action2 = cc.CustomUpdate.New(anim_time, move_func)
-
- -- 回调
- local function callback_1()
- if end_func then
- end_func()
- end
- end
- local call_func_1 = cc.CallFunc.New(callback_1)
-
- local action10 = cc.Sequence.New( action1, action2, call_func_1 )
- self:AddAction(action10, self.transform)
- end
-
- function SevenDayTargetTaskItem:GetIndexPos( index, offset_x )
- local offset_x = offset_x or 0
- return Vector3(offset_x + SevenDayTargetTaskItem.START_X, SevenDayTargetTaskItem.START_Y - (index-1) * (SevenDayTargetTaskItem.HEIGHT + SevenDayTargetTaskItem.SPACE_Y), 0)
- end
-
- function SevenDayTargetTaskItem:SetIndexPos( index )
- local pos = self:GetIndexPos( index )
- self:SetPosition(pos.x, pos.y, pos.z)
- end
-
- -- 停止当前动画
- function SevenDayTargetTaskItem:StopAnim( )
- cc.ActionManager:getInstance():removeAllActionsFromTarget(self.transform)
- if self.index then
- local pos = self:GetIndexPos(self.index)
- self:SetPosition(pos.x, pos.y)
- end
- end
- ----------领取位移刷新动画 by msh-end-----------
-
- function SevenDayTargetTaskItem:__delete( )
- if self.awardItem then
- UIObjPool:getInstance():PushItem(UIObjPool.UIType.AwardItem, self.awardItem)
- self.awardItem = nil
- end
-
- cc.ActionManager:getInstance():removeAllActionsFromTarget(self.transform)
- end
|