--社团协助感谢界面
|
|
GuildSpellListThankView = GuildSpellListThankView or BaseClass(BaseView)
|
|
local GuildSpellListThankView = GuildSpellListThankView
|
|
|
|
function GuildSpellListThankView:__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.item_list = {}
|
|
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 GuildSpellListThankView:DestroySuccess()
|
|
-- 关闭界面直接发感谢
|
|
-- self.model:Fire(GuildModel.REQUEST_CCMD_EVENT, 40041, self.data.order)
|
|
self.model:ClearGuildSpellListCurSupportThankId()
|
|
self.model:Fire(GuildModel.REQUEST_CCMD_EVENT, 40068) -- 关闭界面时统一请求一次最新的协助信息
|
|
|
|
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 pairs(self.item_list) do
|
|
v:DeleteMe()
|
|
v = nil
|
|
end
|
|
self.item_list = {}
|
|
end
|
|
|
|
function GuildSpellListThankView:LoadSuccess()
|
|
local nodes = {
|
|
"lb1:tmp","addFriendBtn:obj:img","goods_con1:obj","thankBtn/thankBtnText:tmp",
|
|
"thankBtn:obj","goods_con2","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",
|
|
"oneItemCon/nameCon/sexCon/sex:img", "oneItemCon:obj", "oneItemCon/headCon",
|
|
}
|
|
self:GetChildren(nodes)
|
|
|
|
-- 改个名
|
|
self.transform.name = "GuildSpellListThankView"
|
|
|
|
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"))
|
|
|
|
-- 默认界面是感谢状态
|
|
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奖励"
|
|
|
|
if self.need_refreshData then
|
|
self:UpdateView( )
|
|
end
|
|
end
|
|
|
|
function GuildSpellListThankView: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 v.role_id > 10 and 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--感谢或者确认
|
|
self.model:Fire(GuildModel.REQUEST_CCMD_EVENT, 40050, GuildModel.SupportThankType.SpellList, self.data.support_id, "")
|
|
self:Close()
|
|
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)
|
|
|
|
local function updateViewFunc( )
|
|
self:UpdateView()
|
|
end
|
|
self:BindEvent(SocialityModel:getInstance(),SocialityModel.UPDATE_SOCIALITY_VIEW, updateViewFunc)--刷新
|
|
end
|
|
|
|
function GuildSpellListThankView:Open(data)
|
|
self.data = data or self.data
|
|
BaseView.Open(self)
|
|
end
|
|
|
|
function GuildSpellListThankView:OpenSuccess( )
|
|
-- self:UpdateView()
|
|
end
|
|
|
|
function GuildSpellListThankView:UpdateView( )
|
|
if self.is_loaded then
|
|
self.need_refreshData = false
|
|
else
|
|
self.need_refreshData = true
|
|
return
|
|
end
|
|
if not self.data or TableSize(self.data) == 0 then return end
|
|
|
|
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 v.role_id > 10 and not is_friend and not is_black then
|
|
need_add_friend = true
|
|
break
|
|
end
|
|
end
|
|
end
|
|
self.need_add_friend = need_add_friend
|
|
|
|
local cfg = Config.Guildorder[self.data.support_cfg_id]
|
|
if cfg then
|
|
if not cfg then
|
|
print("社团派单配置不存在:", self.data.support_cfg_id)
|
|
return
|
|
end
|
|
local goods_cfg1 = stringtotable(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 = stringtotable(cfg.show_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 num = #info
|
|
self.lb1_tmp.text = string.format("%s <color=%s>%s</color>",
|
|
num <=1 and "该成员协助您完成了拼单" or "以下成员协助您完成了拼单", GuildModel.SpellListColor[cfg.color], Trim(cfg.name))
|
|
end
|
|
self:UpdateItemList()
|
|
self:UpdateThankBtnAndAddBtnPos()
|
|
end
|
|
|
|
function GuildSpellListThankView:UpdateItemList( )
|
|
local info = self.data.role_list
|
|
local info_num = info and #info or 0
|
|
if info_num == 0 then return end
|
|
if info_num > 1 then -- 超过一个玩家的情况,就要筛选掉假人
|
|
for k = info_num, 1, -1 do
|
|
if info[k].role_id < 10 then
|
|
table.remove(info, k)
|
|
end
|
|
end
|
|
-- 重新计算列表长度
|
|
info_num = #info
|
|
end
|
|
if info_num == 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_num)
|
|
end
|
|
|
|
function GuildSpellListThankView:UpdateOneItemInfo( )
|
|
if not self.one_data or not self.one_data.name then return end
|
|
local is_real_role = self.one_data.role_id > 10
|
|
--以下就是玩家的个人数据
|
|
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(is_real_role and not is_friend and not is_black)
|
|
self.name_tmp.text = is_real_role and self.one_data.name or "社团助手"
|
|
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 role_lv = WordManager:GetRoleLevel(self.one_data.level)
|
|
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 = is_real_role and self.one_data.profile_photo_id or 424008, -- 社团假人用别的头像
|
|
dress_board_id = self.one_data.dress_board or self.one_data.dress_id,
|
|
-- level = self.one_data.level,
|
|
empty_head = false, -- 是否是空数据头像
|
|
use_bg = 2,
|
|
}
|
|
}
|
|
self.roleItem:SetData(head_data)
|
|
|
|
local function callback( ... )
|
|
SetSizeDeltaX(self.name,self.name_tmp.preferredWidth+2)
|
|
end
|
|
if is_real_role and self.one_data.sex then -- role_id < 10 代表假人,不需要展示性别
|
|
lua_resM:setImageSprite(self, self.sex_img, "common_asset", self.one_data.sex == 1 and "com_boy" or "com_girl", true, callback)
|
|
self.sex_img.enabled = true
|
|
else
|
|
self.sex_img.enabled = false
|
|
end
|
|
end
|
|
|
|
-- 更新发起感谢和一键加好友按钮的位置和显示
|
|
function GuildSpellListThankView: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
|