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) => { .map(({ name }, i) => {
let anItem = `${vowels.includes(name[0]) ? "an" : "a"} ${name}`; 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}`; anItem = `and ${anItem}`;
} }

View File

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

View File

@ -5,5 +5,6 @@ export interface Item {
} }
export interface GameData { export interface GameData {
description: string;
items: Item[]; 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" }], items: [{ name: "flashlight" }],
}; };