|
|
- GuildSceneEventBtnItem = GuildSceneEventBtnItem or BaseClass(BaseItem)
- local GuildSceneEventBtnItem = GuildSceneEventBtnItem
-
- function GuildSceneEventBtnItem:__init(parent_wnd,prefab_asset,layer_name)
- self.base_file = "guildScene"
- self.layout_file = "GuildSceneEventBtnItem"
- self.parent_wnd = parent_wnd
- self.layer_name = layer_name
- self.main_vo = RoleManager.Instance.mainRoleInfo
- self.model = GuildModel:getInstance()
- self.tv_model = GuildTVModel:GetInstance()
- self:Load()
- end
-
- function GuildSceneEventBtnItem:Load_callback()
- local nodes = {
- "icon:obj:img", "icon/name:tmp", "tip_timer_bg:obj", "tip_timer:txt",
- "num_reddot:obj", "num_reddot_lb:tmp",
- }
- self:GetChildren(nodes)
-
- self:AddEvents()
- if self.need_refreshData then
- self:UpdateView()
- end
- end
-
- function GuildSceneEventBtnItem:AddEvents( )
- local function click_event(target)
- if target == self.icon_obj then
- self:OnClickIcon()
- end
- end
- AddClickEvent(self.icon_obj, click_event)
-
- -- 按需更新按钮状态
- local function update_dance_status_func()
- if self.data and self.data.fun_id == 4007 then
- self:UpdateView()
- end
- end
- self.update_dance_status = self.main_vo:BindOne("dance_status", update_dance_status_func)
-
- --更新自动封印按钮状态
- local function updateGuildCollectIcon()
- if self.data and self.data.fun_id == 408 then
- self:UpdateView()
- end
- end
- self:BindEvent(self.model, GuildModel.UPDATE_AUTO_GUILD_COLLECT_STATE, updateGuildCollectIcon)
-
-
- local function update_tip()
- local function call_back( )
- if self._use_delete_method then
- return
- end
- self:ShowBtnTips(1420)
- end
- TimeManager.GetInstance():StartTime("GuildSceneEventBtnItem:ShowBtnTips1420",0.5,call_back)--限制刷新频率
- end
- self:BindEvent(self.tv_model, GuildTVConst.UPDATE_GUILDTV_BTN_TIPS, update_tip)
-
- local function update_btn_num_red(fun_id)
- self:ShowBtnNumReddot(fun_id)
- end
- self:BindEvent(self.model, GuildModel.UPDATE_SCENE_FUNCBTN_NUM_RED, update_btn_num_red)
- end
-
- function GuildSceneEventBtnItem:UpdateView( )
- if self.data.fun_id == 400799 or self.data.fun_id == 40699 or self.data.fun_id == 40899 then
- lua_resM:setImageSprite(self, self.icon_img, "guildScene_asset", "guild_btn_40099")
- else
- lua_resM:setImageSprite(self, self.icon_img, "guildScene_asset", "guild_btn_" .. self.data.fun_id)
- end
-
- if self.data.fun_id == 4007 then -- 社团派对
- local dance_status = RoleManager.Instance.mainRoleInfo.dance_status
- self.name_tmp.text = dance_status == 0 and "狂狼热舞" or "热舞中..."
- elseif self.data.fun_id == 408 then -- 封印裂隙
- -- local fight_state = AutoFightManager:getInstance():GetAutoFightState()
- local auto_collect_state = self.model:IsAutoGuildCollectState()
- self.name_tmp.text = auto_collect_state and "自动封印中..." or "封印裂隙"
- elseif self.data.fun_id == 400799 or self.data.fun_id == 40699 or self.data.fun_id == 40899 then -- 召唤社员
- self.name_tmp.text = "召唤社员"
- elseif self.data.fun_id == 406 then --击杀使徒
- self.name_tmp.text = "击杀使徒"
- else
- self.name_tmp.text = self.data.name
- end
- self:ShowBtnTips(self.data.fun_id)
- self:ShowBtnNumReddot(self.data.fun_id)
- end
-
- function GuildSceneEventBtnItem:SetData( data )
- self.data = data
- if self.is_loaded then
- self.need_refreshData = false
- self:UpdateView()
- else
- self.need_refreshData = true
- end
- end
-
- function GuildSceneEventBtnItem:OnClickIcon( )
- if not self.data then return end
- local callback = {
- [4007] = function () -- 社团派对祝火状态变更
- if not self.model._waiting_12025_respon then
- -- 请求切换祝火状态
- local dance_status = RoleManager.Instance.mainRoleInfo.dance_status
- -- self.model:Fire(GuildModel.CHANGE_GUILDDANCE_ACTION, dance_status == 0 and 1 or 0)
- DanceModel:getInstance():Fire(DanceModel.CHANGE_DANCE_STATUS, dance_status == 0)
- end
- end,
- [1420] = function () -- 社团派跑马
- GlobalEventSystem:Fire(GuildTVConst.OPEN_GUILDTV_MAIN_VIEW)
- end,
- [408] = function()--自动封印状态变更
- local auto_collect_state = self.model:IsAutoGuildCollectState()
- if not auto_collect_state then--要开启自动采集状态时,取消自动挂机状态
- GlobalEventSystem:Fire(EventName.STOPAUTOFIGHT)
- end
- self.model:SetAutoGuildCollectState(not auto_collect_state)--切换采集状态
- self.model:Fire(GuildModel.UPDATE_AUTO_GUILD_COLLECT_STATE)--通知按钮变化
- end,
- [406] = function() -- 寻路打社团boss
- local call_back = function ()
- GlobalEventSystem:Fire(EventName.STARTAUTOFIGHT)
- end
- -- 社团场景有两个,所以直接改为获取当前场景即可
- local scene_id = SceneManager:getInstance():GetSceneId()
- local pos_x, pos_y = self.model:GetGuildBossPos()
- local findVo = FindVo.New()
- findVo.type = FindVo.POINT
- findVo.sceneId = scene_id
- findVo.x = pos_x / SceneObj.LogicRealRatio.x
- findVo.y = pos_y / SceneObj.LogicRealRatio.y
- findVo.call_back = call_back
- GlobalEventSystem:Fire(EventName.STOPAUTOFIGHT)
- Scene:getInstance():FindElement(findVo)
- end,
- [400799] = function() --社团晚宴召唤社员
- local content = string.format("<color=#66abff>[社团晚宴]</color>正在进行中,海量经验等你来拿,大家快来加入这场狂欢派对吧!<color=#2cf89a><a@guildScene>[点击前往]</a></color>", RoleManager.Instance.mainRoleInfo.name)
- ChatModel:getInstance():Fire(ChatModel.SEND_MSG,ChatModel.CHANNEL_GUILD,content,0,nil,ChatModel.CHAT_COMMON_TYPE.SYSTEM)
- -- self.model:Fire(GuildModel.REQUEST_CCMD_EVENT, 40064, 4007)
- end,
- [40699] = function() --社团boss召唤社员
- local content = "<color=#66abff>[社团幻魔]</color>已现身,大家快来一起抵御幻魔入侵吧! <color=#2cf89a><a@guildScene>[立即前往]</a></color>"
- ChatModel:getInstance():Fire(ChatModel.SEND_MSG,ChatModel.CHANNEL_GUILD,content,0,nil,ChatModel.CHAT_COMMON_TYPE.SYSTEM)
- -- self.model:Fire(GuildModel.REQUEST_CCMD_EVENT, 40064, 406)
- end,
- [40899] = function() --封印裂隙召唤社员
- -- self.model:Fire(GuildModel.REQUEST_CCMD_EVENT, 40064, 408)
- local content = "<color=#66abff>[封印裂隙]</color>活动已经开始啦,大家快来一起封印吧! <color=#2cf89a><a@guildScene>[立即前往]</a></color>"
- ChatModel:getInstance():Fire(ChatModel.SEND_MSG,ChatModel.CHANNEL_GUILD,content,0,nil,ChatModel.CHAT_COMMON_TYPE.SYSTEM)
- end,
- [4062] = function()
- self.model:Fire(GuildModel.OPEN_BOSS_ROLL_VIEW, true)
- end,
- }
- if callback[self.data.fun_id] then
- callback[self.data.fun_id]()
- end
- end
-
- function GuildSceneEventBtnItem:ShowBtnTips(fun_id)
- if self.data.fun_id == fun_id then
- if fun_id == 1420 then--目前只有跑马需要这个tips 其他人要的时候再在下面加自己的逻辑 并且在上面addevent绑刷新方法
- local bool = self.tv_model:IsCanShowBtnTips()
- if bool then
- self.tip_timer_bg_obj:SetActive(true)
- self.tip_timer_txt.text = "新一轮押注开始了!"
- else
- self.tip_timer_bg_obj:SetActive(false)
- self.tip_timer_txt.text = ""
- end
- else
- self.tip_timer_bg_obj:SetActive(false)
- self.tip_timer_txt.text = ""
- end
- end
- end
-
- -- 显示按钮的数量红点
- function GuildSceneEventBtnItem:ShowBtnNumReddot(fun_id)
- if self.data.fun_id == fun_id then
- if fun_id == 4062 then
- local red_num = self.model:GetGuildBossNumRed()
- -- print("Saber:GuildSceneEventBtnItem [191] red_num: ",red_num)
- self.num_reddot_obj:SetActive(red_num > 0)
- self.num_reddot_lb_tmp.text = red_num > 0 and red_num or ""
- else
- self.num_reddot_obj:SetActive(false)
- self.num_reddot_lb_tmp.text = ""
- end
- end
- end
-
- function GuildSceneEventBtnItem:__delete( )
- if self.update_dance_status then
- self.main_vo:UnBind(self.update_dance_status)
- self.update_dance_status = nil
- end
- end
|