|
|
- 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
|