UITeam 页面

This commit is contained in:
fatiao 2025-08-12 19:09:10 +08:00
parent 7fd6d875a1
commit 2ecd46a18f
23 changed files with 10337 additions and 2 deletions

View File

@ -382,6 +382,11 @@ MonoBehaviour:
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 378c7f00cd24a984399bc1eec0921ec4
m_Address: Assets/Content/Prefabs/UI/UITeam
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
m_ReadOnly: 0
m_Settings: {fileID: 11400000, guid: 8b54c61ef06dca34e89fcf16d0b8c4b3, type: 2}
m_SchemaSet:

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 378c7f00cd24a984399bc1eec0921ec4
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: c167f3ffd05b4ee4ebd3e927d87301dc
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 4357815548e9a03409850d857fc3fd1e
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 497dd1c12ae895845823455a7188757a
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -5608,5 +5608,28 @@ local UICfg = {
['top_btn_display_state']=false,
['NoPay']=false,
},
[3004]={
['id']=3004,
['name']='UITeam',
['type']=1,
['mainViewType']=5,
['need_mask']=false,
['lua_path']='',
['res_path']='UITeam/UITeam',
['childPaths']='',
['page_anim_in_type']=1,
['page_anim_out_type']=2,
['hide_main_top']=false,
['hide_main_bottom']=false,
['need_persistent']=false,
['battle_main_page']=false,
['need_cache']=true,
['can_limit_gift']=false,
['top_res_id']=2,
['top_btn_display_state']=false,
['NoPay']=false,
},
}
return UICfg

View File

