Refactor settings, add apr2025 generator

This commit is contained in:
2025-03-07 08:05:38 -06:00
parent dfb1cf67cc
commit d609c6be68
6 changed files with 424 additions and 287 deletions
+79
View File
@@ -0,0 +1,79 @@
<script>
import { defineComponent } from "vue";
import axios from "axios";
import SettingPicker from "@/components/SettingPicker.vue";
export default defineComponent({
components: {
SettingPicker,
},
data() {
return {
set: {},
};
},
mounted() {
document.title = "ALttPRandomizer";
},
methods: {
async generate(race) {
const settings = {
randomizer: "apr2025",
crystals_gt: "random",
race: race ? "race" : "normal"
};
for (const setting of Object.keys(this.set)) {
settings[setting] = this.set[setting];
}
await axios.post("/generate", settings)
.then(response => {
const id = response.data;
this.$router.push(`/seed/${id}`);
})
.catch(error => {
console.log(error);
});
},
},
});
</script>
<template>
<div class="card content-div m-3">
<div class="card-header">
Generate Seed
</div>
<ul class="list-group list-group-flush">
<li class="list-group-item">
<SettingPicker color="primary" v-model="set.mode" name="mode" generator="apr2025" />
<SettingPicker color="primary" v-model="set.weapons" name="weapons" generator="apr2025" />
</li>
<li class="list-group-item">
<SettingPicker color="success" v-model="set.crystals_ganon" name="crystals_ganon" generator="apr2025" />
</li>
<li class="list-group-item">
<SettingPicker color="warning" v-model="set.entrance_shuffle" name="entrance_shuffle" generator="apr2025" />
</li>
<li class="list-group-item">
<SettingPicker color="danger" v-model="set.small_keys" name="dungeon_item_shuffle" generator="apr2025" />
</li>
<li class="list-group-item">
<SettingPicker color="primary" v-model="set.boots" name="boots" generator="apr2025" />
</li>
</ul>
<div class="card-footer">
<div class="nav nav-pills nav-fill" role="group">
<button type="button" class="m-1 nav-item btn btn-outline-danger"
@click="generate(true);">
Generate Race ROM
</button>
<button type="button" class="m-1 nav-item btn btn-outline-primary"
@click="generate(false);">
Generate ROM
</button>
</div>
</div>
</div>
</template>
+23 -26
View File
@@ -3,7 +3,6 @@ import { defineComponent } from "vue";
import axios from "axios";
import settingsData from "@/data/settings.yaml";
import SettingPicker from "@/components/SettingPicker.vue";
export default defineComponent({
@@ -18,14 +17,12 @@ export default defineComponent({
mounted() {
document.title = "ALttPRandomizer";
},
computed: {
settings() {
return settingsData.base;
},
},
methods: {
async generate(race) {
const settings = { race: race ? "race" : "normal" };
const settings = {
randomizer: "base",
race: race ? "race" : "normal"
};
for (const setting of Object.keys(this.set)) {
settings[setting] = this.set[setting];
}
@@ -49,40 +46,40 @@ export default defineComponent({
</div>
<ul class="list-group list-group-flush">
<li class="list-group-item">
<SettingPicker color="primary" v-model="set.mode" name="mode" :settings="settings.mode" />
<SettingPicker color="primary" v-model="set.weapons" name="weapons" :settings="settings.weapons" />
<SettingPicker color="primary" v-model="set.mode" name="mode" generator="base" />
<SettingPicker color="primary" v-model="set.weapons" name="weapons" generator="base" />
</li>
<li class="list-group-item">
<SettingPicker color="success" v-model="set.goal" name="goal" :settings="settings.goal" />
<SettingPicker color="success" v-model="set.goal" name="goal" generator="base" />
<SettingPicker color="success" v-if="['ganon', 'fast_ganon'].includes(this.set.goal)"
v-model="set.crystals_ganon" name="crystals_ganon" :settings="settings.crystals_ganon" />
<SettingPicker color="success" v-model="set.crystals_gt" name="crystals_gt" :settings="settings.crystals_gt" />
v-model="set.crystals_ganon" name="crystals_ganon" generator="base" />
<SettingPicker color="success" v-model="set.crystals_gt" name="crystals_gt" generator="base" />
</li>
<li class="list-group-item">
<SettingPicker color="warning" v-model="set.entrance_shuffle" name="entrance_shuffle" :settings="settings.entrance_shuffle" />
<SettingPicker color="warning" v-model="set.entrance_shuffle" name="entrance_shuffle" generator="base" />
<SettingPicker color="warning" v-if="this.set.entrance_shuffle != 'vanilla'"
v-model="set.skull_woods" name="skull_woods" :settings="settings.skull_woods" />
v-model="set.skull_woods" name="skull_woods" generator="base" />
<SettingPicker color="warning" v-if="this.set.entrance_shuffle != 'vanilla'"
v-model="set.linked_drops" name="linked_drops" :settings="settings.linked_drops" />
v-model="set.linked_drops" name="linked_drops" generator="base" />
</li>
<li class="list-group-item">
<SettingPicker color="danger" v-model="set.boss_shuffle" name="boss_shuffle" :settings="settings.boss_shuffle" />
<SettingPicker color="danger" v-model="set.enemy_shuffle" name="enemy_shuffle" :settings="settings.enemy_shuffle" />
<SettingPicker color="danger" v-model="set.boss_shuffle" name="boss_shuffle" generator="base" />
<SettingPicker color="danger" v-model="set.enemy_shuffle" name="enemy_shuffle" generator="base" />
</li>
<li class="list-group-item">
<SettingPicker color="primary" v-model="set.small_keys" name="small_keys" :settings="settings.small_keys" />
<SettingPicker color="primary" v-model="set.big_keys" name="big_keys" :settings="settings.big_keys" />
<SettingPicker color="primary" v-model="set.maps" name="maps" :settings="settings.maps" />
<SettingPicker color="primary" v-model="set.compasses" name="compasses" :settings="settings.compasses" />
<SettingPicker color="primary" v-model="set.small_keys" name="small_keys" generator="base" />
<SettingPicker color="primary" v-model="set.big_keys" name="big_keys" generator="base" />
<SettingPicker color="primary" v-model="set.maps" name="maps" generator="base" />
<SettingPicker color="primary" v-model="set.compasses" name="compasses" generator="base" />
</li>
<li class="list-group-item">
<SettingPicker color="success" v-model="set.shop_shuffle" name="shop_shuffle" :settings="settings.shop_shuffle" />
<SettingPicker color="success" v-model="set.drop_shuffle" name="drop_shuffle" :settings="settings.drop_shuffle" />
<SettingPicker color="success" v-model="set.pottery" name="pottery" :settings="settings.pottery" />
<SettingPicker color="success" v-model="set.prize_shuffle" name="prize_shuffle" :settings="settings.prize_shuffle" />
<SettingPicker color="success" v-model="set.shop_shuffle" name="shop_shuffle" generator="base" />
<SettingPicker color="success" v-model="set.drop_shuffle" name="drop_shuffle" generator="base" />
<SettingPicker color="success" v-model="set.pottery" name="pottery" generator="base" />
<SettingPicker color="success" v-model="set.prize_shuffle" name="prize_shuffle" generator="base" />
</li>
<li class="list-group-item">
<SettingPicker color="warning" v-model="set.boots" name="boots" :settings="settings.boots" />
<SettingPicker color="warning" v-model="set.boots" name="boots" generator="base" />
</li>
</ul>
<div class="card-footer">