SpecialSkillView = PassiveSkillView or BaseClass(BaseItem)
|
|
|
|
SpecialSkillView.POS_MAX = 5
|
|
function SpecialSkillView:__init(parent_wnd, prefab_asset, layer_name)
|
|
self.base_file = "skillUI"
|
|
self.layout_file = "SpecialSkillView"
|
|
-- self.full_screen = true
|
|
-- self.ani_right = 400
|
|
-- self.adjust_mid = {left = 0, right = 650}
|
|
|
|
self.model = SkillManager:getInstance()
|
|
self.skillui_model = SkillUIModel:getInstance()
|
|
|
|
self.skill_item_list = {}
|
|
self.pos_table = false
|
|
self.skill_id_list = self.skillui_model:GetAllSpecialSkillList()
|
|
self.select_index = false
|
|
self:Load()
|
|
end
|
|
|
|
--清除界面
|
|
function SpecialSkillView:__delete()
|
|
self:Remove()
|
|
|
|
end
|
|
|
|
function SpecialSkillView:Load_callback()
|
|
self:LoadSuccess()
|
|
self:InitEvent()
|
|
self:UpdateSkillList()
|
|
end
|
|
|
|
function SpecialSkillView:Remove()
|
|
for i,v in ipairs(self.skill_item_list) do
|
|
v:DeleteMe()
|
|
end
|
|
self.skill_item_list = {}
|
|
end
|
|
|
|
function SpecialSkillView:LoadSuccess()
|
|
local nodes = {
|
|
|
|
"mid/skill_list_con","mid/bg/bg2:raw",
|
|
}
|
|
self:GetChildren(nodes)
|
|
self.pos_table = {}
|
|
for i=1,SkillConfigView.POS_MAX do
|
|
self.pos_table[i] = self:GetChild("mid/skill_list_con/pos_" .. i)
|
|
end
|
|
|
|
if self.need_refreshData then
|
|
self:SetData()
|
|
end
|
|
lua_resM:setOutsideRawImage(self, self.bg2_raw, GameResPath.GetSkillViewBg("skill_ui_bg_4"), false)
|
|
end
|
|
|
|
function SpecialSkillView:InitEvent()
|
|
local function onClickSkillItem(view_index, skill_id, pos)
|
|
if view_index == SkillUIModel.Click_SkillItem.SpecialList then
|
|
self:OnClickItem(pos)
|
|
end
|
|
end
|
|
self:BindEvent(self.skillui_model,SkillUIModel.CLICK_SKILL_ITEM,onClickSkillItem)
|
|
|
|
local function onUpdateSkillList()
|
|
self:UpdateSkillList()
|
|
end
|
|
self:BindEvent(self.model,SkillManager.UPDATE_SKILL_LIST,onUpdateSkillList)
|
|
|
|
local function onChangeBagListHandler()
|
|
self:UpdateSkillList()
|
|
end
|
|
self:BindEvent(GoodsModel:getInstance(),GoodsModel.CHANGE_BAGLIST,onChangeBagListHandler)
|
|
end
|
|
|
|
function SpecialSkillView:UpdateSkillList()
|
|
for i=1,SpecialSkillView.POS_MAX do
|
|
local id = self.skill_id_list[i]
|
|
local item = self.skill_item_list[i]
|
|
if not item then
|
|
item = SkillUIItem.New(self.pos_table[i],nil,self.maskID)
|
|
item:SetUseFor("SpecialSkillView")
|
|
self.skill_item_list[i] = item
|
|
end
|
|
item:SetVisible(true)
|
|
item:SetSelect(self.select_index == i)
|
|
local skill_vo = self.model:getSkill(id)
|
|
item:SetData(skill_vo, i, SkillUIModel.Click_SkillItem.SpecialList ,false)
|
|
item:ShowRedDot(skill_vo:CanUp())
|
|
end
|
|
end
|
|
|
|
function SpecialSkillView:OnClickItem(index)
|
|
if self.select_index == nil then return end
|
|
self.select_index = index
|
|
for i,v in ipairs(self.skill_item_list) do
|
|
v:SetSelect(self.select_index == i)
|
|
end
|
|
end
|
|
|
|
function SpecialSkillView:SetData()
|
|
self.select_index = self.select_index or 1
|
|
if self.is_loaded then
|
|
self.skillui_model:Fire(SkillUIModel.CLICK_SKILL_ITEM, SkillUIModel.Click_SkillItem.SpecialList, self.skill_id_list[self.select_index], self.select_index)
|
|
else
|
|
self.need_refreshData = true
|
|
end
|
|
end
|
|
|