Skip to content

Commit 5142739

Browse files
committed
Merge branch 'smw-main' of https://github.com/PoryGoneDev/Pory_Archipelago into smw-main
2 parents 5be46e3 + e530202 commit 5142739

12 files changed

+1210
-1016
lines changed

worlds/smw/Client.py

+16-6
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,8 @@
5959
SMW_SFX_ADDR = WRAM_START + 0x1DFC
6060
SMW_PAUSE_ADDR = WRAM_START + 0x13D4
6161
SMW_MESSAGE_QUEUE_ADDR = WRAM_START + 0xC391
62+
SMW_ACTIVE_THWIMP_ADDR = WRAM_START + 0x0F3C
63+
SMW_GOAL_ITEM_COUNT = WRAM_START + 0x1A01E
6264

6365
SMW_RECV_PROGRESS_ADDR = WRAM_START + 0x1A00E
6466

@@ -235,6 +237,13 @@ async def handle_trap_queue(self, ctx):
235237
self.add_trap_to_queue(next_trap, message)
236238
return
237239
else:
240+
if next_trap.item == 0xBC001D:
241+
# Special case thwimp trap
242+
# Do not fire if the previous thwimp hasn't reached the player's Y pos
243+
active_thwimp = await snes_read(ctx, SMW_ACTIVE_THWIMP_ADDR, 0x1)
244+
if active_thwimp[0] != 0xFF:
245+
self.add_trap_to_queue(next_trap, message)
246+
return
238247
verify_game_state = await snes_read(ctx, SMW_GAME_STATE_ADDR, 0x1)
239248
if verify_game_state[0] == 0x14 and len(trap_rom_data[next_trap.item]) > 2:
240249
snes_buffered_write(ctx, SMW_SFX_ADDR, bytes([trap_rom_data[next_trap.item][2]]))
@@ -518,12 +527,13 @@ async def game_watcher(self, ctx):
518527

519528
snes_buffered_write(ctx, WRAM_START + item_rom_data[item.item][0], bytes([new_item_count]))
520529
elif item.item in icon_rom_data:
521-
if verify_game_state[0] == 0x14:
522-
queue_addr = await snes_read(ctx, WRAM_START + icon_rom_data[item.item][0], 2)
523-
queue_addr = queue_addr[0]+(queue_addr[1]<<8)
524-
queue_addr += 1
525-
snes_buffered_write(ctx, WRAM_START + icon_rom_data[item.item][0], bytes([queue_addr&0xFF, (queue_addr>>8)&0xFF]))
526-
530+
queue_addr = await snes_read(ctx, WRAM_START + icon_rom_data[item.item][0], 2)
531+
queue_addr = queue_addr[0]+(queue_addr[1]<<8)
532+
queue_addr += 1
533+
snes_buffered_write(ctx, WRAM_START + icon_rom_data[item.item][0], bytes([queue_addr&0xFF, (queue_addr>>8)&0xFF]))
534+
if (goal[0] == 0 and item.item == 0xBC0012) or (goal[0] == 1 and item.item == 0xBC0002):
535+
goal_item_count = await snes_read(ctx, SMW_GOAL_ITEM_COUNT, 1)
536+
snes_buffered_write(ctx, SMW_GOAL_ITEM_COUNT, bytes([goal_item_count[0] + 1]))
527537

528538
elif item.item in ability_rom_data:
529539
# Handle Upgrades

worlds/smw/Items.py

+6-4
Original file line numberDiff line numberDiff line change
@@ -51,10 +51,12 @@ class SMWItem(Item):
5151
}
5252

