private void Start()
    {
        _damageDealer = DamageDealer.NewEnemy();
        _damageDealer.SetDamageFlags(true, false, true);
        _damageDealer.SetDirection(DamageDirection.Neutral, transform);
        _damageDealer.attackType = AttackType.Hit;
        // _damageDealer.damage = LevelMonsterStrengthManager.Instance.GetDamage ( DamageSource, DamageKey );

        initialState = State.Fly;
    }
    public override void Awake()
    {
        eventHandler           = Owner.transform.Find("ActionAnimator").GetComponent <MonsterAnimationEventHandler> ();
        faceDirectionComponent = Owner.GetComponent <FaceDirectionComponent> ();

        _damageDealer = DamageDealer.NewEnemy();
        _damageDealer.SetDamageFlags(true, false, true);
        _damageDealer.SetDirection(DamageDirection.Neutral, Owner.transform);
        _damageDealer.ignoreReceiverOnDealDamage = false;
        _damageDealer.attackType = AttackType.Hit;
        // _damageDealer.damage     = LevelMonsterStrengthManager.Instance.GetDamage ( Owner.name, DamageKey );
    }
    private void Start()
    {
        _damageDealer = DamageDealer.NewEnemy();
        _damageDealer.SetDamageFlags(true, false, true);
        _damageDealer.SetDirection(DamageDirection.Neutral, transform);
        _damageDealer.ignoreReceiverOnDealDamage = true;
        _damageDealer.attackType = AttackType.Hit;
        // _damageDealer.damage = LevelMonsterStrengthManager.Instance.GetDamage ( DamageSource, DamageKey );

        initialState = StartState;

        _flyTrackEnable = DamageSource != "Boss08_a";
        _flyTrackEnable = true;
        _flyTrackWaitTimeRandomRange = Random.Range(FlyTrackWaitTime - FlyTrackWaitTimeRandomRange,
                                                    FlyTrackWaitTime + FlyTrackWaitTimeRandomRange);
    }