|
CSGWarSupportView = CSGWarSupportView or BaseClass(BaseView)
|
|
local CSGWarSupportView = CSGWarSupportView
|
|
-- CSGWarSupportView.TabData = {
|
|
-- {id = 1, name = "主战区",level = 1},
|
|
-- {id = 2, name = "副战区",level = 1},
|
|
-- }
|
|
|
|
function CSGWarSupportView:__init()
|
|
self.base_file = "CSGWar"
|
|
self.layout_file = "CSGWarSupportView"
|
|
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 = true --是否要添加进界面堆栈
|
|
self.need_show_money = false --是否要显示顶部的金钱栏
|
|
self.select_index = 1
|
|
self.cur_select_item_index = 1
|
|
self.model = CSGWarModel:getInstance()
|
|
self.item_list = {}
|
|
self.load_callback = function ()
|
|
self:LoadSuccess()
|
|
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 CSGWarSupportView:Open( )
|
|
--self.data = data
|
|
BaseView.Open(self)
|
|
end
|
|
|
|
function CSGWarSupportView:LoadSuccess()
|
|
local nodes = {
|
|
"support_btn:obj", "container", "item_con", "banner:img:obj","con_money",
|
|
"cost_text:tmp", "support_num_text:tmp", "vip_text:tmp", "support_btn/support_btn_red:obj",
|
|
"btn_reward:obj",
|
|
}
|
|
self:GetChildren(nodes)
|
|
self:AddEvent()
|
|
self:CreateMoneyView()
|
|
local closeWin_callback = function()
|
|
self:Close()
|
|
end
|
|
lua_resM:setOutsideImageSprite(self, self.banner_img, GameResPath.GetCSGWarImage("csgwar_banner"),false)
|
|
self.tabWindowComponent = UITabWindow.New(self.transform,{},self.switch_callback,closeWin_callback,self.background_wnd,self.container, UITabWindow.SizeSmallNoTab, false,nil,true)
|
|
self.tabWindowComponent:SetBackgroundRes("CSGWar_support_bg")
|
|
self.tabWindowComponent:SetTitleText("社团应援")
|
|
local cfg = self.model:GetCSGWarKVCFG("support_cost")
|
|
self.support_max = self.model:GetCSGWarKVCFG("support_max").value
|
|
local vip = RoleManager.Instance.mainRoleInfo.vip_flag
|
|
local vip_extra_num = VipModel.Instance:GetVipPrivilegeValue(601,1,vip)
|
|
self.support_max = self.support_max + vip_extra_num
|
|
self.vip_text_tmp.text = string.format("(%s额外获得%s次)", HtmlColorTxt("V"..vip, ColorUtil.YELLOW_DARK), vip_extra_num)
|
|
local cost_data = stringtotable(cfg.value)
|
|
self.cost = cost_data[1][3] or 0
|
|
self:SwitchTab(self.select_index)
|
|
end
|
|
|
|
function CSGWarSupportView:AddEvent()
|
|
local function on_update_view( )
|
|
self:UpdateView()
|
|
end
|
|
self.on_update_view_id = self.model:BindOne("CSGWar_support_info", on_update_view)
|
|
|
|
local function on_click( ... )
|
|
local function ok_callback( ... )
|
|
local data = self.cur_select_data
|
|
if data then
|
|
self.model:Fire(CSGWarConst.REQ_CSGWAR_SCMD, 60104,data.server_id, data.guild_id)
|
|
else
|
|
Message.show("请选择一个社团应援哦")
|
|
end
|
|
end
|
|
local function toggle_function( flag )
|
|
self.model.support_view_toggle = flag
|
|
end
|
|
local function use_function( toggle_tip_data,call_fun_sum )
|
|
if not self.model.support_view_toggle then
|
|
GlobalEventSystem:Fire(EventName.OPEN_COM_TOGGLE_TIP_VIEW, toggle_tip_data)
|
|
else
|
|
call_fun_sum()
|
|
end
|
|
end
|
|
if self.model:GetMyFreeSupportNum() > 0 then
|
|
ok_callback()
|
|
else
|
|
local buy_tip_data = {
|
|
gold_type = 2,--货币类型
|
|
cost_price = self.cost,--消耗金额
|
|
ok_callback = ok_callback,--成功
|
|
toggle_function = toggle_function,--多选
|
|
togglePriceStr = string.format("<color=#fdffc2>%s</color> 应援一次",self.cost),--提示语
|
|
use_function = use_function,--最终调用
|
|
}
|
|
CustomActivityModel:getInstance():BuyTips(buy_tip_data)
|
|
end
|
|
end
|
|
AddClickEvent(self.support_btn_obj, on_click)
|
|
|
|
local function on_click_reward( )
|
|
self.model:Fire(CSGWarConst.OPEN_CSGWAR_REWARD_VIEW)
|
|
end
|
|
AddClickEvent(self.btn_reward_obj, on_click_reward)
|
|
end
|
|
|
|
function CSGWarSupportView:OpenSuccess()
|
|
self:UpdateView()
|
|
end
|
|
|
|
function CSGWarSupportView:CreateMoneyView( )
|
|
if not self.money_view then
|
|
self.money_view = UIMoneyView.New(self.con_money)
|
|
end
|
|
self.money_view:SetPosition(0,0)
|
|
self.money_view:SetData()
|
|
end
|
|
|
|
function CSGWarSupportView:UpdateView()
|
|
local data = self.model:GetCSGWarSupportInfo(self.select_index)
|
|
if data and TableSize(data) > 0 then
|
|
if self.model:GetMyFreeSupportNum() > 0 then
|
|
self.cost_text_tmp.text = "本次免费"
|
|
else
|
|
self.cost_text_tmp.text = self.cost
|
|
end
|
|
self.support_btn_red_obj:SetActive(self.model:GetMyFreeSupportNum() > 0)
|
|
else
|
|
self.cost_text_tmp.text = self.cost
|
|
self.support_btn_red_obj:SetActive(false)
|
|
end
|
|
local max_num = self.support_max
|
|
local cur_num = self.model:GetMySupportNum()
|
|
local color = ColorUtil.GREEN_DARK
|
|
if cur_num >= max_num then
|
|
color = ColorUtil.RED_DARK
|
|
end
|
|
self.support_num_text_tmp.text = string.format("剩余可应援次数%s/%s", HtmlColorTxt(cur_num, color), max_num)
|
|
local function call_back( data,index )
|
|
self.cur_select_data = data
|
|
self:SetSelect(index, data)
|
|
end
|
|
local x_offset = 234
|
|
for i=1,4 do
|
|
local item = self.item_list[i]
|
|
if not item then
|
|
item = CSGWarSupportItem.New(self.item_con)
|
|
item:SetPosition((i-1)*x_offset, 6)
|
|
item:SetCallBackFunc(call_back)
|
|
self.item_list[i] = item
|
|
end
|
|
item:SetData(data[i],i, data.all_support_num)
|
|
end
|
|
self:SetSelect(self.cur_select_item_index)
|
|
end
|
|
|
|
function CSGWarSupportView:SwitchTab( index )
|
|
self.select_index = index
|
|
self.tabWindowComponent:SetTabBarIndex(index)
|
|
local function call_back( )
|
|
self.model:Fire(CSGWarConst.REQ_CSGWAR_SCMD, 60103)
|
|
end
|
|
TimeManager.GetInstance():StartTime("CSGWarSupportView:SwitchTab",0.3,call_back)--不能让他一直点来请求协议吧,限制一下
|
|
self:UpdateView()
|
|
end
|
|
|
|
function CSGWarSupportView:SetSelect( index,data )
|
|
self.cur_select_item_index = index
|
|
self.cur_select_data = data
|
|
if not self.cur_select_data and self.item_list[index] then
|
|
self.cur_select_data = self.item_list[index]:GetData()
|
|
end
|
|
for i,v in ipairs(self.item_list) do
|
|
v:SetSelect(index == i)
|
|
end
|
|
end
|
|
|
|
function CSGWarSupportView:DestroySuccess( )
|
|
if self.tabWindowComponent then
|
|
self.tabWindowComponent:DeleteMe()
|
|
self.tabWindowComponent = nil
|
|
end
|
|
if self.on_update_view_id then
|
|
self.model:UnBind(self.on_update_view_id)
|
|
self.on_update_view_id = nil
|
|
end
|
|
for i,v in ipairs(self.item_list) do
|
|
v:DeleteMe()
|
|
v = nil
|
|
end
|
|
self.item_list = {}
|
|
|
|
if self.money_view then
|
|
self.money_view:DeleteMe()
|
|
self.money_view = nil
|
|
end
|
|
end
|