Skip to content

Latest commit

 

History

History
101 lines (72 loc) · 5.75 KB

README.md

File metadata and controls

101 lines (72 loc) · 5.75 KB

Horus Heresy

Latest release Commits (since latest release) Open bugs Contributors Commit activity the past year

Chat on Discord

Overview

What's this?

This is the data repo for the Horus Heresy.

BSData organisation created this project. It's a GitHub repository of datafiles. Maintained by community, in no way endorsed by BattleScribe or any other company/publisher. If you want to develop - cool! We need you! Take a look at our homepage

We strongly recommend you use NewRecruit over Battlescribe, as battlescribe is abandonware.

I found a bug! / I have another request

Great, thank you! Please Report a bug - you can also suggest enhancements and raise other issues there.

Where did Horus Heresy 1.0 go?

We moved it to its own repo. It is no longer maintained.

Standards

Creating units

Names

In general, we remove the "Legion" prefix from units, unless that unit has a non-legion equivalent such as Legion Baneblade

We create a unit entry for each unit, and a model entry within that unit (even if it's a single model unit). This allows us to get an accurate model count and keeps everything consistent.

On UNITS we default them to hidden and add a modifier with constraint to set "Hidden to False" if "Equal to 1 selection in force of <> on". Ensure "And all child selections is checked". On UPGRADES, we default the option to not hidden, and set "Hidden to True" if the "off" condition is selected.

Important reminders:

These are requirements on a unit to maintain rites of war:

  • Solar Auxillia and Imperialis Militia units need "SA or IM Unit" for rites of war that count that number of units.
    • Lords of war should be excluded from this as they won't be in the "allied detachment"

.cattemplate? and what are all the template_id_ comments?

A .cattemplate file is a .cat file, renamed to .cattemplate, used by BSCOPY

We used bscopy to copy all 18 legions after implementing the first one. We didn't maintain the template so it's not recommended to re-run bscopy

Tests

GitHub actions will load configured lists in tests and ensure they produce the expected outcome. To add a new test:

  1. Export a roster from NewRecruit or BattleScribe
  2. Rename that roster from .ros to .test and place it in tests
  3. Add a new case to tests.py:
    def test_NameOfTest(self):
        self.load_list('Name of Roster file with no extension')
        errors = self.get_error_list()
        self.assertEqual(0, len(errors), "This list has validation errors")
    • There are other tests, such as checking for points on a specific unit. Look through the code for examples.
  4. Run the unit tests with python, or create a pull request to have GitHub run them automatically.
    • To run them locally, install python and the packages selenium and webdriver-manager, and Google Chrome.

References

Links