From 39001a600fcae2bcf27c225df8752d75fb92fef4 Mon Sep 17 00:00:00 2001
From: yyl <yyl>
Date: 星期五, 31 十月 2025 11:18:26 +0800
Subject: [PATCH] Merge branch 'master' of http://192.168.1.20:10010/r/Project_SG_scripts
---
Main/System/Battle/BattleObject/BattleObjMgr.cs | 48 ++++++++++++++++++++++++++++++++++++++++--------
1 files changed, 40 insertions(+), 8 deletions(-)
diff --git a/Main/System/Battle/BattleObject/BattleObjMgr.cs b/Main/System/Battle/BattleObject/BattleObjMgr.cs
index fccf934..446cc62 100644
--- a/Main/System/Battle/BattleObject/BattleObjMgr.cs
+++ b/Main/System/Battle/BattleObject/BattleObjMgr.cs
@@ -12,25 +12,26 @@
private Dictionary<int, BattleObject> redCampDict = new Dictionary<int, BattleObject>();
private Dictionary<int, BattleObject> blueCampDict = new Dictionary<int, BattleObject>();
- protected Dictionary<int, BattleObject> allBattleObjDict = new Dictionary<int, BattleObject>();
+ public Dictionary<int, BattleObject> allBattleObjDict = new Dictionary<int, BattleObject>();
protected BattleField battleField;
public void Init(BattleField _battleField, TeamBase _redTeam, TeamBase _blueTeam)
{
+ Release();
battleField = _battleField;
ReloadTeam(_redTeam, BattleCamp.Red);
- ReloadTeam(_blueTeam, BattleCamp.Blue);
+ ReloadTeam(_blueTeam, BattleCamp.Blue, false);
}
- public void ReloadTeam(TeamBase teamBase, BattleCamp _camp)
+ public void ReloadTeam(TeamBase teamBase, BattleCamp _camp, bool active = true)
{
var posNodeList = _camp == BattleCamp.Red ? battleField.battleRootNode.redTeamNodeList : battleField.battleRootNode.blueTeamNodeList;
var campDict = _camp == BattleCamp.Red ? redCampDict : blueCampDict;
- CreateTeam(posNodeList, campDict, teamBase, _camp);
+ CreateTeam(posNodeList, campDict, teamBase, _camp, active);
}
- protected void CreateTeam(List<GameObject> posNodeList, Dictionary<int, BattleObject> campDict, TeamBase teamBase, BattleCamp _Camp)
+ protected void CreateTeam(List<GameObject> posNodeList, Dictionary<int, BattleObject> campDict, TeamBase teamBase, BattleCamp _Camp, bool active)
{
DestroyTeam(campDict);
if (teamBase == null)
@@ -45,8 +46,10 @@
if (teamHero != null)
{
BattleObject battleObj = BattleObjectFactory.CreateBattleObject(battleField, posNodeList, teamHero, _Camp);
+ battleObj.heroGo.SetActive(active);
allBattleObjDict.Add(battleObj.ObjID, battleObj);
campDict.Add(teamHero.positionNum, battleObj);
+ battleObj.SetSpeedRatio(battleField.speedRatio);
}
}
}
@@ -109,9 +112,15 @@
{
if (allBattleObjDict.TryGetValue((int)objID, out BattleObject battleObj))
{
+ if (battleObj.Camp == BattleCamp.Red)
+ {
+ redCampDict.Remove(battleObj.teamHero.positionNum);
+ }
+ else
+ {
+ blueCampDict.Remove(battleObj.teamHero.positionNum);
+ }
allBattleObjDict.Remove((int)objID);
- redCampDict.Remove((int)objID);
- blueCampDict.Remove((int)objID);
BattleObjectFactory.DestroyBattleObject((int)objID, battleObj);
}
}
@@ -122,10 +131,11 @@
foreach (var item in campDict)
{
BattleObject battleObj = item.Value;
+ var positionNum = item.Key;
if (battleObj != null)
{
allBattleObjDict.Remove(battleObj.ObjID);
- BattleObjectFactory.DestroyBattleObject(item.Key, battleObj);
+ BattleObjectFactory.DestroyBattleObject(battleObj.ObjID, battleObj);
}
}
campDict.Clear();
@@ -217,6 +227,28 @@
return blueCampList;
}
+ public BattleObject GetBattleObjectByIndex(BattleCamp camp, int selfIndex)
+ {
+ if (camp == BattleCamp.Red)
+ {
+ redCampDict.TryGetValue(selfIndex, out BattleObject battleObj);
+ return battleObj;
+ }
+ else
+ {
+ blueCampDict.TryGetValue(selfIndex, out BattleObject battleObj);
+ return battleObj;
+ }
+ }
+
+ public void SetSpeedRatio(float ratio)
+ {
+ foreach (var obj in allBattleObjDict.Values)
+ {
+ obj.SetSpeedRatio(ratio);
+ }
+ }
+
#if UNITY_EDITOR_STOP_USING
public void ReviveAll()
{
--
Gitblit v1.8.0