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

201 lines
7.8 KiB
Lua
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

----- 心愿抽卡弹窗 -----
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.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,
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("t_tongyong_topkaung")
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.okBtn = Util.GetGameObject(gameObject,"okBtn")
self.helpBtn = Util.GetGameObject(gameObject, "helpBtn")
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 ()
self.curSelect = RecruitManager.CheckIndex()
this:Refresh(true,false)
end)
end
Util.AddOnceClick(self.okBtn,function ()
self.parent:ClosePanel()
end)
--帮助按钮
Util.AddClick(self.helpBtn, function()
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,true)
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()
end
function this:SetUpHero()
for i = 1, 3 do
local go = self.wishListObj[i]
local frame = Util.GetGameObject(go, "frame"):GetComponent("Image")
frame.sprite = self.spLoader:LoadSprite("t_tongyong_topkaung")
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]
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
go:SetActive(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("t_tongyong_topkaung")
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)
elseif value == 4 then--上方存在自己,但已经出过该英雄了
self.maskList[self.curSelect][index]:SetActive(true)
Util.AddOnceClick(go,function ()
PopupTipPanel.ShowTip("同系神将每日只可选择一位获取一次概率提升~")
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