|
|
- --社团协助感谢界面
- GuildSupportThankView = GuildSupportThankView or BaseClass(BaseView)
- local GuildSupportThankView = GuildSupportThankView
-
- function GuildSupportThankView:__init()
- self.base_file = "guild"
- self.layout_file = "GuildSupportThankView"
- self.layer_name = "Top"
- self.is_set_zdepth = true
- self.use_background = true
- self.click_bg_toClose = true
- self.hide_maincancas = false
- self.blur_activity_bg = true
- self.use_show_anim = true
- self.use_hide_anim = true
- self.model = GuildModel:getInstance()
- self.view_type = GuildModel.SupportType.Thank--默认是感谢界面如果是2的话就是
- self.item_list = {}
- self.award_item_list = {}
- self.choose_desc_id = 1
- self.choose_open = false
-
- self.load_callback = function ()
- self:LoadSuccess()
- self:AddEvent()
- self:UpdateView( )
- end
- self.open_callback = function ( )
- self:OpenSuccess()
- end
- self.destroy_callback = function ( )
- self:DestroySuccess()
- end
- end
-
- function GuildSupportThankView:DestroySuccess()
- if self.roleItem then
- self.roleItem:DeleteMe()
- self.roleItem = nil
- end
- if self.vipItem then
- self.vipItem:DeleteMe()
- self.vipItem = nil
- end
-
- if self.awardItem1 then
- UIObjPool:getInstance():PushItem(UIObjPool.UIType.AwardItem, self.awardItem1)
- self.awardItem1 = nil
- end
-
- if self.awardItem2 then
- UIObjPool:getInstance():PushItem(UIObjPool.UIType.AwardItem, self.awardItem2)
- self.awardItem2 = nil
- end
-
- for k, v in ipairs(self.award_item_list) do
- UIObjPool:PushItem(UIObjPool.UIType.AwardItem, v)
- end
- self.award_item_list = {}
-
- for k, v in ipairs(self.item_list) do
- v:DeleteMe()
- v = nil
- end
- self.item_list = {}
- end
-
- function GuildSupportThankView:LoadSuccess()
- local nodes = {
- "lb1:tmp","addFriendBtn:obj:img","goods_con1:obj","thankBtn/thankBtnText:tmp",
- "thankBtn:obj","goods_con2:obj","myText:obj:tmp","youText:tmp","lb2:tmp","itemScroll",
- "addFriendBtn/addFriendBtnText:tmp","bg:raw","bg_title:raw", "tip:tmp","lbImg2:obj",
- "itemScroll/Viewport/itemCon", "line3:obj","oneItemCon/nameCon/vipCon/vip:img",
- --单个节点
- "oneItemCon/oneFriendBtn:obj", "oneItemCon/nameCon/name:tmp","awardCon",
- "oneItemCon/nameCon/sexCon/sex:img", "oneItemCon:obj", "oneItemCon/headCon",
- }
- self:GetChildren(nodes)
-
- self.myText_tmp.text = "你的\n奖励"
- self.tip_tmp.text = "点击空白位置关闭"
-
- self.awardItem1 = UIObjPool:getInstance():PopItem(UIObjPool.UIType.AwardItem,self.goods_con1)
- self.awardItem1:SetItemSize(78, 78)
-
- self.awardItem2 = UIObjPool:getInstance():PopItem(UIObjPool.UIType.AwardItem,self.goods_con2)
- self.awardItem2:SetItemSize(78, 78)
-
- lua_resM:setOutsideRawImage(self, self.bg_raw, GameResPath.GetViewBigBg("guild_support_thank_bg"))
-
- local info = self.data.role_list
- local need_add_friend = false
- if info then
- for i,v in ipairs(info) do
- local is_friend = SocialityModel.Instance:IsRelaviveType(v.role_id, Config.ConfigSocial.RelativeType.friend)
- local is_black = SocialityModel.Instance:IsRelaviveType(v.role_id, Config.ConfigSocial.RelativeType.black)
- if not is_friend and not is_black then
- need_add_friend = true
- break
- end
- end
- end
- self.need_add_friend = need_add_friend
-
- if self.view_type == GuildModel.SupportType.Thank then--界面是感谢状态
- lua_resM:setOutsideRawImage(self, self.bg_title_raw, GameResPath.GetGuildImage("guild_support_thank_title"),true)
- self.myText_obj:SetActive(true)
- self.goods_con1_obj:SetActive(true)
- self.lbImg2_obj:SetActive(true)
- self.line3_obj:SetActive(true)
- SetAnchoredPosition(self.youText,35,-62)
- SetAnchoredPosition(self.goods_con2,705,-383)
- SetAnchoredPosition(self.lb2,644,-499)
- self.thankBtnText_tmp.text = "发送感谢"
- self.lb2_tmp.text = "感谢协助双方均可获得奖励"
- self.youText_tmp.text = "对方\n奖励"
- -- 展示添加好友按钮
- -- self.addFriendBtn_obj:SetActive(true)
- else--界面是领奖展示状态
- lua_resM:setOutsideRawImage(self, self.bg_title_raw, GameResPath.GetGuildImage("guild_support_thank_title2"),true)
- self.myText_obj:SetActive(false)
- self.goods_con1_obj:SetActive(false)
- self.lbImg2_obj:SetActive(false)
- self.line3_obj:SetActive(false)
- self.goods_con2_obj:SetActive(false)
- self.addFriendBtn_obj:SetActive(false)
- SetAnchoredPosition(self.goods_con2,781,-413)
- SetAnchoredPosition(self.lb2,631,-384)
- SetAnchoredPosition(self.youText,-9,-146)
- SetAnchoredPositionX(self.thankBtn, -10)
- self.thankBtnText_tmp.text = "收下谢礼"
- self.lb2_tmp.text = "对方给您发了协助奖励"
- self.youText_tmp.text = "协助奖励"
- end
-
- if self.need_refreshData then
- self:UpdateView( )
- end
- end
-
- function GuildSupportThankView:AddEvent()
- local function onBtnClickHandler(target,x,y)
- if target == self.addFriendBtn_obj then--一键加好友
- if not self.need_add_friend then
- Message.show("暂无好友可加", "fault")
- return
- end
- local info = self.data.role_list
- for i,v in ipairs(info) do
- local is_friend = SocialityModel.Instance:IsRelaviveType(v.role_id, Config.ConfigSocial.RelativeType.friend)
- local is_black = SocialityModel.Instance:IsRelaviveType(v.role_id, Config.ConfigSocial.RelativeType.black)
- if not is_friend and not is_black then
- SocialityModel:getInstance():Fire(SocialityModel.REQUEST_CCMD_EVENT, 14003, v.role_id)
- end
- end
- elseif target == self.thankBtn_obj then--感谢或者确认
- if self.view_type == GuildModel.SupportType.Thank then
- self.model:Fire(GuildModel.REQUEST_CCMD_EVENT, 40050, GuildModel.SupportThankType.Normal, self.data.support_id, "")--这里标记一下发协助ID
- else
- self.model:Fire(GuildModel.REQUEST_CCMD_EVENT, 40070, self.data.type, self.data.support_id)--这里标记一下发协助ID
- end
- elseif target == self.oneFriendBtn_obj then--单个玩家加好友
- if self.one_data and self.one_data.role_id then
- SocialityModel:getInstance():Fire(SocialityModel.REQUEST_CCMD_EVENT, 14003, self.one_data.role_id)
- end
- end
- end
- AddClickEvent(self.addFriendBtn_obj, onBtnClickHandler)
- AddClickEvent(self.thankBtn_obj, onBtnClickHandler, LuaSoundManager.SOUND_UI.NONE)
- AddClickEvent(self.oneFriendBtn_obj, onBtnClickHandler, LuaSoundManager.SOUND_UI.NONE)
-
- --2021.4.14改版
- local function updateViewFunc( )
- self:UpdateView()
- end
- -- self:BindEvent(self.model,GuildModel.UPDATE_GUILD_SUPPOR_THANK_INFO, updateViewFunc)--刷新
- self:BindEvent(SocialityModel:getInstance(),SocialityModel.UPDATE_SOCIALITY_VIEW, updateViewFunc)--刷新
-
- -- local function updateViewDesc( index )
- -- if not self.is_loaded then return end
- -- self.choose_desc_id = index
- -- end
- -- self:BindEvent(self.model,GuildModel.UPDATE_GUILD_SUPPOR_THANK_DESC, updateViewDesc)--刷新
- end
-
- function GuildSupportThankView:Open(view_type,data)
- self.view_type = view_type or self.view_type
- self.data = data
- print("huangcong:GuildSupportThankView [start:175] self.data:", self.data)
- PrintTable(self.data)
- print("huangcong:GuildSupportThankView [end]")
- BaseView.Open(self)
- end
-
- function GuildSupportThankView:OpenSuccess( )
- -- self:UpdateView()
- end
-
- function GuildSupportThankView:UpdateView( )
- if self.is_loaded then
- self.need_refreshData = false
- else
- self.need_refreshData = true
- return
- end
-
- if not self.data then return end
- if self.data.chat_msg then
- -- self.desc_tmp.text = self.data.chat_msg
- end
-
- if self.data.type == GuildModel.SupportThankType.SpellList then--社团派单走这里
- self.cfg = Config.Guildorder[self.data.support_cfg_id]
- if not self.cfg then
- print("社团派单配置不存在:", self.data.support_cfg_id)
- return
- end
-
- if self.data.role_list[1] and self.data.role_list[1].name then
- self.lb1_tmp.text = string.format("感谢您协助拼单:%s",HtmlColorTxt(Trim(self.cfg.name), GuildModel.SpellListColor[self.cfg.color]))
- end
- else
- self.cfg = self.model:GetGuildSupportCfg(self.data.support_cfg_id)
- if not self.cfg then
- print("协助配置不存在 Id:", self.data.support_cfg_id)
- return
- end
- local goods_cfg1 = self.cfg.thank_reward
- if goods_cfg1 and goods_cfg1[1] then
- local typeId, lock = GoodsModel:getInstance():GetMappingTypeId(goods_cfg1[1][1],goods_cfg1[1][2])
- self.awardItem1:SetData(typeId,goods_cfg1[1][3])
- end
- local goods_cfg2 = self.cfg.support_reward
- if goods_cfg2 and goods_cfg2[1] then
- local typeId, lock = GoodsModel:getInstance():GetMappingTypeId(goods_cfg2[1][1],goods_cfg2[1][2])
- self.awardItem2:SetData(typeId,goods_cfg2[1][3])
- end
- local boss_id = self.data.boss_id
- if not boss_id then
- for i,v in ipairs(self.data.extra_value) do
- if v.key == 1 then
- boss_id = v.value
- end
- end
- end
-
- local boss_type_name = ""
- local monster_name = ""
-
- if self.data.support_cfg_id == GuildSupportInfoItem.CFG_TYPE.MONEY_BOSS or
- self.data.support_cfg_id == GuildSupportInfoItem.CFG_TYPE.DESERTED_BOSS then
- --Boss形象
- local monster = ConfigItemMgr.Instance:GetMonsterDataItem(boss_id)
- if not monster then
- print('----HC GuildSupportThankView.lua -- 没有找到怪物配置=')
- return
- end
- local boss_type = BossModel:GetInstance():GetBossTypeByBossId( boss_id )
- boss_type_name = self.model:GetSupportTypeName(boss_type) or ""
- monster_name = monster.name
- end
- local support_text = GuildModel.SupportTypeStr[self.data.support_cfg_id] or "协助击杀"
- if self.view_type == GuildModel.SupportType.Thank then
- self.lb1_tmp.text = string.format("以下成员%s%s:%s",support_text,boss_type_name,HtmlColorTxt(monster_name, ColorUtil.PURPLE_DARK))
- else
- if self.data.role_list[1] and self.data.role_list[1].name then
- self.lb1_tmp.text = string.format("感谢您%s%s:%s",support_text,boss_type_name,HtmlColorTxt(monster_name, ColorUtil.PURPLE_DARK))
- end
- end
- end
- self:UpdateItemList()
- self:UpdateThankBtnAndAddBtnPos()
- if self.view_type ~= GuildModel.SupportType.Thank then
- self:UpdateAwardList()
- else
- for k,v in pairs(self.award_item_list) do
- v:SetVisible(false)
- end
- end
- end
-
- function GuildSupportThankView:BtnCloseEvt()--关闭按钮回调
- self:Close()
- end
-
- function GuildSupportThankView:UpdateItemList( )
- local info = self.data.role_list
- if not info or #info == 0 then return end
- if #info == 1 then
- self.one_data = info[1]
- self.oneItemCon_obj:SetActive(true)
- self:UpdateOneItemInfo()
- return
- else
- self.oneItemCon_obj:SetActive(false)
- self.one_data = nil
- end
- local item
- local offer_x = 90
- local offer_y = 0
- for k, v in ipairs(info) do
- item = self.item_list[k]
- if not item then
- item = GuildSupportThankItem.New(self.itemCon)
- self.item_list[k] = item
- end
- item:SetData(v, k)
- item:SetPosition(1, -GuildSupportThankItem.Height*(k - 1) - 1)
- item:SetVisible(true)
- end
-
- SetSizeDeltaY(self.itemCon,GuildSupportThankItem.Height*#info)
- end
-
- function GuildSupportThankView:UpdateOneItemInfo( )
- if not self.one_data or not self.one_data.name then return end
- --以下就是玩家的个人数据
- local is_friend = SocialityModel.Instance:IsRelaviveType(self.one_data.role_id, Config.ConfigSocial.RelativeType.friend)
- local is_black = SocialityModel.Instance:IsRelaviveType(self.one_data.role_id, Config.ConfigSocial.RelativeType.black)
- self.oneFriendBtn_obj:SetActive(not is_friend and not is_black)
- self.name_tmp.text = self.one_data.name
- if not self.vipItem then
- self.vipItem = RoleVipItem.New(self.vip)
- end
- self.vipItem:SetData(self.one_data.vip_flag, self.one_data.sup_vip_type)
-
- if not self.roleItem then
- self.roleItem = HeadRoleItem.New(self.headCon)
- self.roleItem:SetItemSize(85,85)
- end
- local role_lv = WordManager:GetRoleLevel(self.one_data.level, self.one_data.turn)
- local head_data = {
- vo = {
- id = self.one_data.role_id,
- server_id = self.one_data.server_num,
- -- career = self.one_data.career,
- sex = self.one_data.sex,
- turn = self.one_data.turn,
- picture_ver = self.one_data.picture_ver,
- picture = self.one_data.picture,
- profile_photo_id = self.one_data.profile_photo_id,
- dress_board_id = self.one_data.dress_board_id or self.one_data.dress_id,
- level = self.one_data.level,
- empty_head = false, -- 是否是空数据头像
- }
- }
- self.roleItem:SetData(head_data)
-
- local function callback( ... )
- SetSizeDeltaX(self.name,self.name_tmp.preferredWidth+2)
- end
- if self.one_data.sex then
- lua_resM:setImageSprite(self, self.sex_img, "common_asset", self.one_data.sex == 1 and "com_boy" or "com_girl", true,callback)
- end
- end
-
- function GuildSupportThankView:UpdateAwardList( )
- for k,v in pairs(self.award_item_list) do
- v:SetVisible(false)
- end
- local data = self.cfg.support_reward
- if self.data.type == GuildModel.SupportThankType.SpellList then--社团派单走这里
- data = stringtotable(self.cfg.order_reward)
- end
- if not data or TableSize(data) == 0 then
- return
- end
- -- print("huangcong:CompetingListCon [50]data: ",data)
- -- PrintTable(data)
- local len = #data
- for i=1, len do
- local goods_cfg = data[i]
- if goods_cfg then
- local good_id,is_locked = GoodsModel:getInstance():GetMappingTypeId(goods_cfg[1],goods_cfg[2])
- local item = self.award_item_list[i]
- if not item then
- item = UIObjPool:PopItem(UIObjPool.UIType.AwardItem,self.awardCon)
- item:SetItemSize(78,78)
- self.award_item_list[i] = item
- end
- item:SetPosition(88*(i-1),-1)
- item:SetVisible(true)
- item:SetData(good_id, goods_cfg[3], nil,nil,is_locked,nil,nil)
- end
- end
- self.awardCon.sizeDelta = Vector2(88*len,80)
-
- local sum_x = 88*len
- local size_x = 385--y66
- if sum_x < size_x then
- local offer_x = (size_x - sum_x)/2 + 5
- for i,v in ipairs(self.award_item_list) do
- local pos = v:GetPosition()
- v:SetPosition(pos.x+offer_x,pos.y)
- end
- end
- end
-
- -- 更新发起感谢和一键加好友按钮的位置和显示
- function GuildSupportThankView:UpdateThankBtnAndAddBtnPos( )
- if self.need_add_friend then
- self.addFriendBtn_obj:SetActive(true)
- SetAnchoredPositionX(self.thankBtn, -98)
- else
- self.addFriendBtn_obj:SetActive(false)
- SetAnchoredPositionX(self.thankBtn, -10)
- end
- end
|