64 lines
2.0 KiB
C#
64 lines
2.0 KiB
C#
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);
|
|
EventManager.Instance.Register<GameUnit>(EventManager.EventName.INFIGHT_UNIT_REMOVE, _OnUnitRemove);
|
|
EventManager.Instance.Register<GameUnit>(EventManager.EventName.LevelUnitBorn, _OnUnitBorn);
|
|
}
|
|
|
|
private void UnRegisterAllEvent()
|
|
{
|
|
EventManager.Instance.Unregister<GameUnit>(EventManager.EventName.LevelUnitBorn, _OnUnitBorn);
|
|
EventManager.Instance.Unregister<GameUnit>(EventManager.EventName.INFIGHT_UNIT_REMOVE, _OnUnitRemove);
|
|
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();
|
|
}
|
|
}
|
|
|
|
private void _OnUnitRemove(GameUnit unit)
|
|
{
|
|
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);
|
|
}
|
|
}
|
|
} |