98 lines
1.9 KiB
TypeScript
98 lines
1.9 KiB
TypeScript
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];
|