|
|
- PetSkillPanel = PetSkillPanel or BaseClass(BaseItem)
- local PetSkillPanel = PetSkillPanel
-
- function PetSkillPanel:__init()
- self.base_file = "pet"
- self.layout_file = "PetSkillPanel"
- self.model = PetModel:getInstance()
-
- self.skill_item_list = {}
- self.diamond_item_list = {}
-
- self:Load()
- end
-
- function PetSkillPanel:Load_callback()
- self.nodes = {
- "con_skill",--技能栏
- "con_gem",--宝石栏
- "composeBtn/composeRed:obj", "composeBtn:obj",
- }
- self:GetChildren(self.nodes)
-
-
- self:AddEvents()
- if self.need_refreshData then
- self:UpdateView()
- end
- end
-
- function PetSkillPanel:AddEvents( )
- local on_click = function ( click_obj )
- if self.composeBtn_obj == click_obj then
- self.model:Fire(PetConst.OPEN_PET_DIAMOND_COMPOSE_VIEW)
- end
- end
- AddClickEvent(self.composeBtn_obj, on_click)
-
-
- --刷新技能石的展示
- local update_diamond_con = function(pet_id,play_effect_diamond_slot)
- if self.data.pet_id == pet_id then
- self:UpdateDiamondCon(play_effect_diamond_slot)
- end
- end
- self:BindEvent(self.model, PetConst.UPDATE_PET_DIAMOND_CON, update_diamond_con)
-
- --宠物进化成功之后的刷新
- local pet_evolve = function(pet_id)
- if not self.is_loaded then return end
- if pet_id == self.data.pet_id then
- self:UpdateSkillCon()
- end
- end
- self:BindEvent(self.model, PetConst.PET_EVOLVE, pet_evolve)
-
- local function onRefreshRed(red_type)
- if not self.is_loaded then return end
- if red_type == PetConst.RED_DOT_TYPE.DiamondCompose then
- local diamond_compose_red = self.model:GetPetRedDotByType(PetConst.RED_DOT_TYPE.DiamondCompose)
- self.composeRed_obj:SetActive(skill_red or diamond_compose_red)
- end
- end
- self:BindEvent(self.model, PetConst.ANS_UPDATE_RED_DOT, onRefreshRed)
- end
-
- function PetSkillPanel:UpdateView( )
- self:UpdateSkillCon()
- self:UpdateDiamondCon()
-
- local diamond_compose_red = self.model:GetPetRedDotByType(PetConst.RED_DOT_TYPE.DiamondCompose)
- self.composeRed_obj:SetActive(skill_red or diamond_compose_red)
- end
-
- --技能展示
- function PetSkillPanel:UpdateSkillCon( )
- local skill_table = {}
- for i=1,4 do
- local data = self.model:GetPetSkillCfg(self.data.pet_id,i,self.data.is_awaken==1)--通过id和槽位获取技能配置
- if data then
- table.insert(skill_table,data)
- end
- end
-
- for k,v in pairs(self.skill_item_list) do
- v:SetVisible(false)
- end
- for i,v in ipairs(skill_table) do
- local item = self.skill_item_list[i]
- if not item then
- item = PetSkillItem.New(self.con_skill)
- self.skill_item_list[i] = item
- end
- item:SetVisible(true)
- item:SetData(v,self.data.pet_id,1,self.data.is_awaken==1)
- item:SetPosition(91*(i-1)+20,-10)
- end
- end
-
- --宝石展示
- function PetSkillPanel:UpdateDiamondCon(play_effect_diamond_slot)
- local diamondItemType = 2
- for k,v in pairs(self.diamond_item_list) do
- v:SetVisible(false,true)
- end
- for i=1,4 do
- local item = self.diamond_item_list[i]
- if not item then
- item = PetDiamondItem.New(self.con_gem)
- self.diamond_item_list[i] = item
- end
- item:SetVisible(true,true)
- item:SetData(diamondItemType,i,self.data.pet_id,nil,nil,play_effect_diamond_slot)
- item:SetPosition(10+96*(i-1),-42.5)
- end
- end
-
- function PetSkillPanel:SetData(data)
- self.data = data
- if self.is_loaded then
- self.need_refreshData = false
- self:UpdateView()
- else
- self.need_refreshData = true
- end
- end
-
- function PetSkillPanel:__delete( )
- for i, v in ipairs(self.skill_item_list) do
- v:DeleteMe()
- end
- self.skill_item_list = {}
- for i, v in ipairs(self.diamond_item_list) do
- v:DeleteMe()
- end
- self.diamond_item_list = {}
- end
|