-
Notifications
You must be signed in to change notification settings - Fork 751
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Hollow Knight: Add additional DeathLink option and add ExtraPlatforms option. #2545
Changes from 1 commit
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -2,7 +2,7 @@ | |
from .ExtractedData import logic_options, starts, pool_options | ||
from .Rules import cost_terms | ||
|
||
from Options import Option, DefaultOnToggle, Toggle, Choice, Range, OptionDict, NamedRange | ||
from Options import Option, DefaultOnToggle, Toggle, Choice, Range, OptionDict, NamedRange, DeathLink | ||
from .Charms import vanilla_costs, names as charm_names | ||
|
||
if typing.TYPE_CHECKING: | ||
|
@@ -402,22 +402,30 @@ class WhitePalace(Choice): | |
default = 0 | ||
|
||
|
||
class DeathLink(Choice): | ||
""" | ||
When you die, everyone dies. Of course the reverse is true too. | ||
When enabled, choose how incoming deathlinks are handled: | ||
vanilla: DeathLink kills you and is just like any other death. RIP your previous shade and geo. | ||
shadeless: DeathLink kills you, but no shade spawns and no geo is lost. Your previous shade, if any, is untouched. | ||
shade: DeathLink functions like a normal death if you do not already have a shade, shadeless otherwise. | ||
class ExtraPlatforms(DefaultOnToggle): | ||
"""Places additional platforms to make traveling throughout Hallownest more convenient.""" | ||
|
||
|
||
class DeathLinkShade(Choice): | ||
"""Sets whether to create a shade when you are killed by a DeathLink and how to handle your existing shade, if any. | ||
|
||
vanilla: DeathLink deaths function like any other death and overrides your existing shade (including geo), if any. | ||
shadeless: DeathLink deaths do not spawn shades. Your existing shade (including geo), if any, is untouched. | ||
shade: DeathLink deaths spawn a shade if you do not have an existing shade. Otherwise, acts like shadeless. | ||
|
||
* This option has no effect if DeathLink is disabled. | ||
""" | ||
option_off = 0 | ||
alias_no = 0 | ||
alias_true = 1 | ||
alias_on = 1 | ||
alias_yes = 1 | ||
option_vanilla = 0 | ||
option_shadeless = 1 | ||
option_vanilla = 2 | ||
option_shade = 3 | ||
option_shade = 2 | ||
default = 2 | ||
|
||
|
||
class DeathLinkBreaksFragileCharms(Toggle): | ||
"""Sets if fragile charms break when you are killed by a DeathLink. All other deaths still break fragile charms. | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. As noted by folks on discord it's probably slightly more accurate to say something like "fragile charms will still be broken by your own deaths as usual" to cover for cases where your own deaths actually will not break the charm There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Actually on second thought, maybe removing the "all other deaths still break fragile charms" is better for consistency, or should be implied by the "when you are killed by a deathlink." That would be consistent with the wording on the shade option as well |
||
|
||
* This option has no effect if DeathLink is disabled. | ||
""" | ||
|
||
|
||
class StartingGeo(Range): | ||
|
@@ -476,7 +484,8 @@ class CostSanityHybridChance(Range): | |
**{ | ||
option.__name__: option | ||
for option in ( | ||
StartLocation, Goal, WhitePalace, StartingGeo, DeathLink, | ||
StartLocation, Goal, WhitePalace, ExtraPlatforms, StartingGeo, | ||
DeathLink, DeathLinkShade, DeathLinkBreaksFragileCharms, | ||
MinimumGeoPrice, MaximumGeoPrice, | ||
MinimumGrubPrice, MaximumGrubPrice, | ||
MinimumEssencePrice, MaximumEssencePrice, | ||
|
@@ -488,7 +497,7 @@ class CostSanityHybridChance(Range): | |
LegEaterShopSlots, GrubfatherRewardSlots, | ||
SeerRewardSlots, ExtraShopSlots, | ||
SplitCrystalHeart, SplitMothwingCloak, SplitMantisClaw, | ||
CostSanity, CostSanityHybridChance, | ||
CostSanity, CostSanityHybridChance | ||
) | ||
}, | ||
**cost_sanity_weights | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Similar to the fragile charms setting a caveat that your own deaths will create a shade and remove any existing shade as normal would be good