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

152 lines
3.7 KiB
Plaintext

autoImport("ShortCutData")
ShortCutProxy = class('ShortCutProxy', pm.Proxy)
ShortCutProxy.Instance = nil;
ShortCutProxy.NAME = "ShortCutProxy"
ShortCutProxy.ShortCutEnum = {
ID1 = SceneSkill_pb.ESKILLSHORTCUT_NORMAL,
ID2 = SceneSkill_pb.ESKILLSHORTCUT_EXTEND,
ID3 = SceneSkill_pb.ESKILLSHORTCUT_EXTEND_2,
ID4 = SceneSkill_pb.ESKILLSHORTCUT_EXTEND_3,
}
ShortCutProxy.SwitchList = {
[1] = SceneSkill_pb.ESKILLSHORTCUT_NORMAL,
[2] = SceneSkill_pb.ESKILLSHORTCUT_EXTEND,
[3] = SceneSkill_pb.ESKILLSHORTCUT_EXTEND_2,
[4] = SceneSkill_pb.ESKILLSHORTCUT_EXTEND_3,
}
ShortCutProxy.SkillShortCut = {
Auto = SceneSkill_pb.ESKILLSHORTCUT_AUTO,
BeingAuto = SceneSkill_pb.ESKILLSHORTCUT_BEINGAUTO,
}
--玩家自身的管理
function ShortCutProxy:ctor(proxyName, data)
self.proxyName = proxyName or ShortCutProxy.NAME
if(ShortCutProxy.Instance == nil) then
ShortCutProxy.Instance = self
end
if data ~= nil then
self:setData(data)
end
self.shortCutData = ShortCutData.new()
self.itemShortMap = {};
end
function ShortCutProxy:GetUseBagTab()
if(self.bagTab==nil) then
self.bagTab = BagProxy.Instance.bagData:GetTab(GameConfig.ItemPage[4])
end
return self.bagTab
end
function ShortCutProxy:onRegister()
end
function ShortCutProxy:onRemove()
end
function ShortCutProxy:UnLockSkillShortCuts(serviceData)
self.shortCutData:ResetSkillShortCuts()
local hasExtendPos = false
for i=1,#serviceData.shortcuts do
local shortcut = serviceData.shortcuts[i]
self.shortCutData:UnLockSkillShortCuts(shortcut)
if not hasExtendPos and
(shortcut.type == self.ShortCutEnum.ID2 or shortcut.type == self.ShortCutEnum.ID3 or shortcut.type == self.ShortCutEnum.ID4) then
hasExtendPos = true
end
end
if hasExtendPos then
GameFacade.Instance:sendNotification(SkillEvent.SkillUnlockPos)
end
end
function ShortCutProxy:GetUnLockSkillMaxIndex(id)
return self.shortCutData:GetUnLockSkillMaxIndex(id)
end
function ShortCutProxy:GetAutoUnLockSkillMaxIndex()
return self.shortCutData:GetAutoSkillUnlockMaxIndex()
end
function ShortCutProxy:SetCacheListToRealList()
self.shortCutData:SetCacheListToRealList()
end
function ShortCutProxy:SkillIsLocked(index,id)
return self.shortCutData:SkillIsLocked(index,id)
end
function ShortCutProxy:AutoSkillIsLocked(index)
return self.shortCutData:AutoSkillIsLocked(index)
end
function ShortCutProxy:SetShortCuts(shortCuts)
if(type(shortCuts) == "table" )then
for i=1,#shortCuts do
self:SetShortCut(shortCuts[i]);
end
end
end
function ShortCutProxy:SetShortCut(data)
if(data)then
local cutData = {
pos = data.pos,
guid = data.guid,
type = data.type,
};
self.itemShortMap[cutData.pos + 1] = cutData;
GameFacade.Instance:sendNotification(MyselfEvent.ResetHpShortCut);
end
end
function ShortCutProxy:GetShorCutItem(needPos)
local result = {};
for i=1,#self.itemShortMap do
local data = self.itemShortMap[i];
if(data)then
local item = BagProxy.Instance.bagData:GetItemByGuid(data.guid);
if(not item)then
item = BagProxy.Instance.roleEquip:GetItemByGuid(data.guid);
if(not item)then
item = BagProxy.Instance.fashionEquipBag:GetItemByGuid(data.guid);
end
end
if(not item and data.type and Table_Item[data.type])then
item = ItemData.new("Shadow", data.type);
end
if(needPos)then
result[data.pos+1] = item;
else
table.insert(result, item);
end
end
end
return result;
end
function ShortCutProxy:GetValidShortItem(staticId)
local items = self:GetShorCutItem();
for i=1,#items do
local item = items[i];
if(item.staticData.id == staticId and item:CanUse())then
return item;
end
end
end
function ShortCutProxy:ShortCutListIsEnable(id)
return self.shortCutData:ShortCutListIsEnable(id)
end