refactor: clean up scenes and introduce SceneKey enum

- Remove redundant `GameFlowScene` and `PlaceholderEncounterScene`
- Introduce `SceneKey` enum for type-safe scene management
- Clean up unused imports and configuration references in existing
  scenes
- Standardize scene navigation using `SceneKey`
This commit is contained in:
2026-04-20 15:36:12 +08:00
parent 1d803dd219
commit 033a8e4a40
7 changed files with 32 additions and 652 deletions
@@ -1,7 +1,6 @@
import Phaser from "phaser";
import { ReactiveScene } from "boardgame-phaser";
import { createButton } from "@/utils/createButton";
import { GRID_CONFIG, UI_CONFIG, ITEM_COLORS } from "@/config";
import { GRID_CONFIG, ITEM_COLORS } from "@/config";
import {
createGridInventory,
placeItem,
@@ -12,6 +11,7 @@ import {
type InventoryItem,
type GameItemMeta,
} from "boardgame-core/samples/slay-the-spire-like";
import { SceneKey } from "./types";
export class GridViewerScene extends ReactiveScene {
private inventory: GridInventory<GameItemMeta>;
@@ -57,7 +57,7 @@ export class GridViewerScene extends ReactiveScene {
}
private placeSampleItems(): void {
const items = data.desert.items;
const items = data.desert.getItems();
const sampleItems = [
{ index: 0, x: 0, y: 0 },
{ index: 3, x: 3, y: 0 },
@@ -207,7 +207,7 @@ export class GridViewerScene extends ReactiveScene {
x: 100,
y: 40,
onClick: async () => {
await this.sceneController.launch("IndexScene");
await this.sceneController.launch(SceneKey.IndexScene);
},
});
@@ -242,7 +242,7 @@ export class GridViewerScene extends ReactiveScene {
GRID_CONFIG.WIDTH,
GRID_CONFIG.HEIGHT,
);
const items = data.desert.items;
const items = data.desert.getItems();
let itemIndex = 0;
for (let y = 0; y < GRID_CONFIG.HEIGHT && itemIndex < items.length; y++) {