源战役客户端
您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符
 
 
 
 
 

136 行
4.3 KiB

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