源战役客户端
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.
 
 
 
 
 

233 lines
7.2 KiB

ChildHandbookViewNew = ChildHandbookViewNew or BaseClass(BaseView)
local ChildHandbookViewNew = ChildHandbookViewNew
function ChildHandbookViewNew:__init()
self.base_file = "child"
self.layout_file = "ChildHandbookViewNew"
self.layer_name = "UI"
self.destroy_imm = true
self.use_background = G_USING_BG --全屏界面默认使用这个参数
self.hide_maincancas = true --全屏界面需要放开隐藏主UI
self.change_scene_close = true
self.append_to_ctl_queue = false --是否要添加进界面堆栈
self.need_show_money = false --是否要显示顶部的金钱栏
self.blur_activity_bg = true
self.model = ChildModel:getInstance()
self.suit_tab_item_list = {}
self.handbook_item_list = {}
self.select_tab_item = nil
self.select_item = nil --
self.send_16536_Item_data = nil --吧发送的那个item记录下来,刷新的时候可以对比是否选中
self.fire_change_visible_event = true
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 ChildHandbookViewNew:Open( )
--self.data = data
BaseView.Open(self)
end
function ChildHandbookViewNew:LoadSuccess()
local nodes = {
"left/ScrollView_item/Viewport/Content_item",
"mid/ScrollView_handbook_item/Viewport/Content_handbook_item",
"mid/btn_break:obj", "mid/btn_reward:obj",
"mid/btn_reward/btn_reward_red_dot:obj",
"mid/btn_break/btn_break_red_dot:obj",
"mid/btn_up:obj", "mid/btn_up/btn_up_red_dot:obj","bg:raw",
"close:obj",
}
self:GetChildren(nodes)
self:UpdateBaseView( )
end
function ChildHandbookViewNew:UpdateBaseView( )
self.levelUpAwardItem = UIObjPool:getInstance():PopItem(UIObjPool.UIType.AwardItem, self.item_parent)
lua_resM:setOutsideRawImage(self, self.bg_raw, GameResPath.GetViewBigBg("child_hankbook_bg_1173_683"))
-- local close_callback = function()
-- self:Close()
-- end
-- self.tab_win = UITabWindow.New(self.transform, nil, nil,
-- close_callback, self.background_wnd, nil, UITabWindow.SizeSmallHallNoTab, false,nil,true)
--self.tab_win:SetTitleRes("child_asset","child_title") --标题
-- self.tab_win:SetBackgroundRes("child_hankbook_bg_1280_720")
-- self.tab_win:SetTitleText("宝宝玩具")
-- self.tab_win:ChangeShowFlag("Child")
end
function ChildHandbookViewNew:AddEvent()
--红点更新
local function updata_Child_RED_DOT_VIEW_fun(id)
if id ~= ChildConst.TabId.ChildHandbook then return end
self:UpdateRedDot()
if self.select_tab_item then
self:UpdateRedDotItem(self.select_tab_item.data.suit_type)
end
end
self.updata_Child_RED_DOT_VIEW_id = self.model:Bind(ChildConst.Child_RED_DOT_VIEW, updata_Child_RED_DOT_VIEW_fun)
-- 更新数据
local function updata_child_dif_suit_info_fun(need_check_effect)
self:SetViewListCon(self.select_tab_item.data.suit_type, need_check_effect)
end
self.updata_child_dif_suit_info = self.model:Bind(ChildConst.UPDATA_CHILD_HB_SUIT_INFO, updata_child_dif_suit_info_fun)
local function onBtnClickHandler(target, x, y)
if target == self.btn_break_obj then
self.model:Fire(ChildConst.OPEN_CHILD_HANDBOOK_BREAK_VIEW)
elseif target == self.btn_reward_obj then
self.model:Fire(ChildConst.OPEN_CHILD_HANDBOOK_SUIT_REWARD_VIEW)
elseif target == self.btn_up_obj then
self.model:Fire(ChildConst.OPEN_CHILD_HANDBOOK_UPGRADE_VIEW)
elseif target == self.close_obj then
self:Close()
end
end
AddClickEvent(self.btn_break_obj, onBtnClickHandler)
AddClickEvent(self.btn_reward_obj, onBtnClickHandler)
AddClickEvent(self.btn_up_obj, onBtnClickHandler)
AddClickEvent(self.close_obj, onBtnClickHandler)
end
function ChildHandbookViewNew:OpenSuccess()
self:UpdateView()
end
function ChildHandbookViewNew:UpdateView()
local toy_suit_list = self.model:GetToySuitInfo()
local function callback( item )
for k,v in pairs(self.suit_tab_item_list) do
v:SetChosen(false)
end
item:SetChosen(true)
self:SetViewListCon(item.data.suit_type)
self.select_tab_item = item
end
for k,v in pairs(toy_suit_list) do
local item = self.suit_tab_item_list[k]
if item == nil then
item = ChildHandbookSuitItem.New(self.Content_item)
self.suit_tab_item_list[k] = item
end
--local data = self.model:GetConfigChildSkillInfo(v.skill_id,v.skill_lv)
self.suit_tab_item_list[k]:SetData(v,callback)
if k == 1 then
self:SetViewListCon(v.suit_type)
self.select_tab_item = self.suit_tab_item_list[k]
self.suit_tab_item_list[k]:SetChosen(true)
end
end
self:UpdateRedDot()
end
function ChildHandbookViewNew:UpdateRedDot( )
local red_dot_list = self.model:GetRedDotChildHandbook()
--logWarn('=======Msh:ChildHandbookViewNew.lua[138]=======')
--PrintTable(red_dot_list)
-- 页签红点
for k,v in pairs(self.suit_tab_item_list) do --tab
v:SetRedDot(false)
for k,v_red in pairs(red_dot_list.active_list ) do
if v_red.suit_type == v.data.suit_type then
v:SetRedDot(true)
end
end
end
self.btn_reward_red_dot_obj:SetActive(TableSize(red_dot_list.suit_reward_list) > 0)
self.btn_break_red_dot_obj:SetActive(red_dot_list.is_can_break)
-- 材料
self.btn_up_red_dot_obj:SetActive(red_dot_list.is_level_up)
end
function ChildHandbookViewNew:UpdateRedDotItem(suit_type)
local red_dot_list = self.model:GetRedDotChildHandbook()
for k,v in pairs(self.handbook_item_list) do
v:SetRedDot(false)
for k,v_red in pairs(red_dot_list.active_list) do
if v_red.toy_id == v.data.toy_id and v_red.suit_type == suit_type then
v:SetRedDot(true)
end
end
end
end
function ChildHandbookViewNew:SetViewListCon( suit_type, check_effect )
local handbook_list = self.model:GetSuitToyList(suit_type)
if not handbook_list then return end
for k,v in pairs(handbook_list) do
local item = self.handbook_item_list[k]
if item == nil then
item = ChildHandbookItem.New(self.Content_handbook_item)
self.handbook_item_list[k] = item
end
self.handbook_item_list[k]:SetData(v, check_effect)
self.handbook_item_list[k]:SetVisible(true)
end
for i=#handbook_list+1,#self.handbook_item_list do
self.handbook_item_list[i]:SetVisible(false)
end
self:UpdateRedDotItem(suit_type)
end
function ChildHandbookViewNew:SwitchTab( index )
end
function ChildHandbookViewNew:DestroySuccess( )
self.attr_item_list = {}
for i, v in ipairs(self.suit_tab_item_list) do
v:DeleteMe()
v = nil
end
self.suit_tab_item_list = {}
for i, v in ipairs(self.handbook_item_list) do
v:DeleteMe()
v = nil
end
self.handbook_item_list = {}
if self.levelUpAwardItem then
UIObjPool:getInstance():PushItem(UIObjPool.UIType.AwardItem, self.levelUpAwardItem)
self.levelUpAwardItem = nil
end
if self.updata_child_dif_suit_info then
self.model:UnBind(self.updata_child_dif_suit_info)
self.updata_child_dif_suit_info = nil
end
if self.updata_Child_RED_DOT_VIEW_id then
self.model:UnBind(self.updata_Child_RED_DOT_VIEW_id)
self.updata_Child_RED_DOT_VIEW_id = nil
end
-- if self.tab_win then
-- self.tab_win:DeleteMe()
-- self.tab_win = nil
-- end
end