CombatNodeComponent 战斗节点功能补全

- 失败逻辑补全:添加基地血量,当血量归0时强制结束关卡
- `CombatInfoForm` 刷新逻辑补全:通过订阅 `CombatCoinChanged/Process/BaseHpChangedEventArgs` 来更新 UI,同时可以避免一点小变动刷新整个 UI
- `CombatSelectForm` 逻辑优化:订阅 `CombatCoinChanged` 来实时更新当前 Coin 是否满足操作条件
This commit is contained in:
SepComet
2026-03-02 12:06:36 +08:00
parent 5c7501d4fb
commit c576224991
23 changed files with 625 additions and 85 deletions
@@ -91,7 +91,6 @@ namespace GeometryTD.Entity
_maxHealth = 0;
_currentHealth = 0;
_activeEnemies.Remove(this);
_killedEnemyEntityIds.Remove(Id);
base.OnHide(isShutdown, userData);
}
@@ -99,10 +98,6 @@ namespace GeometryTD.Entity
private void OnDestroy()
{
_activeEnemies.Remove(this);
if (Entity != null)
{
_killedEnemyEntityIds.Remove(Entity.Id);
}
}
public void TakeDamage(int damage, AttackPropertyType attackPropertyType)
@@ -196,4 +191,4 @@ namespace GeometryTD.Entity
GameEntry.Entity.HideEntity(Entity);
}
}
}
}
@@ -18,8 +18,8 @@ namespace GeometryTD.Entity
[SerializeField] private bool _enableCombatSelectInput = true;
[SerializeField] private int _towerTypeId = DefaultTowerTypeId;
[SerializeField] private int[] _buildTowerCosts = { 80, 120, 160, 220 };
[SerializeField] private int _upgradeCost = 80;
[SerializeField] private int[] _buildTowerCosts = { 40, 60, 60, 80 };
[SerializeField] private int _upgradeCost = 50;
[SerializeField] private int _destroyGain = 40;
private MapDataRefs _mapDataRefs;