public void DamageTarget(OnCastHitTargetEventData e)
    {
        OnDamageEventEmitter Emitter = e.With.GetComponent <OnDamageEventEmitter>();

        if (Emitter != null)
        {
            Emitter.Emit(new OnDamageRecievedEventData(Caster, 25));
        }
    }
    public void HitEnemy(OnAttackConnectEventData e)
    {
        OnDamageEventEmitter targetEmitter = e.With.GetComponent <OnDamageEventEmitter>();

        if (targetEmitter != null)
        {
            targetEmitter.Emit(new OnDamageRecievedEventData(CreatorCollider.gameObject, e.Damage));
        }
    }
    public void OnProjectileHit(OnCastHitTargetEventData e)
    {
        Skill.GetEmitter().Emit(e);
        OnDamageEventEmitter damageEmitter = e.With.GetComponent <OnDamageEventEmitter>();

        if (damageEmitter != null)
        {
            damageEmitter.Emit(new OnDamageRecievedEventData(
                                   CreatorCollider.gameObject,
                                   69
                                   ));
            Emitter.Emit(new OnCastEndEventData(e.Caster));
        }
    }
    public void TickPosion(OnStatusTickEventData e)
    {
        OnDamageEventEmitter emitter =
            e.Target.GetComponentInChildren <OnDamageEventEmitter>();

        if (emitter != null)
        {
            emitter.Emit(new OnDamageRecievedEventData(e.Source, 5f));
        }
        if (cTimer < e.Duration)
        {
            StartCoroutine(RetickAfter(0.5f, e));
        }
        else
        {
            Emitter.Emit(
                new OnStatusEndEventData(e.Target)
                );
        }
    }