zombie-escape 1.10.1__py3-none-any.whl → 1.12.3__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.
@@ -2,6 +2,7 @@
2
2
 
3
3
  from __future__ import annotations
4
4
 
5
+ import math
5
6
  from dataclasses import dataclass
6
7
 
7
8
  from .entities_constants import FOV_RADIUS, PLAYER_RADIUS
@@ -11,9 +12,14 @@ HUMANOID_OUTLINE_COLOR = (0, 80, 200)
11
12
  HUMANOID_OUTLINE_WIDTH = 1
12
13
  BUDDY_COLOR = (0, 180, 63)
13
14
  SURVIVOR_COLOR = (198, 198, 198)
15
+ ZOMBIE_BODY_COLOR = (180, 0, 0)
16
+ ZOMBIE_OUTLINE_COLOR = (255, 60, 60)
17
+ ZOMBIE_NOSE_COLOR = (255, 80, 80)
14
18
  FALLING_ZOMBIE_COLOR = (45, 45, 45)
15
19
  FALLING_WHIRLWIND_COLOR = (200, 200, 200, 120)
16
20
  FALLING_DUST_COLOR = (70, 70, 70, 130)
21
+ ANGLE_BINS = 16
22
+ HAND_SPREAD_RAD = math.radians(75)
17
23
 
18
24
 
19
25
  @dataclass(frozen=True)
@@ -36,13 +42,13 @@ class RenderAssets:
36
42
  footprint_lifetime_ms: int
37
43
  footprint_min_fade: float
38
44
  internal_wall_grid_snap: int
39
- flashlight_bonus_step: float
40
45
  flashlight_hatch_extra_scale: float
41
46
 
42
47
 
43
48
  FOG_RADIUS_SCALE = 1.2
44
49
 
45
- FLASHLIGHT_FOG_SCALE_STEP = 0.3
50
+ FLASHLIGHT_FOG_SCALE_ONE = FOG_RADIUS_SCALE + 0.3
51
+ FLASHLIGHT_FOG_SCALE_TWO = FOG_RADIUS_SCALE + 0.6
46
52
  FLASHLIGHT_HATCH_EXTRA_SCALE = 0.12
47
53
 
48
54
  FOOTPRINT_RADIUS = 2
@@ -55,6 +61,11 @@ SHADOW_OVERSAMPLE = 2
55
61
  SHADOW_STEPS = 10
56
62
  SHADOW_MIN_RATIO = 0.0
57
63
  SHADOW_RADIUS_RATIO = 0.3
64
+ ENTITY_SHADOW_RADIUS_MULT = 1.8
65
+ ENTITY_SHADOW_ALPHA = 48
66
+ ENTITY_SHADOW_EDGE_SOFTNESS = 0.32
67
+ PLAYER_SHADOW_RADIUS_MULT = 1.6
68
+ PLAYER_SHADOW_ALPHA_MULT = 0.8
58
69
 
59
70
  FOG_RINGS = [
60
71
  FogRing(radius_factor=0.536, thickness=2),
@@ -79,7 +90,6 @@ def build_render_assets(cell_size: int) -> RenderAssets:
79
90
  footprint_lifetime_ms=FOOTPRINT_LIFETIME_MS,
80
91
  footprint_min_fade=FOOTPRINT_MIN_FADE,
81
92
  internal_wall_grid_snap=cell_size,
82
- flashlight_bonus_step=FLASHLIGHT_FOG_SCALE_STEP,
83
93
  flashlight_hatch_extra_scale=FLASHLIGHT_HATCH_EXTRA_SCALE,
84
94
  )
85
95
 
