|
14 | 14 | (. (iq-quest quest-name) levels [(- level-n 1)] map data))
|
15 | 15 |
|
16 | 16 | (defn assert-stem [m x y stem]
|
17 |
| - (assert (= (. m [x] [y] [0] stem) stem))) |
| 17 | + (if (= stem 'floor) |
| 18 | + (assert (= (len (get m x y)) 0)) |
| 19 | + (assert (= (. m [x] [y] [0] stem) stem)))) |
18 | 20 |
|
19 | 21 |
|
20 | 22 | (defn test-get-all []
|
|
32 | 34 |
|
33 | 35 |
|
34 | 36 | (defn test-bootcamp-level1 []
|
35 |
| - (setv level (. (iq-quest "Boot Camp 2") levels [0])) |
36 |
| - |
37 | 37 | ; Check the level attributes.
|
| 38 | + (setv l (. (iq-quest "Boot Camp 2") levels [0])) |
38 | 39 | (for [[got expected] (partition 2 [
|
39 |
| - level.title (.join "\n" [ |
| 40 | + l.title (.join "\n" [ |
40 | 41 | "Welcome to Boot Camp!"
|
41 | 42 | "Let's start with some basic scenery."
|
42 | 43 | "Shift-click to identify objects."])
|
43 |
| - level.player-start (Pos level.map 0 15) |
44 |
| - level.next-level 2 |
45 |
| - level.poison-intensity (f/ 1 5) |
46 |
| - level.time-limit None |
47 |
| - level.exit-speed 10 |
48 |
| - level.moving-exit-start None |
49 |
| - level.map.wrap-x False |
50 |
| - level.map.wrap-y False])] |
| 44 | + l.player-start (Pos l.map 0 15) |
| 45 | + l.next-level 2 |
| 46 | + l.poison-intensity (f/ 1 5) |
| 47 | + l.time-limit None |
| 48 | + l.exit-speed 10 |
| 49 | + l.moving-exit-start None |
| 50 | + l.map.wrap-x False |
| 51 | + l.map.wrap-y False])] |
51 | 52 | (assert (= got expected)))
|
52 | 53 |
|
53 | 54 | ; Count the number of tiles of each type that occur in the map.
|
| 55 | + (setv m (get-level-map "Boot Camp 2" 1)) |
54 | 56 | (assert (=
|
55 | 57 |
|
56 | 58 | (dict (Counter (gfor
|
57 |
| - row level.map.data |
| 59 | + row m |
58 | 60 | stack row
|
59 | 61 | tile stack
|
60 | 62 | tile.stem)))
|
|
78 | 80 |
|
79 | 81 | ; Check a few corner tiles, so we know we haven't rotated or
|
80 | 82 | ; reflected the map.
|
81 |
| - (assert (= (. level map data [0] [0]) [])) ; I.e., floor |
82 |
| - (assert (= (. level map data [15] [0] [0] stem) "key")) |
83 |
| - (assert (= (. level map data [15] [15] [0] stem) "cracked wall")) |
| 83 | + (assert-stem m 0 0 'floor) |
| 84 | + (assert-stem m 15 0 "key") |
| 85 | + (assert-stem m 15 15 "cracked wall") |
84 | 86 |
|
85 | 87 | ; Check the hit points of the two cracked walls.
|
86 |
| - (assert (= (. level map data [7] [8] [0] hp) 4)) |
87 |
| - (assert (= (. level map data [15] [15] [0] hp) 2))) |
| 88 | + (assert (= (. m [7] [8] [0] hp) 4)) |
| 89 | + (assert (= (. m [15] [15] [0] hp) 2))) |
88 | 90 |
|
89 | 91 |
|
90 | 92 | (defn test-unpad []
|
|
236 | 238 | (setv m (get-level-map "Boot Camp 2" 14))
|
237 | 239 |
|
238 | 240 | ; A normal exit
|
239 |
| - (setv [tile] (get m 10 8)) |
240 |
| - (assert (= tile.stem "exit")) |
241 |
| - (assert (is tile.level-n None)) |
| 241 | + (setv [t] (get m 10 8)) |
| 242 | + (assert (= t.stem "exit")) |
| 243 | + (assert (is t.level-n None)) |
242 | 244 |
|
243 | 245 | ; A special exit
|
244 |
| - (setv [tile] (get m 7 15)) |
245 |
| - (assert (= tile.stem "exit")) |
246 |
| - (assert (= tile.level-n 15))) |
| 246 | + (setv [t] (get m 7 15)) |
| 247 | + (assert (= t.stem "exit")) |
| 248 | + (assert (= t.level-n 15))) |
0 commit comments