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