|
|
- --[[
- @ 道具选择面板
- --]]
-
- OptionalItemTips = OptionalItemTips or BaseClass(BaseView)
- local OptionalItemTips = OptionalItemTips
-
- function OptionalItemTips:__init()
- self.base_file = "common"
- self.layout_file = "OptionalItemTips"
- self.layer_name = "Top"
-
- self.destroy_imm = true
- self.use_background = true
- self.click_bg_toClose = true
- self.is_set_zdepth = true
- self.wait_for_hide = true
-
- self.item_list = {}
-
- self.load_callback = function()
- self:LoadSuccess()
- self:AdjustLayoutPos()
- end
- self.open_callback = function()
- self:SetLabel()
- self:SetContent()
- end
-
- self.destroy_callback = function ()
- self:Remove()
- end
- end
-
- function OptionalItemTips:Remove()
- for i, v in ipairs(self.item_list) do
- v:DeleteMe()
- v = nil
- end
- self.item_list = {}
- end
-
- function OptionalItemTips:LoadSuccess()
-
- self.layout,
- self.bg,
- self.content_parent
- = self:GetChildTransforms(
- {
- "layout",
- "layout/bg",
- "layout/itemScrollView/Viewport/Content"
- })
-
- self.title,
- self.label,
- self.tips
- = self:GetChildTexts(
- {
- "layout/title",
- "layout/EmptyCon/text",
- "layout/tips",
- })
-
- self.empty
- = self:GetChildGameObjects(
- {
- "layout/EmptyCon",
- })
-
- self.item_mask
- = self:GetChildImages(
- {
- "layout/itemScrollView/Viewport"
- })
-
- SetSizeDelta(self.transform, ScreenWidth, ScreenHeight)
- end
-
- function OptionalItemTips:SetLabel()
- local str = WordManager:GetGoodsTypeStr(self.goods_type)
- str = string.len(str) == 0 and "材料" or str
- self.title.text = "点击选择"..(self.grade and ((self.grade - 1) .."阶") or "").. str
- self.label.text = "背包中没有可选择的"..str
- end
-
- function OptionalItemTips:Open(x, y, goods_type, goods_list, callback, item_type,grade)
- self.goods_type = goods_type
- self.goods_list = goods_list
- self.grade = grade
- self.pos_x = x
- self.pos_y = y
- self.callback = callback
- self.item_type = item_type or OptionalItem.Type.EQUIP
- BaseView.Open(self)
- end
-
- function OptionalItemTips:SetContent()
-
- if self.goods_list and TableSize(self.goods_list) > 0 then
- self.empty:SetActive(false)
- self:SetItem()
- else
- local str = WordManager:GetGoodsTypeStr(self.goods_type)
- str = string.len(str) == 0 and "材料" or str
- self.title.text = "背包中没有可选择的"..(self.grade and ((self.grade - 1) .."阶") or "")..str
- self.empty:SetActive(true)
- end
- end
-
- function OptionalItemTips:SetItem()
-
- local function onSelectCallback(goods_vo)
- if self.callback ~= nil then
- self.callback(goods_vo)
- end
- self:Close()
- end
- local count = 0
- table.sort( self.goods_list, function ( a,b )
- return a.color > b.color
- end )
- for k, v in ipairs(self.goods_list) do
- count = count + 1
- self.item_list[count] = self.item_list[count] or OptionalItem.New(self.content_parent, nil, self.layer_name, self.item_type)
- self.item_list[count]:SetData(v, onSelectCallback)
- end
- for i = count + 1, #self.item_list do
- self.item_list[i]:SetVisible(false)
- end
- end
-
- function OptionalItemTips:AdjustLayoutPos()
- if self.pos_x and self.pos_y then
- local layout_width = self.bg.sizeDelta.x
- local layout_height = self.bg.sizeDelta.y
- local x,y = ScreenToViewportPoint(self.pos_x,self.pos_y)
- local iphone_x_offset = math.max(ClientConfig.iphone_x_offset_left,ClientConfig.iphone_x_offset_right)
- if x + layout_width + 50 + iphone_x_offset * 2 > SrcScreenWidth then
- x = SrcScreenWidth - layout_width - 90 - iphone_x_offset * 2
- end
- if y < layout_height + 50 then
- y = layout_height + 50
- end
- self.layout.anchoredPosition = Vector2(x,y - ScreenHeight)
- end
- end
|