# Magic Methods to interact with the magic tab. - - - ## Magic.Setup ```pascal procedure TMagic.Setup; override; ``` Initializes **Magic** variables. ```{note} This is automatically called on the **Magic** variable. ``` - - - ## Magic.SetupAlignment ```pascal procedure TMagic.SetupAlignment(); overload; ``` Setups up the interface aligment for the current client mode. ```{note} This is automatically called on the **TGameClient.ClientModeChanged** function. ``` - - - ## Magic.IsOpen ```pascal function TMagic.IsOpen(): Boolean; ``` Returns true if the Magic tab is open. Example: ```pascal WriteLn Magic.IsOpen(); ``` - - - ## Magic.Open ```pascal function TMagic.Open(): Boolean; ``` Attempts to open the magic tab. Example: ```pascal Magic.Open(); ``` - - - ## Magic.GetSpellBook ```pascal function TMagic.GetSpellBook(): ESpellBook; ``` Returns the current spell book. Example: ```pascal WriteLn Magic.GetSpellBook(); ``` - - - ## Magic.IsSpellBook ```pascal function TMagic.IsSpellBook(book: ESpellBook): Boolean; ``` Returns true if we are using the specified spell book. Example: ```pascal WriteLn Magic.IsSpellBook(ESpellBook.LUNAR); ``` - - - ## Magic.InfoIsOpen ```pascal function TMagic.InfoIsOpen(): Boolean; ``` Returns true if the info black box about a spell is open. Example: ```pascal WriteLn Magic.IsSpellBook(ESpellBook.LUNAR); ``` - - - ## Magic._CloseInfoMouseCallback ```pascal procedure TMagic._CloseInfoMouseCallback(sender: PMouse; var x, y: Double; var done: Boolean); ``` Mouse movement callback to stop mouse movement when the spell info box closes. Do not touch this if you don't understand it. - - - ## Magic.CloseInfo ```pascal function TMagic.CloseInfo(): Boolean; function TMagic.CloseInfo(spell: ESpell): Boolean; overload; ``` Returns true if the info black box about a spell is open. Example: ```pascal WriteLn Magic.CloseInfo(); ``` - - - ## Magic.FindSpell ```pascal function TMagic.FindSpell(spell: ESpell; out box: TBox): Boolean; ``` Return true or false wether we found a spell or not and return it's bounds if found. - - - ## Magic.ContainsSpell ```pascal function TMagic.ContainsSpell(spell: ESpell): Boolean; ``` Return true or false wether we found a spell or not. - - - ## Magic.MouseSpell ```pascal function TMagic.MouseSpell(spell: ESpell): Boolean; ``` Used to move the mouse to the specified spell. Example: ```pascal Magic.MouseSpell(ESpell.HIGH_LEVEL_ALCHEMY); ``` - - - ## Magic.ClickSpell ```pascal function TMagic.ClickSpell(spell: ESpell; option: String = ''): Boolean; ``` Used to interact with the specified spell. Example: ```pascal Magic.ClickSpell(ESpell.HIGH_LEVEL_ALCHEMY); ``` - - - ## Magic.FindSelected ```pascal function TMagic.FindSelected(out tpa: TPointArray): Boolean; ``` Returns the true if we have a selected spell and returns it's tpa. Example: ```pascal if Magic.FindSelected(tpa) then Debug(tpa); ``` - - - ## Magic.ContainsSelected ```pascal function TMagic.ContainsSelected(): Boolean; ``` Returns the true if we have a selected spell. Example: ```pascal WriteLn Magic.ContainsSelected(); ``` - - - ## Magic.IsSelected ```pascal function TMagic.IsSelected(spell: ESpell): Boolean; function TMagic.IsSelected(spell: ESpell; selected: TPointArray): Boolean; overload; ``` Returns true if the specified spell is currently active (with white outline). Example: ```pascal WriteLn Magic.IsSpellSelected(ESpell.ICE_BARRAGE); ``` - - - ## Magic.CanActivate ```pascal function TMagic.CanActivate(spell: ESpell): Boolean; ``` Returns true if we can activate the spell (we have runes, level and the spell unlocked). Example: ```pascal Magic.CanActivate(ESpell.HIGH_LEVEL_ALCHEMY); ``` - - - ## Magic.SpellWasCast ```pascal function TMagic.SpellWasCast(spell: ESpell): Boolean; ``` Returns true if we are in a state that casting a spell would leave you. Example: ```pascal Magic.SpellWasCast(ESpell.ICE_BARRAGE); ``` - - - ## Magic.CastSpell ```pascal function TMagic.CastSpell(spell: ESpell): Boolean; ``` Attempts to cast the specified spell. Example: ```pascal Magic.CastSpell(ESpell.LOW_LEVEL_ALCHEMY); ``` - - - ## var Magic Global Magic variable.