This commit is contained in:
Aslan 2026-01-20 19:54:45 -05:00
parent d36e98ad0b
commit c071b286af
23 changed files with 713 additions and 11 deletions

View file

@ -0,0 +1,72 @@
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 enum NPC {
BECKY = "BECKY",
}
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 npcs = [npcBecky];