Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .github/workflows/art-pipeline.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,4 +22,5 @@ jobs:
- run: python -m pip install -r requirements-art.txt
- run: python -m unittest discover -s scripts -p 'test_*.py' -v
- run: python scripts/creek_layers.py
- run: python scripts/collision_check.py
- run: python scripts/check_docs.py
15 changes: 15 additions & 0 deletions art/stages/rusty-creek/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,21 @@ The same place before the anomaly (clean campus architecture, nature layers iden

[route.json](route.json) is the authored route: 47 nodes and 47 edges (walk, ladder, jump) covering the entry, the climbs, three dead ends with rewards, a reconnection, the boss clearing and the exit. The verifier checks that it is connected, that every dead end returns, that ladders are vertical and that jumps fit the envelope. The collision data that the game uses is drawn separately: see the colour code in [04](../../../docs/04-WORLD-AND-LEVELS.md).

## Collision

Six files, one per chunk and state, in the [docs/13 schema](../../../docs/13-PRODUCTION-PIPELINE.md#contract-collisionjson). [chunks.json](chunks.json) maps the ids to the art: `rc-0-0` left, `rc-1-0` centre, `rc-2-0` right.

- **Clean:** the bridge deck at y 132 across all three chunks, the water below as no-go, the player on the left. Jenny's ram is the `jenny-ram` trigger in the centre ([M4-S1](https://github.com/THD-AI/WinCS/issues/54)).
- **Anomaly:** the hero walks in front of the maze, so every girder deck is a one-way platform and the quays are floors. The first chunk has the chair on the entry deck, the tutorial rover on the low deck, and a pillar down to the water that needs a ladder up: the spur ladder onto the low girder or the tall ladder onto the high beam. The lookout tower holds a muffin and note 1. In the centre, a high route (crab, Leberkäse cache) and a low route (two rovers under a drone) meet again at the coffee machine and Dexter. On the right, the top route and the low route both end at the boss gate before the open girder floor. Jenny and Dexter wait there, the overlook holds note 2, and the exit anomaly is behind the stone steps.

| Chunk | Clean | Anomaly |
| --- | --- | --- |
| Left | ![](collision/rc-0-0.clean.png) | ![](collision/rc-0-0.anomaly.png) |
| Centre | ![](collision/rc-1-0.clean.png) | ![](collision/rc-1-0.anomaly.png) |
| Right | ![](collision/rc-2-0.clean.png) | ![](collision/rc-2-0.anomaly.png) |

`python scripts/collision_check.py --overlay` checks them all and redraws these overlays. Colours are the [docs/04 legend](../../../docs/04-WORLD-AND-LEVELS.md#collision-and-interaction-annotation); the white box is the 28×76 body.

## Rebuild and verify

```bash
Expand Down
6 changes: 6 additions & 0 deletions art/stages/rusty-creek/chunks.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
{
"region": "rusty-creek",
"note": "Chunk ids are grid positions (column-row), left to right; art names the plate each state is drawn on.",
"chunks": {"rc-0-0": "left", "rc-1-0": "center", "rc-2-0": "right"},
"art": {"clean": "images/before-{chunk}.png", "anomaly": "images/after-{chunk}.png"}
}
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
303 changes: 303 additions & 0 deletions art/stages/rusty-creek/rc-0-0.anomaly.collision.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,303 @@
{
"chunk": "rc-0-0",
"state": "anomaly",
"size": [
2160,
720
],
"walk": [
[
[
0,
461
],
[
440,
461
]
],
[
[
470,
508
],
[
898,
508
]
],
[
[
900,
557
],
[
1098,
557
]
],
[
[
1136,
505
],
[
1378,
505
]
],
[
[
1382,
557
],
[
1488,
557
]
],
[
[
1490,
515
],
[
1720,
515
],
[
1786,
461
],
[
2160,
461
]
]
],
"slide": [],
"oneWay": [
[
[
415,
363
],
[
595,
363
]
],
[
[
575,
126
],
[
762,
126
]
],
[
[
630,
302
],
[
778,
302
]
],
[
[
720,
165
],
[
1345,
165
]
],
[
[
780,
387
],
[
1135,
387
]
],
[
[
1015,
275
],
[
1135,
275
]
],
[
[
1300,
83
],
[
1519,
83
]
],
[
[
1300,
368
],
[
1525,
368
]
],
[
[
1525,
189
],
[
1663,
189
]
],
[
[
1665,
299
],
[
1777,
299
]
]
],
"climb": [
{
"id": "ladder-entry",
"kind": "ladder",
"x": 468,
"y": 360,
"w": 28,
"h": 150
},
{
"id": "ladder-tall",
"kind": "ladder",
"x": 596,
"y": 120,
"w": 32,
"h": 390
},
{
"id": "ladder-spur",
"kind": "ladder",
"x": 895,
"y": 384,
"w": 28,
"h": 175
},
{
"id": "ladder-lookout",
"kind": "ladder",
"x": 1030,
"y": 272,
"w": 30,
"h": 118
},
{
"id": "ladder-return",
"kind": "ladder",
"x": 1336,
"y": 80,
"w": 34,
"h": 427
},
{
"id": "ladder-east",
"kind": "ladder",
"x": 1703,
"y": 296,
"w": 32,
"h": 221
}
],
"solid": [
{
"x": 0,
"y": 0,
"w": 8,
"h": 720
},
{
"x": 1099,
"y": 390,
"w": 36,
"h": 167
}
],
"noGo": [
{
"x": 0,
"y": 600,
"w": 2160,
"h": 120
}
],
"hazard": [],
"interact": [
{
"id": "chair",
"kind": "pickup",
"item": "chair",
"x": 316,
"y": 425,
"w": 40,
"h": 36
},
{
"id": "muffin-1",
"kind": "pickup",
"item": "muffin",
"x": 1060,
"y": 247,
"w": 24,
"h": 28
},
{
"id": "note-1",
"kind": "pickup",
"item": "note-1",
"x": 1100,
"y": 251,
"w": 24,
"h": 24
}
],
"spawn": [
{
"id": "player",
"kind": "player",
"x": 120,
"y": 461
},
{
"id": "rover-1",
"kind": "rover",
"x": 760,
"y": 508,
"patrol": [
640,
880
]
}
],
"ledge": [],
"glideLift": []
}
51 changes: 51 additions & 0 deletions art/stages/rusty-creek/rc-0-0.clean.collision.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
{
"chunk": "rc-0-0",
"state": "clean",
"size": [
2160,
720
],
"walk": [
[
[
0,
132
],
[
2160,
132
]
]
],
"slide": [],
"oneWay": [],
"climb": [],
"solid": [
{
"x": 0,
"y": 0,
"w": 8,
"h": 720
}
],
"noGo": [
{
"x": 0,
"y": 600,
"w": 2160,
"h": 120
}
],
"hazard": [],
"interact": [],
"spawn": [
{
"id": "player",
"kind": "player",
"x": 160,
"y": 132
}
],
"ledge": [],
"glideLift": []
}
Loading
Loading