96 lines
2.5 KiB
Plaintext
96 lines
2.5 KiB
Plaintext
EquipedSkills = class("EquipedSkills")
|
|
|
|
function EquipedSkills:ctor(posParam)
|
|
self._skills = {}
|
|
self.posParam = posParam
|
|
self.dirty = false
|
|
end
|
|
|
|
function EquipedSkills:GetSkills()
|
|
if(self.dirty) then
|
|
self.dirty = false
|
|
local param = self.posParam or "pos"
|
|
table.sort(self._skills,function(l,r)
|
|
return l[param] < r[param]
|
|
end)
|
|
end
|
|
return self._skills
|
|
end
|
|
|
|
function EquipedSkills:IsEmpty()
|
|
return #self._skills == 0
|
|
end
|
|
|
|
function EquipedSkills:GetAutoFillSkills(totalNum)
|
|
end
|
|
|
|
function EquipedSkills:AddSkill(skillItemData)
|
|
local index = TableUtility.ArrayFindIndex(self._skills, skillItemData)
|
|
if(index<=0) then
|
|
self.dirty = true
|
|
self._skills[#self._skills+1] = skillItemData
|
|
end
|
|
end
|
|
|
|
function EquipedSkills:RemoveSkill(skillItemData)
|
|
TableUtility.ArrayRemove(self._skills, skillItemData)
|
|
end
|
|
|
|
function EquipedSkills:RemoveSkillAt(index)
|
|
if(index>0 and index <= #self._skills) then
|
|
table.remove(self._skills,index)
|
|
end
|
|
end
|
|
|
|
TransformedEquipSkills = class("TransformedEquipSkills",EquipedSkills)
|
|
|
|
function TransformedEquipSkills:RefreshServerSkills(serverDatas)
|
|
local currentNum = #self._skills
|
|
local newNum = 0
|
|
if(serverDatas~=nil)then
|
|
newNum = #serverDatas
|
|
end
|
|
|
|
local delta = newNum - currentNum
|
|
|
|
if(delta>0) then
|
|
for i=1,delta do
|
|
self:_CreateSkillItemData()
|
|
end
|
|
elseif(delta<0)then
|
|
for i=1,-delta do
|
|
self:RemoveSkillAt(#self._skills)
|
|
end
|
|
end
|
|
|
|
for i=1,newNum do
|
|
self:UpdateServerSkill(i,serverDatas[i])
|
|
end
|
|
self.dirty = true
|
|
end
|
|
|
|
function TransformedEquipSkills:_CreateSkillItemData()
|
|
local skill = SkillItemData.new(0,0,0,0,0)
|
|
self._skills[#self._skills+1] = skill
|
|
end
|
|
|
|
function TransformedEquipSkills:UpdateServerSkill(index,serverSkillItem)
|
|
if(index>0 and index <= #self._skills) then
|
|
local skill = self._skills[index]
|
|
skill:Reset(serverSkillItem.id,serverSkillItem.pos,serverSkillItem.autopos,serverSkillItem.cd,serverSkillItem.sourceid,serverSkillItem.extendpos,serverSkillItem.shortcuts)
|
|
self:UpdateSingleSkill(skill,serverSkillItem)
|
|
end
|
|
end
|
|
|
|
function TransformedEquipSkills:UpdateSingleSkill(skillItemData,serverSkillItem)
|
|
if(skillItemData) then
|
|
skillItemData:SetActive(serverSkillItem.active)
|
|
skillItemData:SetLearned(serverSkillItem.learn)
|
|
skillItemData:SetSource(serverSkillItem.source)
|
|
skillItemData:SetShadow(serverSkillItem.shadow)
|
|
skillItemData:SetSpecialID(serverSkillItem.runespecid)
|
|
skillItemData:SetReplaceID(serverSkillItem.replaceid)
|
|
skillItemData:SetEnableSpecialEffect(serverSkillItem.selectswitch)
|
|
skillItemData:SetExtraLevel(serverSkillItem.extralv)
|
|
end
|
|
end |