diff --git a/src/components/SettingPicker.vue b/src/components/SettingPicker.vue
index 099de64..6ef6169 100644
--- a/src/components/SettingPicker.vue
+++ b/src/components/SettingPicker.vue
@@ -2,6 +2,8 @@
import { defineComponent } from 'vue';
import localforage from "localforage";
+import settingsData from "@/data/settings.yaml";
+import generatorSettings from "@/data/generator-settings.yaml";
export default defineComponent({
data() {
@@ -16,7 +18,24 @@ export default defineComponent({
modelValue: null,
name: null,
color: "primary",
- settings: {},
+ generator: null,
+ },
+ computed: {
+ settings() {
+ var generatorValue = generatorSettings[this.generator][this.name]
+ if (generatorValue == "all") {
+ return settingsData[this.name];
+ } else if (Array.isArray(generatorValue)) {
+ const { values, ...newObj } = settingsData[this.name];
+ newObj.values = {};
+ for (const value of generatorValue) {
+ newObj.values[value] = values[value];
+ }
+ return newObj;
+ } else {
+ return generatorValue;
+ }
+ },
},
mounted() {
this.selected = this.settings.default;
@@ -33,12 +52,14 @@ export default defineComponent({
{{ settings.display ?? name }}:
diff --git a/src/data/generator-settings.yaml b/src/data/generator-settings.yaml
new file mode 100644
index 0000000..b9d059b
--- /dev/null
+++ b/src/data/generator-settings.yaml
@@ -0,0 +1,34 @@
+base:
+ mode: all
+ weapons: all
+ goal: all
+ crystals_ganon: all
+ crystals_gt: all
+ entrance_shuffle: all
+ skull_woods: all
+ linked_drops: all
+ boss_shuffle: all
+ enemy_shuffle: all
+ small_keys: all
+ big_keys: all
+ maps: all
+ compasses: all
+ shop_shuffle: all
+ drop_shuffle: all
+ pottery: all
+ prize_shuffle: all
+ boots: all
+apr2025:
+ mode: ['open', 'standard']
+ weapons: all
+ crystals_ganon: all
+ entrance_shuffle: ['vanilla', 'crossed']
+ dungeon_item_shuffle:
+ display: Dungeon Item Shuffle
+ default: dungeon
+ values:
+ dungeon:
+ display: In Dungeon
+ wild:
+ display: Wild
+ boots: ['normal', 'pseudoboots']
diff --git a/src/data/settings.yaml b/src/data/settings.yaml
index 6e1cf18..4ca0627 100644
--- a/src/data/settings.yaml
+++ b/src/data/settings.yaml
@@ -1,254 +1,255 @@
-base:
- race:
- default: normal
- values:
- normal:
- display: Normal
- race:
- display: Race
- mode:
- display: Mode
- default: open
- values:
- open:
- display: Open
- standard:
- display: Standard
- inverted:
- display: Inverted
- weapons:
- display: Weapons
- default: random
- values:
- random:
- display: Random
- assured:
- display: Assured
- vanilla:
- display: Vanilla
- swordless:
- display: Swordless
- goal:
- display: Goal
- default: ganon
- values:
- ganon:
- display: Ganon
- fast_ganon:
- display: Fast Ganon
- all_dungeons:
- display: All Dungeons
- pedestal:
- display: Pedestal
- triforce_hunt:
- display: Triforce Hunt
- ganon_hunt:
- display: Ganon Hunt
- completionist:
- display: Completionist
- crystals_ganon:
- display: Crystals for Ganon
- default: "7"
- values:
- 7:
- display: 7
- 6:
- display: 6
- 5:
- display: 5
- 4:
- display: 4
- 3:
- display: 3
- 2:
- display: 2
- 1:
- display: 1
- 0:
- display: 0
- random:
- display: Random
- crystals_gt:
- display: Crystals for GT
- default: "7"
- values:
- 7:
- display: 7
- 6:
- display: 6
- 5:
- display: 5
- 4:
- display: 4
- 3:
- display: 3
- 2:
- display: 2
- 1:
- display: 1
- 0:
- display: 0
- random:
- display: Random
- entrance_shuffle:
- display: Entrance Shuffle
- default: vanilla
- values:
- vanilla:
- display: None
- full:
- display: Full
- crossed:
- display: Crossed
- swapped:
- display: Swapped
- decoupled:
- display: Decoupled
- skull_woods:
- display: Skull Woods Entrances
- default: original
- values:
- original:
- display: Original
- restricted:
- display: Restricted
- loose:
- display: Loose
- follow_linked:
- display: Follow Linked
- linked_drops:
- display: Linked Drops
- default: unset
- values:
- unset:
- display: Unset
- linked:
- display: Linked
- independent:
- display: Independent
- boss_shuffle:
- display: Boss Shuffle
- default: vanilla
- values:
- vanilla:
- display: None
- simple:
- display: Simple
- full:
- display: Full
- random:
- display: Random
- prize_unique:
- display: Prize Unique
- enemy_shuffle:
- display: Enemy Shuffle
- default: vanilla
- values:
- vanilla:
- display: None
- shuffled:
- display: Shuffled
- small_keys:
- display: Small Key Shuffle
- default: dungeon
- values:
- dungeon:
- display: In Dungeon
- wild:
- display: Wild
- nearby:
- display: Nearby
- universal:
- display: Universal
- big_keys:
- display: Big Key Shuffle
- default: dungeon
- values:
- dungeon:
- display: In Dungeon
- wild:
- display: Wild
- nearby:
- display: Nearby
- maps:
- display: Map Shuffle
- default: dungeon
- values:
- dungeon:
- display: In Dungeon
- wild:
- display: Wild
- nearby:
- display: Nearby
- compasses:
- display: Compass Shuffle
- default: dungeon
- values:
- dungeon:
- display: In Dungeon
- wild:
- display: Wild
- nearby:
- display: Nearby
- shop_shuffle:
- display: Shop Shuffle
- default: vanilla
- values:
- vanilla:
- display: None
- shuffled:
- display: Shuffled
- drop_shuffle:
- display: Drop Shuffle
- default: vanilla
- values:
- vanilla:
- display: None
- keys:
- display: Key Drops
- underworld:
- display: All Underworld Enemies
- pottery:
- display: Pottery Shuffle
- default: vanilla
- values:
- vanilla:
- display: None
- keys:
- display: Keys
- cave:
- display: Caves
- cave_keys:
- display: Caves & Keys
- reduced:
- display: Reduced
- clustered:
- display: Clustered
- non_empty:
- display: Non-Empty
- dungeon:
- display: Dungeon
- lottery:
- display: Lottery
- prize_shuffle:
- display: Prize Shuffle
- default: vanilla
- values:
- vanilla:
- display: On Boss
- dungeon:
- display: In Dungeon
- nearby:
- display: Nearby
- wild:
- display: Wild
- boots:
- display: Boots
- default: normal
- values:
- normal:
- display: No Starting Boots
- pseudoboots:
- display: Pseudoboots
- starting:
- display: Starting Boots
+race:
+ default: normal
+ values:
+ normal:
+ display: Normal
+ race:
+ display: Race
+mode:
+ display: Mode
+ default: open
+ values:
+ open:
+ display: Open
+ standard:
+ display: Standard
+ inverted:
+ display: Inverted
+weapons:
+ display: Weapons
+ default: random
+ values:
+ random:
+ display: Random
+ assured:
+ display: Assured
+ vanilla:
+ display: Vanilla
+ swordless:
+ display: Swordless
+goal:
+ display: Goal
+ default: ganon
+ values:
+ ganon:
+ display: Ganon
+ fast_ganon:
+ display: Fast Ganon
+ all_dungeons:
+ display: All Dungeons
+ pedestal:
+ display: Pedestal
+ triforce_hunt:
+ display: Triforce Hunt
+ ganon_hunt:
+ display: Ganon Hunt
+ completionist:
+ display: Completionist
+crystals_ganon:
+ display: Crystals for Ganon
+ default: "7"
+ order: [7, 6, 5, 4, 3, 2, 1, 0, "random"]
+ values:
+ 7:
+ display: 7
+ 6:
+ display: 6
+ 5:
+ display: 5
+ 4:
+ display: 4
+ 3:
+ display: 3
+ 2:
+ display: 2
+ 1:
+ display: 1
+ 0:
+ display: 0
+ random:
+ display: Random
+crystals_gt:
+ display: Crystals for GT
+ default: "7"
+ order: [7, 6, 5, 4, 3, 2, 1, 0, "random"]
+ values:
+ 7:
+ display: 7
+ 6:
+ display: 6
+ 5:
+ display: 5
+ 4:
+ display: 4
+ 3:
+ display: 3
+ 2:
+ display: 2
+ 1:
+ display: 1
+ 0:
+ display: 0
+ random:
+ display: Random
+entrance_shuffle:
+ display: Entrance Shuffle
+ default: vanilla
+ values:
+ vanilla:
+ display: None
+ full:
+ display: Full
+ crossed:
+ display: Crossed
+ swapped:
+ display: Swapped
+ decoupled:
+ display: Decoupled
+skull_woods:
+ display: Skull Woods Entrances
+ default: original
+ values:
+ original:
+ display: Original
+ restricted:
+ display: Restricted
+ loose:
+ display: Loose
+ follow_linked:
+ display: Follow Linked
+linked_drops:
+ display: Linked Drops
+ default: unset
+ values:
+ unset:
+ display: Unset
+ linked:
+ display: Linked
+ independent:
+ display: Independent
+boss_shuffle:
+ display: Boss Shuffle
+ default: vanilla
+ values:
+ vanilla:
+ display: None
+ simple:
+ display: Simple
+ full:
+ display: Full
+ random:
+ display: Random
+ prize_unique:
+ display: Prize Unique
+enemy_shuffle:
+ display: Enemy Shuffle
+ default: vanilla
+ values:
+ vanilla:
+ display: None
+ shuffled:
+ display: Shuffled
+small_keys:
+ display: Small Key Shuffle
+ default: dungeon
+ values:
+ dungeon:
+ display: In Dungeon
+ wild:
+ display: Wild
+ nearby:
+ display: Nearby
+ universal:
+ display: Universal
+big_keys:
+ display: Big Key Shuffle
+ default: dungeon
+ values:
+ dungeon:
+ display: In Dungeon
+ wild:
+ display: Wild
+ nearby:
+ display: Nearby
+maps:
+ display: Map Shuffle
+ default: dungeon
+ values:
+ dungeon:
+ display: In Dungeon
+ wild:
+ display: Wild
+ nearby:
+ display: Nearby
+compasses:
+ display: Compass Shuffle
+ default: dungeon
+ values:
+ dungeon:
+ display: In Dungeon
+ wild:
+ display: Wild
+ nearby:
+ display: Nearby
+shop_shuffle:
+ display: Shop Shuffle
+ default: vanilla
+ values:
+ vanilla:
+ display: None
+ shuffled:
+ display: Shuffled
+drop_shuffle:
+ display: Drop Shuffle
+ default: vanilla
+ values:
+ vanilla:
+ display: None
+ keys:
+ display: Key Drops
+ underworld:
+ display: All Underworld Enemies
+pottery:
+ display: Pottery Shuffle
+ default: vanilla
+ values:
+ vanilla:
+ display: None
+ keys:
+ display: Keys
+ cave:
+ display: Caves
+ cave_keys:
+ display: Caves & Keys
+ reduced:
+ display: Reduced
+ clustered:
+ display: Clustered
+ non_empty:
+ display: Non-Empty
+ dungeon:
+ display: Dungeon
+ lottery:
+ display: Lottery
+prize_shuffle:
+ display: Prize Shuffle
+ default: vanilla
+ values:
+ vanilla:
+ display: On Boss
+ dungeon:
+ display: In Dungeon
+ nearby:
+ display: Nearby
+ wild:
+ display: Wild
+boots:
+ display: Boots
+ default: normal
+ values:
+ normal:
+ display: No Starting Boots
+ pseudoboots:
+ display: Pseudoboots
+ starting:
+ display: Starting Boots
diff --git a/src/router/index.js b/src/router/index.js
index e881937..c47a14e 100644
--- a/src/router/index.js
+++ b/src/router/index.js
@@ -1,6 +1,7 @@
import { createRouter, createWebHistory } from "vue-router";
import SeedView from "@/views/SeedView.vue";
import GenerateView from "@/views/GenerateView.vue";
+import GenerateApr2025View from "@/views/GenerateApr2025View.vue";
const router = createRouter({
history: createWebHistory(import.meta.env.BASE_URL),
@@ -11,6 +12,10 @@ const router = createRouter({
component: GenerateView,
alias: '/',
},
+ {
+ path: '/generate/apr2025',
+ component: GenerateApr2025View,
+ },
{
path: '/seed/:id',
name: 'seed',
diff --git a/src/views/GenerateApr2025View.vue b/src/views/GenerateApr2025View.vue
new file mode 100644
index 0000000..7621692
--- /dev/null
+++ b/src/views/GenerateApr2025View.vue
@@ -0,0 +1,79 @@
+
+
+
+
+
+
+