mirror of
https://github.com/cliffe/BreakEscape.git
synced 2026-02-20 13:50:46 +00:00
Updated README_scenario_design.md with new grid-based room layout system: - Documented Grid Unit (GU) system: 5×4 tiles base unit - Added valid room size specifications (widths: multiples of 5, heights: 2+4N) - Replaced old north/south-only constraints with four-direction support - Updated door placement rules for N/S/E/W connections - Added room positioning algorithm documentation - Revised scenario design guidelines for grid system flexibility Created 5 comprehensive test scenarios: 1. test_vertical_layout.json - Traditional N/S stacking 2. test_horizontal_layout.json - E/W connections 3. test_complex_multidirection.json - All four directions 4. test_multiple_connections.json - Multiple doors per direction 5. test_mixed_room_sizes.json - Different room sizes (1×1, 1×2, 2×2 GU) Added TEST_SCENARIOS_README.md documenting: - Grid system overview and room size specifications - Detailed test scenario descriptions with layout diagrams - Testing procedures and validation checks - Expected console output examples - Troubleshooting guide Note: Scenarios reference hall_1x2gu.json and small_room_1x1gu.json which need to be created in assets/rooms/. Currently using 2×2 GU placeholders. All test scenarios include: - Visual layout diagrams in scenario_brief - Progressive difficulty with locks and keys - Documentation of what each scenario tests - Notes explaining grid system concepts
97 lines
4.2 KiB
JSON
97 lines
4.2 KiB
JSON
{
|
||
"scenario_brief": "Test Scenario: Mixed Room Sizes\n\nThis scenario demonstrates the grid system's ability to handle rooms of different sizes and properly align doors between them.\n\nNOTE: This scenario is designed to use rooms of different sizes:\n- 1x1 GU rooms (5x6 tiles): small_room_1x1gu.json\n- 1x2 GU rooms (5x10 tiles): hall_1x2gu.json\n- 2x2 GU rooms (10x10 tiles): room_office2.json, room_ceo2.json, etc.\n\nCurrently using 2x2 GU placeholders until smaller rooms are created.\n\nLayout Concept:\n [Closet-1x1] [CEO-2x2]\n ↑ ↑\n [Hall-1x2GU]\n ↑\n [Reception-2x2]\n\nTests:\n- Different room sizes in same scenario\n- Door alignment between different-sized rooms\n- Centering of smaller rooms on larger rooms\n- Grid-based positioning with varied dimensions",
|
||
"startRoom": "reception",
|
||
"rooms": {
|
||
"reception": {
|
||
"type": "room_reception2",
|
||
"connections": {
|
||
"north": "hall"
|
||
},
|
||
"objects": [
|
||
{
|
||
"type": "notes",
|
||
"name": "Size Guide",
|
||
"takeable": true,
|
||
"readable": true,
|
||
"text": "Mixed Room Sizes Test\n\nRoom Size Reference:\n- 1x1 GU (Closet): 5×6 tiles = 160×192px\n- 1x2 GU (Hall): 5×10 tiles = 160×320px \n- 2x2 GU (Standard): 10×10 tiles = 320×320px\n- 4x1 GU (Wide Hall): 20×6 tiles = 640×192px\n\nValid heights follow: 2 + (N × 4)\nValid: 6, 10, 14, 18, 22, 26...\nInvalid: 7, 8, 9, 11, 12, 13...\n\nAll widths must be multiples of 5 tiles."
|
||
},
|
||
{
|
||
"type": "key",
|
||
"name": "Hall Key",
|
||
"takeable": true,
|
||
"observations": "Key to the hallway"
|
||
}
|
||
]
|
||
},
|
||
"hall": {
|
||
"type": "room_office2",
|
||
"locked": true,
|
||
"lockType": "key",
|
||
"requires": "hall_key",
|
||
"connections": {
|
||
"south": "reception",
|
||
"north": ["closet", "ceo"]
|
||
},
|
||
"objects": [
|
||
{
|
||
"type": "notes",
|
||
"name": "Hallway Note",
|
||
"takeable": true,
|
||
"readable": true,
|
||
"text": "NOTE: This room should be hall_1x2gu.json (1×2 GU)\n\nCurrently using room_office2.json as placeholder.\n\nThe hall connects to:\n- Closet (1×1 GU) to the northwest\n- CEO Office (2×2 GU) to the northeast\n\nDoors should align properly despite size differences."
|
||
},
|
||
{
|
||
"type": "key",
|
||
"name": "Closet Key",
|
||
"takeable": true,
|
||
"observations": "Key to storage closet"
|
||
},
|
||
{
|
||
"type": "key",
|
||
"name": "CEO Key",
|
||
"takeable": true,
|
||
"observations": "Golden CEO office key"
|
||
}
|
||
]
|
||
},
|
||
"closet": {
|
||
"type": "room_office2",
|
||
"locked": true,
|
||
"lockType": "key",
|
||
"requires": "closet_key",
|
||
"connections": {
|
||
"south": "hall"
|
||
},
|
||
"objects": [
|
||
{
|
||
"type": "notes",
|
||
"name": "Closet Info",
|
||
"takeable": true,
|
||
"readable": true,
|
||
"text": "NOTE: This room should be small_room_1x1gu.json (1×1 GU)\n\nCurrently using room_office2.json as placeholder.\n\nA 1×1 GU room is the smallest valid size:\n- 5 tiles wide (1 GU)\n- 6 tiles tall (2 + 1×4)\n- 160×192 pixels\n\nPerfect for closets, small storage, or utility rooms."
|
||
}
|
||
]
|
||
},
|
||
"ceo": {
|
||
"type": "room_ceo2",
|
||
"locked": true,
|
||
"lockType": "key",
|
||
"requires": "ceo_key",
|
||
"connections": {
|
||
"south": "hall"
|
||
},
|
||
"objects": [
|
||
{
|
||
"type": "notes",
|
||
"name": "Success!",
|
||
"takeable": true,
|
||
"readable": true,
|
||
"text": "CEO Office - Mixed Sizes Test Complete!\n\nThis scenario demonstrates:\n- Multiple room sizes in one layout\n- Door alignment between different-sized rooms\n- Grid-based positioning system\n- Proper centering of smaller rooms\n\nWhen small_room_1x1gu.json and hall_1x2gu.json are created, this scenario will show true size variety!\n\nRoom Size Formula:\nWidth: Must be multiple of 5 tiles\nHeight: Must be 2 + (N × 4) where N ≥ 1\n\nExamples:\n- 5×6 (1×1 GU) ✓\n- 10×10 (2×2 GU) ✓\n- 20×6 (4×1 GU) ✓\n- 10×8 ✗ (8 is invalid: not 2+4N)\n- 7×6 ✗ (7 not multiple of 5)",
|
||
"important": true,
|
||
"isEndGoal": true
|
||
}
|
||
]
|
||
}
|
||
}
|
||
}
|