Coalesce duplicate generation views
This commit is contained in:
@@ -58,6 +58,10 @@ dungeon_map:
|
|||||||
entrance_shuffle: all
|
entrance_shuffle: all
|
||||||
skull_woods: all
|
skull_woods: all
|
||||||
linked_drops: all
|
linked_drops: all
|
||||||
|
door_shuffle: all
|
||||||
|
door_lobbies: all
|
||||||
|
door_type_mode: all
|
||||||
|
trap_door_mode: all
|
||||||
boss_shuffle: all
|
boss_shuffle: all
|
||||||
enemy_shuffle: all
|
enemy_shuffle: all
|
||||||
damage_table_shuffle: all
|
damage_table_shuffle: all
|
||||||
|
|||||||
@@ -4,7 +4,6 @@ import MultiView from "@/views/MultiView.vue";
|
|||||||
import GenerateView from "@/views/GenerateView.vue";
|
import GenerateView from "@/views/GenerateView.vue";
|
||||||
import GenerateMulti from "@/views/GenerateMulti.vue";
|
import GenerateMulti from "@/views/GenerateMulti.vue";
|
||||||
import GenerateApr2025View from "@/views/GenerateApr2025View.vue";
|
import GenerateApr2025View from "@/views/GenerateApr2025View.vue";
|
||||||
import GenerateDungeonMapView from "@/views/GenerateDungeonMapView.vue";
|
|
||||||
|
|
||||||
const router = createRouter({
|
const router = createRouter({
|
||||||
history: createWebHistory(import.meta.env.BASE_URL),
|
history: createWebHistory(import.meta.env.BASE_URL),
|
||||||
@@ -14,12 +13,14 @@ const router = createRouter({
|
|||||||
name: 'generate',
|
name: 'generate',
|
||||||
component: GenerateView,
|
component: GenerateView,
|
||||||
alias: '/',
|
alias: '/',
|
||||||
|
props: { generator: "base", prefix: "" },
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
path: '/multiworld',
|
path: '/multiworld',
|
||||||
name: 'multiworld',
|
name: 'multiworld',
|
||||||
component: GenerateMulti,
|
component: GenerateMulti,
|
||||||
alias: '/multi',
|
alias: '/multi',
|
||||||
|
props: { generator: "base", prefix: "" },
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
path: '/generate/apr2025',
|
path: '/generate/apr2025',
|
||||||
@@ -27,7 +28,14 @@ const router = createRouter({
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
path: '/generate/beta_test',
|
path: '/generate/beta_test',
|
||||||
component: GenerateDungeonMapView,
|
component: GenerateView,
|
||||||
|
alias: '/generate/beta',
|
||||||
|
props: { generator: "dungeon_map", prefix: "dungeon-maps-" },
|
||||||
|
},
|
||||||
|
{
|
||||||
|
path: '/multibeta',
|
||||||
|
component: GenerateMulti,
|
||||||
|
props: { generator: "dungeon_map", prefix: "dungeon_map_" },
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
path: '/seed/:id',
|
path: '/seed/:id',
|
||||||
|
|||||||
@@ -1,65 +0,0 @@
|
|||||||
<script>
|
|
||||||
import { defineComponent } from "vue";
|
|
||||||
|
|
||||||
import axios from "axios";
|
|
||||||
import { Modal } from "bootstrap";
|
|
||||||
|
|
||||||
import SettingsPage from "@/components/SettingsPage.vue";
|
|
||||||
|
|
||||||
export default defineComponent({
|
|
||||||
components: {
|
|
||||||
SettingsPage,
|
|
||||||
},
|
|
||||||
data() {
|
|
||||||
return {
|
|
||||||
set: {},
|
|
||||||
};
|
|
||||||
},
|
|
||||||
mounted() {
|
|
||||||
document.title = "ALttPRandomizer"
|
|
||||||
},
|
|
||||||
methods: {
|
|
||||||
async generate(race) {
|
|
||||||
const settings = {
|
|
||||||
randomizer: "dungeon_map",
|
|
||||||
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>
|
|
||||||
<div id="settings" class="accordion accordion-flush">
|
|
||||||
<SettingsPage v-model="set" generator="dungeon_map" prefix="dungeon-maps-" />
|
|
||||||
</div>
|
|
||||||
<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>
|
|
||||||
|
|
||||||
@@ -11,6 +11,10 @@ export default defineComponent({
|
|||||||
components: {
|
components: {
|
||||||
SettingsPage,
|
SettingsPage,
|
||||||
},
|
},
|
||||||
|
props: {
|
||||||
|
prefix: null,
|
||||||
|
generator: null,
|
||||||
|
},
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
worlds: [{}, {}],
|
worlds: [{}, {}],
|
||||||
@@ -23,12 +27,12 @@ export default defineComponent({
|
|||||||
await new Promise(r => setTimeout(r, 100));
|
await new Promise(r => setTimeout(r, 100));
|
||||||
|
|
||||||
for (var i = 0; i < this.worldCount; i++) {
|
for (var i = 0; i < this.worldCount; i++) {
|
||||||
this.worlds[i].player_name = await localforage.getItem(`world_${i + 1}_setting_player_name`);
|
this.worlds[i].player_name = await localforage.getItem(`${this.prefix}world_${i + 1}_setting_player_name`);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
async addWorld() {
|
async addWorld() {
|
||||||
const newname = await localforage.getItem(`world_${this.worldCount + 1}_setting_player_name`);
|
const newname = await localforage.getItem(`${this.prefix}world_${this.worldCount + 1}_setting_player_name`);
|
||||||
this.worlds.push({player_name: newname});
|
this.worlds.push({player_name: newname});
|
||||||
this.worldCount++;
|
this.worldCount++;
|
||||||
|
|
||||||
@@ -40,13 +44,13 @@ export default defineComponent({
|
|||||||
this.worlds.pop();
|
this.worlds.pop();
|
||||||
},
|
},
|
||||||
async playerNameUpdated(num) {
|
async playerNameUpdated(num) {
|
||||||
await localforage.setItem(`world_${num + 1}_setting_player_name`, this.worlds[num].player_name);
|
await localforage.setItem(`${this.prefix}world_${num + 1}_setting_player_name`, this.worlds[num].player_name);
|
||||||
},
|
},
|
||||||
async generate(race) {
|
async generate(race) {
|
||||||
const settings = [];
|
const settings = [];
|
||||||
for (var i = 0; i < this.worldCount; i++) {
|
for (var i = 0; i < this.worldCount; i++) {
|
||||||
const world = {
|
const world = {
|
||||||
randomizer: "base",
|
randomizer: this.generator,
|
||||||
race: race ? "race" : "normal"
|
race: race ? "race" : "normal"
|
||||||
};
|
};
|
||||||
for (const setting of Object.keys(this.worlds[i])) {
|
for (const setting of Object.keys(this.worlds[i])) {
|
||||||
@@ -109,7 +113,7 @@ export default defineComponent({
|
|||||||
@change="playerNameUpdated(idx)" />
|
@change="playerNameUpdated(idx)" />
|
||||||
</div>
|
</div>
|
||||||
<div id="settings" class="accordion accordion-flush">
|
<div id="settings" class="accordion accordion-flush">
|
||||||
<SettingsPage v-model="worlds[idx]" :prefix="`world_${n}_`" />
|
<SettingsPage v-model="worlds[idx]" :prefix="`${prefix}world_${n}_`" :generator="generator" />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|||||||
@@ -10,6 +10,10 @@ export default defineComponent({
|
|||||||
components: {
|
components: {
|
||||||
SettingsPage,
|
SettingsPage,
|
||||||
},
|
},
|
||||||
|
props: {
|
||||||
|
prefix: null,
|
||||||
|
generator: null,
|
||||||
|
},
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
set: {},
|
set: {},
|
||||||
@@ -21,7 +25,7 @@ export default defineComponent({
|
|||||||
methods: {
|
methods: {
|
||||||
async generate(race) {
|
async generate(race) {
|
||||||
const settings = {
|
const settings = {
|
||||||
randomizer: "base",
|
randomizer: this.generator,
|
||||||
race: race ? "race" : "normal"
|
race: race ? "race" : "normal"
|
||||||
};
|
};
|
||||||
for (const setting of Object.keys(this.set)) {
|
for (const setting of Object.keys(this.set)) {
|
||||||
@@ -46,7 +50,7 @@ export default defineComponent({
|
|||||||
Generate Seed
|
Generate Seed
|
||||||
</div>
|
</div>
|
||||||
<div id="settings" class="accordion accordion-flush">
|
<div id="settings" class="accordion accordion-flush">
|
||||||
<SettingsPage v-model="set" generator="base" prefix="" />
|
<SettingsPage v-model="set" :generator="generator" :prefix="prefix" />
|
||||||
</div>
|
</div>
|
||||||
<div class="card-footer">
|
<div class="card-footer">
|
||||||
<div class="nav nav-pills nav-fill" role="group">
|
<div class="nav nav-pills nav-fill" role="group">
|
||||||
|
|||||||
Reference in New Issue
Block a user