zombie-escape 1.12.0__py3-none-any.whl → 1.13.1__py3-none-any.whl

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 (34) hide show
  1. zombie_escape/__about__.py +1 -1
  2. zombie_escape/__main__.py +7 -0
  3. zombie_escape/colors.py +22 -14
  4. zombie_escape/entities.py +756 -147
  5. zombie_escape/entities_constants.py +35 -14
  6. zombie_escape/export_images.py +296 -0
  7. zombie_escape/gameplay/__init__.py +2 -1
  8. zombie_escape/gameplay/constants.py +6 -0
  9. zombie_escape/gameplay/footprints.py +4 -0
  10. zombie_escape/gameplay/interactions.py +19 -7
  11. zombie_escape/gameplay/layout.py +103 -34
  12. zombie_escape/gameplay/movement.py +85 -5
  13. zombie_escape/gameplay/spawn.py +139 -90
  14. zombie_escape/gameplay/state.py +18 -9
  15. zombie_escape/gameplay/survivors.py +13 -2
  16. zombie_escape/gameplay/utils.py +40 -21
  17. zombie_escape/level_blueprints.py +256 -19
  18. zombie_escape/locales/ui.en.json +12 -2
  19. zombie_escape/locales/ui.ja.json +12 -2
  20. zombie_escape/models.py +14 -7
  21. zombie_escape/render.py +149 -37
  22. zombie_escape/render_assets.py +419 -124
  23. zombie_escape/render_constants.py +27 -0
  24. zombie_escape/screens/game_over.py +14 -3
  25. zombie_escape/screens/gameplay.py +72 -14
  26. zombie_escape/screens/title.py +18 -7
  27. zombie_escape/stage_constants.py +51 -15
  28. zombie_escape/zombie_escape.py +24 -1
  29. {zombie_escape-1.12.0.dist-info → zombie_escape-1.13.1.dist-info}/METADATA +41 -15
  30. zombie_escape-1.13.1.dist-info/RECORD +49 -0
  31. zombie_escape-1.12.0.dist-info/RECORD +0 -47
  32. {zombie_escape-1.12.0.dist-info → zombie_escape-1.13.1.dist-info}/WHEEL +0 -0
  33. {zombie_escape-1.12.0.dist-info → zombie_escape-1.13.1.dist-info}/entry_points.txt +0 -0
  34. {zombie_escape-1.12.0.dist-info → zombie_escape-1.13.1.dist-info}/licenses/LICENSE.txt +0 -0
@@ -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.12.0"
4
+ __version__ = "1.13.1"
@@ -0,0 +1,7 @@
1
+ from __future__ import annotations
2
+
3
+ from .zombie_escape import main
4
+
5
+
6
+ if __name__ == "__main__":
7
+ main()
zombie_escape/colors.py CHANGED
@@ -2,7 +2,12 @@ from __future__ import annotations
2
2
 
3
3
  from dataclasses import dataclass
4
4
 
5
- # Basic palette
5
+
6
+ def _clamp(value: float) -> int:
7
+ return max(0, min(255, int(value)))
8
+
9
+
10
+ # Basic palette.
6
11
  WHITE: tuple[int, int, int] = (255, 255, 255)
7
12
  BLACK: tuple[int, int, int] = (0, 0, 0)
8
13
  RED: tuple[int, int, int] = (255, 0, 0)
@@ -13,8 +18,6 @@ LIGHT_GRAY: tuple[int, int, int] = (200, 200, 200)
13
18
  YELLOW: tuple[int, int, int] = (255, 255, 0)
14
19
  ORANGE: tuple[int, int, int] = (255, 165, 0)
15
20
  DARK_RED: tuple[int, int, int] = (139, 0, 0)
16
- TRACKER_OUTLINE_COLOR: tuple[int, int, int] = (170, 70, 220)
17
- WALL_FOLLOWER_OUTLINE_COLOR: tuple[int, int, int] = (140, 140, 140)
18
21
 
19
22
 
20
23
  @dataclass(frozen=True)
@@ -32,10 +35,6 @@ class EnvironmentPalette:
32
35
  outer_wall_border: tuple[int, int, int]
33
36
 
34
37
 
