diff --git a/packages/game/src/Quest.ts b/packages/game/src/Quest.ts index 4ac8248..1e3cdf7 100644 --- a/packages/game/src/Quest.ts +++ b/packages/game/src/Quest.ts @@ -1,14 +1,7 @@ /* eslint-disable no-await-in-loop */ -import { Condition } from './condition/Condition' import { Event } from './Event' -import { GlobalException, StageException } from './Exception' -import { - IQuest, - IStage, - IFileExistenceChecker, - ICommand, - IResponse, -} from './schema' +import { GlobalException } from './Exception' +import { IQuest, IFileExistenceChecker, ICommand, IResponse } from './schema' import { Stage } from './Stage' export class Quest { @@ -72,8 +65,6 @@ export class Quest { } getResponses(completed: string[]): IResponse[] { - return this.quest.stages - .filter((stage) => completed.includes(stage.id)) - .map((stage) => stage.response) + return completed.map((id) => this.events.get(id)!.getResponse()) } } diff --git a/packages/game/test/exceptions.test.ts b/packages/game/test/exceptions.test.ts index b43f722..f801077 100644 --- a/packages/game/test/exceptions.test.ts +++ b/packages/game/test/exceptions.test.ts @@ -72,7 +72,6 @@ describe('exceptions', () => { ) expect(await session.runCommand({ command: 'ls' })).toBe('exception1') await session.runCommand({ command: 'echo start' }) - console.log('completed', session.completedEvents) expect(await session.runCommand({ command: 'ls' })).toBe('stage2') }) diff --git a/packages/game/test/session.test.ts b/packages/game/test/session.test.ts index cc6de8b..43749f8 100644 --- a/packages/game/test/session.test.ts +++ b/packages/game/test/session.test.ts @@ -43,6 +43,19 @@ const quest: IQuest = { response: { type: 'narrative', content: 'Narrative 4' }, }, ], + exceptions: [ + { + id: 'exception1', + condition: { + command: 'rm', + }, + response: { + type: 'narrative', + content: 'Exception 1', + }, + requirements: [], + }, + ], } describe('Session', () => { @@ -108,9 +121,11 @@ describe('Session', () => { }, ]) + session.complete('exception1') session.complete('stage2') expect(session.getResponses()).toEqual([ { type: 'narrative', content: 'Narrative 1' }, + { type: 'narrative', content: 'Exception 1' }, { type: 'narrative', content: 'Narrative 2' }, ]) })