miduo_client/Assets/ManagedResources/~Lua/Modules/Popup/DiffmonsterEditPopup.lua

239 lines
7.9 KiB
Lua
Raw Normal View History

2021-04-21 13:12:04 +08:00
require("Base/BasePanel")
2020-05-09 13:31:21 +08:00
DiffmonsterEditPopup = Inherit(BasePanel)
local this=DiffmonsterEditPopup
-- local diffmonsterOrder = {1,9,3,5,4,6,8,7,10,2}
local diffmonsterGOList = {}
local diffmonsterUnGOList = {}
local selectPokemonIdList={} --选中异妖列表
local openPanelSelectDataList={}
local openPanel
local curFormationIndex
-- 异妖表id对应资源
local _IconConfig = {
[1] = "bd_banner-001",
[2] = "bd_banner-010",
[3] = "bd_banner-003",
[4] = "bd_banner-005",
[5] = "bd_banner-004",
[6] = "bd_banner-006",
[7] = "bd_banner-008",
[8] = "bd_banner-007",
[9] = "bd_banner-002",
[10] = "bd_banner-009",
}
---------------------------------
local curIndex=0 --当前选中期类型
local isSelect=false --默认未选择
---------------------------------
--初始化组件(用于子类重写)
function DiffmonsterEditPopup:InitComponent()
2021-04-21 13:12:04 +08:00
this.spLoader = SpriteLoader.New()
2020-05-09 13:31:21 +08:00
self.BtnBack = Util.GetGameObject(self.transform, "bg/btnBack")
this.itemRoot = Util.GetGameObject(self.gameObject, "bg/scroll/grid")
this.item = Util.GetGameObject(self.gameObject, "bg/scroll/grid/item")
-- 倒序创建物体,最强的再上面
for i = #_IconConfig, 1, -1 do
if not diffmonsterGOList[i] then
diffmonsterGOList[i] = newObjToParent(this.item, this.itemRoot)
diffmonsterGOList[i]:SetActive(true)
2021-04-21 13:12:04 +08:00
diffmonsterGOList[i]:GetComponent("Image").sprite = this.spLoader:LoadSprite(_IconConfig[i])
2020-05-09 13:31:21 +08:00
end
end
this.selectOne = Util.GetGameObject(self.transform, "selectOne")
this.selectTwo = Util.GetGameObject(self.transform, "selectTwo")
this.selectThree = Util.GetGameObject(self.transform, "selectThree")
diffmonsterUnGOList[1]= this.selectOne
diffmonsterUnGOList[2]= this.selectTwo
diffmonsterUnGOList[3]= this.selectThree
this.btnSure = Util.GetGameObject(self.transform, "bg/btnSure")
this.diffItemRoo = Util.GetGameObject(self.gameObject, "bg/scroll/grid")
end
--绑定事件(用于子类重写)
function DiffmonsterEditPopup:BindEvent()
for i=1, #_IconConfig do
Util.AddOnceClick(diffmonsterGOList[i], function()
--Log("点击选项" .. i)
this.SelectUpdata(i)
end)
end
Util.AddClick(self.BtnBack, function()
PlaySoundWithoutClick(SoundConfig.Sound_UICancel)
self:ClosePanel()
end)
Util.AddClick(this.btnSure, function()
local selectPokemonIdListData={}
local pokemonList={}
for i = 1, #selectPokemonIdList do
local singleData={}
singleData.pokemonId=selectPokemonIdList[i][1]
singleData.position=selectPokemonIdList[i][2]
table.insert(pokemonList,{selectPokemonIdList[i][1],selectPokemonIdList[i][2]})
table.insert(selectPokemonIdListData,singleData)
end
2021-09-10 16:25:38 +08:00
FormationManager.SaveFormation(curFormationIndex, FormationManager.formationList[curFormationIndex].teamHeroInfos,selectPokemonIdListData,true)
2020-05-09 13:31:21 +08:00
openPanel.UpdataYiYaoData(pokemonList)
self:ClosePanel()
end)
Util.AddClick(this.selectOne, function()
--if curIndex ~= 1 then
-- PopupTipPanel.ShowTip("前期已选择!")
--else
this.SelectUnUpdata(1)
--end
end)
Util.AddClick(this.selectTwo, function()
--if curIndex~=2 then
-- PopupTipPanel.ShowTip("中期已选择!")
--else
this.SelectUnUpdata(2)
--end
end)
Util.AddClick(this.selectThree, function()
--if curIndex~=3 then
-- PopupTipPanel.ShowTip("后期已选择!")
--else
this.SelectUnUpdata(3)
--end
end)
end
--添加事件监听(用于子类重写)
function DiffmonsterEditPopup:AddListener()
end
--移除事件监听(用于子类重写)
function DiffmonsterEditPopup:RemoveListener()
end
--界面打开时调用(用于子类重写)
function DiffmonsterEditPopup:OnOpen(...)
local data={...}
openPanel=data[1]
curFormationIndex=data[2]
curIndex=data[3]
local pokemonList = {}
local curFormation = FormationManager.GetFormationByID(curFormationIndex)
for i = 1, #curFormation.teamPokemonInfos do
table.insert(pokemonList,{curFormation.teamPokemonInfos[i].pokemonId,curFormation.teamPokemonInfos[i].position})
end
openPanelSelectDataList=pokemonList
selectPokemonIdList={}--=curSelectIds
local allPokemonData=DiffMonsterManager.pokemonList
for i = 1, #allPokemonData do
if allPokemonData[i].stage>0 then
diffmonsterGOList[i]:SetActive(true)
else
diffmonsterGOList[i]:SetActive(false)
end
end
for i = 1, #openPanelSelectDataList do
local curdiffmonsterUnGOList = diffmonsterUnGOList[openPanelSelectDataList[i][2]]
if #openPanelSelectDataList>=i then
--Log("==YSP== 打开显示的位置 "..openPanelSelectDataList[i][2].."包含的数量"..#openPanelSelectDataList)
curdiffmonsterUnGOList.transform:SetParent(diffmonsterGOList[openPanelSelectDataList[i][1]].transform)
curdiffmonsterUnGOList.transform.localScale = Vector3.one
curdiffmonsterUnGOList.transform.localPosition=Vector3.zero;
curdiffmonsterUnGOList:SetActive(true)
else
curdiffmonsterUnGOList:SetActive(false)
end
end
selectPokemonIdList=openPanelSelectDataList
end
--界面关闭时调用(用于子类重写)
function DiffmonsterEditPopup:OnClose()
isSelect=false
this.selectOne.transform:SetParent(this.transform)
this.selectTwo.transform:SetParent(this.transform)
this.selectThree.transform:SetParent(this.transform)
this.selectOne:SetActive(false)
this.selectTwo:SetActive(false)
this.selectThree:SetActive(false)
selectPokemonIdList = {}
end
--界面销毁时调用(用于子类重写)
function DiffmonsterEditPopup:OnDestroy()
2021-04-21 13:12:04 +08:00
this.spLoader:Destroy()
2020-05-09 13:31:21 +08:00
diffmonsterGOList = {}
end
-------------------------------------------------
--点击选中
function this.SelectUpdata(index)
isSelect=true
--选中时先删除表数据
if #selectPokemonIdList>0 then
for i, v in ipairs(selectPokemonIdList) do
if curIndex==v[2] then
table.remove(selectPokemonIdList,i)
--Log("==YSP== 删除成功!"..i)
end
end
end
local maxNum = ActTimeCtrlManager.MaxDemonNum()
if #selectPokemonIdList>=maxNum then
if maxNum < 3 then
PopupTipPanel.ShowTip(ActTimeCtrlManager.TipText(maxNum + 1))
end
return
else
if selectPokemonIdList[#selectPokemonIdList+1]==nil then
selectPokemonIdList[#selectPokemonIdList+1]={index,curIndex}
else
return
end
end
if curIndex==1 then
this.selectOne.transform:SetParent(diffmonsterGOList[index].transform)
this.selectOne.transform.localScale = Vector3.one
this.selectOne.transform.localPosition=Vector3.zero;
this.selectOne:SetActive(true)
elseif curIndex==2 then
this.selectTwo .transform:SetParent(diffmonsterGOList[index].transform)
this.selectTwo.transform.localScale = Vector3.one
this.selectTwo.transform.localPosition=Vector3.zero;
this.selectTwo:SetActive(true)
elseif curIndex==3 then
this.selectThree .transform:SetParent(diffmonsterGOList[index].transform)
this.selectThree.transform.localScale = Vector3.one
this.selectThree.transform.localPosition=Vector3.zero;
this.selectThree:SetActive(true)
end
end
--点击取消
function this.SelectUnUpdata(index)
for i = 1, #selectPokemonIdList do
if selectPokemonIdList[i][2]==index then
table.remove(selectPokemonIdList,i)
--Log("点击取消选择")
diffmonsterUnGOList[index]:SetActive(false)
return
end
end
end
2020-06-23 18:36:24 +08:00
return DiffmonsterEditPopup