| | |
| | | |
| | | public Transform buffLabelNode; |
| | | |
| | | private BattleField battleField; |
| | | |
| | | private List<DamageContent> damageContentList = new List<DamageContent>(); |
| | | |
| | | // 生命周期 |
| | | protected override void InitComponent() |
| | | { |
| | |
| | | protected override void OnClose() |
| | | { |
| | | base.OnClose(); |
| | | battleField.OnBattlePause -= OnBattlePause; |
| | | battleField = null; |
| | | } |
| | | |
| | | protected override void NextFrameAfterOpen() |
| | |
| | | base.CompleteClose(); |
| | | } |
| | | |
| | | private void RemoveDamageContent(DamageContent content) |
| | | { |
| | | damageContentList.Remove(content); |
| | | damagePrefabPool.Release(content.gameObject); |
| | | } |
| | | |
| | | private void OnDamageTaken(BattleObject bo, List<int> damageList) |
| | | { |
| | | GameObject damageContent = damagePrefabPool.Request(); |
| | | DamageContent content = damageContent.GetComponent<DamageContent>(); |
| | | damageContent.transform.SetParent(damageNode, false); |
| | | damageContent.transform.localPosition = new Vector3(damageContent.transform.localPosition.x, damageContent.transform.localPosition.y, 0); |
| | | content.SetDamage(damageList, () => damagePrefabPool.Release(damageContent)); |
| | | content.SetDamage(damageList, () => RemoveDamageContent(content)); |
| | | damageContentList.Add(content); |
| | | |
| | | // heroGo 的 parent 作为参考节点 |
| | | var heroGo = bo.heroGo; |
| | |
| | | { |
| | | |
| | | } |
| | | |
| | | public void SetBattleField(BattleField _battleField) |
| | | { |
| | | if (battleField != null) |
| | | { |
| | | battleField.OnBattlePause -= OnBattlePause; |
| | | } |
| | | |
| | | battleField = _battleField; |
| | | battleField.OnBattlePause += OnBattlePause; |
| | | } |
| | | |
| | | private void OnBattlePause(bool isPause) |
| | | { |
| | | // 游戏暂停 |
| | | if (isPause) |
| | | { |
| | | foreach (var content in damageContentList) |
| | | { |
| | | content.Stop(); |
| | | } |
| | | } |
| | | // 游戏恢复 |
| | | else |
| | | { |
| | | foreach (var content in damageContentList) |
| | | { |
| | | content.Resume(); |
| | | } |
| | | } |
| | | } |
| | | } |