78 lines
2.0 KiB
Plaintext
78 lines
2.0 KiB
Plaintext
SkillOptionManager = class("SkillOptionManager")
|
|
|
|
SkillOptionManager.OptionEnum = {
|
|
AutoQueue = SceneSkill_pb.ESKILLOPTION_AUTOQUEUE,
|
|
SummonBeing = SceneSkill_pb.ESKILLOPTION_SUMMONBEING,
|
|
AutoArchery = SceneSkill_pb.ESKILLOPTION_AUTO_ARCHERY,
|
|
FistsMagic = SceneSkill_pb.ESKILLOPTION_FISTS_MAGIC,
|
|
SummonElement = SceneSkill_pb.ESKILLOPTION_SUMMON_ELEMENT,
|
|
}
|
|
|
|
function SkillOptionManager:ctor()
|
|
self._options = {}
|
|
self._callBacks = {}
|
|
self:AddChangeCallBack(self.OptionEnum.AutoQueue,self.HandleSkillAutoQueue)
|
|
end
|
|
|
|
function SkillOptionManager:AddChangeCallBack(t,func)
|
|
self._callBacks[t] = func
|
|
end
|
|
|
|
function SkillOptionManager:GetSkillOptionByType(t)
|
|
return self._options[t] or 0
|
|
end
|
|
|
|
function SkillOptionManager:AskSetSkillOption(t,value)
|
|
if(value>=0) then
|
|
local opt = SceneSkill_pb.SkillOption()
|
|
opt.opt = t
|
|
opt.value = value
|
|
ServiceSkillProxy.Instance:CallSkillOptionSkillCmd(opt)
|
|
end
|
|
end
|
|
|
|
function SkillOptionManager:RecvServerOpts(opts)
|
|
if(opts~=nil and #opts>0) then
|
|
for i=1,#opts do
|
|
self:HandleOpt(opts[i].opt,opts[i].value)
|
|
end
|
|
end
|
|
end
|
|
|
|
function SkillOptionManager:HandleOpt(t,value)
|
|
local callBack = self._callBacks[t]
|
|
local oldValue = self._options[t]
|
|
if(oldValue == nil) then
|
|
oldValue = 0
|
|
end
|
|
self._options[t] = value
|
|
if(callBack) then
|
|
callBack(self,oldValue,value)
|
|
end
|
|
end
|
|
|
|
function SkillOptionManager:GetSkillOption_AutoQueue()
|
|
return self:GetSkillOptionByType(self.OptionEnum.AutoQueue)
|
|
end
|
|
|
|
function SkillOptionManager:SetSkillOption_AutoQueue(value)
|
|
self:AskSetSkillOption(self.OptionEnum.AutoQueue,value == true and 0 or 1)
|
|
end
|
|
|
|
function SkillOptionManager:GetSkillOption(optionType)
|
|
return optionType ~= nil and self:GetSkillOptionByType(optionType) or 0
|
|
end
|
|
|
|
function SkillOptionManager:SetSkillOption(optionType, value)
|
|
if optionType ~= nil then
|
|
self:AskSetSkillOption(optionType, value)
|
|
end
|
|
end
|
|
|
|
function SkillOptionManager:HandleSkillAutoQueue(oldValue,newValue)
|
|
if(newValue ==0) then
|
|
Game.SkillClickUseManager:Launch()
|
|
else
|
|
Game.SkillClickUseManager:ShutDown()
|
|
end
|
|
end |