miduo_client/Assets/ManagedResources/~Lua/Modules/Expedition/View/ExpeditionMonsterInfo_Recru...

169 lines
6.6 KiB
Lua
Raw Normal View History

2021-04-21 13:12:04 +08:00
----- 远征招募节点弹窗 -----
2020-05-25 19:16:23 +08:00
local this = {}
--传入父脚本模块
local parent
--传入特效层级
local sortingOrder=0
local fun
--item容器
local itemList = {}
local monsterData = {}
local type = 1 --1 前往 2 放弃
local curSelectHero = nil
local oldSelectHeroGo = nil
2020-06-03 19:09:01 +08:00
local itemGrid = {}
2020-05-25 19:16:23 +08:00
function this:InitComponent(gameObject)
2021-04-21 13:12:04 +08:00
this.spLoader = SpriteLoader.New()
2020-05-25 19:16:23 +08:00
this.titleText=Util.GetGameObject(gameObject,"TitleText"):GetComponent("Text")
--this.power = Util.GetGameObject(gameObject, "power"):GetComponent("Text")
this.sureBtn=Util.GetGameObject(gameObject,"sureBtn")
this.sureBtnText=Util.GetGameObject(gameObject,"sureBtn/Text"):GetComponent("Text")
2020-06-03 19:09:01 +08:00
this.Demons = Util.GetGameObject(gameObject, "demons")
this.singlePre = Util.GetGameObject(gameObject, "itemPre")
2020-05-25 19:16:23 +08:00
this.backBtn=Util.GetGameObject(gameObject,"BackBtn")
end
function this:BindEvent()
Util.AddClick(this.sureBtn, function()
this:BtnClickEvent()
end)
Util.AddClick(this.backBtn, function()
parent:ClosePanel()
end)
end
function this:BtnClickEvent()
if type == 1 then
parent:ClosePanel()
elseif type == 2 then
if curSelectHero then
--LogError("monsterData.sortId,curSelectHero.dynamicId "..monsterData.sortId.." "..curSelectHero.id)
NetManager.HeroNodeRequest(monsterData.sortId,curSelectHero.id,function (msg)
if msg.drop and msg.drop.soulEquip and #msg.drop.soulEquip > 0 then
for i = 1, #msg.drop.soulEquip do
ExpeditionManager.InitSingleTreasureData(msg.drop.soulEquip[i])
end
end
2020-05-25 19:16:23 +08:00
if msg.drop and msg.drop.Hero and msg.drop.Hero[1] then
ExpeditionManager.UpdateHeroDatas(msg.drop.Hero[1])
end
parent:ClosePanel()
if fun then
fun()
fun = nil
end
end)
else
2021-03-02 16:53:12 +08:00
PopupTipPanel.ShowTip(Language[10563])
2020-05-25 19:16:23 +08:00
end
end
end
function this:AddListener()
end
function this:RemoveListener()
end
function this:OnShow(_parent,...)
parent=_parent
sortingOrder = _parent.sortingOrder
--不定参中包含的不定参 _args[1]为面板类型 _args[2]之后(包括)为打开面板后传入的不定参
local args = {...}
monsterData = args[1]
type = args[2]
fun = args[3]
2021-03-02 16:53:12 +08:00
this.titleText.text=Language[10564]
2020-05-25 19:16:23 +08:00
if type == 1 then
2021-03-02 16:53:12 +08:00
this.sureBtnText.text = Language[10555]
2020-05-25 19:16:23 +08:00
elseif type == 2 then
2021-03-02 16:53:12 +08:00
this.sureBtnText.text = Language[10564]
2020-05-25 19:16:23 +08:00
end
curSelectHero = nil
oldSelectHeroGo = nil
2021-03-02 16:53:12 +08:00
if monsterData == nil then LogError(Language[10558]) return end
2020-06-28 17:52:29 +08:00
for i = 1, 4 do
if itemGrid[i] then
itemGrid[i]:SetActive(false)
end
end
2020-05-25 19:16:23 +08:00
NetManager.HeroNodeGetInfoRequest(monsterData.sortId,function (msg)
2020-06-03 19:09:01 +08:00
--LogError("#msg.viewHeroInfo "..#msg.viewHeroInfo)
2020-05-25 19:16:23 +08:00
this:FormationAdapter(msg)
end)
end
-- 编队数据匹配
function this:FormationAdapter(msg)
2020-06-03 19:09:01 +08:00
for i = 1, math.max(#msg.viewHeroInfo, #itemGrid) do
local go = itemGrid[i]
if not go then
go = newObject(this.singlePre)
go.transform:SetParent(this.Demons.transform)
go.transform.localScale = Vector3.one
go.transform.localPosition = Vector3.zero
itemGrid[i] = go
end
go.gameObject:SetActive(false)
end
for i = 1, #msg.viewHeroInfo do
local demon = itemGrid[i]
demon:SetActive(true)
local curData = msg.viewHeroInfo[i]
local demonId = curData.hero.heroId
local starGrid=Util.GetGameObject(demon, "starGrid")
local proImage=Util.GetGameObject(demon, "heroShow/proIcon"):GetComponent("Image")
2020-06-19 16:18:05 +08:00
Util.GetGameObject(demon, "heroShow/posIcon"):SetActive(false)
--local posImage=Util.GetGameObject(demon, "heroShow/posIcon"):GetComponent("Image")
2020-06-03 19:09:01 +08:00
local roleLevel=Util.GetGameObject(demon, "lvbg/levelText"):GetComponent("Text")
local frameBtn=Util.GetGameObject(demon, "frame")
if demonId then
2020-05-25 19:16:23 +08:00
demon:SetActive(true)
2020-06-03 19:09:01 +08:00
local demonData = ConfigManager.GetConfigData(ConfigName.HeroConfig, demonId)
2021-04-21 13:12:04 +08:00
Util.GetGameObject(demon, "icon"):GetComponent("Image").sprite = this.spLoader:LoadSprite(GetResourcePath(demonData.Icon))
2020-07-31 17:36:06 +08:00
local heroConFig = ConfigManager.GetConfigData(ConfigName.HeroConfig,demonId)
2021-04-21 13:12:04 +08:00
Util.GetGameObject(demon, "frame"):GetComponent("Image").sprite = this.spLoader:LoadSprite(GetHeroQuantityImageByquality(heroConFig.Quality, curData.hero.star))
2021-02-24 20:25:29 +08:00
Util.GetGameObject(demon, "nameText"):GetComponent("Text").text = SubString2(GetLanguageStrById(ConfigManager.GetConfigData(ConfigName.HeroConfig,demonId).ReadingName),6)
2021-10-26 16:00:31 +08:00
local star,starType = GetStarOrGodSoulLv(1,curData.hero)
SetHeroStars(this.spLoader, starGrid, star,starType)
2022-01-22 17:08:17 +08:00
SetHeroFlyEffect(demon,self.spLoader,curData.hero.star,sortingOrder+1,0.9,2)
2021-12-06 17:47:14 +08:00
Util.SetParticleSortLayer(starGrid,sortingOrder + 1)
2021-04-21 13:12:04 +08:00
proImage.sprite = this.spLoader:LoadSprite(GetProStrImageByProNum(demonData.PropertyName))
--posImage.sprite = this.spLoader:LoadSprite(GetJobSpriteStrByJobNum(demonData.Profession))
2020-06-03 19:09:01 +08:00
roleLevel.text = curData.hero.level
local choosed = Util.GetGameObject(demon, "selectImage")
choosed:SetActive(false)
Util.AddOnceClick(frameBtn, function()
2020-06-30 18:59:44 +08:00
if type ~= 1 then
if curSelectHero == curData.hero then
choosed:SetActive(false)
curSelectHero = nil
oldSelectHeroGo = nil
return
end
curSelectHero = curData.hero
choosed:SetActive(true)
if oldSelectHeroGo then
Util.GetGameObject(oldSelectHeroGo, "selectImage"):SetActive(false)
end
oldSelectHeroGo = demon
2020-06-03 19:09:01 +08:00
end
end)
local heroData = {}
Util.AddLongPressClick(frameBtn, function()
heroData= GoodFriendManager.GetHeroDatas(curData.hero,curData.force,curData.SpecialEffects)
GoodFriendManager.InitEquipData(curData.equip,heroData)
UIManager.OpenPanel(UIName.RoleInfoPopup, heroData,true)
end, 0.5)
2020-05-25 19:16:23 +08:00
end
end
end
function this:OnClose()
end
function this:OnDestroy()
2021-04-21 13:12:04 +08:00
this.spLoader:Destroy()
2020-06-08 20:18:49 +08:00
itemGrid = {}
2020-05-25 19:16:23 +08:00
end
2021-04-21 13:12:04 +08:00
return this