miduo_client/Assets/ManagedResources/~Lua/Modules/GeneralPanel/View/GeneralBigPopup_SelectGem.lua

120 lines
4.0 KiB
Lua
Raw Normal View History

2025-03-14 11:58:20 +08:00
----- 命格选择命石 -----
2021-12-08 09:29:08 +08:00
local SelectGem = {}
--传入父脚本模块
local parent
--传入特效层级
2024-09-20 11:45:46 +08:00
local sortingOrder = 0
local args = nil
local itemConfig = ConfigManager.GetConfig(ConfigName.ItemConfig)
local gemConfig = ConfigManager.GetConfig(ConfigName.GemConfig)
2021-12-08 15:40:43 +08:00
local PropertyConfig = ConfigManager.GetConfig(ConfigName.PropertyConfig)
2021-12-08 09:29:08 +08:00
function SelectGem:InitComponent(gameObject)
self.spLoader = SpriteLoader.New()
2024-09-20 11:45:46 +08:00
self.itemPre = Util.GetGameObject(gameObject, "ItemPre")
self.empty = Util.GetGameObject(gameObject, "Empty")
2021-12-08 09:29:08 +08:00
self.itemPre:SetActive(false)
--滚动条根节点
self.root = Util.GetGameObject(gameObject, "Scroll")
2024-09-20 11:45:46 +08:00
self.preList = {}
self.itemList = {}
2021-12-08 09:29:08 +08:00
local rootHight = self.root.transform.rect.height
local width = self.root.transform.rect.width
self.ScrollView = SubUIManager.Open(SubUIConfig.ScrollCycleView, self.root.transform,
2024-09-20 11:45:46 +08:00
self.itemPre, nil, Vector2.New(width, rootHight), 1, 1, Vector2.New(0, 10))
2021-12-08 09:29:08 +08:00
self.ScrollView.moveTween.MomentumAmount = 1
self.ScrollView.moveTween.Strength = 2
self.ScrollView.elastic = false
end
function SelectGem:BindEvent()
end
function SelectGem:AddListener()
end
function SelectGem:RemoveListener()
end
2024-09-20 11:45:46 +08:00
function SelectGem:OnShow(_parent, _args)
2021-12-08 09:29:08 +08:00
args = _args
2024-09-20 11:45:46 +08:00
parent = _parent
sortingOrder = _parent.sortingOrder
2021-12-08 09:29:08 +08:00
SelectGem:Refresh(args[1])
end
2024-09-20 11:45:46 +08:00
2021-12-08 09:29:08 +08:00
function SelectGem:Refresh(Id)
2021-12-08 15:40:43 +08:00
local dataList = GemManager.GetGemsFromBagByType(Id)
2021-12-14 16:17:49 +08:00
if #dataList > 0 then
self.root:SetActive(true)
self.empty:SetActive(false)
self.ScrollView:SetData(dataList, function(index, go)
2024-09-20 11:45:46 +08:00
self:SingleDataShow(go, dataList[index], index)
2021-12-14 16:17:49 +08:00
go:SetActive(true)
end)
else
self.empty:SetActive(true)
self.root:SetActive(false)
end
2021-12-08 09:29:08 +08:00
end
2024-09-20 11:45:46 +08:00
function SelectGem:SingleDataShow(go, data, index)
local icon = Util.GetGameObject(go, "Icon")
local desc = Util.GetGameObject(go, "Desc"):GetComponent("Text")
local name = Util.GetGameObject(go, "Name"):GetComponent("Text")
local btn = Util.GetGameObject(go, "Btn")
local btnText = Util.GetGameObject(go, "Btn/Text"):GetComponent("Text")
2021-12-08 09:29:08 +08:00
2024-08-29 21:36:51 +08:00
btnText.text = Language[11077]
2021-12-08 14:17:18 +08:00
if GemManager.myGemList[args[1]] and GemManager.myGemList[args[1]][args[2]] and GemManager.myGemList[args[1]][args[2]] > 0 then
2024-08-29 21:36:51 +08:00
btnText.text = Language[11078]
2021-12-08 14:17:18 +08:00
end
2021-12-08 09:29:08 +08:00
if not self.itemList[go] then
2024-09-20 11:45:46 +08:00
local view = SubUIManager.Open(SubUIConfig.ItemView, icon.transform)
2021-12-08 09:29:08 +08:00
self.itemList[go] = view
end
2021-12-10 14:57:23 +08:00
local num = BagManager.GetTotalItemNum(data.id)
2024-09-20 11:45:46 +08:00
self.itemList[go]:OnOpen(false, { data.id, num }, 1.1, false, false, false, sortingOrder + 1)
2021-12-08 09:29:08 +08:00
self.itemList[go].gameObject:SetActive(true)
2024-09-20 11:45:46 +08:00
name.text = data.name --GetStringByEquipQua(itemConfig[data.id].Quantity1,data.name)
2021-12-08 15:40:43 +08:00
local property = gemConfig[data.id].Property
local textDesc = ""
for i = 1, #property do
2024-09-20 11:45:46 +08:00
local str = ""
if PropertyConfig[property[i][1]].Style == 1 then
str = string.format(Language[10991], PropertyConfig[property[i][1]].Info, property[i][2])
elseif PropertyConfig[property[i][1]].Style == 2 then
str = string.format(Language[10991], PropertyConfig[property[i][1]].Info, property[i][2] / 100) .. "%"
end
2024-09-20 11:45:46 +08:00
textDesc =
str --textDesc..string.format( Language[10991],PropertyConfig[property[i][1]].Info,property[i][2]/100).."%"
if property[i + 1] then
textDesc = textDesc .. "\n"
2021-12-08 15:40:43 +08:00
end
end
desc.text = textDesc
2024-09-20 11:45:46 +08:00
Util.AddOnceClick(btn, function()
NetManager.LifeGridChangeRequest(1, args[1], args[2], data.id, function()
2021-12-08 14:17:18 +08:00
if args[3] then
args[3]()
end
2021-12-08 09:29:08 +08:00
Game.GlobalEvent:DispatchEvent(GameEvent.Gem.RefreshPanel)
parent:ClosePanel()
end)
end)
end
function SelectGem:OnClose()
2024-09-20 11:45:46 +08:00
args = nil
2021-12-08 09:29:08 +08:00
end
function SelectGem:OnDestroy()
self.spLoader:Destroy()
2024-09-20 11:45:46 +08:00
self.preList = {}
self.itemList = {}
2021-12-08 09:29:08 +08:00
end
2024-09-20 11:45:46 +08:00
return SelectGem