源战役客户端
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

213 rivejä
6.5 KiB

GiftPreviewView = GiftPreviewView or BaseClass(BaseView)
local GiftPreviewView = GiftPreviewView
--[[
GiftPreviewView.TabData = {
[1] = {name = "人物", level = MainRoleModel.TabOpenLevel[1]},
}
--]]
function GiftPreviewView:__init()
self.base_file = "gift"
self.layout_file = "GiftPreviewView"
self.layer_name = "Activity"
self.destroy_imm = true
self.use_background = true --全屏界面默认使用这个参数
--self.hide_maincancas = true --全屏界面需要放开隐藏主UI
self.change_scene_close = true
self.append_to_ctl_queue = false --是否要添加进界面堆栈
self.need_show_money = false --是否要显示顶部的金钱栏
self.is_set_zdepth = true
self.model = GiftModel:getInstance()
self.blur_activity_bg = true
self.click_bg_toClose = true
self.reward_item_list = {}
self.load_callback = function ()
self:LoadSuccess()
self:AddEvent()
end
self.open_callback = function ( )
self:OpenSuccess()
end
self.switch_callback = function(index)
self:SwitchTab(index)
end
self.destroy_callback = function ( )
self:DestroySuccess()
end
end
function GiftPreviewView:Open(data)
self.data = data
BaseView.Open(self)
end
function GiftPreviewView:LoadSuccess()
local nodes = {
"bg/tip_con/cost_image2:img", "bg/title",
"bg/btn/discount_bg", "bg/btn/discount:tmp",
"bg/tip_con/cur_text:tmp", "bg/tip_con/cost_image1:img", "bg/tip_con","bg/btn/btn_text:tmp",
"bg/close_btn:obj", "bg:img", "bg/tip_con/origin_text:tmp", "bg/item_con", "bg/btn:obj:imgex", "bg/refuse_btn:obj",
}
self:GetChildren(nodes)
self.btn_text_tmp.text = "优惠购买"
end
function GiftPreviewView:AddEvent()
local function on_click( target )
if target == self.btn_obj then
if self.is_not_open then
-- local str = string.format("开服第%s天开放购买哦~", self.data.start_day)
local str = "该礼包明日开放购买哦~"
Message.show(str, "fault")
return
else
local function ok_callback( ... )
GoodsModel:getInstance():Fire(GoodsModel.REQUEST_CCMD_EVENT, 15050, self.data.goods_id, self.data.type_id, 1)
self:Close()
end
-- local function toggle_function( flag )
-- self.model.gift_preview_toggle = flag
-- end
local function use_function( toggle_tip_data,call_fun_sum )
-- if not self.model.gift_preview_toggle then
-- GlobalEventSystem:Fire(EventName.OPEN_COM_TOGGLE_TIP_VIEW, toggle_tip_data)
-- else
call_fun_sum()--不需要判断了 直接走
-- end
self:Close()
end
local function recharge_open_call_back( ... )
self:Close()
end
local buy_tip_data = {
gold_type = self.money_type,--货币类型
cost_price = self.cur_cost,--消耗金额
ok_callback = ok_callback,--成功
toggle_function = toggle_function,--多选
togglePriceStr = string.format("<color=#fdffc2>%s</color> 购买商品",self.cur_cost),--提示语
use_function = use_function,--最终调用
recharge_open_call_back = recharge_open_call_back,
invest_call_back = recharge_open_call_back,
}
CustomActivityModel:getInstance():BuyTips(buy_tip_data)
end
elseif target == self.close_btn_obj then
self:Close()
elseif target == self.refuse_btn_obj then
self:Close()
end
end
AddClickEvent(self.btn_obj, on_click)
AddClickEvent(self.close_btn_obj, on_click)
AddClickEvent(self.refuse_btn_obj, on_click)
local function on_close( ... )
self:Close()
end
self:BindEvent(self.model, GiftModel.CLOSE_PREVIEW_VIEW, on_close)
end
function GiftPreviewView:OpenSuccess()
self:UpdateView()
end
function GiftPreviewView:UpdateView()
if GoodsModel:getInstance():IsPaidGift(self.data.type_id) then--付费礼包
local data = self.data
self.money_type = data.diamond_list.cost_type
self.origin_cost = data.diamond_list.old_cost
self.cur_cost = data.diamond_list.now_cost
self.reward_list = data.fix_reward_list
local open_day = ServerTimeModel:getInstance():GetOpenServerDay()
self.is_not_open = false
if data.start_day then
if open_day < data.start_day then
self.is_not_open = true
end
end
if data.end_day then
if open_day > data.end_day then
self.is_not_open = true
end
end
self.btn_imgex.gray = self.is_not_open
if self.is_not_open then
SetTMPSharedMaterial(self.btn_text_tmp,ShaderTools.TMPSharedMaterialType.FZZZOutlineDarkGrayBtn)
else
SetTMPSharedMaterial(self.btn_text_tmp,ShaderTools.TMPSharedMaterialType.FZZZOutlineDarkOrangeBtn)
end
self.origin_text_tmp.text = self.origin_cost
self.cur_text_tmp.text = self.cur_cost
self.discount_tmp.text = string.format("%s折",math.ceil(self.cur_cost/self.origin_cost*10))
local len = TableSize(self.reward_list)
local offset = 12
local item_size = 114
if len == 2 then
offset = 40
end
--因为要居中对齐 所以从左边开始算起来
local start_x = 0
if len%2 == 0 then--如果是偶数个 那么居中的是空间
local num = len/2
for i=1,num do
start_x = start_x - item_size - offset
end
start_x = start_x + offset/2
else
local num = math.floor(len/2)
for i=1,num do
start_x = start_x - item_size - offset
end
start_x = start_x - item_size/2
end
for i,v in ipairs(self.reward_list) do
local item = self.reward_item_list[i]
if not item then
item = GiftPreviewItem.New(self.item_con)
self.reward_item_list[i] = item
end
item:SetData(v)
item:SetPosition((i-1)*(item_size + offset) + start_x, -10)
end
if len > 3 then
local origin_width = 520
local cur_width = (len - 3)*(item_size-10) + origin_width
SetSizeDeltaX(self.bg, cur_width)
-- SetSizeDeltaX(self.item_bg, cur_width-20)
end
else
end
if self.delay_id then
GlobalTimerQuest:CancelQuest(self.delay_id)
self.delay_id = nil
end
local function delay_method( )
SetSizeDeltaX(self.origin_text, self.origin_text_tmp.preferredWidth+1)
SetSizeDeltaX(self.cur_text, self.cur_text_tmp.preferredWidth+1)
end
self.delay_id = setTimeout(delay_method, 0.01)
self:SetMoneyIcon()
end
-- 加载货币图标
function GiftPreviewView:SetMoneyIcon()
if not self.money_type then return end
local asset, source = WordManager:GetCommonMoneyIcon(self.money_type)
lua_resM:setImageSprite(self, self.cost_image2_img, asset, source)
lua_resM:setImageSprite(self, self.cost_image1_img, asset, source)
end
function GiftPreviewView:SwitchTab( index )
end
function GiftPreviewView:DestroySuccess( )
for i,v in ipairs(self.reward_item_list) do
v:DeleteMe()
v = nil
end
self.reward_item_list = {}
if self.delay_id then
GlobalTimerQuest:CancelQuest(self.delay_id)
self.delay_id = nil
end
end