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

243 lines
9.5 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.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="英雄<color=#31FF00>每日</color>只可<color=#31FF00>选择并获取一次</color>概率提升"
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("UI_hz_beibao_duigoudi")
--心愿神将现在只显示一个
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("抽到<size=35><color=#31FF00>5星</color></size>神将时,有<size=35><color=#31FF00>%s%s</color></size>几率转化为<size=35><color=#31FF00>心愿神将!</color></size>",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("同系英雄每日只可选择一位获取一次概率提升~")
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 = 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