35
- def _clamp(value: float) -> int:
36
- return max(0, min(255, int(value)))
37
-
38
-
39
38
  def _adjust_color(
40
39
  color: tuple[int, int, int], *, brightness: float = 1.0, saturation: float = 1.0
41
40
  ) -> tuple[int, int, int]:
@@ -56,6 +55,7 @@ DEFAULT_AMBIENT_PALETTE_KEY = "default"
56
55
  NO_FLASHLIGHT_PALETTE_KEY = "no_flashlight"
57
56
  DAWN_AMBIENT_PALETTE_KEY = "dawn"
58
57
 
58
+
59
59
  # Base palette used throughout gameplay (matches the previous constants).
60
60
  _DEFAULT_ENVIRONMENT_PALETTE = EnvironmentPalette(
61
61
  floor_primary=(43, 57, 70),
@@ -72,10 +72,14 @@ _DEFAULT_ENVIRONMENT_PALETTE = EnvironmentPalette(
72
72
  # Dark, desaturated palette that sells the "alone without a flashlight" vibe.
73
73
  _GLOOM_ENVIRONMENT_PALETTE = EnvironmentPalette(
74
74
  floor_primary=_adjust_color(
75
- _DEFAULT_ENVIRONMENT_PALETTE.floor_primary, brightness=0.8, saturation=0.75
75
+ _DEFAULT_ENVIRONMENT_PALETTE.floor_primary,
76
+ brightness=0.8,
77
+ saturation=0.75,
76
78
  ),
77
79
  floor_secondary=_adjust_color(
78
- _DEFAULT_ENVIRONMENT_PALETTE.floor_secondary, brightness=0.8, saturation=0.75
80
+ _DEFAULT_ENVIRONMENT_PALETTE.floor_secondary,
81
+ brightness=0.8,
82
+ saturation=0.75,
79
83
  ),
80
84
  fall_zone_primary=_adjust_color(
81
85
  _DEFAULT_ENVIRONMENT_PALETTE.fall_zone_primary,
@@ -88,10 +92,14 @@ _GLOOM_ENVIRONMENT_PALETTE = EnvironmentPalette(
88
92
  saturation=0.75,
89
93
  ),
90
94
  outside=_adjust_color(
91
- _DEFAULT_ENVIRONMENT_PALETTE.outside, brightness=0.8, saturation=0.75
95
+ _DEFAULT_ENVIRONMENT_PALETTE.outside,
96
+ brightness=0.8,
97
+ saturation=0.75,
92
98
  ),
93
99
  inner_wall=_adjust_color(
94
- _DEFAULT_ENVIRONMENT_PALETTE.inner_wall, brightness=0.8, saturation=0.75
100
+ _DEFAULT_ENVIRONMENT_PALETTE.inner_wall,
101
+ brightness=0.8,
102
+ saturation=0.75,
95
103
  ),
96
104
  inner_wall_border=_adjust_color(
97
105
  _DEFAULT_ENVIRONMENT_PALETTE.inner_wall_border,
@@ -99,7 +107,9 @@ _GLOOM_ENVIRONMENT_PALETTE = EnvironmentPalette(
99
107
  saturation=0.75,
100
108
  ),
101
109
  outer_wall=_adjust_color(
102
- _DEFAULT_ENVIRONMENT_PALETTE.outer_wall, brightness=0.8, saturation=0.75
110
+ _DEFAULT_ENVIRONMENT_PALETTE.outer_wall,
111
+ brightness=0.8,
112
+ saturation=0.75,
103
113
  ),
104
114
  outer_wall_border=_adjust_color(
105
115
  _DEFAULT_ENVIRONMENT_PALETTE.outer_wall_border,
@@ -181,8 +191,6 @@ __all__ = [
181
191
  "YELLOW",
182
192
  "ORANGE",
183
193
  "DARK_RED",
184
- "TRACKER_OUTLINE_COLOR",
185
- "WALL_FOLLOWER_OUTLINE_COLOR",
186
194
  "DAWN_AMBIENT_PALETTE_KEY",
187
195
  "INTERNAL_WALL_COLOR",
188
196
  "INTERNAL_WALL_BORDER_COLOR",