# sdark [Shadowdark] tools. [![repo][repo-badge]][repo] [![builds.sr.ht status][builds-badge]][builds] [![sdark on PyPI][pypi-badge]][pypi] [Shadowdark]: https://www.thearcanelibrary.com/collections/shadowdark-core-rules [repo-badge]: https://img.shields.io/badge/git.sr.ht-~donmcc/sdark-purple [repo]: https://git.sr.ht/~donmcc/sdark [builds-badge]: https://builds.sr.ht/~donmcc/sdark.svg [builds]: https://builds.sr.ht/~donmcc/sdark [pypi-badge]: https://img.shields.io/pypi/v/sdark [pypi]: https://pypi.org/project/sdark ## Abbreviations - AC: Armor Class - CHA: Charisma - CON: Constitution - DEX: Dexterity - GP: Gold Piece - HP: Hit Points - INT: Intelligence - INTEL: Intelligence (avoids shadowing Python `int`) - QTY: Quantity - STR: Strength - STREN: Strength (avoids shadowing Python `str`) - WIS: Wisdom - XP: Experience Points ## Alternate Terminology - _Profession_ instead of _Class_ (`class` is a Python reserved word) ## Optional Rules - Reroll character if no stat is 14 or greater + from _Stats_, SD v4.8, p15 + command line option `--reroll-if-no-stat-is-14-plus` The character stats rolling behavior is controlled by the `RollStats` class and implemented in `Stats.roll_with_one_min_stat()`. If on the tenth try, all stats are still below 14, a randomly chosen stat will be raised to 14; this prevents an infinite loop when testing with fake random number generators. ## House Rules - Receive max HP at first level + command line option `--max-hp-at-first-level` + behavior controlled by the `RollHP` class ## Rulings - Fractional slots Since computers are good at arithmetic, `Gear` objects may have fractional slots. The character's `Inventory` adds all fractional slot values, only rounding the total to a whole number. This may differ from a manual count that rounds individual item slots values before calculating the total. - Alignment may differ from deity for non-priest random characters People may act differently than the tenets of their faith dictate, so roll on both the _Deity_ table, SD v4.8, p40 and the _Alignment_ table, SD v4.8, p41. - For random priest characters, roll deity and assign the deity's alignment Since the _Priest Class_, SD v4.8, p20, says to choose a god that matches your alignment. Since the _Deity_ table, SD v4.8, p40 and the _Alignment_ table, SD v4.8, p41 can produce results that conflict with this rule for priests, roll only on the _Deity_ table and assign the deity's alignment. - Farsight for random characters Farsight is the Elf ancestry talent. It gives a +1 bonus for ranged weapons _or_ a +1 bonus for spellcasting. For random level zero character, choose one of the two randomly with equal weight. For random level one characters, fighters and thieves get Farsight for ranged weapons. Wizards get Farsight for spellcasting. If a priest has a crossbow in their inventory, choose one of the two randomly with equal weight; if not, choose Farsight for spellcasting. - Random starting weapon for random first level characters Choose one of the weapons available for the character's profession at random with equal weight. - Weapon mastery for random first level character Choose the character's starting weapon first, then choose weapon mastery for that weapon. - Human "Ambitious" talent applies to class talent rolls The wording is imprecise, since each ancestry grants something that seems like a "talent" which is not explicitly called such. ```{toctree} :maxdepth: 2 :caption: Contents: API Reference ```