public void Cast(bool skipCheck = false)
    {
        SpellManager.ApplySpellVisuals(Caster, SpellInfo);

        SpellManager.ApplySpellCastSound(Caster, SpellInfo);

        SelectSpellTargets();

        Caster.Character.SpellHistory.HandleCooldowns(SpellInfo, this);

        HandleImmediate();
    }