From 7600628f28ec2c94fa376aebfe9799dda925fb5a Mon Sep 17 00:00:00 2001 From: nn <53490794+nn357@users.noreply.github.com> Date: Wed, 17 Dec 2025 06:00:37 +0900 Subject: [PATCH 01/15] add disable_spikesuit option to maprando logic includes the patch / updated vanilla bugfixes patch (the message box has a jump exception to NOT kill samus if the dialog box is for spikesuit disabled message) --- patches/ips/remove_spikesuits.ips | Bin 0 -> 57 bytes patches/ips/vanilla_bugfixes.ips | Bin 1662 -> 1929 bytes patches/rom_map/Bank 80.txt | 2 +- patches/rom_map/Bank 85.txt | 2 +- patches/src/remove_spikesuits.asm | 30 +++++++++++++++++ patches/src/vanilla_bugfixes.asm | 31 +++++++++++------- .../Community Race Season 4.json | 1 + rust/data/presets/full-settings/Default.json | 1 + ...nter Tournament - 4 Random Objectives.json | 1 + .../Winter Tournament - Double Suit.json | 1 + .../Winter Tournament - Gravity 9 + 1.json | 1 + ...inter Tournament - Metroid Objectives.json | 1 + .../Winter Tournament - No Objectives.json | 1 + .../Winter Tournament - Varia + Movement.json | 1 + .../templates/generate/game_variations.html | 13 ++++++++ .../help/variations/disable_spikesuits.html | 22 +++++++++++++ .../templates/generate/scripts.html | 1 + rust/maprando/src/patch.rs | 4 +++ rust/maprando/tests/logic_scenarios.rs | 1 + rust/maprando/tests/presets/v119-Default.json | 1 + 20 files changed, 102 insertions(+), 13 deletions(-) create mode 100644 patches/ips/remove_spikesuits.ips create mode 100644 patches/src/remove_spikesuits.asm create mode 100644 rust/maprando-web/templates/generate/help/variations/disable_spikesuits.html diff --git a/patches/ips/remove_spikesuits.ips b/patches/ips/remove_spikesuits.ips new file mode 100644 index 0000000000000000000000000000000000000000..a11f38facd9c95a2ae43a2689a0567b44444b143 GIT binary patch literal 57 zcmV-90LK4NK~zIX0Aa8IA+5{`&=Rd^3h)i70050>3aLc^A^@<3sR96vG76mR4QmKg PyZ{Cwu;GB}>P1gRFVGZ( literal 0 HcmV?d00001 diff --git a/patches/ips/vanilla_bugfixes.ips b/patches/ips/vanilla_bugfixes.ips index 21a421e9c2a32e98f98160558940a815220aef0d..50bfbfd8c71146f76597032bb48bf420c02dc05b 100644 GIT binary patch delta 167 zcmeyz)5*VqiBUdi15?ve24;m+ApH(V7jIx{;Q`WZ8<;jQus->g0%TtXvJM03OF9R14(gl+${gP8$ZE?70AN)? A;s5{u delta 140 zcmeC=|Hrd|iBaBn15?ve24;l>ApH(V=WSqW;Q`W(8<;jQu&ke~$Y?n^o>3{}o2HL{ z(^`3%lMW0U7!xdBIxr-pnyi8gbV+1>(_EDR=dWaBSkS4HaI`t9Y5fK;xe-im0+X8= RfMETW#kUz*Cf{aT2LMy3HC6xs diff --git a/patches/rom_map/Bank 80.txt b/patches/rom_map/Bank 80.txt index 830a074d72..bdc76daf49 100644 --- a/patches/rom_map/Bank 80.txt +++ b/patches/rom_map/Bank 80.txt @@ -12,7 +12,7 @@ DA00 - DD00: msu1.asm DD00 - E100: Palette pointer table for Mosaic E100 - E180: area_palette.asm E180 - E1B0: fix_horiz_doors.asm -E1B0 - E2A0: [FREE] +E1B0 - E2A0: remove_spikesuits.asm E2A0 - E3C0: decompression.asm E3C0 - E440: disable_etanks.asm E440 - E540: load_plms_early.asm diff --git a/patches/rom_map/Bank 85.txt b/patches/rom_map/Bank 85.txt index 62deded811..da43322e7a 100644 --- a/patches/rom_map/Bank 85.txt +++ b/patches/rom_map/Bank 85.txt @@ -18,4 +18,4 @@ $AB00 - $ACA0: map_area.asm $ACA0 - $AD00: load_flash_suit $AD00 - $AFD0: map_area.asm $AFD0 - $B000: [FREE] -$B000 - $B4B0: vanilla_bugfixes.asm +$B000 - $D4B0: vanilla_bugfixes.asm diff --git a/patches/src/remove_spikesuits.asm b/patches/src/remove_spikesuits.asm new file mode 100644 index 0000000000..e00c0eb793 --- /dev/null +++ b/patches/src/remove_spikesuits.asm @@ -0,0 +1,30 @@ +; Removes a spikesuit state from samus + +arch snes.cpu +lorom + +!any_bank_free_space_start = $80E1B0 +!any_bank_free_space_end = $80E2A0 + +org $90D4BC ; hook end of shinespark crash + jsl check_ss + nop + nop + +org !any_bank_free_space_start +check_ss: + LDA $0ACC ; Samus palette type normal? [regular shinecharge] + BNE .skip + LDA $0A68 ; special timer non zero? [can spark] + BEQ .skip + LDA #$0000 + STA $0A68 ; goodbye spikesuit + LDA #$0045 ; msg ID + JSL $85B000 + .skip: + LDA #$0002 + STA $0A32 + STZ $0DEC + RTL + +assert pc() <= !any_bank_free_space_end diff --git a/patches/src/vanilla_bugfixes.asm b/patches/src/vanilla_bugfixes.asm index 530f2e25df..0a940d6bba 100644 --- a/patches/src/vanilla_bugfixes.asm +++ b/patches/src/vanilla_bugfixes.asm @@ -79,7 +79,7 @@ check_empty: .end: rts -warnpc $a0f830 +assert pc() <= $a0f830 ;;; Fixes for the extra save stations in area rando/random start : @@ -123,7 +123,7 @@ save_station_check: jmp search_loop_found ;;; end of unused space -warnpc $8485b2 +assert pc() <= $8485b2 ; Use door direction ($0791) to check in Big Boy room if we are coming in from the left vs. right. @@ -181,7 +181,7 @@ fix_camera_alignment: LDA $B1 : SEC RTS -warnpc !bank_80_free_space_end +assert pc() <= !bank_80_free_space_end ; skip loading special x-ray blocks (only used in BT room during escape, and we repurpose the space for other things) @@ -209,7 +209,7 @@ check_item_plm: clc rts -warnpc $848398 +assert pc() <= $848398 org $848398 special_xray_end: @@ -239,7 +239,7 @@ pause_func: stz $9d6 ; clear reserve health rts -warnpc !bank_82_free_space_end +assert pc() <= !bank_82_free_space_end ; Fix for powamp projectile bug ; @@ -268,7 +268,7 @@ powamp_fix: sta $1a4b,y ; replaced code rts -warnpc !bank_86_free_space_end +assert pc() <= !bank_86_free_space_end ; Fix improper clearing of BG2 ; Noted by PJBoy: https://patrickjohnston.org/bank/80#fA23F @@ -299,7 +299,7 @@ yapping_maw_crash: .skip jmp ($d37d,x) ; valid entry -warnPC !bank_90_free_space_end +assert pc() <= !bank_90_free_space_end ;;; Spring ball menu crash fix by strotlog. ;;; Fix obscure vanilla bug where: turning off spring ball while bouncing, can crash in $91:EA07, @@ -314,7 +314,7 @@ org $91f1fc jsl spring_ball_crash !bank_85_free_space_start = $85b000 ; do not change, first jmp used externally -!bank_85_free_space_end = $85b4b0 +!bank_85_free_space_end = $85d4b0 org !bank_85_free_space_start jmp bug_dialog ; for external calls, do not move @@ -352,7 +352,8 @@ bug_dialog: ; A = msg ID pla ; dlg box parameter jsl $858080 ; dlg box - + cmp #$0045 ; spikesuit disabled msg + beq .nokillmsg ; we don't want to kill samus for spikesuiting so skip the death sequence lda #$8000 ; init death sequence (copied from $82db80) sta $a78 lda #$0011 @@ -360,6 +361,7 @@ bug_dialog: ; A = msg ID lda #$0013 ; set gamestate sta $998 + .nokillmsg rtl hook_message_box: @@ -416,6 +418,7 @@ new_message_boxes: dw $83c5, $825a, springball_msg ; 0x42 dw $83c5, $825a, yapping_maw_msg ; 0x43 dw $83c5, $825a, oob_msg ; 0x44 + dw $83c5, $825a, ss_msg ; 0x45 dw $0000, $0000, msg_end table "tables/dialog_chars.tbl",RTL @@ -443,10 +446,16 @@ oob_msg: dw $000e,$000e,$000e, " SAMUS OUT-OF-BOUNDS! ", $000e,$000e,$000e dw $000e,$000e,$000e, " ", $000e,$000e,$000e dw $000e,$000e,$000e, " ", $000e,$000e,$000e + +ss_msg: + dw $000e,$000e,$000e, " ", $000e,$000e,$000e + dw $000e,$000e,$000e, " SPIKE SUIT DISABLED! ", $000e,$000e,$000e + dw $000e,$000e,$000e, " ", $000e,$000e,$000e + dw $000e,$000e,$000e, " ", $000e,$000e,$000e msg_end: -warnPC !bank_85_free_space_end +assert pc() <= !bank_85_free_space_end org $858093 jsr hook_message_box @@ -483,7 +492,7 @@ check_unpause: lda #$0008 ; replaced code jmp $93be -warnPC !bank_82_free_space2_end +assert pc() <= !bank_82_free_space2_end ; Map scrolling bug ; Leftmost edge function @ $829f4a has an off-by-one bug when scanning diff --git a/rust/data/presets/full-settings/Community Race Season 4.json b/rust/data/presets/full-settings/Community Race Season 4.json index a1189bb38b..8462c7b7e6 100644 --- a/rust/data/presets/full-settings/Community Race Season 4.json +++ b/rust/data/presets/full-settings/Community Race Season 4.json @@ -4513,6 +4513,7 @@ "door_locks_size": "Large", "map_station_reveal": "Full", "energy_free_shinesparks": false, + "disable_spikesuits": false, "ultra_low_qol": false, "race_mode": true, "random_seed": null diff --git a/rust/data/presets/full-settings/Default.json b/rust/data/presets/full-settings/Default.json index 5498ce53ab..88a1e064fc 100644 --- a/rust/data/presets/full-settings/Default.json +++ b/rust/data/presets/full-settings/Default.json @@ -4514,6 +4514,7 @@ "door_locks_size": "Large", "map_station_reveal": "Full", "energy_free_shinesparks": false, + "disable_spikesuits": false, "ultra_low_qol": false, "race_mode": false, "random_seed": null diff --git a/rust/data/presets/full-settings/Winter Tournament - 4 Random Objectives.json b/rust/data/presets/full-settings/Winter Tournament - 4 Random Objectives.json index 8e49963c2b..44261ef295 100644 --- a/rust/data/presets/full-settings/Winter Tournament - 4 Random Objectives.json +++ b/rust/data/presets/full-settings/Winter Tournament - 4 Random Objectives.json @@ -4586,6 +4586,7 @@ "maps_revealed": null, "map_station_reveal": "Full", "energy_free_shinesparks": false, + "disable_spikesuits": false, "ultra_low_qol": false, "race_mode": true, "random_seed": null diff --git a/rust/data/presets/full-settings/Winter Tournament - Double Suit.json b/rust/data/presets/full-settings/Winter Tournament - Double Suit.json index 4e2fb929db..23d129ca1c 100644 --- a/rust/data/presets/full-settings/Winter Tournament - Double Suit.json +++ b/rust/data/presets/full-settings/Winter Tournament - Double Suit.json @@ -4586,6 +4586,7 @@ "maps_revealed": null, "map_station_reveal": "Full", "energy_free_shinesparks": false, + "disable_spikesuits": false, "ultra_low_qol": false, "race_mode": true, "random_seed": null diff --git a/rust/data/presets/full-settings/Winter Tournament - Gravity 9 + 1.json b/rust/data/presets/full-settings/Winter Tournament - Gravity 9 + 1.json index 7605ec9abc..117c67a728 100644 --- a/rust/data/presets/full-settings/Winter Tournament - Gravity 9 + 1.json +++ b/rust/data/presets/full-settings/Winter Tournament - Gravity 9 + 1.json @@ -4586,6 +4586,7 @@ "maps_revealed": null, "map_station_reveal": "Full", "energy_free_shinesparks": false, + "disable_spikesuits": false, "ultra_low_qol": false, "race_mode": true, "random_seed": null diff --git a/rust/data/presets/full-settings/Winter Tournament - Metroid Objectives.json b/rust/data/presets/full-settings/Winter Tournament - Metroid Objectives.json index 8d4b60c9ea..ef3daa2353 100644 --- a/rust/data/presets/full-settings/Winter Tournament - Metroid Objectives.json +++ b/rust/data/presets/full-settings/Winter Tournament - Metroid Objectives.json @@ -4586,6 +4586,7 @@ "maps_revealed": null, "map_station_reveal": "Full", "energy_free_shinesparks": false, + "disable_spikesuits": false, "ultra_low_qol": false, "race_mode": true, "random_seed": null diff --git a/rust/data/presets/full-settings/Winter Tournament - No Objectives.json b/rust/data/presets/full-settings/Winter Tournament - No Objectives.json index 928ce79f4e..92939df5aa 100644 --- a/rust/data/presets/full-settings/Winter Tournament - No Objectives.json +++ b/rust/data/presets/full-settings/Winter Tournament - No Objectives.json @@ -4586,6 +4586,7 @@ "maps_revealed": null, "map_station_reveal": "Full", "energy_free_shinesparks": false, + "disable_spikesuits": false, "ultra_low_qol": false, "race_mode": true, "random_seed": null diff --git a/rust/data/presets/full-settings/Winter Tournament - Varia + Movement.json b/rust/data/presets/full-settings/Winter Tournament - Varia + Movement.json index f121d8bd81..4d06d883a4 100644 --- a/rust/data/presets/full-settings/Winter Tournament - Varia + Movement.json +++ b/rust/data/presets/full-settings/Winter Tournament - Varia + Movement.json @@ -4586,6 +4586,7 @@ "maps_revealed": null, "map_station_reveal": "Full", "energy_free_shinesparks": false, + "disable_spikesuits": false, "ultra_low_qol": false, "race_mode": true, "random_seed": null diff --git a/rust/maprando-web/templates/generate/game_variations.html b/rust/maprando-web/templates/generate/game_variations.html index 800b5d26d4..ec521f3093 100644 --- a/rust/maprando-web/templates/generate/game_variations.html +++ b/rust/maprando-web/templates/generate/game_variations.html @@ -63,6 +63,19 @@ +
+
+ {% include "help/variations/disable_spikesuits.html" %} + +
+
+ + + + +
+
{% include "help/variations/ultra_low_qol.html" %} diff --git a/rust/maprando-web/templates/generate/help/variations/disable_spikesuits.html b/rust/maprando-web/templates/generate/help/variations/disable_spikesuits.html new file mode 100644 index 0000000000..857d954732 --- /dev/null +++ b/rust/maprando-web/templates/generate/help/variations/disable_spikesuits.html @@ -0,0 +1,22 @@ + + + + \ No newline at end of file diff --git a/rust/maprando-web/templates/generate/scripts.html b/rust/maprando-web/templates/generate/scripts.html index f87f73e2e6..fbddb7e9f1 100644 --- a/rust/maprando-web/templates/generate/scripts.html +++ b/rust/maprando-web/templates/generate/scripts.html @@ -291,6 +291,7 @@ "maps_revealed": formData.get("maps_revealed"), "map_station_reveal": formData.get("map_station_reveal"), "energy_free_shinesparks": formData.get("energy_free_shinesparks") == "true", + "disable_spikesuits": formData.get("disable_spikesuits") == "true", "ultra_low_qol": formData.get("ultra_low_qol") == "true", "race_mode": formData.get("race_mode") == "true", "random_seed": tryParseInt(formData.get("random_seed")), diff --git a/rust/maprando/src/patch.rs b/rust/maprando/src/patch.rs index 69f414e280..fecaa4ddce 100644 --- a/rust/maprando/src/patch.rs +++ b/rust/maprando/src/patch.rs @@ -578,6 +578,10 @@ impl Patcher<'_> { if self.settings.other_settings.energy_free_shinesparks { patches.push("energy_free_shinesparks"); } + + if self.settings.other_settings.disable_spikesuits { + patches.push("remove_spikesuits"); + } if self.settings.quality_of_life_settings.respin { patches.push("respin"); diff --git a/rust/maprando/tests/logic_scenarios.rs b/rust/maprando/tests/logic_scenarios.rs index 9be955cc2b..82f17f3120 100644 --- a/rust/maprando/tests/logic_scenarios.rs +++ b/rust/maprando/tests/logic_scenarios.rs @@ -250,6 +250,7 @@ fn get_settings(scenario: &Scenario) -> Result { door_locks_size: maprando::settings::DoorLocksSize::Large, map_station_reveal: maprando::settings::MapStationReveal::Full, energy_free_shinesparks: false, + disable_spikesuits: false, ultra_low_qol: false, race_mode: false, random_seed: None, diff --git a/rust/maprando/tests/presets/v119-Default.json b/rust/maprando/tests/presets/v119-Default.json index 2854762dfd..ee64877ca2 100644 --- a/rust/maprando/tests/presets/v119-Default.json +++ b/rust/maprando/tests/presets/v119-Default.json @@ -4346,6 +4346,7 @@ "maps_revealed": null, "map_station_reveal": "Full", "energy_free_shinesparks": false, + "disable_spikesuits": false, "ultra_low_qol": false, "race_mode": false, "random_seed": null From d9adfc7b4513bc130f273cde2c4a982419d300a3 Mon Sep 17 00:00:00 2001 From: nn <53490794+nn357@users.noreply.github.com> Date: Wed, 17 Dec 2025 06:07:08 +0900 Subject: [PATCH 02/15] Update download_data.sh convert lineendings from crlf (windows) to lf (unix) --- scripts/download_data.sh | 1 - 1 file changed, 1 deletion(-) diff --git a/scripts/download_data.sh b/scripts/download_data.sh index 28b12c5a30..9636b16278 100644 --- a/scripts/download_data.sh +++ b/scripts/download_data.sh @@ -3,7 +3,6 @@ set -e mkdir -p tmp cd tmp - # Download the map pools mkdir -p ../maps for pool in "v119-small-avro" "v119-standard-avro" "v119-wild-avro" From 71be9e3743d981e6e0f24283089cad4eddb7b461 Mon Sep 17 00:00:00 2001 From: nn <53490794+nn357@users.noreply.github.com> Date: Wed, 17 Dec 2025 06:13:14 +0900 Subject: [PATCH 03/15] Update settings.rs --- rust/maprando/src/settings.rs | 1 + 1 file changed, 1 insertion(+) diff --git a/rust/maprando/src/settings.rs b/rust/maprando/src/settings.rs index f422215284..01dc427fa0 100644 --- a/rust/maprando/src/settings.rs +++ b/rust/maprando/src/settings.rs @@ -347,6 +347,7 @@ pub struct OtherSettings { pub door_locks_size: DoorLocksSize, pub map_station_reveal: MapStationReveal, pub energy_free_shinesparks: bool, + pub disable_spikesuits: bool, pub ultra_low_qol: bool, pub race_mode: bool, pub random_seed: Option, From 830c9ddab5ed2f015bb2009fb3c00e1775af70c9 Mon Sep 17 00:00:00 2001 From: nn <53490794+nn357@users.noreply.github.com> Date: Thu, 18 Dec 2025 19:40:33 +0900 Subject: [PATCH 04/15] update remove_spikesuits change disable to remove and edit helper description --- .../full-settings/Community Race Season 4.json | 2 +- rust/data/presets/full-settings/Default.json | 2 +- .../Winter Tournament - 4 Random Objectives.json | 2 +- .../Winter Tournament - Double Suit.json | 2 +- .../Winter Tournament - Gravity 9 + 1.json | 2 +- .../Winter Tournament - Metroid Objectives.json | 2 +- .../Winter Tournament - No Objectives.json | 2 +- .../Winter Tournament - Varia + Movement.json | 2 +- rust/maprando-game/src/lib.rs | 3 +++ .../templates/generate/game_variations.html | 14 +++++++------- ...able_spikesuits.html => remove_spikesuits.html} | 7 ++++--- rust/maprando-web/templates/generate/scripts.html | 2 +- rust/maprando/src/patch.rs | 13 ++++++++----- rust/maprando/src/randomize.rs | 13 +++++++++---- rust/maprando/src/settings.rs | 8 +++++++- rust/maprando/tests/logic_scenarios.rs | 2 +- rust/maprando/tests/presets/v119-Default.json | 2 +- 17 files changed, 49 insertions(+), 31 deletions(-) rename rust/maprando-web/templates/generate/help/variations/{disable_spikesuits.html => remove_spikesuits.html} (59%) diff --git a/rust/data/presets/full-settings/Community Race Season 4.json b/rust/data/presets/full-settings/Community Race Season 4.json index 8462c7b7e6..3984c33cbf 100644 --- a/rust/data/presets/full-settings/Community Race Season 4.json +++ b/rust/data/presets/full-settings/Community Race Season 4.json @@ -4513,7 +4513,7 @@ "door_locks_size": "Large", "map_station_reveal": "Full", "energy_free_shinesparks": false, - "disable_spikesuits": false, + "remove_spikesuits": "Disabled", "ultra_low_qol": false, "race_mode": true, "random_seed": null diff --git a/rust/data/presets/full-settings/Default.json b/rust/data/presets/full-settings/Default.json index 88a1e064fc..efc1315566 100644 --- a/rust/data/presets/full-settings/Default.json +++ b/rust/data/presets/full-settings/Default.json @@ -4514,7 +4514,7 @@ "door_locks_size": "Large", "map_station_reveal": "Full", "energy_free_shinesparks": false, - "disable_spikesuits": false, + "remove_spikesuits": "Disabled", "ultra_low_qol": false, "race_mode": false, "random_seed": null diff --git a/rust/data/presets/full-settings/Winter Tournament - 4 Random Objectives.json b/rust/data/presets/full-settings/Winter Tournament - 4 Random Objectives.json index 44261ef295..7fe0cf2204 100644 --- a/rust/data/presets/full-settings/Winter Tournament - 4 Random Objectives.json +++ b/rust/data/presets/full-settings/Winter Tournament - 4 Random Objectives.json @@ -4586,7 +4586,7 @@ "maps_revealed": null, "map_station_reveal": "Full", "energy_free_shinesparks": false, - "disable_spikesuits": false, + "remove_spikesuits": "Disabled", "ultra_low_qol": false, "race_mode": true, "random_seed": null diff --git a/rust/data/presets/full-settings/Winter Tournament - Double Suit.json b/rust/data/presets/full-settings/Winter Tournament - Double Suit.json index 23d129ca1c..7449f51a4b 100644 --- a/rust/data/presets/full-settings/Winter Tournament - Double Suit.json +++ b/rust/data/presets/full-settings/Winter Tournament - Double Suit.json @@ -4586,7 +4586,7 @@ "maps_revealed": null, "map_station_reveal": "Full", "energy_free_shinesparks": false, - "disable_spikesuits": false, + "remove_spikesuits": "Disabled", "ultra_low_qol": false, "race_mode": true, "random_seed": null diff --git a/rust/data/presets/full-settings/Winter Tournament - Gravity 9 + 1.json b/rust/data/presets/full-settings/Winter Tournament - Gravity 9 + 1.json index 117c67a728..c2b472c5ae 100644 --- a/rust/data/presets/full-settings/Winter Tournament - Gravity 9 + 1.json +++ b/rust/data/presets/full-settings/Winter Tournament - Gravity 9 + 1.json @@ -4586,7 +4586,7 @@ "maps_revealed": null, "map_station_reveal": "Full", "energy_free_shinesparks": false, - "disable_spikesuits": false, + "remove_spikesuits": "Disabled", "ultra_low_qol": false, "race_mode": true, "random_seed": null diff --git a/rust/data/presets/full-settings/Winter Tournament - Metroid Objectives.json b/rust/data/presets/full-settings/Winter Tournament - Metroid Objectives.json index ef3daa2353..da09da405b 100644 --- a/rust/data/presets/full-settings/Winter Tournament - Metroid Objectives.json +++ b/rust/data/presets/full-settings/Winter Tournament - Metroid Objectives.json @@ -4586,7 +4586,7 @@ "maps_revealed": null, "map_station_reveal": "Full", "energy_free_shinesparks": false, - "disable_spikesuits": false, + "remove_spikesuits": "Disabled", "ultra_low_qol": false, "race_mode": true, "random_seed": null diff --git a/rust/data/presets/full-settings/Winter Tournament - No Objectives.json b/rust/data/presets/full-settings/Winter Tournament - No Objectives.json index 92939df5aa..7b15ab7f04 100644 --- a/rust/data/presets/full-settings/Winter Tournament - No Objectives.json +++ b/rust/data/presets/full-settings/Winter Tournament - No Objectives.json @@ -4586,7 +4586,7 @@ "maps_revealed": null, "map_station_reveal": "Full", "energy_free_shinesparks": false, - "disable_spikesuits": false, + "remove_spikesuits": "Disabled", "ultra_low_qol": false, "race_mode": true, "random_seed": null diff --git a/rust/data/presets/full-settings/Winter Tournament - Varia + Movement.json b/rust/data/presets/full-settings/Winter Tournament - Varia + Movement.json index 4d06d883a4..75ee2e5a67 100644 --- a/rust/data/presets/full-settings/Winter Tournament - Varia + Movement.json +++ b/rust/data/presets/full-settings/Winter Tournament - Varia + Movement.json @@ -4586,7 +4586,7 @@ "maps_revealed": null, "map_station_reveal": "Full", "energy_free_shinesparks": false, - "disable_spikesuits": false, + "remove_spikesuits": "Disabled", "ultra_low_qol": false, "race_mode": true, "random_seed": null diff --git a/rust/maprando-game/src/lib.rs b/rust/maprando-game/src/lib.rs index 4223bbf42f..14b0e7e977 100644 --- a/rust/maprando-game/src/lib.rs +++ b/rust/maprando-game/src/lib.rs @@ -70,6 +70,9 @@ pub const TECH_ID_CAN_ELEVATOR_CRYSTAL_FLASH: TechId = 178; pub const TECH_ID_CAN_CARRY_FLASH_SUIT: TechId = 207; pub const TECH_ID_CAN_TRICKY_CARRY_FLASH_SUIT: TechId = 142; pub const TECH_ID_CAN_HYPER_GATE_SHOT: TechId = 10001; +pub const TECH_ID_CAN_SPIKE_SUIT: TechId = 141; +pub const TECH_ID_CAN_SLOPE_SPARK: TechId = 210; +pub const TECH_ID_CAN_RMODE_KNOCKBACK_SPARK: TechId = 213; #[allow(clippy::type_complexity)] #[derive(Deserialize, Serialize, Clone, Debug)] diff --git a/rust/maprando-web/templates/generate/game_variations.html b/rust/maprando-web/templates/generate/game_variations.html index ec521f3093..0ca3dda7e6 100644 --- a/rust/maprando-web/templates/generate/game_variations.html +++ b/rust/maprando-web/templates/generate/game_variations.html @@ -65,15 +65,15 @@
- {% include "help/variations/disable_spikesuits.html" %} - + {% include "help/variations/remove_spikesuits.html" %} +
-
- + - - - + + +
diff --git a/rust/maprando-web/templates/generate/help/variations/disable_spikesuits.html b/rust/maprando-web/templates/generate/help/variations/remove_spikesuits.html similarity index 59% rename from rust/maprando-web/templates/generate/help/variations/disable_spikesuits.html rename to rust/maprando-web/templates/generate/help/variations/remove_spikesuits.html index 857d954732..eabe1f3889 100644 --- a/rust/maprando-web/templates/generate/help/variations/disable_spikesuits.html +++ b/rust/maprando-web/templates/generate/help/variations/remove_spikesuits.html @@ -7,12 +7,13 @@