PetSupportView = PetSupportView or BaseClass(BaseItem)
|
|
local PetSupportView = PetSupportView
|
|
|
|
function PetSupportView:__init()
|
|
self.base_file = "pet"
|
|
self.layout_file = "PetSupportView"
|
|
self.full_screen = true
|
|
self.model = PetModel:getInstance()
|
|
|
|
self.support_as_item_list = {}--全服声援位item
|
|
|
|
self:Load()
|
|
end
|
|
|
|
function PetSupportView:Load_callback()
|
|
self.nodes = {
|
|
"rankBtn:obj",
|
|
"conASSupport","conSupport","conSupport/Viewport/Content",
|
|
"fight1:tmp","fight2:tmp",
|
|
"doubt1:obj","doubt2:obj",
|
|
"bottomImg:img",
|
|
"addFight2:tmp", "addFight1:tmp",
|
|
"tips:tmp",
|
|
"rankBtn/rankRed:obj",
|
|
}
|
|
self:GetChildren(self.nodes)
|
|
|
|
lua_resM:setImageSprite(self, self.bottomImg_img, "petExtra_asset","pet_support_bottom_1174_145")
|
|
self.tips_tmp.text = "<#fdffc2>上阵宠物</color> 可享受 <#fdffc2>额外属性加成</color> 哦!"
|
|
SetAnchoredPositionX(self.tips,-45)
|
|
|
|
self:AddEvents()
|
|
if self.need_refreshData then
|
|
self:UpdateView()
|
|
end
|
|
end
|
|
|
|
function PetSupportView:AddEvents( )
|
|
local on_click = function ( click_obj )
|
|
if self.rankBtn_obj == click_obj then--排行榜
|
|
self.model:Fire(PetConst.OPEN_PET_VOTE_VIEW)
|
|
elseif self.doubt1_obj == click_obj then
|
|
EventSystem.Fire(GlobalEventSystem,EventName.OPEN_INSTRUCTION_VIEW, 16302)
|
|
elseif self.doubt2_obj == click_obj then
|
|
EventSystem.Fire(GlobalEventSystem,EventName.OPEN_INSTRUCTION_VIEW, 16303)
|
|
end
|
|
end
|
|
AddClickEvent(self.rankBtn_obj, on_click)
|
|
AddClickEvent(self.doubt1_obj, on_click)
|
|
AddClickEvent(self.doubt2_obj, on_click)
|
|
|
|
local refresh_support_fight = function()
|
|
self:UpdateAditionFight()
|
|
end
|
|
self:BindEvent(self.model, PetConst.REFRESH_PET_SUPPORT_FIGHT, refresh_support_fight)
|
|
|
|
--红点更新
|
|
local function on_ans_update_red_dot(tab_id)
|
|
if not self.is_loaded then return end
|
|
if tab_id == PetConst.RED_DOT_TYPE.Vote or tab_id == PetConst.RED_DOT_TYPE.Reward then
|
|
self:RefreshRed()
|
|
end
|
|
end
|
|
self:BindEvent(self.model, PetConst.ANS_UPDATE_RED_DOT, on_ans_update_red_dot)
|
|
|
|
end
|
|
|
|
function PetSupportView:RefreshRed( )
|
|
local red_vote = self.model:GetPetVoteTimesRed()
|
|
local reward_vote = self.model:GetPetRewardRed()
|
|
self.rankRed_obj:SetActive(red_vote or reward_vote)
|
|
end
|
|
|
|
function PetSupportView:UpdateView( )
|
|
self:UpdateASSupportPet()
|
|
self:UpdateNormalSupportPet()
|
|
self:UpdateAditionFight()
|
|
self:RefreshRed()
|
|
end
|
|
|
|
--刷新全服声援位的宠物显示
|
|
function PetSupportView:UpdateASSupportPet()
|
|
local support_data = {}
|
|
for i=1,3 do
|
|
local data = self.model:GetPetSupportDataBySlot(i)
|
|
support_data[i] = data or 0
|
|
end
|
|
|
|
for k,v in pairs(self.support_as_item_list) do
|
|
v:SetVisible(false)
|
|
end
|
|
for i,v in ipairs(support_data) do
|
|
local item = self.support_as_item_list[i]
|
|
if not item then
|
|
item = PetSupportASItem.New(self.conASSupport)
|
|
self.support_as_item_list[i] = item
|
|
end
|
|
item:SetVisible(true)
|
|
item:SetData(i,v)--声援槽位、声援信息
|
|
if i == 1 then
|
|
item:SetAnchoredPosition(-11,-40)
|
|
elseif i == 2 then
|
|
item:SetAnchoredPosition(-346,-40)
|
|
elseif i == 3 then
|
|
item:SetAnchoredPosition(324,-40)
|
|
end
|
|
end
|
|
end
|
|
|
|
--刷新普通声援位的宠物显示
|
|
function PetSupportView:UpdateNormalSupportPet()
|
|
local support_data = {}
|
|
for i=1,7 do
|
|
local data = self.model:GetPetSupportDataBySlot(i+3)
|
|
support_data[i] = data or 0
|
|
end
|
|
|
|
if not self.item_list_com then
|
|
self.item_list_com = self:AddUIComponent(UI.ItemListCreator)
|
|
end
|
|
local info = {
|
|
data_list = support_data,
|
|
item_con = self.Content,
|
|
item_class = PetSupportNormalItem,
|
|
item_width = 112,
|
|
space_x = 43,
|
|
start_x = 29,
|
|
start_y = -11.5,
|
|
scroll_view = self.conSupport,
|
|
create_frequency = 0.01,
|
|
on_update_item = function(item, i, v)
|
|
item:SetData(i+3,v)--声援槽位,声援信息
|
|
end,
|
|
}
|
|
self.item_list_com:UpdateItems(info)
|
|
end
|
|
|
|
--刷新加成战力
|
|
function PetSupportView:UpdateAditionFight()
|
|
local as_fight_value = 0
|
|
for i=1,3 do
|
|
local data = self.model:GetPetSupportDataBySlot(i)
|
|
if data then
|
|
local slot_cfg = self.model:GetPetSupportSlotCfg(i)
|
|
local adition_value = slot_cfg and tonumber(slot_cfg.attr_add_ratio) or 0.05
|
|
local base_fight = self.model:GetPetFightById(data.pet_id)
|
|
local adition_fight = self.model:GetPetAditionFightById(data.pet_id,adition_value)
|
|
as_fight_value = as_fight_value + math.floor((adition_fight-base_fight))
|
|
end
|
|
end
|
|
self.fight1_tmp.text = string.format("加成战力%s", as_fight_value)
|
|
local slot_cfg_1 = self.model:GetPetSupportSlotCfg(1)
|
|
local add_num_1 = tonumber(slot_cfg_1.attr_add_ratio)*100
|
|
self.addFight1_tmp.text = "(每只宠物属性加成<#2CF86F>"..add_num_1.."%</color>)"
|
|
SetAnchoredPositionX(self.addFight1,-475+self.fight1_tmp.preferredWidth+5)
|
|
|
|
local normal_fight_value = 0
|
|
for i=4,10 do
|
|
local data = self.model:GetPetSupportDataBySlot(i)
|
|
if data then
|
|
local slot_cfg = self.model:GetPetSupportSlotCfg(i)
|
|
local adition_value = slot_cfg and tonumber(slot_cfg.attr_add_ratio) or 0.02
|
|
local base_fight = self.model:GetPetFightById(data.pet_id)
|
|
local adition_fight = self.model:GetPetAditionFightById(data.pet_id, adition_value)
|
|
normal_fight_value = normal_fight_value + math.floor((adition_fight-base_fight))
|
|
end
|
|
end
|
|
self.fight2_tmp.text = string.format("加成战力%s", normal_fight_value)
|
|
local slot_cfg_2 = self.model:GetPetSupportSlotCfg(4)
|
|
local add_num_2 = tonumber(slot_cfg_2.attr_add_ratio)*100
|
|
self.addFight2_tmp.text = "(每只宠物属性加成<#2CF86F>"..add_num_2.."%</color>)"
|
|
SetAnchoredPositionX(self.addFight2,-475+self.fight2_tmp.preferredWidth+5)
|
|
end
|
|
|
|
function PetSupportView:SetData()
|
|
if self.is_loaded then
|
|
self.need_refreshData = false
|
|
self:UpdateView()
|
|
else
|
|
self.need_refreshData = true
|
|
end
|
|
end
|
|
|
|
function PetSupportView:__delete( )
|
|
for i, v in ipairs(self.support_as_item_list) do
|
|
v:DeleteMe()
|
|
end
|
|
self.support_as_item_list = {}
|
|
end
|