-- <*
|
|
-- @Author: Saber
|
|
-- @Description: 圣物系统抽奖结算界面
|
|
-- *>
|
|
PsionicDrawResultView = PsionicDrawResultView or BaseClass(BaseView)
|
|
local PsionicDrawResultView = PsionicDrawResultView
|
|
local PsionicConst = PsionicConst
|
|
|
|
function PsionicDrawResultView:__init()
|
|
self.base_file = "psionic"
|
|
self.layout_file = "PsionicDrawResultView"
|
|
self.layer_name = "Activity"
|
|
self.destroy_imm = true
|
|
self.use_background = true --全屏界面默认使用这个参数,非全屏界面自行设置
|
|
self.change_scene_close = true --是否切换场景时关闭(弹出界面使用)
|
|
self.append_to_ctl_queue = false --是否要添加进界面堆栈
|
|
self.is_set_zdepth = true
|
|
self.blur_activity_bg = true
|
|
self.use_show_anim = true
|
|
self.use_hide_anim = true
|
|
self.max_num = 10
|
|
self.item_list = {}
|
|
-- 抽卡消耗缓存
|
|
self.cost_cache = {}
|
|
self.cost_cache[PsionicConst.DrawPoolType.Normal] = {}
|
|
self.cost_cache[PsionicConst.DrawPoolType.Deep] = {}
|
|
self.is_animating = false
|
|
self.can_close_view = false
|
|
|
|
self.model = PsionicModel:getInstance()
|
|
self.goods_model = GoodsModel:getInstance()
|
|
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 PsionicDrawResultView:Open(data)
|
|
self.data = data
|
|
BaseView.Open(self)
|
|
end
|
|
|
|
-- 重新抽奖后重新加载界面数据
|
|
function PsionicDrawResultView:ReOpenView(data)
|
|
self.data = data
|
|
self:UpdateView()
|
|
end
|
|
|
|
function PsionicDrawResultView:LoadSuccess()
|
|
local nodes = {
|
|
"click_bg:obj",
|
|
"bg:obj:raw",
|
|
"title:obj",
|
|
"skip_btn:obj",
|
|
"box_con",
|
|
"light_con:obj",
|
|
"award_con",
|
|
"btn_con:cg",
|
|
"btn_con/draw_one_btn:obj",
|
|
"btn_con/draw_ten_btn:obj",
|
|
"btn_con/cost_icon1:img",
|
|
"btn_con/cost_icon2:img",
|
|
"btn_con/cost1:tmp",
|
|
"btn_con/cost2:tmp",
|
|
"btn_con/draw_tip:tmp",
|
|
-- "btn_con/draw_btn:obj",
|
|
-- "btn_con/draw_btn/draw_lb:tmp",
|
|
-- "btn_con/confirm_btn:obj",
|
|
}
|
|
self:GetChildren(nodes)
|
|
SetAnchoredPositionY(self.light_con, -45)
|
|
lua_resM:setOutsideRawImage(self, self.bg_raw, GameResPath.GetViewBigBg("ps_draw_result_bg"), false)
|
|
-- 提前预载配置
|
|
self.normal_cfg = Config.Nucleonpool[1]
|
|
self.deep_cfg = Config.Nucleonpool[2]
|
|
-- self:AddUIEffect("ui_jihuoxinxitong01", self.light_con, self.layer_name, nil, 1.2, true,nil,nil, nil, nil,nil)
|
|
end
|
|
|
|
function PsionicDrawResultView:AddEvent()
|
|
local function click_event(target)
|
|
if target == self.draw_one_btn_obj then
|
|
self:OnDrawBtnClick(PsionicConst.DrawNumType.OneDraw)
|
|
elseif target == self.draw_ten_btn_obj then
|
|
self:OnDrawBtnClick(PsionicConst.DrawNumType.TenDraw)
|
|
elseif target == self.click_bg_obj or target == self.bg_obj then -- 关闭遮罩
|
|
if self.can_close_view then
|
|
self:Close()
|
|
end
|
|
elseif target == self.skip_btn_obj then -- 跳过动画
|
|
self:SkipAllAnim()
|
|
end
|
|
-- if target == self.confirm_btn_obj then
|
|
-- self:Close()
|
|
-- elseif target == self.draw_btn_obj then
|
|
-- self:OnDrawBtnClick()
|
|
-- end
|
|
end
|
|
AddClickEvent(self.draw_one_btn_obj, click_event)
|
|
AddClickEvent(self.draw_ten_btn_obj, click_event)
|
|
AddClickEvent(self.click_bg_obj, click_event)
|
|
AddClickEvent(self.bg_obj, click_event)
|
|
AddClickEvent(self.skip_btn_obj, click_event)
|
|
-- AddClickEvent(self.confirm_btn_obj, click_event)
|
|
-- AddClickEvent(self.draw_btn_obj, click_event)
|
|
|
|
local function update_draw_data(pool_type) -- 如果对应池子的数据更新,这边也要同步表现
|
|
if self.data and self.data.pool == pool_type then
|
|
self:UpdateDrawCostDataByType(self.data.pool)
|
|
end
|
|
end
|
|
self:BindEvent(self.model, PsionicConst.UPDATE_DIG_DATA, update_draw_data)
|
|
end
|
|
|
|
function PsionicDrawResultView:UpdateView()
|
|
self.data.col_num = 5--限定5了 不能改
|
|
self.delay_time = self.data and self.data.delay_time or self.delay_time
|
|
self:UpdateDrawCostDataByType(self.data.pool)
|
|
self:UpdateDrawTips()
|
|
-- self:UpdateDrawBtn()
|
|
self:StartDrawAnim()
|
|
-- self:UpdateItemList()
|
|
end
|
|
|
|
-- 新版调整 根据池子类型不同,直接更新对应池子的消耗物品信息,并缓存每种情况所需要的花费
|
|
function PsionicDrawResultView:UpdateDrawCostDataByType(pool_type)
|
|
local cfg_data = pool_type == PsionicConst.DrawPoolType.Normal and self.normal_cfg or self.deep_cfg
|
|
|
|
local pool_data = self.model:GetPsionicDigData(pool_type)
|
|
-- 当前是否能免费
|
|
local can_free = pool_data and pool_data.remain > 0 and pool_data.rtime - TimeUtil:getServerTime() < 0 or false
|
|
-- 获取抽奖券数
|
|
local single_ticket_num = self.goods_model:GetTypeGoodsNum(cfg_data.one)
|
|
local ten_ticket_num = self.goods_model:GetTypeGoodsNum(cfg_data.ten)
|
|
local one_cost = stringtotable(cfg_data.cost)[1]
|
|
local ten_cost = stringtotable(cfg_data.pay)[1]
|
|
-- 单抽券价格
|
|
local single_ticket_price = tonumber(one_cost[3])
|
|
local single_ticket_price_type = tonumber(one_cost[1])
|
|
|
|
local one_cost_icon_asset, one_cost_icon_name = WordManager:GetCommonMoneyIcon(single_ticket_price_type)
|
|
local ten_cost_icon_asset, ten_cost_icon_name = WordManager:GetCommonMoneyIcon(ten_cost[1])
|
|
|
|
if pool_type == PsionicConst.DrawPoolType.Normal then -- 普通池子默认展示红钻,有单抽券时显示单抽券
|
|
-- 单抽
|
|
-- 没有抽奖券的情况
|
|
if can_free then
|
|
lua_resM:setImageSprite(self, self.cost_icon1_img, "psionic_asset", "psionic_dig_icon"..pool_type.."_1", true)
|
|
self.cost1_tmp.text = "免费"
|
|
self.cost_cache[pool_type][PsionicConst.DrawNumType.OneDraw] = {free = true} -- 免费,可以直接抽
|
|
-- 有抽奖券,则加载为抽奖券的图标
|
|
elseif single_ticket_num > 0 then
|
|
lua_resM:setImageSprite(self, self.cost_icon1_img, "psionic_asset", "psionic_dig_icon"..pool_type.."_1", true)
|
|
self.cost1_tmp.text = string.format("<color=%s>%s</color>/1",
|
|
single_ticket_num > 0 and ColorUtil.GREEN_DARK or ColorUtil.RED_DARK,
|
|
single_ticket_num)
|
|
self.cost_cache[pool_type][PsionicConst.DrawNumType.OneDraw] = {goods_id = cfg_data.one} -- 构造数据,扣除道具
|
|
else -- 显示为钻石付费
|
|
lua_resM:setImageSprite(self, self.cost_icon1_img, one_cost_icon_asset, one_cost_icon_name, true)
|
|
self.cost1_tmp.text = single_ticket_price
|
|
self.cost_cache[pool_type][PsionicConst.DrawNumType.OneDraw] = {price_type = single_ticket_price_type, cost = single_ticket_price} -- 构造数据,扣除金额
|
|
end
|
|
-- 十连
|
|
-- 有十连券,则加载为十连券的图标
|
|
if ten_ticket_num > 0 then
|
|
lua_resM:setImageSprite(self, self.cost_icon2_img, "psionic_asset", "psionic_dig_icon"..pool_type.."_2", true)
|
|
self.cost2_tmp.text = string.format("<color=%s>%s</color>/1", ColorUtil.GREEN_DARK, ten_ticket_num)
|
|
self.cost_cache[pool_type][PsionicConst.DrawNumType.TenDraw] = {goods_id = cfg_data.ten} -- 构造数据,表现为扣除道具
|
|
-- 有单抽券,则加载为单抽券,并显示出所需个数相关表现
|
|
elseif single_ticket_num > 0 then
|
|
lua_resM:setImageSprite(self, self.cost_icon2_img, "psionic_asset", "psionic_dig_icon"..pool_type.."_1", true)
|
|
self.cost2_tmp.text = string.format("<color=%s>%s</color>/9",
|
|
single_ticket_num >= 9 and ColorUtil.GREEN_DARK or ColorUtil.RED_DARK,
|
|
single_ticket_num)
|
|
if single_ticket_num >= 9 then -- 单抽券数量足够,表现为扣除道具
|
|
self.cost_cache[pool_type][PsionicConst.DrawNumType.TenDraw] = {goods_id = cfg_data.one} -- 构造数据,表现为扣除道具
|
|
else -- 单抽不足,算出差价,表现为补齐单抽
|
|
local need_cost = single_ticket_price * (9 - single_ticket_num)
|
|
self.cost_cache[pool_type][PsionicConst.DrawNumType.TenDraw] = {price_type = single_ticket_price_type, cost = need_cost} -- 构造数据,扣除金额
|
|
end
|
|
-- 普通池子没抽奖券展示红钻
|
|
else
|
|
lua_resM:setImageSprite(self, self.cost_icon2_img, ten_cost_icon_asset, ten_cost_icon_name, true)
|
|
local need_cost = single_ticket_price * 9
|
|
self.cost2_tmp.text = need_cost
|
|
self.cost_cache[pool_type][PsionicConst.DrawNumType.TenDraw] = {price_type = single_ticket_price_type, cost = need_cost} -- 构造数据,表现为扣除金额
|
|
end
|
|
else -- 高级池子默认展示道具
|
|
-- 单抽
|
|
lua_resM:setImageSprite(self, self.cost_icon1_img, "psionic_asset", "psionic_dig_icon"..pool_type.."_1", true)
|
|
-- 免费单抽
|
|
if can_free then
|
|
self.cost1_tmp.text = "免费"
|
|
self.cost_cache[pool_type][PsionicConst.DrawNumType.OneDraw] = {free = true} -- 构造数据,表现为扣除金额
|
|
-- 有抽奖券,则加载为抽奖券的图标
|
|
else
|
|
self.cost1_tmp.text = string.format("<color=%s>%s</color>/1",
|
|
single_ticket_num > 0 and ColorUtil.GREEN_DARK or ColorUtil.RED_DARK,
|
|
single_ticket_num)
|
|
if single_ticket_num > 0 then
|
|
self.cost_cache[pool_type][PsionicConst.DrawNumType.OneDraw] = {goods_id = cfg_data.one} -- 构造数据,扣除道具
|
|
else
|
|
self.cost_cache[pool_type][PsionicConst.DrawNumType.OneDraw] = {price_type = single_ticket_price_type, cost = single_ticket_price} -- 构造数据,扣除金额
|
|
end
|
|
end
|
|
-- 十连
|
|
-- 有十连券,就展示十连券的表现
|
|
if ten_ticket_num > 0 then
|
|
lua_resM:setImageSprite(self, self.cost_icon2_img, "psionic_asset", "psionic_dig_icon"..pool_type.."_2", true)
|
|
self.cost2_tmp.text = string.format("<color=%s>%s</color>/1", ColorUtil.GREEN_DARK, ten_ticket_num)
|
|
self.cost_cache[pool_type][PsionicConst.DrawNumType.TenDraw] = {goods_id = cfg_data.ten} -- 构造数据,表现为扣除道具
|
|
-- 有单抽券,则加载为单抽券,并显示出所需个数相关表现
|
|
else
|
|
lua_resM:setImageSprite(self, self.cost_icon2_img, "psionic_asset", "psionic_dig_icon"..pool_type.."_1", true)
|
|
self.cost2_tmp.text = string.format("<color=%s>%s</color>/9",
|
|
single_ticket_num >= 9 and ColorUtil.GREEN_DARK or ColorUtil.RED_DARK,
|
|
single_ticket_num)
|
|
if single_ticket_num >= 9 then -- 单抽券满足
|
|
self.cost_cache[pool_type][PsionicConst.DrawNumType.TenDraw] = {goods_id = cfg_data.one} -- 构造数据,表现为扣除道具
|
|
else
|
|
local need_cost = single_ticket_price * (9 - single_ticket_num)
|
|
self.cost_cache[pool_type][PsionicConst.DrawNumType.TenDraw] = {price_type = single_ticket_price_type, cost = need_cost} -- 构造数据,扣除金额
|
|
end
|
|
end
|
|
end
|
|
end
|
|
|
|
function PsionicDrawResultView:UpdateDrawTips( )
|
|
if self.data then
|
|
-- 遍历属性找到当中符合相应池子配置条件的颜色的数量,并计算出保底数
|
|
local cfg_data = self.data.pool == PsionicConst.DrawPoolType.Normal and self.normal_cfg or self.deep_cfg
|
|
local rule_cfg = stringtotable(cfg_data.rule)[1]
|
|
local color, num = tonumber(rule_cfg[1]), tonumber(rule_cfg[2])
|
|
local str = ""
|
|
for k, v in ipairs(self.data.show_awards) do
|
|
if v.color == color then
|
|
str = string.format("再抽 <color=%s>%s</color> 次必出橙色品质圣物", ColorUtil.GREEN_DARK, num - v.times)
|
|
break
|
|
end
|
|
end
|
|
self.draw_tip_tmp.text = str
|
|
end
|
|
end
|
|
|
|
----------------
|
|
-- 开始抽奖动画 --
|
|
----------------
|
|
function PsionicDrawResultView:StartDrawAnim( )
|
|
self:InitViewNodes()
|
|
self:UpdateBoxModel()
|
|
end
|
|
-- 初始化节点
|
|
function PsionicDrawResultView:InitViewNodes( )
|
|
-- 隐藏背景和标题
|
|
self.bg_obj:SetActive(false)
|
|
self.title_obj:SetActive(false)
|
|
-- self.light_con_obj:SetActive(false)
|
|
self:ClearUIEffect(self.light_con)
|
|
self.can_close_view = false
|
|
-- 清除模型
|
|
lua_resM:clearRoleMode(self)
|
|
-- 隐藏节点
|
|
self:ClearAwardItemCreator()
|
|
for k,v in pairs(self.item_list) do
|
|
v:SetVisible(false, nil, true)
|
|
end
|
|
-- 隐藏按钮
|
|
self.btn_con_cg.alpha = 0
|
|
self.btn_con_cg.blocksRaycasts = false
|
|
-- 显示跳过按钮
|
|
self.skip_btn_obj:SetActive(true)
|
|
end
|
|
-- 创建宝箱模型
|
|
function PsionicDrawResultView:UpdateBoxModel( )
|
|
-- 容错处理,防止模型加载不出来导致后面的表现看不见
|
|
self:DelayShowRewardAnim(4)
|
|
local data = {
|
|
father_node = self,
|
|
transform = self.box_con,
|
|
layer_name = self.layer_name,
|
|
fashion_type = FuncOpenModel.TypeId.OtherGoods,
|
|
figure_id = PsionicConst.DrawShowModel[self.data.pool],
|
|
scale = 255 * 1.4,
|
|
can_rotate = false,
|
|
action_name_list = {"show"},
|
|
position = Vector3(0, -120, -1000),
|
|
rotate = Vector3(0, 0, 0),
|
|
ui_model_type = UIModelCommon.ModelType.Model,
|
|
callBack = function()
|
|
-- 模型加载出来之后,停止容错的倒计时,使用模型回调产生的倒计时
|
|
self:DelayShowRewardAnim(2.5)
|
|
end,
|
|
}
|
|
FuncOpenModel:getInstance():SetModelRes(data)
|
|
end
|
|
-- 延迟展示奖励和按钮等的表现
|
|
function PsionicDrawResultView:DelayShowRewardAnim(delay_time)
|
|
self:ClearShowRewardDelayId()
|
|
self.is_animating = true
|
|
local function delay_show_reward_func( )
|
|
lua_resM:clearRoleMode(self)
|
|
-- 取消隐藏背景和标题
|
|
self.bg_obj:SetActive(true)
|
|
self.title_obj:SetActive(true)
|
|
-- self.light_con_obj:SetActive(true)
|
|
self:AddUIEffect("ui_jihuoxinxitong01", self.light_con, self.layer_name, nil, 1.2, true,nil,nil, nil, nil,nil)
|
|
-- 加载奖励内容
|
|
self:UpdateItemList()
|
|
-- 延时x秒显示按钮
|
|
self:DelayShowBtnCon(0.5)
|
|
-- 隐藏跳过按钮
|
|
self.skip_btn_obj:SetActive(false)
|
|
end
|
|
self.delay_show_reward_id = setTimeout(delay_show_reward_func, delay_time)
|
|
end
|
|
function PsionicDrawResultView:DelayShowBtnCon(delay_time)
|
|
self:ClearShowBtnConId()
|
|
local function delay_show_btn_con_func( )
|
|
local function btn_con_alpha_anim_callback()
|
|
self.is_animating = false
|
|
end
|
|
self.btn_con_alpha_id = TweenLite.to(self, self.btn_con, TweenLite.UiAnimationType.ALPHA_ALL, 1, 0.3, btn_con_alpha_anim_callback)
|
|
self.btn_con_cg.blocksRaycasts = true
|
|
end
|
|
self.delay_show_btn_con_id = setTimeout(delay_show_btn_con_func, delay_time)
|
|
-- 到了展示按钮的时候就可以关闭界面了
|
|
self.can_close_view = true
|
|
end
|
|
|
|
function PsionicDrawResultView:ClearShowRewardDelayId( )
|
|
if self.delay_show_reward_id then
|
|
GlobalTimerQuest:CancelQuest(self.delay_show_reward_id)
|
|
self.delay_show_reward_id = nil
|
|
end
|
|
end
|
|
function PsionicDrawResultView:ClearShowBtnConId( )
|
|
if self.delay_show_btn_con_id then
|
|
GlobalTimerQuest:CancelQuest(self.delay_show_btn_con_id)
|
|
self.delay_show_btn_con_id = nil
|
|
end
|
|
if self.btn_con_alpha_id then
|
|
TweenLite.Stop(self.btn_con_alpha_id)
|
|
self.btn_con_alpha_id = nil
|
|
end
|
|
end
|
|
-- 跳过所有动画
|
|
function PsionicDrawResultView:SkipAllAnim( )
|
|
self.skip_btn_obj:SetActive(false)
|
|
self.is_animating = false
|
|
self.can_close_view = true
|
|
lua_resM:clearRoleMode(self)
|
|
-- 取消隐藏背景和标题
|
|
self.bg_obj:SetActive(true)
|
|
self.title_obj:SetActive(true)
|
|
self:AddUIEffect("ui_jihuoxinxitong01", self.light_con, self.layer_name, nil, 1.2, true,nil,nil, nil, nil,nil)
|
|
-- 加载奖励内容
|
|
self:UpdateItemList(true)
|
|
self:ClearShowRewardDelayId()
|
|
self:ClearShowBtnConId()
|
|
self.btn_con_cg.blocksRaycasts = true
|
|
self.btn_con_cg.alpha = 1
|
|
end
|
|
----------------
|
|
----------------
|
|
|
|
function PsionicDrawResultView:UpdateItemList(skip_anim)
|
|
for k,v in pairs(self.item_list) do
|
|
v:SetVisible(false, nil, true)
|
|
end
|
|
self.col_num = self.data.col_num or self.col_num
|
|
local item_list = self.data.award
|
|
if not item_list or TableSize(item_list) == 0 then return end
|
|
local len = #item_list
|
|
local i = 0
|
|
local x, y, v, grade_cfg
|
|
local function frame_count_creator()
|
|
-- 累加迭代
|
|
i = i + 1
|
|
if len >= i then
|
|
v = item_list[i]
|
|
local item = self.item_list[i]
|
|
if item == nil then
|
|
item = UIObjPool:getInstance():PopItem(UIObjPool.UIType.AwardItem, self.award_con)
|
|
item:SetItemSize(78, 78)
|
|
self.item_list[i] = item
|
|
end
|
|
if len == 1 then
|
|
local con_size = self.award_con.sizeDelta
|
|
item:SetAnchoredPosition(261, -76)
|
|
else
|
|
x = (78 + 49) * ((i - 1) % 5) + 7
|
|
y = -(78 + 35) * math.floor((i - 1) / 5) - 20.5
|
|
item:SetAnchoredPosition(x, y)
|
|
end
|
|
item:SetGoodsVo(v[4])
|
|
local goods_Id, lock = GoodsModel:getInstance():GetMappingTypeId(v[1], v[2])
|
|
local goodVo = GoodsModel:getInstance():GetGoodsBasicByTypeId(goods_Id)
|
|
local stren_data = nil
|
|
if v[4] then
|
|
stren_data = EquipModel:getInstance():GetBagEquipAwaraItemInfo(v[4])
|
|
stren_data.equip_key = "EquipView"
|
|
end
|
|
if not v.is_mul then--副本多倍
|
|
if v.is_rare == 2 then
|
|
item:SetNumLimitVisible(true, 12)
|
|
elseif v.is_rare == 1 then
|
|
item:SetNumLimitVisible(true, 13)
|
|
end
|
|
else
|
|
item:SetNumLimitVisible(v.is_mul ~= nil, 15)
|
|
end
|
|
if goodVo then
|
|
item:SetData(goods_Id, v[3], goodVo.color, stren_data, lock, true, nil)
|
|
else
|
|
-- error("没有找到物品信息 "..v.typeId)
|
|
end
|
|
item:SetVisible(true, nil, true)
|
|
else
|
|
self:ClearAwardItemCreator()
|
|
end
|
|
end
|
|
self.award_creator_id = GlobalTimerQuest:AddPeriodQuest(frame_count_creator, skip_anim and 0 or 0.1)
|
|
end
|
|
function PsionicDrawResultView:ClearAwardItemCreator( )
|
|
if self.award_creator_id then
|
|
GlobalTimerQuest:CancelQuest(self.award_creator_id)
|
|
self.award_creator_id = nil
|
|
end
|
|
end
|
|
|
|
-- 抽奖按钮点击逻辑 pool_type:奖池类型 opty:次数类型
|
|
-- 消耗顺序:免费次数(单抽)> 单抽/十连券 > 红钻/彩钻
|
|
function PsionicDrawResultView:OnDrawBtnClick(opty)
|
|
if not self.data then return end
|
|
local pool_type = self.data.pool
|
|
local cost_data = self.cost_cache[pool_type][opty]
|
|
if not cost_data then return end
|
|
|
|
local price_asset, price_icon, price_color
|
|
local price_type, cost_price
|
|
local priceText = ""
|
|
local insufficientText = nil
|
|
local special_icon_data = nil
|
|
local cfg_data = pool_type == PsionicConst.DrawPoolType.Normal and self.normal_cfg or self.deep_cfg
|
|
local function ok_callback()
|
|
self.model:Fire(PsionicConst.REQUEST_CCMD_EVENT, 13911, pool_type, opty)
|
|
end
|
|
|
|
if cost_data.free then -- 免费抽,直接冲
|
|
ok_callback()
|
|
return
|
|
end
|
|
|
|
local cost_goods_name = self.goods_model:getGoodsName(cfg_data.one, true)
|
|
-- 使用抽奖券的情况,提示后直接使用
|
|
if cost_data.goods_id then
|
|
special_icon_data = true
|
|
price_asset = "psionic_asset"
|
|
price_icon = "psionic_dig_icon" .. pool_type .. "_" .. opty
|
|
price_type = 0
|
|
if cost_data.goods_id == cfg_data.one then -- 单抽券需要区分抽奖次数,十连券每次消耗1张
|
|
cost_price = opty == PsionicConst.DrawNumType.TenDraw and 9 or 1
|
|
else
|
|
cost_price = 1
|
|
end
|
|
price_color = self.goods_model:GetGoodsColor(cost_data.goods_id)
|
|
priceText = string.format("<color=%s>%s</color> %s %s寻宝%s次?", price_color, cost_price, cost_goods_name,
|
|
pool_type == PsionicConst.DrawPoolType.Deep and "深度" or "普通",
|
|
opty == PsionicConst.DrawNumType.TenDraw and 10 or 1)
|
|
else -- 需要使用钻石补足的情况
|
|
price_type = cost_data.price_type
|
|
cost_price = cost_data.cost
|
|
price_asset, price_icon = WordManager:GetCommonMoneyIcon(price_type)
|
|
-- price_color = WordManager.GetGoodsColor(pool_type == PsionicConst.DrawPoolType.Deep and 4 or 3)
|
|
price_color = ColorUtil.YELLOW_DARK
|
|
if pool_type == PsionicConst.DrawPoolType.Deep then -- 统一用抽奖券表现
|
|
insufficientText = string.format("%s 不足", cost_goods_name)
|
|
priceText = string.format("<color=%s>%s</color> 补齐 %s %s寻宝%s次?", price_color, cost_price, cost_goods_name,
|
|
pool_type == PsionicConst.DrawPoolType.Deep and "深度" or "普通",
|
|
opty == PsionicConst.DrawNumType.TenDraw and 10 or 1)
|
|
else
|
|
priceText = string.format("<color=%s>%s</color> %s寻宝%s次?", price_color, cost_price,
|
|
pool_type == PsionicConst.DrawPoolType.Deep and "深度" or "普通",
|
|
opty == PsionicConst.DrawNumType.TenDraw and 10 or 1)
|
|
end
|
|
end
|
|
|
|
local function use_function( toggle_tip_data, call_fun_sum )
|
|
if not self.model._dont_check_psionic_draw_tip[pool_type] then
|
|
GlobalEventSystem:Fire(EventName.OPEN_COM_TOGGLE_TIP_VIEW, toggle_tip_data)
|
|
else
|
|
call_fun_sum()
|
|
end
|
|
end
|
|
|
|
local data = {
|
|
insufficientText = insufficientText,
|
|
special_icon_data = special_icon_data,
|
|
gold_type = price_type,
|
|
cost_price = cost_price,
|
|
ok_callback = ok_callback,
|
|
togglePriceStr = priceText,
|
|
use_function = use_function,
|
|
toggle_function = function(flag)
|
|
self.model._dont_check_psionic_draw_tip[pool_type] = flag
|
|
end,
|
|
recharge_open_call_back = function()
|
|
self:Close()
|
|
end,
|
|
}
|
|
CustomActivityModel:getInstance():BuyTips(data)
|
|
end
|
|
|
|
function PsionicDrawResultView:DestroySuccess( )
|
|
self:ClearShowRewardDelayId()
|
|
self:ClearShowBtnConId()
|
|
self:ClearAwardItemCreator()
|
|
lua_resM:clearRoleMode(self)
|
|
self:ClearUIEffect(self.light_con)
|
|
|
|
for i,item in pairs(self.item_list) do
|
|
UIObjPool:getInstance():PushItem(UIObjPool.UIType.AwardItem, item)
|
|
end
|
|
self.item_list = {}
|
|
|
|
ItemUseModel:getInstance():ShowItemUseView( )
|
|
end
|