darkwatch/server/src/seed-items.ts

268 lines
5.5 KiB
TypeScript

export interface SeedItem {
name: string;
type: "weapon" | "armor" | "gear";
slot_count: number;
effects: Record<string, unknown>;
properties: Record<string, unknown>;
}
export const SEED_ITEMS: SeedItem[] = [
// --- Weapons ---
{
name: "Bastard sword",
type: "weapon",
slot_count: 1,
effects: { damage: "1d8", melee: true, stat: "STR", versatile: "1d10" },
properties: { tags: ["versatile"] },
},
{
name: "Club",
type: "weapon",
slot_count: 1,
effects: { damage: "1d4", melee: true, stat: "STR" },
properties: {},
},
{
name: "Crossbow",
type: "weapon",
slot_count: 1,
effects: { damage: "1d6", ranged: true, stat: "DEX", range: "far" },
properties: { tags: ["loading"] },
},
{
name: "Dagger",
type: "weapon",
slot_count: 1,
effects: {
damage: "1d4",
melee: true,
stat: "STR",
finesse: true,
thrown: true,
range: "close",
},
properties: { tags: ["finesse", "thrown"] },
},
{
name: "Greataxe",
type: "weapon",
slot_count: 1,
effects: { damage: "1d10", melee: true, stat: "STR", two_handed: true },
properties: { tags: ["two-handed"] },
},
{
name: "Greatsword",
type: "weapon",
slot_count: 1,
effects: { damage: "2d6", melee: true, stat: "STR", two_handed: true },
properties: { tags: ["two-handed"] },
},
{
name: "Javelin",
type: "weapon",
slot_count: 1,
effects: {
damage: "1d4",
melee: true,
stat: "STR",
thrown: true,
range: "far",
},
properties: { tags: ["thrown"] },
},
{
name: "Longbow",
type: "weapon",
slot_count: 1,
effects: {
damage: "1d8",
ranged: true,
stat: "DEX",
range: "far",
two_handed: true,
},
properties: { tags: ["two-handed"] },
},
{
name: "Longsword",
type: "weapon",
slot_count: 1,
effects: { damage: "1d8", melee: true, stat: "STR" },
properties: {},
},
{
name: "Mace",
type: "weapon",
slot_count: 1,
effects: { damage: "1d6", melee: true, stat: "STR" },
properties: {},
},
{
name: "Shortbow",
type: "weapon",
slot_count: 1,
effects: {
damage: "1d4",
ranged: true,
stat: "DEX",
range: "far",
two_handed: true,
},
properties: { tags: ["two-handed"] },
},
{
name: "Shortsword",
type: "weapon",
slot_count: 1,
effects: { damage: "1d6", melee: true, stat: "STR" },
properties: {},
},
{
name: "Spear",
type: "weapon",
slot_count: 1,
effects: {
damage: "1d6",
melee: true,
stat: "STR",
thrown: true,
range: "close",
},
properties: { tags: ["thrown"] },
},
{
name: "Staff",
type: "weapon",
slot_count: 1,
effects: { damage: "1d4", melee: true, stat: "STR", two_handed: true },
properties: { tags: ["two-handed"] },
},
{
name: "Warhammer",
type: "weapon",
slot_count: 1,
effects: { damage: "1d10", melee: true, stat: "STR", two_handed: true },
properties: { tags: ["two-handed"] },
},
// --- Armor ---
{
name: "Leather armor",
type: "armor",
slot_count: 1,
effects: { ac_base: 11, ac_dex: true },
properties: {},
},
{
name: "Chainmail",
type: "armor",
slot_count: 1,
effects: { ac_base: 13, ac_dex: true },
properties: { note: "Disadvantage on stealth and swimming" },
},
{
name: "Plate mail",
type: "armor",
slot_count: 1,
effects: { ac_base: 15, ac_dex: false },
properties: { note: "Disadvantage on stealth, swimming, and climbing" },
},
{
name: "Shield",
type: "armor",
slot_count: 1,
effects: { ac_bonus: 2 },
properties: {},
},
{
name: "Mithral chainmail",
type: "armor",
slot_count: 1,
effects: { ac_base: 13, ac_dex: true },
properties: { note: "No disadvantage" },
},
// --- Gear ---
{
name: "Arrows/bolts (20)",
type: "gear",
slot_count: 1,
effects: {},
properties: {},
},
{
name: "Backpack",
type: "gear",
slot_count: 0,
effects: {},
properties: {},
},
{
name: "Caltrops",
type: "gear",
slot_count: 1,
effects: {},
properties: {},
},
{
name: "Climbing gear",
type: "gear",
slot_count: 1,
effects: {},
properties: {},
},
{ name: "Crowbar", type: "gear", slot_count: 1, effects: {}, properties: {} },
{
name: "Flask/bottle",
type: "gear",
slot_count: 1,
effects: {},
properties: {},
},
{
name: "Flint and steel",
type: "gear",
slot_count: 1,
effects: {},
properties: {},
},
{
name: "Grappling hook",
type: "gear",
slot_count: 1,
effects: {},
properties: {},
},
{
name: "Iron spikes (10)",
type: "gear",
slot_count: 1,
effects: {},
properties: {},
},
{ name: "Lantern", type: "gear", slot_count: 1, effects: {}, properties: {} },
{ name: "Mirror", type: "gear", slot_count: 1, effects: {}, properties: {} },
{
name: "Oil flask",
type: "gear",
slot_count: 1,
effects: {},
properties: {},
},
{ name: "Rations", type: "gear", slot_count: 1, effects: {}, properties: {} },
{
name: "Rope (60ft)",
type: "gear",
slot_count: 1,
effects: {},
properties: {},
},
{
name: "Thieves' tools",
type: "gear",
slot_count: 1,
effects: {},
properties: {},
},
{ name: "Torch", type: "gear", slot_count: 1, effects: {}, properties: {} },
];