@@ -89,17 +99,28 @@ __all__ = [
89
99
  "FALLING_ZOMBIE_COLOR",
90
100
  "FALLING_WHIRLWIND_COLOR",
91
101
  "FALLING_DUST_COLOR",
102
+ "ZOMBIE_BODY_COLOR",
103
+ "ZOMBIE_OUTLINE_COLOR",
104
+ "ZOMBIE_NOSE_COLOR",
105
+ "ANGLE_BINS",
106
+ "HAND_SPREAD_RAD",
92
107
  "HUMANOID_OUTLINE_COLOR",
93
108
  "HUMANOID_OUTLINE_WIDTH",
94
109
  "SURVIVOR_COLOR",
95
110
  "FogRing",
96
111
  "RenderAssets",
97
112
  "FOG_RADIUS_SCALE",
113
+ "FLASHLIGHT_FOG_SCALE_ONE",
114
+ "FLASHLIGHT_FOG_SCALE_TWO",
98
115
  "SHADOW_OVERSAMPLE",
99
116
  "SHADOW_STEPS",
100
117
  "SHADOW_MIN_RATIO",
101
118
  "SHADOW_RADIUS_RATIO",
102
- "FLASHLIGHT_FOG_SCALE_STEP",
119
+ "ENTITY_SHADOW_RADIUS_MULT",
120
+ "ENTITY_SHADOW_ALPHA",
121
+ "ENTITY_SHADOW_EDGE_SOFTNESS",
122
+ "PLAYER_SHADOW_RADIUS_MULT",
123
+ "PLAYER_SHADOW_ALPHA_MULT",
103
124
  "FLASHLIGHT_HATCH_EXTRA_SCALE",
104
125
  "build_render_assets",
105
126
  ]
