38 Commits

Author SHA1 Message Date
Celtic Minstrel
71da996827 Schema: Add undocumented features for EffectWML 2018-10-23 22:40:06 -04:00
Celtic Minstrel
72d8d30009 Schema: Update weapon filter to note that lists are allowed here 2018-10-23 22:40:05 -04:00
Celtic Minstrel
66a33b2b3d Schema: Update filters with undocumented or poorly-documented features 2018-10-23 22:40:04 -04:00
Celtic Minstrel
7bafab286b Schema: Don't accept omitted [] after all in [modify_ai] paths 2018-10-23 22:39:59 -04:00
Celtic Minstrel
a71ce59a4e Schema: Accept x,y=recall,recall in [unstore_unit] 2018-10-23 22:39:56 -04:00
Celtic Minstrel
3d05628fcf Schema: Accept variable substitution in [unit] 2018-10-23 22:39:54 -04:00
Celtic Minstrel
67c6de0a4e Schema: Accept variable substitution in most aspect values 2018-10-23 22:39:53 -04:00
Celtic Minstrel
9b9fdf2c52 Schema: Simplify the simple non-scalar aspect definitions 2018-10-23 22:39:52 -04:00
Celtic Minstrel
151a1fb66c Schema: Forgot id key in [leader_goal] 2018-10-23 22:39:51 -04:00
Celtic Minstrel
17b1127175 Schema: Fixup [goal] definition 2018-10-23 22:39:48 -04:00
Celtic Minstrel
9a966a46f5 Schema: Support omitting the final index in [modify_ai] paths
Also mark the subtags in [modify_ai] as required
2018-10-23 22:39:47 -04:00
Celtic Minstrel
cfe4d120ee Schema: Some missing [unit] keys and promote some [multiplayer] keys to [scenario] 2018-10-23 22:39:45 -04:00
Celtic Minstrel
902a104268 Schema: Fix several more cases of keys failing to accept variable substitutions 2018-10-23 22:39:37 -04:00
Celtic Minstrel
e01567c434 Schema: Promote [object]duration= key to non-ActionWML objects
It's used by the object auto-expiry mechanism, so it's meaningful
even outside of ActionWML.
2018-10-23 22:39:36 -04:00
Celtic Minstrel
12e78df9f4 Schema: Support for turns=unlimited 2018-10-23 22:39:33 -04:00
Celtic Minstrel
a1ecf1a559 First batch of schema fixes
- Allow for variable substitution in filter tags (mostly)
- Fix real not matching numbers like .5
- Support x,y=recall,recall

After this commit, there are no schema errors in the tutorial.
2018-10-23 22:38:20 -04:00
Celtic Minstrel
c76e5ee69b Schema: Just allow any key in [language] 2018-10-23 22:38:17 -04:00
Celtic Minstrel
24608d0632 Schema ActionWML: Small bugfixes and add undocumented stuff from perusing source code 2018-10-23 22:38:16 -04:00
Celtic Minstrel
1e33a66661 Schema: Pango formatting keys for [message] 2018-10-23 22:37:46 -04:00
Celtic Minstrel
20a81c06a6 Schema: Definition of [micro_ai] tag, including all known MicroAIs 2018-10-23 22:37:45 -04:00
Celtic Minstrel
7ab5fabbf2 Schema: Add all known ActionWML and ConditionalWML tags (based on wiki)
This also finishes up the StoryWML definition, adds validation for
map and shroud data, and a few other small schema fixes
2018-10-23 22:37:44 -04:00
Celtic Minstrel
3211014428 Fix [effect][set_specials] not correctly allowing special ability tags 2018-10-23 22:37:43 -04:00
Celtic Minstrel
da7fcaa5e1 Schema: Definition of [modify_ai] tag
Also reorder some things in [aspect] for better matching
2018-10-23 22:37:42 -04:00
Celtic Minstrel
644ff73c92 Schema: Add feature to [switch] to allow a [case] to match the absence of the key
Use this to support the default [goal] name
2018-10-23 22:37:38 -04:00
Celtic Minstrel
6d4b789e5b Schema: Use the new globbing feature to improve [aspect] definition
Also fix [engine] switch
2018-10-23 22:37:37 -04:00
Celtic Minstrel
c2716728e5 A few more missing pieces to the AI schema 2018-10-23 22:37:36 -04:00
Celtic Minstrel
ff66583c0d Schema: Fix definition of [effect] tags for removing/modifying attacks 2018-10-23 22:37:35 -04:00
Celtic Minstrel
faa8decdc8 WIP Schema for the AI WML
Pretty much all working, except for the [aspect] tag
Also, [modify_ai] is not yet specified (needs new schema features)
2018-10-23 22:37:33 -04:00
Celtic Minstrel
efa30b3840 Schema: Accept [elseif] in [if] and change [switch][default] to [else] 2018-10-23 22:37:32 -04:00
Celtic Minstrel
6e2ed5f53f Fix matching of list types with limits 2018-10-23 22:37:30 -04:00
Celtic Minstrel
65ef12466d Use a few more conditional tag elements 2018-10-23 22:37:29 -04:00
Celtic Minstrel
ed7c3dbfbc Missed a couple weapon special definitions 2018-10-23 22:37:28 -04:00
Celtic Minstrel
bebab878e3 Support multiple super tags and even conditional super tags
Use this to conditionally import [unit] keys in [side] based on no_leader
2018-10-23 22:37:28 -04:00
Celtic Minstrel
fb30b594b6 Support [switch] and [if] in [tag]
Use this new feature to validate [effect] tags
2018-10-23 22:37:24 -04:00
Celtic Minstrel
9ab1777851 Enable nesting of [type] tags
Minor cleanup of GUI2 type definitions
Disallow stuff like border=top,all
2018-10-23 22:37:18 -04:00
Celtic Minstrel
34604fdff6 Get game config and schema to use some common types
This also fixes an invalid type issue in the GUI2 schema,
and allows types to be a direct alias for other types.
2018-10-23 22:36:47 -04:00
Celtic Minstrel
3365aef28a Move GUI2 schema into the schema directory 2018-10-23 22:36:46 -04:00
Celtic Minstrel
3a65a14bcb Implement validation of the core game config WML
Currently this is disabled by default
Use --validate command-line argument to enable

The following new features were added in the schema format:
* Union, intersection, and list types
* Keys can specify a union of known types on-the-fly
* Key and tag names can include wildcards (* and ?, glob-style)
* Tags support any_key=yes, which means unrecognized subtags will be ignored
* Tags and keys support deprecated=yes (unimplemented)
* Specify max=infinite instead of max=-1
2018-10-23 22:36:40 -04:00