317 lines
8.0 KiB
Plaintext
317 lines
8.0 KiB
Plaintext
RuneEquipPage = class("RuneEquipPage", SubView)
|
|
|
|
RuneEquipPage.EquipConfig = {
|
|
[1] = SceneItem_pb.EEQUIPPOS_SHIELD,
|
|
[2] = SceneItem_pb.EEQUIPPOS_ARMOUR,
|
|
[3] = SceneItem_pb.EEQUIPPOS_ROBE,
|
|
[4] = SceneItem_pb.EEQUIPPOS_SHOES,
|
|
[5] = SceneItem_pb.EEQUIPPOS_ACCESSORY1,
|
|
[6] = SceneItem_pb.EEQUIPPOS_ACCESSORY2,
|
|
[7] = SceneItem_pb.EEQUIPPOS_WEAPON,
|
|
[8] = SceneItem_pb.EEQUIPPOS_HEAD,
|
|
[9] = SceneItem_pb.EEQUIPPOS_FACE,
|
|
[10] = SceneItem_pb.EEQUIPTYPE_MOUTH,
|
|
[11] = SceneItem_pb.EEQUIPPOS_BACK,
|
|
[12] = SceneItem_pb.EEQUIPPOS_TAIL,
|
|
[13] = SceneItem_pb.EEQUIPPOS_MOUNT,
|
|
[14] = SceneItem_pb.EEQUIPPOS_BARROW or 14,
|
|
[15] = SceneItem_pb.EEQUIPPOS_ARTIFACT,
|
|
[16] = SceneItem_pb.EEQUIPPOS_ARTIFACT_HEAD,
|
|
[17] = SceneItem_pb.EEQUIPPOS_ARTIFACT_BACK,
|
|
[18] = SceneItem_pb.EEQUIPPOS_RUNE1,
|
|
[19] = SceneItem_pb.EEQUIPPOS_RUNE2,
|
|
[20] = SceneItem_pb.EEQUIPPOS_RUNE3,
|
|
[21] = SceneItem_pb.EEQUIPPOS_RUNE4,
|
|
[22] = SceneItem_pb.EEQUIPPOS_RUNE5,
|
|
[23] = SceneItem_pb.EEQUIPPOS_RUNE6,
|
|
[24] = SceneItem_pb.EEQUIPPOS_RUNE7,
|
|
[25] = SceneItem_pb.EEQUIPPOS_RUNE8,
|
|
[26] = SceneItem_pb.EEQUIPPOS_RUNE9,
|
|
[27] = SceneItem_pb.EEQUIPPOS_RUNE10,
|
|
[28] = SceneItem_pb.EEQUIPPOS_RUNE11,
|
|
[29] = SceneItem_pb.EEQUIPPOS_RUNE12,
|
|
[30] = SceneItem_pb.EEQUIPPOS_RUNE13,
|
|
[31] = SceneItem_pb.EEQUIPPOS_RUNE14,
|
|
[32] = SceneItem_pb.EEQUIPPOS_RUNE15,
|
|
[33] = SceneItem_pb.EEQUIPPOS_RUNE16,
|
|
}
|
|
|
|
PackageEquip_FashionParts =
|
|
{
|
|
2,7,8,1,9,10,11,12,13,
|
|
}
|
|
|
|
if(GameConfig.SystemForbid.FashionPart)then
|
|
PackageEquip_FashionParts =
|
|
{
|
|
8,7,9,1,10,11,12,
|
|
}
|
|
end
|
|
|
|
PackageEquip_ShowShieldPart_Class =
|
|
{
|
|
72,73,74,
|
|
}
|
|
|
|
|
|
autoImport("MyselfEquipItemCell")
|
|
|
|
local tempV3 = LuaVector3();
|
|
local tempRot = LuaQuaternion();
|
|
|
|
local EQUIP_MAXINDEX = nil;
|
|
|
|
function RuneEquipPage:Init()
|
|
EQUIP_MAXINDEX = #RuneEquipPage.EquipConfig;
|
|
|
|
self:AddViewInterest();
|
|
self:InitUI();
|
|
end
|
|
|
|
|
|
local equipgrid_reposition = function (equipGrid_self)
|
|
equipGrid_self.grid:Reposition();
|
|
|
|
local childCount = equipGrid_self.transform.childCount;
|
|
if(childCount == 13)then
|
|
local cell13 = equipGrid_self.transform:GetChild(12);
|
|
if(cell13)then
|
|
tempV3:Set(216, -488);
|
|
cell13.transform.localPosition = tempV3;
|
|
end
|
|
elseif(childCount == 14)then
|
|
local cell13 = equipGrid_self.transform:GetChild(12);
|
|
if(cell13)then
|
|
tempV3:Set(144, -488);
|
|
cell13.transform.localPosition = tempV3;
|
|
end
|
|
local cell14 = equipGrid_self.transform:GetChild(13);
|
|
if(cell14)then
|
|
tempV3:Set(288, -488);
|
|
cell14.transform.localPosition = tempV3;
|
|
end
|
|
end
|
|
end
|
|
function RuneEquipPage:GetEquipGrid()
|
|
local grid = self:FindComponent("EquipGrid", UIGrid);
|
|
local equipGrid = {};
|
|
equipGrid.grid = grid;
|
|
equipGrid.transform = grid.transform;
|
|
equipGrid.gameObject = grid.gameObject;
|
|
--equipGrid.Reposition = equipgrid_reposition;
|
|
|
|
equipGrid.comp = equipGrid.gameObject:GetComponent(GameObjectForLua);
|
|
if(not equipGrid.comp)then
|
|
equipGrid.comp = equipGrid.gameObject:AddComponent(GameObjectForLua);
|
|
end
|
|
equipGrid.comp.onEnable = function ()
|
|
--equipGrid.Reposition(equipGrid);
|
|
end
|
|
|
|
return equipGrid;
|
|
end
|
|
|
|
|
|
function RuneEquipPage:InitCtls()
|
|
local myPro = Game.Myself.data.userdata:Get(UDEnum.PROFESSION);
|
|
if(self.roleEquips)then
|
|
local cachePro = self.cachePro;
|
|
if(cachePro ~= nil and cachePro == myPro)then
|
|
return;
|
|
end
|
|
end
|
|
self.cachePro = myPro;
|
|
|
|
self:InitEquipCtl();
|
|
|
|
end
|
|
|
|
|
|
function RuneEquipPage:InitEquipCtl()
|
|
local equipGrid = self:GetEquipGrid();
|
|
|
|
|
|
self.roleEquips = {};
|
|
|
|
for i = 0,15 do
|
|
|
|
local obj = nil;
|
|
local go = equipGrid.transform:GetChild(i);
|
|
obj = go.gameObject;
|
|
|
|
self.roleEquips[i+18] = MyselfEquipItemCell.new(obj, i+18);
|
|
self.roleEquips[i+18]:AddEventListener(MouseEvent.MouseClick, self.ClickEquip, self);
|
|
self.roleEquips[i+18]:AddEventListener(MouseEvent.DoubleClick, self.DoubleClickEqip, self);
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
function RuneEquipPage:InitUI()
|
|
self.chooseSymbol = self:FindGO("EquipChoose");
|
|
self.normalStick = self.container.normalStick;
|
|
end
|
|
|
|
function RuneEquipPage:OnEnter()
|
|
RuneEquipPage.super.OnEnter(self);
|
|
|
|
self:InitCtls();
|
|
self:UpdateEquip();
|
|
end
|
|
|
|
function RuneEquipPage:ShowEquipInfo(b)
|
|
for i = 1, #self.roleEquips do
|
|
local cell = self.roleEquips[i];
|
|
cell:ShowStrentlv(b);
|
|
end
|
|
end
|
|
|
|
function RuneEquipPage:ClickEquip(cellCtl)
|
|
local packageView = self.container
|
|
|
|
if packageView.equipStrengthenIsShow then
|
|
local equipData = cellCtl.data
|
|
if equipData then
|
|
local index = equipData.index
|
|
local equipInfo = equipData.equipInfo
|
|
if cellCtl.isfashion then
|
|
MsgManager.ShowMsgByIDTable(240)
|
|
elseif not equipInfo:CanStrength() then
|
|
MsgManager.ShowMsgByIDTable(243)
|
|
elseif packageView.equipStrengthenViewController:IsCouldStrengthen(index) then
|
|
self:SetChoose(cellCtl);
|
|
packageView.equipStrengthenViewController:Refresh(index)
|
|
else
|
|
MsgManager.ShowMsgByIDTable(240)
|
|
end
|
|
end
|
|
else
|
|
if(cellCtl~=nil and self.chooseEquip~=cellCtl)then
|
|
self:SetChoose(cellCtl);
|
|
|
|
local data = cellCtl.data;
|
|
if(data)then
|
|
local funcs = self.container:GetDataFuncs(data, FunctionItemFunc_Source.RoleEquipBag, cellCtl.isfashion);
|
|
local callback = function ()
|
|
self:CancelChoose();
|
|
end
|
|
local sdata = {
|
|
itemdata = data,
|
|
funcConfig = funcs,
|
|
ignoreBounds = {cellCtl.gameObject},
|
|
callback = callback,
|
|
showUpTip = true,
|
|
};
|
|
local itemTip = self:ShowItemTip(sdata, self.normalStick, nil, {210,0});
|
|
if(not cellCtl:IsEffective())then
|
|
itemTip:GetCell(1):SetNoEffectTip(true);
|
|
end
|
|
else
|
|
self:ShowItemTip();
|
|
end
|
|
else
|
|
self:CancelChoose();
|
|
end
|
|
end
|
|
end
|
|
|
|
function RuneEquipPage:SetChoose(cellCtl)
|
|
if(cellCtl)then
|
|
local index = cellCtl.index;
|
|
if(type(index)=="number")then
|
|
BagProxy.Instance:SetToEquipPos(self.EquipConfig[index]);
|
|
else
|
|
BagProxy.Instance:SetToEquipPos();
|
|
end
|
|
local go = cellCtl.gameObject;
|
|
if(go)then
|
|
self.chooseSymbol:SetActive(true);
|
|
self.chooseSymbol.transform:SetParent(go.transform, false);
|
|
else
|
|
self.chooseSymbol:SetActive(false);
|
|
self.chooseSymbol.transform:SetParent(go.transform, false);
|
|
self.chooseSymbol.transform:SetParent(self.trans, false);
|
|
end
|
|
self.chooseEquip = cellCtl;
|
|
else
|
|
self.chooseSymbol:SetActive(false);
|
|
self.chooseSymbol.transform:SetParent(self.trans, false);
|
|
BagProxy.Instance:SetToEquipPos();
|
|
self.chooseEquip = nil;
|
|
end
|
|
end
|
|
|
|
function RuneEquipPage:DoubleClickEqip(cellCtl)
|
|
local packageView = self.container
|
|
if packageView.equipStrengthenIsShow then return end
|
|
|
|
local data = cellCtl.data;
|
|
if(data)then
|
|
local funcs = self.container:GetDataFuncs(data, FunctionItemFunc_Source.RoleEquipBag);
|
|
if(funcs[1])then
|
|
local tipfunc = FunctionItemFunc.Me():GetFuncById(funcs[1]);
|
|
if(type(tipfunc) == "function")then
|
|
tipfunc(data);
|
|
end
|
|
end
|
|
end
|
|
self:SetChoose();
|
|
TipManager.Instance:CloseItemTip();
|
|
end
|
|
|
|
function RuneEquipPage:UpdateEquip()
|
|
-- 更新人物裝備
|
|
local equipdata = BagProxy.Instance.roleEquip.siteMap;
|
|
for i = 1,EQUIP_MAXINDEX do
|
|
if(self.roleEquips[i])then
|
|
self.roleEquips[i]:SetData(equipdata[i]);
|
|
end
|
|
end
|
|
end
|
|
|
|
function RuneEquipPage:SetItemDragEnabled(b)
|
|
-- for k,v in pairs(self.roleEquips) do
|
|
-- v:CanDrag(b);
|
|
-- end
|
|
end
|
|
|
|
function RuneEquipPage:AddViewInterest()
|
|
self:AddListenEvt(ItemEvent.ItemUpdate, self.UpdateEquip);
|
|
self:AddListenEvt(ItemEvent.EquipUpdate, self.UpdateEquip);
|
|
self:AddListenEvt(ServiceEvent.ItemEquipPosDataUpdate, self.UpdateEquip);
|
|
self:AddListenEvt(MyselfEvent.MyProfessionChange, self.UpdateEquip);
|
|
self:AddListenEvt(ItemEvent.Equip, self.CancelChoose);
|
|
end
|
|
|
|
function RuneEquipPage:CancelChoose()
|
|
self.chooseSymbol:SetActive(false);
|
|
self.chooseSymbol.transform:SetParent(self.trans, false);
|
|
self:ShowItemTip();
|
|
self:SetChoose();
|
|
end
|
|
|
|
function RuneEquipPage:OnExit()
|
|
self:CancelChoose();
|
|
RuneEquipPage.super.OnExit(self);
|
|
end
|
|
|
|
function RuneEquipPage:AddMaskOnItems()
|
|
local roleEquips = self.roleEquips
|
|
if roleEquips then
|
|
for _, roleEquip in pairs(roleEquips)do
|
|
roleEquip:ShowMask()
|
|
end
|
|
end
|
|
|
|
end
|
|
|
|
function RuneEquipPage:RemoveMaskOnItems()
|
|
local roleEquips = self.roleEquips
|
|
if roleEquips then
|
|
for _, roleEquip in pairs(roleEquips)do
|
|
roleEquip:HideMask()
|
|
end
|
|
end
|
|
|
|
end |