Segmented Ribcages can be used to add more limb slots, but carry a
variety of unusual requirements. In addition to a scaling cost in
Nevercold Brass, they require an unfilled tail slot when applied.
It may be prudent to clean up the partial sum formula using helper
methods in the future, as it currently requires a considerable number of
intermediate terms.
itertools.repeat is now being used to perform exponentiation, rather
than repeating terms directly.
The Segmented Ribcage has no known source outside a specific Whitsun
egg, much like the Obsidian Chitin Tail. As such, it has been given a
placeholder price that prevents it from being used normally.
The Adulterine Castle has an option that yields four Withered Tentacles
for just one action.
Cost.WARBLER_SKELETON has been removed, as it is no longer used by
anything.
It is possible to skip tails while some are already present. The wiki
had the old name when this was added to the solver, but it has since
been corrected.
Vake skulls now have diminishing returns beyond the first skull.
Menace calculation has been reorganized to accomodate the change.
Vake skulls are no longer capped, as the new scaling has been fully
implemented.
Vake skulls now have scaling implausibility, which is calculated using a
partial sum formula.
Implausibility calculation has been reorganized to accomodate the
change.
Vake skulls now have diminishing returns beyond the first skull, which
are calculated using a partial sum formula similar to joint addition.
Value calculation has been reorganized to accomodate the change.
Balmoral Woods costs now take achievable quantities of Time Remaining in
the Woods into account.
Volumes of Collated Research are now acquired using the Übergoat statue
at the Hurlers.
Trembling Amber is now acquired using the Rubbery Men opportunity card.
Blacklisting uses a dedicated action to parse arguments into enumeration
members.
Choices are not provided for this option, as it would utterly overwhelm
the help interface. This means that errors may not be as helpful,
however.
The README has been updated with a small section on blacklisting, how to
do it, and why you may wish to do it.
Options that were previously commented out are now enabled, since the
user can simply blacklist them instead.
All scripts are now contained in a package named "bonemarketsolver".
The command-line interface has been moved to __main__.py.
The solver script has been moved to solve.py.
Relative module imports are now used where appropriate.
The invocation method of the CLI has changed: instead of running Python
itself, you can now use "pipenv run bone_market_solver".
The README has been updated to reflect the new usage method.