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
|