dungeon-sdk-drikkx
Version:
Shared types and entities for the Dungeon game
54 lines • 1.36 kB
TypeScript
import { Stats } from './stats.types';
import { StatusEffect } from './combat.types';
export type ItemRarity = 'common' | 'uncommon' | 'rare' | 'epic' | 'legendary';
export type EquipmentSlot = 'weapon' | 'ring' | 'necklace';
export type ItemType = 'weapon' | 'armor' | 'consumable' | 'material' | 'key';
export interface ItemEffect {
trigger: 'onUse' | 'onEquip' | 'onHit' | 'onKill';
effect: StatusEffect;
chance?: number;
}
export interface Item {
id: string;
name: string;
description: string;
type: ItemType;
rarity: ItemRarity;
level: number;
stats?: Partial<Stats>;
effects?: ItemEffect[];
price: number;
stackable: boolean;
maxStack?: number;
}
export interface Equipment extends Item {
slot: EquipmentSlot;
durability?: number;
requirements?: {
level?: number;
stats?: Partial<Stats>;
};
}
export interface LootTable {
id: string;
entries: LootEntry[];
guaranteedDrops?: LootEntry[];
bonusRolls?: {
condition: string;
rolls: number;
}[];
}
export interface LootEntry {
item: string;
weight: number;
quantity: {
min: number;
max: number;
};
conditions?: {
playerLevel?: number;
dungeonLevel?: number;
chance?: number;
};
}
//# sourceMappingURL=item.types.d.ts.map