From 83ff2cfc367d3227449fa8414a25541374929ecb Mon Sep 17 00:00:00 2001
From: yyl <yyl>
Date: 星期四, 29 一月 2026 15:43:50 +0800
Subject: [PATCH] 125 战斗 命格复活支持
---
Main/System/Battle/BattleObject/BattleObjMgr.cs | 45 +++++++++++++++++++++++++++++++++++++++------
1 files changed, 39 insertions(+), 6 deletions(-)
diff --git a/Main/System/Battle/BattleObject/BattleObjMgr.cs b/Main/System/Battle/BattleObject/BattleObjMgr.cs
index 145cdac..5913231 100644
--- a/Main/System/Battle/BattleObject/BattleObjMgr.cs
+++ b/Main/System/Battle/BattleObject/BattleObjMgr.cs
@@ -14,6 +14,10 @@
public Dictionary<int, BattleObject> allBattleObjDict = new Dictionary<int, BattleObject>();
+ public MinggeBattleObject redMingge = null;
+
+ public MinggeBattleObject blueMingge = null;
+
protected BattleField battleField;
public void Init(BattleField _battleField, TeamBase _redTeam, TeamBase _blueTeam)
@@ -48,8 +52,24 @@
BattleObject battleObj = BattleObjectFactory.CreateBattleObject(battleField, posNodeList, teamHero, _Camp);
battleObj.SetActive(active);
allBattleObjDict.Add(battleObj.ObjID, battleObj);
- campDict.Add(teamHero.positionNum, battleObj);
+ campDict.Add(battleObj.GetPositionNum(), battleObj);
battleObj.SetSpeedRatio(battleField.speedRatio);
+ }
+ }
+
+ if (teamBase.teamMingge != null)
+ {
+ BattleObject minggeObj = BattleObjectFactory.CreateMinggeBattleObject(battleField, teamBase, _Camp);
+ allBattleObjDict.Add(minggeObj.ObjID, minggeObj);
+ campDict.Add(minggeObj.GetPositionNum(), minggeObj);
+ minggeObj.SetSpeedRatio(battleField.speedRatio);
+ if (_Camp == BattleCamp.Red)
+ {
+ redMingge = minggeObj as MinggeBattleObject;
+ }
+ else
+ {
+ blueMingge = minggeObj as MinggeBattleObject;
}
}
}
@@ -60,6 +80,17 @@
{
return battleObj;
}
+
+ if (blueMingge != null && blueMingge.ObjID == objId)
+ {
+ return blueMingge;
+ }
+
+ if (redMingge != null && redMingge.ObjID == objId)
+ {
+ return redMingge;
+ }
+
return null;
}
@@ -114,11 +145,11 @@
{
if (battleObj.Camp == BattleCamp.Red)
{
- redCampDict.Remove(battleObj.teamHero.positionNum);
+ redCampDict.Remove(battleObj.GetPositionNum());
}
else
{
- blueCampDict.Remove(battleObj.teamHero.positionNum);
+ blueCampDict.Remove(battleObj.GetPositionNum());
}
allBattleObjDict.Remove((int)objID);
BattleObjectFactory.DestroyBattleObject((int)objID, battleObj);
@@ -166,6 +197,8 @@
DestroyTeam(redCampDict);
DestroyTeam(blueCampDict);
allBattleObjDict.Clear();
+ redMingge = null;
+ blueMingge = null;
}
public void Run()
@@ -290,7 +323,7 @@
//鏆傛椂娌℃湁鍙敜鐗�
// 鏀惧湪绗�7鏍肩殑BOSS鍚庢帓鐨勩�傘�備綅缃斁鍦ㄦ涓棿
// a)鍓嶆帓,1銆�2銆�3鍙蜂负鍓嶆帓,鍓嶆帓鍏ㄩ儴闃典骸鍚�,4銆�5銆�6鍙峰嵆鏄墠鎺掍篃鏄悗鎺� 7鍏跺疄涔熸槸鍚庢帓
- List<BattleObject> frontList = new List<BattleObject>(from BO in returnList where BO.teamHero.positionNum < 3 && !BO.IsDead() select BO);
+ List<BattleObject> frontList = new List<BattleObject>(from BO in returnList where BO.GetPositionNum() < 3 && !BO.IsDead() select BO);
if (frontList.Count == 0)
{
frontList.AddRange(returnList);
@@ -298,7 +331,7 @@
returnList = frontList;
break;
case SkillTargetRangeType.Back:
- List<BattleObject> backList = new List<BattleObject>(from BO in returnList where BO.teamHero.positionNum >= 3 && !BO.IsDead() select BO);
+ List<BattleObject> backList = new List<BattleObject>(from BO in returnList where BO.GetPositionNum() >= 3 && !BO.IsDead() select BO);
if (backList.Count == 0)
{
backList.AddRange(returnList);
@@ -336,7 +369,7 @@
loweastHpObj = returnList[i];
continue;
}
- if (returnList[i].teamHero.curHp < loweastHpObj.teamHero.curHp)
+ if (returnList[i].GetCurHp() < loweastHpObj.GetCurHp())
{
loweastHpObj = returnList[i];
}
--
Gitblit v1.8.0