|
|
- --[[@------------------------------------------------------------------
- @description:协助主界面
- @author:huangcong
- ----------------------------------------------------------------------]]
- GuildSupportInfoMainView = GuildSupportInfoMainView or BaseClass(BaseView)
-
- GuildSupportInfoMainView.TabData = {
- {id = GuildModel.SupportTab.List, name = "协助列表", module_id = 400, sub_id = 6, sort_id = 1},
- {id = GuildModel.SupportTab.Thank, name = "发送感谢", module_id = 400, sub_id = 6, sort_id = 2},
- {id = GuildModel.SupportTab.Gift, name = "接受感谢", module_id = 400, sub_id = 6, sort_id = 3},
- }
-
- local GuildSupportInfoMainView = GuildSupportInfoMainView
- function GuildSupportInfoMainView:__init()
- self.base_file = "guild"
- self.layout_file = "GuildSupportInfoMainView"
- self.layer_name = "UI"
- self.need_show_money = false
- self.destroy_imm = true
- self.use_background = true
- self.hide_maincancas = false --全屏界面需要放开隐藏主UI
- self.append_to_ctl_queue = true --添加进入控制队列
- self.change_scene_close = true
- -- self.fire_change_visible_event = true
- -- self.is_set_zdepth = true
- self.blur_activity_bg = true
- self.model = GuildModel:getInstance()
- self.tab_list = {}
- self.tab_index = GuildModel.SupportTab.List
- self.mainVo = RoleManager.Instance.mainRoleInfo
- self.tab_list = {}
- self.sub_view_list = {}
- self.load_callback = function ()
- self:LoadSuccess()
- self:InitEvent()
- end
-
- self.open_callback = function ()
- self:OpenCallBack()
- end
- self.close_callback = function ()
- self:Remove()
- end
- end
-
- function GuildSupportInfoMainView:Open(id,speaciel_data)
- self.tab_index = id or self.tab_index
- self.speaciel_data = speaciel_data or self.speaciel_data
- BaseView.Open(self)
- -- print("huangcong:GuildSupportInfoMainView [start:61] :", self.speaciel_data)
- -- PrintTable(self.speaciel_data)
- -- print("huangcong:GuildSupportInfoMainView [end]")
- end
-
- function GuildSupportInfoMainView:OpenCallBack( )
- end
-
- function GuildSupportInfoMainView:Remove()
- if self.delay_id then
- GlobalTimerQuest:CancelQuest(self.delay_id)
- self.delay_id = nil
- end
-
- for k,v in pairs(self.tab_list) do
- v:DeleteMe()
- end
- self.tab_list = {}
-
- for k,v in pairs(self.sub_view_list) do
- v:DeleteMe()
- end
- self.sub_view_list = {}
- end
-
- function GuildSupportInfoMainView:LoadSuccess()
- self.nodes = {
- "bg:raw", "closeBtn:obj", "container", "titleNameText:tmp", "tabCon",
- --下方名望券相关节点
- "horCon/goodsCon/goods_icon:img","horCon/pro_value:tmp","horCon/lb1:tmp",
- "horCon/help:obj","horCon:obj",
- }
- self:GetChildren(self.nodes)
-
- self.titleNameText_tmp.text = "社团协助"
- self.cost_goods_id = WordManager:GetPriceTypeId(4)
- self.goods_name = GoodsModel:getInstance():getGoodsName(self.cost_goods_id, true)
- self.lb1_tmp.text = string.format("每日协助获得%s上限:",self.goods_name)
- local res_asset, res_name = WordManager:GetCommonMoneyIcon(Config.ConfigNotNormalGoods[4].type)
- lua_resM:setImageSprite(self, self.goods_icon_img, res_asset, res_name)
- self:UpdateView()
- end
-
- function GuildSupportInfoMainView:InitEvent()
- local function onBtnClickHandler(target,x,y)
- if target == self.help_obj then--帮助
- EventSystem.Fire(GlobalEventSystem,EventName.OPEN_INSTRUCTION_VIEW, 40006)
- elseif target == self.closeBtn_obj then--关闭
- self:Close()
- end
- end
- AddClickEvent(self.closeBtn_obj, onBtnClickHandler, LuaSoundManager.SOUND_UI.NONE)
- AddClickEvent(self.help_obj, onBtnClickHandler, LuaSoundManager.SOUND_UI.NONE)
-
- local function updateDataInfo( )
- if not self.is_loaded then
- return
- end
- self:UpdateReputation()
- end
- self:BindEvent(self.model, GuildModel.UPDATE_GUILD_SUPPOR_INFO, updateDataInfo)--刷新协助信息列表
- end
-
- function GuildSupportInfoMainView:UpdateView( id,speaciel_data )
- self.tab_index = id or self.tab_index
- self.speaciel_data = speaciel_data or self.speaciel_data
- self:UpdateTabList()
- self:UpdateReputation()
- end
-
- function GuildSupportInfoMainView:UpdateTabList( )--页签数据更新
- local tab_list = GuildSupportInfoMainView.TabData
- if not tab_list or TableSize(tab_list) == 0 then return end
-
- local function callback( index,force )
- self:SwitchView(index,force)
- end
-
- local offer_x = 2
- local offer_y = 0
- local x = 0
- local y = 0
- for i, v in ipairs(tab_list) do
- local item = self.tab_list[i]
- if item == nil then
- item = GuildSupportInfoMainTab.New(self.tabCon, nil, self.layer_name)
- self.tab_list[i] = item
- y = -(GuildSupportInfoMainTab.Height + offer_y)* (i-1)
- x = 0
- item:SetPosition(x,y)
- item:SetCallBack(callback)
- end
- item:SetData(v,i,self.tab_index)
- end
- callback(self.tab_index,true)
- self:UpdateTabRedDot()
- end
-
- function GuildSupportInfoMainView:SwitchView(id,force)
- if self.tab_index == id and not force then return end
- for k,v in ipairs(self.tab_list) do
- v:SetSelect(id)
- end
- if id == GuildModel.SupportTab.List then--协助列表
- if self.sub_view_list[id] == nil then
- self.sub_view_list[id] = GuildSupportInfoMainListView.New(self.container,nil,self.layer_name)
- end
- self.sub_view_list[id]:SetData(self.speaciel_data)
- lua_resM:setOutsideRawImage(self, self.bg_raw, GameResPath.GetViewBigBg("guild_support_bg"),false)
- elseif id == GuildModel.SupportTab.Thank then--协助感谢
- if self.sub_view_list[id] == nil then
- self.sub_view_list[id] = GuildSupportInfoMainThankView.New(self.container,nil,self.layer_name)
- end
- self.sub_view_list[id]:SetData(self.speaciel_data)
- lua_resM:setOutsideRawImage(self, self.bg_raw, GameResPath.GetViewBigBg("guild_support_bg2"),false)
- elseif id == GuildModel.SupportTab.Gift then--协助礼物收下
- if self.sub_view_list[id] == nil then
- self.sub_view_list[id] = GuildSupportInfoMainGiftView.New(self.container,nil,self.layer_name)
- end
- self.sub_view_list[id]:SetData(self.speaciel_data)
- lua_resM:setOutsideRawImage(self, self.bg_raw, GameResPath.GetViewBigBg("guild_support_bg2"),false)
- end
- self:PopUpChild(self.sub_view_list[id])
- self.tab_index = id
- self.speaciel_data = nil
- end
-
- function GuildSupportInfoMainView:CancelHide( )
- BaseView.CancelHide(self)
- if self.is_loaded then
-
- end
- end
-
- function GuildSupportInfoMainView:UpdateTabRedDot(id)--更新页签红点
- local red_data = self.model.support_red_list
- if not id then
- for k,v in ipairs(self.tab_list) do
- v:SetRedDot(red_data[k] or false)
- end
- else
- for k,v in ipairs(self.tab_list) do
- if k == id then
- v:SetRedDot(red_data[k] or false)
- break
- end
- end
- end
- end
-
- function GuildSupportInfoMainView:UpdateReputation( )--更新名望券
- local max_num = GoodsModel:getInstance():GetReputationMaxNum() or 0
-
- --宠物生活技能 每日名望获取上限额外提高
- local life_skill_active = PetModel:getInstance():IsLifeSkillActived(PetConst.LifeSkill.FameDailyLimitUp)
- local life_skill_ratio = PetModel:getInstance():GetPetLifeSkillRatio(PetConst.LifeSkill.FameDailyLimitUp)
- if life_skill_active then
- max_num = max_num + life_skill_ratio
- end
-
- local cur_num = GoodsModel:getInstance():GetDaliyReputation() or 0
- local guild_position = RoleManager.Instance.mainRoleInfo.position
- local cfg = Config.Guildpos[guild_position]
- local add_str = " (普通成员以上获得上限加成,"
- if cfg and cfg.reputation_add then
- add_str = " (社团"..Trim(cfg.name)..HtmlColorTxt("+"..cfg.reputation_add, ColorUtil.GREEN_DARK).."上限,"
- end
- local cur_str = HtmlColorTxt(cur_num, max_num <= cur_num and ColorUtil.RED_DARK or ColorUtil.GREEN_DARK)
- local str = ""
- if guild_position ~= 0 then
- str = string.format("%s/%s%s%s",cur_str,max_num,add_str,"每天"..HtmlColorTxt("4:00", ColorUtil.GREEN_DARK).."重置)")
- else
- str = string.format("%s/%s%s",cur_str,max_num," (社团普通成员以上提高上限,每天"..HtmlColorTxt("4:00", ColorUtil.GREEN_DARK).."重置)")
- end
-
- if self.delay_id then
- GlobalTimerQuest:CancelQuest(self.delay_id)
- self.delay_id = nil
- end
- local function callback( ... )
- self.pro_value_tmp.text = str
- SetSizeDeltaX(self.pro_value,self.pro_value_tmp.preferredWidth+2)
- end
- self.delay_id = setTimeout(callback,0.01) -- 下一帧再加载
- end
|