-- <*
|
|
-- @Author: Saber
|
|
-- @Description: 圣物系统奖励预览界面
|
|
-- *>
|
|
PsionicDrawPreviewView = PsionicDrawPreviewView or BaseClass(BaseView)
|
|
local PsionicDrawPreviewView = PsionicDrawPreviewView
|
|
local PsionicConst = PsionicConst
|
|
|
|
function PsionicDrawPreviewView:__init()
|
|
self.base_file = "psionic"
|
|
self.layout_file = "PsionicDrawPreviewView"
|
|
self.layer_name = "Activity"
|
|
self.destroy_imm = true
|
|
self.use_background = true --全屏界面默认使用这个参数,非全屏界面自行设置
|
|
self.append_to_ctl_queue = false
|
|
self.is_set_zdepth = true
|
|
|
|
self:AddPreLoadList("psionic", {"PsionicDrawPreviewItem"})
|
|
self.model = PsionicModel:getInstance()
|
|
|
|
self.item_list = {}
|
|
self.load_callback = function ()
|
|
self:LoadSuccess()
|
|
self:AddEvent()
|
|
end
|
|
self.open_callback = function ( )
|
|
self:UpdateView()
|
|
end
|
|
self.destroy_callback = function ( )
|
|
self:DestroySuccess()
|
|
end
|
|
end
|
|
|
|
function PsionicDrawPreviewView:Open(pool_type)
|
|
self.pool_type = pool_type or PsionicConst.DrawPoolType.Normal
|
|
BaseView.Open(self)
|
|
end
|
|
|
|
function PsionicDrawPreviewView:LoadSuccess()
|
|
local nodes = {
|
|
"bg:raw", "close:obj",
|
|
"info_scroll",
|
|
"info_scroll/Viewport/info_con",
|
|
}
|
|
self:GetChildren(nodes)
|
|
|
|
lua_resM:setOutsideRawImage(self, self.bg_raw, GameResPath.GetViewBigBg("tips_comm_bg6"))
|
|
end
|
|
|
|
function PsionicDrawPreviewView:AddEvent()
|
|
local function click_event(target)
|
|
if target == self.close_obj then
|
|
self:Close()
|
|
end
|
|
end
|
|
AddClickEvent(self.close_obj, click_event)
|
|
end
|
|
|
|
function PsionicDrawPreviewView:UpdateView()
|
|
-- 获取奖池类型
|
|
local pool_data = self.model:GetPsionicDrawPoolPecData(self.pool_type)
|
|
|
|
local data = {}
|
|
for i = 6, 1, -1 do -- 按颜色品质反向遍历
|
|
if pool_data.data[i] then -- 存在这个颜色品质的奖励
|
|
data[#data+1] = {
|
|
title = string.format("有<color=#fdffc2>%.2f%%</color>的概率获得%s",
|
|
(pool_data.color_weight[i] or 0) / pool_data.total_weight * 100,
|
|
PsionicConst.DrawPreviewQuality[i])
|
|
}
|
|
local type_reward_list = {}
|
|
for k, v in pairs(pool_data.data[i]) do
|
|
type_reward_list[#type_reward_list+1] = v.awards[1]
|
|
end
|
|
data[#data+1] = {reward = type_reward_list}
|
|
end
|
|
end
|
|
|
|
local height = 0
|
|
local item = nil
|
|
for k, v in ipairs(data) do
|
|
item = self.item_list[k]
|
|
if not item then
|
|
item = PsionicDrawPreviewItem.New(self.info_con)
|
|
self.item_list[k] = item
|
|
end
|
|
item:SetAnchoredPosition(0, -height)
|
|
height = height + item:SetData(v)
|
|
end
|
|
SetSizeDeltaY(self.info_con, height + 10)
|
|
end
|
|
|
|
function PsionicDrawPreviewView:DestroySuccess( )
|
|
for k, v in ipairs(self.item_list) do
|
|
v:DeleteMe()
|
|
end
|
|
self.item_list = nil
|
|
end
|