源战役客户端
Du kan inte välja fler än 25 ämnen Ämnen måste starta med en bokstav eller siffra, kan innehålla bindestreck ('-') och vara max 35 tecken långa.
 
 
 
 
 

109 rader
2.9 KiB

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