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

297 lines
9.1 KiB
Plaintext

PackageView = class("PackageView", ContainerView)
autoImport("PackageMainPage")
autoImport("PackageEquipPage")
autoImport("PackageSetQuickPage")
autoImport("PackageBarrowBagPage");
autoImport("BaseAttributeView")
autoImport("EquipStrengthen")
PackageView.ViewType = UIViewType.NormalLayer
PackageView.LeftViewState = {
Default = "PackageView_LeftViewState_Default",
Fashion = "PackageView_LeftViewState_Fashion",
RoleInfo = "PackageView_LeftViewState_RoleInfo",
BarrowBag = "PackageView_LeftViewState_BarrowBag",
}
function PackageView:GetShowHideMode()
return PanelShowHideMode.MoveOutAndMoveIn
end
function PackageView:Init()
self.normalStick = self:FindComponent("NormalStick", UISprite);
self.mainPage = self:AddSubView("PackageMainPage",PackageMainPage);
self.equipPage = self:AddSubView("PackageEquipPage",PackageEquipPage);
self.equipStrengthenViewController = self:AddSubView("EquipStrengthen", EquipStrengthen);
self.BarrowBagPage = self:AddSubView("PackageBarrowBagPage", PackageBarrowBagPage);
self.shortCutIsSetting = false;
self:InitUI();
self:MapEvent();
end
function PackageView:OnEnter()
PackageView.super.OnEnter(self);
self:CameraRotateToMe();
self:SetLeftViewState(PackageView.LeftViewState.Default);
self:ActiveSetShortCut(false);
if(self.viewdata.view and self.viewdata.view.tab)then
self:TabChangeHandler(self.viewdata.view.tab)
end
end
function PackageView:InitUI()
self.onFashionBtn = self:FindGO("OnFashionBtn");
self.onInfoBtn = self:FindGO("OnInfoBtn");
self.equipBord = self:FindGO("EquipBord");
self.fashionBord = self:FindGO("FashionEquipBord");
self.infoBord = self:FindGO("attrViewHolder");
self.barrowBagBord = self:FindGO("BarrowBagHolder");
self.topCoins = self:FindGO("TopCoins");
self.itemBord = self:FindGO("ItemNormalList");
self.viewState = PackageView.LeftViewState.Default;
self:AddClickEvent(self.onFashionBtn, function (go)
if(self.viewState == PackageView.LeftViewState.Fashion)then
self:SetLeftViewState(PackageView.LeftViewState.Default);
else
self:SetLeftViewState(PackageView.LeftViewState.Fashion);
end
end);
self:AddClickEvent(self.onInfoBtn, function (go)
if(self.viewState == PackageView.LeftViewState.RoleInfo)then
self:SetLeftViewState(PackageView.LeftViewState.Default);
else
self:SetLeftViewState(PackageView.LeftViewState.RoleInfo);
end
end);
-- 監聽快捷欄事件
self.quickUseTween = self:FindComponent("QuickUseTweenButton", UIPlayTween);
self:AddButtonEvent("QuickUseTweenButton", function (go)
self:ActiveSetShortCut(not self.shortCutIsSetting);
end);
self.goQuickUseTweenButton = self:FindGO("QuickUseTweenButton")
local bagTab = self:FindGO("BagTab");
self:AddTabChangeEvent(bagTab,self.itemBord,PanelConfig.Bag);
RedTipProxy.Instance:RegisterUI(SceneTip_pb.EREDSYS_PET_ADVENTURE, bagTab)
local strengthTab = self:FindGO("StrengthTab");
self:AddOrRemoveGuideId(strengthTab, 35)
self:AddTabChangeEvent(strengthTab, self.goEquipStrengthen, PanelConfig.EquipStrengthen)
end
function PackageView:TabChangeHandler(key)
if(PackageView.super.TabChangeHandler(self, key))then
if(key==1)then
self.itemBord:SetActive(true);
self.goQuickUseTweenButton:SetActive(true)
self.equipPage:RemoveMaskOnItems()
self.equipStrengthenViewController:Hide()
self.equipStrengthenIsShow = false
elseif(key == 2)then
self.itemBord:SetActive(false);
self.equipPage:AddMaskOnItems()
self.goQuickUseTweenButton:SetActive(false)
self:ActiveSetShortCut(false);
self.equipStrengthenViewController:Show()
local equipCtrl = self.equipPage.chooseEquip
if equipCtrl then
local equipData = equipCtrl.data
if equipData then
local equipInfo = equipData.equipInfo
local isCouldStrengthen = self.equipStrengthenViewController:IsCouldStrengthen(equipData.index) and equipInfo:CanStrength()
if isCouldStrengthen then
if equipInfo.damage then
self.equipPage:SetChoose()
self.equipStrengthenViewController:SetEmpty()
else
self.equipStrengthenViewController:Refresh(equipCtrl.data.index)
end
else
self.equipPage:SetChoose()
self.equipStrengthenViewController:SetEmpty()
end
else
self.equipPage:SetChoose()
self.equipStrengthenViewController:SetEmpty()
end
else
self.equipPage:SetChoose()
self.equipStrengthenViewController:SetEmpty()
end
self.equipStrengthenIsShow = true
end
end
end
function PackageView:GetBaseAttriView()
if(not self.baseAttributeView)then
self.baseAttributeView = self:AddSubView("BaseAttributeView",BaseAttributeView)
self.baseAttributeView:OnEnter();
self.baseAttributeView:HideHelpBtn()
end
return self.baseAttributeView;
end
function PackageView:ActiveSetShortCut(active)
if(self.shortCutIsSetting ~= active)then
if(active and not self.packageSetQuickPage)then
self.packageSetQuickPage = self:AddSubView("PackageSetQuickPage",PackageSetQuickPage)
self.packageSetQuickPage:OnEnter();
end
self.quickUseTween:Play(active);
self.mainPage:SetItemDragEnabled(active);
self.equipPage:SetItemDragEnabled(active);
self.shortCutIsSetting = active;
end
end
function PackageView:SetLeftViewState(viewState)
local onRotation, offRotation = Quaternion.Euler(0,180,0), Quaternion.identity;
if(self.viewState~=viewState)then
if(self.viewState == PackageView.LeftViewState.BarrowBag)then
self.BarrowBagPage:Close();
end
self.barrowBagBord:SetActive(viewState == PackageView.LeftViewState.BarrowBag);
local rotation1, rotation2 = offRotation, offRotation;
if(viewState == PackageView.LeftViewState.Default)then
elseif(viewState == PackageView.LeftViewState.Fashion)then
rotation1 = onRotation;
elseif(viewState == PackageView.LeftViewState.RoleInfo)then
rotation2 = onRotation;
self:GetBaseAttriView():showMySelf();
elseif(viewState == PackageView.LeftViewState.Strength)then
elseif(viewState == PackageView.LeftViewState.BarrowBag)then
self.BarrowBagPage:Open();
end
self.onFashionBtn.transform.localRotation = rotation1;
self.onInfoBtn.transform.localRotation = rotation2;
self.equipBord:SetActive(viewState == PackageView.LeftViewState.Default);
self.fashionBord:SetActive(viewState == PackageView.LeftViewState.Fashion);
self.infoBord:SetActive(viewState == PackageView.LeftViewState.RoleInfo);
self.topCoins:SetActive(viewState ~= PackageView.LeftViewState.RoleInfo
and viewState ~= PackageView.LeftViewState.BarrowBag);
self.viewState = viewState;
end
end
local FashionEquipMap = {
[6] = 5,
[8] = 7,
}
local EquipFashionMap = {
[5] = 6,
[7] = 8,
}
function PackageView:GetDataFuncs(data, source)
local result = {};
if(data)then
local type = isDress and 2 or 1;
if(self.viewState == PackageView.LeftViewState.BarrowBag)then
result = {37};
else
result = FunctionItemFunc.GetItemFuncIds(data.staticData.id, source, self.viewState == PackageView.LeftViewState.Fashion);
-- 臨時處理
-- if(data.equipInfo)then
-- local equipType = data.equipInfo.equipData.EquipType;
-- local site = GameConfig.EquipType[equipType].site[1];
-- local canPutFashion = TableUtility.ArrayFindIndex(PackageEquip_FashionParts, site) ~= 0;
-- -- if(canPutFashion)then
-- -- if(self.viewState == PackageView.LeftViewState.Fashion)then
-- -- for k,id in pairs(result) do
-- -- if(FashionEquipMap[id])then
-- -- result[k] = FashionEquipMap[id];
-- -- end
-- -- end
-- -- else
-- -- for k,id in pairs(result) do
-- -- if(EquipFashionMap[id])then
-- -- result[k] = EquipFashionMap[id];
-- -- end
-- -- end
-- -- end
-- -- end
-- -- FunctionItemFunc:GetItemDefaultFunc(data, source, dest_isfashion)
-- end
end
end
return result;
end
function PackageView:GetItemDefaultFunc(data, source)
source = source or FunctionItemFunc_Source.MainBag;
return FunctionItemFunc.Me():GetItemDefaultFunc(data, source, self.viewState == PackageView.LeftViewState.Fashion);
end
function PackageView:MapEvent()
self:AddListenEvt(ServiceEvent.PlayerMapChange, self.HandleMapChange);
self:AddListenEvt(LoadSceneEvent.SceneAnimEnd, self.HandleSceneAnimEnd);
self:AddListenEvt(PackageEvent.OpenBarrowBag, self.HandleOpenBarrowBag);
end
function PackageView:SetRefineEquip(equip)
if(self.tabType ~= PackageView.TabType.Refine)then
return;
end
-- self.refinePage:SetRefineEquip(equip);
end
function PackageView:IsRefinePage()
return self.tabType == PackageView.TabType.Refine;
end
function PackageView:SetChooseEquip(cell)
self.equipPage:SetChoose(cell)
end
function PackageView:GetChooseEquip()
return self.equipPage.chooseEquip
end
function PackageView:HandleMapChange(note)
if( Game.MapManager:Previewing() )then
return;
end
if(note.type == LoadSceneEvent.FinishLoad and note.body)then
self:CameraRotateToMe();
end
end
function PackageView:HandleSceneAnimEnd(note)
self:CameraRotateToMe();
end
function PackageView:HandleOpenBarrowBag(note)
self:SetLeftViewState(PackageView.LeftViewState.BarrowBag);
end
function PackageView:OnExit()
UIUtil.StopEightTypeMsg()
ServiceItemProxy.Instance:CallBrowsePackage(SceneItem_pb.EPACKTYPE_MAIN);
PackageView.super.OnExit(self);
self:CameraReset();
end