HK: plando charm cost (#431)

* HK: Charm costs in spoiler log now with charm name.

* HK: Allow Plando Charm costs

* HK: skip unnecessary checks
https://github.com/ArchipelagoMW/Archipelago/pull/431#discussion_r847804916
This commit is contained in:
Fabian Dill
2022-04-12 17:13:52 +02:00
committed by GitHub
parent 618bdfc917
commit a4daa78c0b
3 changed files with 28 additions and 6 deletions

View File

@@ -1,7 +1,8 @@
import typing
from .ExtractedData import logic_options, starts, pool_options
from Options import Option, DefaultOnToggle, Toggle, Choice, Range
from .Charms import vanilla_costs
from Options import Option, DefaultOnToggle, Toggle, Choice, Range, OptionDict
from .Charms import vanilla_costs, names as charm_names
class Disabled(Toggle):
@@ -225,6 +226,18 @@ class RandomCharmCosts(Range):
return charms
class PlandoCharmCosts(OptionDict):
"""Allows setting a Charm's Notch costs directly, mapping {name: cost}.
This is set after any random Charm Notch costs, if applicable."""
display_name = "Charm Notch Cost Plando"
valid_keys = frozenset(charm_names)
def get_costs(self, charm_costs: typing.List[int]) -> typing.List[int]:
for name, cost in self.value.items():
charm_costs[charm_names.index(name)] = cost
return charm_costs
class EggShopSlots(Range):
"""For each slot, add a location to the Egg Shop and a Geo drop to the item pool."""
@@ -240,10 +253,11 @@ hollow_knight_options: typing.Dict[str, type(Option)] = {
MaximumGrubPrice.__name__: MaximumGrubPrice,
MinimumEssencePrice.__name__: MinimumEssencePrice,
MaximumEssencePrice.__name__: MaximumEssencePrice,
MinimumEggPrice.__name__: MinimumEggPrice,
MaximumEggPrice.__name__: MaximumEggPrice,
MinimumCharmPrice.__name__: MinimumCharmPrice,
MaximumCharmPrice.__name__: MaximumCharmPrice,
RandomCharmCosts.__name__: RandomCharmCosts,
PlandoCharmCosts.__name__: PlandoCharmCosts,
MinimumEggPrice.__name__: MinimumEggPrice,
MaximumEggPrice.__name__: MaximumEggPrice,
EggShopSlots.__name__: EggShopSlots,
}