import { Location } from "./locations.js"; import { Race } from "./races.js"; import type { IInventory } from "../types.js"; export interface IEntity { name: string; description: string; race: Race; location: Location; inventory: IInventory; experience: number; vitality: number; strength: number; endurance: number; agility: number; dexterity: number; intelligence: number; wisdom: number; stealth: number; charisma: number; lockpicking: number; } export interface IPlayer extends IEntity { health: number; } export interface INPC extends IEntity { id: NPC; type: NpcType; } export interface INPCData { id: NPC; health: number; dead: boolean; } export type TFullNPC = INPC & INPCData; export enum NPC { BECKY = "BECKY", TATO = "TATO", } export enum NpcType { QUEST_GIVER = "QUEST_GIVER", PASSIVE = "PASSIVE", AGGRESIVE = "AGGRESIVE", } export const npcBecky: INPC = { id: NPC.BECKY, name: "Becky", description: "A 50 meter tall giantess. Might be a bad idea to attack", race: Race.GIANT, location: Location.NIGHTROOT_FOREST, inventory: { items: [], }, experience: 10000, vitality: 250, strength: 250, endurance: 50, agility: 5, dexterity: 10, intelligence: 20, wisdom: 30, stealth: 0, charisma: 5, lockpicking: 50, type: NpcType.QUEST_GIVER, }; export const npcTato: INPC = { id: NPC.TATO, name: "Tato", description: "A drunk troll", race: Race.TROLL, location: Location.HIGHMERE_TAVERN, inventory: { items: [], }, experience: 500, vitality: 25, strength: 25, endurance: 5, agility: 15, dexterity: 30, intelligence: 5, wisdom: 10, stealth: 5, charisma: 20, lockpicking: 0, type: NpcType.QUEST_GIVER, }; export const npcs = [npcBecky, npcTato];