-
Notifications
You must be signed in to change notification settings - Fork 82
Implementation Guidelines
-
ONE ENTRY: There should only be one entry in a catalogue for an entity wherever possible. If your entity is used more than once, create a shared version and link to it.
-
ONE CORE RULE: "Fluff" text can optionally be removed from any profile entry. Only the text which has an actual gameplay impact needs to be included. Additionally, any reference to "above" or "below" in reference to the location of additional information for the profile should be amended appropriately.
-
Each catalogue MUST have an "Allegiance" SSE which is min1/max1 in Force. This entry should contain a SGE (min1/max1 in Parent) containing SEs for all Allegiances available to the Grand Alliance. This list should include both Allegiances which have a specific entry in a published book and those which are only specified in the GHB2017 as triggering units to switch Battlefield Role. For example, the THUNDERSCORN Allegiance for Chaos does not have an entry listing Command Traits etc., but triggers switching Dragon Ogors to Battleline, so it must be included in the Allegiance list.
This list should have a default of "<GRAND ALLIANCE>"
-
Each catalogue MUST have a "Pitched Battle Faction" SSE which is min0/max1 in Force and increments to min1 when the Force is NOT an Instance of "Open Play". This SSE should contain an SEG (min1/max1 in Parent) which contains SEs for all Pitched Battle Factions as listed in the GHB2017 for the Grand Alliance, or any Battletome published later.
This list should have a default of "*NO FACTION*" (including the asterisks).
Pitched Battle Factions MAY be hidden based on Allegiance selection where the combination of Allegiance and Pitched Battle Faction would result in no selections being available. For instance, a BRAYHERD Allegiance Army can only include units which are taken from the Brayherds faction, because only those units have the BRAYHERD keyword.
-
Each catalogue must have a "General" SSE which has a Max 1 in Parent constraint and the "General" category from the GST. This should be linked to units for which it is required to enable functionality, such as switching Battlefield Roles on Unit A if you select Unit B as the General. In this case, the "General" SSE should be linked to Unit B.
-
Unit/Model entries should be created as Shared Selection Entries with the Unit type. KEYWORD Categories should be applied to this entry and no Primary Category should be assigned. These entries should never be hidden.
-
In order for Ally point restrictions to function correctly, the top level SSE needs to be correctly valued.
If the SSE is for a Unit, it should initially have the minimum size unit point cost. The Unit cost should be decremented to 0 if there are greater than 0 selections of the model increment and then incremented on repeat for each selection of the model increment.
If the SSE is for a model, it should have the model point cost and no model increment SE is required.
-
Further to the above, model count increments MUST be Upgrades with a 0 point cost with appropriate min/max in Parent constraints.
-
The following Profile types should be added at the Unit level:
- Unit
- Magic
- Prayers
- Spells
- Unit Abilities (which include Unit leader entries)
- Command Abilities
- Damage Table
-
Any reference to a KEYWORD in profile text should be in ALL CAPITALS.
-
Unit Abilities should be added as Profiles at the unit level, unless they are associated with a Weapon.
-
Abilities which have a table (or, in the opinion of the data author, are best presented in a table) should have a custom Profile type. The Profile Type should be named with a Characteristic Type appropriate to the Ability (Effect, Benefit, etc.). Profiles should have 1 entry for the main Ability text, plus N other entries named after the effects.
If the Ability relies on a dice roll, "- DICE Roll" should be appended to the Profile Type name, e.g. "Peal of Doom - 2D6 roll". When adding the profiles to the unit, add a entry named "-" with the main text of the Ability, then numbered entries for each numbered effect. In order to maintain ordering on 2D6 tables, numbers will need to be prefixed with 0.
-
Weapon entries should be Selection Entries within a unit with an associated profile. Any Unit Abilities associated with the weapon should also be added to the Weapon Selection Entry.
-
Weapon Profile characteristics which refer to a Unit Ability or to the unit's damage table should be entered as an asterisk (*).
-
Weapon choice should be an SGE (min1/max1 in Parent) on the unit containing SEs or SSEs for each weapon choice. Weapons and Unit Abilities which depend on weapon choice should be attached to the individual SEs except where a Weapon Profile is the same for all choices, in which case it can be added at the Unit level.
- Optional selections (Banner Bearers, Musicians, etc) should be an SSE with a maxN in Parent constraint and associated Profile with the Unit Abilities type.
-
Single Spells should be added as min1/max1 SEs with an attached Spell Profile. Arcane Bolt and Mystic Shield have been added to the GST and should be added as Entry Links on the Unit.
Where Units can select from a list of spells, the spell list should be created as an SSEG with SSEs and Profiles for each spell. This SSEG should be added to the Unit via an Entry Link and have a maxN constraint based on the Unit's Magic entry.
-
Where a unit confers a Spell upon WIZARDS, the Spell Selection Entry should be added to the source unit. In addition, a Unit Abilities Profile should be added with the name "Magic" and the details of which units can use the spell.
-
Details of how a model/unit activates prayers/blessings should be added as a "Unit Abilities" Profile.
-
Single Prayers should be added as min1/max1 SSEs with an attached Prayer Profile.
Where Units can select from a list of prayers/blessings, the list should be created as an SSEG with SSEs and Profiles for each prayer/blessing. This SSEG should be added to the Unit via an Entry Link.
-
Keywords should be added as Categories on the unit SSE. Currently, the keyword field on the Unit entry is being left in to maintain current functionality, but it should be deprecated where possible and replaced with the new functionality.
Due to a BS "quirk", Categories appear in the order by which they were added to the unit. If you want to replicate the book ordering, you need to add your Keyword Categories in that order.
Category entries for Keywords should be in CAPITALS.
The following shared Keywords have been added to the GST and these should be used in preference to local ones.
- DAEMON
- HERO
- MONSTER
- PRIEST
- TOTEM
- WAR MACHINE
- WIZARD
-
If a model/unit has characteristics and/or abilities which change based on a selection on the unit, conditional modifiers should be used to change the unit's characteristics and make abilities visible based on that selection.
-
Most units will have two RSEs, one "Standard" RSE which applies for their own Pitched Battle Faction, and an "Ally" RSE.
Units which switch Battlefield Role based on Allegiance or Allegiance and General choice will have a modified "Standard" RSE, an "Ally" RSE and a third RSE for the switched role. These units should follow the "Battlefield Role Switch" RSE guidelines below in addition to the first two.
-
All constraints in the below entries should have "And all child selections" checked.
-
The standard RSE should have a Primary Category which is the unit's default Battlefield role. This is "Other" if the Battlefield Role column in the published PBF list containing the unit is blank.
-
Each "Standard" RSE should have validation as below.
There are 2 Condition Groups, a "Faction" group (top in the screenshot) and a "Allegiance" Group (bottom in the screenshot).
The Faction group should contain:
- One =1 Condition on the PBF SGE (i.e. if there is a selection from the PBF list)
- One =0 condition on the "*No Faction*" PBF. (*No Faction* is not selected)
- One =0 condition on the PBF to which the unit belongs. (the correct Faction is not selected)
The Allegiance group should contain:
- One =0 condition on the Grand Alliance Allegiance (the Grand Alliance allegiance is not selected)
- N =0 conditions, one for each other Allegiance which could be applied to the unit, where N is equal to or greater than 0.
-
Ally RSEs should have a Primary Category of the standard Battlefield role as above, plus the GST "Allies" category.
-
Ally RSEs have only a single constraint group which contains constraints for each PBF which the unit is available to as an Ally.
This section only applies to units which switch battlefield role based on Allegiance or Allegiance and General choice.
-
Battlefield Role RSEs should have a Primary Category of the modified Battlefield Category. Currently, this is always "Battleline".
-
The Battlefield Role RSE has a single constraint as below.
In addition, you will need to modify the Standard RSE for the unit as below.
-
Where the Battlefield Role change additionally requires selection of a specific General, the constraints on that unit's "Standard" entry should be as below.
The General in the constraints is the link entry from the relevant unit, i.e. you should use the ID of the link in that entry, not the ID of the "General" SSE, i.e. the highlighted ID in the screenshot below.
TO BE DONE
SE - Selection Entry
SSE - Shared Selection Entry
SGE - Selection Group Entry
SSEG - Shared Selection Entry Group
RSE - Root Selection Entry
PBF - Pitched Battle Faction
GHB2017 - General's Handbook 2017