Hollow Knight: Add additional DeathLink option and add ExtraPlatforms option. (#2545)
This commit is contained in:
		
							parent
							
								
									4979314825
								
							
						
					
					
						commit
						a549af8304
					
				| 
						 | 
				
			
			@ -2,7 +2,7 @@ import typing
 | 
			
		|||
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,34 @@ class WhitePalace(Choice):
 | 
			
		|||
    default = 0
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class DeathLink(Choice):
 | 
			
		||||
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, it acts like shadeless.
 | 
			
		||||
 | 
			
		||||
    * This option has no effect if DeathLink is disabled.
 | 
			
		||||
    ** Self-death shade behavior is not changed; if a self-death normally creates a shade in vanilla, it will override
 | 
			
		||||
        your existing shade, if any.
 | 
			
		||||
    """
 | 
			
		||||
    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.
 | 
			
		||||
    """
 | 
			
		||||
    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.
 | 
			
		||||
 | 
			
		||||
    * This option has no effect if DeathLink is disabled.
 | 
			
		||||
    ** Self-death fragile charm behavior is not changed; if a self-death normally breaks fragile charms in vanilla, it
 | 
			
		||||
        will continue to do so.
 | 
			
		||||
    """
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class StartingGeo(Range):
 | 
			
		||||
| 
						 | 
				
			
			@ -476,7 +488,8 @@ hollow_knight_options: typing.Dict[str, type(Option)] = {
 | 
			
		|||
    **{
 | 
			
		||||
        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 +501,7 @@ hollow_knight_options: typing.Dict[str, type(Option)] = {
 | 
			
		|||
            LegEaterShopSlots, GrubfatherRewardSlots,
 | 
			
		||||
            SeerRewardSlots, ExtraShopSlots,
 | 
			
		||||
            SplitCrystalHeart, SplitMothwingCloak, SplitMantisClaw,
 | 
			
		||||
            CostSanity, CostSanityHybridChance,
 | 
			
		||||
            CostSanity, CostSanityHybridChance
 | 
			
		||||
        )
 | 
			
		||||
    },
 | 
			
		||||
    **cost_sanity_weights
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue