|
|
- 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
|