155 lines
4.0 KiB
Plaintext
155 lines
4.0 KiB
Plaintext
autoImport("BaseTip")
|
|
autoImport("ExchangeCombineItemCell")
|
|
FeedPetTip = class("FeedPetTip", BaseTip)
|
|
local PACKAGE_CHECK = GameConfig.PackageMaterialCheck.equipcompose
|
|
|
|
local function ReUniteCellData(datas, perRowNum)
|
|
local newData = {}
|
|
if(datas~=nil and #datas>0)then
|
|
for i = 1,#datas do
|
|
local i1 = math.floor((i-1)/perRowNum)+1;
|
|
local i2 = math.floor((i-1)%perRowNum)+1;
|
|
newData[i1] = newData[i1] or {};
|
|
if(datas[i] == nil)then
|
|
newData[i1][i2] = nil;
|
|
else
|
|
newData[i1][i2] = datas[i];
|
|
end
|
|
end
|
|
end
|
|
return newData;
|
|
end
|
|
|
|
function FeedPetTip:Init()
|
|
self:FindObj()
|
|
self:AddEvts()
|
|
self:InitView()
|
|
EventManager.Me():AddEventListener(ItemEvent.ItemUpdate, self.Update, self);
|
|
end
|
|
|
|
function FeedPetTip:InitView()
|
|
local container = self:FindGO("Container")
|
|
local wrapConfig = {
|
|
wrapObj = container,
|
|
pfbNum = 4,
|
|
cellName = "ExchangeCombineItemCell",
|
|
control = ExchangeCombineItemCell,
|
|
dir = 1,
|
|
}
|
|
self.itemWrapHelper = WrapCellHelper.new(wrapConfig)
|
|
self.itemWrapHelper:AddEventListener(MouseEvent.MouseClick, self.OnClickCell, self)
|
|
end
|
|
|
|
function FeedPetTip:FindObj()
|
|
self.closecomp = self.gameObject:GetComponent(CloseWhenClickOtherPlace);
|
|
self.scrollview=self:FindComponent("ScrollView",UIScrollView)
|
|
self.confirmBtn = self:FindGO("ConfirmBtn")
|
|
self.cancelBtn = self:FindGO("CancelBtn")
|
|
|
|
self.closecomp.callBack = function (go)
|
|
self:CloseSelf();
|
|
end
|
|
FeedPetTip.super.Init(self);
|
|
end
|
|
|
|
function FeedPetTip:AddEvts()
|
|
self:AddClickEvent(self.confirmBtn, function (go)
|
|
self:OnClickConfirm()
|
|
end)
|
|
self:AddClickEvent(self.cancelBtn, function (go)
|
|
self:CloseSelf()
|
|
end)
|
|
end
|
|
|
|
function FeedPetTip:SetData(data)
|
|
self.data=data
|
|
if(not self.data)then return end
|
|
self.petinfoData = data.petinfoData
|
|
self:Update()
|
|
end
|
|
|
|
function FeedPetTip:Update()
|
|
local goods = FunctionPet.Me():GetAllHobbyItems()
|
|
if(not goods)then return end
|
|
local itemDatas = {}
|
|
for i=1,#goods do
|
|
itemDatas[#itemDatas+1] = ItemData.new("FeedPet", goods[i])
|
|
end
|
|
table.sort( itemDatas, function (a,b)
|
|
local aOwned = BagProxy.Instance:GetItemNumByStaticID(a.staticData.id,PACKAGE_CHECK) > 0
|
|
local bOwned = BagProxy.Instance:GetItemNumByStaticID(b.staticData.id,PACKAGE_CHECK) > 0
|
|
if aOwned and bOwned then
|
|
return a.staticData.id>b.staticData.id
|
|
end
|
|
if aOwned or bOwned then
|
|
return aOwned
|
|
end
|
|
return a.staticData.id>b.staticData.id
|
|
end)
|
|
self.itemWrapHelper:ResetDatas(ReUniteCellData(itemDatas,4))
|
|
end
|
|
|
|
function FeedPetTip:SetChoose(id)
|
|
local cells = self.itemWrapHelper:GetCellCtls()
|
|
for i=1,#cells do
|
|
local single = cells[i]:GetCells()
|
|
for j=1,#single do
|
|
single[j]:SetChoosen(id)
|
|
end
|
|
end
|
|
end
|
|
|
|
function FeedPetTip:OnClickCell(cellCtl)
|
|
local data = cellCtl and cellCtl.data
|
|
if(not data)then return end
|
|
local ownCount = BagProxy.Instance:GetItemNumByStaticID(data.staticData.id,PACKAGE_CHECK)
|
|
if(not ownCount or 0==ownCount)then
|
|
return
|
|
end
|
|
if data.staticData.id == self.chooseID then
|
|
self.chooseID = nil
|
|
else
|
|
self.chooseID = data.staticData.id
|
|
end
|
|
self:SetChoose(self.chooseID)
|
|
end
|
|
|
|
function FeedPetTip:OnClickConfirm()
|
|
if not self.chooseID then
|
|
return
|
|
end
|
|
local myPetInfo = PetProxy.Instance:GetMyPetInfoData(self.petinfoData.petid);
|
|
for i=1,#PACKAGE_CHECK do
|
|
local item = BagProxy.Instance:GetItemByStaticID(self.chooseID,PACKAGE_CHECK[i])
|
|
if nil~=item then
|
|
local dont = LocalSaveProxy.Instance:GetDontShowAgain(9015)
|
|
if(dont == nil)then
|
|
MsgManager.DontAgainConfirmMsgByID(9015, function ()
|
|
ServiceScenePetProxy.Instance:CallGiveGiftPetCmd(myPetInfo.petid, item.id);
|
|
end, nil, nil, item.staticData.NameZh, myPetInfo.name);
|
|
else
|
|
ServiceScenePetProxy.Instance:CallGiveGiftPetCmd(myPetInfo.petid, item.id);
|
|
end
|
|
break;
|
|
end
|
|
end
|
|
end
|
|
|
|
function FeedPetTip:CloseSelf()
|
|
if(self.callback)then
|
|
self.callback(self.callbackParam);
|
|
end
|
|
EventManager.Me():RemoveEventListener(ItemEvent.ItemUpdate, self.Update, self)
|
|
TipsView.Me():HideCurrent();
|
|
end
|
|
|
|
function FeedPetTip:DestroySelf()
|
|
if(not Slua.IsNull(self.gameObject))then
|
|
GameObject.Destroy(self.gameObject);
|
|
end
|
|
end
|
|
|
|
|
|
|
|
|