580 lines
23 KiB
Lua
580 lines
23 KiB
Lua
local Gem = quick_class("Gem", BasePanel)
|
|
local itemData = ConfigManager.GetConfig(ConfigName.ItemConfig)
|
|
local gemConfig = ConfigManager.GetConfig(ConfigName.GemConfig)
|
|
local PropertyConfig = ConfigManager.GetConfig(ConfigName.PropertyConfig)
|
|
local artResourcesConfig= ConfigManager.GetConfig(ConfigName.ArtResourcesConfig)
|
|
local itemConfig=ConfigManager.GetConfig(ConfigName.ItemConfig)
|
|
local gemLottery=ConfigManager.GetConfig(ConfigName.GemLotteryConfig)
|
|
local typeName = {
|
|
[1] = "攻击",[2] = "生命",[3] = "护甲",[4] = "魔抗",[5] = "攻击",[6] = "生命",[7] = "护甲",[8] = "魔抗",
|
|
}
|
|
local imgName = {
|
|
[1] = "m_mingge_gongji",[2] = "m_mingge_shengming",[3] = "m_mingge_zengshang",[4] = "m_mingge_shanghai",
|
|
[5] = "m_mingge_renjie",[6] = "m_mingge_pochan",[7] = "m_mingge_yaoling",[8] = "m_mingge_daoxuan",
|
|
}
|
|
|
|
--抽卡类型
|
|
local drawType={
|
|
[1] = { 162,163},
|
|
[2] = { 164,165}
|
|
}
|
|
local TabBox = require("Modules/Common/TabBox")
|
|
local _TabData={
|
|
--[1] = { default = "UI_hz_gonghui_31", select = "UI_hz_gonghui_31", name="修行", type=0,funcId=136 },
|
|
[1] = { default = "UI_hz_gonghui_32", select = "UI_hz_gonghui_32", name="命格", type=1, funcId=144 },
|
|
[2] = { default = "UI_hz_gonghui_33", select = "UI_hz_gonghui_33", name="高级命格", type=2,funcId=145},
|
|
}
|
|
local TabAdapter=nil
|
|
local SwitchView=nil
|
|
local curType=1
|
|
local activityId=0
|
|
local progresss=0
|
|
local wishLv=0
|
|
local oldWarPower=0
|
|
local redList={}
|
|
local drawLimit=nil
|
|
function Gem:InitComponent()
|
|
self.spLoader = SpriteLoader.New()
|
|
if not self.playerInfoView then
|
|
self.playerInfoView = SubUIManager.Open(SubUIConfig.PlayerInfoView, self.transform)
|
|
end
|
|
--self.BtView = SubUIManager.Open(SubUIConfig.BtView, self.transform)
|
|
self.UpView = SubUIManager.Open(SubUIConfig.UpView, self.transform)
|
|
--MidPart
|
|
self.mid = Util.GetGameObject(self.gameObject, "Mid")
|
|
self.img = Util.GetGameObject(self.mid, "Man"):GetComponent("Image")
|
|
self.ManCanvas = Util.GetGameObject(self.mid, "Man"):GetComponent("Canvas")
|
|
self.fx_ui_xiuxingshengxin_cangzhu = Util.GetGameObject(self.gameObject, "Bg/fx_ui_xiuxingshengxin_cangzhu")
|
|
--Gems
|
|
self.gems = Util.GetGameObject(self.gameObject, "Gems")
|
|
self.stones = Util.GetGameObject(self.gameObject, "Stones")
|
|
self.gemName = Util.GetGameObject(self.gameObject, "Stones/Name/Text"):GetComponent("Text")
|
|
self.itemList = {}
|
|
self.propertyList = {}
|
|
self.lightList = {}
|
|
self.btns={}
|
|
for i = 1,2 do
|
|
self.btns[i] = {}
|
|
self.btns[i].btn = Util.GetGameObject(self.gameObject,"btngroup/btn"..i)
|
|
--self.btns[i].layoutDi = Util.GetGameObject(self.btns[i].btn.gameObject,"layout/di"):GetComponent("Image")
|
|
--self.btns[i].layoutDi.sprite=self.spLoader:LoadSprite("z_zhaohuan_xiaohaodi_1")
|
|
self.btns[i].red = Util.GetGameObject(self.btns[i].btn.gameObject,"redPoint")
|
|
self.btns[i].info = Util.GetGameObject(self.btns[i].btn.gameObject,"layout/Text"):GetComponent("Text")
|
|
self.btns[i].icon = Util.GetGameObject(self.btns[i].btn.gameObject,"layout/icon"):GetComponent("Image")
|
|
self.btns[i].num = Util.GetGameObject(self.btns[i].btn.gameObject,"layout/num"):GetComponent("Text")
|
|
self.btns[i].time = Util.GetGameObject(self.btns[i].btn.gameObject,"time"):GetComponent("Text")
|
|
end
|
|
|
|
--页签
|
|
self.helpBtn = Util.GetGameObject(self.gameObject, "helpBtn")
|
|
self.helpPosition=self.helpBtn:GetComponent("RectTransform").localPosition
|
|
self.additionBtn = Util.GetGameObject(self.gameObject, "additionBtn")
|
|
self.curType = 1
|
|
local specialConfig = ConfigManager.GetConfigData(ConfigName.SpecialConfig,169).Value
|
|
LogError("value=================================="..specialConfig)
|
|
drawLimit = string.split(specialConfig,"#")
|
|
--页签
|
|
self.tab = Util.GetGameObject(self.gameObject, "TabBox")
|
|
|
|
TabAdapter=function(tab, index, status)
|
|
local tabLab = Util.GetGameObject(tab, "Text")
|
|
Util.GetGameObject(tab,"Image"):GetComponent("Image").sprite = self.spLoader:LoadSprite(_TabData[index][status])
|
|
local selectObj=Util.GetGameObject(tab,"select")
|
|
tabLab:GetComponent("Text").text = _TabData[index].name
|
|
local red=Util.GetGameObject(tab,"Redpot")
|
|
if index==2 then
|
|
red:SetActive(GemNewManager.CheckGemRed())
|
|
elseif index==3 then
|
|
red:SetActive(GemNewManager.CheckSuperGemRed())
|
|
end
|
|
selectObj:SetActive(status=="select")
|
|
redList[index]=red
|
|
end
|
|
--切换视图
|
|
SwitchView=function(_index)
|
|
local isOpen=CheckFunctionOpen(_TabData[_index].funcId)
|
|
local tip=GetFunctionOpenTip(_TabData[_index].funcId)
|
|
if not isOpen then
|
|
PopupTipPanel.ShowTip(tip)
|
|
return
|
|
end
|
|
self:UpdatePanelData(_TabData[_index].type)
|
|
end
|
|
self.TabCtrl = TabBox.New()
|
|
self.TabCtrl:SetTabAdapter(TabAdapter)
|
|
self.TabCtrl:SetChangeTabCallBack(SwitchView)
|
|
|
|
--命石位置
|
|
self.gemPosList={}
|
|
for i=1,8 do
|
|
self.gemPosList[i]={}
|
|
self.gemPosList[i].go=Util.GetGameObject(self.gameObject, "Gems/".."item (" ..i..")" )
|
|
self.gemPosList[i].red=Util.GetGameObject(self.gemPosList[i].go, "RedPoint")
|
|
self.gemPosList[i].red:SetActive(false)
|
|
Util.GetGameObject(self.gemPosList[i].go, "frame/Image"):SetActive(false)
|
|
self.gemPosList[i].frame=Util.GetGameObject(self.gemPosList[i].go, "frame"):GetComponent("Image")
|
|
self.gemPosList[i].icon=Util.GetGameObject(self.gemPosList[i].go, "frame/icon"):GetComponent("Image")
|
|
self.gemPosList[i].btn=Util.GetGameObject(self.gemPosList[i].go, "frame/icon")
|
|
end
|
|
|
|
--宝箱
|
|
self.btn_box=Util.GetGameObject(self.gameObject, "btngroup/rewardBox/Btn")
|
|
self.boxLv=Util.GetGameObject(self.gameObject, "btngroup/rewardBox/di/Text"):GetComponent("Text")
|
|
self.boxIcon=Util.GetGameObject(self.gameObject, "btngroup/rewardBox/boxIcon"):GetComponent("Image")
|
|
|
|
self.boxProgress=Util.GetGameObject(self.gameObject, "btngroup/rewardBox/progress/Text"):GetComponent("Text")
|
|
self.proPreList={}
|
|
for i=1,8 do
|
|
self.propertyList[i]=Util.GetGameObject(self.gameObject, "pro/name ("..i..")"):GetComponent("Text")
|
|
end
|
|
self.btn_close=Util.GetGameObject(self.gameObject,"btn_close")
|
|
self.infoTxt=Util.GetGameObject(self.gameObject,"lotteryInfo"):GetComponent("Text")
|
|
end
|
|
|
|
function Gem:BindEvent()
|
|
--帮助按钮
|
|
Util.AddClick(self.helpBtn, function()
|
|
UIManager.OpenPanel(UIName.HelpPopup, HELP_TYPE.Gem, self.helpPosition.x,self.helpPosition.y)
|
|
end)
|
|
|
|
Util.AddClick(self.btn_box, function()
|
|
UIManager.OpenPanel(UIName.GemRewardInfoPanel,curType,wishLv,progresss,activityId)
|
|
end)
|
|
Util.AddClick(self.btn_close, function()
|
|
UIManager.OpenPanel(UIName.PracticePanel)
|
|
self:ClosePanel()
|
|
end)
|
|
|
|
Util.AddClick(self.additionBtn, function()
|
|
local tempData = GemManager.GetSortAttri()
|
|
if #tempData > 0 then
|
|
UIManager.OpenPanel(UIName.GeneralInfoPopup, GENERALINFO_TYPE.Gem)
|
|
else
|
|
PopupTipPanel.ShowTip("尚无命格属性加成!")
|
|
end
|
|
end)
|
|
|
|
BindRedPointObject(RedPointType.Practice,self.practice_tab)
|
|
BindRedPointObject(RedPointType.Gem,self.gem_tab)
|
|
end
|
|
|
|
function Gem:AddListener()
|
|
Game.GlobalEvent:AddEvent(GameEvent.Gem.RefreshPanel, self.Refresh,self)
|
|
end
|
|
|
|
function Gem:RemoveListener()
|
|
Game.GlobalEvent:RemoveEvent(GameEvent.Gem.RefreshPanel, self.Refresh,self)
|
|
end
|
|
|
|
|
|
|
|
--刷新剩余次数
|
|
function Gem:UpdatePanelData(_type)
|
|
curType=_type
|
|
--宝箱显示
|
|
if _type==1 then
|
|
activityId=12301
|
|
self.boxIcon.sprite=self.spLoader:LoadSprite("UI_hz_zhonghe03_45")
|
|
else
|
|
activityId=12401
|
|
self.boxIcon.sprite=self.spLoader:LoadSprite("UI_hz_zhonghe03_45")
|
|
end
|
|
local isCan=false
|
|
local actconfigs=ActivityGiftManager.GetActivityInfoByType(activityId)
|
|
if actconfigs then
|
|
for i = 1,#actconfigs.mission do
|
|
progresss=actconfigs.mission[i].progress
|
|
--LogError("curtype==============="..curType)
|
|
local config=ConfigManager.GetConfigData(ConfigName.GemLotteryConfig,actconfigs.mission[i].missionId) --ConfigManager.TryGetConfigDataByDoubleKey(ConfigName.GemLotteryConfig,"Library",curType,"Level",actconfigs.mission[i].missionId)
|
|
if actconfigs.mission[i].state==0 and progresss>=config.LibraryNumber then
|
|
--LogError("-------------------------------------------------")
|
|
isCan=true
|
|
break
|
|
end
|
|
end
|
|
end
|
|
local nextNum=0
|
|
--LogError("progress==============="..progresss)
|
|
self.boxIcon.gameObject:GetComponent("Animator").enabled = isCan
|
|
local curBoxConfig=ConfigManager.TryGetAllConfigsDataByKey(ConfigName.GemLotteryConfig,"Library",_type)
|
|
if curBoxConfig then
|
|
for i=1,#curBoxConfig do
|
|
if curBoxConfig[i].Library==_type and progresss>= curBoxConfig[i].LibraryNumber then
|
|
wishLv=curBoxConfig[i].Level
|
|
else
|
|
nextNum=curBoxConfig[i].LibraryNumber
|
|
break
|
|
end
|
|
end
|
|
-- for i, v in ConfigPairs(curBoxConfig) do
|
|
-- if v.Library==_type and progresss>= v.LibraryNumber then
|
|
-- wishLv=v.Level
|
|
-- else
|
|
-- nextNum=v.LibraryNumber
|
|
-- break
|
|
-- end
|
|
-- end
|
|
end
|
|
if _type==1 then
|
|
self.boxLv.text="命格等级:"..wishLv
|
|
else
|
|
self.boxLv.text="高级命格等级:"..wishLv
|
|
end
|
|
LogError("_type==============================".._type)
|
|
self.infoTxt.text="今日抽取上限:"..GemNewManager.gemLottery[_type].."/"..drawLimit[_type]
|
|
LogError("nextnum==="..nextNum.." progersss=="..progresss)
|
|
if nextNum==0 and progresss~=0 then
|
|
self.boxProgress.text="宝箱已达最大等级"
|
|
else
|
|
self.boxProgress.text=progresss.."/"..nextNum
|
|
end
|
|
|
|
--设置命石属性
|
|
local proList=GemNewManager.GetProListByType(_type)
|
|
for i =1,8 do
|
|
if i<=#proList then
|
|
self.propertyList[i].gameObject:SetActive(true)
|
|
else
|
|
self.propertyList[i].gameObject:SetActive(false)
|
|
end
|
|
end
|
|
local index=0
|
|
for k, v in pairs(proList) do
|
|
local str=""
|
|
index=index+1
|
|
self.propertyList[index].gameObject:SetActive(true)
|
|
if PropertyConfig[k].Style==1 then
|
|
str=string.format( "<color=#00FF00>%s+%s</color>",PropertyConfig[k].Info,v)
|
|
elseif PropertyConfig[k].Style==2 then
|
|
str=string.format( "<color=#00FF00>%s+%s%s</color>",PropertyConfig[k].Info,v/100,"%")
|
|
end
|
|
self.propertyList[index].text=str
|
|
end
|
|
--命石显示
|
|
local list=GemNewManager.GetGemListByType(_type)
|
|
for i=1,#self.gemPosList do
|
|
local index=i
|
|
if _type==2 then
|
|
index=i+8
|
|
end
|
|
if list[index] then
|
|
self.gemPosList[i].icon.gameObject:SetActive(true)
|
|
self.gemPosList[i].frame.sprite=self.spLoader:LoadSprite(list[index].frame)
|
|
self.gemPosList[i].icon.sprite=self.spLoader:LoadSprite(list[index].icon)
|
|
Util.AddClick(self.gemPosList[i].btn, function()
|
|
UIManager.OpenPanel(UIName.RewardGemSingleShowPopup,list[index],3)
|
|
end)
|
|
else
|
|
self.gemPosList[i].frame.sprite=self.spLoader:LoadSprite("r_characterbg_gray")
|
|
self.gemPosList[i].icon.gameObject:SetActive(false)
|
|
end
|
|
end
|
|
|
|
|
|
if _type==1 then
|
|
redList[_type+1]:SetActive(GemNewManager.CheckGemRed())
|
|
elseif _type==2 then
|
|
redList[_type+1]:SetActive(GemNewManager.CheckSuperGemRed())
|
|
end
|
|
--按钮赋值
|
|
for n, m in ipairs(self.btns) do
|
|
--存在免费次数 并且 免费>=1 并且是1按钮
|
|
local isFree= false
|
|
m.icon.gameObject:SetActive(not isFree)
|
|
m.num.gameObject:SetActive(not isFree)
|
|
local itemId=0
|
|
local itemNum=0
|
|
if n == 1 then
|
|
--type = self.singleConfig.Id
|
|
m.info.text = "1次"
|
|
m.time.gameObject:SetActive(true)
|
|
m.red.gameObject:SetActive(false)
|
|
else
|
|
m.time.gameObject:SetActive(false)
|
|
m.info.text = "10次"
|
|
m.red.gameObject:SetActive(false)
|
|
end
|
|
--if self.config.ShopData[1][1] == TableRecruitType.Youqing then
|
|
m.time.gameObject:SetActive(false)
|
|
--end
|
|
local d = {}
|
|
local costId = drawType[_type][n]
|
|
local str= ConfigManager.GetConfigData(ConfigName.SpecialConfig,costId).Value
|
|
str=StringToTable(str)
|
|
d = RecruitManager.GetExpendDataByCostItem(str,n,100)
|
|
if (isFree) then
|
|
m.time.gameObject:SetActive(false)
|
|
m.info.text="免费召唤"
|
|
else
|
|
-- local d = RecruitManager.GetExpendData(type)
|
|
itemId=d[1]
|
|
itemNum=d[2]
|
|
m.icon.sprite=self.spLoader:LoadSprite(artResourcesConfig[itemConfig[itemId].ResourceID].Name)
|
|
m.num.text= PrintWanNum2(itemNum)
|
|
end
|
|
|
|
Util.AddOnceClick(m.btn,function()
|
|
if not isFree then
|
|
if BagManager.GetItemCountById(itemId)<itemNum then
|
|
PopupTipPanel.ShowTip(itemConfig[itemId].Name.."数量不足!")
|
|
return
|
|
end
|
|
end
|
|
|
|
local state = PlayerPrefs.GetInt(PlayerManager.uid.."GeneralPopup_RecruitConfirm"..1111)
|
|
-- local recrutId = n == 1 and self.singleConfig.Id or self.tenConfig.Id
|
|
local recrutNum = n == 1 and 1 or 10
|
|
-- if state==0 and itemId == 16 and not isFree then
|
|
-- UIManager.OpenPanel(UIName.GeneralPopup,GENERAL_POPUP_TYPE.RecruitConfirm,recrutId,function()
|
|
-- self:Recruit(_type,recrutNum)
|
|
-- end)
|
|
-- else
|
|
self:Recruit(_type,recrutNum,costId)
|
|
--end
|
|
end)
|
|
end
|
|
|
|
-- HeroPropManager.SetFuncPropDirty(Func_Prop_Type.Gem)
|
|
-- --获取新战力
|
|
-- NetManager.RequestUserForceChange(FormationTypeDef.FORMATION_NORMAL)
|
|
-- local tempPower = FormationManager.GetFormationPower(FormationTypeDef.FORMATION_NORMAL)
|
|
-- LogError("oldwar===="..oldWarPower.." temppower=="..tempPower)
|
|
-- if oldWarPower ~= tempPower then
|
|
-- oldWarPower=tempPower
|
|
-- UIManager.OpenPanel(UIName.WarPowerChangeNotifyPanelV2,{oldValue = oldWarPower,newValue = tempPower})
|
|
-- end
|
|
end
|
|
|
|
|
|
function Gem:Recruit(recrutType,num,costId)
|
|
|
|
NetManager.GemNewDrawRequest(recrutType,num,function(msg)
|
|
if num == 1 then
|
|
UIManager.OpenPanel(UIName.WishGemBuyOnePanel,msg.drop,recrutType,costId,activityId)
|
|
else
|
|
UIManager.OpenPanel(UIName.WishGemBuyTenPanel,msg.drop,recrutType,costId,activityId)
|
|
end
|
|
--GemManager.gemLottery[recrutType]=GemManager.gemLottery[recrutType]+num
|
|
--LogError("recrutType===="..recrutType.." num==="..num)
|
|
--CheckRedPointStatus(self.config.RpType)
|
|
end)
|
|
|
|
end
|
|
--待功能扩展(试图打开某个状态)
|
|
function Gem:OnOpen()
|
|
self.UpView:OnOpen({ showType = UpViewOpenType.ShowRight, panelType = PanelType.Gem })
|
|
--self.BtView:OnOpen(self,{ sortOrder = self.sortingOrder, panelType = PanelTypeView.Practice })
|
|
self.TabCtrl:Init(self.tab, _TabData,2)
|
|
|
|
end
|
|
|
|
function Gem:OnSortingOrderChange()
|
|
--self.BtView:OnOpen(self,{ sortOrder = self.sortingOrder, panelType = PanelTypeView.Practice })
|
|
self.ManCanvas.sortingOrder = self.sortingOrder + 2
|
|
Util.SetParticleSortLayer(self.fx_ui_xiuxingshengxin_cangzhu, self.sortingOrder + 1)
|
|
-- 头像层级
|
|
if self.playerInfoView then
|
|
self.playerInfoView:SetLayer(self.sortingOrder)
|
|
end
|
|
end
|
|
|
|
function Gem:OnShow()
|
|
|
|
oldWarPower = FormationManager.GetFormationPower(FormationTypeDef.FORMATION_NORMAL)
|
|
GemNewManager.oldPower=oldWarPower
|
|
LogError("oldWarPower====================="..oldWarPower)
|
|
self.playerInfoView:OnShow()
|
|
Util.SetParticleSortLayer(self.fx_ui_xiuxingshengxin_cangzhu, self.sortingOrder + 1)
|
|
--self:Refresh()
|
|
self:UpdatePanelData(curType)
|
|
|
|
|
|
end
|
|
function Gem:Refresh()
|
|
CheckRedPointStatus(RedPointType.Gem)
|
|
self:UpdatePanelData(curType)
|
|
--self:RefreshMid()
|
|
--self:SetGems()
|
|
--self:SetStones(GemManager.myGemList[self.curType],self.curType)
|
|
|
|
end
|
|
|
|
--刷新中部人物
|
|
function Gem:RefreshMid()
|
|
local playerImg ="x_xiuxing_liangongren_nan" -- NameManager.roleSex == 0 and "x_xiuxing_liangongren_nan" or "x_xiuxing_liangongren_nv"
|
|
--self.img.sprite = self.spLoader:LoadSprite(playerImg)
|
|
self.ManCanvas.sortingOrder = self.sortingOrder + 2
|
|
end
|
|
|
|
--设置中部宝石数据
|
|
function Gem:SetGems()
|
|
local gemData = GemManager.myGemList
|
|
for i = 1, 8 do
|
|
local itemGo = Util.GetGameObject(self.gems,"item ("..i..")")
|
|
local nameImg = Util.GetGameObject(itemGo,"Name"):GetComponent("Text")
|
|
local redPoint = Util.GetGameObject(itemGo,"RedPoint")
|
|
self.lightList[i] = Util.GetGameObject(itemGo,"Light")
|
|
nameImg.text = typeName[i]
|
|
redPoint:SetActive(false)
|
|
for j = 1, 3 do
|
|
local stoneGo = Util.GetGameObject(itemGo,"stone ("..j..")")
|
|
local level = Util.GetGameObject(stoneGo,"Text"):GetComponent("Text")
|
|
local icon = Util.GetGameObject(stoneGo,"icon"):GetComponent("Image")
|
|
local img = Util.GetGameObject(stoneGo,"icon"):GetComponent("Image")
|
|
local name = nil
|
|
level.text = ""
|
|
if gemData[i] and gemData[i][j] and gemData[i][j] > 0 then
|
|
name = GetSpriteNameByItemId(gemData[i][j])
|
|
level.text = gemConfig[gemData[i][j]].Level
|
|
end
|
|
|
|
--红点和命石icon
|
|
local redPointData = GemManager.GetGemsFromBagByType(i)
|
|
if name ~= nil then--装备了命石
|
|
icon.gameObject:SetActive(true)
|
|
icon.sprite = self.spLoader:LoadSprite(name)
|
|
local numInBag = BagManager.GetTotalItemNum(gemData[i][j])
|
|
for key, value in pairs(redPointData) do--有更高级的命石红点显示
|
|
if value.id > gemData[i][j] then
|
|
redPoint:SetActive(true)
|
|
break
|
|
end
|
|
if numInBag + 1 > gemConfig[gemData[i][j]].UpgradeNum and gemConfig[gemData[i][j]].NextGem > 0 then
|
|
redPoint:SetActive(true)
|
|
break
|
|
end
|
|
end
|
|
else
|
|
icon.gameObject:SetActive(false)
|
|
for key, value in pairs(redPointData) do--有多余命石,红点显示
|
|
if value.num > 0 then
|
|
redPoint:SetActive(true)
|
|
break
|
|
end
|
|
end
|
|
end
|
|
end
|
|
Util.AddOnceClick(itemGo,function ()
|
|
self.curType = i
|
|
self:SetStones(gemData[i],i)
|
|
end)
|
|
end
|
|
end
|
|
|
|
--设置下部宝石数据
|
|
function Gem:SetStones(_data,index)
|
|
|
|
local data = _data
|
|
local redPointData = GemManager.GetGemsFromBagByType(index)
|
|
self.gemName.text = typeName[index].."命格"
|
|
for i = 1, #self.lightList do
|
|
self.lightList[i]:SetActive(self.curType == i)
|
|
end
|
|
for i = 1, 3 do
|
|
local stoneGo = Util.GetGameObject(self.stones,"Stone ("..i..")")
|
|
local item = Util.GetGameObject(stoneGo,"Item")
|
|
local mask = Util.GetGameObject(stoneGo,"Mask")
|
|
local property = Util.GetGameObject(stoneGo,"Property")
|
|
local textPre = Util.GetGameObject(property,"Text")
|
|
local name = Util.GetGameObject(stoneGo,"Name"):GetComponent("Text")
|
|
local redPoint = Util.GetGameObject(stoneGo,"RedPoint")
|
|
|
|
textPre:GetComponent("Text").text = ""
|
|
textPre:SetActive(false)
|
|
property:SetActive(false)
|
|
item:SetActive(false)
|
|
redPoint:SetActive(false)
|
|
name.text = ""
|
|
if data and data[i] and data[i] > 0 then
|
|
if not self.itemList[i] then
|
|
local view = SubUIManager.Open(SubUIConfig.ItemView,item.transform)
|
|
self.itemList[i] = view
|
|
end
|
|
self.itemList[i]:OnOpen(false, {data[i],0}, 1.1, false,false,false,self.sortingOrder + 1)
|
|
self.itemList[i].gameObject:SetActive(true)
|
|
item:SetActive(true)
|
|
name.text = gemConfig[data[i]].Name
|
|
self:SetProperty(gemConfig[data[i]],data,property,textPre)
|
|
|
|
local numInBag = BagManager.GetTotalItemNum(data[i])
|
|
--红点
|
|
for key, value in pairs(redPointData) do--有更高级的命石红点显示
|
|
if value.id > data[i] then
|
|
redPoint:SetActive(true)
|
|
break
|
|
end
|
|
if numInBag + 1 >= gemConfig[data[i]].UpgradeNum and gemConfig[data[i]].NextGem > 0 then
|
|
redPoint:SetActive(true)
|
|
break
|
|
end
|
|
end
|
|
else
|
|
for key, value in pairs(redPointData) do--有多余命石,红点显示
|
|
if value.num > 0 then
|
|
redPoint:SetActive(true)
|
|
break
|
|
end
|
|
end
|
|
end
|
|
Util.AddOnceClick(mask,function ()
|
|
if data and data[i] and data[i] > 0 then
|
|
UIManager.OpenPanel(UIName.RewardGemSingleShowPopup,data[i],2,nil,index,i)
|
|
else
|
|
UIManager.OpenPanel(UIName.GeneralBigPopup,GENERAL_POPUP_TYPE.SelectGem,index,i)
|
|
end
|
|
end)
|
|
end
|
|
end
|
|
|
|
function Gem:SetProperty(configData,data,parent,text)
|
|
if not configData then
|
|
return
|
|
end
|
|
if not self.propertyList[parent] then
|
|
self.propertyList[parent] = {}
|
|
end
|
|
for k = 1, #self.propertyList[parent] do
|
|
self.propertyList[parent][k]:SetActive(false)
|
|
end
|
|
for j = 1, #configData.Property do
|
|
local data = configData.Property[j]
|
|
local item = self.propertyList[parent][j]
|
|
parent:SetActive(true)
|
|
if not item then
|
|
item = newObjToParent(text,parent.transform)
|
|
self.propertyList[parent][j] = item
|
|
end
|
|
item:SetActive(true)
|
|
local str=""
|
|
if PropertyConfig[data[1]].Style==1 then
|
|
str=string.format( "全体神将%s+%s",PropertyConfig[data[1]].Info,data[2])
|
|
elseif PropertyConfig[data[1]].Style==2 then
|
|
str=string.format( "全体神将%s+%s",PropertyConfig[data[1]].Info,data[2]/100).."%"
|
|
end
|
|
item:GetComponent("Text").text = str -- string.format( "%s+%s",PropertyConfig[data[1]].Info,data[2]/100).."%"
|
|
end
|
|
end
|
|
|
|
function Gem:OnClose()
|
|
self.lightList = {}
|
|
end
|
|
|
|
function Gem:OnDestroy()
|
|
self.spLoader:Destroy()
|
|
SubUIManager.Close(self.UpView)
|
|
--SubUIManager.Close(self.BtView)
|
|
ClearRedPointObject(RedPointType.Practice,self.practice_tab)
|
|
ClearRedPointObject(RedPointType.Gem,self.gem_tab)
|
|
self.UpView = nil
|
|
--self.BtView = nil
|
|
if self.playerInfoView then
|
|
SubUIManager.Close(self.playerInfoView)
|
|
self.playerInfoView = nil
|
|
end
|
|
redList={}
|
|
self.itemList = {}
|
|
self.propertyList = {}
|
|
self.lightList = {}
|
|
end
|
|
|
|
return Gem |