From cb653cf75b17b9bdca0b5b9e6b88edf1ca72e90c Mon Sep 17 00:00:00 2001
From: hch <305670599@qq.com>
Date: 星期五, 17 十月 2025 09:54:11 +0800
Subject: [PATCH] 0312 删除旧的日常代码3
---
Main/System/Team/TeamBase.cs | 138 ++++++++++++++++++++++++++++++++++++++++-----
1 files changed, 121 insertions(+), 17 deletions(-)
diff --git a/Main/System/Team/TeamBase.cs b/Main/System/Team/TeamBase.cs
index 14622c7..84d2361 100644
--- a/Main/System/Team/TeamBase.cs
+++ b/Main/System/Team/TeamBase.cs
@@ -53,8 +53,8 @@
{
var fightObj = lineUp.ObjList[i];
TeamHero hero = new TeamHero(fightObj, this);
- tempHeroes[fightObj.PosNum] = hero;
- serverHeroes[fightObj.PosNum] = hero;
+ tempHeroes[hero.positionNum] = hero;
+ serverHeroes[hero.positionNum] = hero;
}
else
{
@@ -187,9 +187,10 @@
}
return null;
}
+
public TeamHero GetHeroByHeroID(int heroId)
- {
+ {
foreach (var hero in tempHeroes)
{
if (hero != null && hero.heroId == heroId)
@@ -226,6 +227,76 @@
return false;
}
+ public bool HasHeroInServer(string guid)
+ {
+ foreach (var hero in serverHeroes)
+ {
+ if (hero != null && hero.guid == guid)
+ {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ public TeamHero GetServerHeroByIndex(int index)
+ {
+ if (index < 0 || index >= serverHeroes.Length)
+ {
+ return null;
+ }
+ return serverHeroes[index];
+ }
+
+
+ //鑾峰彇鎵�鏈変笂闃电殑姝﹀皢
+ public List<TeamHero> GetHerosOnTeam()
+ {
+ List<TeamHero> tmpHeros = new List<TeamHero>();
+ foreach (var hero in tempHeroes)
+ {
+ if (hero != null)
+ {
+ tmpHeros.Add(hero);
+ }
+ }
+ return tmpHeros;
+ }
+
+ public TeamHero GetNextServerHero(string guid)
+ {
+ if (string.IsNullOrEmpty(guid))
+ {
+ //鍙栫涓�涓�
+ foreach (var hero in serverHeroes)
+ {
+ if (hero != null)
+ {
+ return hero;
+ }
+ }
+ return null;
+ }
+ else
+ {
+ //鍙栦笅涓�涓�
+ bool findNext = false;
+ foreach (var hero in serverHeroes)
+ {
+ if (hero != null && hero.guid == guid)
+ {
+ findNext = true;
+ }
+ else if (findNext && hero != null)
+ {
+ return hero;
+ }
+ }
+ //娌℃壘鍒� 鍙栫涓�涓�
+ return GetNextServerHero("");
+ }
+ }
+
//瀹㈡埛绔粠0寮�濮嬶紝鏈嶅姟绔粠1寮�濮�
public int GetEmptyPosition()
{
@@ -237,6 +308,18 @@
}
}
return -1; // No empty position
+ }
+
+ public int GetPosition(string guid)
+ {
+ foreach (var hero in serverHeroes)
+ {
+ if (hero != null && hero.guid == guid)
+ {
+ return hero.positionNum;
+ }
+ }
+ return -1;
}
// 甯冮樀鎺ュ彛
@@ -252,7 +335,17 @@
tempHeroes[posNum] = hero;
}
- public void AddHero(HeroInfo heroInfo, int targetPosition)
+ // 甯冮樀鎺ュ彛: 鎭㈠闃靛
+ public void RestoreTeam()
+ {
+ for (int i = 0; i < tempHeroes.Length; i++)
+ {
+ tempHeroes[i] = serverHeroes[i];
+ }
+ }
+
+ //checkLock 锛氭槸鍚﹂獙璇佷笂闃典汉鏁伴檺鍒�
+ public void AddHero(HeroInfo heroInfo, int targetPosition, bool checkLock)
{
if (targetPosition < 0 || targetPosition >= tempHeroes.Length)
{
@@ -260,32 +353,43 @@
return;
}
- TeamHero targetHero = tempHeroes[targetPosition];
+ if (checkLock)
+ {
+ var lockCnt = HeroUIManager.Instance.lockIndexList.Count;
+ if (lockCnt > 0 && TeamConst.MaxTeamHeroCount - GetHerosOnTeam().Count <= lockCnt)
+ {
+ HeroUIManager.Instance.ShowUnLockTip(HeroUIManager.Instance.lockIndexList[0]);
+ return;
+ }
+ }
- if (null == targetHero)
- {
- TeamHero newHero = new TeamHero(heroInfo, targetPosition, this);
- SetTeamHero(targetPosition, newHero);
- }
- else
- {
- SetTeamHero(targetPosition, new TeamHero(heroInfo, targetPosition, this));
- }
+ SetTeamHero(targetPosition, new TeamHero(heroInfo, targetPosition, this));
}
-
+ //checkLock 锛氭槸鍚﹂獙璇佷笂闃典汉鏁伴檺鍒�
// add鍙彲鑳芥槸鐐逛笅闈㈠崱鐗�
- public bool AddHero(HeroInfo heroInfo, out int pos)
+ public bool AddHero(HeroInfo heroInfo, out int pos, bool checkLock)
{
pos = -1;
if (heroInfo == null || heroInfo.itemHero == null) return false;
+
+ if (checkLock)
+ {
+ var lockCnt = HeroUIManager.Instance.lockIndexList.Count;
+ if (lockCnt > 0 && TeamConst.MaxTeamHeroCount - GetHerosOnTeam().Count <= lockCnt)
+ {
+ HeroUIManager.Instance.ShowUnLockTip(HeroUIManager.Instance.lockIndexList[0]);
+ return false;
+ }
+ }
+
// 鍚屼竴鑻遍泟 鍙兘涓婇樀涓�涓�
if (GetHeroByHeroID(heroInfo.heroId) != null)
{
SysNotifyMgr.Instance.ShowTip("HeroFunc2");
- return false;
+ return false;
}
else
{
--
Gitblit v1.8.0