Commit Graph

25 Commits

Author SHA1 Message Date
TheTaques 3baaeae7c4 Fix non integer error 2021-08-27 14:07:46 +02:00
TheTaques ef254926b5 Skull calculations 2021-08-25 15:58:32 +02:00
TheTaques 0850f93e02
Merge branch 'Saklad5:main' into char-file 2021-08-24 14:46:56 +02:00
TheTaques d2ac78bb5d Fix broad_challenge calculation 2021-08-24 14:40:18 +02:00
TheTaques 515449addd Use challenge functions, add further calculations 2021-08-24 14:31:10 +02:00
TheTaques 6fedd6979f Move DIFFICULTY_SCALER to challenge_functions.py, specify char import in read_char.py 2021-08-24 14:29:48 +02:00
Jeremy Saklad 57908feb50
Update cost for Searing Enigmas
Searing Enigmas can be obtained semi-reliably at Khan's Heart through
network expansion.
2021-08-24 07:27:54 -05:00
Jeremy Saklad b2a98cbe15
Add reptile fascination for Diplomat
This fascination effectively requires a Reptile declaration, and scales
with all three skeleton attributes multiplied together.
2021-08-24 07:27:54 -05:00
TheTaques 6df8cb461c WIP: char stat adjusted skeleton actions 2021-08-24 14:03:06 +02:00
TheTaques a86525324e Add support for fractions of skeleton attributes 2021-08-24 13:10:39 +02:00
TheTaques e2bb3fd073 Add char file 2021-08-24 13:08:42 +02:00
Jeremy Saklad 35663dd8d4
Add list option
This option lists enumeration identifiers, along with their string forms
for clarity's sake. This makes it much easier to blacklist things
without reading the source code.

A note about listing has been added to the Blacklisting section of the
README.

A dedicated action has been created for the list command.
2021-08-14 17:55:45 -05:00
Jeremy Saklad 3b1ca61104
Fix BlacklistAction bug
This bug would have caused an error if BlacklistAction were used with a
different nargs.

The "verbose" argument no longer has a default specified. Instead, the
code that checks it supplies a default for itself.
2021-08-14 14:40:15 -05:00
Jeremy Saklad 4cf9e4f008
Add --no-verbose option
The action for "--verbose" has been changed to BooleanOptionalAction,
which adds a negative version that may be useful for overriding
configuration files.
2021-08-14 14:08:38 -05:00
Jeremy Saklad cae8ac5055
Clarify nargs specifiers
Rather than using raw strings, nargs specifiers are now expressed in
terms of argparse's corresponding global variables.
2021-08-14 13:05:17 -05:00
Jeremy Saklad 1275891b27
Tweak costs
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.
2021-08-13 12:14:18 -05:00
Jeremy Saklad 4034530ddb
Add support for configuration files
Configuration files allow common arguments like --shadowy-level and
--blacklist to be saved and referenced rather being typed out each time.

ArgumentParser has been subclassed to allow more freedom when parsing
configuration files.
2021-08-13 10:26:59 -05:00
Jeremy Saklad be44c9c489
Add blacklist parameter to CLI
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.
2021-08-13 09:45:27 -05:00
Jeremy Saklad dabf0ff4d7
Add blacklist parameter to solver
Enum members in this dictionary are disallowed by the solver.

The types that can be blacklisted have been added to __all__ in
solve.py.
2021-08-13 09:03:14 -05:00
Jeremy Saklad cacb985be6
Fix Enum arguments that accept multiple values
EnumAction was erasing nargs before passing it to the superclass
initializer, which broke handling for arguments with consecutive values.

The help text for --desired-buyer has been updated to reflect that you
actually can specify multiple values with a single declaration now.
2021-08-13 08:27:23 -05:00
Jeremy Saklad 4ef31a9cca
Fix warm amber calculation
The cost was inaccurately multiplied by the number of joint additions
before.

Credit to 34Witches in the FBG Discord for diagnosing the problem.
2021-08-12 21:38:07 -05:00
Jeremy Saklad 90b769230b
Add skulls fascination for Diplomat
This fascination scales with all three skeleton attributes multiplied together.
2021-08-11 18:35:15 -05:00
Jeremy Saklad fad2aa4158
Correct long form of exhaustion limit
The argument incorrectly used an underscore as a word separator. This
has been corrected.
2021-08-03 15:43:00 -05:00
Jeremy Saklad 06df9e6304
Add amalgamy fascination for Diplomat
This fascination scales with the amount of amalgamy on the skeleton.
2021-08-03 15:34:37 -05:00
Jeremy Saklad 84c62aa3c6
Convert project to package
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.
2021-08-03 14:48:42 -05:00