A => README.md +1 -0
@@ 1,1 @@
+Spellcasting tools for Mage the Awakening: Second Edition using Forth.
A => magic.fs +63 -0
@@ 1,63 @@
+vocabulary magic also magic definitions
+
+struct cell% field intelligence-dots
+ cell% field wits-dots
+ cell% field resolve-dots
+end-struct mental-attributes
+
+struct
+ cell% field strength-dots
+ cell% field dexterity-dots
+ cell% field stamina-dots
+end-struct physical-attributes
+
+struct
+ cell% field presence-dots
+ cell% field manipulation-dots
+ cell% field composure-dots
+end-struct social-attributes
+
+\G A struct that keeps track of a mages gnosis and arcanum dots
+struct
+ cell% field gnosis-dots
+ cell% field death-dots
+ cell% field fate-dots
+ cell% field forces-dots
+ cell% field life-dots
+ cell% field matter-dots
+ cell% field mind-dots
+ cell% field prime-dots
+ cell% field space-dots
+ cell% field spirit-dots
+ cell% field time-dots
+ mental-attributes field mental-dots
+ physical-attributes field physical-dots
+ social-attributes field social-dots
+end-struct mage-struct
+
+\G Defines constant unique identifiers for the 10 arcanum.
+\G These are specifically the offsets into the mage struct
+\G but should be set when defining a spell with `spell`.
+0 death-dots constant death
+0 fate-dots constant fate
+0 forces-dots constant forces
+0 life-dots constant life
+0 matter-dots constasnt matter
+0 mind-dots constant mind
+0 prime-dots constant prime
+0 space-dots constant space
+0 spirit-dots constant spirit
+0 time-dots constant time
+
+
+: mage \G Creates a named mage with uninitialized data
+ create mage-struct mage-struct %allot ;
+
+: spell \G Creates a named spell with ( dots arcanum -- )
+ \G where arcanum is the offset into a `mage-struct`
+ \G (ie. the value of 0 <arcanum>-dots)
+ create 2, ;
+
+2 death spell
+
+previous