EquipGetWayTipsView = EquipGetWayTipsView or BaseClass(BaseView) function EquipGetWayTipsView:__init() self.base_file = "bag" self.layout_file = "GetWayTipsView" self.layer_name = "Top" self.use_background = true self.blur_activity_bg = true self.use_show_anim = true self.use_hide_anim = true self.open_guide_close = true self.is_set_zdepth = true self.go_to = false self.cfg = false self.get_way_item_list = {} self.load_callback = function () self:LocalSuccess() end self.open_callback = function () self:SetData(self.cfg) end self.destroy_callback = function () self:Remove() end end function EquipGetWayTipsView:Remove() for k,v in pairs(self.get_way_item_list) do v:DeleteMe() end self.get_way_item_list = {} end function EquipGetWayTipsView:LocalSuccess() self.transform.sizeDelta = Vector2(ScreenWidth,ScreenHeight) self.bg = self:GetChild("bg").gameObject self.desc_bg_img = self:GetChild("layout/desc_bg"):GetComponent("Image") self.layout = self:GetChild("layout") self.Content = self:GetChild("layout/ScrollView/Viewport/Content") self.title_text_tmp = self:GetChild("layout/text"):GetComponent("TMP_Text") lua_resM:setOutsideImageSprite(self,self.desc_bg_img,GameResPath.GetViewBigBg("goods_tool_tip_bg"),false) self:InitEvent() end function EquipGetWayTipsView:InitEvent() local function onBtnClickHandler(target) if target == self.bg then self:Close() end end AddClickEvent(self.bg,onBtnClickHandler) end function EquipGetWayTipsView:Open(cfg,x,y,view_type) self.cfg = cfg self.pos_x = x self.pos_y = y self.view_type = view_type BaseView.Open(self) end function EquipGetWayTipsView:SetData(cfg) if not self.cfg then return end -- if self.pos_x and self.pos_y then -- local x,y = ScreenToViewportPoint(self.pos_x,self.pos_y) -- y = y - 80 -- if y < 360 then -- y = 360 -- end -- self.layout.anchoredPosition = Vector3(x+20,y ,0) -- end if self.view_type == "equipCollect" then self.title_text_tmp.text = "装备获取" else self.title_text_tmp.text = "装备推荐" end local getway = {} getway = ErlangParser:GetInstance():Parse( self.cfg.get_way) self:SortGetWayData(getway) local function callback( ) self:Close() end for i,v in ipairs(getway) do local item = self.get_way_item_list[i] if not item then item = GetGoodsItem.New(self.Content) self.get_way_item_list[i] = item item:SetPosition(0, -90 * (i - 1)) end item:SetVisible(true) local show_type = v[3] or "normal" local str_list = Split(show_type, "_") local type_id = 100003 --默认,如果没有typeid,就随便给一个 if #str_list > 1 then type_id = tonumber(str_list[2]) end v[3] = str_list[1] item:SetData(v, type_id, callback) end SetSizeDeltaY(self.Content, #getway * 92) end -- 根据查看类型排序获取途径的信息 排序权重为第7个字段 function EquipGetWayTipsView:SortGetWayData(getway) -- if self.view_type == "equipCollect" then for k, v in ipairs(getway) do local left_time = -1 -- 剩余次数,-1代表次数不限 local weight_offset = 1 -- 排序权重offset local module_id, module_sub = tonumber(v[1]), tonumber(v[2]) if module_id == 215 and module_sub == 1 then -- 装备副本 local cursade_info = DunManyModel:getInstance():GetCrusadeInfo() left_time = cursade_info and cursade_info.rest_count or 0 weight_offset = left_time <= 0 and 100 or 1 elseif module_id == 460 and module_sub == 1 then -- 专属幻魔 left_time = BossModel:GetInstance():GetPersonBossLeftCount() or 0 weight_offset = left_time <= 0 and 100 or 1 elseif module_id == 460 and module_sub == 3 then -- 赏金幻魔 left_time = BossModel:GetInstance():GetMoneyLeftCount() or 0 weight_offset = left_time <= 0 and 100 or 1 elseif module_id == 155 and module_sub == 1 then -- 拍卖 left_time = -1 end v[7] = k * weight_offset v[8] = left_time end -- 排序 local sort_func = function ( a, b ) return a[7] < b[7] end table.sort(getway, sort_func) -- end end