|
EquipCollectRightItem = EquipCollectRightItem or BaseClass(BaseItem)
|
|
local EquipCollectRightItem = EquipCollectRightItem
|
|
|
|
function EquipCollectRightItem:__init()
|
|
self.base_file = "equipCollect"
|
|
self.layout_file = "EquipCollectRightItem"
|
|
self.model = EquipCollectModel:GetInstance()
|
|
self.equip_item_list = {}
|
|
self.pos = false
|
|
self.pos_map_list = {
|
|
[1] = EquipModel.EquipType.Weapon,
|
|
[2] = EquipModel.EquipType.Head,
|
|
[3] = EquipModel.EquipType.Body,
|
|
[4] = EquipModel.EquipType.Shoulder,
|
|
[5] = EquipModel.EquipType.Hand,
|
|
[6] = EquipModel.EquipType.Leg,
|
|
[7] = EquipModel.EquipType.Shoes,
|
|
}
|
|
self:Load()
|
|
end
|
|
|
|
function EquipCollectRightItem:Load_callback()
|
|
self.nodes = {
|
|
"icon_image:img:obj", "btn/btn_text:tmp", "bg:img", "name_text:tmp", "finishi_image:obj", "item_con", "btn:obj:img", "btn/btn_red:obj",
|
|
}
|
|
self:GetChildren(self.nodes)
|
|
|
|
self:AddEvents()
|
|
if self.need_refreshData then
|
|
self:UpdateView()
|
|
end
|
|
self:AddToStageHandler()
|
|
end
|
|
|
|
function EquipCollectRightItem:AddEvents( )
|
|
local function on_click( )
|
|
if self.data and self.data[1] then
|
|
self.model:Fire(EquipCollectConst.CLICK_EQUIP_COLLECT_ITEM, self.data[1].id, self.data[1].sub_id)
|
|
end
|
|
-------------------------
|
|
if self.can_click then
|
|
self.model:Fire(EquipCollectConst.REQUEST_SCMD_EVENT,15220, self.data[1].id, self.data[1].sub_id)
|
|
else
|
|
if self.data[1].id == 1 and self.data[1].sub_id == 1 then--第一套装备领取的时候关界面 强制做主线
|
|
self.model:Fire(EquipCollectConst.OPEN_EC_MAIN_VIEW, false)
|
|
GlobalEventSystem:Fire(EventName.FORCE_TO_DO_TASK) --启动自动任务
|
|
else
|
|
local key = self.click_jump.pos .. "@" .. self.click_jump.id .. "@" .. self.click_jump.pos
|
|
local cfg = Config.Equipmentempty[key]
|
|
if cfg then
|
|
BagModel:getInstance():Fire(BagModel.EQUIP_ITEM_GET_WAY_TIPS, cfg,0,0,"equipCollect")
|
|
else
|
|
print(">>>>>ec unfinfd config Equipmentempty ", self.pos_type, self.series )
|
|
end
|
|
end
|
|
-- local type_id = self.model:GetEquipCollectEquipId(self.click_jump.id, self.click_jump.sub_id,self.click_jump.pos)
|
|
-- UIToolTipMgr:getInstance():AppendEquipTips(type_id, x, y, nil, nil, nil, nil, nil, nil, true)
|
|
end
|
|
end
|
|
AddClickEvent(self.btn_obj, on_click)
|
|
|
|
local function onGuideTrigger()
|
|
self:AddToStageHandler()
|
|
end
|
|
self:BindEvent(GlobalEventSystem, EventName.TRIGGER_GUIDE_TYPE, onGuideTrigger)
|
|
|
|
local function CLICK_EQUIP_COLLECT_ITEM( id,sub_id )
|
|
self.model.mask_lead_effect[sub_id] = true--点击之后就去掉特效
|
|
if self.data and self.data[1] then
|
|
if self.data[1].id == id and self.data[1].sub_id == sub_id then
|
|
self:ClearUIEffect(self.bg.transform)
|
|
self.showing_effect = false
|
|
end
|
|
end
|
|
end
|
|
self:BindEvent(self.model, EquipCollectConst.CLICK_EQUIP_COLLECT_ITEM, CLICK_EQUIP_COLLECT_ITEM)
|
|
end
|
|
|
|
function EquipCollectRightItem:UpdateView( )
|
|
local server_data = self.model:GetEquipCollectInfo(self.data[1].id, self.data[1].sub_id)
|
|
local is_all_collect = self.model:CheckIsAllEquipCollected(self.data[1].id, self.data[1].sub_id)
|
|
self.btn_obj:SetActive(not is_all_collect)
|
|
self.finishi_image_obj:SetActive(is_all_collect)
|
|
lua_resM:setImageSprite(self, self.bg_img, "equipCollectOut_asset", "equipcollect_color_bg"..self.data[1].sub_id, true)
|
|
local str = "收集 %s 套装7件 (%s/7)"
|
|
local name = self.model:GetEquipCollectSubTypeName(self.data[1].id, self.data[1].sub_id)
|
|
local progress = self.model:GetEquipCollectProgress(self.data[1].id, self.data[1].sub_id)
|
|
local cur_active_num = 0
|
|
if TableSize(progress) > 0 then
|
|
cur_active_num = progress.can_active
|
|
end
|
|
if cur_active_num == 7 then-- 可以点按钮
|
|
lua_resM:setImageSprite(self, self.btn_img, "alphaCommon_asset", "tyui_btn_2")
|
|
SetTMPSharedMaterial(self.btn_text_tmp,ShaderTools.TMPSharedMaterialType.FZZZOutlineDarkOrangeBtn)
|
|
self.can_click = true
|
|
self.click_jump = nil
|
|
self.btn_text_tmp.text = "领取"
|
|
else
|
|
lua_resM:setImageSprite(self, self.btn_img, "alphaCommon_asset", "tyui_btn_1")
|
|
SetTMPSharedMaterial(self.btn_text_tmp,ShaderTools.TMPSharedMaterialType.FZZZOutlineDarkBlueBtn)
|
|
self.can_click = false
|
|
self.btn_text_tmp.text = "获取装备"
|
|
self.click_jump = nil
|
|
end
|
|
self.name_text_tmp.text = string.format(str, HtmlColorTxt(name, ColorUtil.YELLOW_DARK), HtmlColorTxt(cur_active_num, cur_active_num == 7 and ColorUtil.GREEN_DARK or ColorUtil.RED_DARK ))
|
|
self.btn_red_obj:SetActive(self.model:IsEquipCollectNeedRedById(self.data[1].id, self.data[1].sub_id))
|
|
local award = stringtotable(self.model:GetEqipCollectAward(self.data[1].id, self.data[1].sub_id))
|
|
if TableSize(award) > 0 then
|
|
local designation_id = DesignationModel:GetInstance():GetDesignationIdByGoodsId(award[1][2])
|
|
local cfg = Config.Dsgt
|
|
cc.ActionManager:getInstance():removeAllActionsFromTarget(self.icon_image)
|
|
if cfg[designation_id].type == 1 then--文字称号(文字称号也用图片了)
|
|
self.icon_image_obj:SetActive(true)
|
|
|
|
lua_resM:setOutsideImageSprite(self, self.icon_image_img, GameResPath.GetDesignImage(cfg[designation_id].id), true)
|
|
elseif cfg[designation_id].type == 2 then--图片称号
|
|
self.icon_image_obj:SetActive(true)
|
|
lua_resM:setOutsideImageSprite(self, self.icon_image_img, GameResPath.GetDesignImage(cfg[designation_id].id), true)
|
|
elseif cfg[designation_id].type == 3 then--特效称号
|
|
if not self.dynamic_image_obj then
|
|
self.dynamic_image_obj = UiFactory.createChild(self.icon_image, UIType.Image, "dynamic_image")
|
|
self.dynamic_image_img = self.dynamic_image_obj:GetComponent("Image")
|
|
self.dynamic_image = self.dynamic_image_obj.transform
|
|
SetAnchoredPosition(self.dynamic_image,0,0)
|
|
else
|
|
self.dynamic_image_obj:SetActive(true)
|
|
end
|
|
SetSizeDelta(self.icon_image, 210*0.5,90*0.5)
|
|
self.icon_image_obj:SetActive(true)
|
|
local data = DesignationModel:GetInstance():GetDynamicDesignationCFG(designation_id)
|
|
local res = Split(data[1].res,"_")--分割出来配置 然后取文字
|
|
local font_res = res[1] or ""
|
|
lua_resM:setImageSprite(self, self.dynamic_image_img, data[1].ab, font_res.."_font", true)
|
|
SetSizeDelta(self.dynamic_image, 210*0.5,90*0.5)
|
|
self.icon_image_obj:SetActive(true)
|
|
local action = cc.Animation.New(data,0.15)
|
|
cc.ActionManager:getInstance():addAction(cc.RepeatForever.New(action),self.icon_image.transform)
|
|
end
|
|
end
|
|
local x_offset = 78
|
|
for i=1,7 do
|
|
local item = self.equip_item_list[i]
|
|
if not item then
|
|
item = EquipCollectEquipItem.New(self.item_con)
|
|
item:SetPosition(x_offset*(i-1) - 16, 10)
|
|
self.equip_item_list[i] = item
|
|
end
|
|
if not self.can_click and not self.click_jump then
|
|
self.click_jump = server_data[self.pos_map_list[i]] and self.click_jump or self.data[self.pos_map_list[i]]
|
|
end
|
|
item:SetData(self.data[self.pos_map_list[i]], index, self.pos_map_list[i], server_data[self.pos_map_list[i]], "equip_collect_base_view")
|
|
end
|
|
|
|
if self.time_delay_effect then
|
|
GlobalTimerQuest:CancelQuest(self.time_delay_effect)
|
|
self.time_delay_effect = nil
|
|
end
|
|
if (self.show_first_effect == self.data[1].sub_id) and (not self.model.mask_lead_effect[self.data[1].sub_id]) then
|
|
if not self.showing_effect then
|
|
local function delay( )
|
|
self.showing_effect = true
|
|
self:AddUIEffect("ui_jujiaodianji", self.bg.transform, "Activity", Vector3(268,-23,0), 1, true)
|
|
end
|
|
self.time_delay_effect = setTimeout(delay,0.3)
|
|
end
|
|
else
|
|
self.showing_effect = false
|
|
self:ClearUIEffect(self.bg.transform)
|
|
end
|
|
end
|
|
|
|
function EquipCollectRightItem:SetData( data,_,_,pos,show_first_effect )
|
|
self.data = data
|
|
self.pos = pos
|
|
self.show_first_effect = show_first_effect
|
|
if self.is_loaded then
|
|
self.need_refreshData = false
|
|
self:UpdateView()
|
|
else
|
|
self.need_refreshData = true
|
|
end
|
|
end
|
|
|
|
function EquipCollectRightItem:__delete( )
|
|
for i,v in ipairs(self.equip_item_list) do
|
|
v:DeleteMe()
|
|
v = nil
|
|
end
|
|
self.equip_item_list = {}
|
|
cc.ActionManager:getInstance():removeAllActionsFromTarget(self.icon_image)
|
|
|
|
if self.bg then
|
|
self:ClearUIEffect(self.bg.transform)
|
|
end
|
|
|
|
if self.time_delay_effect then
|
|
GlobalTimerQuest:CancelQuest(self.time_delay_effect)
|
|
self.time_delay_effect = nil
|
|
end
|
|
end
|
|
|
|
|
|
function EquipCollectRightItem:AddToStageHandler()
|
|
if self.pos ~= 1 then return end
|
|
local helpVo = GuideModel:getInstance():GetHelpVo(HelpType.TYPE_SUIT_COLLECT,3)
|
|
if not helpVo then return end
|
|
local help_type = helpVo.help_type
|
|
if (help_type == HelpType.TYPE_SUIT_COLLECT ) then
|
|
local step = helpVo.step
|
|
local button = false
|
|
if (help_type == HelpType.TYPE_SUIT_COLLECT and step == 3 ) then
|
|
button = self.btn_obj
|
|
end
|
|
if button then
|
|
local function call_back()
|
|
|
|
end
|
|
GlobalEventSystem:Fire(EventName.OPEN_GUIDE_PROMPT_VIEW, button.transform, button.transform.parent.transform, call_back, helpVo, self.layout_file)
|
|
end
|
|
else
|
|
GlobalEventSystem:Fire(EventName.CLOSE_GUIDE_PROMPT_VIEW)
|
|
end
|
|
end
|