@ -177,6 +177,7 @@ local Enum = {
UIBattleDeploy = 3000,
UIFruit = 3002,
UIRank = 3003,
UITeam = 3004,
},
ParamState = {

View File

@ -295,5 +295,6 @@ local UIPageName = {
UIBattleSuccess = 3001,
UIFruit = 3002,
UIRank = 3003,
UITeam = 3004,
}
return setmetatable(UIPageName, { __index = Enum.UIPageName })

View File

@ -0,0 +1,50 @@
local TeamRoleListItemCtr = {}
local RedPointItemCtr = require("Common/RedPointItemCtr")
function TeamRoleListItemCtr:SetData(wnd, item, data, onClickOwner, onClickCB)
local idx = data[1]
local logicData = data[2]
local cfgData = data[3]
item.data = data
item.labelLead:SetActive(idx == 1)
item.labelUp:SetActive(idx ~= 1 and logicData.isBattle)
CommonUtil.SetTotalChildrenGray(item.gameObject, idx ~= 1 and not logicData.owned)
if cfgData == nil then
LogError("partner cfg id "..logicData.configId.." error")
return
end
local quality = logicData.strengthLevel
local frameIcon = Constant.Quality_Role_Frame_Default_Icons
if quality == 100 then
frameIcon = Constant.Quality_Lead_Role_Icon
elseif quality > 0 then
frameIcon = Constant.Quality_Role_Frame_Icons[math.min(quality, #Constant.Quality_Role_Frame_Icons)]
end
CommonUtil.LoadIcon(wnd, frameIcon, function (sprite)
item.frame.image.sprite = sprite
--item.frame.image:SetNativeSize()
--local size = Constant.Quality_Role_Frame_Size[quality] or Constant.Quality_Role_Frame_Size[1]
--if size then
-- item.frame.rectTransform.sizeDelta = Vector2(size[1], size[2])
--end
end)
CommonUtil.LoadIcon(wnd, cfgData.Avatar, function (sprite)
item.head.image.sprite = sprite
end)
CommonUtil.LoadIcon(wnd, cfgData.JobIcon2, function (sprite)
item.job.image.sprite = sprite
end)
item.numLv.text.text = logicData.baseLevel
if onClickOwner and onClickCB then
wnd.uiBase:AddButtonUniqueEventListener(item.head.button, onClickOwner, onClickCB, idx, logicData.id)
end
end
return TeamRoleListItemCtr

View File

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 0996823c2ce96d446b0a298ac938763a
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,176 @@
---@class UITeamSelectedHero__Generate_heroName
---@field public gameObject UnityEngine.GameObject
---@field public text TMPro.TextMeshProUGUI
---@class UITeamSelectedHero__Generate_heroLv
---@field public gameObject UnityEngine.GameObject
---@field public text TMPro.TextMeshProUGUI
---@class UITeamSelectedHero__Generate_jobIcon
---@field public gameObject UnityEngine.GameObject
---@field public image UnityEngine.UI.Image
---@class UITeamSelectedHero__Generate_cancelBtn
---@field public gameObject UnityEngine.GameObject
---@field public button UnityEngine.UI.Button
---@class UITeamSelectedHero__Generate_replaceBtn
---@field public gameObject UnityEngine.GameObject
---@field public button UnityEngine.UI.Button
---@class UITeamSelectedHero__Generate_heroImg
---@field public gameObject UnityEngine.GameObject
---@field public rawImage UnityEngine.UI.RawImage
---@class UITeamSelectedHero__Generate
---@field private gameObject UnityEngine.GameObject
---@field private transform UnityEngine.Transform
---@field private heroImg UITeamSelectedHero__Generate_heroImg
---@field private replaceBtn UITeamSelectedHero__Generate_replaceBtn
---@field private cancelBtn UITeamSelectedHero__Generate_cancelBtn
---@field private jobIcon UITeamSelectedHero__Generate_jobIcon
---@field private heroLv UITeamSelectedHero__Generate_heroLv
---@field private heroName UITeamSelectedHero__Generate_heroName
local UITeamSelectedHeroView = class("UITeamSelectedHeroView")
function UITeamSelectedHeroView:ctor()
end
---@private
function UITeamSelectedHeroView:SetActive(result)
self.gameObject:SetActive(result)
end
---@private
function UITeamSelectedHeroView:InitGenerate(Root, data)
self.transform = Root
self.inited = true
local tmp
self:InitGenerate__1(Root,data)
self:InitGenerate__2(Root,data)
self:InitGenerate__3(Root,data)
self:InitGenerate__4(Root,data)
self:InitGenerate__5(Root,data)
self:InitGenerate__6(Root,data)
self:InitGenerate__7(Root,data)
end
---@private
function UITeamSelectedHeroView:InitGenerate__1(Root, data)
--[[
Root
--]]
end
---@private
function UITeamSelectedHeroView:InitGenerate__2(Root, data)
--[[
Mod
--]]
local tmp = Root:Find("Mod").gameObject
if tolua.getpeer(tmp) == nil then
tolua.setpeer(tmp, {})
end
self.heroImg = tmp
tmp.rawImage = tmp:GetComponent(Enum.TypeInfo.RawImage)
end
---@private
function UITeamSelectedHeroView:InitGenerate__3(Root, data)
--[[
ReplaceBtn
--]]
local tmp = Root:Find("ReplaceBtn").gameObject
if tolua.getpeer(tmp) == nil then
tolua.setpeer(tmp, {})
end
self.replaceBtn = tmp
tmp.button = tmp:GetComponent(Enum.TypeInfo.Button)
end
---@private
function UITeamSelectedHeroView:InitGenerate__4(Root, data)
--[[
CancelBtn
--]]
local tmp = Root:Find("CancelBtn").gameObject
if tolua.getpeer(tmp) == nil then
tolua.setpeer(tmp, {})
end
self.cancelBtn = tmp
tmp.button = tmp:GetComponent(Enum.TypeInfo.Button)
end
---@private
function UITeamSelectedHeroView:InitGenerate__5(Root, data)
--[[
Job
--]]
local tmp = Root:Find("Job").gameObject
if tolua.getpeer(tmp) == nil then
tolua.setpeer(tmp, {})
end
self.jobIcon = tmp
tmp.image = tmp:GetComponent(Enum.TypeInfo.Image)
end
---@private
function UITeamSelectedHeroView:InitGenerate__6(Root, data)
--[[
Job/NumLv
--]]
local tmp = Root:Find("Job/NumLv").gameObject
if tolua.getpeer(tmp) == nil then
tolua.setpeer(tmp, {})
end
self.heroLv = tmp
tmp.text = tmp:GetComponent(Enum.TypeInfo.TextMeshProUGUI)
end
---@private
function UITeamSelectedHeroView:InitGenerate__7(Root, data)
--[[
Name
--]]
local tmp = Root:Find("Name").gameObject
if tolua.getpeer(tmp) == nil then
tolua.setpeer(tmp, {})
end
self.heroName = tmp
tmp.text = tmp:GetComponent(Enum.TypeInfo.TextMeshProUGUI)
end
---@private
function UITeamSelectedHeroView:GenerateDestroy()
if tolua.getpeer(self.heroName) ~= nil then
tolua.setpeer(self.heroName, nil)
end
if tolua.getpeer(self.heroLv) ~= nil then
tolua.setpeer(self.heroLv, nil)
end
if tolua.getpeer(self.jobIcon) ~= nil then
tolua.setpeer(self.jobIcon, nil)
end
if tolua.getpeer(self.cancelBtn) ~= nil then
tolua.setpeer(self.cancelBtn, nil)
end
if tolua.getpeer(self.replaceBtn) ~= nil then
tolua.setpeer(self.replaceBtn, nil)
end
if tolua.getpeer(self.heroImg) ~= nil then
tolua.setpeer(self.heroImg, nil)
end
self.transform = nil
self.gameObject = nil
self.inited = false
end
return UITeamSelectedHeroView

View File

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: ac392f26f26f28b468f40433d941163a
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -875,8 +875,12 @@ function UIMainView:ChangePageMsg(pageType, data)
--ManagerContainer.LuaUIMgr:HideAllPagesExceptId(Enum.UIPageName.UIBag)
self.mainPageId = Enum.UIPageName.UIBag
ManagerContainer.LuaUIMgr:Open(Enum.UIPageName.UIBag)
--self.mainPageId = Enum.UIPageName.UIBag
--ManagerContainer.LuaUIMgr:Open(Enum.UIPageName.UIBag)
self.mainPageId = Enum.UIPageName.UITeam
ManagerContainer.LuaUIMgr:Open(Enum.UIPageName.UITeam, data)
local bta = self.bag.icon.buttonTriggerAnimation
bta.tagetAnimator:CrossFade(bta.animationName, 0.2)
elseif pageType == Enum.MainViewPageType.Feixin then

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: b85c85cdd2f851b448189bd777b708d4
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,187 @@
local UITeamCtr = class("UITeamCtr", require("UICtrBase"))
function UITeamCtr:Init(view)
self.view = view
end
function UITeamCtr:SetData(data)
self:InitTeamData()
self.asyncIdx = 0
if data == nil then return end
self.data = data
end
function UITeamCtr:GetAsyncIdx()
self.asyncIdx = self.asyncIdx + 1
return self.asyncIdx
end
function UITeamCtr:GetData()
return self.data
end
function UITeamCtr:OnDispose()
self.data = nil
self.view = nil
end
function UITeamCtr:InitTeamData()
local mainRoleData = ManagerContainer.DataMgr.UserData:GetMainRoleData()
self.teamMembers = {}
self.teamMembers[#self.teamMembers + 1] =
{
uid = mainRoleData.id,
cfgId = ManagerContainer.DataMgr.UserData:GetUserRoleId(),
mainRole = true,
owned = true,
logicData = mainRoleData,
cfgData = ManagerContainer.CfgMgr:GetRoleDataById(ManagerContainer.DataMgr.UserData:GetUserRoleId())
}
local _allPartners= {}
local partnerDatas = ManagerContainer.DataMgr.PartnerData:GetPartnerDatas()
for _,v in pairs(partnerDatas) do
if v ~= nil then
_allPartners[#_allPartners + 1] = v
end
end
if _allPartners ~= nil then
self:SortInterestLit(_allPartners)
for i=1, #_allPartners do
local partner = _allPartners[i]
self.teamMembers[#self.teamMembers + 1] = {
uid = partner.id,
cfgId = partner.configId,
mainRole = false,
owned = partner.owned,
logicData = ManagerContainer.DataMgr.UserData:GetHeroData(partner.id),
cfgData = ManagerContainer.CfgMgr:GetPartnerDataById(partner.configId)
}
end
end
end
function UITeamCtr:SortInterestLit(allPartners)
if allPartners == nil or #allPartners < 2 then
return
end
table.sort(
allPartners,
function(a, b)
if a.owned and b.owned == false then
return true
end
if a.owned == false and b.owned then
return false
end
if a.owned and b.owned then
return a.jobType < b.jobType
end
return a.jobType < b.jobType
end
)
end
function UITeamCtr:GetTeams()
return self.teamMembers
end
function UITeamCtr:GetTeamOwnActorIds()
local teamActorIds = {}
local teamDatas = self.teamMembers
for i = 1, #teamDatas do
if teamDatas[i].owned then
table.insert(teamActorIds, teamDatas[i].uid)
end
end
return teamActorIds
end
function UITeamCtr:GetTeamInBattleActorIds()
local teamActorIds = {}
local teamDatas = self.teamMembers
for i = 1, #teamDatas do
if teamDatas[i].owned and teamDatas[i].logicData.isBattle then
table.insert(teamActorIds, teamDatas[i].uid)
end
end
return teamActorIds
end
function UITeamCtr:IsInBattle(uid)
local isInBattle = false
local teamDatas = self.teamMembers
for i = 1, #teamDatas do
if teamDatas[i].owned and teamDatas[i].logicData.isBattle and teamDatas[i].uid == uid then
isInBattle = true
end
end
return isInBattle
end
function UITeamCtr:SendMatch()
ManagerContainer.DataMgr.ArenaData:SendMatchReq(ManagerContainer.DataMgr.ArenaData:GetTeamActorIds())
end
function UITeamCtr:GetHeroData(uid)
if self.teamMembers == nil then
return nil
end
for i=1, #self.teamMembers do
if self.teamMembers[i].uid == uid then
return self.teamMembers[i]
end
end
return nil
end
function UITeamCtr:GetHeroIdx(uid)
if self.teamMembers == nil then
return -1
end
for i=1, #self.teamMembers do
if self.teamMembers[i].uid == uid then
return i
end
end
return -1
end
function UITeamCtr:GetSlotSortPartnerDatas()
local partnerDatas = ManagerContainer.DataMgr.PartnerData:GetPartnerDatas()
sortedPartnerDatas = {}
for _,v in pairs(partnerDatas) do
sortedPartnerDatas[#sortedPartnerDatas + 1] = v
end
table.sort(sortedPartnerDatas, function (a, b)
if a.owned and b.owned then
return a.post < b.post
else
if a.owned and not b.owned then
return true
elseif not a.owned and b.owned then
return false
else
return a.post < b.post
end
end
end)
end
function UITeamCtr:GetSortedPartnerDatas()
if sortedPartnerDatas == nil then
self:GetSlotSortPartnerDatas()
end
return sortedPartnerDatas
end
return UITeamCtr

View File

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: f4388a54e149f724e985f6824575d223
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,455 @@
local UITeamView = require("UITeam/UITeamView_Generate")
local TeamRoleListItemCtr = require("Common/TeamRoleListItemCtr")
local IconItemCtr = require("Common/IconItemCtr")
local RedPointItemCtr = require("Common/RedPointItemCtr")
function UITeamView:OnAwake(data)
self.controller = require("UITeam/UITeamCtr"):new()
self.controller:Init(self)
self.controller:SetData(data)
end
function UITeamView:AddEventListener()
ManagerContainer.LuaEventMgr:RegisterUIEvent(self.uiData.name, UIEventNames.EID_Refresh_Arena_Season_LeftTime,self,self.OnRefreshSeasonTime);
ManagerContainer.LuaEventMgr:RegisterUIEvent(self.uiData.name, UIEventNames.EID_Refresh_Arena_Team_FightPower,self,self.UpdateTeamFighterPower);
ManagerContainer.LuaEventMgr:RegisterUIEvent(self.uiData.name, UIEventNames.EID_Refresh_Arena_Data_Change,self,self.InitUIData);
ManagerContainer.LuaEventMgr:RegisterUIEvent(self.uiData.name, UIEventNames.EID_Refresh_Arena_Season_End,self,self.InitUIData);
end
function UITeamView:FillContent(data, uiBase)
self.uiBase = uiBase
local gameObject = self.uiBase:GetRoot()
if gameObject ~= nil then
self.gameObject = gameObject
self.transform = gameObject.transform
end
self:InitGenerate(self.transform, data)
self:Init()
end
function UITeamView:Init()
self.instGoes = nil
self.curSelectedUid = 0
self.lastSelectedIdx = 0
self:HideAllSelectedActorGO()
self:InitUIData()
self:LoadOtherUI()
end
function UITeamView:LoadOtherUI()
self.isLoading = true
ManagerContainer.LuaEventMgr:RegisterEvent(UIEventNames.EID_Dojo_UIPart_Loaded,self,self.OnUIPartLoaded)
local partResPaths = {"UITeam/UITeamSelectedHero","GridViewItem/RoleListItem", "GridViewItem/RedPointItem"}
local seqId = ManagerContainer.ResMgr:LoadAssetGameObjects(Constants.UIPath, ELoadType.OTHER, function(objs)
ManagerContainer.LuaEventMgr:Dispatch(UIEventNames.EID_Dojo_UIPart_Loaded,objs)
end, unpack(partResPaths))
end
function UITeamView:OnUIPartLoaded(objs)
ManagerContainer.LuaEventMgr:UnregisterEvent(UIEventNames.EID_Dojo_UIPart_Loaded,self,self.OnUIPartLoaded);
self.instGoes = {}
self.forbidClickIdxList = {}
self.isLoading = false
local selectedPrefab = objs[0]
local rolePrefab = objs[1]
local rpPrefab = objs[2]
for i=1, 6 do
local memberNode = self:GetTeamMemberGo(i)
local go = UnityEngine.GameObject.Instantiate(rolePrefab)
go:SetActive(true)
local rectTransform = go:GetComponent(Enum.TypeInfo.RectTransform)
rectTransform:SetParent(memberNode.transform, false);
rectTransform.localRotation = Quaternion.identity;
rectTransform.localScale = Vector3(1,1,1);
rectTransform.anchorMin = Vector2 (0, 0);
rectTransform.anchorMax = Vector2(1.0, 1.0);
rectTransform.pivot = Vector2 (0.5, 0.5);
rectTransform.anchoredPosition3D = Vector3(0,0,0);
rectTransform.sizeDelta = Vector2(0,0);
self.instGoes[#self.instGoes+1] = go
memberNode.roleLua = CommonUtil.BindGridViewItem2Lua(self, "RoleListItem", go)
local rp = UnityEngine.GameObject.Instantiate(rpPrefab)
rp:SetActive(true)
local rectTransform = rp:GetComponent(Enum.TypeInfo.RectTransform)
rectTransform:SetParent(memberNode.transform, false);
rectTransform.anchoredPosition = Vector2(47, 127, 0)
self.instGoes[#self.instGoes+1] = rp
memberNode.rpGO = rp
memberNode.rpLua = CommonUtil.BindGridViewItem2Lua(self, "RedPointItem", rp)
end
for i=1,4 do
local charGo = self:GetBattleActorGo(i)
local go = UnityEngine.GameObject.Instantiate(selectedPrefab)
go:SetActive(true)
local rectTransform = go:GetComponent(Enum.TypeInfo.RectTransform)
rectTransform:SetParent(charGo.transform, false);
rectTransform.localRotation = Quaternion.identity;
rectTransform.localScale = Vector3(1,1,1);
rectTransform.anchorMin = Vector2 (0, 0);
rectTransform.anchorMax = Vector2(1.0, 1.0);
rectTransform.pivot = Vector2 (0.5, 0.5);
rectTransform.anchoredPosition3D = Vector3(0,0,0);
rectTransform.sizeDelta = Vector2(0,0);
self.instGoes[#self.instGoes+1] = go
charGo.heroLua = CommonUtil.BindGridViewItem2Lua(self, "UITeamSelectedHero", go)
end
self:SetTeamData()
end
function UITeamView:RemoveEventListener()
ManagerContainer.LuaEventMgr:Unregister(self.uiData.name)
end
function UITeamView:AddUIEventListener()
self.uiBase:AddButtonEventListener(self.backBtn.button,self, self.OnClickBackBtn)
end
function UITeamView:OnHide()
end
function UITeamView:OnShow(data)
self.controller:SetData(data)
end
function UITeamView:OnClose()
for i=1, 6 do
local go = self:GetTeamMemberGo(i)
if go~= nil then
local pos = go.rectTransform.anchoredPosition3D
pos.y = 0
go.rectTransform.anchoredPosition3D = pos
end
end
AvatarRTMgr.Instance:Hide()
end
function UITeamView:OnDispose()
self:DestroyGOes()
self.controller:OnDispose()
end
function UITeamView:UpdateTeamFighterPower()
self.fighterPowerText.text.text = ManagerContainer.DataMgr.UserData:GetTotalFightPower()
end
function UITeamView:InitUIData()
ManagerContainer.LuaUIMgr:ClosePage(Enum.UIPageName.UIDojoExit)
self:UpdateTeamFighterPower()
end
function UITeamView:OnClickShopBtn()
ManagerContainer.LuaUIMgr:Open(Enum.UIPageName.UIShop, 2, self.uiData.id) --开启英灵殿商店
end
function UITeamView:OnClickBackBtn()
if AvatarRTMgr.Instance.IsLoading or self.isLoading then
return
end
AvatarRTMgr.Instance:Hide()
ManagerContainer.LuaGameMgr:EnterBattle(false)
ManagerContainer.LuaUIMgr:OpenSourceUI(self)
end
function UITeamView:SetTeamData()
local teamDatas = self.controller:GetTeams()
for i = 1, #teamDatas do
local go = self:GetTeamMemberGo(i)
self:SetTeamMemberData(i,go,teamDatas[i])
end
local ourMembers = {}
for i = 1, #teamDatas do
if teamDatas[i].owned and teamDatas[i].logicData.isBattle then
local actor = ManagerContainer.LuaActorDataMgr:GetActorsById(teamDatas[i].uid,teamDatas[i].cfgId)
if actor ~= nil then
ourMembers[#ourMembers+1] = actor
end
end
end
AvatarRTMgr.Instance:LoadPreviewActors(ourMembers,self)
end
function UITeamView:OnLoadCompleted()
self:ShowBattleHeros()
end
function UITeamView:SetTeamMemberData(idx,node,data)
if node == nil or data == nil then
return
end
TeamRoleListItemCtr:SetData(self, node.roleLua, {idx, data.logicData, data.cfgData},self,self.OnClickHero)
local rpState
if idx == 1 then
rpState = ManagerContainer.RedPointMgr.HeroRPCtr:GetHeroRPStatus()
else
rpState = ManagerContainer.RedPointMgr.HeroRPCtr:GetPartnerRPStatus(idx)
end
node.rpGO:SetActive(rpState ~= Enum.RedPointEnum.None)
if rpState ~= Enum.RedPointEnum.None then
RedPointItemCtr:SetData(self, node.rpLua, rpState, Enum.HeroRPSource.HeadIcon, idx)
end
end
function UITeamView:SetBattleState(uid)
local idx = self.controller:GetHeroIdx(uid)
local go = self:GetTeamMemberGo(idx)
if go == nil then
return
end
end
function UITeamView:OnClickHero(btn,params)
local idx = params[0]
local uid = params[1]
local heroData = self.controller:GetHeroData(uid)
if heroData == nil then
return
end
if heroData.owned == false then
ManagerContainer.LuaUIMgr:ErrorNoticeDisplay("ArenaChangePartnerTips2")
return
end
if CommonUtil.EleInTable(idx, self.forbidClickIdxList) then return end
LogError("[OnClickHero] "..tostring(idx))
-- if ManagerContainer.DataMgr.ArenaData:IsInBattleTeam(uid) then
-- ManagerContainer.LuaUIMgr:ErrorNoticeDisplay("ArenaChangePartnerTips1")
-- return
-- end
-- if ManagerContainer.DataMgr.ArenaData:CurMemberCnt() >= 4 then
-- self:SelectedHero(idx,uid)
-- else
-- ManagerContainer.DataMgr.ArenaData:OnBattle(uid)
-- self:SetBattleState(uid)
-- self:ShowBattleHeros()
-- end
end
function UITeamView:SelectedHero(idx,uid)
if self.lastSelectedIdx ~= idx then
if self.lastSelectedIdx ~= nil then
local go = self:GetTeamMemberGo(self.lastSelectedIdx)
if go ~= nil then
local pos = go.rectTransform.anchoredPosition3D
pos.y = 0
LuaBattleBridge.BeginTweenRecTransformPos(go,0.1,pos)
end
end
local curGo = self:GetTeamMemberGo(idx)
if curGo ~= nil then
local pos = curGo.rectTransform.anchoredPosition3D
pos.y = 30
LuaBattleBridge.BeginTweenRecTransformPos(curGo,0.1,pos)
end
self.curSelectedUid = uid
self.lastSelectedIdx = idx
--self:ShowReplaceBtn(true)
else
local curGo = self:GetTeamMemberGo(self.lastSelectedIdx)
if curGo ~= nil then
local pos = curGo.rectTransform.anchoredPosition3D
pos.y = 0
LuaBattleBridge.BeginTweenRecTransformPos(curGo,0.1,pos)
end
--self:ShowReplaceBtn(false)
self.lastSelectedIdx = 0
end
end
function UITeamView:ShowBattleHeros()
local battleActorIds = self.controller:GetTeamInBattleActorIds()
if battleActorIds~= nil then
for i = 1, #battleActorIds do
local actorGo = self:GetBattleActorGo(i)
self:SetBattleHeroData(i, battleActorIds[i],actorGo)
end
end
local teamDatas = self.controller:GetTeamOwnActorIds()
if #teamDatas > 4 then
self:ShowReplaceBtn({2,3,4}, true)
end
end
function UITeamView:ShowReplaceBtn(idxList, vis)
for i = 1, 4 do
local actorGo = self:GetBattleActorGo(i)
actorGo.heroLua.replaceBtn:SetActive(false)
end
for i = 1, #idxList do
local idx = idxList[i]
local actorGo = self:GetBattleActorGo(idx)
actorGo.heroLua.replaceBtn:SetActive(vis)
end
-- local battleActorIds = self.controller:GetTeamInBattleActorIds()
-- if battleActorIds~= nil then
-- for i = 2, #battleActorIds do
-- local actorGo = self:GetBattleActorGo(i)
-- actorGo.heroLua.replaceBtn:SetActive(vis)
-- end
-- end
end
function UITeamView:ShowCancelBtn(idx, isShow)
local actorGo = self:GetBattleActorGo(idx)
actorGo.heroLua.cancelBtn:SetActive(isShow)
end
function UITeamView:SetBattleHeroData(idx, uid, node)
local heroData = self.controller:GetHeroData(uid)
if heroData == nil or node == nil then
return
end
if heroData.mainRole then
node.heroLua.heroName.text.text = ManagerContainer.DataMgr.UserData:GetUserNickname()
else
node.heroLua.heroName.text.text = I18N.T(heroData.cfgData.Name)
end
node.heroLua.heroLv.text.text = tostring(heroData.logicData.baseLevel)
CommonUtil.LoadIcon(self, heroData.cfgData.JobIcon2, function (sprite)
node.heroLua.jobIcon.image.sprite = sprite
end)
node.heroLua.heroImg.rawImage.texture = AvatarRTMgr.Instance:GetActorRT(uid)
node.heroLua.replaceBtn:SetActive(false)
self.uiBase:AddButtonUniqueEventListener(node.heroLua.replaceBtn.button, self, self.OnClickReplaceBtn, uid, idx)
self.uiBase:AddButtonUniqueEventListener(node.heroLua.cancelBtn.button, self, self.OnClickCancelBtn, uid, idx)
node.heroLua.heroImg:SetActive(true)
node:SetActive(true)
end
function UITeamView:OnClickReplaceBtn(btn,param)
local uid = param[0]
local currIdx = param[1]
--LogError("[OnClickReplaceBtn] uid "..tostring(uid)..", "..tostring(currIdx))
self:ShowCancelBtn(currIdx, true)
self:ShowReplaceBtn({2,3,4}, false)
local teamDatas = self.controller:GetTeams()
for i = 1, #teamDatas do
if teamDatas[i].owned and teamDatas[i].logicData.isBattle == false then
local canSelectUid = teamDatas[i].uid
local idx = self.controller:GetHeroIdx(canSelectUid)
local curGo = self:GetTeamMemberGo(idx)
if curGo ~= nil then
local pos = curGo.rectTransform.anchoredPosition3D
pos.y = 60
LuaBattleBridge.BeginTweenRecTransformPos(curGo,0.1,pos)
end
else
table.insert(self.forbidClickIdxList, i)
end
end
-- if self.curSelectedUid ~= uid then
-- ManagerContainer.DataMgr.ArenaData:ReplaceBattleActorId(uid,self.curSelectedUid)
-- self:ShowBattleHeros()
-- self:RestorePos(self.curSelectedUid)
-- self:SetBattleState(self.curSelectedUid)
-- self:SetBattleState(uid)
-- self.curSelectedUid = 0
-- end
end
function UITeamView:OnClickCancelBtn(btn, param)
local uid = param[0]
local currIdx = param[1]
self.forbidClickIdxList = {}
self:ShowCancelBtn(currIdx, false)
self:ShowReplaceBtn({2,3,4}, true)
local teamDatas = self.controller:GetTeams()
for i = 1, #teamDatas do
if teamDatas[i].owned and teamDatas[i].logicData.isBattle == false then
local canSelectUid = teamDatas[i].uid
local idx = self.controller:GetHeroIdx(canSelectUid)
local curGo = self:GetTeamMemberGo(idx)
if curGo ~= nil then
local pos = curGo.rectTransform.anchoredPosition3D
pos.y = 0
LuaBattleBridge.BeginTweenRecTransformPos(curGo,0.1,pos)
end
else
end
end
end
function UITeamView:RestorePos(uid)
local idx = self.controller:GetHeroIdx(uid)
local curGo = self:GetTeamMemberGo(idx)
if curGo ~= nil then
local pos = curGo.rectTransform.anchoredPosition3D
pos.y = 0
LuaBattleBridge.BeginTweenRecTransformPos(curGo,0.1,pos)
end
end
function UITeamView:GetTeamMemberGo(idx)
if idx == 1 then
return self.hero1
elseif idx == 2 then
return self.hero2
elseif idx == 3 then
return self.hero3
elseif idx == 4 then
return self.hero4
elseif idx == 5 then
return self.hero5
elseif idx == 6 then
return self.hero6
end
return nil
end
function UITeamView:GetBattleActorGo(idx)
if idx == 1 then
return self.selectedHero1
elseif idx == 2 then
return self.selectedHero2
elseif idx == 3 then
return self.selectedHero3
else
return self.selectedHero4
end
end
function UITeamView:HideAllSelectedActorGO()
for i = 1, 4 do
local actorGo = self:GetBattleActorGo(i)
actorGo:SetActive(false)
end
end
function UITeamView:DestroyGOes()
if self.instGoes == nil then
return
end
CommonUtil.ClearGridViewItem(self, "Portrait")
CommonUtil.ClearGridViewItem(self, "SelectedHero")
for i = 1, #self.instGoes do
CommonUtil.DestroyGO(self.instGoes[i])
end
self.instGoes = nil
end
return UITeamView

View File

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: f89a9bfd02458064cae2f53be30d557c
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,333 @@
---@class UITeam__Generate_fighterPowerText
---@field public gameObject UnityEngine.GameObject
---@field public text UnityEngine.UI.Text
---@class UITeam__Generate_backBtn
---@field public gameObject UnityEngine.GameObject
---@field public button UnityEngine.UI.Button
---@class UITeam__Generate_hero6
---@field public gameObject UnityEngine.GameObject
---@field public rectTransform UnityEngine.RectTransform
---@class UITeam__Generate_hero5
---@field public gameObject UnityEngine.GameObject
---@field public rectTransform UnityEngine.RectTransform
---@class UITeam__Generate_hero4
---@field public gameObject UnityEngine.GameObject
---@field public rectTransform UnityEngine.RectTransform
---@class UITeam__Generate_hero3
---@field public gameObject UnityEngine.GameObject
---@field public rectTransform UnityEngine.RectTransform
---@class UITeam__Generate_hero2
---@field public gameObject UnityEngine.GameObject
---@field public rectTransform UnityEngine.RectTransform
---@class UITeam__Generate_hero1
---@field public gameObject UnityEngine.GameObject
---@field public rectTransform UnityEngine.RectTransform
---@class UITeam__Generate
---@field private gameObject UnityEngine.GameObject
---@field private transform UnityEngine.Transform
---@field private selectedHero2 UnityEngine.GameObject
---@field private selectedHero3 UnityEngine.GameObject
---@field private selectedHero1 UnityEngine.GameObject
---@field private selectedHero4 UnityEngine.GameObject
---@field private roleList UnityEngine.GameObject
---@field private roleListAnim UnityEngine.GameObject
---@field private hero1 UITeam__Generate_hero1
---@field private hero2 UITeam__Generate_hero2
---@field private hero3 UITeam__Generate_hero3
---@field private hero4 UITeam__Generate_hero4
---@field private hero5 UITeam__Generate_hero5
---@field private hero6 UITeam__Generate_hero6
---@field private backBtn UITeam__Generate_backBtn
---@field private fighterPowerText UITeam__Generate_fighterPowerText
local UITeamView = class("UITeamView", require("UIViewBase"))
function UITeamView:ctor()
end
---@private
function UITeamView:SetActive(result)
self.gameObject:SetActive(result)
end
---@private
function UITeamView:InitGenerate(Root, data)
self.transform = Root
self.inited = true
if self.super.Init then
self.super.Init(self)
end
local tmp
self:InitGenerate__1(Root,data)
self:InitGenerate__2(Root,data)
self:InitGenerate__3(Root,data)
self:InitGenerate__4(Root,data)
self:InitGenerate__5(Root,data)
self:InitGenerate__6(Root,data)
self:InitGenerate__7(Root,data)
self:InitGenerate__8(Root,data)
self:InitGenerate__9(Root,data)
self:InitGenerate__10(Root,data)
self:InitGenerate__11(Root,data)
self:InitGenerate__12(Root,data)
self:InitGenerate__13(Root,data)
self:InitGenerate__14(Root,data)
end
---@private
function UITeamView:InitGenerate__1(Root, data)
--[[
CenterView/Character2
--]]
local tmp = Root:Find("CenterView/Character2").gameObject
if tolua.getpeer(tmp) == nil then
tolua.setpeer(tmp, {})
end
self.selectedHero2 = tmp
end
---@private
function UITeamView:InitGenerate__2(Root, data)
--[[
CenterView/Character3
--]]
local tmp = Root:Find("CenterView/Character3").gameObject
if tolua.getpeer(tmp) == nil then
tolua.setpeer(tmp, {})
end
self.selectedHero3 = tmp
end
---@private
function UITeamView:InitGenerate__3(Root, data)
--[[
CenterView/Character1
--]]
local tmp = Root:Find("CenterView/Character1").gameObject
if tolua.getpeer(tmp) == nil then
tolua.setpeer(tmp, {})
end
self.selectedHero1 = tmp
end
---@private
function UITeamView:InitGenerate__4(Root, data)
--[[
CenterView/Character4
--]]
local tmp = Root:Find("CenterView/Character4").gameObject
if tolua.getpeer(tmp) == nil then
tolua.setpeer(tmp, {})
end
self.selectedHero4 = tmp
end
---@private
function UITeamView:InitGenerate__5(Root, data)
--[[
BottomView/RoleList
--]]
local tmp = Root:Find("BottomView/RoleList").gameObject
if tolua.getpeer(tmp) == nil then
tolua.setpeer(tmp, {})
end
self.roleList = tmp
end
---@private
function UITeamView:InitGenerate__6(Root, data)
--[[
BottomView/RoleList/RoleListAnim
--]]
local tmp = Root:Find("BottomView/RoleList/RoleListAnim").gameObject
if tolua.getpeer(tmp) == nil then
tolua.setpeer(tmp, {})
end
self.roleListAnim = tmp
end
---@private
function UITeamView:InitGenerate__7(Root, data)
--[[
BottomView/RoleList/RoleListAnim/Role1
--]]
local tmp = Root:Find("BottomView/RoleList/RoleListAnim/Role1").gameObject
if tolua.getpeer(tmp) == nil then
tolua.setpeer(tmp, {})
end
self.hero1 = tmp
tmp.rectTransform = tmp:GetComponent(Enum.TypeInfo.RectTransform)
end
---@private
function UITeamView:InitGenerate__8(Root, data)
--[[
BottomView/RoleList/RoleListAnim/Role2
--]]
local tmp = Root:Find("BottomView/RoleList/RoleListAnim/Role2").gameObject
if tolua.getpeer(tmp) == nil then
tolua.setpeer(tmp, {})
end
self.hero2 = tmp
tmp.rectTransform = tmp:GetComponent(Enum.TypeInfo.RectTransform)
end
---@private
function UITeamView:InitGenerate__9(Root, data)
--[[
BottomView/RoleList/RoleListAnim/Role3
--]]
local tmp = Root:Find("BottomView/RoleList/RoleListAnim/Role3").gameObject
if tolua.getpeer(tmp) == nil then
tolua.setpeer(tmp, {})
end
self.hero3 = tmp
tmp.rectTransform = tmp:GetComponent(Enum.TypeInfo.RectTransform)
end
---@private
function UITeamView:InitGenerate__10(Root, data)
--[[
BottomView/RoleList/RoleListAnim/Role4
--]]
local tmp = Root:Find("BottomView/RoleList/RoleListAnim/Role4").gameObject
if tolua.getpeer(tmp) == nil then
tolua.setpeer(tmp, {})
end
self.hero4 = tmp
tmp.rectTransform = tmp:GetComponent(Enum.TypeInfo.RectTransform)
end
---@private
function UITeamView:InitGenerate__11(Root, data)
--[[
BottomView/RoleList/RoleListAnim/Role5
--]]
local tmp = Root:Find("BottomView/RoleList/RoleListAnim/Role5").gameObject
if tolua.getpeer(tmp) == nil then
tolua.setpeer(tmp, {})
end
self.hero5 = tmp
tmp.rectTransform = tmp:GetComponent(Enum.TypeInfo.RectTransform)
end
---@private
function UITeamView:InitGenerate__12(Root, data)
--[[
BottomView/RoleList/RoleListAnim/Role6
--]]
local tmp = Root:Find("BottomView/RoleList/RoleListAnim/Role6").gameObject
if tolua.getpeer(tmp) == nil then
tolua.setpeer(tmp, {})
end
self.hero6 = tmp
tmp.rectTransform = tmp:GetComponent(Enum.TypeInfo.RectTransform)
end
---@private
function UITeamView:InitGenerate__13(Root, data)
--[[
BottomView/BtnBack
--]]
local tmp = Root:Find("BottomView/BtnBack").gameObject
if tolua.getpeer(tmp) == nil then
tolua.setpeer(tmp, {})
end
self.backBtn = tmp
tmp.button = tmp:GetComponent(Enum.TypeInfo.Button)
end
---@private
function UITeamView:InitGenerate__14(Root, data)
--[[
BottomView/FightPowerInfo/Val
--]]
local tmp = Root:Find("BottomView/FightPowerInfo/Val").gameObject
if tolua.getpeer(tmp) == nil then
tolua.setpeer(tmp, {})
end
self.fighterPowerText = tmp
tmp.text = tmp:GetComponent(Enum.TypeInfo.Text)
end
---@private
function UITeamView:GenerateDestroy()
if tolua.getpeer(self.selectedHero2) ~= nil then
tolua.setpeer(self.selectedHero2, nil)
end
self.selectedHero2 = nil
if tolua.getpeer(self.selectedHero3) ~= nil then
tolua.setpeer(self.selectedHero3, nil)
end
self.selectedHero3 = nil
if tolua.getpeer(self.selectedHero1) ~= nil then
tolua.setpeer(self.selectedHero1, nil)
end
self.selectedHero1 = nil
if tolua.getpeer(self.selectedHero4) ~= nil then
tolua.setpeer(self.selectedHero4, nil)
end
self.selectedHero4 = nil
if tolua.getpeer(self.roleList) ~= nil then
tolua.setpeer(self.roleList, nil)
end
self.roleList = nil
if tolua.getpeer(self.roleListAnim) ~= nil then
tolua.setpeer(self.roleListAnim, nil)
end
self.roleListAnim = nil
if tolua.getpeer(self.hero1) ~= nil then
tolua.setpeer(self.hero1, nil)
end
self.hero1 = nil
if tolua.getpeer(self.hero2) ~= nil then
tolua.setpeer(self.hero2, nil)
end
self.hero2 = nil
if tolua.getpeer(self.hero3) ~= nil then
tolua.setpeer(self.hero3, nil)
end
self.hero3 = nil
if tolua.getpeer(self.hero4) ~= nil then
tolua.setpeer(self.hero4, nil)
end
self.hero4 = nil
if tolua.getpeer(self.hero5) ~= nil then
tolua.setpeer(self.hero5, nil)
end
self.hero5 = nil
if tolua.getpeer(self.hero6) ~= nil then
tolua.setpeer(self.hero6, nil)
end
self.hero6 = nil
if tolua.getpeer(self.backBtn) ~= nil then
tolua.setpeer(self.backBtn, nil)
end
self.backBtn = nil
if tolua.getpeer(self.fighterPowerText) ~= nil then
tolua.setpeer(self.fighterPowerText, nil)
end
self.fighterPowerText = nil
self.transform = nil
self.gameObject = nil
self.inited = false
end
return UITeamView

View File

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 6a87e6c70d07133409b73d47b4edb365
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant: