zombie-escape 1.14.4__tar.gz → 1.15.2__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (56) hide show
  1. {zombie_escape-1.14.4 → zombie_escape-1.15.2}/PKG-INFO +24 -24
  2. {zombie_escape-1.14.4 → zombie_escape-1.15.2}/README.md +23 -23
  3. {zombie_escape-1.14.4 → zombie_escape-1.15.2}/pyproject.toml +3 -2
  4. {zombie_escape-1.14.4 → zombie_escape-1.15.2}/src/zombie_escape/__about__.py +1 -1
  5. {zombie_escape-1.14.4 → zombie_escape-1.15.2}/src/zombie_escape/config.py +1 -0
  6. {zombie_escape-1.14.4 → zombie_escape-1.15.2}/src/zombie_escape/entities.py +126 -199
  7. {zombie_escape-1.14.4 → zombie_escape-1.15.2}/src/zombie_escape/entities_constants.py +11 -1
  8. {zombie_escape-1.14.4 → zombie_escape-1.15.2}/src/zombie_escape/export_images.py +4 -4
  9. zombie_escape-1.15.2/src/zombie_escape/font_utils.py +92 -0
  10. {zombie_escape-1.14.4 → zombie_escape-1.15.2}/src/zombie_escape/gameplay/__init__.py +2 -1
  11. {zombie_escape-1.14.4 → zombie_escape-1.15.2}/src/zombie_escape/gameplay/constants.py +4 -0
  12. {zombie_escape-1.14.4 → zombie_escape-1.15.2}/src/zombie_escape/gameplay/interactions.py +83 -16
  13. {zombie_escape-1.14.4 → zombie_escape-1.15.2}/src/zombie_escape/gameplay/layout.py +9 -15
  14. {zombie_escape-1.14.4 → zombie_escape-1.15.2}/src/zombie_escape/gameplay/movement.py +45 -29
  15. {zombie_escape-1.14.4 → zombie_escape-1.15.2}/src/zombie_escape/gameplay/spawn.py +15 -29
  16. {zombie_escape-1.14.4 → zombie_escape-1.15.2}/src/zombie_escape/gameplay/state.py +62 -7
  17. {zombie_escape-1.14.4 → zombie_escape-1.15.2}/src/zombie_escape/gameplay/survivors.py +61 -10
  18. {zombie_escape-1.14.4 → zombie_escape-1.15.2}/src/zombie_escape/gameplay/utils.py +33 -0
  19. {zombie_escape-1.14.4 → zombie_escape-1.15.2}/src/zombie_escape/level_blueprints.py +35 -31
  20. {zombie_escape-1.14.4 → zombie_escape-1.15.2}/src/zombie_escape/level_constants.py +2 -2
  21. {zombie_escape-1.14.4 → zombie_escape-1.15.2}/src/zombie_escape/locales/ui.en.json +19 -8
  22. {zombie_escape-1.14.4 → zombie_escape-1.15.2}/src/zombie_escape/locales/ui.ja.json +19 -8
  23. {zombie_escape-1.14.4 → zombie_escape-1.15.2}/src/zombie_escape/localization.py +7 -1
  24. {zombie_escape-1.14.4 → zombie_escape-1.15.2}/src/zombie_escape/models.py +21 -6
  25. {zombie_escape-1.14.4 → zombie_escape-1.15.2}/src/zombie_escape/render/__init__.py +2 -2
  26. {zombie_escape-1.14.4 → zombie_escape-1.15.2}/src/zombie_escape/render/core.py +113 -81
  27. {zombie_escape-1.14.4 → zombie_escape-1.15.2}/src/zombie_escape/render/hud.py +112 -40
  28. {zombie_escape-1.14.4 → zombie_escape-1.15.2}/src/zombie_escape/render/overview.py +93 -2
  29. {zombie_escape-1.14.4 → zombie_escape-1.15.2}/src/zombie_escape/render/shadows.py +2 -2
  30. {zombie_escape-1.14.4 → zombie_escape-1.15.2}/src/zombie_escape/render_constants.py +12 -0
  31. zombie_escape-1.15.2/src/zombie_escape/screens/__init__.py +54 -0
  32. {zombie_escape-1.14.4 → zombie_escape-1.15.2}/src/zombie_escape/screens/game_over.py +8 -21
  33. {zombie_escape-1.14.4 → zombie_escape-1.15.2}/src/zombie_escape/screens/gameplay.py +71 -26
  34. {zombie_escape-1.14.4 → zombie_escape-1.15.2}/src/zombie_escape/screens/settings.py +114 -43
  35. {zombie_escape-1.14.4 → zombie_escape-1.15.2}/src/zombie_escape/screens/title.py +128 -47
  36. {zombie_escape-1.14.4 → zombie_escape-1.15.2}/src/zombie_escape/stage_constants.py +37 -8
  37. zombie_escape-1.15.2/src/zombie_escape/windowing.py +508 -0
  38. {zombie_escape-1.14.4 → zombie_escape-1.15.2}/src/zombie_escape/world_grid.py +7 -5
  39. {zombie_escape-1.14.4 → zombie_escape-1.15.2}/src/zombie_escape/zombie_escape.py +26 -13
  40. zombie_escape-1.14.4/src/zombie_escape/font_utils.py +0 -45
  41. zombie_escape-1.14.4/src/zombie_escape/screens/__init__.py +0 -237
  42. {zombie_escape-1.14.4 → zombie_escape-1.15.2}/.gitignore +0 -0
  43. {zombie_escape-1.14.4 → zombie_escape-1.15.2}/LICENSE.txt +0 -0
  44. {zombie_escape-1.14.4 → zombie_escape-1.15.2}/src/zombie_escape/__init__.py +0 -0
  45. {zombie_escape-1.14.4 → zombie_escape-1.15.2}/src/zombie_escape/__main__.py +0 -0
  46. {zombie_escape-1.14.4 → zombie_escape-1.15.2}/src/zombie_escape/assets/fonts/Silkscreen-Regular.ttf +0 -0
  47. {zombie_escape-1.14.4 → zombie_escape-1.15.2}/src/zombie_escape/assets/fonts/misaki_gothic.ttf +0 -0
  48. {zombie_escape-1.14.4 → zombie_escape-1.15.2}/src/zombie_escape/colors.py +0 -0
  49. {zombie_escape-1.14.4 → zombie_escape-1.15.2}/src/zombie_escape/gameplay/ambient.py +0 -0
  50. {zombie_escape-1.14.4 → zombie_escape-1.15.2}/src/zombie_escape/gameplay/footprints.py +0 -0
  51. {zombie_escape-1.14.4 → zombie_escape-1.15.2}/src/zombie_escape/gameplay_constants.py +0 -0
  52. {zombie_escape-1.14.4 → zombie_escape-1.15.2}/src/zombie_escape/input_utils.py +0 -0
  53. {zombie_escape-1.14.4 → zombie_escape-1.15.2}/src/zombie_escape/progress.py +0 -0
  54. {zombie_escape-1.14.4 → zombie_escape-1.15.2}/src/zombie_escape/render_assets.py +0 -0
  55. {zombie_escape-1.14.4 → zombie_escape-1.15.2}/src/zombie_escape/rng.py +0 -0
  56. {zombie_escape-1.14.4 → zombie_escape-1.15.2}/src/zombie_escape/screen_constants.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: zombie-escape
3
- Version: 1.14.4
3
+ Version: 1.15.2
4
4
  Summary: Top-down zombie survival game built with pygame.
5
5
  Project-URL: Homepage, https://github.com/tos-kamiya/zombie-escape
6
6
  Author-email: Toshihiro Kamiya <kamiya@mbj.nifty.com>
@@ -57,7 +57,7 @@ This game is a simple 2D top-down action game where the player aims to escape by
57
57
  - **Pause:** `P`/Start or `ESC`/Select
58
58
  - **Quit Game:** `ESC`/Select (from pause)
59
59
  - **Restart:** `R` key (on Game Over/Clear screen)
60
- - **Window/Fullscreen:** `[` to shrink, `]` to enlarge, `F` to toggle fullscreen
60
+ - **Window/Fullscreen:** `[` to shrink by one step (400x300), `]` to enlarge by one step, `F` to toggle fullscreen
61
61
  - **FPS Overlay:** Launch with `--show-fps` (implied by `--debug`)
62
62
  - **Time Acceleration:** Hold either `Shift` key or `R1` to run the entire world 4x faster; release to return to normal speed.
63
63
 
@@ -67,11 +67,11 @@ This game is a simple 2D top-down action game where the player aims to escape by
67
67
 
68
68
  At the title screen you can pick a stage:
69
69
 
70
- - **Stage 1: Find the Car** — locate the car and drive out (you already start with fuel).
70
+ - **Stage 1: Find the Car** — you already start with fuel; find the car and escape.
71
71
  - **Stage 2: Fuel Run** — you start with no fuel; find a fuel can first, pick it up, then find the car and escape.
72
- - **Stage 3: Rescue Buddy** — same fuel hunt as Stage 2 (you begin empty) plus grab your buddy, pick them up with the car, then escape together.
73
- - **Stage 4: Evacuate Survivors** — start fueled, find the car, gather nearby civilians, and escape before zombies reach them. Stage 4 sprinkles extra parked cars across the map; slamming into one while already driving fully repairs your current ride and adds five more safe seats.
74
- - **Stage 5: Survive Until Dawn** — every car is bone-dry. Endure until the sun rises while the horde presses in from every direction. Once dawn hits, outdoor zombies carbonize and you must walk out through an existing exterior gap to win; cars remain unusable.
72
+ - **Stage 3: Rescue Buddy** — same fuel hunt as Stage 2 (you begin empty) plus locate your buddy, pick them up with the car, then escape together.
73
+ - **Stage 4: Evacuate Survivors** — start fueled, find the car, gather survivors, and escape before zombies reach them. The stage includes extra parked cars; ramming one while driving fully repairs your current ride and adds five seats each time.
74
+ - **Stage 5: Survive Until Dawn** — every car is empty. Endure until sunrise while the horde presses in from every direction. Once dawn hits and outdoor zombies carbonize, walk out through an existing exterior gap to win; cars remain unusable.
75
75
 
76
76
  Stages 6+ unlock after clearing Stages 1–5. On the title screen, use left/right to select later stages.
77
77
  Open the Stage 6+ description: [docs/stages-6plus.md](docs/stages-6plus.md)
@@ -80,6 +80,18 @@ Open the Stage 6+ description: [docs/stages-6plus.md](docs/stages-6plus.md)
80
80
 
81
81
  An objective reminder is shown at the top-left during play.
82
82
 
83
+ ### Win/Lose Conditions
84
+
85
+ - **Win Condition:** Escape the stage (level) boundaries while inside the car.
86
+ - Stage 1 and Stage 4 follow the base rule: drive out of the building by car.
87
+ - Stage 2 also requires that you have collected the fuel can before driving out.
88
+ - Stage 3 requires meeting up with your buddy and escaping the building by car.
89
+ - Stage 5 has no working cars; survive until dawn, then walk out through an exterior opening on foot.
90
+ - **Lose Condition:**
91
+ - The player is touched by a zombie while *not* inside a car.
92
+ - In Stage 3, if your buddy is caught (when visible), it's game over.
93
+ - (Note: In the current implementation, the game does not end immediately when the car is destroyed. The player can search for another car and continue trying to escape.)
94
+
83
95
  ### Shared Seeds
84
96
 
85
97
  The title screen also lets you enter a numeric **seed**. Type digits (or pass `--seed <number>` on the CLI) to lock the procedural layout, wall placement, and pickups; share that seed with a friend and you will both play the exact same stage even on different machines. The current seed is shown at the bottom right of the title screen and in-game HUD. Backspace reverts to an automatically generated value so you can quickly roll a fresh challenge.
@@ -91,7 +103,7 @@ Open **Settings** from the title to toggle gameplay assists:
91
103
  - **Footprints:** Leave breadcrumb trails so you can backtrack in the dark.
92
104
  - **Fast zombies:** Allow faster zombie variants; each zombie rolls a random speed between the normal and fast ranges.
93
105
  - **Car hint:** After a delay, show a small triangle pointing toward the fuel (Stage 2 before pickup) or the car.
94
- - **Steel beams:** Adds tougher single-cell obstacles (5% density) that block movement; hidden when stacked with an inner wall until that wall is destroyed.
106
+ - **Steel beams:** Adds tougher single-cell obstacles (about 5% density) that block movement.
95
107
 
96
108
  ## Game Rules
97
109
 
@@ -126,7 +138,7 @@ Open **Settings** from the title to toggle gameplay assists:
126
138
  <tr>
127
139
  <td>Car</td>
128
140
  <td><img src="https://raw.githubusercontent.com/tos-kamiya/zombie-escape/main/imgs/exports/car.png" width="64"></td>
129
- <td>Driveable escape vehicle with durability; wall hits and zombie collisions reduce health. If it breaks, you're on foot until you find another car. Ramming a parked car restores health (and in Stage 4 increases safe passenger capacity). After ~5 minutes, a small triangle points to the current objective.</td>
141
+ <td>Driveable escape vehicle; touch to enter. Durability drops from wall hits and running over zombies; if it reaches 0, the car breaks. Capacity starts at five. Ramming a parked car while driving restores health and adds +5 capacity. After ~5 minutes, a small triangle points to the current objective.</td>
130
142
  </tr>
131
143
  <tr>
132
144
  <td>Buddy (Stage 3)</td>
@@ -136,7 +148,7 @@ Open **Settings** from the title to toggle gameplay assists:
136
148
  <tr>
137
149
  <td>Survivors (Stage 4)</td>
138
150
  <td><img src="https://raw.githubusercontent.com/tos-kamiya/zombie-escape/main/imgs/exports/survivor.png" width="64"></td>
139
- <td>Civilians to evacuate by car; they idle until approached, then follow at ~1/3 speed. On-screen zombie contact converts them. They only board cars; safe capacity starts at five and grows by five when you sideswipe parked cars, with speed loss based on how full the car is.</td>
151
+ <td>Civilians to evacuate by car; they idle until approached, then follow at ~1/3 speed. On-screen zombie contact converts them. If you exceed the car's capacity, the car is damaged and everyone disembarks.</td>
140
152
  </tr>
141
153
  </tbody>
142
154
  </table>
@@ -160,17 +172,17 @@ Open **Settings** from the title to toggle gameplay assists:
160
172
  <tr>
161
173
  <td>Flashlight</td>
162
174
  <td><img src="https://raw.githubusercontent.com/tos-kamiya/zombie-escape/main/imgs/exports/flashlight.png" width="64"></td>
163
- <td>Each pickup expands your visible radius by about 20% (grab two to reach the max boost).</td>
175
+ <td>Each pickup expands your visible radius by about 20%.</td>
164
176
  </tr>
165
177
  <tr>
166
178
  <td>Fuel Can (Stages 2 & 3)</td>
167
179
  <td><img src="https://raw.githubusercontent.com/tos-kamiya/zombie-escape/main/imgs/exports/fuel.png" width="64"></td>
168
- <td>Must be collected before driving the car in fuel-run stages.</td>
180
+ <td>Appears only in stages that begin without fuel; pick it up to unlock driving.</td>
169
181
  </tr>
170
182
  <tr>
171
183
  <td>Steel Beam (optional)</td>
172
184
  <td><img src="https://raw.githubusercontent.com/tos-kamiya/zombie-escape/main/imgs/exports/steel-beam.png" width="64"></td>
173
- <td>Same collision as inner walls but with 1.5x durability.</td>
185
+ <td>Striped obstacle with the same collision as inner walls, but 1.5x durability. Can also appear after an inner wall is destroyed.</td>
174
186
  </tr>
175
187
  </tbody>
176
188
  </table>
@@ -204,18 +216,6 @@ Open **Settings** from the title to toggle gameplay assists:
204
216
  </tbody>
205
217
  </table>
206
218
 
207
- ### Win/Lose Conditions
208
-
209
- - **Win Condition:** Escape the stage (level) boundaries while inside the car.
210
- - Stage 1 and Stage 4 follow the base rule: find the car (already fueled) and drive out.
211
- - Stage 2 also requires that you have collected the fuel can before driving out.
212
- - Stage 3 requires both fuel and having picked up your buddy with the car before driving out.
213
- - Stage 5 has no working cars; survive until dawn, then walk out through an exterior opening on foot.
214
- - **Lose Condition:**
215
- - The player is touched by a zombie while *not* inside a car.
216
- - In Stage 3, if your buddy is caught (when visible), it's game over.
217
- - (Note: In the current implementation, the game does not end immediately when the car is destroyed. The player can search for another car and continue trying to escape.)
218
-
219
219
  ## How to Run
220
220
 
221
221
  **Requirements: Python 3.10 or higher**
@@ -28,7 +28,7 @@ This game is a simple 2D top-down action game where the player aims to escape by
28
28
  - **Pause:** `P`/Start or `ESC`/Select
29
29
  - **Quit Game:** `ESC`/Select (from pause)
30
30
  - **Restart:** `R` key (on Game Over/Clear screen)
31
- - **Window/Fullscreen:** `[` to shrink, `]` to enlarge, `F` to toggle fullscreen
31
+ - **Window/Fullscreen:** `[` to shrink by one step (400x300), `]` to enlarge by one step, `F` to toggle fullscreen
32
32
  - **FPS Overlay:** Launch with `--show-fps` (implied by `--debug`)
33
33
  - **Time Acceleration:** Hold either `Shift` key or `R1` to run the entire world 4x faster; release to return to normal speed.
34
34
 
@@ -38,11 +38,11 @@ This game is a simple 2D top-down action game where the player aims to escape by
38
38
 
39
39
  At the title screen you can pick a stage:
40
40
 
41
- - **Stage 1: Find the Car** — locate the car and drive out (you already start with fuel).
41
+ - **Stage 1: Find the Car** — you already start with fuel; find the car and escape.
42
42
  - **Stage 2: Fuel Run** — you start with no fuel; find a fuel can first, pick it up, then find the car and escape.
43
- - **Stage 3: Rescue Buddy** — same fuel hunt as Stage 2 (you begin empty) plus grab your buddy, pick them up with the car, then escape together.
44
- - **Stage 4: Evacuate Survivors** — start fueled, find the car, gather nearby civilians, and escape before zombies reach them. Stage 4 sprinkles extra parked cars across the map; slamming into one while already driving fully repairs your current ride and adds five more safe seats.
45
- - **Stage 5: Survive Until Dawn** — every car is bone-dry. Endure until the sun rises while the horde presses in from every direction. Once dawn hits, outdoor zombies carbonize and you must walk out through an existing exterior gap to win; cars remain unusable.
43
+ - **Stage 3: Rescue Buddy** — same fuel hunt as Stage 2 (you begin empty) plus locate your buddy, pick them up with the car, then escape together.
44
+ - **Stage 4: Evacuate Survivors** — start fueled, find the car, gather survivors, and escape before zombies reach them. The stage includes extra parked cars; ramming one while driving fully repairs your current ride and adds five seats each time.
45
+ - **Stage 5: Survive Until Dawn** — every car is empty. Endure until sunrise while the horde presses in from every direction. Once dawn hits and outdoor zombies carbonize, walk out through an existing exterior gap to win; cars remain unusable.
46
46
 
47
47
  Stages 6+ unlock after clearing Stages 1–5. On the title screen, use left/right to select later stages.
48
48
  Open the Stage 6+ description: [docs/stages-6plus.md](docs/stages-6plus.md)
@@ -51,6 +51,18 @@ Open the Stage 6+ description: [docs/stages-6plus.md](docs/stages-6plus.md)
51
51
 
52
52
  An objective reminder is shown at the top-left during play.
53
53
 
54
+ ### Win/Lose Conditions
55
+
56
+ - **Win Condition:** Escape the stage (level) boundaries while inside the car.
57
+ - Stage 1 and Stage 4 follow the base rule: drive out of the building by car.
58
+ - Stage 2 also requires that you have collected the fuel can before driving out.
59
+ - Stage 3 requires meeting up with your buddy and escaping the building by car.
60
+ - Stage 5 has no working cars; survive until dawn, then walk out through an exterior opening on foot.
61
+ - **Lose Condition:**
62
+ - The player is touched by a zombie while *not* inside a car.
63
+ - In Stage 3, if your buddy is caught (when visible), it's game over.
64
+ - (Note: In the current implementation, the game does not end immediately when the car is destroyed. The player can search for another car and continue trying to escape.)
65
+
54
66
  ### Shared Seeds
55
67
 
56
68
  The title screen also lets you enter a numeric **seed**. Type digits (or pass `--seed <number>` on the CLI) to lock the procedural layout, wall placement, and pickups; share that seed with a friend and you will both play the exact same stage even on different machines. The current seed is shown at the bottom right of the title screen and in-game HUD. Backspace reverts to an automatically generated value so you can quickly roll a fresh challenge.
@@ -62,7 +74,7 @@ Open **Settings** from the title to toggle gameplay assists:
62
74
  - **Footprints:** Leave breadcrumb trails so you can backtrack in the dark.
63
75
  - **Fast zombies:** Allow faster zombie variants; each zombie rolls a random speed between the normal and fast ranges.
64
76
  - **Car hint:** After a delay, show a small triangle pointing toward the fuel (Stage 2 before pickup) or the car.
65
- - **Steel beams:** Adds tougher single-cell obstacles (5% density) that block movement; hidden when stacked with an inner wall until that wall is destroyed.
77
+ - **Steel beams:** Adds tougher single-cell obstacles (about 5% density) that block movement.
66
78
 
67
79
  ## Game Rules
68
80
 
@@ -97,7 +109,7 @@ Open **Settings** from the title to toggle gameplay assists:
97
109
  <tr>
98
110
  <td>Car</td>
99
111
  <td><img src="https://raw.githubusercontent.com/tos-kamiya/zombie-escape/main/imgs/exports/car.png" width="64"></td>
100
- <td>Driveable escape vehicle with durability; wall hits and zombie collisions reduce health. If it breaks, you're on foot until you find another car. Ramming a parked car restores health (and in Stage 4 increases safe passenger capacity). After ~5 minutes, a small triangle points to the current objective.</td>
112
+ <td>Driveable escape vehicle; touch to enter. Durability drops from wall hits and running over zombies; if it reaches 0, the car breaks. Capacity starts at five. Ramming a parked car while driving restores health and adds +5 capacity. After ~5 minutes, a small triangle points to the current objective.</td>
101
113
  </tr>
102
114
  <tr>
103
115
  <td>Buddy (Stage 3)</td>
@@ -107,7 +119,7 @@ Open **Settings** from the title to toggle gameplay assists:
107
119
  <tr>
108
120
  <td>Survivors (Stage 4)</td>
109
121
  <td><img src="https://raw.githubusercontent.com/tos-kamiya/zombie-escape/main/imgs/exports/survivor.png" width="64"></td>
110
- <td>Civilians to evacuate by car; they idle until approached, then follow at ~1/3 speed. On-screen zombie contact converts them. They only board cars; safe capacity starts at five and grows by five when you sideswipe parked cars, with speed loss based on how full the car is.</td>
122
+ <td>Civilians to evacuate by car; they idle until approached, then follow at ~1/3 speed. On-screen zombie contact converts them. If you exceed the car's capacity, the car is damaged and everyone disembarks.</td>
111
123
  </tr>