@@ -47,9 +47,9 @@ def game_over_screen(
47
47
 
48
48
  while True:
49
49
  if not state.overview_created:
50
- level_rect = game_data.layout.outer_rect
51
- level_width = level_rect[2]
52
- level_height = level_rect[3]
50
+ level_rect = game_data.layout.field_rect
51
+ level_width = level_rect.width
52
+ level_height = level_rect.height
53
53
  overview_surface = pygame.Surface((level_width, level_height))
54
54
  footprints_to_draw = state.footprints if footprints_enabled else []
55
55
  draw_level_overview(
@@ -62,7 +62,7 @@ def game_over_screen(
62
62
  footprints_to_draw,
63
63
  fuel=game_data.fuel,
64
64
  flashlights=game_data.flashlights or [],
65
- stage=stage,
65
+ shoes=game_data.shoes or [],
66
66
  buddies=[
67
67
  survivor
68
68
  for survivor in game_data.groups.survivor_group
@@ -21,6 +21,7 @@ from ..gameplay import (
21
21
  nearest_waiting_car,
22
22
  place_flashlights,
23
23
  place_fuel_can,
24
+ place_shoes,
24
25
  process_player_input,
25
26
  setup_player_and_cars,
26
27
  spawn_initial_zombies,
@@ -118,31 +119,53 @@ def gameplay_screen(
118
119
 
119
120
  spawn_survivors(game_data, layout_data)
120
121
 
122
+ occupied_centers: set[tuple[int, int]] = set()
123
+ cell_size = game_data.cell_size
121
124
  if stage.requires_fuel:
122
125
  fuel_spawn_count = stage.fuel_spawn_count
123
126
  fuel_can = place_fuel_can(
124
127
  layout_data["walkable_cells"],
128
+ cell_size,
125
129
  player,
126
130
  cars=game_data.waiting_cars,
131
+ reserved_centers=occupied_centers,
127
132
  count=fuel_spawn_count,
128
133
  )
129
134
  if fuel_can:
130
135
  game_data.fuel = fuel_can
131
136
  game_data.groups.all_sprites.add(fuel_can, layer=1)
137
+ occupied_centers.add(fuel_can.rect.center)
132
138
  flashlight_count = stage.initial_flashlight_count
133
139
  flashlights = place_flashlights(
134
140
  layout_data["walkable_cells"],
141
+ cell_size,
135
142
  player,
136
143
  cars=game_data.waiting_cars,
144
+ reserved_centers=occupied_centers,
137
145
  count=max(0, flashlight_count),
138
146
  )
139
147
  game_data.flashlights = flashlights
140
148
  game_data.groups.all_sprites.add(flashlights, layer=1)
149
+ for flashlight in flashlights:
150
+ occupied_centers.add(flashlight.rect.center)
151
+
152
+ shoes_count = stage.initial_shoes_count
153
+ shoes_list = place_shoes(
154
+ layout_data["walkable_cells"],
155
+ cell_size,
156
+ player,
157
+ cars=game_data.waiting_cars,
158
+ reserved_centers=occupied_centers,
159
+ count=max(0, shoes_count),
160
+ )
161
+ game_data.shoes = shoes_list
162
+ game_data.groups.all_sprites.add(shoes_list, layer=1)
141
163
 
142
164
  spawn_initial_zombies(game_data, player, layout_data, config)
143
165
  update_footprints(game_data, config)
144
166
  while True:
145
167
  dt = clock.tick(fps) / 1000.0
168
+ current_fps = clock.get_fps()
146
169
  if game_data.state.game_over or game_data.state.game_won:
147
170
  if game_data.state.game_won:
148
171
  record_stage_clear(stage.id)
@@ -156,6 +179,7 @@ def gameplay_screen(
156
179
  game_data,
157
180
  config=config,
158
181
  hint_color=None,
182
+ fps=current_fps,
159
183
  present_fn=present,
160
184
  )
161
185
  if game_data.state.game_over_message:
@@ -259,6 +283,7 @@ def gameplay_screen(
259
283
  game_data,
260
284
  config=config,
261
285
  do_flip=not show_pause_overlay,
286
+ fps=current_fps,
262
287
  present_fn=present,
263
288
  )
264
289
  if show_pause_overlay:
@@ -327,7 +352,11 @@ def gameplay_screen(
327
352
  car_ref = game_data.car
328
353
  pad_vector = read_gamepad_move(controller, joystick)
329
354
  player_dx, player_dy, car_dx, car_dy = process_player_input(
330
- keys, player_ref, car_ref, pad_input=pad_vector
355
+ keys,
356
+ player_ref,
357
+ car_ref,
358
+ shoes_count=game_data.state.shoes_count,
359
+ pad_input=pad_vector,
331
360
  )
332
361
  update_entities(
333
362
  game_data,
@@ -407,6 +436,7 @@ def gameplay_screen(
407
436
  config=config,
408
437
  hint_target=hint_target,
409
438
  hint_color=hint_color,
439
+ fps=current_fps,
410
440
  present_fn=present,
411
441
  )
412
442
 
@@ -130,7 +130,7 @@ STAGES: list[Stage] = [
130
130
  available=True,
131
131
  rescue_stage=True,
132
132
  tile_size=40,
133
- wall_algorithm="sparse",
133
+ wall_algorithm="sparse_moore.10%",
134
134
  exterior_spawn_weight=0.7,
135
135
  interior_spawn_weight=0.3,
136
136
  zombie_normal_ratio=0.4,
@@ -148,7 +148,7 @@ STAGES: list[Stage] = [
148
148
  grid_cols=120,
149
149
  grid_rows=7,
150
150
  available=True,
151
- wall_algorithm="sparse",
151
+ wall_algorithm="sparse_moore.10%",
152
152
  exterior_spawn_weight=0.3,
153
153
  interior_spawn_weight=0.7,
154
154
  zombie_normal_ratio=0.5,
@@ -156,6 +156,7 @@ STAGES: list[Stage] = [
156
156
  zombie_aging_duration_frames=ZOMBIE_AGING_DURATION_FRAMES * 2,
157
157
  initial_interior_spawn_rate=0.1,
158
158
  waiting_car_target_count=1,
159
+ initial_shoes_count=1,
159
160
  ),
160
161
  Stage(
161
162
  id="stage12",
@@ -176,6 +177,7 @@ STAGES: list[Stage] = [
176
177
  ],
177
178
  initial_flashlight_count=5,
178
179
  zombie_aging_duration_frames=ZOMBIE_AGING_DURATION_FRAMES * 2,
180
+ initial_shoes_count=1,
179
181
  ),
180
182
  Stage(
181
183
  id="stage13",
@@ -198,32 +200,47 @@ STAGES: list[Stage] = [
198
200
  for y in range(2, DEFAULT_GRID_ROWS - 2, 4)
199
201
  for x in range(2, DEFAULT_GRID_COLS - 2, 4)
200
202
  ],
203
+ initial_shoes_count=1,
201
204
  ),
202
205
  Stage(
203
206
  id="stage14",
204
207
  name_key="stages.stage14.name",
205
208
  description_key="stages.stage14.description",
206
- grid_cols=42,
207
- grid_rows=27,
208
- available=False,
209
+ grid_cols=34,
210
+ grid_rows=20,
211
+ available=True,
209
212
  requires_fuel=True,
210
213
  exterior_spawn_weight=0.2,
211
214
  interior_spawn_weight=0.1,
212
215
  interior_fall_spawn_weight=0.7,
216
+ fall_spawn_floor_ratio=0.05,
217
+ initial_flashlight_count=3,
218
+ zombie_aging_duration_frames=ZOMBIE_AGING_DURATION_FRAMES * 2,
219
+ initial_shoes_count=1,
220
+ ),
221
+ Stage(
222
+ id="stage15",
223
+ name_key="stages.stage15.name",
224
+ description_key="stages.stage15.description",
225
+ available=True,
226
+ buddy_required_count=1,
227
+ grid_cols=64,
228
+ grid_rows=24,
229
+ tile_size=35,
230
+ wall_algorithm="grid_wire",
231
+ requires_fuel=True,
232
+ initial_interior_spawn_rate=0.02,
233
+ exterior_spawn_weight=0.2,
234
+ interior_spawn_weight=0.1,
235
+ interior_fall_spawn_weight=0.7,
236
+ initial_flashlight_count=3,
237
+ zombie_normal_ratio=0.5,
238
+ zombie_wall_follower_ratio=0.5,
213
239
  fall_spawn_zones=[
214
- (4, 10, 3, 3),
215
- (5, 20, 3, 3),
216
- (15, 17, 3, 3),
217
- (22, 16, 3, 3),
218
- (17, 20, 3, 3),
219
- (26, 22, 3, 3),
220
- (31, 17, 3, 3),
221
- (33, 10, 3, 3),
222
- (34, 7, 3, 3),
223
- (35, 13, 3, 3),
240
+ (33, 2, 4, 18),
224
241
  ],
225
- initial_flashlight_count=5,
226
242
  zombie_aging_duration_frames=ZOMBIE_AGING_DURATION_FRAMES * 2,
243
+ initial_shoes_count=1,
227
244
  ),
228
245
  ]
229
246
  DEFAULT_STAGE_ID = "stage1"
@@ -21,7 +21,7 @@ from .entities_constants import (
21
21
  from .gameplay import calculate_car_speed_for_passengers
22
22
  from .level_constants import DEFAULT_TILE_SIZE
23
23
  from .localization import set_language
24
- from .models import GameData, Stage
24
+ from .models import Stage
25
25
  from .render_constants import RenderAssets, build_render_assets
26
26
  from .screen_constants import (
27
27
  DEFAULT_WINDOW_SCALE,
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: zombie-escape
3
- Version: 1.10.1
3
+ Version: 1.12.3
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>
@@ -17,7 +17,7 @@ Classifier: Programming Language :: Python :: Implementation :: CPython
17
17
  Requires-Python: >=3.10
18
18
  Requires-Dist: numpy
19
19
  Requires-Dist: platformdirs
20
- Requires-Dist: pygame
20
+ Requires-Dist: pygame-ce
21
21
  Requires-Dist: python-i18n
22
22
  Requires-Dist: typing-extensions; python_version < '3.11'
23
23
  Provides-Extra: dev
@@ -93,7 +93,7 @@ Open **Settings** from the title to toggle gameplay assists:
93
93
 
94
94
  ### Characters/Items
95
95
 
96
- - **Player:** A blue circle. Controlled with the WASD or arrow keys. When carrying fuel a tiny yellow square appears near the sprite so you can immediately see whether you're ready to drive.
96
+ - **Player:** A blue circle with small hands. Controlled with the WASD or arrow keys. When carrying fuel a tiny yellow square appears near the sprite so you can immediately see whether you're ready to drive.
97
97
  - **Zombie:** A red circle. Will chase the player (or car) once detected.
98
98
  - When out of sight, the zombie's movement mode will randomly switch every certain time (moving horizontally/vertically only, side-to-side movement, random movement, etc.).
99
99
  - Variants with different behavior have been observed.
@@ -108,10 +108,11 @@ Open **Settings** from the title to toggle gameplay assists:
108
108
  - **Flashlight:** Each pickup expands your visible radius by about 20% (grab two to reach the max boost).
109
109
  - **Steel Beam (optional):** A square post with crossed diagonals; same collision as inner walls but with triple durability. Spawns independently of inner walls (may overlap them). If an inner wall covers a beam, the beam appears once the wall is destroyed.
110
110
  - **Fuel Can (Stages 2 & 3):** A yellow jerrycan that only spawns on the fuel-run stages. Pick it up before driving the car; once collected the on-player indicator appears until you refuel the car.
111
- - **Buddy (Stage 3):** A green circle survivor with a blue outline who spawns somewhere in the building and waits.
111
+ - **Buddy (Stage 3):** A green circle survivor with small hands and a blue outline who spawns somewhere in the building and waits.
112
112
  - Zombies only choose to pursue the buddy if they are on-screen; otherwise they ignore them.
113
113
  - If a zombie tags the buddy off-screen, the buddy quietly respawns somewhere else instead of ending the run.
114
114
  - Touch the buddy on foot to make them follow you (at 70% of player speed). Touch them while driving to pick them up.
115
+ - If you bash an inner wall or steel beam, the buddy will drift toward that spot and help chip away at it.
115
116
  - **Survivors (Stage 4):** Pale gray civilians with a blue outline, scattered indoors.
116
117
  - They stand still until you get close, then shuffle toward you at about one-third of player speed.
117
118
  - Zombies can convert them if both are on-screen; the survivor shouts a line and turns instantly.
@@ -155,6 +156,8 @@ zombie-escape
155
156
 
156
157
  This project is licensed under the MIT License - see the [LICENSE.txt](LICENSE.txt) file for details.
157
158
 
159
+ This project depends on pygame-ce (repository: `https://github.com/pygame-community/pygame-ce`), which is licensed under GNU LGPL version 2.1.
160
+
158
161
  The bundled Silkscreen-Regular.ttf font follows the license terms of its original distribution.
159
162
  Please refer to the upstream website for details: https://fonts.google.com/specimen/Silkscreen
160
163
 
@@ -0,0 +1,47 @@
1
+ zombie_escape/__about__.py,sha256=FfoUj1wrayMeZzo5aMcg-nA_pRblR4kTsEVsQGtIL_M,135
2
+ zombie_escape/__init__.py,sha256=YSQnUghet8jxSvaGmKfzHfXXLlnvWh_xk10WGTDO2HM,173
3
+ zombie_escape/colors.py,sha256=ggXcsHQviTWO_ehCn8f3KJVYsY4dx5r5-RtKrTt7qPc,6526
4
+ zombie_escape/config.py,sha256=Ncvsz6HzBknSjecorkm7CrkrzWUIksD30ykLPueanyw,2008
5
+ zombie_escape/entities.py,sha256=HUANWUgIBq_AKzBYyg43QCup9-7C3JL0aOSr9uORt78,61616
6
+ zombie_escape/entities_constants.py,sha256=IPDwYHe35p5EjFUyK6XCAIzm2XzvLo1AGJjQuhyCzTw,3336
7
+ zombie_escape/font_utils.py,sha256=kkjcSlCTG3jO5zf5XUnirpJ-iL_Eg8ahzjZYGijF2JY,1206
8
+ zombie_escape/gameplay_constants.py,sha256=MdchWDi3p1xUOZuDsl5eH9KjazuApjuIYEddHkazEsw,984
9
+ zombie_escape/input_utils.py,sha256=0SHENZi5y-ybSxUX569RHihI_xbQWSI0FQ1q1ZE9U1c,5795
10
+ zombie_escape/level_blueprints.py,sha256=Kv9W9VCzwalheKsNgoiJeflT06xdwVC4IN5I8iaOVMk,14469
11
+ zombie_escape/level_constants.py,sha256=fSrPXfkuKHlv9XqmaRq6aR9UhjpqZK2iJJgMc-TXGXc,281
12
+ zombie_escape/localization.py,sha256=gp26FN_Od4eOeIK2aY0_QZ-9THw6yENh-cGTwglnMxw,6118
13
+ zombie_escape/models.py,sha256=Xlm1V8mZCrjWJDRBH22ol42TrnFKWdjCvHP8krSYBGY,5041
14
+ zombie_escape/progress.py,sha256=WCFc7JeMY6noBjnTIFyHrXQJSM1j8PwyPA7S8ZQwjTE,1713
15
+ zombie_escape/render.py,sha256=lLWRpyxGys2YV_ZvabLIjXxrEjcHBdKTxK0RBUxobIM,54782
16
+ zombie_escape/render_assets.py,sha256=cnsSZGnDxKuXfej1cJpqos0tCdDj8CvmhJ2oXTmHN94,23596
17
+ zombie_escape/render_constants.py,sha256=CEBPvzfV5yVYyZwoBXWh43Qmx4M5ZxpGFwN501_tIXM,3388
18
+ zombie_escape/rng.py,sha256=gMAgpzYoNN1FxRG3aQ9fdXTDNAg48Rqz8YnB1nJ4Fpw,3787
19
+ zombie_escape/screen_constants.py,sha256=MJaTlSWfN4VtN6pMqPQ6LF34XdJm0wqYLuRwa1pQuAU,559
20
+ zombie_escape/stage_constants.py,sha256=d0HbQRI9Tcyqo_nWHrc7QqerucDhEMVCDCzQTBq7ti8,7903
21
+ zombie_escape/world_grid.py,sha256=9ZKaur2fBOXiZEg5WlaAnoeHV6Lda092rJROraMW6zk,4553
22
+ zombie_escape/zombie_escape.py,sha256=LiR2iG0bUPWFq7Fd3zCTy1V1roeXU7xnqDTDW_CZuss,8482
23
+ zombie_escape/assets/fonts/Silkscreen-Regular.ttf,sha256=SVZ0CGAICeJRR-kiWsTzf0EOLfRadQaWxFAnUx-2Xxs,31960
24
+ zombie_escape/assets/fonts/misaki_gothic.ttf,sha256=CWPhHonV-kCaegSKUujqLWI9dkp5mEiPikKRERYRxOE,1171204
25
+ zombie_escape/gameplay/__init__.py,sha256=Q-6ifVss8Adnoo1hh9aUcN1fug6wXFVNkiFTWSHkazk,2387
26
+ zombie_escape/gameplay/ambient.py,sha256=hoCOz6ciyejU0nmJwdLqmVfaoo-01CrVSMRLpFMz93w,1446
27
+ zombie_escape/gameplay/constants.py,sha256=x_-b67fgvejZj00_lE-oJITcntb0Oi2ba2Zu9QyL3-0,1009
28
+ zombie_escape/gameplay/footprints.py,sha256=WRN5wNIudqrQJ3vBljSbtwcdgn154f1jVdor4nEn_Ic,1995
29
+ zombie_escape/gameplay/interactions.py,sha256=D503c0PBmTF4SapBblmKHJwWFr4TDqVZ2merDNek0_k,14407
30
+ zombie_escape/gameplay/layout.py,sha256=5-2lYY81CUPmgPhoCppY4wAFkwnmZ-36ItZGIyigiR4,8786
31
+ zombie_escape/gameplay/movement.py,sha256=6KSfTItQr8Jg5b_o5_3Dw_c9uAmjV9Cy72K87quUL6s,10330
32
+ zombie_escape/gameplay/spawn.py,sha256=pGjPAXpw1zRGeRFMNla_nwRmmMxwGsKZaP1drg3mSqA,31921
33
+ zombie_escape/gameplay/state.py,sha256=pu_Vh41IEC6B95cbXrSp1H1jD5r-mBGLIK7aX6GsL3U,4733
34
+ zombie_escape/gameplay/survivors.py,sha256=BKWTvzMejP3sYpmVZGOLgp53DFGrMBpQ5RJDDueL8g0,12109
35
+ zombie_escape/gameplay/utils.py,sha256=NkAynBpu4VHuRGbEBDbA214WK92yquS6E_i7Y--cBV0,6439
36
+ zombie_escape/locales/ui.en.json,sha256=fHsEThNTKjVs3n1PEvdJLywxfk-HwZrHVAnnBPu5nZI,6505
37
+ zombie_escape/locales/ui.ja.json,sha256=ryOHPyiGxn8vGeDR7Q2ueIVoP-mA6dS1yDMhejjpPiQ,7079
38
+ zombie_escape/screens/__init__.py,sha256=BFLQzXqyrAhmm6b_2wlnK7lMm_n5HvBklVrzrJRwRn0,8387
39
+ zombie_escape/screens/game_over.py,sha256=uxDYm_w7RTd-H2yx-Mm2M8GwqTuOFpkCis-zIEhjdUo,6716
40
+ zombie_escape/screens/gameplay.py,sha256=-tzDcg9F8vNYyJhYk79LLaqNi-3X5BjoSTAc0kJ5V4U,16222
41
+ zombie_escape/screens/settings.py,sha256=qgcnq8k-yeRbqweT9GsIefKWKvjOON_Gs2_SCZChY-8,21739
42
+ zombie_escape/screens/title.py,sha256=1LUEMTmFLmJNL0TKTbnP2oRGWb6zUV28d8sQQo8i3Po,23118
43
+ zombie_escape-1.12.3.dist-info/METADATA,sha256=HvCRIuV6kQGAP2TkI2SYDlkR37iAS1T3R2Tvr05vdMU,10864
44
+ zombie_escape-1.12.3.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
45
+ zombie_escape-1.12.3.dist-info/entry_points.txt,sha256=JprxC-vvkBJgsOp0WJnGBZRJ_ESjjmyS-nsPExeiLHU,49
46
+ zombie_escape-1.12.3.dist-info/licenses/LICENSE.txt,sha256=q-cJYG_K766eXSxQ7txWcWQ6nS2OF6c3HTVLesHbesU,1104
47
+ zombie_escape-1.12.3.dist-info/RECORD,,
@@ -1,47 +0,0 @@
1
- zombie_escape/__about__.py,sha256=9AQ-BExiJBAaloawh18ELrWgb_M2IPVgxQtdCIhI6rs,135
2
- zombie_escape/__init__.py,sha256=YSQnUghet8jxSvaGmKfzHfXXLlnvWh_xk10WGTDO2HM,173
3
- zombie_escape/colors.py,sha256=5MNq3MSBiSA2jNhyWIsgHU2qEo4wV0bTyD3-NDhUrbg,6631
4
- zombie_escape/config.py,sha256=Ncvsz6HzBknSjecorkm7CrkrzWUIksD30ykLPueanyw,2008
5
- zombie_escape/entities.py,sha256=apMwSzkdxUMhOC2Q1l-ZKCD-Dsi_F0abOBXOfN7bXa8,54020
6
- zombie_escape/entities_constants.py,sha256=9DsEF67OW_k4OUzIcuTfMGGEtxaKbvz8w9evv7B7Jm8,3097
7
- zombie_escape/font_utils.py,sha256=kkjcSlCTG3jO5zf5XUnirpJ-iL_Eg8ahzjZYGijF2JY,1206
8
- zombie_escape/gameplay_constants.py,sha256=I5g2xsd4Rck4d5tbWae2bm6Yfwp4ZAgujDLnDMsHxgM,758
9
- zombie_escape/input_utils.py,sha256=0SHENZi5y-ybSxUX569RHihI_xbQWSI0FQ1q1ZE9U1c,5795
10
- zombie_escape/level_blueprints.py,sha256=VZieyhG4kWd1l6u7_Owy2FxhYt63pWpvsmLx5yB8GOs,10609
11
- zombie_escape/level_constants.py,sha256=fSrPXfkuKHlv9XqmaRq6aR9UhjpqZK2iJJgMc-TXGXc,281
12
- zombie_escape/localization.py,sha256=gp26FN_Od4eOeIK2aY0_QZ-9THw6yENh-cGTwglnMxw,6118
13
- zombie_escape/models.py,sha256=JTE9IysbWZUv9YAXaK62pf6Z5BFVhx_YG_8UMQxSiXw,4813
14
- zombie_escape/progress.py,sha256=WCFc7JeMY6noBjnTIFyHrXQJSM1j8PwyPA7S8ZQwjTE,1713
15
- zombie_escape/render.py,sha256=pcVvAQ905ksQAwTlcAqnTx_UBTqCwzAe7A_xoxqcgBE,44064
16
- zombie_escape/render_assets.py,sha256=66lRKQZ9fII6930WeQchIJRFeLLu7J3Cr155svpDrUM,16489
17
- zombie_escape/render_constants.py,sha256=-a5KqakJBggA7PK-BvS0VyIZJ7IDp3gEuf_tJKghXvA,2779
18
- zombie_escape/rng.py,sha256=gMAgpzYoNN1FxRG3aQ9fdXTDNAg48Rqz8YnB1nJ4Fpw,3787
19
- zombie_escape/screen_constants.py,sha256=MJaTlSWfN4VtN6pMqPQ6LF34XdJm0wqYLuRwa1pQuAU,559
20
- zombie_escape/stage_constants.py,sha256=cslgIeGGQlVmZw00bgdG_j8ywA00MFWSTQU3j6kR6Sk,7289
21
- zombie_escape/world_grid.py,sha256=9ZKaur2fBOXiZEg5WlaAnoeHV6Lda092rJROraMW6zk,4553
22
- zombie_escape/zombie_escape.py,sha256=mIrKb3iJed6KPem7fmcnL9yKkWWLIXTX5McoVcVIN8E,8492
23
- zombie_escape/assets/fonts/Silkscreen-Regular.ttf,sha256=SVZ0CGAICeJRR-kiWsTzf0EOLfRadQaWxFAnUx-2Xxs,31960
24
- zombie_escape/assets/fonts/misaki_gothic.ttf,sha256=CWPhHonV-kCaegSKUujqLWI9dkp5mEiPikKRERYRxOE,1171204
25
- zombie_escape/gameplay/__init__.py,sha256=l89oVjZysKEyb18JNWsZmbO-YCOrSaG8Cq2yCPqnntQ,2351
26
- zombie_escape/gameplay/ambient.py,sha256=hoCOz6ciyejU0nmJwdLqmVfaoo-01CrVSMRLpFMz93w,1446
27
- zombie_escape/gameplay/constants.py,sha256=x_-b67fgvejZj00_lE-oJITcntb0Oi2ba2Zu9QyL3-0,1009
28
- zombie_escape/gameplay/footprints.py,sha256=0yY6X3lI7bRL7kXS-ArWBqIipqrQdj8YJB3ryQuLrVE,1795
29
- zombie_escape/gameplay/interactions.py,sha256=WisFHyi9IX-RM2IamZ8R0t51yluqTTnALnPdn8CRCn4,13246
30
- zombie_escape/gameplay/layout.py,sha256=f_BpBULO57hedE6-0-bmWlIKOajkwKndR9LELNmF6Ck,8015
31
- zombie_escape/gameplay/movement.py,sha256=3P7sdDkVdmZcQxK87RXNvnGmMF50u8TSKN2vkqkti7o,9131
32
- zombie_escape/gameplay/spawn.py,sha256=YTr8pvNHmSWVcSSArtIYjixrNua3pcFNtdHnTW6gceg,27969
33
- zombie_escape/gameplay/state.py,sha256=7PzW0wY7rTjnA96jY-yg1YvJ6cjttwiAFipiFl98HGo,4549
34
- zombie_escape/gameplay/survivors.py,sha256=ruQqSiZZslARviUej_RQS3hlAnxA8DQZkE32fPPsHuk,11877
35
- zombie_escape/gameplay/utils.py,sha256=4M9gkLbcE9nhUqLzBPGGF4nPSqZpbEhH4SjUZAwSd64,5805
36
- zombie_escape/locales/ui.en.json,sha256=Q8Tfu7tuA26UGNheDjG35wtlkWHnKWbK7eGeWhgvyQ0,6219
37
- zombie_escape/locales/ui.ja.json,sha256=6zVN-GjeIERah17DjZtxcjwqrpUZwSc-NugyNd8CpTY,6773
38
- zombie_escape/screens/__init__.py,sha256=BFLQzXqyrAhmm6b_2wlnK7lMm_n5HvBklVrzrJRwRn0,8387
39
- zombie_escape/screens/game_over.py,sha256=fU60JWLd4JqbX0qg6qf2ziSLVaix4yCPip7VBQungvs,6693
40
- zombie_escape/screens/gameplay.py,sha256=mE3kjuN4hEpnTZIwHn2csDsGIUuRQKp3p6vSsoNhUzY,15235
41
- zombie_escape/screens/settings.py,sha256=qgcnq8k-yeRbqweT9GsIefKWKvjOON_Gs2_SCZChY-8,21739
42
- zombie_escape/screens/title.py,sha256=1LUEMTmFLmJNL0TKTbnP2oRGWb6zUV28d8sQQo8i3Po,23118
43
- zombie_escape-1.10.1.dist-info/METADATA,sha256=HdN6TkzPi24fbU2dSn5LTrwBIrOEnngB5hgKY-1JlzQ,10571
44
- zombie_escape-1.10.1.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
45
- zombie_escape-1.10.1.dist-info/entry_points.txt,sha256=JprxC-vvkBJgsOp0WJnGBZRJ_ESjjmyS-nsPExeiLHU,49
46
- zombie_escape-1.10.1.dist-info/licenses/LICENSE.txt,sha256=q-cJYG_K766eXSxQ7txWcWQ6nS2OF6c3HTVLesHbesU,1104
47
- zombie_escape-1.10.1.dist-info/RECORD,,