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>上阵宠物 可享受 <#fdffc2>额外属性加成 哦!" 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.."%)" 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.."%)" 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