public async void Execute()
        {
            var dt = Time.deltaTime;

            _timer += dt;

            if (_timer >= 1.5f)
            {
                var playerEntity = _contexts.game.playerTagEntity;

                _timer = 0;

                var x   = Random.Range(-9f, 9f);
                var y   = Random.Range(-5f, 5f);
                var pos = new Vector2(x, y) + playerEntity.posComp.Value;

                var enemyEntity = EnemyUtil.CreateEnemyEntity(_contexts,
                                                              new Vector2(x, y),
                                                              Random.Range(0, 360f));

                await Task.Delay(
                    (int)(enemyEntity.GetStat(StatFlag.FollowStartTime) *
                          1000));

                if (!enemyEntity.IsValid())
                {
                    return;
                }

                enemyEntity.AddTargetComp(
                    playerEntity.idComp.Value,
                    ActorTag.Player,
                    FindTargetType.Given,
                    LostTargetActionType.None);
            }
        }
 protected override void OnDestroyEntityHandler()
 {
     EnemyUtil.CreateCoin(_selfEntity);
     base.OnDestroyEntityHandler();
 }