miduo_client/Assets/ManagedResources/~Lua/Modules/GeneralPanel/View/GeneralBigPopup_WishJulingD...

241 lines
9.5 KiB
Lua
Raw Normal View History

2026-04-10 18:13:29 +08:00
----- 心愿抽卡弹窗 -----
local this = {}
local itemConfig = ConfigManager.GetConfig(ConfigName.ItemConfig)
local heroConfig = ConfigManager.GetConfig(ConfigName.HeroConfig)
local specialConfig = ConfigManager.GetConfig(ConfigName.SpecialConfig)
function this:InitComponent(gameObject)
self.spLoader = SpriteLoader.New()
self.okBtn = Util.GetGameObject(gameObject, "okBtn")
self.helpBtn = Util.GetGameObject(gameObject, "helpBtn")
self.helpBtn:SetActive(false)
self.scroll = Util.GetGameObject(gameObject, "selectList")
self.itemPre = Util.GetGameObject(gameObject, "itemPre")
-- 设置循环滚动,万一内容不停地加
local rootHight = self.scroll.transform.rect.height
local width = self.scroll.transform.rect.width
self.infoTxt = Util.GetGameObject(gameObject, "Bg/tiao1/Text (1)"):GetComponent("Text")
self.scrollView = SubUIManager.Open(SubUIConfig.ScrollCycleView, self.scroll.transform,
self.itemPre, nil, Vector2.New(width, rootHight), 1, 5, Vector2.New(20, 60))
self.scrollView.moveTween.MomentumAmount = 1
self.scrollView.moveTween.Strength = 2
self.itemList = {}
self.maskList = {}
--wishList
self.wishListObj = {}
self.bgObjlist = {}
for i = 1, 3 do
self.wishListObj[i] = Util.GetGameObject(gameObject, "wishList/hero (" .. i .. ")")
self.bgObjlist[i] = Util.GetGameObject(gameObject, "Bg/bglist/obj" .. i)
Util.GetGameObject(self.bgObjlist[i], "frame"):GetComponent("Image").sprite = self.spLoader:LoadSprite(
"r_characterbg_goden")
--心愿神将现在只显示一个
if i > 1 then
self.wishListObj[i]:SetActive(false)
self.bgObjlist[i]:SetActive(false)
else
self.wishListObj[i]:SetActive(true)
self.bgObjlist[i]:SetActive(true)
end
end
--tabList
self.tabListObj = {}
self.selectBtn = Util.GetGameObject(gameObject, "Tabs/grid/selectBtn")
for j = 1, 4 do
self.maskList[j] = {}
self.itemList[j] = {}
self.tabListObj[j] = Util.GetGameObject(gameObject, "Tabs/grid/Btn" .. j)
end
Util.GetGameObject(gameObject, "Tabs"):SetActive(false)
self.helpPosition = self.helpBtn:GetComponent("RectTransform").localPosition
end
function this:BindEvent()
for i = 1, 4 do
Util.AddOnceClick(self.tabListObj[i], function()
self.curSelect = i
this:Refresh(true, false)
end)
end
for i = 1, 3 do
Util.AddOnceClick(self.bgObjlist[i], function()
--心愿只能选一个神将
if i > 1 then
return
end
self.curSelect = RecruitManager.CheckIndex()
this:Refresh(true, false)
end)
end
Util.AddOnceClick(self.okBtn, function()
LogError("点击确定按钮")
self.parent:ClosePanel()
end)
--帮助按钮
Util.AddClick(self.helpBtn, function()
LogError("点击帮助按钮")
UIManager.OpenPanel(UIName.HelpPopup, HELP_TYPE.WishCard, self.helpPosition.x, self.helpPosition.y)
end)
end
function this:AddListener()
end
function this:RemoveListener()
end
function this:OnShow(_parent, _Data)
self.parent = _parent
self.sortingOrder = _parent.sortingOrder
local args = _Data
--NetManager.ChoiceWishHeroRequest(nil,function ()
if args[1] then
self.curSelect = args[1]
else
self.curSelect = 1 -- RecruitManager.CheckIndex()
end
this:Refresh(true, false)
--end)
end
function this:Refresh(isTop, isAni)
local data = tonumber(specialConfig[119].Value)
if not RecruitManager.drawTimes[15] or RecruitManager.drawTimes[15] < data then
self.parent:ClosePanel()
return
end
--local aaa = string.format(Language[11085], RecruitManager.GetWishPro(), "%")
--self.infoTxt.text = aaa
2026-04-10 18:36:20 +08:00
self.infoTxt.text = "<size=22>每次抽中整<size=25><color=#31FF00>50</color></size>羁绊碎片时,<size=25><color=#31FF00>100%概率</color></size>替换为选中的心愿羁绊碎片*50</size>"
2026-04-10 18:13:29 +08:00
self.selectBtn:SetActive(false)
--self.selectBtn:GetComponent("RectTransform").localPosition = self.tabListObj[self.curSelect]:GetComponent("RectTransform").localPosition
this:SetHeroList(isTop, isAni)
this:SetUpHero()
end
function this:SetUpHero()
for i = 1, 1 do
local go = self.wishListObj[i]
local frame = Util.GetGameObject(go, "frame"):GetComponent("Image")
local icon = Util.GetGameObject(go, "icon"):GetComponent("Image")
local proIcon = Util.GetGameObject(go, "proIcon"):GetComponent("Image")
local starGrid = Util.GetGameObject(go, "star")
local choosed = Util.GetGameObject(go, "choosed")
local heroId = 0
if RecruitManager.WishJulingData[i] then
heroId = RecruitManager.WishJulingData[i].heroTid
end
choosed:SetActive(false)
if heroId > 0 then
go:SetActive(true)
local heroData = itemConfig[heroId]
frame.sprite = self.spLoader:LoadSprite(GetBgByHeroNatural(heroData.Quantity))
icon.sprite = self.spLoader:LoadSprite(GetResourcePath(heroData.ResourceID))
proIcon.gameObject:SetActive(false)
--proIcon.sprite = self.spLoader:LoadSprite(GetProStrImageByProNum(heroData.Name))
--SetHeroStars(self.spLoader,starGrid, heroData.Star)
choosed:SetActive(RecruitManager.WishJulingData[i].status == 1)
Util.AddOnceClick(go, function()
if RecruitManager.WishJulingData[i].status == 1 then
PopupTipPanel.ShowTip(Language[11082])
elseif RecruitManager.WishJulingData[i].status == 0 then
RecruitManager.ChangeJuling(2, heroId, function()
this:Refresh(false, false)
end) --英雄变更1增加、2卸下
end
end)
else
go:SetActive(false)
end
--LogError("i===================" .. i)
if i > 1 then
self.wishListObj[i]:SetActive(false)
--LogError("false false")
end
Util.AddLongPressClick(go, function()
UIManager.OpenPanel(UIName.RoleGetInfoPopup, false, heroId, 5)
end, 0.5)
end
end
function this:SetHeroList(isTop, isAni)
local heroList = RecruitManager.allTailsMansJuling --RecruitManager.GetCurHeroTalismanaList(0)
self.scrollView:SetData(heroList, function(index, item)
this:ShowSingleHero(item, heroList[index], index)
end, not isTop, not isAni)
end
function this:ShowSingleHero(go, data, index)
local equipId = data
local heroData = itemConfig[equipId]
self.itemList[self.curSelect][index] = go
Util.GetGameObject(go, "frame"):GetComponent("Image").sprite = self.spLoader:LoadSprite(GetBgByHeroNatural(heroData
.Quantity))
Util.GetGameObject(go, "icon"):GetComponent("Image").sprite = self.spLoader:LoadSprite(GetResourcePath(heroData
.ResourceID))
--Util.GetGameObject(go, "proIcon"):GetComponent("Image").sprite = self.spLoader:LoadSprite(GetProStrImageByProNum(heroData.PropertyName))
Util.GetGameObject(go, "proIcon"):SetActive(false)
Util.GetGameObject(go, "name"):GetComponent("Text").text = GetLanguageStrById(heroData.Name)
Util.GetGameObject(go, "heroName"):GetComponent("Text").text = GetLanguageStrById(itemConfig[data].Name)
Util.GetGameObject(go, "name").gameObject:SetActive(false)
local starGrid = Util.GetGameObject(go, "star")
-- SetHeroStars(self.spLoader,starGrid, heroData.Star)
self.maskList[self.curSelect][index] = Util.GetGameObject(go, "choosed")
self.maskList[self.curSelect][index]:SetActive(false)
Util.SetGray(self.itemList[self.curSelect][index], false)
local value = RecruitManager.CheckCurJulingmanaState(equipId)
if value == 0 then --上方存在相同阵营
Util.SetGray(self.itemList[self.curSelect][index], true)
Util.AddOnceClick(go, function()
--PopupTipPanel.ShowTip("同系法宝只可选择一位~")
2026-04-10 18:41:59 +08:00
PopupTipPanel.ShowTip("心愿羁绊已满~")
2026-04-10 18:13:29 +08:00
end)
elseif value == 2 then --上方选满
Util.SetGray(self.itemList[self.curSelect][index], true)
Util.AddOnceClick(go, function()
2026-04-10 18:41:59 +08:00
PopupTipPanel.ShowTip("心愿羁绊已满~")
2026-04-10 18:13:29 +08:00
end)
elseif value == 1 then --上方存在自己
self.maskList[self.curSelect][index]:SetActive(true)
Util.AddOnceClick(go, function()
RecruitManager.ChangeJuling(2, equipId, function()
this:Refresh(false, false)
end) --英雄变更1增加、2卸下
end)
elseif value == 4 then --上方存在自己,但已经出过该英雄了
self.maskList[self.curSelect][index]:SetActive(true)
Util.AddOnceClick(go, function()
2026-04-10 18:41:59 +08:00
PopupTipPanel.ShowTip("同系羁绊每日只可选择一个获取一次概率提升~")
2026-04-10 18:13:29 +08:00
end)
elseif value == 3 then --可选
Util.AddOnceClick(go, function()
RecruitManager.ChangeJuling(1, equipId, function()
this:Refresh(false, false)
end) --英雄变更1增加、2卸下
end)
end
Util.AddLongPressClick(go, function()
UIManager.OpenPanel(UIName.RewardItemSingleShowPopup, heroData.Id)
--UIManager.OpenPanel(UIName.RoleGetInfoPopup, false, data, 5)
end, 0.5)
end
function this:OnClose()
end
function this:OnDestroy()
self.itemList = {}
self.maskList = {}
self.wishListObj = {}
self.tabListObj = {}
self.spLoader:Destroy()
end
return this