246 lines
9.2 KiB
Lua
246 lines
9.2 KiB
Lua
----- 心愿抽卡弹窗 -----
|
||
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.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.infoTxt2 = Util.GetGameObject(gameObject, "Bg/tiao2/Text (1)"):GetComponent("Text")
|
||
self.infoTxt2.text = Language[11080]
|
||
self.scrollView = SubUIManager.Open(SubUIConfig.ScrollCycleView, self.scroll.transform,
|
||
self.itemPre, nil, Vector2.New(width, rootHight), 1, 5, Vector2.New(20, 45))
|
||
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
|
||
|
||
|
||
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 = RecruitManager.CheckIndex()
|
||
end
|
||
this:Refresh(true, false)
|
||
--end)
|
||
end
|
||
|
||
function this:Refresh(isTop, isAni)
|
||
local data = tonumber(specialConfig[119].Value)
|
||
if not RecruitManager.drawTimes[1] or RecruitManager.drawTimes[1] < data then
|
||
self.parent:ClosePanel()
|
||
end
|
||
|
||
self.selectBtn:GetComponent("RectTransform").localPosition = self.tabListObj[self.curSelect]:GetComponent(
|
||
"RectTransform").localPosition
|
||
this:SetHeroList(isTop, isAni)
|
||
this:SetUpHero()
|
||
local pro, pro1 = RecruitManager.GetWishPro()
|
||
LogError("pro===============" .. pro .. " pro1==" .. pro1)
|
||
local showPro = pro
|
||
if RecruitManager.WishCardData[1] then
|
||
local id = RecruitManager.WishCardData[1].heroTid
|
||
LogError("you yingxiong ======================================" .. id)
|
||
if heroConfig[id] then
|
||
if heroConfig[id].Natural <= 6 then
|
||
showPro = pro
|
||
elseif heroConfig[id].Natural == 7 then
|
||
showPro = pro1
|
||
end
|
||
end
|
||
end
|
||
|
||
local aaa = string.format(Language[11081], showPro, "%")
|
||
self.infoTxt.text = aaa
|
||
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 = RecruitManager.WishCardData[i].heroTid
|
||
choosed:SetActive(false)
|
||
if heroId > 0 then
|
||
go:SetActive(true)
|
||
local heroData = heroConfig[heroId]
|
||
frame.sprite = self.spLoader:LoadSprite(GetBgByHeroNatural(heroData.Natural))
|
||
icon.sprite = self.spLoader:LoadSprite(GetResourcePath(heroData.Icon))
|
||
proIcon.sprite = self.spLoader:LoadSprite(GetProStrImageByProNum(heroData.PropertyName))
|
||
SetHeroStars(self.spLoader, starGrid, heroData.Star)
|
||
choosed:SetActive(RecruitManager.WishCardData[i].status == 1)
|
||
Util.AddOnceClick(go, function()
|
||
if RecruitManager.WishCardData[i].status == 1 then
|
||
PopupTipPanel.ShowTip(Language[11082])
|
||
elseif RecruitManager.WishCardData[i].status == 0 then
|
||
RecruitManager.ChangeHero(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.GetCurHeroList(self.curSelect)
|
||
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 heroData = heroConfig[data.Reward[1]]
|
||
self.itemList[self.curSelect][index] = go
|
||
Util.GetGameObject(go, "frame"):GetComponent("Image").sprite = self.spLoader:LoadSprite(GetBgByHeroNatural(heroData
|
||
.Natural))
|
||
Util.GetGameObject(go, "icon"):GetComponent("Image").sprite = self.spLoader:LoadSprite(GetResourcePath(heroData.Icon))
|
||
Util.GetGameObject(go, "proIcon"):GetComponent("Image").sprite = self.spLoader:LoadSprite(GetProStrImageByProNum(
|
||
heroData.PropertyName))
|
||
Util.GetGameObject(go, "name"):GetComponent("Text").text = GetLanguageStrById(heroData.ReadingName)
|
||
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.CheckCurHeroState(data.Reward[1])
|
||
if value == 0 then --上方存在相同阵营
|
||
Util.SetGray(self.itemList[self.curSelect][index], true)
|
||
Util.AddOnceClick(go, function()
|
||
PopupTipPanel.ShowTip(Language[11083])
|
||
end)
|
||
elseif value == 2 then --上方选满
|
||
Util.SetGray(self.itemList[self.curSelect][index], true)
|
||
Util.AddOnceClick(go, function()
|
||
PopupTipPanel.ShowTip(Language[11084])
|
||
end)
|
||
elseif value == 1 then --上方存在自己
|
||
self.maskList[self.curSelect][index]:SetActive(true)
|
||
Util.AddOnceClick(go, function()
|
||
RecruitManager.ChangeHero(2, data.Reward[1], function()
|
||
this:Refresh(false, false)
|
||
end) --英雄变更:1增加、2卸下
|
||
end)
|
||
elseif value == 4 then --上方存在自己,但已经出过该英雄了
|
||
self.maskList[self.curSelect][index]:SetActive(true)
|
||
Util.AddOnceClick(go, function()
|
||
PopupTipPanel.ShowTip(Language[11082])
|
||
end)
|
||
elseif value == 3 then --可选
|
||
Util.AddOnceClick(go, function()
|
||
RecruitManager.ChangeHero(1, data.Reward[1], function()
|
||
this:Refresh(false, false)
|
||
end) --英雄变更:1增加、2卸下
|
||
end)
|
||
end
|
||
Util.AddLongPressClick(go, function()
|
||
UIManager.OpenPanel(UIName.RoleGetInfoPopup, false, data.Reward[1], 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
|