import type { ContentPack } from "@/types/content"; import { contentPackSchema } from "@/schemas/content"; import { level1RoomTemplates } from "./level1Rooms"; import { level1EncounterTables } from "./level1Tables"; const samplePack = { version: "0.1.0", sourceBooks: [ "Source/2D6 Dungeon - Core Rules.pdf", "Source/2D6 Dungeon - Tables Codex.pdf", "Source/2D6 Dungeon - Play Sheet.pdf", ], tables: [ ...level1EncounterTables, { id: "table.weapon-manoeuvres-1", code: "WMT1", name: "Weapon Manoeuvres Table 1", category: "generic", page: 13, diceKind: "d6", entries: [ { key: "1", exact: 1, label: "Exact Strike", references: [{ type: "manoeuvre", id: "manoeuvre.exact-strike" }], }, ], notes: ["Starter sample table used to validate content wiring."], mvp: true, }, ], weapons: [ { id: "weapon.short-sword", name: "Short Sword", category: "melee", handedness: "one-handed", baseDamage: 1, allowedManoeuvreIds: ["manoeuvre.exact-strike", "manoeuvre.guard-break"], tags: ["starter"], startingOption: true, }, ], manoeuvres: [ { id: "manoeuvre.exact-strike", name: "Exact Strike", weaponCategories: ["melee"], precisionModifier: 1, exactStrikeBonus: true, effectText: "Improves accuracy and benefits from exact strike bonuses.", mvp: true, }, { id: "manoeuvre.guard-break", name: "Guard Break", weaponCategories: ["melee"], shiftCost: 1, damageModifier: 1, effectText: "Trades shift for a stronger hit.", mvp: true, }, ], armour: [ { id: "armour.leather-vest", name: "Leather Vest", armourValue: 1, startingOption: true, valueGp: 6, mvp: true, }, ], items: [ { id: "item.flint-and-steel", name: "Flint and Steel", itemType: "gear", stackable: false, consumable: false, mvp: true, }, { id: "item.ration", name: "Ration", itemType: "ration", stackable: true, consumable: true, mvp: true, }, { id: "item.lantern", name: "Lantern", itemType: "light-source", stackable: false, consumable: false, mvp: true, }, { id: "item.pouch", name: "Pouch", itemType: "gear", stackable: false, consumable: false, mvp: true, }, { id: "item.wax-sealing-kit", name: "Wax Sealing Kit", itemType: "gear", stackable: false, consumable: false, mvp: true, }, { id: "item.backpack", name: "Backpack", itemType: "gear", stackable: false, consumable: false, mvp: true, }, ], potions: [ { id: "potion.healing", name: "Healing Potion", tableSource: "Magic Potions Table 1", useTiming: "any", effects: [{ type: "heal", amount: 3, target: "self" }], mvp: true, }, ], scrolls: [ { id: "scroll.lesser-heal", name: "Lesser Heal", tableSource: "Starting Scroll Table 1", castCheck: { diceKind: "d6", successMin: 3, }, onSuccess: [{ type: "heal", amount: 2, target: "self" }], onFailureTableCode: "FTCCT1", startingOption: true, mvp: true, }, ], creatures: [ { id: "creature.level1.giant-rat", name: "Giant Rat", level: 1, category: "beast", hp: 2, attackProfile: { discipline: 0, precision: 0, damage: 1, numberAppearing: "1-2", }, xpReward: 1, sourcePage: 102, traits: ["level-1", "sample"], mvp: true, }, { id: "creature.level1.guard", name: "Guard", level: 1, category: "humanoid", hp: 4, attackProfile: { discipline: 1, precision: 1, damage: 1, }, defenceProfile: { armour: 1, }, xpReward: 2, sourcePage: 102, traits: ["level-1", "martial"], mvp: true, }, { id: "creature.level1.warrior", name: "Warrior", level: 1, category: "humanoid", hp: 5, attackProfile: { discipline: 2, precision: 1, damage: 2, }, defenceProfile: { armour: 1, }, xpReward: 3, sourcePage: 102, traits: ["level-1", "martial"], mvp: true, }, { id: "creature.level1.thug", name: "Thug", level: 1, category: "humanoid", hp: 3, attackProfile: { discipline: 0, precision: 1, damage: 1, }, xpReward: 1, sourcePage: 102, traits: ["level-1", "martial"], mvp: true, }, { id: "creature.level1.work-dog", name: "Work Dog", level: 1, category: "beast", hp: 3, attackProfile: { discipline: 0, precision: 1, damage: 1, }, xpReward: 1, sourcePage: 102, traits: ["level-1", "beast"], mvp: true, }, { id: "creature.level1.guard-dog", name: "Guard Dog", level: 1, category: "beast", hp: 4, attackProfile: { discipline: 1, precision: 1, damage: 1, }, xpReward: 2, sourcePage: 102, traits: ["level-1", "beast"], mvp: true, }, ], roomTemplates: [ { id: "room.level1.entry", level: 1, sourcePage: 42, roomClass: "start", tableCode: "L1R", tableEntryKey: "entry", title: "Entry Chamber", text: "A quiet starting space for the first dungeon prototype.", dimensions: { width: 4, height: 4, }, exits: [{ direction: "north", exitType: "door" }], tags: ["starter", "entry"], mvp: true, }, ...level1RoomTemplates, ], townServices: [ { id: "service.market", name: "Market", serviceType: "market", mvp: true, }, ], } satisfies ContentPack; export const sampleContentPack = contentPackSchema.parse(samplePack);