Add ultra fast junk setting and variable ganon item

This commit is contained in:
2025-09-05 21:35:39 -05:00
parent d2845183ed
commit f381b6f6b0
5 changed files with 90 additions and 3 deletions

View File

@@ -9,6 +9,7 @@ import ReduceFlashingPicker from "@/components/ReduceFlashingPicker.vue";
import BackgroundMusicPicker from "@/components/BackgroundMusicPicker.vue";
import MsuResumePicker from "@/components/MsuResumePicker.vue";
import CollectionRatePicker from "@/components/CollectionRatePicker.vue";
import UltraFastJunkPicker from "@/components/UltraFastJunkPicker.vue";
import Spoiler from "@/components/Spoiler.vue";
import SeedSettings from "@/components/SeedSettings.vue";
@@ -30,6 +31,7 @@ export default defineComponent({
BackgroundMusicPicker,
MsuResumePicker,
CollectionRatePicker,
UltraFastJunkPicker,
Spoiler,
},
data() {
@@ -37,6 +39,7 @@ export default defineComponent({
rom_checksum: "3322EFFC",
baserom: null,
baserom_error: null,
created: null,
patch: null,
error: null,
retry: false,
@@ -93,6 +96,7 @@ export default defineComponent({
this.settings = seedData.settings;
this.multi = seedData.parent;
this.spoiler = seedData.spoiler;
this.created = seedData.created;
},
async fetchSeed() {
await axios.get(`/seed/${this.id}`)
@@ -165,14 +169,12 @@ export default defineComponent({
this.$refs.bgm.patch(rom);
this.$refs.reduce_flashing.patch(rom);
this.$refs.quickswap.patch(rom);
this.$refs.ufj.patch(rom);
if (this.allow_cr) {
this.$refs.cr.patch(rom);
}
// fast multijunk, too lazy to make it a setting rn
rom[0x1800AF] = 0x10;
// Fix Checksum
const sum = rom.reduce(function(sum, mbyte, i) {
if (i >= 0x7fdc && i < 0x7fe0) {
@@ -250,6 +252,7 @@ export default defineComponent({
<ReduceFlashingPicker ref="reduce_flashing" />
<QuickswapPicker ref="quickswap" />
<CollectionRatePicker v-if="allow_cr" ref="cr" />
<UltraFastJunkPicker :created="created" ref="ufj" />
</div>
</li>
<li class="list-group-item">

View File

@@ -146,6 +146,8 @@ export default defineComponent({
<SettingPicker color="success" v-model="set.goal" name="goal" generator="base" :prefix="prefix" />
<SettingPicker color="success" v-if="['ganon', 'fast_ganon'].includes(this.set.goal)"
v-model="set.crystals_ganon" name="crystals_ganon" generator="base" :prefix="prefix" />
<SettingPicker color="success" v-if="['ganon', 'fast_ganon'].includes(this.set.goal)"
v-model="set.ganon_item" name="ganon_item" generator="base" :prefix="prefix" />
<SettingPicker color="success" v-model="set.crystals_gt" name="crystals_gt" generator="base" :prefix="prefix" />
</AccordionItem>
<AccordionItem :expanded="false">

View File

@@ -0,0 +1,47 @@
<script>
import { defineComponent } from 'vue';
import localforage from "localforage";
export default defineComponent({
props: {
created: null,
},
data() {
return {
ultrafastjunk: false,
};
},
computed: {
valid_rom() {
return this.created && this.created > 1757125000;
}
},
async mounted() {
const savedvalue = await localforage.getItem("ultrafastjunk");
if (savedvalue != null) {
this.ultrafastjunk = savedvalue;
}
},
methods: {
patch(rom) {
if (this.valid_rom && this.ultrafastjunk) {
rom[0x1800AF] = 0xD0;
} else {
rom[0x1800AF] = 0x10;
}
},
async change() {
await localforage.setItem("ultrafastjunk", this.ultrafastjunk);
},
},
});
</script>
<template>
<div class="form-check form-switch" v-if="valid_rom">
<input type="checkbox" class="form-check-input toggle" id="ultrafastjunk"
role="switch" v-model="ultrafastjunk" @change="change" checked />
<label class="form-check-label" for="ultrafastjunk">Shorten Junk Item Fanfares</label>
</div>
</template>

View File

@@ -4,6 +4,7 @@ base:
goal: all
crystals_ganon: all
crystals_gt: all
ganon_item: all
entrance_shuffle: all
skull_woods: all
linked_drops: all

View File

@@ -95,6 +95,40 @@ crystals_gt:
display: 0
random:
display: Random
ganon_item:
display: Ganon Vulnerability Item
default: "silver"
values:
silver:
display: Silver Arrows
boomerang:
display: Boomerang
hookshot:
display: Hookshot
powder:
display: Powder
fire_rod:
display: Fire Rod
ice_rod:
display: Ice Rod
bombos:
display: Bombos
ether:
display: Ether
quake:
display: Quake
hammer:
display: Hammer
bee:
display: Bee
somaria:
display: Cane of Somaria
byrna:
display: Cane of Byrna
random:
display: Random
none:
display: No Weakness
entrance_shuffle:
display: Entrance Shuffle
default: vanilla