Add room description.

This commit is contained in:
2021-05-17 22:00:30 -07:00
parent 03eddfcd74
commit b3058097b4
4 changed files with 18 additions and 10 deletions

View File

@ -15,7 +15,8 @@ export default class Container {
.map(({ name }, i) => {
let anItem = `${vowels.includes(name[0]) ? "an" : "a"} ${name}`;
if (i + 1 === items.length) {
// if we have more than one item, and this is the last item...
if (i > 1 && i + 1 === items.length) {
anItem = `and ${anItem}`;
}

View File

@ -1,23 +1,24 @@
import { GameData, Item } from "./data/data.ts";
import User from "./User.ts";
import Container from "./Container.ts";
export default class Scene extends Container {
#user: User;
#roomDescription: string;
constructor(gameData: GameData) {
super(gameData.items);
this.#user = new User();
this.#roomDescription = gameData.description;
}
look(): string {
const description = super.description(this.items);
const itemsDescription = super.description(this.items);
let description = this.#roomDescription;
if (description) {
return `There is ${description}`;
} else {
return "There is nothing around...";
if (itemsDescription) {
description += `\n\nThere is ${itemsDescription}`;
}
return description;
}
get(target: string): Item | null {

View File

@ -5,5 +5,6 @@ export interface Item {
}
export interface GameData {
description: string;
items: Item[];
}

View File

@ -1,3 +1,8 @@
export const hall = {
import { GameData } from "./data.ts";
export const hall: GameData = {
description:
"You are standing in a big hall. There's lots of nooks, crannies, and" +
"room for general testing. Aw yeah... sweet testing!",
items: [{ name: "flashlight" }],
};