Add ultra fast junk setting and variable ganon item
This commit is contained in:
@@ -9,6 +9,7 @@ import ReduceFlashingPicker from "@/components/ReduceFlashingPicker.vue";
|
|||||||
import BackgroundMusicPicker from "@/components/BackgroundMusicPicker.vue";
|
import BackgroundMusicPicker from "@/components/BackgroundMusicPicker.vue";
|
||||||
import MsuResumePicker from "@/components/MsuResumePicker.vue";
|
import MsuResumePicker from "@/components/MsuResumePicker.vue";
|
||||||
import CollectionRatePicker from "@/components/CollectionRatePicker.vue";
|
import CollectionRatePicker from "@/components/CollectionRatePicker.vue";
|
||||||
|
import UltraFastJunkPicker from "@/components/UltraFastJunkPicker.vue";
|
||||||
import Spoiler from "@/components/Spoiler.vue";
|
import Spoiler from "@/components/Spoiler.vue";
|
||||||
|
|
||||||
import SeedSettings from "@/components/SeedSettings.vue";
|
import SeedSettings from "@/components/SeedSettings.vue";
|
||||||
@@ -30,6 +31,7 @@ export default defineComponent({
|
|||||||
BackgroundMusicPicker,
|
BackgroundMusicPicker,
|
||||||
MsuResumePicker,
|
MsuResumePicker,
|
||||||
CollectionRatePicker,
|
CollectionRatePicker,
|
||||||
|
UltraFastJunkPicker,
|
||||||
Spoiler,
|
Spoiler,
|
||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
@@ -37,6 +39,7 @@ export default defineComponent({
|
|||||||
rom_checksum: "3322EFFC",
|
rom_checksum: "3322EFFC",
|
||||||
baserom: null,
|
baserom: null,
|
||||||
baserom_error: null,
|
baserom_error: null,
|
||||||
|
created: null,
|
||||||
patch: null,
|
patch: null,
|
||||||
error: null,
|
error: null,
|
||||||
retry: false,
|
retry: false,
|
||||||
@@ -93,6 +96,7 @@ export default defineComponent({
|
|||||||
this.settings = seedData.settings;
|
this.settings = seedData.settings;
|
||||||
this.multi = seedData.parent;
|
this.multi = seedData.parent;
|
||||||
this.spoiler = seedData.spoiler;
|
this.spoiler = seedData.spoiler;
|
||||||
|
this.created = seedData.created;
|
||||||
},
|
},
|
||||||
async fetchSeed() {
|
async fetchSeed() {
|
||||||
await axios.get(`/seed/${this.id}`)
|
await axios.get(`/seed/${this.id}`)
|
||||||
@@ -165,14 +169,12 @@ export default defineComponent({
|
|||||||
this.$refs.bgm.patch(rom);
|
this.$refs.bgm.patch(rom);
|
||||||
this.$refs.reduce_flashing.patch(rom);
|
this.$refs.reduce_flashing.patch(rom);
|
||||||
this.$refs.quickswap.patch(rom);
|
this.$refs.quickswap.patch(rom);
|
||||||
|
this.$refs.ufj.patch(rom);
|
||||||
|
|
||||||
if (this.allow_cr) {
|
if (this.allow_cr) {
|
||||||
this.$refs.cr.patch(rom);
|
this.$refs.cr.patch(rom);
|
||||||
}
|
}
|
||||||
|
|
||||||
// fast multijunk, too lazy to make it a setting rn
|
|
||||||
rom[0x1800AF] = 0x10;
|
|
||||||
|
|
||||||
// Fix Checksum
|
// Fix Checksum
|
||||||
const sum = rom.reduce(function(sum, mbyte, i) {
|
const sum = rom.reduce(function(sum, mbyte, i) {
|
||||||
if (i >= 0x7fdc && i < 0x7fe0) {
|
if (i >= 0x7fdc && i < 0x7fe0) {
|
||||||
@@ -250,6 +252,7 @@ export default defineComponent({
|
|||||||
<ReduceFlashingPicker ref="reduce_flashing" />
|
<ReduceFlashingPicker ref="reduce_flashing" />
|
||||||
<QuickswapPicker ref="quickswap" />
|
<QuickswapPicker ref="quickswap" />
|
||||||
<CollectionRatePicker v-if="allow_cr" ref="cr" />
|
<CollectionRatePicker v-if="allow_cr" ref="cr" />
|
||||||
|
<UltraFastJunkPicker :created="created" ref="ufj" />
|
||||||
</div>
|
</div>
|
||||||
</li>
|
</li>
|
||||||
<li class="list-group-item">
|
<li class="list-group-item">
|
||||||
|
|||||||
@@ -146,6 +146,8 @@ export default defineComponent({
|
|||||||
<SettingPicker color="success" v-model="set.goal" name="goal" generator="base" :prefix="prefix" />
|
<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)"
|
<SettingPicker color="success" v-if="['ganon', 'fast_ganon'].includes(this.set.goal)"
|
||||||
v-model="set.crystals_ganon" name="crystals_ganon" generator="base" :prefix="prefix" />
|
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" />
|
<SettingPicker color="success" v-model="set.crystals_gt" name="crystals_gt" generator="base" :prefix="prefix" />
|
||||||
</AccordionItem>
|
</AccordionItem>
|
||||||
<AccordionItem :expanded="false">
|
<AccordionItem :expanded="false">
|
||||||
|
|||||||
47
src/components/UltraFastJunkPicker.vue
Normal file
47
src/components/UltraFastJunkPicker.vue
Normal 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>
|
||||||
@@ -4,6 +4,7 @@ base:
|
|||||||
goal: all
|
goal: all
|
||||||
crystals_ganon: all
|
crystals_ganon: all
|
||||||
crystals_gt: all
|
crystals_gt: all
|
||||||
|
ganon_item: all
|
||||||
entrance_shuffle: all
|
entrance_shuffle: all
|
||||||
skull_woods: all
|
skull_woods: all
|
||||||
linked_drops: all
|
linked_drops: all
|
||||||
|
|||||||
@@ -95,6 +95,40 @@ crystals_gt:
|
|||||||
display: 0
|
display: 0
|
||||||
random:
|
random:
|
||||||
display: 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:
|
entrance_shuffle:
|
||||||
display: Entrance Shuffle
|
display: Entrance Shuffle
|
||||||
default: vanilla
|
default: vanilla
|
||||||
|
|||||||
Reference in New Issue
Block a user