源战役客户端
Nie możesz wybrać więcej, niż 25 tematów Tematy muszą się zaczynać od litery lub cyfry, mogą zawierać myślniki ('-') i mogą mieć do 35 znaków.
 
 
 
 
 

117 wiersze
3.7 KiB

-- <*
-- @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