2.8 KiB
2.8 KiB
Data Template Reference
Dungeon Data File Structure
Each dungeon is a TypeScript file in src/data/ that exports a DungeonData object.
import type { DungeonData } from "@/types/dungeon";
export const dungeonSlug: DungeonData = {
id: "dungeon-slug",
name: "Dungeon Name",
descriptionHtml: `Brief layout with <span class="wing-badge wing-arcane">Wing</span> badges if applicable`,
headerImage: "/assets/dungeon_name_header.jpg",
icon: "/assets/dungeon_dungeon_name.jpg",
sections: [
{
type: "trash",
data: {
header: "Area Name — Trash Before BossName",
content: [
{ type: "quickRef", data: { html: `<strong>Environment:</strong> Brief description.` } },
{
type: "mob",
data: {
name: "Mob Name (Immune to CC)",
nameHtml: `Mob Name <span style="color: var(--accent-red); font-size: 12px;">(Immune to CC)</span>`,
tankRelevant: true,
abilitiesHtml: [
`<a href="https://www.wowhead.com/beta/spell=123456/ability-name">Ability Name</a> — TANK: What to do.`,
],
},
},
],
},
},
{
type: "boss",
data: {
bossNumber: "Boss 1 · Area/Wing",
name: "Boss Name",
subtitle: "One-line fight summary",
image: "/assets/boss_name_boss_fight.jpg",
abilities: [
{
name: "Ability Name",
wowheadUrl: "https://www.wowhead.com/beta/spell=123456/ability-name",
role: "tank",
importance: "tank-important",
descriptionHtml: `<ul><li><span class="warn">Warning.</span></li></ul>`,
},
{
name: "Ability Name",
wowheadUrl: "https://www.wowhead.com/beta/spell=123457/ability-name",
role: "everyone",
importance: "everyone-important",
descriptionHtml: `<ul><li>Description.</li></ul>`,
},
],
},
},
{ type: "divider" },
],
};
Registering in index.ts
import { dungeonSlug } from "./dungeon-slug";
// In dungeonList (alphabetical):
{ id: "dungeon-slug", name: "Dungeon Name", icon: "/assets/dungeon_dungeon_name.jpg" },
// In dungeonDataMap:
"dungeon-slug": dungeonSlug,
Roles & Importance
| Role | Importance | Visual |
|---|---|---|
"tank" |
"tank-important" |
Blue left border + badge |
"everyone" |
"everyone-important" |
Amber left border + badge |
"healer" |
"healer-important" |
Green left border + badge |
"dps" |
null |
Red badge, no border |