diff --git a/magic.sty b/magic.sty
index 3a3c7afa390f1d38d0a607bf0735c268d90342db..cca5728ac473ad153f70077de4353d956148d823 100644
--- a/magic.sty
+++ b/magic.sty
@@ -65,14 +65,10 @@
   }%
 }
 
-\newcommand\spellRange{}
-\newcommand\setRange{%
-  \iftoggle{Distant}%
-    {%
+\newcommand\setLongRange[1][spellCost]{%
       \ifcase\value{spellCost}\relax%
-      \renewcommand\spellRange{Error}%
       \or%
-      \renewcommand\spellRange{Error}%
+      \renewcommand\spellRange{20 \glspl{step}}%
       \or%
         \renewcommand\spellRange{greeting distance}%
       \or%
@@ -84,6 +80,13 @@
       \else%
         \renewcommand\spellRange{the horizon}%
       \fi%
+}
+
+\newcommand\spellRange{}
+\newcommand\setRange{%
+  \iftoggle{Distant}%
+    {%
+      \setLongRange%
     }%
     {%
       \setcounter{track}{24}%
@@ -116,11 +119,17 @@
 \newtoggle{opposedSpell}
   \settoggle{opposedSpell}{false}
 
+\newcommand\setTargetsIfDuplicated{%
+  \setcounter{spellTargets}{1}%
+  \iftoggle{Duplicated}{%
+    \foreach \i in {1,...,\arabic{spellCost}}%
+      {\multiply\value{spellTargets} by \value{spellCost}\addtocounter{spellTargets}{0}}%
+  }{}%
+}
 
 \newcommand\calcSpell[7]{%
   \renewcommand\spellName{#1}%
   \setcounter{spellCost}{1}%
-  \setcounter{spellTargets}{1}%
   \togglefalse{Devious}%
   \togglefalse{Distant}%
   \togglefalse{Divergent}%