Skip to content

Commit fe44e80

Browse files
authored
Merge branch 'dev' into silly-haha-allsanity-seed
2 parents f5a46db + 8e0e96a commit fe44e80

File tree

14 files changed

+952
-782
lines changed

14 files changed

+952
-782
lines changed

.bumpversion.cfg

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
[bumpversion]
22
commit = True
33
tag = False
4-
current_version = 5.7.12
4+
current_version = 5.7.16
55

66
[bumpversion:file:version.py]
77
search = version = "{current_version}"

__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -905,7 +905,7 @@ def generate_output(self, output_directory: str):
905905
slam_text = " or ".join(hinted_slams)
906906
text = f"Ladies and Gentlemen! It appears that one fighter has come unequipped to properly handle this reptilian beast. Perhaps they should have looked in {slam_text} for the elusive slam.".upper()
907907
elif self.options.shopkeeper_hints.value and hintedItem in shopkeepers:
908-
text = f"{hintedItem.name} has gone on a space mission to \x07{self.foreignMicroHints[hintedItem][0]}'s\x07 \x0d{self.foreignMicroHints[hintedItem][1]}\x0d.".upper()
908+
text = f"{hintedItem.name} has gone on a space mission to \x07{self.foreignMicroHints[hintedItem][0][0]}'s\x07 \x0d{self.foreignMicroHints[hintedItem][0][1]}\x0d.".upper()
909909

910910
# Only create microhint if we have text to display
911911
if text:

ap_version.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
"""Holds the version for Archipelago."""
22

3-
version = "1.4.8"
3+
version = "1.4.10"

archipelago/FillSettings.py

Lines changed: 56 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -101,43 +101,7 @@ def get_default_settings() -> dict:
101101
"dos_door_rando": False,
102102
"enable_shop_hints": True,
103103
"enable_tag_anywhere": True,
104-
"enemies_selected": [
105-
Enemies.Bat,
106-
Enemies.BeaverBlue,
107-
Enemies.BeaverGold,
108-
Enemies.Bug,
109-
Enemies.FireballGlasses,
110-
Enemies.GetOut,
111-
Enemies.Ghost,
112-
Enemies.Gimpfish,
113-
Enemies.Kaboom,
114-
Enemies.KasplatChunky,
115-
Enemies.KasplatDK,
116-
Enemies.KasplatDiddy,
117-
Enemies.KasplatLanky,
118-
Enemies.KasplatTiny,
119-
Enemies.KlaptrapGreen,
120-
Enemies.KlaptrapPurple,
121-
Enemies.KlaptrapRed,
122-
Enemies.Klobber,
123-
Enemies.Klump,
124-
Enemies.Guard,
125-
Enemies.Kosha,
126-
Enemies.Kremling,
127-
Enemies.Krossbones,
128-
Enemies.MrDice0,
129-
Enemies.MrDice1,
130-
Enemies.MushroomMan,
131-
Enemies.Pufftup,
132-
Enemies.RoboKremling,
133-
Enemies.ZingerRobo,
134-
Enemies.Ruler,
135-
Enemies.Shuri,
136-
Enemies.SirDomino,
137-
Enemies.SpiderSmall,
138-
Enemies.ZingerCharger,
139-
Enemies.ZingerLime,
140-
],
104+
"enemies_selected": [],
141105
"enemy_kill_crown_timer": True,
142106
"enemy_speed_rando": False,
143107
"fairy_queen_behavior": RandomRequirement.pre_selected,
@@ -435,16 +399,9 @@ def apply_item_randomization_settings(settings_dict: dict, options) -> None:
435399
settings_dict["item_rando_list_1"].extend(always_enabled_categories)
436400
settings_dict["decouple_item_rando"] = False
437401

438-
if options.enable_filler_items.value:
439-
if options.enable_chaos_blockers.value:
440-
settings_dict["filler_items_selected"] = [ItemRandoFiller.banana, ItemRandoFiller.crown, ItemRandoFiller.fairy, ItemRandoFiller.medal, ItemRandoFiller.pearl, ItemRandoFiller.rainbowcoin]
441-
else:
442-
settings_dict["filler_items_selected"] = [
443-
ItemRandoFiller.banana,
444-
ItemRandoFiller.fairy,
445-
ItemRandoFiller.medal,
446-
ItemRandoFiller.pearl,
447-
]
402+
# Set a default filler list for compatibility with core randomizer
403+
settings_dict["filler_items_selected"] = [ItemRandoFiller.junkitem]
404+
448405
# Conditional item categories
449406
if options.hints_in_item_pool.value:
450407
settings_dict["item_rando_list_1"].append(ItemRandoListSelected.hint)
@@ -624,6 +581,57 @@ def apply_glitches_and_tricks_settings(settings_dict: dict, options) -> None:
624581
settings_dict["glitches_selected"].append(glitches_mapping[glitch])
625582

626583

