|
CSMainExploitRankView = CSMainExploitRankView or BaseClass(BaseView)
|
|
local CSMainExploitRankView = CSMainExploitRankView
|
|
|
|
function CSMainExploitRankView:__init()
|
|
self.base_file = "csMain"
|
|
self.layout_file = "CSMainExploitRankView"
|
|
self.layer_name = "Activity"
|
|
self.destroy_imm = true
|
|
self.use_background = true
|
|
self.change_scene_close = true
|
|
self.hide_maincancas = true --是否隐藏主界面
|
|
self.append_to_ctl_queue = false --是否要添加进界面堆栈
|
|
self.need_show_money = false --是否要显示顶部的金钱栏
|
|
self.is_set_zdepth = true
|
|
|
|
self.mainVo = RoleManager.Instance.mainRoleInfo
|
|
|
|
self.tab_item_list = {}
|
|
self.top_item_list = {}
|
|
|
|
self.model = CSMainModel:getInstance()
|
|
|
|
self.current_index = nil
|
|
|
|
self.my_contray_id = KfWorldModel:GetInstance():GetMyCountryId()
|
|
|
|
self.load_callback = function ()
|
|
self:LoadSuccess()
|
|
self:AddEvent()
|
|
end
|
|
self.open_callback = function ( )
|
|
self:OpenSuccess()
|
|
end
|
|
self.destroy_callback = function ( )
|
|
self:DestroySuccess()
|
|
end
|
|
end
|
|
|
|
function CSMainExploitRankView:Open(index)
|
|
self.current_index = index or 1
|
|
BaseView.Open(self)
|
|
end
|
|
|
|
function CSMainExploitRankView:LoadSuccess()
|
|
local nodes = {
|
|
"closeBtn:obj", "bg:raw", "tabCon", "topbg:img",
|
|
"myRankCon:obj", "myRankCon/myRankIcon:img:obj", "myRankCon/mySex:img",
|
|
"myRankCon/myVipCon", "myRankCon/myRank:tmp", "myRankCon/myName:tmp", "myRankCon/myGuildName:tmp", "myRankCon/myScore:tmp",
|
|
"rankScrollView", "rankScrollView/Viewport/rankContent",
|
|
"topCon", "titleCon",
|
|
"rewardBtn:obj", "rewardBtn/rewardRed:obj",
|
|
"rankEmpty:obj", "rankEmpty/rankEmptyTalkBg:raw",
|
|
"myRankCon/myMilitaryRank:img",
|
|
}
|
|
self:GetChildren(nodes)
|
|
lua_resM:setOutsideRawImage(self,self.bg_raw,GameResPath.GetViewBigBg("cs_main_exploit_bg"))
|
|
lua_resM:setOutsideRawImage(self, self.rankEmptyTalkBg_raw, GameResPath.GetRoleBg("empty_bg_small"))
|
|
|
|
self.model:Fire(CSMainConst.REQUEST_CCMD_EVENT,60308)
|
|
|
|
self.myVipItem = RoleVipItem.New(self.myVipCon)
|
|
|
|
|
|
|
|
end
|
|
|
|
function CSMainExploitRankView:AddEvent()
|
|
local on_click = function ( click_obj )
|
|
if self.closeBtn_obj == click_obj then
|
|
self:Close()
|
|
elseif self.rewardBtn_obj == click_obj then
|
|
self.model:Fire(CSMainConst.OPEN_CS_MAIN_EXPLOIT_RANK_DAILY_REWARD_VIEW)
|
|
end
|
|
end
|
|
AddClickEvent(self.closeBtn_obj, on_click)
|
|
AddClickEvent(self.rewardBtn_obj, on_click)
|
|
|
|
-- --60308
|
|
-- local function on_update_rank_data_extra()
|
|
|
|
-- end
|
|
-- self:BindEvent(self.model, CSMainConst.UPDATE_EXPLOIT_RANK_DATA_EXTRA, on_update_rank_data_extra)
|
|
|
|
--60307
|
|
local function on_update_rank_con(vo)
|
|
if self.current_contray_index and vo.fact == self.current_contray_index then
|
|
self:UpdateRankCon(vo)
|
|
end
|
|
end
|
|
self:BindEvent(self.model, CSMainConst.UPDATE_EXPLOIT_RANK_CON, on_update_rank_con)
|
|
|
|
local function update_red_dot(tab_id)
|
|
if not self.is_loaded then return end
|
|
if tab_id == CSMainConst.RedType.DailyReward then
|
|
self:RefreshRed()
|
|
end
|
|
end
|
|
self:BindEvent(self.model, CSMainConst.ANS_UPDATE_RED_DOT, update_red_dot)
|
|
|
|
local function CLICK_GET_WAY_ITEM( )
|
|
self:Close()
|
|
end
|
|
self:BindEvent(GlobalEventSystem, EventName.CLICK_GET_WAY_ITEM, CLICK_GET_WAY_ITEM)
|
|
|
|
end
|
|
|
|
function CSMainExploitRankView:OpenSuccess()
|
|
self:InitTab()
|
|
self:RefreshRed()
|
|
end
|
|
|
|
function CSMainExploitRankView:RefreshRed( )
|
|
local red = self.model:GetDailyRewardRed()
|
|
self.rewardRed_obj:SetActive(red)
|
|
end
|
|
|
|
function CSMainExploitRankView:InitTab( )
|
|
if not self.my_contray_id then return end
|
|
|
|
local contray_list = KfWorldModel:GetInstance():GetContrayList()
|
|
local tab_data = {}
|
|
local first_data = {name = contray_list[self.my_contray_id], contray_id = self.my_contray_id}
|
|
table.insert(tab_data, first_data)
|
|
for i,v in ipairs(contray_list) do
|
|
if i ~= self.my_contray_id then
|
|
local temp = {name = v, contray_id = i}
|
|
table.insert(tab_data, temp)
|
|
end
|
|
end
|
|
|
|
local function call_back(tab_index,contray_id)
|
|
self:SwitchTab(tab_index,contray_id)
|
|
end
|
|
for k,v in pairs(self.tab_item_list) do
|
|
v:SetVisible(false)
|
|
end
|
|
for i,v in ipairs(tab_data) do
|
|
local item = self.tab_item_list[i]
|
|
if not item then
|
|
item = CSMainExploitRankTab.New(self.tabCon)
|
|
self.tab_item_list[i] = item
|
|
end
|
|
item:SetVisible(true)
|
|
item:SetData(v,i,call_back)
|
|
item:SetAnchoredPosition(-2, 41-(i-1)*(74-5))
|
|
end
|
|
for k,v in pairs(self.tab_item_list) do
|
|
v:OnClick(self.current_index)
|
|
end
|
|
|
|
end
|
|
|
|
function CSMainExploitRankView:SwitchTab( index,contray_id )
|
|
self.current_index = index
|
|
self.current_contray_index = contray_id
|
|
self.model:Fire(CSMainConst.REQUEST_CCMD_EVENT,60307,contray_id)
|
|
|
|
end
|
|
|
|
function CSMainExploitRankView:UpdateRankCon(vo)
|
|
if not self.my_contray_id then return end
|
|
|
|
local is_my_contray = vo.fact == self.my_contray_id
|
|
if is_my_contray then
|
|
SetAnchoredPositionY(self.titleCon,73.5)
|
|
SetSizeDeltaY(self.rankScrollView,275)
|
|
SetAnchoredPositionY(self.rankScrollView,-82)
|
|
lua_resM:setOutsideImageSprite(self, self.png_img, GameResPath.GetCSMainImage("cs_main_top_di_long"),true)
|
|
else
|
|
SetAnchoredPositionY(self.titleCon,112)
|
|
SetSizeDeltaY(self.rankScrollView,305)
|
|
SetAnchoredPositionY(self.rankScrollView,-58)
|
|
lua_resM:setOutsideImageSprite(self, self.png_img, GameResPath.GetCSMainImage("cs_main_top_di_short"),true)
|
|
end
|
|
|
|
--排行榜
|
|
local sort_func = function ( a, b )
|
|
return a.rank < b.rank
|
|
end
|
|
table.sort(vo.ranks, sort_func)
|
|
|
|
local final_rank_list = {}
|
|
local max_show_ranks = Config.Legionkv["honor_max_rank"].value
|
|
for i=1,max_show_ranks do
|
|
if vo.ranks[i] then
|
|
table.insert(final_rank_list,vo.ranks[i])
|
|
end
|
|
end
|
|
|
|
if not self.item_list_com then
|
|
self.item_list_com = self:AddUIComponent(UI.ItemListCreator)
|
|
end
|
|
self.item_list_com:Reset()
|
|
local info = {
|
|
data_list = final_rank_list,
|
|
item_con = self.rankContent,
|
|
item_class = CSMainExploitRankItem,
|
|
item_width = 900,
|
|
item_height = 50,
|
|
-- space_x = 0,
|
|
-- space_y = 0,
|
|
start_x = 0,
|
|
start_y = -0.5,
|
|
scroll_view = self.rankScrollView,
|
|
create_frequency = 0.01,
|
|
on_update_item = function(item, i, v)
|
|
item:SetData(v,i)
|
|
end,
|
|
}
|
|
self.item_list_com:UpdateItems(info)
|
|
self.rankEmpty_obj:SetActive(#vo.ranks == 0)
|
|
|
|
--top5
|
|
for k,v in pairs(self.top_item_list) do
|
|
v:SetVisible(false)
|
|
end
|
|
for i=1,5 do
|
|
local top_rank_data = vo.ranks and vo.ranks[i] or nil
|
|
local item = self.top_item_list[i]
|
|
if not item then
|
|
item = CSMainExploitRankTopItem.New(self.topCon)
|
|
self.top_item_list[i] = item
|
|
end
|
|
item:SetData(top_rank_data,i,is_my_contray)
|
|
item:SetAnchoredPosition(CSMainConst.ExploitTopItemPos[i].main_pos_x, CSMainConst.ExploitTopItemPos[i].main_pos_y)
|
|
item:SetVisible(true)
|
|
end
|
|
|
|
--我的排名
|
|
if is_my_contray then
|
|
lua_resM:setOutsideImageSprite(self, self.topbg_img, GameResPath.GetCSMainImage("cs_main_top_di_long"), true)
|
|
self.myVipItem:SetData(self.mainVo.vip_flag,self.mainVo.sup_vip_type)
|
|
self.myName_tmp.text = GetCSLongName(self.mainVo.name,self.mainVo.server_num)
|
|
local sex_res = self.mainVo.sex == 1 and "com_boy" or "com_girl"
|
|
lua_resM:setImageSprite(self, self.mySex_img, "common_asset", sex_res, true)
|
|
SetAnchoredPositionX(self.mySex, -288+self.myName_tmp.preferredWidth+15)
|
|
self.myGuildName_tmp.text = self.mainVo.guild_name ~= "" and self.mainVo.guild_name or "暂无社团"
|
|
|
|
--拿到自己的排名
|
|
local my_rank = vo.myrank
|
|
local my_score = vo.myscore
|
|
if my_rank == 0 then
|
|
self.myRankIcon_obj:SetActive(false)
|
|
self.myRank_tmp.text = "未上榜"
|
|
elseif my_rank >= 1 and my_rank <= 5 then
|
|
self.myRankIcon_obj:SetActive(true)
|
|
self.myRank_tmp.text = ""
|
|
lua_resM:setImageSprite(self, self.myRankIcon_img, "csMain_asset","cs_main_rank_"..my_rank,true)
|
|
else
|
|
self.myRankIcon_obj:SetActive(false)
|
|
self.myRank_tmp.text = my_rank
|
|
end
|
|
self.myRankCon_obj:SetActive(true)
|
|
self.myScore_tmp.text = my_score
|
|
lua_resM:setOutsideImageSprite(self, self.myMilitaryRank_img, GameResPath.GetMilitaryImage("military_ranks_"..RoleManager.Instance.mainRoleInfo.military_ranks), true)
|
|
else
|
|
lua_resM:setOutsideImageSprite(self, self.topbg_img, GameResPath.GetCSMainImage("cs_main_top_di_short"), true)
|
|
self.myRankCon_obj:SetActive(false)
|
|
end
|
|
end
|
|
|
|
function CSMainExploitRankView:DestroySuccess( )
|
|
for i, v in ipairs(self.tab_item_list) do
|
|
v:DeleteMe()
|
|
end
|
|
self.tab_item_list = {}
|
|
for i, v in ipairs(self.top_item_list) do
|
|
v:DeleteMe()
|
|
end
|
|
self.top_item_list = {}
|
|
|
|
if self.myVipItem then
|
|
self.myVipItem:DeleteMe()
|
|
self.myVipItem = nil
|
|
end
|
|
end
|