From 657ed22b480db83d7c193ac38e083e1e061cad9d Mon Sep 17 00:00:00 2001 From: Ethan J Lewis Date: Sat, 9 May 2026 13:30:35 -0500 Subject: [PATCH] refactor(engine): drop redundant string[] casts now that RoomState includes arrays Co-Authored-By: Claude Opus 4.7 --- src/engine/dispatcher.ts | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/engine/dispatcher.ts b/src/engine/dispatcher.ts index 640421f..91e047c 100644 --- a/src/engine/dispatcher.ts +++ b/src/engine/dispatcher.ts @@ -41,8 +41,8 @@ function append(state: GameState, lines: TranscriptLine[]): GameState { export function getItemsInRoom(state: GameState, world: World, roomId: string): string[] { const baseItems = world.rooms[roomId]?.items ?? [] - const dropped = (state.roomState[roomId]?.['droppedItems'] as string[] | undefined) ?? [] - const taken = (state.roomState[roomId]?.['takenItems'] as string[] | undefined) ?? [] + const dropped = (state.roomState[roomId]?.['droppedItems'] ?? []) as string[] + const taken = (state.roomState[roomId]?.['takenItems'] ?? []) as string[] return [...baseItems.filter((i) => !taken.includes(i)), ...dropped] } @@ -51,7 +51,7 @@ function setRoomFlag(state: GameState, roomId: string, key: string, value: strin ...state, roomState: { ...state.roomState, - [roomId]: { ...(state.roomState[roomId] ?? {}), [key]: value as string | boolean | number }, + [roomId]: { ...(state.roomState[roomId] ?? {}), [key]: value }, }, } } @@ -218,10 +218,10 @@ function handleTake(state: GameState, itemId: string, world: World): DispatchRes inventory: [...state.inventory, { id: itemId, state: { ...item.initialState } }], } if (wasInRoomBase) { - const taken = (next.roomState[state.location]?.['takenItems'] as string[] | undefined) ?? [] + const taken = (next.roomState[state.location]?.['takenItems'] ?? []) as string[] next = setRoomFlag(next, state.location, 'takenItems', [...taken, itemId]) } else { - const dropped = (next.roomState[state.location]?.['droppedItems'] as string[] | undefined) ?? [] + const dropped = (next.roomState[state.location]?.['droppedItems'] ?? []) as string[] next = setRoomFlag(next, state.location, 'droppedItems', dropped.filter((id) => id !== itemId)) } return narrate(next, [{ kind: 'narration', text: 'Taken.' }]) @@ -235,7 +235,7 @@ function handleDrop(state: GameState, itemId: string, world: World): DispatchRes ...state, inventory: state.inventory.filter((i) => i.id !== itemId), } - const dropped = (next.roomState[state.location]?.['droppedItems'] as string[] | undefined) ?? [] + const dropped = (next.roomState[state.location]?.['droppedItems'] ?? []) as string[] next = setRoomFlag(next, state.location, 'droppedItems', [...dropped, itemId]) return narrate(next, [{ kind: 'narration', text: 'Dropped.' }]) }