Files
alttpr-frontend/src/components/SeedSettings.vue

141 lines
5.1 KiB
Vue

<script>
import { defineComponent } from "vue";
import settingsData from "@/data/settings-display.yaml";
import mustache from "mustache";
export default defineComponent({
props: {
settings: {},
multi: null,
},
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;
},
isEnemizer() {
return (this.settings.enemy_shuffle && this.settings.enemy_shuffle != "vanilla")
|| (this.settings.boss_shuffle && this.settings.boss_shuffle != "vanilla");
},
dungeonItemsShuffled() {
return (this.settings.small_keys && this.settings.small_keys != "dungeon")
|| (this.settings.big_keys && this.settings.big_keys != "dungeon")
|| (this.settings.maps && this.settings.maps != "dungeon")
|| (this.settings.compasses && this.settings.compasses != "dungeon")
|| (this.settings.prize_shuffle && this.settings.prize_shuffle != "vanilla");
},
extraPool() {
return (this.settings.shop_shuffle && this.settings.shop_shuffle != "vanilla")
|| (this.settings.drop_shuffle && this.settings.drop_shuffle != "vanilla")
|| (this.settings.pot_shuffle && this.settings.pot_shuffle != "vanilla");
},
multilink() {
if (this.multi) {
return `/multi/${this.multi}`;
} else {
return null;
}
},
},
methods: {
}
});
</script>
<template>
<div v-if="multi">
{{ settings.player_name }} for Multiworld: <a :href="multilink">{{ multilink }}</a>
<hr class="mt-2 mb-2" />
</div>
<div v-if="settings.randomizer && settingsDisplay.randomizer[settings.randomizer]">
{{ settingsDisplay.randomizer[settings.randomizer] }}
<hr class="mt-2 mb-2" />
</div>
<template v-if="settings.mystery == 'mystery'">
<div>
Mystery Settings
</div>
</template>
<template v-else>
<div v-if="settings.mode">
Mode: {{ settingsDisplay.mode[settings.mode] }}
</div>
<div v-if="settings.tile_swap && settings.tile_swap != 'vanilla'">
{{ settingsDisplay.tile_swap[settings.tile_swap] }}
</div>
<div v-if="settings.overworld_layout && settings.overworld_layout != 'vanilla'">
{{ settingsDisplay.overworld_layout[settings.overworld_layout] }}
</div>
<div v-if="settings.goal">
Goal: {{ settingsDisplay.goal[settings.goal] }}
</div>
<div v-if="settings.crystals_gt">
Ganon's Tower Entry: {{ settingsDisplay.crystals_gt[settings.crystals_gt] }}
</div>
<div v-if="settings.weapons">
Weapons: {{ settingsDisplay.weapons[settings.weapons] }}
</div>
<div v-if="settings.entrance_shuffle && settings.entrance_shuffle != 'vanilla'">
<hr class="mt-2 mb-2" />
<div>
{{ settingsDisplay.entrance_shuffle[settings.entrance_shuffle] }}
</div>
</div>
<div v-if="settings.door_shuffle && settings.door_shuffle != 'vanilla'">
<hr class="mt-2 mb-2" />
<div>
{{ settingsDisplay.door_shuffle[settings.door_shuffle] }}
</div>
<div v-if="settings.lobbies && settings.lobbies != 'vanilla'">
{{ settingsDisplay.lobbies[settings.lobbies] }}
</div>
</div>
<div v-if="isEnemizer">
<hr class="mt-2 mb-2" />
<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>
<div v-if="dungeonItemsShuffled">
<hr class="mt-2 mb-2" />
<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>
<div v-if="settings.prize_shuffle && settings.prize_shuffle != 'vanilla'">
{{ settingsDisplay.prize_shuffle[settings.prize_shuffle] }}
</div>
</div>
<div v-if="extraPool">
<hr class="mt-2 mb-2" />
<div v-if="settings.shop_shuffle && settings.shop_shuffle != 'vanilla'">
{{ settingsDisplay.shop_shuffle[settings.shop_shuffle] }}
</div>
<div v-if="settings.drop_shuffle && settings.drop_shuffle != 'vanilla'">
{{ settingsDisplay.drop_shuffle[settings.drop_shuffle] }}
</div>
<div v-if="settings.pot_shuffle && settings.pot_shuffle != 'vanilla'">
{{ settingsDisplay.pot_shuffle[settings.pot_shuffle] }}
</div>
</div>
</template>
</template>