112
124
  </tbody>
113
125
  </table>
@@ -131,17 +143,17 @@ Open **Settings** from the title to toggle gameplay assists:
131
143
  <tr>
132
144
  <td>Flashlight</td>
133
145
  <td><img src="https://raw.githubusercontent.com/tos-kamiya/zombie-escape/main/imgs/exports/flashlight.png" width="64"></td>
134
- <td>Each pickup expands your visible radius by about 20% (grab two to reach the max boost).</td>
146
+ <td>Each pickup expands your visible radius by about 20%.</td>
135
147
  </tr>
136
148
  <tr>
137
149
  <td>Fuel Can (Stages 2 & 3)</td>
138
150
  <td><img src="https://raw.githubusercontent.com/tos-kamiya/zombie-escape/main/imgs/exports/fuel.png" width="64"></td>
139
- <td>Must be collected before driving the car in fuel-run stages.</td>
151
+ <td>Appears only in stages that begin without fuel; pick it up to unlock driving.</td>
140
152
  </tr>
141
153
  <tr>
142
154
  <td>Steel Beam (optional)</td>
143
155
  <td><img src="https://raw.githubusercontent.com/tos-kamiya/zombie-escape/main/imgs/exports/steel-beam.png" width="64"></td>
144
- <td>Same collision as inner walls but with 1.5x durability.</td>
156
+ <td>Striped obstacle with the same collision as inner walls, but 1.5x durability. Can also appear after an inner wall is destroyed.</td>
145
157
  </tr>
146
158
  </tbody>
147
159
  </table>
@@ -175,18 +187,6 @@ Open **Settings** from the title to toggle gameplay assists:
175
187
  </tbody>
176
188
  </table>
177
189
 
178
- ### Win/Lose Conditions
179
-
180
- - **Win Condition:** Escape the stage (level) boundaries while inside the car.
181
- - Stage 1 and Stage 4 follow the base rule: find the car (already fueled) and drive out.
182
- - Stage 2 also requires that you have collected the fuel can before driving out.
183
- - Stage 3 requires both fuel and having picked up your buddy with the car before driving out.
184
- - Stage 5 has no working cars; survive until dawn, then walk out through an exterior opening on foot.
185
- - **Lose Condition:**
186
- - The player is touched by a zombie while *not* inside a car.
187
- - In Stage 3, if your buddy is caught (when visible), it's game over.
188
- - (Note: In the current implementation, the game does not end immediately when the car is destroyed. The player can search for another car and continue trying to escape.)
189
-
190
190
  ## How to Run
191
191
 
192
192
  **Requirements: Python 3.10 or higher**
@@ -58,5 +58,6 @@ include = ["src/zombie_escape/**"]
58
58
  [project.gui-scripts]
59
59
  zombie-escape = "zombie_escape:main"
60
60
 
61
- [tool.ty.rules]
62
- unresolved-import = "ignore"
61
+ [tool.pyright]
62
+ venvPath = "."
63
+ venv = ".venv"
@@ -1,4 +1,4 @@
1
1
  # SPDX-FileCopyrightText: 2025-present Toshihiro Kamiya <kamiya@mbj.nifty.com>
2
2
  #
3
3
  # SPDX-License-Identifier: MIT
4
- __version__ = "1.14.4"
4
+ __version__ = "1.15.2"
@@ -11,6 +11,7 @@ APP_NAME = "ZombieEscape"
11
11
  DEFAULT_CONFIG: dict[str, Any] = {
12
12
  "language": "en",
13
13
  "footprints": {"enabled": True},
14
+ "visual": {"shadows": {"enabled": True}},
14
15
  "fast_zombies": {"enabled": False, "ratio": 0.1},
15
16
  "car_hint": {"enabled": True, "delay_ms": 180_000},
16
17
  "steel_beams": {"enabled": False, "chance": 0.05},