miduo_client/Assets/ManagedResources/~Lua/Modules/Pokemon/view/PokemonInfoPanel_UpStar.lua

244 lines
11 KiB
Lua

----- 灵兽羁绊 -----
local this = {}
local sortingOrder=0
local isHeroUpStar=false--是否可升星
local isUpStarMaterials=0--升星 材料是否充足
local upStarMaterialsPre = {}
local curPokemonData = {}
local parent
local spiritAnimal = ConfigManager.GetConfig(ConfigName.SpiritAnimal)
function this:InitComponent(gameObject)
this.spLoader = SpriteLoader.New()
Util.GetGameObject(gameObject,"PokemonInfoPanel_UpStar/upStar/Image (1)/Text"):GetComponent("Text").text = Language[11438]
Util.GetGameObject(gameObject,"PokemonInfoPanel_UpStar/upStar/Image (2)/Text"):GetComponent("Text").text = Language[11439]
Util.GetGameObject(gameObject,"PokemonInfoPanel_UpStar/upStar/upStarProInfo/lvUp/Text"):GetComponent("Text").text = Language[11440]
Util.GetGameObject(gameObject,"PokemonInfoPanel_UpStar/upStar/upStarProInfo/skillUp/Text"):GetComponent("Text").text = Language[11441]
this.curStarGrid = Util.GetGameObject(gameObject, "PokemonInfoPanel_UpStar/upStar/upStarProInfo/curStarGrid")
this.nextStarGrid = Util.GetGameObject(gameObject, "PokemonInfoPanel_UpStar/upStar/upStarProInfo/nextStarGrid")
this.curLvEnd = Util.GetGameObject(gameObject,"PokemonInfoPanel_UpStar/upStar/upStarProInfo/lvUp/curLvEnd"):GetComponent("Text")
this.nextLvEnd = Util.GetGameObject(gameObject,"PokemonInfoPanel_UpStar/upStar/upStarProInfo/lvUp/nextLvEnd"):GetComponent("Text")
this.skill1Btn = Util.GetGameObject(gameObject,"PokemonInfoPanel_UpStar/upStar/upStarProInfo/skillUp/Skill1/icon")
this.skill1Icon = Util.GetGameObject(gameObject,"PokemonInfoPanel_UpStar/upStar/upStarProInfo/skillUp/Skill1/icon"):GetComponent("Image")
this.skill1Lv = Util.GetGameObject(gameObject,"PokemonInfoPanel_UpStar/upStar/upStarProInfo/skillUp/Skill1/skillImage/skillLv"):GetComponent("Text")
this.skill2Btn = Util.GetGameObject(gameObject,"PokemonInfoPanel_UpStar/upStar/upStarProInfo/skillUp/Skill2/icon")
this.skill2Icon = Util.GetGameObject(gameObject,"PokemonInfoPanel_UpStar/upStar/upStarProInfo/skillUp/Skill2/icon"):GetComponent("Image")
this.skill2Lv = Util.GetGameObject(gameObject,"PokemonInfoPanel_UpStar/upStar/upStarProInfo/skillUp/Skill2/skillImage/skillLv"):GetComponent("Text")
this.skillTip = Util.GetGameObject(gameObject,"PokemonInfoPanel_UpStar/upStar/tip"):GetComponent("Text")
Util.GetGameObject(gameObject,"PokemonInfoPanel_UpStar/upStar/tip"):SetActive(false)
this.upStarBtn = Util.GetGameObject(gameObject,"PokemonInfoPanel_UpStar/upStar/upStarBtn")
this.upStarBtnRedPoint = Util.GetGameObject(this.upStarBtn,"redPoint")
this.upStar = Util.GetGameObject(gameObject,"PokemonInfoPanel_UpStar/upStar")
this.noUpStarText = Util.GetGameObject(gameObject,"PokemonInfoPanel_UpStar/noUpStarText")
for i = 1, 2 do
upStarMaterialsPre[i] = Util.GetGameObject(gameObject,"PokemonInfoPanel_UpStar/upStar/grid/upStarPre ("..i..")")
end
end
function this:BindEvent()
--升星
Util.AddClick(this.upStarBtn, function()
this.StarUpClick()
end)
end
function this:AddListener()
-- Game.GlobalEvent:AddEvent(GameEvent.Pokemon.PokemonMainPanelRefresh, this.OnShowData)
end
function this:RemoveListener()
-- Game.GlobalEvent:RemoveEvent(GameEvent.Pokemon.PokemonMainPanelRefresh, this.OnShowData)
end
local sortingOrder = 0
function this:OnSortingOrderChange(_sortingOrder)
sortingOrder = _sortingOrder
end
function this:OnShow(_parent,_pokemonData)
parent = _parent
curPokemonData = _pokemonData
this.OnShowData()
end
function this.OnUpdate()
end
local curUpStarSelectPokemonData = {}
--进阶属性提升
function this.OnShowData()
--curPokemonData
local curUpStarConfig = ConfigManager.TryGetConfigDataByDoubleKey(ConfigName.SpiritAnimalStar,"Quality", spiritAnimal[curPokemonData.id].Quality, "Star", curPokemonData.star)
local nextUpStarConfig = nil
if curPokemonData.star < spiritAnimal[curPokemonData.id].MaxStar then
nextUpStarConfig = ConfigManager.TryGetConfigDataByDoubleKey(ConfigName.SpiritAnimalStar,"Quality", spiritAnimal[curPokemonData.id].Quality, "Star", curPokemonData.star + 1)
end
Util.GetGameObject(this.noUpStarText,"Image"):GetComponent("Image").sprite = this.spLoader:LoadSprite("r_hero_qingbao-xingji_zh")
if not nextUpStarConfig then
this.upStar:SetActive(false)
this.noUpStarText:SetActive(true)
parent.RefreshRedPoint(2,false)
this.upStarBtnRedPoint:SetActive(false)
return
else
this.upStar:SetActive(true)
this.noUpStarText:SetActive(false)
end
local star=curPokemonData.star
local starSize=Vector2(50,50)
local type=1
if star>5 then
star=star+6
starSize = Vector2.New(1,-13)
type=3
end
local star2=curPokemonData.star+1
local starSize2=Vector2(50,50)
local type2=1
if star2>5 then
star2=star2+6
starSize2 = Vector2.New(1,-13)
type2=3
end
SetHeroStars(this.spLoader, this.curStarGrid, star,type,starSize)
SetHeroStars(this.spLoader, this.nextStarGrid, star2,type2,starSize2)
Util.SetParticleSortLayer(this.curStarGrid, sortingOrder + 1)
Util.SetParticleSortLayer(this.nextStarGrid,sortingOrder + 1)
this.curLvEnd.text = curUpStarConfig.StarPara / 100 .. "%"
this.nextLvEnd.text = nextUpStarConfig.StarPara / 100 .. "%"
local curSkillId = 0
local nextSkillId = 0
local nextSkillConFig
local skillArray = ConfigManager.GetConfigData(ConfigName.SpiritAnimal,curPokemonData.id).SkillArray
for i = 1, #skillArray do
if skillArray[i][1] == curUpStarConfig.Star then
curSkillId = skillArray[i][2]
end
if skillArray[i][1] == nextUpStarConfig.Star then
nextSkillId = skillArray[i][2]
nextSkillConFig = ConfigManager.GetConfigData(ConfigName.SpiritAnimalSkill,nextSkillId)
this.skill2Icon.sprite = this.spLoader:LoadSprite(GetResourcePath(nextSkillConFig.Icon))
this.skill2Lv.text = nextSkillConFig.Level
Util.AddOnceClick(this.skill2Btn, function()
UIManager.OpenPanel(UIName.PokemonSkillInfoPopup,curPokemonData.id,curPokemonData.lv,curPokemonData.star + 1)
end)
end
end
local curSkillConFig = ConfigManager.GetConfigData(ConfigName.SpiritAnimalSkill,curSkillId)
this.skill1Icon.sprite = this.spLoader:LoadSprite(GetResourcePath(curSkillConFig.Icon))
this.skill1Lv.text = curSkillConFig.Level
Util.AddOnceClick(this.skill1Btn, function()
UIManager.OpenPanel(UIName.PokemonSkillInfoPopup,curPokemonData.id,curPokemonData.lv,curPokemonData.star)
end)
-- if nextSkillId > 0 then
-- this.skillTip.text = "提升预览:"..nextSkillConFig.Name
-- else
-- this.skillTip.text = "已满星"
-- end
local upStarMaterialsData={}
if curUpStarConfig.ConsumeItemNum>0 then
upStarMaterialsData = {{curPokemonData.id,curUpStarConfig.ConsumeItemNum}}
end
for i = 1, #curUpStarConfig.ConsumeRes do
table.insert(upStarMaterialsData,curUpStarConfig.ConsumeRes[i])
end
isUpStarMaterials = 0
curUpStarSelectPokemonData = {}
for i = 1, #upStarMaterialsPre do
local itemParent = Util.GetGameObject(upStarMaterialsPre[i],"itemParent")
local num = Util.GetGameObject(upStarMaterialsPre[i],"num"):GetComponent("Text")
if upStarMaterialsData[i] then
upStarMaterialsPre[i]:SetActive(true)
local configMaterialId = upStarMaterialsData[i][1]
local configMaterialNum = upStarMaterialsData[i][2]
SubUIManager.Open(SubUIConfig.ItemView, itemParent.transform):OnOpen(false, {configMaterialId,0}, 1.3)
local curMaterialBagNum = 0
if spiritAnimal[configMaterialId] then--需要的灵兽
--curUpStarSelectPokemonData = {}
local NoUpLvPokemonData = PokemonManager.GetNoUpLvPokemonData(curPokemonData.id,curPokemonData.dynamicId)
curMaterialBagNum = LengthOfTable(NoUpLvPokemonData)
for i = 1, #NoUpLvPokemonData do
if i <= configMaterialNum then
-- LogPink("NoUpLvPokemonData[i].dynamicId "..NoUpLvPokemonData[i].dynamicId)
table.insert(curUpStarSelectPokemonData,NoUpLvPokemonData[i].dynamicId)
end
end
else--需要的材料
curMaterialBagNum = BagManager.GetItemCountById(upStarMaterialsData[i][1])
end
if curMaterialBagNum < configMaterialNum then
if isUpStarMaterials <= 0 then
isUpStarMaterials = configMaterialId
end
-- go.transform:Find("Image").gameObject:SetActive(true)--显示加号
num.text=string.format("<color=#FF0000FF>%s/%s</color>",PrintWanNum2(curMaterialBagNum),PrintWanNum2(configMaterialNum))
else
-- go.transform:Find("Image").gameObject:SetActive(false)--隐藏加号
num.text=string.format("<color=#FFFFFFFF>%s/%s</color>",PrintWanNum2(curMaterialBagNum),PrintWanNum2(configMaterialNum))
end
else
upStarMaterialsPre[i]:SetActive(false)
end
end
if isUpStarMaterials ~= 0 then
parent.RefreshRedPoint(2,false)
this.upStarBtnRedPoint:SetActive(false)
else
parent.RefreshRedPoint(2,true)
this.upStarBtnRedPoint:SetActive(true)
end
end
--扣除升星 消耗的材料 更新英雄数据
function this.DeleteUpStarMaterials()
if curUpStarSelectPokemonData then
for i = 1, #curUpStarSelectPokemonData do
PokemonManager.RemoveSinglePokemonData(curUpStarSelectPokemonData[i])
end
end
end
--进阶按钮点击事件处理
function this.StarUpClick()
-- LogPink("isUpStarMaterials "..isUpStarMaterials)
if isUpStarMaterials ~= 0 then
PopupTipPanel.ShowTip(""..GetLanguageStrById(ConfigManager.GetConfigData(ConfigName.ItemConfig,isUpStarMaterials).Name)..Language[11437])
return
end
local oldWarPower = FormationManager.GetFormationPower(FormationTypeDef.FORMATION_NORMAL)
NetManager.UpPokemonStarRequest(curPokemonData.dynamicId,curUpStarSelectPokemonData, function()
PokemonManager.UpdateSinglePokemonData(curPokemonData.dynamicId,curPokemonData.lv,curPokemonData.star + 1)
curPokemonData = PokemonManager.GetSinglePokemonData(curPokemonData.dynamicId)
this.DeleteUpStarMaterials()
UIManager.OpenPanel(UIName.PokemonUpStarSuccessPanel,curPokemonData)
this.OnShowData()
local newWarPower = FormationManager.GetFormationPower(FormationTypeDef.FORMATION_NORMAL)
PokemonManager.PiaoWarPowerChange(oldWarPower,newWarPower)
FormationManager.CheckHeroIdExist()
end)
end
function this:OnClose()
end
function this:OnDestroy()
this.spLoader:Destroy()
end
return this