Initial Commit
This commit is contained in:
commit
fa38469735
30 files changed
+6902
No files matched your search
@@ -0,0 +1,57 @@
|
||||
# Object classes from AP that represent different types of options that you can create
|
||||
from Options import Option, FreeText, NumericOption, Toggle, DefaultOnToggle, Choice, TextChoice, Range, NamedRange, OptionGroup, PerGameCommonOptions
|
||||
# These helper methods allow you to determine if an option has been set, or what its value is, for any player in the multiworld
|
||||
from ..Helpers import is_option_enabled, get_option_value
|
||||
from typing import Type, Any
|
||||
|
||||
|
||||
####################################################################
|
||||
# NOTE: At the time that options are created, Manual has no concept of the multiworld or its own world.
|
||||
# Options are defined before the world is even created.
|
||||
#
|
||||
# Example of creating your own option:
|
||||
#
|
||||
# class MakeThePlayerOP(Toggle):
|
||||
# """Should the player be overpowered? Probably not, but you can choose for this to do... something!"""
|
||||
# display_name = "Make me OP"
|
||||
#
|
||||
# options["make_op"] = MakeThePlayerOP
|
||||
#
|
||||
#
|
||||
# Then, to see if the option is set, you can call is_option_enabled or get_option_value.
|
||||
#####################################################################
|
||||
|
||||
|
||||
# To add an option, use the before_options_defined hook below and something like this:
|
||||
# options["total_characters_to_win_with"] = TotalCharactersToWinWith
|
||||
#
|
||||
class TotalCharactersToWinWith(Range):
|
||||
"""Instead of having to beat the game with all characters, you can limit locations to a subset of character victory locations."""
|
||||
display_name = "Number of characters to beat the game with before victory"
|
||||
range_start = 10
|
||||
range_end = 50
|
||||
default = 50
|
||||
|
||||
# This is called before any manual options are defined, in case you want to define your own with a clean slate or let Manual define over them
|
||||
def before_options_defined(options: dict[str, Type[Option[Any]]]) -> dict[str, Type[Option[Any]]]:
|
||||
return options
|
||||
|
||||
# This is called after any manual options are defined, in case you want to see what options are defined or want to modify the defined options
|
||||
def after_options_defined(options: Type[PerGameCommonOptions]):
|
||||
# To access a modifiable version of options check the dict in options.type_hints
|
||||
# For example if you want to change DLC_enabled's display name you would do:
|
||||
# options.type_hints["DLC_enabled"].display_name = "New Display Name"
|
||||
|
||||
# Here's an example on how to add your aliases to the generated goal
|
||||
# options.type_hints['goal'].aliases.update({"example": 0, "second_alias": 1})
|
||||
# options.type_hints['goal'].options.update({"example": 0, "second_alias": 1}) #for an alias to be valid it must also be in options
|
||||
|
||||
pass
|
||||
|
||||
# Use this Hook if you want to add your Option to an Option group (existing or not)
|
||||
def before_option_groups_created(groups: dict[str, list[Type[Option[Any]]]]) -> dict[str, list[Type[Option[Any]]]]:
|
||||
# Uses the format groups['GroupName'] = [TotalCharactersToWinWith]
|
||||
return groups
|
||||
|
||||
def after_option_groups_created(groups: list[OptionGroup]) -> list[OptionGroup]:
|
||||
return groups
|
||||
Reference in new issue
Block a user