Compare commits

...
3 Commits
Author SHA1 Message Date
karafruit 14b781c464 Update loot hud/map behavior to match server-side behavior 2026-06-03 21:08:47 -05:00
karafruit b3e8d6ed42 Pridedorm for June 2026-06-01 11:54:28 -05:00
karafruit eed0ebd978 Add hash icons for seed display 2026-05-28 22:37:24 -05:00
46 changed files with 120 additions and 30 deletions
Binary file not shown.

After

Width:  |  Height:  |  Size: 175 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 182 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 187 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 185 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 227 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 169 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 158 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 231 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 182 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 168 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 181 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 201 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 180 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 171 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 188 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 174 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 321 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 289 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 235 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 266 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 166 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 170 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 165 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 189 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 176 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 177 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 171 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 181 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 174 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 187 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 176 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 168 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 269 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 MiB

+11 -10
View File
@@ -64,15 +64,14 @@ triforce_pieces:
125of175: 0 # be careful, there may not be enough checks in the pool to support this 125of175: 0 # be careful, there may not be enough checks in the pool to support this
400of500: 0 # be careful, there may not be enough checks in the pool to support this 400of500: 0 # be careful, there may not be enough checks in the pool to support this
crystals_gt: crystals_gt:
"7": 10 "7": 5
"6": 10 "6": 5
"5": 10 "5": 10
"4": 10 "4": 15
"3": 10 "3": 15
"2": 10 "2": 15
"1": 10 "1": 10
"0": 10 "0": 10
random: 20
ganon_item: ganon_item:
silver: 60 silver: 60
boomerang: 3 boomerang: 3
@@ -141,7 +140,7 @@ compasses:
dungeon: 60 dungeon: 60
nearby: 10 nearby: 10
wild: 30 wild: 30
show_loot: show_loot_map:
never: 10 never: 10
presence: 30 presence: 30
compass: 30 compass: 30
@@ -149,8 +148,9 @@ show_loot:
show_loot_hud: show_loot_hud:
never: 10 never: 10
presence: 30 presence: 30
value: 30 value: 20
dungeon_value: 30 dungeon_value: 20
cave_value: 20
show_map: show_map:
visited: 40 visited: 40
map: 30 map: 30
@@ -193,8 +193,9 @@ dark_rooms:
starting_lamp: 0 starting_lamp: 0
dark_in_logic: 0 dark_in_logic: 0
bombs: bombs:
normal: 70 normal: 50
bomb_bag_required: 30 bomb_bag_required: 30
starting: 20
book: book:
normal: 70 normal: 70
crystal_switches: 30 crystal_switches: 30
+12
View File
@@ -22,6 +22,14 @@
display: block; display: block;
} }
.inline {
display: inline;
}
.inline-block {
display: inline-block;
}
.center { .center {
margin: 0 auto; margin: 0 auto;
} }
@@ -35,6 +43,10 @@
margin-top: 0.35em; margin-top: 0.35em;
} }
.v-middle {
vertical-align: middle;
}
.btn-outline-warning { .btn-outline-warning {
--bs-btn-color: #880; --bs-btn-color: #880;
--bs-btn-active-color: #550; --bs-btn-active-color: #550;
+1 -1
View File
@@ -109,7 +109,7 @@ export default defineComponent({
</div> </div>
</div> </div>
<div v-else> <div v-else>
<img class="block center" src="/bludormspinbig.gif" /> <img class="block center" src="/moldormspinbig.gif" />
</div> </div>
</div> </div>
</template> </template>
+4 -2
View File
@@ -13,6 +13,7 @@ import UltraFastJunkPicker from "@/components/UltraFastJunkPicker.vue";
import Spoiler from "@/components/Spoiler.vue"; import Spoiler from "@/components/Spoiler.vue";
import SeedSettings from "@/components/SeedSettings.vue"; import SeedSettings from "@/components/SeedSettings.vue";
import SeedHash from "@/components/SeedHash.vue";
import { Base64 } from "js-base64"; import { Base64 } from "js-base64";
import * as bps from "bps"; import * as bps from "bps";
@@ -33,6 +34,7 @@ export default defineComponent({
CollectionRatePicker, CollectionRatePicker,
UltraFastJunkPicker, UltraFastJunkPicker,
Spoiler, Spoiler,
SeedHash,
}, },
data() { data() {
return { return {
@@ -221,7 +223,7 @@ export default defineComponent({
<b>Permalink</b>: <router-link :to="permalink">{{ permalink }}</router-link> <b>Permalink</b>: <router-link :to="permalink">{{ permalink }}</router-link>
</div> </div>
<div class="card-header" v-if="meta.hash"> <div class="card-header" v-if="meta.hash">
<b>Hash</b>: {{ meta.hash }} <span class="v-middle"><b>Hash</b>:</span> <SeedHash :hash="meta.hash" />
</div> </div>
<ul class="list-group list-group-flush"> <ul class="list-group list-group-flush">
<li v-if="!baserom" class="list-group-item"> <li v-if="!baserom" class="list-group-item">
@@ -291,7 +293,7 @@ export default defineComponent({
</div> </div>
</div> </div>
<div v-else> <div v-else>
<img class="block center" src="/bludormspinbig.gif" /> <img class="block center" src="/moldormspinbig.gif" />
</div> </div>
</div> </div>
<div v-if="patch && spoiler && show_spoiler" class="mw-50"> <div v-if="patch && spoiler && show_spoiler" class="mw-50">
+32
View File
@@ -0,0 +1,32 @@
<script>
import { defineComponent } from "vue";
import HashIcons from "@/data/hash_icons.yaml";
export default defineComponent({
props: {
hash: "",
},
computed: {
icons() {
const bits = this.hash.split(",").map(bit => bit.trim());
return bits.map(bit => { return {icon: HashIcons[bit], name: bit} });
},
},
});
</script>
<template>
<div class="inline-block">
<template v-for="icon in icons">
<img class="hash_icon" :src="`/hash-icons/${icon.icon}`" :alt="icon.name" />
</template>
</div>
</template>
<style>
.hash_icon {
image-rendering: -moz-crisp-edges;
image-rendering: crisp-edges;
}
</style>
+3 -3
View File
@@ -166,8 +166,8 @@ export default defineComponent({
<SettingPicker color="primary" v-model="set.weapons" name="weapons" :generator="generator" :prefix="prefix" /> <SettingPicker color="primary" v-model="set.weapons" name="weapons" :generator="generator" :prefix="prefix" />
<SettingPicker color="primary" v-model="set.hints" name="hints" :generator="generator" :prefix="prefix" /> <SettingPicker color="primary" v-model="set.hints" name="hints" :generator="generator" :prefix="prefix" />
<SettingPicker color="primary" v-model="set.show_map" name="show_map" :generator="generator" :prefix="prefix" /> <SettingPicker color="primary" v-model="set.show_map" name="show_map" :generator="generator" :prefix="prefix" />
<SettingPicker color="primary" v-model="set.show_loot" name="show_loot" :generator="generator" :prefix="prefix" /> <SettingPicker color="primary" v-model="set.show_loot_map" name="show_loot_map" :generator="generator" :prefix="prefix" />
<SettingPicker color="primary" v-if="set.show_loot != 'never'" v-model="set.show_loot_hud" name="show_loot_hud" :generator="generator" :prefix="prefix" /> <SettingPicker color="primary" v-model="set.show_loot_hud" name="show_loot_hud" :generator="generator" :prefix="prefix" />
</AccordionItem> </AccordionItem>
<AccordionItem :expanded="true"> <AccordionItem :expanded="true">
<template #header> <template #header>
@@ -242,7 +242,6 @@ export default defineComponent({
</template> </template>
<SettingPicker color="success" v-model="set.boss_shuffle" name="boss_shuffle" :generator="generator" :prefix="prefix" /> <SettingPicker color="success" v-model="set.boss_shuffle" name="boss_shuffle" :generator="generator" :prefix="prefix" />
<SettingPicker color="success" v-model="set.enemy_shuffle" name="enemy_shuffle" :generator="generator" :prefix="prefix" /> <SettingPicker color="success" v-model="set.enemy_shuffle" name="enemy_shuffle" :generator="generator" :prefix="prefix" />
<SettingPicker color="success" v-model="set.damage_table_shuffle" name="damage_table_shuffle" :generator="generator" :prefix="prefix" />
</AccordionItem> </AccordionItem>
<AccordionItem :expanded="false"> <AccordionItem :expanded="false">
<template #header> <template #header>
@@ -279,6 +278,7 @@ export default defineComponent({
<b>Challenge Modes:</b> <b>Challenge Modes:</b>
</template> </template>
<SettingPicker color="danger" v-model="set.damage_challenge" name="damage_challenge" :generator="generator" :prefix="prefix" /> <SettingPicker color="danger" v-model="set.damage_challenge" name="damage_challenge" :generator="generator" :prefix="prefix" />
<SettingPicker color="danger" v-model="set.damage_table_shuffle" name="damage_table_shuffle" :generator="generator" :prefix="prefix" />
</AccordionItem> </AccordionItem>
</div> </div>
</template> </template>
+3 -3
View File
@@ -23,7 +23,7 @@ base:
big_keys: all big_keys: all
maps: all maps: all
compasses: all compasses: all
show_loot: all show_loot_map: all
show_map: all show_map: all
shop_shuffle: all shop_shuffle: all
drop_shuffle: all drop_shuffle: all
@@ -86,7 +86,7 @@ beta:
big_keys: all big_keys: all
maps: all maps: all
compasses: all compasses: all
show_loot: all show_loot_map: all
show_loot_hud: all show_loot_hud: all
show_map: all show_map: all
shop_shuffle: all shop_shuffle: all
@@ -133,7 +133,7 @@ pikit:
big_keys: all big_keys: all
maps: all maps: all
compasses: all compasses: all
show_loot: all show_loot_map: all
show_map: all show_map: all
shop_shuffle: all shop_shuffle: all
drop_shuffle: all drop_shuffle: all
+32
View File
@@ -0,0 +1,32 @@
Bow: bow.png
Boomerang: boomerang_blue.png
Hookshot: hookshot.png
Bomb: bomb.png
Mushroom: mushroom.png
Powder: powder.png
Ice Rod: icerod.png
Green Pendant: green_pendant.png
Bombos: bombos.png
Ether: ether.png
Quake: quake.png
Lamp: lamp.png
Hammer: hammer.png
Shovel: shovel.png
Ocarina: flute.png
Bug Net: bugnet.png
Book: book.png
Bottle: bottle.png
Green Potion: green_potion.png
Somaria: somaria.png
Cape: cape.png
Mirror: mirror.png
Boots: boots.png
Gloves: glove_1.png
Flippers: flippers.png
Pearl: pearl.png
Shield: shield_3.png
Green Tunic: tunic_1.png
Heart: heart_container.png
Map: map.png
Compass: compass.png
Key: bigkey.png
+4 -4
View File
@@ -33,7 +33,7 @@ base:
criss_cross_boss: criss_cross_boss:
display: CrissCross Boss display: CrissCross Boss
hints: on hints: on
show_loot: always show_loot_map: always
goal: boss_hunt goal: boss_hunt
bosses_ganon: 10of12 bosses_ganon: 10of12
ganon_item: random ganon_item: random
@@ -58,7 +58,7 @@ base:
book: crystal_switches book: crystal_switches
bunday: bunday:
display: Approximate Bunday display: Approximate Bunday
show_loot: never show_loot_map: never
show_map: visited show_map: visited
goal: trinity goal: trinity
crystals_ganon: random crystals_ganon: random
@@ -87,8 +87,8 @@ beta:
wjb_cross: wjb_cross:
display: wjbCross display: wjbCross
goal: fast_ganon goal: fast_ganon
show_loot: always
show_map: always show_map: always
show_loot_map: always
show_loot_hud: never show_loot_hud: never
entrance_shuffle: crossed entrance_shuffle: crossed
skull_woods: vanilla_drops skull_woods: vanilla_drops
@@ -101,4 +101,4 @@ beta:
pikit: pikit:
default: default:
display: Default display: Default
show_loot: always show_loot_map: always
+16 -6
View File
@@ -532,10 +532,14 @@ bombs:
default: normal default: normal
values: values:
normal: normal:
display: No Bomb Bag Required display: Normal
tip: The player does not start with any bombs, but can collect them as normal.
bomb_bag_required: bomb_bag_required:
display: Bomb Bag Required display: Bomb Bag Required
tip: The player cannot collect any bombs until they obtain a bomb bag. tip: The player cannot collect any bombs until they obtain a bomb bag.
starting:
display: Start With 10 Bombs
tip: The player will start with a full 10 bombs.
book: book:
display: Book display: Book
default: normal default: normal
@@ -589,10 +593,13 @@ door_type_mode:
values: values:
original: original:
display: Key and Bomb Doors display: Key and Bomb Doors
tip: Only small key and bomb doors will be randomized.
big: big:
display: Key, Big Key, and Bomb Doors display: Key, Big Key, and Bomb Doors
tip: Big Key doors can also be added or removed.
all: all:
display: All Door Types display: Key, Big Key, Shutter, and Bomb Doors
tip: Shutter doors (preventing return in a direction) can be added.
chaos: chaos:
display: Chaos display: Chaos
trap_door_mode: trap_door_mode:
@@ -702,8 +709,8 @@ damage_challenge:
gloom: gloom:
display: Gloom display: Gloom
tip: Every enemy will deal one permanent heart container of damage. The only way to regain health is to find heart containers or collect four heart pieces. tip: Every enemy will deal one permanent heart container of damage. The only way to regain health is to find heart containers or collect four heart pieces.
show_loot: show_loot_map:
display: Show Dungeon Checks display: Show Dungeon Checks on Map
default: presence default: presence
values: values:
never: never:
@@ -730,10 +737,13 @@ show_loot_hud:
tip: A dot icon will show on the HUD on each underworld supertile with an uncollected item. tip: A dot icon will show on the HUD on each underworld supertile with an uncollected item.
value: value:
display: Value display: Value
tip: An icon will show on the HUD on each underworld supertile, indicating the presence or value of the best uncollected item, as determined by the Show Dungeon Checks setting. tip: An icon will show on the HUD on each underworld supertile, indicating the value of the best uncollected item.
dungeon_value: dungeon_value:
display: Value in Dungeons, Presence in Caves display: Value in Dungeons, Presence in Caves
tip: An icon will show on the HUD on each underworld supertile, indicating the presence or value of the best uncollected item, as determined by the Show Dungeon Checks setting. Caves will only show presence, not value. tip: An icon will show on the HUD on each dungeon supertile, indicating the value of the best uncollected item. Caves will show an indicator for presence, not value.
cave_value:
display: Value in Caves, Presence in Dungeons
tip: An icon will show on the HUD on each non-dungeon underworld supertile, indicating the value of the best uncollected item. Dungeons will show an indicator for presence, not value.
show_map: show_map:
display: Show Dungeon Maps display: Show Dungeon Maps
default: map default: map
+2 -1
View File
@@ -15,7 +15,7 @@ entrance_interiors:
Skull Woods Second Section Exit (East): Skull Woods (Middle Right) Skull Woods Second Section Exit (East): Skull Woods (Middle Right)
Skull Woods Second Section Exit (West): Skull Woods (Middle Left) Skull Woods Second Section Exit (West): Skull Woods (Middle Left)
Skull Woods Final Section Exit: Skull Woods (Back) Skull Woods Final Section Exit: Skull Woods (Back)
Thieves Town Exit: Thieves Town Thieves Town Exit: Thieves' Town
Ice Palace Exit: Ice Palace Ice Palace Exit: Ice Palace
Misery Mire Exit: Misery Mire Misery Mire Exit: Misery Mire
Turtle Rock Exit (Front): Turtle Rock (Front) Turtle Rock Exit (Front): Turtle Rock (Front)
@@ -75,6 +75,7 @@ entrance_interiors:
entrance_exteriors: entrance_exteriors:
Ganons Tower: Ganon's Tower Ganons Tower: Ganon's Tower
Agahnims Tower: Castle Tower Agahnims Tower: Castle Tower
Thieves Town: Thieves' Town
Links House: Link's House Links House: Link's House
Spectacle Rock Cave: Spectacle Rock (Right) Spectacle Rock Cave: Spectacle Rock (Right)
Spectacle Rock Cave Peak: Spectacle Rock (Top) Spectacle Rock Cave Peak: Spectacle Rock (Top)