-- <*
|
|
-- @Author: Saber
|
|
-- @Description: 圣物系统装甲背包界面
|
|
-- *>
|
|
PsionicArmorView = PsionicArmorView or BaseClass(BaseItem)
|
|
local PsionicArmorView = PsionicArmorView
|
|
|
|
function PsionicArmorView:__init(parent_wnd,prefab_asset,layer_name)
|
|
self.base_file = "psionic"
|
|
self.layout_file = "PsionicArmorView"
|
|
self.parent_wnd = parent_wnd
|
|
self.layer_name = layer_name
|
|
self.sort_goods_up = true -- 道具排序flag true = 品质降序 false = 品质升序
|
|
self.model = PsionicModel:getInstance()
|
|
self:Load()
|
|
end
|
|
|
|
function PsionicArmorView:Load_callback()
|
|
local nodes = {
|
|
"resolve_btn:obj", "resolve_btn/resolve_red:img",
|
|
"receive_btn:obj",
|
|
"item_scroll", "item_scroll/Viewport/item_con",
|
|
}
|
|
self:GetChildren(nodes)
|
|
|
|
self:AddEvents()
|
|
self:UpdateView()
|
|
end
|
|
|
|
function PsionicArmorView:AddEvents( )
|
|
local function click_event(target, x, y)
|
|
if target == self.resolve_btn_obj then
|
|
self.model:Fire(PsionicConst.OPEN_RESOLVE_VIEW, true)
|
|
elseif target == self.receive_btn_obj then
|
|
local draw_open, cfg = GetModuleIsOpen(139, 7)
|
|
if draw_open then
|
|
OpenFun.Open(139, 7)
|
|
else
|
|
local str = string.format("圣物寻宝将在开服第%s天开启!", cfg and cfg.open_day or 0)
|
|
Message.show(str, "fault")
|
|
end
|
|
end
|
|
end
|
|
AddClickEvent(self.resolve_btn_obj, click_event, LuaSoundManager.SOUND_UI.NONE)
|
|
AddClickEvent(self.receive_btn_obj, click_event, LuaSoundManager.SOUND_UI.NONE)
|
|
|
|
local function on_update_equip_bag()
|
|
self:UpdatePsionicArmorItem()
|
|
end
|
|
self:BindEvent(self.model, PsionicConst.UPDATE_PISIONIC_BAG_ARMOR, on_update_equip_bag)
|
|
|
|
local function update_resolve_btn_red(tab_id)
|
|
if tab_id and tab_id == PsionicConst.TabId.PArmor then
|
|
self:UpdateResolveBtnRed()
|
|
end
|
|
end
|
|
self:BindEvent(self.model, PsionicConst.UPDATE_RED_BY_TABID, update_resolve_btn_red)
|
|
end
|
|
|
|
function PsionicArmorView:UpdateView( )
|
|
self:ChangeSortFlag(self.sort_goods_up)
|
|
self:UpdateResolveBtnRed()
|
|
end
|
|
|
|
function PsionicArmorView:ChangeSortFlag(flag)
|
|
self.sort_goods_up = flag
|
|
self:UpdatePsionicArmorItem()
|
|
end
|
|
|
|
function PsionicArmorView:UpdatePsionicArmorItem( )
|
|
-- print("Saber:PsionicArmorView [57] self.sort_goods_up: ",self.sort_goods_up)
|
|
local data = self.model:GetPsionicBagData(self.sort_goods_up)
|
|
|
|
local data_length = #data
|
|
local empty_data = {is_empty = true}
|
|
local need_full_num
|
|
if data_length < 24 then
|
|
-- 补全24个位置
|
|
need_full_num = 24
|
|
elseif data_length % 4 ~= 0 then
|
|
-- 有空白格子,补全成无数据格子
|
|
need_full_num = math.ceil(data_length / 4) * 4
|
|
end
|
|
if need_full_num then
|
|
for i = data_length + 1, need_full_num do
|
|
data[i] = empty_data
|
|
end
|
|
end
|
|
self.bag_item_creator = self.bag_item_creator or self:AddUIComponent(UI.ItemListCreator)
|
|
local info = {
|
|
data_list = data,
|
|
item_con = self.item_con,
|
|
scroll_view = self.item_scroll,
|
|
item_class = PsionicArmorItem,
|
|
item_width = 78,
|
|
item_height = 78,
|
|
start_x = 9,
|
|
start_y = -9,
|
|
space_x = 12,
|
|
space_y = 12,
|
|
create_frequency = 0.01,
|
|
alignment = UnityEngine.TextAnchor.UpperLeft,
|
|
on_update_item = function(item, i, v)
|
|
item:SetData(v, PsionicConst.ArmorItemFlag.Bag,nil,nil,i)
|
|
end,
|
|
}
|
|
self.bag_item_creator:UpdateItems(info)
|
|
end
|
|
|
|
function PsionicArmorView:UpdateResolveBtnRed( )
|
|
local bool = self.model:GetPsionicResolveBtnRed()
|
|
self.resolve_red_img.enabled = bool
|
|
end
|
|
|
|
function PsionicArmorView:__delete( )
|
|
|
|
end
|