NLDClient-yudde/ProjectNLD/Assets/Code/Scripts/Gameplay/Level/Level.Event.cs

64 lines
2.0 KiB
C#
Raw Normal View History

2023-08-22 19:08:45 +08:00
using System.Collections;
using System.Threading.Tasks;
using Cysharp.Threading.Tasks;
using Framework;
using Gameplay.Character;
using Gameplay.Common;
namespace Gameplay.Level
{
public partial class Level
{
private void RegisterAllEvent()
{
EventManager.Instance.Register<GameUnit>(EventManager.EventName.INFIGHT_UNIT_DEAD, _OnUnitDead);
2023-11-06 18:20:55 +08:00
EventManager.Instance.Register<GameUnit>(EventManager.EventName.INFIGHT_UNIT_REMOVE, _OnUnitRemove);
2023-08-22 19:08:45 +08:00
EventManager.Instance.Register<GameUnit>(EventManager.EventName.LevelUnitBorn, _OnUnitBorn);
}
private void UnRegisterAllEvent()
{
EventManager.Instance.Unregister<GameUnit>(EventManager.EventName.LevelUnitBorn, _OnUnitBorn);
2023-11-06 18:20:55 +08:00
EventManager.Instance.Unregister<GameUnit>(EventManager.EventName.INFIGHT_UNIT_REMOVE, _OnUnitRemove);
2023-08-22 19:08:45 +08:00
EventManager.Instance.Unregister<GameUnit>(EventManager.EventName.INFIGHT_UNIT_DEAD, _OnUnitDead);
}
private void _OnUnitDead(GameUnit unit)
{
var level = LevelManager.Instance.CurrentLevel;
if (level == null) return;
if (level.selectUnit == unit)
{
level.UnSelectUnit();
}
}
2023-11-06 18:20:55 +08:00
private void _OnUnitRemove(GameUnit unit)
2023-08-22 19:08:45 +08:00
{
switch (unit.gameunitType)
{
case EGameUnitType.Character:
OnCharacterDeadRemove(unit as Character.Character);
break;
}
}
private void OnCharacterDeadRemove(Character.Character character)
{
StarGoalOnCharacterDeadRemove(character);
}
private void _OnUnitBorn(GameUnit unit)
{
if (unit.gameunitType == EGameUnitType.Character)
{
OnCharacterBorn(unit as Character.Character);
}
}
private void OnCharacterBorn(Character.Character character)
{
StarGoalOnCharacterBorn(character);
}
}
}