public async Task OnTurnStart(PassiveEffectInfo passiveEffectInfo)
    {
        var battler = passiveEffectInfo.Target;

        Debug.Log($"{battler.BattlerName} -> [Defending]=false");
        battler.BattleDictionary["Defending"] = false;
    }
    public async Task OnTurnStart(PassiveEffectInfo passiveEffectInfo)
    {
        var source = passiveEffectInfo.Source;
        var target = passiveEffectInfo.Target;

        target.QueueAction(() =>
                           BattleController.Instance.battleCanvas.battleInfoPanel.ShowInfo(passiveEffectInfo.PassiveEffectSourceName));

        //await battler.ReceiveEffect(Source, null, DamageEffect);
        await target.ReceiveEffect(new EffectInfo
        {
            SkillInfo = new SkillInfo
            {
                HasCrit = false,
                Skill   = null,
                Source  = source,
                Target  = target
            },
            Effect = DamageEffect
        });

        target.QueueAction(() =>
        {
            BattleController.Instance.battleCanvas.battleInfoPanel.HideInfo();
        });
    }
    public async Task OnTurnStart(PassiveEffectInfo passiveEffectInfo)
    {
        int healAmount;

        if (!IsPercentageValue)
        {
            healAmount = FlatValue;
        }
        else
        {
            healAmount = (int)(passiveEffectInfo.Target.Stats.MaxHp * PercentageValue);
        }

        var effect = new HealEffect
        {
            HealAmount = healAmount
        };

        passiveEffectInfo.Target.QueueAction(() =>
        {
            BattleController.Instance.battleCanvas.battleInfoPanel.ShowInfo(passiveEffectInfo.PassiveEffectSourceName);
            //BattleController.Instance.battleCanvas.BindActionArrow(battler.RectTransform);
        });

        if (Animation != null)
        {
            await Animation.PlaySkillAnimation(passiveEffectInfo.Source, new [] { passiveEffectInfo.Target });
        }

        Debug.Log($"{passiveEffectInfo.Source.BattlerName} curou {healAmount} em {passiveEffectInfo.Target.BattlerName}");

        //await battler.ReceiveEffect(battler, null, effect);
        await passiveEffectInfo.Target.ReceiveEffect(new EffectInfo
        {
            SkillInfo = new SkillInfo
            {
                HasCrit = false,
                Skill   = null,
                Source  = passiveEffectInfo.Source,
                Target  = passiveEffectInfo.Target
            },
            Effect = effect
        });

        passiveEffectInfo.Target.QueueAction(() =>
        {
            BattleController.Instance.battleCanvas.battleInfoPanel.HideInfo();
            //BattleController.Instance.battleCanvas.UnbindActionArrow();
        });
    }
    public async Task OnTurnStart(PassiveEffectInfo passiveEffectInfo)
    {
        var effect = new GainApEffect
        {
            ApAmount = ApGain
        };

        passiveEffectInfo.Target.QueueAction(() =>
        {
            BattleController.Instance.battleCanvas.battleInfoPanel.ShowInfo(passiveEffectInfo.PassiveEffectSourceName);
        });

        if (Animation != null)
        {
            await Animation.PlaySkillAnimation(passiveEffectInfo.Source, new [] { passiveEffectInfo.Target });
        }

        Debug.Log($"{passiveEffectInfo.Source.BattlerName} deu {ApGain} EP para {passiveEffectInfo.Target.BattlerName}");

        await passiveEffectInfo.Target.ReceiveEffect(new EffectInfo
        {
            SkillInfo = new SkillInfo
            {
                HasCrit = false,
                Skill   = null,
                Source  = passiveEffectInfo.Source,
                Target  = passiveEffectInfo.Target
            },
            Effect = effect
        });

        passiveEffectInfo.Target.QueueAction(() =>
        {
            BattleController.Instance.battleCanvas.battleInfoPanel.HideInfo();
        });
    }