584+
def apply_enemies(settings_dict: dict, options) -> None:
585+
"""Apply Enemy settings."""
586+
settings_dict["enemies_selected"] = []
587+
588+
enemy_mapping = {
589+
"Bat": Enemies.Bat,
590+
"BeaverBlue": Enemies.BeaverBlue,
591+
"BeaverGold": Enemies.BeaverGold,
592+
"Bug": Enemies.Bug,
593+
"FireballGlasses": Enemies.FireballGlasses,
594+
"GetOut": Enemies.GetOut,
595+
"Ghost": Enemies.Ghost,
596+
"Gimpfish": Enemies.Gimpfish,
597+
"Kaboom": Enemies.Kaboom,
598+
"KasplatChunky": Enemies.KasplatChunky,
599+
"KasplatDK": Enemies.KasplatDK,
600+
"KasplatDiddy": Enemies.KasplatDiddy,
601+
"KasplatLanky": Enemies.KasplatLanky,
602+
"KasplatTiny": Enemies.KasplatTiny,
603+
"KlaptrapGreen": Enemies.KlaptrapGreen,
604+
"KlaptrapPurple": Enemies.KlaptrapPurple,
605+
"KlaptrapRed": Enemies.KlaptrapRed,
606+
"Klobber": Enemies.Klobber,
607+
"Klump": Enemies.Klump,
608+
"Guard": Enemies.Guard,
609+
"Kosha": Enemies.Kosha,
610+
"Kremling": Enemies.Kremling,
611+
"Krossbones": Enemies.Krossbones,
612+
"MrDice0": Enemies.MrDice0,
613+
"MrDice1": Enemies.MrDice1,
614+
"MushroomMan": Enemies.MushroomMan,
615+
"Pufftup": Enemies.Pufftup,
616+
"RoboKremling": Enemies.RoboKremling,
617+
"ZingerRobo": Enemies.ZingerRobo,
618+
"Ruler": Enemies.Ruler,
619+
"Shuri": Enemies.Shuri,
620+
"SirDomino": Enemies.SirDomino,
621+
"SpiderSmall": Enemies.SpiderSmall,
622+
"ZingerCharger": Enemies.ZingerCharger,
623+
"ZingerLime": Enemies.ZingerLime,
624+
"GuardDisableA": Enemies.GuardDisableA,
625+
"GuardDisableZ": Enemies.GuardDisableZ,
626+
"GuardTag": Enemies.GuardTag,
627+
"GuardGetOut": Enemies.GuardGetOut,
628+
}
629+
630+
for enemy in options.enemies_selected:
631+
if enemy in enemy_mapping:
632+
settings_dict["enemies_selected"].append(enemy_mapping[enemy])
633+
634+
627635
def apply_boss_and_key_settings(settings_dict: dict, options) -> None:
628636
"""Apply boss and key settings."""
629637
# Starting keys configuration
@@ -808,6 +816,7 @@ def fillsettings(options, multiworld, random_obj):
808816
apply_starting_moves_settings(settings_dict, options)
809817
apply_hint_settings(settings_dict, options)
810818
apply_minigame_settings(settings_dict, options, multiworld)
819+
apply_enemies(settings_dict, options)
811820

812821
# Handle fake generation keys if needed
813822
if hasattr(multiworld, "generation_is_fake"):

archipelago/Items.py

Lines changed: 14 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
from randomizer.Enums.Levels import Levels
1212
from randomizer.Lists import Item as DK64RItem
1313
from randomizer.Enums.Items import Items as DK64RItems
14-
from randomizer.Enums.Settings import WinConditionComplex, ItemRandoFiller
14+
from randomizer.Enums.Settings import WinConditionComplex
1515
from randomizer.Enums.Types import Types as DK64RTypes, BarrierItems
1616
import randomizer.ItemPool as DK64RItemPoolUtility
1717
import copy
@@ -287,26 +287,22 @@ def setup_items(world: World) -> typing.List[DK64Item]:
287287
trap_count = 0 if (len(trap_weights) == 0) else math.ceil(filler_item_count * (world.options.trap_fill_percentage.value / 100.0))
288288
filler_item_count -= trap_count
289289

290-
filler_mapping = {
291-
ItemRandoFiller.junkitem: [DK64RItems.JunkMelon],
292-
ItemRandoFiller.banana: [DK64RItems.FillerBanana],
293-
ItemRandoFiller.crown: [DK64RItems.FillerCrown],
294-
ItemRandoFiller.fairy: [DK64RItems.FillerFairy],
295-
ItemRandoFiller.medal: [DK64RItems.FillerMedal],
296-
ItemRandoFiller.pearl: [DK64RItems.FillerPearl],
297-
ItemRandoFiller.rainbowcoin: [DK64RItems.FillerRainbowCoin],
298-
}
290+
# Build filler weights based on options
291+
filler_weights = []
292+
filler_weights += [DK64RItems.JunkMelon] * world.options.junk_filler_weight.value
293+
filler_weights += [DK64RItems.FillerBanana] * world.options.banana_filler_weight.value
294+
filler_weights += [DK64RItems.FillerCrown] * world.options.crown_filler_weight.value
295+
filler_weights += [DK64RItems.FillerFairy] * world.options.fairy_filler_weight.value
296+
filler_weights += [DK64RItems.FillerMedal] * world.options.medal_filler_weight.value
297+
filler_weights += [DK64RItems.FillerPearl] * world.options.pearl_filler_weight.value
298+
filler_weights += [DK64RItems.FillerRainbowCoin] * world.options.rainbowcoin_filler_weight.value
299299

300-
possible_junk = []
301-
for filler_type in world.spoiler.settings.filler_items_selected:
302-
if filler_type in filler_mapping:
303-
possible_junk.extend(filler_mapping[filler_type])
304-
305-
if not possible_junk:
306-
possible_junk = [DK64RItems.JunkMelon]
300+
# If no filler weights are set, default to junk
301+
if not filler_weights:
302+
filler_weights = [DK64RItems.JunkMelon]
307303

308304
for _ in range(filler_item_count):
309-
junk_enum = world.random.choice(possible_junk)
305+
junk_enum = world.random.choice(filler_weights)
310306
junk_item = DK64RItem.ItemList[junk_enum]
311307
item_table.append(DK64Item(junk_item.name, ItemClassification.filler, full_item_table[junk_item.name].code, world.player))
312308

0 commit comments

Comments
 (0)