|
@@ -13,6 +13,11 @@ namespace GameLogic.Combat.CombatType
|
|
|
{
|
|
|
private TestCombatHeroConfig testCombatHeroConfig;
|
|
|
|
|
|
+ /// <summary>
|
|
|
+ /// 等待复活
|
|
|
+ /// </summary>
|
|
|
+ protected bool _isAwaitResurrection;
|
|
|
+
|
|
|
// protected TestCombatHeroConfig.EnemyGroup currEnemyGroup;
|
|
|
/// <summary>
|
|
|
/// 当前关卡战斗的波次节点
|
|
@@ -30,8 +35,19 @@ namespace GameLogic.Combat.CombatType
|
|
|
/// </summary>
|
|
|
protected int _currNodeWavesIndex;
|
|
|
|
|
|
- public int exp;
|
|
|
+ public int exp
|
|
|
+ {
|
|
|
+ get { return _exp; }
|
|
|
+ set
|
|
|
+ {
|
|
|
+ _exp = value;
|
|
|
+ OnExpAlter?.Invoke();
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ private int _exp;
|
|
|
public bool isBossCombat;
|
|
|
+ public System.Action OnExpAlter;
|
|
|
|
|
|
protected List<string> equipName = new List<string>()
|
|
|
{
|
|
@@ -48,19 +64,57 @@ namespace GameLogic.Combat.CombatType
|
|
|
_currLevelBattleNodeIndex = 0;
|
|
|
}
|
|
|
|
|
|
- protected override void ProHeroDie(CombatHeroEntity combatHeroEntity)
|
|
|
+ protected override void ProHeroDie(CombatHeroEntity combatHeroEntity, HarmReturnInfo harmReturnInfo)
|
|
|
{
|
|
|
- if (!isBossCombat)
|
|
|
+ if (harmReturnInfo.harmType == HarmType.SystemKo)
|
|
|
{
|
|
|
- MiniMonsterDie(combatHeroEntity);
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ if (combatHeroEntity.IsEnemy) //怪死了
|
|
|
+ {
|
|
|
+ if (!isBossCombat)
|
|
|
+ {
|
|
|
+ MiniMonsterDie(combatHeroEntity);
|
|
|
+ }
|
|
|
+ else if (combatHeroEntity.CurrCombatHeroInfo.heroType == 4) ///boss死了
|
|
|
+ {
|
|
|
+ exp = 0;
|
|
|
+ BossKo();
|
|
|
+ }
|
|
|
}
|
|
|
- else if (combatHeroEntity.CurrCombatHeroInfo.heroType == 4) ///boss死了
|
|
|
+ else //英雄死了
|
|
|
{
|
|
|
- BossKo();
|
|
|
+ CombatHeroEntity[] myHero = combatController.CombatHeroController.GetHero(false);
|
|
|
+ if (myHero == null || myHero.Length <= 0) //死完了
|
|
|
+ {
|
|
|
+ HarmReturnInfo newharm = new HarmReturnInfo();
|
|
|
+ newharm.harmType = HarmType.SystemKo;
|
|
|
+ CombatHeroEntity[] allHero = combatController.CombatHeroController.GetHero(true);
|
|
|
+ List<CombatHeroEntity> heroEntities = new List<CombatHeroEntity>();
|
|
|
+ heroEntities.AddRange(allHero);
|
|
|
+ for (int i = 0; i < heroEntities.Count; i++)
|
|
|
+ {
|
|
|
+ heroEntities[i].HeroDie(newharm);
|
|
|
+ }
|
|
|
+
|
|
|
+ Debug.Log("英雄死完了,等待全部英雄复活");
|
|
|
+ isActiveCombat = false;
|
|
|
+ _isAwaitResurrection = true;
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
|
|
|
|
|
|
+ private void ResurrectionFinish()
|
|
|
+ {
|
|
|
+
|
|
|
+ _isAwaitResurrection = false;
|
|
|
+ _currLevelBattleNodeIndex = 0;
|
|
|
+ InitNewMonsterConfig();
|
|
|
+ isActiveCombat = true;
|
|
|
+ }
|
|
|
+
|
|
|
private void MiniMonsterDie(CombatHeroEntity combatHeroEntity)
|
|
|
{
|
|
|
if (isBossCombat)
|
|
@@ -241,6 +295,16 @@ namespace GameLogic.Combat.CombatType
|
|
|
|
|
|
protected override void ProUpdate(float t)
|
|
|
{
|
|
|
+ if (_isAwaitResurrection)
|
|
|
+ {
|
|
|
+ CombatHeroEntity[] myHero = combatController.CombatHeroController.GetHero(false);
|
|
|
+ if (myHero!=null&&myHero.Length >= 4)
|
|
|
+ {
|
|
|
+ ResurrectionFinish();
|
|
|
+ }
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
if (!isActiveCombat)
|
|
|
{
|
|
|
return;
|