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
|