2025-06-04 05:02:57 +08:00

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