There's dozens, if not hundreds, of pieces out there that you could use, so I'm introducing a simple notation system to help describe them.
In this notation system, we'll use this format:
Name: Witch
Movement: O(Inf., 1, false, false), D(Inf., 1, false, false), J(false), O(3, 1, true, false), D(3, 1, true, false)
Special Effects: Trans(Aura(1), Self)
instead of saying this:
"the witch is a piece that moves as a queen, a knight, and a musketeer chess hawk combined, without capturing. Any adjacent piece becomes transparent to allied pieces, so that pieces that slide can pass over the transparent piece as if it weren't there."
Movement modes and abilities, or attributes, will be described using several inputs. If an input has square brackets around them, they are optional. If an attribute has multiple optional inputs, then you must put all the prior inputs to the ones that you wish to have. So, as an example, if attribute x has the inputs (a, [b], [c]) and you wish to put an input into c, but not b, then you still need to input the value you want for b (the default).
Abbreviations:
Inf. : Infinity
M-(piece name): Musketeer (piece name)
Taking: the piece that just took the piece being described
Movement Modes:
D([a], [b], [c], [d])
The piece can move diagonally with a minimum of b and a maximum of a number of steps, and if c is false, must stop directly before another piece, or capture the blocking piece. If d is false, the piece cannot capture with this certain movement mode.
Default values:
a = Inf.
b = 1
c = False
d = True
O([a], [b], [c], [d])
The piece can move orthogonally with a minimum of b and a maximum of a number of steps, and if c is false, must stop directly before another piece, or capture the blocking piece. If d is false, the piece cannot capture with this certain movement mode.
Default values:
a = Inf.
b = 1
c = False
d = True
J([a],[b],[c],[d],[e])
The piece can move in intervals of b squares orthogonally, then c squares at right angles to the first movement. The piece can repeat this movement a minimum of e and a maximum of d times. If a is false, then the piece cannot capture with this particular movement mode.
Default values:
a = true
b = 2
c = 1
d = 1
e = 1
Special Abilities:
Infect(a)
Transforms piece a into this piece, when a exists.
Additional additions and revisions will occur bi-weekly. Feel free to comment if you see any way I can improve this.