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

179 lines
7.0 KiB
Lua
Raw Normal View History

2021-06-29 11:30:26 +08:00
----- 心愿抽卡弹窗 -----
local this = {}
2021-06-29 18:10:15 +08:00
local itemConfig = ConfigManager.GetConfig(ConfigName.ItemConfig)
local heroConfig = ConfigManager.GetConfig(ConfigName.HeroConfig)
2021-06-30 10:23:57 +08:00
local specialConfig = ConfigManager.GetConfig(ConfigName.SpecialConfig)
2021-06-29 11:30:26 +08:00
function this:InitComponent(gameObject)
self.spLoader = SpriteLoader.New()
2021-06-29 15:25:05 +08:00
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.scrollView = SubUIManager.Open(SubUIConfig.ScrollCycleView, self.scroll.transform,
2021-06-29 18:10:15 +08:00
self.itemPre, nil, Vector2.New(width, rootHight), 1, 5, Vector2.New(20, 45))
2021-06-29 15:25:05 +08:00
self.scrollView.moveTween.MomentumAmount = 1
self.scrollView.moveTween.Strength = 2
2021-06-29 18:10:15 +08:00
self.itemList = {}
self.maskList = {}
2021-06-29 15:25:05 +08:00
--wishList
self.wishListObj = {}
2021-06-30 13:51:47 +08:00
self.bgObjlist = {}
2021-06-29 15:25:05 +08:00
for i = 1, 3 do
self.wishListObj[i] = Util.GetGameObject(gameObject,"wishList/hero ("..i..")")
2021-06-30 13:51:47 +08:00
self.bgObjlist[i] = Util.GetGameObject(gameObject,"Bg/bglist/obj"..i)
2021-06-29 15:25:05 +08:00
end
--tabList
self.tabListObj = {}
self.selectBtn = Util.GetGameObject(gameObject,"Tabs/grid/selectBtn")
for j = 1, 4 do
2021-06-29 18:10:15 +08:00
self.maskList[j] = {}
self.itemList[j] = {}
2021-06-29 15:25:05 +08:00
self.tabListObj[j] = Util.GetGameObject(gameObject,"Tabs/grid/Btn"..j)
end
2021-06-29 11:30:26 +08:00
2021-06-29 18:10:15 +08:00
end
2021-06-29 11:30:26 +08:00
2021-06-29 15:25:05 +08:00
function this:BindEvent()
for i = 1, 4 do
Util.AddOnceClick(self.tabListObj[i],function ()
self.curSelect = i
2021-06-29 20:29:22 +08:00
this:Refresh(true,false)
2021-06-29 15:25:05 +08:00
end)
end
2021-06-30 13:51:47 +08:00
for i = 1, 3 do
Util.AddOnceClick(self.bgObjlist[i],function ()
self.curSelect = RecruitManager.CheckIndex()
this:Refresh(true,false)
end)
end
2021-06-29 11:30:26 +08:00
end
function this:AddListener()
end
function this:RemoveListener()
end
function this:OnShow(_parent,...)
2021-06-29 15:25:05 +08:00
self.parent=_parent
self.sortingOrder = _parent.sortingOrder
2021-06-29 18:10:15 +08:00
NetManager.ChoiceWishHeroRequest(nil,function ()
2021-06-30 10:23:57 +08:00
self.curSelect = RecruitManager.CheckIndex()
2021-06-29 18:10:15 +08:00
this:Refresh(true,true)
end)
2021-06-29 11:30:26 +08:00
end
2021-06-29 15:25:05 +08:00
function this:Refresh(isTop,isAni)
2021-06-30 10:23:57 +08:00
local data = tonumber(specialConfig[119].Value)
if not RecruitManager.drawTimes[1] or RecruitManager.drawTimes[1] < data then
2021-06-30 10:23:57 +08:00
self.parent:ClosePanel()
end
2021-06-29 15:25:05 +08:00
self.selectBtn:GetComponent("RectTransform").localPosition = self.tabListObj[self.curSelect]:GetComponent("RectTransform").localPosition
2021-06-29 18:10:15 +08:00
this:SetHeroList(isTop,isAni)
this:SetUpHero()
end
function this:SetUpHero()
for i = 1, 3 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
2021-06-30 13:51:47 +08:00
go:SetActive(true)
2021-06-29 18:10:15 +08:00
local heroData = heroConfig[heroId]
frame.sprite = self.spLoader:LoadSprite(GetHeroQuantityImageByquality(heroData.Quality,heroData.Star))
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("同系神将每日只可选择一位获取一次概率提升~")
elseif RecruitManager.WishCardData[i].status == 0 then
RecruitManager.ChangeHero(2,heroId,function ()
this:Refresh(false,false)
end)--英雄变更1增加、2卸下
end
end)
else
2021-06-30 13:51:47 +08:00
go:SetActive(false)
2021-06-29 18:10:15 +08:00
end
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)
2021-06-29 11:30:26 +08:00
end
2021-06-29 18:10:15 +08:00
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(GetHeroQuantityImageByquality(heroData.Quality,heroData.Star))
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 = 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("同系神将只可选择一位~")
end)
elseif value == 2 then--上方选满
Util.SetGray(self.itemList[self.curSelect][index],true)
Util.AddOnceClick(go,function ()
PopupTipPanel.ShowTip("心愿神将已满~")
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)
2021-06-30 10:52:05 +08:00
elseif value == 4 then--上方存在自己,但已经出过该英雄了
self.maskList[self.curSelect][index]:SetActive(true)
Util.AddOnceClick(go,function ()
PopupTipPanel.ShowTip("同系神将每日只可选择一位获取一次概率提升~")
end)
2021-06-29 18:10:15 +08:00
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)
2021-06-29 15:25:05 +08:00
end
2021-06-29 11:30:26 +08:00
function this:OnClose()
end
function this:OnDestroy()
2021-06-29 20:29:22 +08:00
self.itemList = {}
self.maskList = {}
self.wishListObj = {}
2021-06-29 11:30:26 +08:00
self.spLoader:Destroy()
end
return this