-- <* -- @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("有%.2f%%的概率获得%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