346 lines
11 KiB
Plaintext
346 lines
11 KiB
Plaintext
RunestoneView = class("RunestoneView", ContainerView)
|
|
|
|
autoImport("RuneMainPage")
|
|
autoImport("RuneEquipPage")
|
|
autoImport("PackageSetQuickPage")
|
|
autoImport("PackageBarrowBagPage");
|
|
autoImport("BaseAttributeView")
|
|
autoImport("EquipStrengthen")
|
|
autoImport('RunePackagePart');
|
|
|
|
RunestoneView.ViewType = UIViewType.NormalLayer
|
|
|
|
RunestoneView.LeftViewState = {
|
|
Default = "RunestoneView_LeftViewState_Default",
|
|
Fashion = "RunestoneView_LeftViewState_Fashion",
|
|
RoleInfo = "RunestoneView_LeftViewState_RoleInfo",
|
|
BarrowBag = "RunestoneView_LeftViewState_BarrowBag",
|
|
}
|
|
|
|
function RunestoneView:GetShowHideMode()
|
|
return PanelShowHideMode.MoveOutAndMoveIn
|
|
end
|
|
|
|
function RunestoneView:Init()
|
|
self.normalStick = self:FindComponent("NormalStick", UISprite);
|
|
|
|
self.mainPage = self:AddSubView("RuneMainPage",RuneMainPage);
|
|
self.equipPage = self:AddSubView("RuneEquipPage",RuneEquipPage);
|
|
self.equipStrengthenViewController = self:AddSubView("EquipStrengthen", EquipStrengthen);
|
|
self.BarrowBagPage = self:AddSubView("PackageBarrowBagPage", PackageBarrowBagPage);
|
|
|
|
self.shortCutIsSetting = false;
|
|
|
|
self:InitUI();
|
|
self:MapEvent();
|
|
end
|
|
|
|
function RunestoneView:OnEnter()
|
|
RunestoneView.super.OnEnter(self);
|
|
self:CameraRotateToMe();
|
|
|
|
self:SetLeftViewState(RunestoneView.LeftViewState.Default);
|
|
|
|
self:ActiveSetShortCut(false);
|
|
|
|
local ctrl = self:GetRunePackageBord();
|
|
ctrl:UpdateInfo();
|
|
|
|
-- if(self.viewdata.view and self.viewdata.view.tab)then
|
|
-- self:TabChangeHandler(self.viewdata.view.tab)
|
|
-- end
|
|
end
|
|
|
|
function RunestoneView: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.BagBtn = self:FindGO("ButtonBag");
|
|
|
|
self.viewState = RunestoneView.LeftViewState.Default;
|
|
self:AddClickEvent(self.onFashionBtn, function (go)
|
|
if(self.viewState == RunestoneView.LeftViewState.Fashion)then
|
|
self:SetLeftViewState(RunestoneView.LeftViewState.Default);
|
|
else
|
|
self:SetLeftViewState(RunestoneView.LeftViewState.Fashion);
|
|
end
|
|
end);
|
|
self:AddClickEvent(self.onInfoBtn, function (go)
|
|
if(self.viewState == RunestoneView.LeftViewState.RoleInfo)then
|
|
self:SetLeftViewState(RunestoneView.LeftViewState.Default);
|
|
else
|
|
self:SetLeftViewState(RunestoneView.LeftViewState.RoleInfo);
|
|
end
|
|
end);
|
|
|
|
-- 符文揹包監聽
|
|
-- self:AddClickEvent(self.BagBtn,function(go)
|
|
-- local ctrl = self:GetRunePackageBord();
|
|
-- ctrl:UpdateInfo();
|
|
-- ctrl:Show();
|
|
|
|
-- --local x,y,z = LuaGameObject.GetPosition(self.BagBtn.gameObject.transform);
|
|
-- --ctrl:SetPos(x,y,z);
|
|
-- --
|
|
-- --ctrl:SetLocalOffset(-257.1, 214, 0);
|
|
-- end)
|
|
|
|
|
|
local ctrl = self:GetRunePackageBord();
|
|
ctrl:UpdateInfo();
|
|
ctrl:Show();
|
|
|
|
--分解符文按鈕監聽
|
|
self:InitDecompose()
|
|
|
|
|
|
-- 監聽快捷欄事件
|
|
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 RunestoneView:GetRunePackageBord()
|
|
if(self.RunePackageBord == nil)then
|
|
local frontPanel = self:FindGO("ThefrontPanel");
|
|
self.RunePackageBord = RunePackagePart.new();
|
|
self.RunePackageBord:CreateSelf(frontPanel.gameObject);
|
|
-- self.RunePackageBord:Hide();
|
|
end
|
|
return self.RunePackageBord;
|
|
end
|
|
--分解符文
|
|
function RunestoneView:InitDecompose()
|
|
local DecomposeButton = self:FindGO("DecomposeRune");
|
|
--FunctionUnLockFunc.Me():RegisteEnterBtnByPanelID(PanelConfig.DeComposeView.id, DecomposeButton)
|
|
self:AddClickEvent(DecomposeButton, function ()
|
|
GameFacade.Instance:sendNotification(UIEvent.JumpPanel,{view = PanelConfig.RuneDeComposeView})
|
|
end);
|
|
end
|
|
|
|
-- function RunestoneView:TabChangeHandler(key)
|
|
-- if(RunestoneView.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 RunestoneView:GetBaseAttriView()
|
|
if(not self.baseAttributeView)then
|
|
self.baseAttributeView = self:AddSubView("BaseAttributeView",BaseAttributeView)
|
|
self.baseAttributeView:OnEnter();
|
|
self.baseAttributeView:HideHelpBtn()
|
|
end
|
|
return self.baseAttributeView;
|
|
end
|
|
|
|
function RunestoneView: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 RunestoneView:SetLeftViewState(viewState)
|
|
local onRotation, offRotation = Quaternion.Euler(0,180,0), Quaternion.identity;
|
|
if(self.viewState~=viewState)then
|
|
if(self.viewState == RunestoneView.LeftViewState.BarrowBag)then
|
|
self.BarrowBagPage:Close();
|
|
end
|
|
|
|
self.barrowBagBord:SetActive(viewState == RunestoneView.LeftViewState.BarrowBag);
|
|
|
|
local rotation1, rotation2 = offRotation, offRotation;
|
|
if(viewState == RunestoneView.LeftViewState.Default)then
|
|
|
|
elseif(viewState == RunestoneView.LeftViewState.Fashion)then
|
|
rotation1 = onRotation;
|
|
elseif(viewState == RunestoneView.LeftViewState.RoleInfo)then
|
|
rotation2 = onRotation;
|
|
self:GetBaseAttriView():showMySelf();
|
|
elseif(viewState == RunestoneView.LeftViewState.Strength)then
|
|
|
|
elseif(viewState == RunestoneView.LeftViewState.BarrowBag)then
|
|
self.BarrowBagPage:Open();
|
|
end
|
|
|
|
self.onFashionBtn.transform.localRotation = rotation1;
|
|
self.onInfoBtn.transform.localRotation = rotation2;
|
|
|
|
self.equipBord:SetActive(viewState == RunestoneView.LeftViewState.Default);
|
|
self.fashionBord:SetActive(viewState == RunestoneView.LeftViewState.Fashion);
|
|
self.infoBord:SetActive(viewState == RunestoneView.LeftViewState.RoleInfo);
|
|
|
|
self.topCoins:SetActive(viewState ~= RunestoneView.LeftViewState.RoleInfo
|
|
and viewState ~= RunestoneView.LeftViewState.BarrowBag);
|
|
|
|
self.viewState = viewState;
|
|
end
|
|
end
|
|
|
|
local FashionEquipMap = {
|
|
[6] = 5,
|
|
[8] = 7,
|
|
}
|
|
local EquipFashionMap = {
|
|
[5] = 6,
|
|
[7] = 8,
|
|
}
|
|
function RunestoneView:GetDataFuncs(data, source)
|
|
local result = {};
|
|
if(data)then
|
|
local type = isDress and 2 or 1;
|
|
if(self.viewState == RunestoneView.LeftViewState.BarrowBag)then
|
|
result = {37};
|
|
else
|
|
result = FunctionItemFunc.GetItemFuncIds(data.staticData.id, source, self.viewState == RunestoneView.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 == RunestoneView.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 RunestoneView:GetItemDefaultFunc(data, source)
|
|
source = source or FunctionItemFunc_Source.MainBag;
|
|
return FunctionItemFunc.Me():GetItemDefaultFunc(data, source, self.viewState == RunestoneView.LeftViewState.Fashion);
|
|
end
|
|
|
|
function RunestoneView:MapEvent()
|
|
self:AddListenEvt(ServiceEvent.PlayerMapChange, self.HandleMapChange);
|
|
self:AddListenEvt(LoadSceneEvent.SceneAnimEnd, self.HandleSceneAnimEnd);
|
|
self:AddListenEvt(PackageEvent.OpenBarrowBag, self.HandleOpenBarrowBag);
|
|
end
|
|
|
|
function RunestoneView:SetRefineEquip(equip)
|
|
if(self.tabType ~= RunestoneView.TabType.Refine)then
|
|
return;
|
|
end
|
|
|
|
-- self.refinePage:SetRefineEquip(equip);
|
|
end
|
|
|
|
function RunestoneView:IsRefinePage()
|
|
return self.tabType == RunestoneView.TabType.Refine;
|
|
end
|
|
|
|
function RunestoneView:SetChooseEquip(cell)
|
|
self.equipPage:SetChoose(cell)
|
|
end
|
|
|
|
function RunestoneView:GetChooseEquip()
|
|
return self.equipPage.chooseEquip
|
|
end
|
|
|
|
function RunestoneView:HandleMapChange(note)
|
|
if( Game.MapManager:Previewing() )then
|
|
return;
|
|
end
|
|
if(note.type == LoadSceneEvent.FinishLoad and note.body)then
|
|
self:CameraRotateToMe();
|
|
end
|
|
end
|
|
|
|
function RunestoneView:HandleSceneAnimEnd(note)
|
|
self:CameraRotateToMe();
|
|
end
|
|
|
|
function RunestoneView:HandleOpenBarrowBag(note)
|
|
self:SetLeftViewState(RunestoneView.LeftViewState.BarrowBag);
|
|
end
|
|
|
|
function RunestoneView:OnExit()
|
|
UIUtil.StopEightTypeMsg()
|
|
ServiceItemProxy.Instance:CallBrowsePackage(SceneItem_pb.EPACKTYPE_RUNE);
|
|
|
|
-- local ctrl = self:GetRunePackageBord();
|
|
--.Me():RemoveEventListener(ItemEvent.RuneUpdate, ctrl.UpdateInfo, self)
|
|
|
|
RunestoneView.super.OnExit(self);
|
|
|
|
self:CameraReset();
|
|
end |