OBJ-EXTRA FLAGS are formed by Boolean expressions. The following operators
are available: ',^ = Not *, & = And +, | = Or
The precedence is Parenthesis, Not, And, Or. An example:
WEAPON [sword & long|short | warhammer | ^golden & bow] & magic
This shop will buy the following items of type WEAPON:
1. sword long magic
2. short magic (the first & is done before the first | )
3. warhammer magic
4. ^golden bow magic
Note that the ^ in front of golden affects ONLY golden, and nothing else in
the listing. Basically, the above expression could be written in English as:
[(sword and long) or short or warhammer or (not golden and bow)] and magic
If you want the shop to only buy ``short magic'' only if they were also swords, you could change the expression to:
WEAPON [sword & (long|short) | warhammer | ^golden & bow] & magic
^-Changes--^
You can also include object extra flags. The previous example used "magic"
as a keyword that had to be on the object. If we wanted to make it so that the
MAGIC flag had to be set on the item, we would change magic to MAGIC. Similar
changes could be made to add other flags such as HUM or GLOW. It should be
noted that these expressions are case sensitive and that all keywords should
appear in lower-case, while the flag names should be in all caps.