Add game
This commit is contained in:
parent
d36e98ad0b
commit
c071b286af
23 changed files with 713 additions and 11 deletions
72
src/services/game/structures/entities.ts
Normal file
72
src/services/game/structures/entities.ts
Normal 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];
|
||||
Loading…
Add table
Add a link
Reference in a new issue