private void CastSpell(SpellTargetType type, ISpellParams parameters) { ElementType element = GetSelectedElement(); ISpell spell = FindSpell(element, type); if (spell != null && GetElementCharge(element) >= spell.GetCost()) { if (spell.Cast(parameters)) { elementCharge[element] = GetElementCharge(element) - spell.GetCost(); ClearElements(); } } }