源战役客户端
您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符
 
 
 
 
 

169 行
4.3 KiB

BagOneKeySellView = BagOneKeySellView or BaseClass(BaseView)
function BagOneKeySellView:__init()
self.base_file = "bag"
self.layout_file = "BagOneKeySellView"
self.layer_name = "UI"
self.destroy_imm = true
self:AddPreLoadList("bag",{"BagItem"})
self.append_to_ctl_queue = false
self.item_list = {}
self.data_list = {}
self.column_num = 5 --一行多少个图标
--self.use_local_view = true
self.load_callback = function ()
self:LoadSuccess()
self:InitEvent()
end
self.open_callback = function ()
self:InitItems()
self:GetDataList()
self:UpdateItems()
end
self.close_callback = function ()
GlobalEventSystem:Fire(EventName.CLOSE_GUIDE_PROMPT_VIEW)
end
self.destroy_callback = function ()
self:Clear()
end
end
function BagOneKeySellView:Open()
BaseView.Open(self)
end
function BagOneKeySellView:Clear()
for i,item in pairs(self.item_list) do
item:DeleteMe()
end
self.item_list = {}
if self.event_id then
GoodsModel:getInstance():UnBind(self.event_id)
self.event_id = nil
end
end
function BagOneKeySellView:Close()
BaseView.Close(self)
end
function BagOneKeySellView:LoadSuccess()
self.scroll_content = self:GetChild("ScrollView/Viewport/Content")
self.num = self:GetChild("num"):GetComponent("Text")
self.outeSelete_toggle = self:GetChild("Toggle"):GetComponent("Toggle")
self.close_btn,self.sellBtn,self.outeSelete_btn,
self.tip_image,self.scrollView,self.tip
= GetChildGameObjects (self.transform,
{
"Window/windowCloseBtn","Button","Toggle",
"TipImage","ScrollView","Tip"
})
end
function BagOneKeySellView:InitEvent()
local function onBtnClickHandler(target)
if target == self.close_btn then
self:Close()
elseif target == self.sellBtn then
self:SellCall()
elseif target == self.outeSelete_btn then
if self.outeSelete_toggle.isOn then
self.scrollView.gameObject:SetActive(true)
self.tip.gameObject:SetActive(false)
self:GetDataList(true)
else
self.scrollView.gameObject:SetActive(false)
self.tip.gameObject:SetActive(true)
self.data_list = {}
end
end
end
AddClickEvent(self.close_btn,onBtnClickHandler)
AddClickEvent(self.sellBtn,onBtnClickHandler)
AddClickEvent(self.outeSelete_btn,onBtnClickHandler)
local function onChangeBagListHandler()
if self._use_delete_method then return end
self:GetDataList(false)
self:UpdateItems()
end
self.event_id = GoodsModel:getInstance():Bind(GoodsModel.CHANGE_BAGLIST,onChangeBagListHandler)
end
function BagOneKeySellView:GetDataList(flagOf0)
self.data_list = {}
local list = GoodsModel:getInstance().bag_goods_list
for k,vo in pairs(list) do
if vo.color == 0 and vo.type == GoodsModel.TYPE.EQUIP then
if flagOf0 then
if vo.goods_num > 0 then
table.insert(self.data_list,vo)
end
else
table.insert(self.data_list,vo)
end
end
end
end
function BagOneKeySellView:InitItems( )
local info = GoodsModel:getInstance().slot_info_pos_2
local slot_num = info.slot_num or 0
for k = 1,slot_num do
item = self.item_list[k]
if item == nil then
item = BagItem.New(self.scroll_content,nil)
self.item_list[k] = item
end
item:SetVoid()
item:SetVisible(true)
item:SetPosition((k - 1) % self.column_num * 94 ,math.floor((k - 1) / self.column_num) * -92 )
end
self.scroll_content.sizeDelta = Vector2(424,math.ceil((slot_num) / self.column_num) * 92)
end
--设置捐献信息
function BagOneKeySellView:UpdateItems()
for k,item in pairs(self.item_list) do
item:SetVoid()
end
local item = nil
local total_coin = 0
for k,v in ipairs(self.data_list) do
item = self.item_list[k]
if item == nil then
item = BagItem.New(self.scroll_content,nil)
self.item_list[k] = item
end
item:SetSellState(true)
item:SetData(v)
item:SetVisible(true)
item:SetPosition((k - 1) % self.column_num * 94,math.floor((k - 1) / self.column_num) * -92)
if v.goods_num > 0 then
total_coin = total_coin + GoodsModel:getInstance():GetSellPriceByTypeId(v.type_id)
end
end
self.num.text = total_coin
end
function BagOneKeySellView:SellCall( )
self:GetDataList(true)
if #self.data_list <= 0 or not self.outeSelete_toggle.isOn then
Message.show("无可出售物品")
else
UserMsgAdapter.WriteBegin(15021)
UserMsgAdapter.WriteFMT("h",#self.data_list)
for k,v in pairs(self.data_list) do
UserMsgAdapter.WriteFMT("l",v.goods_id)
UserMsgAdapter.WriteFMT("i",v.goods_num)
end
UserMsgAdapter.SendToGame()
end
end