5353
trap_table = {
54-
ItemName.ice_trap: ItemData(0xBC0013, False, True),
55-
ItemName.stun_trap: ItemData(0xBC0014, False, True),
56-
ItemName.literature_trap: ItemData(0xBC0015, False, True),
57-
ItemName.timer_trap: ItemData(0xBC0016, False, True),
54+
ItemName.ice_trap: ItemData(0xBC0013, False, True),
55+
ItemName.stun_trap: ItemData(0xBC0014, False, True),
56+
ItemName.literature_trap: ItemData(0xBC0015, False, True),
57+
ItemName.timer_trap: ItemData(0xBC0016, False, True),
58+
ItemName.reverse_controls_trap: ItemData(0xBC001C, False, True),
59+
ItemName.thwimp_trap: ItemData(0xBC001D, False, True),
5860
}
5961

6062
event_table = {

worlds/smw/Levels.py

+195-201
Large diffs are not rendered by default.

worlds/smw/Locations.py

+100-100
Original file line numberDiff line numberDiff line change
@@ -460,106 +460,106 @@ def __init__(self, player: int, name: str = '', address: int = None, parent=None
460460
LocationName.yoshis_island_3_yellow_block_10: 0xBC06E2,
461461
LocationName.yoshis_island_3_yellow_block_11: 0xBC06E3,
462462
LocationName.yoshis_island_3_yellow_block_12: 0xBC06E4,
463-
LocationName.yoshis_island_3_yellow_block_13: 0xBC06E5,
464-
LocationName.yoshis_island_3_bonus_block_1: 0xBC06E6,
465-
LocationName.yoshis_island_1_flying_block_1: 0xBC06E7,
466-
LocationName.yoshis_island_1_yellow_block_1: 0xBC06E8,
467-
LocationName.yoshis_island_1_life_block_1: 0xBC06E9,
468-
LocationName.yoshis_island_1_powerup_block_1: 0xBC06EA,
469-
LocationName.yoshis_island_2_flying_block_1: 0xBC06EB,
470-
LocationName.yoshis_island_2_flying_block_2: 0xBC06EC,
471-
LocationName.yoshis_island_2_flying_block_3: 0xBC06ED,
472-
LocationName.yoshis_island_2_flying_block_4: 0xBC06EE,
473-
LocationName.yoshis_island_2_flying_block_5: 0xBC06EF,
474-
LocationName.yoshis_island_2_flying_block_6: 0xBC06F0,
475-
LocationName.yoshis_island_2_coin_block_1: 0xBC06F1,
476-
LocationName.yoshis_island_2_yellow_block_1: 0xBC06F2,
477-
LocationName.yoshis_island_2_coin_block_2: 0xBC06F3,
478-
LocationName.yoshis_island_2_coin_block_3: 0xBC06F4,
479-
LocationName.yoshis_island_2_yoshi_block_1: 0xBC06F5,
480-
LocationName.yoshis_island_2_coin_block_4: 0xBC06F6,
481-
LocationName.yoshis_island_2_yoshi_block_2: 0xBC06F7,
482-
LocationName.yoshis_island_2_coin_block_5: 0xBC06F8,
483-
LocationName.yoshis_island_2_vine_block_1: 0xBC06F9,
484-
LocationName.yoshis_island_2_yellow_block_2: 0xBC06FA,
485-
LocationName.vanilla_ghost_house_powerup_block_1: 0xBC06FB,
486-
LocationName.vanilla_ghost_house_vine_block_1: 0xBC06FC,
487-
LocationName.vanilla_ghost_house_powerup_block_2: 0xBC06FD,
488-
LocationName.vanilla_ghost_house_multi_coin_block_1: 0xBC06FE,
489-
LocationName.vanilla_ghost_house_blue_pow_block_1: 0xBC06FF,
490-
LocationName.vanilla_secret_1_coin_block_1: 0xBC0700,
491-
LocationName.vanilla_secret_1_powerup_block_1: 0xBC0701,
492-
LocationName.vanilla_secret_1_multi_coin_block_1: 0xBC0702,
493-
LocationName.vanilla_secret_1_vine_block_1: 0xBC0703,
494-
LocationName.vanilla_secret_1_vine_block_2: 0xBC0704,
495-
LocationName.vanilla_secret_1_coin_block_2: 0xBC0705,
496-
LocationName.vanilla_secret_1_coin_block_3: 0xBC0706,
497-
LocationName.vanilla_secret_1_powerup_block_2: 0xBC0707,
498-
LocationName.vanilla_dome_3_coin_block_1: 0xBC0708,
499-
LocationName.vanilla_dome_3_flying_block_1: 0xBC0709,
500-
LocationName.vanilla_dome_3_flying_block_2: 0xBC070A,
501-
LocationName.vanilla_dome_3_powerup_block_1: 0xBC070B,
502-
LocationName.vanilla_dome_3_flying_block_3: 0xBC070C,
503-
LocationName.vanilla_dome_3_invis_coin_block_1: 0xBC070D,
504-
LocationName.vanilla_dome_3_powerup_block_2: 0xBC070E,
505-
LocationName.vanilla_dome_3_multi_coin_block_1: 0xBC070F,
506-
LocationName.vanilla_dome_3_powerup_block_3: 0xBC0710,
507-
LocationName.vanilla_dome_3_yoshi_block_1: 0xBC0711,
508-
LocationName.vanilla_dome_3_powerup_block_4: 0xBC0712,
509-
LocationName.vanilla_dome_3_pswitch_coin_block_1: 0xBC0713,
510-
LocationName.vanilla_dome_3_pswitch_coin_block_2: 0xBC0714,
511-
LocationName.vanilla_dome_3_pswitch_coin_block_3: 0xBC0715,
512-
LocationName.vanilla_dome_3_pswitch_coin_block_4: 0xBC0716,
513-
LocationName.vanilla_dome_3_pswitch_coin_block_5: 0xBC0717,
514-
LocationName.vanilla_dome_3_pswitch_coin_block_6: 0xBC0718,
515-
LocationName.donut_secret_2_directional_coin_block_1: 0xBC0719,
516-
LocationName.donut_secret_2_vine_block_1: 0xBC071A,
517-
LocationName.donut_secret_2_star_block_1: 0xBC071B,
518-
LocationName.donut_secret_2_powerup_block_1: 0xBC071C,
519-
LocationName.donut_secret_2_star_block_2: 0xBC071D,
520-
LocationName.valley_of_bowser_4_yellow_block_1: 0xBC071E,
521-
LocationName.valley_of_bowser_4_powerup_block_1: 0xBC071F,
522-
LocationName.valley_of_bowser_4_vine_block_1: 0xBC0720,
523-
LocationName.valley_of_bowser_4_yoshi_block_1: 0xBC0721,
524-
LocationName.valley_of_bowser_4_life_block_1: 0xBC0722,
525-
LocationName.valley_of_bowser_4_powerup_block_2: 0xBC0723,
526-
LocationName.valley_castle_yellow_block_1: 0xBC0724,
527-
LocationName.valley_castle_yellow_block_2: 0xBC0725,
528-
LocationName.valley_castle_green_block_1: 0xBC0726,
529-
LocationName.valley_fortress_green_block_1: 0xBC0727,
530-
LocationName.valley_fortress_yellow_block_1: 0xBC0728,
531-
LocationName.valley_of_bowser_3_powerup_block_1: 0xBC0729,
532-
LocationName.valley_of_bowser_3_powerup_block_2: 0xBC072A,
533-
LocationName.valley_ghost_house_pswitch_coin_block_1: 0xBC072B,
534-
LocationName.valley_ghost_house_multi_coin_block_1: 0xBC072C,
535-
LocationName.valley_ghost_house_powerup_block_1: 0xBC072D,
536-
LocationName.valley_ghost_house_directional_coin_block_1: 0xBC072E,
537-
LocationName.valley_of_bowser_2_powerup_block_1: 0xBC072F,
538-
LocationName.valley_of_bowser_2_yellow_block_1: 0xBC0730,
539-
LocationName.valley_of_bowser_2_powerup_block_2: 0xBC0731,
540-
LocationName.valley_of_bowser_2_wings_block_1: 0xBC0732,
541-
LocationName.valley_of_bowser_1_green_block_1: 0xBC0733,
542-
LocationName.valley_of_bowser_1_invis_coin_block_1: 0xBC0734,
543-
LocationName.valley_of_bowser_1_invis_coin_block_2: 0xBC0735,
544-
LocationName.valley_of_bowser_1_invis_coin_block_3: 0xBC0736,
545-
LocationName.valley_of_bowser_1_yellow_block_1: 0xBC0737,
546-
LocationName.valley_of_bowser_1_yellow_block_2: 0xBC0738,
547-
LocationName.valley_of_bowser_1_yellow_block_3: 0xBC0739,
548-
LocationName.valley_of_bowser_1_yellow_block_4: 0xBC073A,
549-
LocationName.valley_of_bowser_1_vine_block_1: 0xBC073B,
550-
LocationName.chocolate_secret_powerup_block_1: 0xBC073C,
551-
LocationName.chocolate_secret_powerup_block_2: 0xBC073D,
552-
LocationName.vanilla_dome_2_coin_block_1: 0xBC073E,
553-
LocationName.vanilla_dome_2_powerup_block_1: 0xBC073F,
554-
LocationName.vanilla_dome_2_coin_block_2: 0xBC0740,
555-
LocationName.vanilla_dome_2_coin_block_3: 0xBC0741,
556-
LocationName.vanilla_dome_2_vine_block_1: 0xBC0742,
557-
LocationName.vanilla_dome_2_invis_life_block_1: 0xBC0743,
558-
LocationName.vanilla_dome_2_coin_block_4: 0xBC0744,
559-
LocationName.vanilla_dome_2_coin_block_5: 0xBC0745,
560-
LocationName.vanilla_dome_2_powerup_block_2: 0xBC0746,
561-
LocationName.vanilla_dome_2_powerup_block_3: 0xBC0747,
562-
LocationName.vanilla_dome_2_powerup_block_4: 0xBC0748,
463+
LocationName.yoshis_island_3_bonus_block_1: 0xBC06E5,
464+
LocationName.yoshis_island_1_flying_block_1: 0xBC06E6,
465+
LocationName.yoshis_island_1_yellow_block_1: 0xBC06E7,
466+
LocationName.yoshis_island_1_life_block_1: 0xBC06E8,
467+
LocationName.yoshis_island_1_powerup_block_1: 0xBC06E9,
468+
LocationName.yoshis_island_2_flying_block_1: 0xBC06EA,
469+
LocationName.yoshis_island_2_flying_block_2: 0xBC06EB,
470+
LocationName.yoshis_island_2_flying_block_3: 0xBC06EC,
471+
LocationName.yoshis_island_2_flying_block_4: 0xBC06ED,
472+
LocationName.yoshis_island_2_flying_block_5: 0xBC06EE,
473+
LocationName.yoshis_island_2_flying_block_6: 0xBC06EF,
474+
LocationName.yoshis_island_2_coin_block_1: 0xBC06F0,
475+
LocationName.yoshis_island_2_yellow_block_1: 0xBC06F1,
476+
LocationName.yoshis_island_2_coin_block_2: 0xBC06F2,
477+
LocationName.yoshis_island_2_coin_block_3: 0xBC06F3,
478+
LocationName.yoshis_island_2_yoshi_block_1: 0xBC06F4,
479+
LocationName.yoshis_island_2_coin_block_4: 0xBC06F5,
480+
LocationName.yoshis_island_2_yoshi_block_2: 0xBC06F6,
481+
LocationName.yoshis_island_2_coin_block_5: 0xBC06F7,
482+
LocationName.yoshis_island_2_vine_block_1: 0xBC06F8,
483+
LocationName.yoshis_island_2_yellow_block_2: 0xBC06F9,
484+
LocationName.vanilla_ghost_house_powerup_block_1: 0xBC06FA,
485+
LocationName.vanilla_ghost_house_vine_block_1: 0xBC06FB,
486+
LocationName.vanilla_ghost_house_powerup_block_2: 0xBC06FC,
487+
LocationName.vanilla_ghost_house_multi_coin_block_1: 0xBC06FD,
488+
LocationName.vanilla_ghost_house_blue_pow_block_1: 0xBC06FE,
489+
LocationName.vanilla_secret_1_coin_block_1: 0xBC06FF,
490+
LocationName.vanilla_secret_1_powerup_block_1: 0xBC0700,
491+
LocationName.vanilla_secret_1_multi_coin_block_1: 0xBC0701,
492+
LocationName.vanilla_secret_1_vine_block_1: 0xBC0702,
493+
LocationName.vanilla_secret_1_vine_block_2: 0xBC0703,
494+
LocationName.vanilla_secret_1_coin_block_2: 0xBC0704,
495+
LocationName.vanilla_secret_1_coin_block_3: 0xBC0705,
496+
LocationName.vanilla_secret_1_powerup_block_2: 0xBC0706,
497+
LocationName.vanilla_dome_3_coin_block_1: 0xBC0707,
498+
LocationName.vanilla_dome_3_flying_block_1: 0xBC0708,
499+
LocationName.vanilla_dome_3_flying_block_2: 0xBC0709,
500+
LocationName.vanilla_dome_3_powerup_block_1: 0xBC070A,
501+
LocationName.vanilla_dome_3_flying_block_3: 0xBC070B,
502+
LocationName.vanilla_dome_3_invis_coin_block_1: 0xBC070C,
503+
LocationName.vanilla_dome_3_powerup_block_2: 0xBC070D,
504+
LocationName.vanilla_dome_3_multi_coin_block_1: 0xBC070E,
505+
LocationName.vanilla_dome_3_powerup_block_3: 0xBC070F,
506+
LocationName.vanilla_dome_3_yoshi_block_1: 0xBC0710,
507+
LocationName.vanilla_dome_3_powerup_block_4: 0xBC0711,
508+
LocationName.vanilla_dome_3_pswitch_coin_block_1: 0xBC0712,
509+
LocationName.vanilla_dome_3_pswitch_coin_block_2: 0xBC0713,
510+
LocationName.vanilla_dome_3_pswitch_coin_block_3: 0xBC0714,
511+
LocationName.vanilla_dome_3_pswitch_coin_block_4: 0xBC0715,
512+
LocationName.vanilla_dome_3_pswitch_coin_block_5: 0xBC0716,
513+
LocationName.vanilla_dome_3_pswitch_coin_block_6: 0xBC0717,
514+
LocationName.donut_secret_2_directional_coin_block_1: 0xBC0718,
515+
LocationName.donut_secret_2_vine_block_1: 0xBC0719,
516+
LocationName.donut_secret_2_star_block_1: 0xBC071A,
517+
LocationName.donut_secret_2_powerup_block_1: 0xBC071B,
518+
LocationName.donut_secret_2_star_block_2: 0xBC071C,
519+
LocationName.valley_of_bowser_4_yellow_block_1: 0xBC071D,
520+
LocationName.valley_of_bowser_4_powerup_block_1: 0xBC071E,
521+
LocationName.valley_of_bowser_4_vine_block_1: 0xBC071F,
522+
LocationName.valley_of_bowser_4_yoshi_block_1: 0xBC0720,
523+
LocationName.valley_of_bowser_4_life_block_1: 0xBC0721,
524+
LocationName.valley_of_bowser_4_powerup_block_2: 0xBC0722,
525+
LocationName.valley_castle_yellow_block_1: 0xBC0723,
526+
LocationName.valley_castle_yellow_block_2: 0xBC0724,
527+
LocationName.valley_castle_green_block_1: 0xBC0725,
528+
LocationName.valley_fortress_green_block_1: 0xBC0726,
529+
LocationName.valley_fortress_yellow_block_1: 0xBC0727,
530+
LocationName.valley_of_bowser_3_powerup_block_1: 0xBC0728,
531+
LocationName.valley_of_bowser_3_powerup_block_2: 0xBC0729,
532+
LocationName.valley_ghost_house_pswitch_coin_block_1: 0xBC072A,
533+
LocationName.valley_ghost_house_multi_coin_block_1: 0xBC072B,
534+
LocationName.valley_ghost_house_powerup_block_1: 0xBC072C,
535+
LocationName.valley_ghost_house_directional_coin_block_1: 0xBC072D,
536+
LocationName.valley_of_bowser_2_powerup_block_1: 0xBC072E,
537+
LocationName.valley_of_bowser_2_yellow_block_1: 0xBC072F,
538+
LocationName.valley_of_bowser_2_powerup_block_2: 0xBC0730,
539+
LocationName.valley_of_bowser_2_wings_block_1: 0xBC0731,
540+
LocationName.valley_of_bowser_1_green_block_1: 0xBC0732,
541+
LocationName.valley_of_bowser_1_invis_coin_block_1: 0xBC0733,
542+
LocationName.valley_of_bowser_1_invis_coin_block_2: 0xBC0734,
543+
LocationName.valley_of_bowser_1_invis_coin_block_3: 0xBC0735,
544+
LocationName.valley_of_bowser_1_yellow_block_1: 0xBC0736,
545+
LocationName.valley_of_bowser_1_yellow_block_2: 0xBC0737,
546+
LocationName.valley_of_bowser_1_yellow_block_3: 0xBC0738,
547+
LocationName.valley_of_bowser_1_yellow_block_4: 0xBC0739,
548+
LocationName.valley_of_bowser_1_vine_block_1: 0xBC073A,
549+
LocationName.chocolate_secret_powerup_block_1: 0xBC073B,
550+
LocationName.chocolate_secret_powerup_block_2: 0xBC073C,
551+
LocationName.vanilla_dome_2_coin_block_1: 0xBC073D,
552+
LocationName.vanilla_dome_2_powerup_block_1: 0xBC073E,
553+
LocationName.vanilla_dome_2_coin_block_2: 0xBC073F,
554+
LocationName.vanilla_dome_2_coin_block_3: 0xBC0740,
555+
LocationName.vanilla_dome_2_vine_block_1: 0xBC0741,
556+
LocationName.vanilla_dome_2_invis_life_block_1: 0xBC0742,
557+
LocationName.vanilla_dome_2_coin_block_4: 0xBC0743,
558+
LocationName.vanilla_dome_2_coin_block_5: 0xBC0744,
559+
LocationName.vanilla_dome_2_powerup_block_2: 0xBC0745,
560+
LocationName.vanilla_dome_2_powerup_block_3: 0xBC0746,
561+
LocationName.vanilla_dome_2_powerup_block_4: 0xBC0747,
562+
LocationName.vanilla_dome_2_powerup_block_5: 0xBC0748,
563563
LocationName.vanilla_dome_2_multi_coin_block_1: 0xBC0749,
564564
LocationName.vanilla_dome_2_multi_coin_block_2: 0xBC074A,
565565
LocationName.vanilla_dome_4_powerup_block_1: 0xBC074B,

worlds/smw/Names/ItemName.py

+6-4
Original file line numberDiff line numberDiff line change
@@ -30,10 +30,12 @@
3030
special_world_clear = "Special Zone Clear"
3131

3232
# Trap Definitions
33-
ice_trap = "Ice Trap"
34-
stun_trap = "Stun Trap"
35-
literature_trap = "Literature Trap"
36-
timer_trap = "Timer Trap"
33+
ice_trap = "Ice Trap"
34+
stun_trap = "Stun Trap"
35+
literature_trap = "Literature Trap"
36+
timer_trap = "Timer Trap"
37+
reverse_controls_trap = "Reverse Controls Trap"
38+
thwimp_trap = "Thwimp Trap"
3739

3840
# Other Definitions
3941
victory = "The Princess"

worlds/smw/Names/LocationName.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -617,7 +617,6 @@
617617
yoshis_island_3_yellow_block_10 = "Yoshi's Island 3 - Yellow Switch Palace Block #10"
618618
yoshis_island_3_yellow_block_11 = "Yoshi's Island 3 - Yellow Switch Palace Block #11"
619619
yoshis_island_3_yellow_block_12 = "Yoshi's Island 3 - Yellow Switch Palace Block #12"
620-
yoshis_island_3_yellow_block_13 = "Yoshi's Island 3 - Yellow Switch Palace Block #13"
621620
yoshis_island_3_bonus_block_1 = "Yoshi's Island 3 - Bonus Block #1"
622621
yoshis_island_1_flying_block_1 = "Yoshi's Island 1 - Flying Question Block #1"
623622
yoshis_island_1_yellow_block_1 = "Yoshi's Island 1 - Yellow Switch Palace Block #1"
@@ -717,6 +716,7 @@
717716
vanilla_dome_2_powerup_block_2 = "Vanilla Dome 2 - Powerup Block #2"
718717
vanilla_dome_2_powerup_block_3 = "Vanilla Dome 2 - Powerup Block #3"
719718
vanilla_dome_2_powerup_block_4 = "Vanilla Dome 2 - Powerup Block #4"
719+
vanilla_dome_2_powerup_block_5 = "Vanilla Dome 2 - Powerup Block #5"
720720
vanilla_dome_2_multi_coin_block_1 = "Vanilla Dome 2 - Multi Coin Block #1"
721721
vanilla_dome_2_multi_coin_block_2 = "Vanilla Dome 2 - Multi Coin Block #2"
722722
vanilla_dome_4_powerup_block_1 = "Vanilla Dome 4 - Powerup Block #1"
@@ -969,4 +969,4 @@
969969
star_road_5_green_block_17 = "Star Road 5 - Green Switch Palace Block #17"
970970
star_road_5_green_block_18 = "Star Road 5 - Green Switch Palace Block #18"
971971
star_road_5_green_block_19 = "Star Road 5 - Green Switch Palace Block #19"
972-
star_road_5_green_block_20 = "Star Road 5 - Green Switch Palace Block #20"
972+
star_road_5_green_block_20 = "Star Road 5 - Green Switch Palace Block #20"

worlds/smw/Options.py

+16
Original file line numberDiff line numberDiff line change
@@ -244,6 +244,20 @@ class TimerTrapWeight(BaseTrapWeight):
244244
display_name = "Timer Trap Weight"
245245

246246

247+
class ReverseControlsTrapWeight(BaseTrapWeight):
248+
"""
249+
Likelihood of a receiving a trap which causes the controls to be reversed in the current level
250+
"""
251+
display_name = "Reverse Controls Trap Weight"
252+
253+
254+
class ThwimpTrapWeight(BaseTrapWeight):
255+
"""
256+
Likelihood of a receiving a trap which causes a Thwimp to spawn above the player
257+
"""
258+
display_name = "Thwimp Trap Weight"
259+
260+
247261
class Autosave(DefaultOnToggle):
248262
"""
249263
Whether a save prompt will appear after every level
@@ -382,6 +396,8 @@ class SMWOptions(PerGameCommonOptions):
382396
stun_trap_weight: StunTrapWeight
383397
literature_trap_weight: LiteratureTrapWeight
384398
timer_trap_weight: TimerTrapWeight
399+
reverse_controls_trap_weight: ReverseControlsTrapWeight
400+
thwimp_trap_weight: ThwimpTrapWeight
385401
autosave: Autosave
386402
early_climb: EarlyClimb
387403
overworld_speed: OverworldSpeed

0 commit comments

Comments
 (0)