Show some seed settings

This commit is contained in:
2025-03-02 21:42:41 -06:00
parent f85f1ec3f6
commit 443150aab1
6 changed files with 199 additions and 5 deletions

View File

@@ -2,6 +2,7 @@
import { defineComponent } from "vue";
import SpritePicker from "@/components/SpritePicker.vue";
import SeedSettings from "@/components/SeedSettings.vue";
import { Base64 } from "js-base64";
import * as bps from "bps";
@@ -11,6 +12,7 @@ import axios from "axios";
export default defineComponent({
components: {
SeedSettings,
SpritePicker,
},
data() {
@@ -21,6 +23,7 @@ export default defineComponent({
sprite: null,
patch: null,
error: null,
settings: null,
};
},
props: {
@@ -46,6 +49,7 @@ export default defineComponent({
const sourceChecksum = instructions.sourceChecksum.toString(16).toUpperCase();
if (sourceChecksum == this.rom_checksum) {
this.patch = instructions;
this.settings = seedData.settings;
} else {
this.error = "Patch does not specify correct source checksum.";
}
@@ -54,7 +58,6 @@ export default defineComponent({
this.error = "Error parsing patch.";
}
} else {
console.log(response.data);
this.error = "Error loading seed.";
}
},
@@ -131,7 +134,7 @@ export default defineComponent({
{{ error }}
</div>
<ul class="list-group list-group-flush">
<li class="list-group-item">
<li v-if="!baserom" class="list-group-item">
<div class="mb-2">
<label for="rom-input" class="form-label">
The Legend of Zelda: A Link to the Past (JP 1.0) Rom:
@@ -142,6 +145,9 @@ export default defineComponent({
</div>
</div>
</li>
<li v-if="settings" class="list-group-item">
<SeedSettings :settings="settings" />
</li>
<li class="list-group-item">
<div class="mb-2">
<SpritePicker @spriteUpdate="spriteUpdate" />

View File

@@ -0,0 +1,56 @@
<script>
import { defineComponent } from "vue";
import settingsData from "@/data/settings-display.yaml";
import mustache from "mustache";
export default defineComponent({
props: {
settings: {},
},
computed: {
settingsDisplay() {
const rendered = {};
for (const setting of Object.keys(settingsData)) {
rendered[setting] = {};
for (const option of Object.keys(settingsData[setting])) {
rendered[setting][option] = mustache.render(settingsData[setting][option], this.settings);
}
}
return rendered;
},
},
methods: {
}
});
</script>
<template>
<div v-if="settings.goal">
Goal: {{ settingsDisplay.goal[settings.goal] }}
</div>
<div v-if="settings.weapons">
Weapons: {{ settingsDisplay.weapons[settings.weapons] }}
</div>
<div v-if="settings.entrance_shuffle && settings.entrance_shuffle != 'vanilla'">
{{ settingsDisplay.entrance_shuffle[settings.entrance_shuffle] }}
</div>
<div v-if="settings.enemy_shuffle && settings.enemy_shuffle != 'vanilla'">
{{ settingsDisplay.enemy_shuffle[settings.enemy_shuffle] }}
</div>
<div v-if="settings.boss_shuffle && settings.boss_shuffle != 'vanilla'">
{{ settingsDisplay.boss_shuffle[settings.boss_shuffle] }}
</div>
<div v-if="settings.small_keys && settings.small_keys != 'dungeon'">
{{ settingsDisplay.dungeon_items[settings.small_keys] }} Small Keys
</div>
<div v-if="settings.big_keys && settings.big_keys != 'dungeon'">
{{ settingsDisplay.dungeon_items[settings.big_keys] }} Big Keys
</div>
<div v-if="settings.maps && settings.maps != 'dungeon'">
{{ settingsDisplay.dungeon_items[settings.maps] }} Maps
</div>
<div v-if="settings.compasses && settings.compasses != 'dungeon'">
{{ settingsDisplay.dungeon_items[settings.compasses] }} Compasses
</div>
</template>

View File

@@ -0,0 +1,37 @@
goal:
ganon: "{{ crystals_ganon }} Crystal Ganon"
fast_ganon: "{{ crystals_ganon }} Crystal Fast Ganon"
all_dungeons: All Dungeons
triforce_hunt: Triforce Hunt
ganon_hunt: Ganon Hunt
completionist: Completionist
weapons:
random: Randomized Swords
assured: Assured Sword
vanilla: Vanilla Swords
swordless: Swordless
mode:
open: Open
standard: Standard
inverted: Inverted
entrance_shuffle:
vanilla: Vanilla Entrances
full: Full Entrance Shuffle
crossed: Crossed Entrance Shuffle
swapped: Swapped Entrance Shuffle
decoupled: Decoupled Entrance Shuffle
enemy_shuffle:
vanilla: Vanilla Enemies
shuffled: Shuffled Enemies
mimics: All Mimics
boss_shuffle:
vanilla: Vanilla Bosses
simple: Simple Boss Shuffle
full: Full Boss Shuffle
random: Random Boss Shuffle
prize_unique: Unique Prize Boss Shuffle
dungeon_items:
dungeon: Dungeon
wild: Wild
nearby: Nearby
universal: Universal