zombie-escape 1.10.0__tar.gz → 1.10.1__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.
- {zombie_escape-1.10.0 → zombie_escape-1.10.1}/PKG-INFO +2 -1
- {zombie_escape-1.10.0 → zombie_escape-1.10.1}/README.md +1 -0
- {zombie_escape-1.10.0 → zombie_escape-1.10.1}/src/zombie_escape/__about__.py +1 -1
- {zombie_escape-1.10.0 → zombie_escape-1.10.1}/src/zombie_escape/colors.py +14 -12
- {zombie_escape-1.10.0 → zombie_escape-1.10.1}/src/zombie_escape/render.py +81 -42
- {zombie_escape-1.10.0 → zombie_escape-1.10.1}/src/zombie_escape/render_constants.py +14 -8
- {zombie_escape-1.10.0 → zombie_escape-1.10.1}/.gitignore +0 -0
- {zombie_escape-1.10.0 → zombie_escape-1.10.1}/LICENSE.txt +0 -0
- {zombie_escape-1.10.0 → zombie_escape-1.10.1}/pyproject.toml +0 -0
- {zombie_escape-1.10.0 → zombie_escape-1.10.1}/src/zombie_escape/__init__.py +0 -0
- {zombie_escape-1.10.0 → zombie_escape-1.10.1}/src/zombie_escape/assets/fonts/Silkscreen-Regular.ttf +0 -0
- {zombie_escape-1.10.0 → zombie_escape-1.10.1}/src/zombie_escape/assets/fonts/misaki_gothic.ttf +0 -0
- {zombie_escape-1.10.0 → zombie_escape-1.10.1}/src/zombie_escape/config.py +0 -0
- {zombie_escape-1.10.0 → zombie_escape-1.10.1}/src/zombie_escape/entities.py +0 -0
- {zombie_escape-1.10.0 → zombie_escape-1.10.1}/src/zombie_escape/entities_constants.py +0 -0
- {zombie_escape-1.10.0 → zombie_escape-1.10.1}/src/zombie_escape/font_utils.py +0 -0
- {zombie_escape-1.10.0 → zombie_escape-1.10.1}/src/zombie_escape/gameplay/__init__.py +0 -0
- {zombie_escape-1.10.0 → zombie_escape-1.10.1}/src/zombie_escape/gameplay/ambient.py +0 -0
- {zombie_escape-1.10.0 → zombie_escape-1.10.1}/src/zombie_escape/gameplay/constants.py +0 -0
- {zombie_escape-1.10.0 → zombie_escape-1.10.1}/src/zombie_escape/gameplay/footprints.py +0 -0
- {zombie_escape-1.10.0 → zombie_escape-1.10.1}/src/zombie_escape/gameplay/interactions.py +0 -0
- {zombie_escape-1.10.0 → zombie_escape-1.10.1}/src/zombie_escape/gameplay/layout.py +0 -0
- {zombie_escape-1.10.0 → zombie_escape-1.10.1}/src/zombie_escape/gameplay/movement.py +0 -0
- {zombie_escape-1.10.0 → zombie_escape-1.10.1}/src/zombie_escape/gameplay/spawn.py +0 -0
- {zombie_escape-1.10.0 → zombie_escape-1.10.1}/src/zombie_escape/gameplay/state.py +0 -0
- {zombie_escape-1.10.0 → zombie_escape-1.10.1}/src/zombie_escape/gameplay/survivors.py +0 -0
- {zombie_escape-1.10.0 → zombie_escape-1.10.1}/src/zombie_escape/gameplay/utils.py +0 -0
- {zombie_escape-1.10.0 → zombie_escape-1.10.1}/src/zombie_escape/gameplay_constants.py +0 -0
- {zombie_escape-1.10.0 → zombie_escape-1.10.1}/src/zombie_escape/input_utils.py +0 -0
- {zombie_escape-1.10.0 → zombie_escape-1.10.1}/src/zombie_escape/level_blueprints.py +0 -0
- {zombie_escape-1.10.0 → zombie_escape-1.10.1}/src/zombie_escape/level_constants.py +0 -0
- {zombie_escape-1.10.0 → zombie_escape-1.10.1}/src/zombie_escape/locales/ui.en.json +0 -0
- {zombie_escape-1.10.0 → zombie_escape-1.10.1}/src/zombie_escape/locales/ui.ja.json +0 -0
- {zombie_escape-1.10.0 → zombie_escape-1.10.1}/src/zombie_escape/localization.py +0 -0
- {zombie_escape-1.10.0 → zombie_escape-1.10.1}/src/zombie_escape/models.py +0 -0
- {zombie_escape-1.10.0 → zombie_escape-1.10.1}/src/zombie_escape/progress.py +0 -0
- {zombie_escape-1.10.0 → zombie_escape-1.10.1}/src/zombie_escape/render_assets.py +0 -0
- {zombie_escape-1.10.0 → zombie_escape-1.10.1}/src/zombie_escape/rng.py +0 -0
- {zombie_escape-1.10.0 → zombie_escape-1.10.1}/src/zombie_escape/screen_constants.py +0 -0
- {zombie_escape-1.10.0 → zombie_escape-1.10.1}/src/zombie_escape/screens/__init__.py +0 -0
- {zombie_escape-1.10.0 → zombie_escape-1.10.1}/src/zombie_escape/screens/game_over.py +0 -0
- {zombie_escape-1.10.0 → zombie_escape-1.10.1}/src/zombie_escape/screens/gameplay.py +0 -0
- {zombie_escape-1.10.0 → zombie_escape-1.10.1}/src/zombie_escape/screens/settings.py +0 -0
- {zombie_escape-1.10.0 → zombie_escape-1.10.1}/src/zombie_escape/screens/title.py +0 -0
- {zombie_escape-1.10.0 → zombie_escape-1.10.1}/src/zombie_escape/stage_constants.py +0 -0
- {zombie_escape-1.10.0 → zombie_escape-1.10.1}/src/zombie_escape/world_grid.py +0 -0
- {zombie_escape-1.10.0 → zombie_escape-1.10.1}/src/zombie_escape/zombie_escape.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: zombie-escape
|
|
3
|
-
Version: 1.10.
|
|
3
|
+
Version: 1.10.1
|
|
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>
|
|
@@ -48,6 +48,7 @@ This game is a simple 2D top-down action game where the player aims to escape by
|
|
|
48
48
|
<img src="https://raw.githubusercontent.com/tos-kamiya/zombie-escape/main/imgs/screenshot1.png" width="400">
|
|
49
49
|
<img src="https://raw.githubusercontent.com/tos-kamiya/zombie-escape/main/imgs/screenshot2.png" width="400">
|
|
50
50
|
<img src="https://raw.githubusercontent.com/tos-kamiya/zombie-escape/main/imgs/screenshot3.png" width="400">
|
|
51
|
+
<img src="https://raw.githubusercontent.com/tos-kamiya/zombie-escape/main/imgs/screenshot4.png" width="400">
|
|
51
52
|
|
|
52
53
|
## Controls
|
|
53
54
|
|
|
@@ -19,6 +19,7 @@ This game is a simple 2D top-down action game where the player aims to escape by
|
|
|
19
19
|
<img src="https://raw.githubusercontent.com/tos-kamiya/zombie-escape/main/imgs/screenshot1.png" width="400">
|
|
20
20
|
<img src="https://raw.githubusercontent.com/tos-kamiya/zombie-escape/main/imgs/screenshot2.png" width="400">
|
|
21
21
|
<img src="https://raw.githubusercontent.com/tos-kamiya/zombie-escape/main/imgs/screenshot3.png" width="400">
|
|
22
|
+
<img src="https://raw.githubusercontent.com/tos-kamiya/zombie-escape/main/imgs/screenshot4.png" width="400">
|
|
22
23
|
|
|
23
24
|
## Controls
|
|
24
25
|
|
|
@@ -72,37 +72,39 @@ _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.
|
|
75
|
+
_DEFAULT_ENVIRONMENT_PALETTE.floor_primary, brightness=0.8, saturation=0.75
|
|
76
76
|
),
|
|
77
77
|
floor_secondary=_adjust_color(
|
|
78
|
-
_DEFAULT_ENVIRONMENT_PALETTE.floor_secondary, brightness=0.
|
|
78
|
+
_DEFAULT_ENVIRONMENT_PALETTE.floor_secondary, brightness=0.8, saturation=0.75
|
|
79
79
|
),
|
|
80
80
|
fall_zone_primary=_adjust_color(
|
|
81
81
|
_DEFAULT_ENVIRONMENT_PALETTE.fall_zone_primary,
|
|
82
|
-
brightness=0.
|
|
83
|
-
saturation=0.
|
|
82
|
+
brightness=0.8,
|
|
83
|
+
saturation=0.75,
|
|
84
84
|
),
|
|
85
85
|
fall_zone_secondary=_adjust_color(
|
|
86
86
|
_DEFAULT_ENVIRONMENT_PALETTE.fall_zone_secondary,
|
|
87
|
-
brightness=0.
|
|
88
|
-
saturation=0.
|
|
87
|
+
brightness=0.8,
|
|
88
|
+
saturation=0.75,
|
|
89
89
|
),
|
|
90
90
|
outside=_adjust_color(
|
|
91
|
-
_DEFAULT_ENVIRONMENT_PALETTE.outside, brightness=0.
|
|
91
|
+
_DEFAULT_ENVIRONMENT_PALETTE.outside, brightness=0.8, saturation=0.75
|
|
92
92
|
),
|
|
93
93
|
inner_wall=_adjust_color(
|
|
94
|
-
_DEFAULT_ENVIRONMENT_PALETTE.inner_wall, brightness=0.
|
|
94
|
+
_DEFAULT_ENVIRONMENT_PALETTE.inner_wall, brightness=0.8, saturation=0.75
|
|
95
95
|
),
|
|
96
96
|
inner_wall_border=_adjust_color(
|
|
97
|
-
_DEFAULT_ENVIRONMENT_PALETTE.inner_wall_border,
|
|
97
|
+
_DEFAULT_ENVIRONMENT_PALETTE.inner_wall_border,
|
|
98
|
+
brightness=0.8,
|
|
99
|
+
saturation=0.75,
|
|
98
100
|
),
|
|
99
101
|
outer_wall=_adjust_color(
|
|
100
|
-
_DEFAULT_ENVIRONMENT_PALETTE.outer_wall, brightness=0.
|
|
102
|
+
_DEFAULT_ENVIRONMENT_PALETTE.outer_wall, brightness=0.8, saturation=0.75
|
|
101
103
|
),
|
|
102
104
|
outer_wall_border=_adjust_color(
|
|
103
105
|
_DEFAULT_ENVIRONMENT_PALETTE.outer_wall_border,
|
|
104
|
-
brightness=0.
|
|
105
|
-
saturation=0.
|
|
106
|
+
brightness=0.8,
|
|
107
|
+
saturation=0.75,
|
|
106
108
|
),
|
|
107
109
|
)
|
|
108
110
|
|
|
@@ -41,6 +41,10 @@ from .render_constants import (
|
|
|
41
41
|
FALLING_DUST_COLOR,
|
|
42
42
|
FALLING_WHIRLWIND_COLOR,
|
|
43
43
|
FALLING_ZOMBIE_COLOR,
|
|
44
|
+
SHADOW_MIN_RATIO,
|
|
45
|
+
SHADOW_OVERSAMPLE,
|
|
46
|
+
SHADOW_RADIUS_RATIO,
|
|
47
|
+
SHADOW_STEPS,
|
|
44
48
|
)
|
|
45
49
|
|
|
46
50
|
_SHADOW_TILE_CACHE: dict[tuple[int, int, float], surface.Surface] = {}
|
|
@@ -57,34 +61,45 @@ def _get_shadow_tile_surface(
|
|
|
57
61
|
if key in _SHADOW_TILE_CACHE:
|
|
58
62
|
return _SHADOW_TILE_CACHE[key]
|
|
59
63
|
size = key[0]
|
|
60
|
-
|
|
64
|
+
oversample = SHADOW_OVERSAMPLE
|
|
65
|
+
render_size = size * oversample
|
|
66
|
+
render_surf = pygame.Surface((render_size, render_size), pygame.SRCALPHA)
|
|
61
67
|
base_alpha = key[1]
|
|
62
68
|
if edge_softness <= 0:
|
|
63
|
-
|
|
69
|
+
render_surf.fill((0, 0, 0, base_alpha))
|
|
70
|
+
if oversample > 1:
|
|
71
|
+
surf = pygame.transform.smoothscale(render_surf, (size, size))
|
|
72
|
+
else:
|
|
73
|
+
surf = render_surf
|
|
64
74
|
_SHADOW_TILE_CACHE[key] = surf
|
|
65
75
|
return surf
|
|
66
76
|
|
|
67
77
|
softness = max(0.0, min(1.0, edge_softness))
|
|
68
|
-
fade_band = max(1, int(
|
|
69
|
-
base_radius = max(1, int(
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
78
|
+
fade_band = max(1, int(render_size * softness))
|
|
79
|
+
base_radius = max(1, int(render_size * SHADOW_RADIUS_RATIO))
|
|
80
|
+
|
|
81
|
+
render_surf.fill((0, 0, 0, 0))
|
|
82
|
+
steps = SHADOW_STEPS
|
|
83
|
+
min_ratio = SHADOW_MIN_RATIO
|
|
84
|
+
for idx in range(steps):
|
|
85
|
+
t = idx / (steps - 1) if steps > 1 else 1.0
|
|
86
|
+
inset = int(fade_band * t)
|
|
87
|
+
rect_size = render_size - inset * 2
|
|
73
88
|
if rect_size <= 0:
|
|
74
|
-
|
|
89
|
+
continue
|
|
75
90
|
radius = max(0, base_radius - inset)
|
|
91
|
+
layer_alpha = int(base_alpha * (min_ratio + (1.0 - min_ratio) * t))
|
|
76
92
|
pygame.draw.rect(
|
|
77
|
-
|
|
93
|
+
render_surf,
|
|
78
94
|
(0, 0, 0, layer_alpha),
|
|
79
95
|
pygame.Rect(inset, inset, rect_size, rect_size),
|
|
80
96
|
border_radius=radius,
|
|
81
97
|
)
|
|
82
98
|
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
draw_layer(fade_band, base_alpha)
|
|
99
|
+
if oversample > 1:
|
|
100
|
+
surf = pygame.transform.smoothscale(render_surf, (size, size))
|
|
101
|
+
else:
|
|
102
|
+
surf = render_surf
|
|
88
103
|
_SHADOW_TILE_CACHE[key] = surf
|
|
89
104
|
return surf
|
|
90
105
|
|
|
@@ -280,19 +295,21 @@ def _get_hatch_pattern(
|
|
|
280
295
|
fog_data: dict[str, Any],
|
|
281
296
|
thickness: int,
|
|
282
297
|
*,
|
|
283
|
-
pixel_scale: int = 1,
|
|
284
298
|
color: tuple[int, int, int, int] | None = None,
|
|
285
299
|
) -> surface.Surface:
|
|
286
|
-
"""Return cached
|
|
300
|
+
"""Return cached dot hatch tile surface (Bayer-ordered, optionally chunky)."""
|
|
287
301
|
cache = fog_data.setdefault("hatch_patterns", {})
|
|
288
|
-
|
|
289
|
-
key = (thickness, pixel_scale, color)
|
|
302
|
+
key = (thickness, color)
|
|
290
303
|
if key in cache:
|
|
291
304
|
return cache[key]
|
|
292
305
|
|
|
293
|
-
spacing =
|
|
306
|
+
spacing = 4
|
|
307
|
+
oversample = 3
|
|
294
308
|
density = max(1, min(thickness, 16))
|
|
295
|
-
|
|
309
|
+
pattern_size = spacing * 8
|
|
310
|
+
hi_spacing = spacing * oversample
|
|
311
|
+
hi_pattern_size = pattern_size * oversample
|
|
312
|
+
pattern = pygame.Surface((hi_pattern_size, hi_pattern_size), pygame.SRCALPHA)
|
|
296
313
|
|
|
297
314
|
# 8x8 Bayer matrix values 0..63 for ordered dithering
|
|
298
315
|
bayer = [
|
|
@@ -306,14 +323,20 @@ def _get_hatch_pattern(
|
|
|
306
323
|
[63, 31, 55, 23, 61, 29, 53, 21],
|
|
307
324
|
]
|
|
308
325
|
threshold = int((density / 16) * 64)
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
326
|
+
dot_radius = max(
|
|
327
|
+
1,
|
|
328
|
+
min(hi_spacing, int(math.ceil((density / 16) * hi_spacing))),
|
|
329
|
+
)
|
|
330
|
+
dot_color = color or (0, 0, 0, 255)
|
|
331
|
+
for grid_y in range(8):
|
|
332
|
+
for grid_x in range(8):
|
|
333
|
+
if bayer[grid_y][grid_x] < threshold:
|
|
334
|
+
cx = grid_x * hi_spacing + hi_spacing // 2
|
|
335
|
+
cy = grid_y * hi_spacing + hi_spacing // 2
|
|
336
|
+
pygame.draw.circle(pattern, dot_color, (cx, cy), dot_radius)
|
|
313
337
|
|
|
314
|
-
if
|
|
315
|
-
|
|
316
|
-
pattern = pygame.transform.scale(pattern, scaled_size)
|
|
338
|
+
if oversample > 1:
|
|
339
|
+
pattern = pygame.transform.smoothscale(pattern, (pattern_size, pattern_size))
|
|
317
340
|
|
|
318
341
|
cache[key] = pattern
|
|
319
342
|
return pattern
|
|
@@ -354,7 +377,6 @@ def _get_fog_overlay_surfaces(
|
|
|
354
377
|
pattern = _get_hatch_pattern(
|
|
355
378
|
fog_data,
|
|
356
379
|
ring.thickness,
|
|
357
|
-
pixel_scale=assets.fog_hatch_pixel_scale,
|
|
358
380
|
color=base_color,
|
|
359
381
|
)
|
|
360
382
|
p_w, p_h = pattern.get_size()
|
|
@@ -390,7 +412,7 @@ def _build_flashlight_fade_surface(
|
|
|
390
412
|
*,
|
|
391
413
|
start_ratio: float = 0.2,
|
|
392
414
|
max_alpha: int = 220,
|
|
393
|
-
outer_extension: int =
|
|
415
|
+
outer_extension: int = 30,
|
|
394
416
|
) -> surface.Surface:
|
|
395
417
|
"""Return a radial gradient so flashlight edges softly darken again."""
|
|
396
418
|
|
|
@@ -597,7 +619,11 @@ def _draw_status_bar(
|
|
|
597
619
|
steel_on = config.get("steel_beams", {}).get("enabled", False)
|
|
598
620
|
if stage:
|
|
599
621
|
# Keep the label compact for the status bar
|
|
600
|
-
|
|
622
|
+
if stage.id.startswith("stage"):
|
|
623
|
+
stage_suffix = stage.id.removeprefix("stage")
|
|
624
|
+
stage_label = f"#{stage_suffix}" if stage_suffix else stage.id
|
|
625
|
+
else:
|
|
626
|
+
stage_label = stage.id
|
|
601
627
|
else:
|
|
602
628
|
stage_label = "#1"
|
|
603
629
|
|
|
@@ -723,6 +749,16 @@ def _draw_play_area(
|
|
|
723
749
|
return xs, ys, xe, ye, outside_cells
|
|
724
750
|
|
|
725
751
|
|
|
752
|
+
def abs_clip(value: float, min_v: float, max_v: float) -> float:
|
|
753
|
+
value_sign = 1.0 if value >= 0.0 else -1.0
|
|
754
|
+
value = abs(value)
|
|
755
|
+
if value < min_v:
|
|
756
|
+
value = min_v
|
|
757
|
+
elif value > max_v:
|
|
758
|
+
value = max_v
|
|
759
|
+
return value_sign * value
|
|
760
|
+
|
|
761
|
+
|
|
726
762
|
def _draw_wall_shadows(
|
|
727
763
|
screen: surface.Surface,
|
|
728
764
|
camera: Camera,
|
|
@@ -732,7 +768,7 @@ def _draw_wall_shadows(
|
|
|
732
768
|
outer_wall_cells: set[tuple[int, int]] | None,
|
|
733
769
|
cell_size: int,
|
|
734
770
|
light_source_pos: tuple[int, int] | None,
|
|
735
|
-
alpha: int =
|
|
771
|
+
alpha: int = 68,
|
|
736
772
|
) -> None:
|
|
737
773
|
if not wall_cells or cell_size <= 0 or light_source_pos is None:
|
|
738
774
|
return
|
|
@@ -754,24 +790,25 @@ def _draw_wall_shadows(
|
|
|
754
790
|
shadow_layer.fill((0, 0, 0, 0))
|
|
755
791
|
screen_rect = screen.get_rect()
|
|
756
792
|
px, py = light_source_pos
|
|
757
|
-
offset = max(2, int(cell_size * 0.3 * (shadow_size / cell_size) * 1.2))
|
|
758
793
|
drew = False
|
|
794
|
+
clip_max = shadow_size * 0.25
|
|
759
795
|
for cell_x, cell_y in inner_wall_cells:
|
|
760
796
|
world_x = cell_x * cell_size
|
|
761
797
|
world_y = cell_y * cell_size
|
|
798
|
+
wall_rect = pygame.Rect(world_x, world_y, cell_size, cell_size)
|
|
799
|
+
wall_screen_rect = camera.apply_rect(wall_rect)
|
|
800
|
+
if not wall_screen_rect.colliderect(screen_rect):
|
|
801
|
+
continue
|
|
762
802
|
center_x = world_x + cell_size / 2
|
|
763
803
|
center_y = world_y + cell_size / 2
|
|
764
|
-
dx = center_x - px
|
|
765
|
-
dy = center_y - py
|
|
766
|
-
|
|
767
|
-
|
|
768
|
-
continue
|
|
769
|
-
nx = dx / dist
|
|
770
|
-
ny = dy / dist
|
|
804
|
+
dx = (center_x - px) * 0.5
|
|
805
|
+
dy = (center_y - py) * 0.5
|
|
806
|
+
dx = int(abs_clip(dx, 0, clip_max))
|
|
807
|
+
dy = int(abs_clip(dy, 0, clip_max))
|
|
771
808
|
shadow_rect = pygame.Rect(0, 0, shadow_size, shadow_size)
|
|
772
809
|
shadow_rect.center = (
|
|
773
|
-
int(center_x +
|
|
774
|
-
int(center_y +
|
|
810
|
+
int(center_x + dx),
|
|
811
|
+
int(center_y + dy),
|
|
775
812
|
)
|
|
776
813
|
shadow_screen_rect = camera.apply_rect(shadow_rect)
|
|
777
814
|
if not shadow_screen_rect.colliderect(screen_rect):
|
|
@@ -1195,7 +1232,9 @@ def draw(
|
|
|
1195
1232
|
outer_wall_cells=game_data.layout.outer_wall_cells,
|
|
1196
1233
|
cell_size=game_data.cell_size,
|
|
1197
1234
|
light_source_pos=(
|
|
1198
|
-
None
|
|
1235
|
+
None
|
|
1236
|
+
if (stage and stage.endurance_stage and state.dawn_ready)
|
|
1237
|
+
else fov_target.rect.center
|
|
1199
1238
|
)
|
|
1200
1239
|
if fov_target
|
|
1201
1240
|
else None,
|
|
@@ -30,7 +30,6 @@ class RenderAssets:
|
|
|
30
30
|
player_radius: int
|
|
31
31
|
fov_radius: int
|
|
32
32
|
fog_radius_scale: float
|
|
33
|
-
fog_hatch_pixel_scale: int
|
|
34
33
|
fog_rings: list[FogRing]
|
|
35
34
|
footprint_radius: int
|
|
36
35
|
footprint_overview_radius: int
|
|
@@ -42,7 +41,6 @@ class RenderAssets:
|
|
|
42
41
|
|
|
43
42
|
|
|
44
43
|
FOG_RADIUS_SCALE = 1.2
|
|
45
|
-
FOG_HATCH_PIXEL_SCALE = 2
|
|
46
44
|
|
|
47
45
|
FLASHLIGHT_FOG_SCALE_STEP = 0.3
|
|
48
46
|
FLASHLIGHT_HATCH_EXTRA_SCALE = 0.12
|
|
@@ -53,12 +51,17 @@ FOOTPRINT_COLOR = (110, 200, 255)
|
|
|
53
51
|
FOOTPRINT_LIFETIME_MS = 135000
|
|
54
52
|
FOOTPRINT_MIN_FADE = 0.3
|
|
55
53
|
|
|
54
|
+
SHADOW_OVERSAMPLE = 2
|
|
55
|
+
SHADOW_STEPS = 10
|
|
56
|
+
SHADOW_MIN_RATIO = 0.0
|
|
57
|
+
SHADOW_RADIUS_RATIO = 0.3
|
|
58
|
+
|
|
56
59
|
FOG_RINGS = [
|
|
57
|
-
FogRing(radius_factor=0.
|
|
58
|
-
FogRing(radius_factor=0.
|
|
59
|
-
FogRing(radius_factor=0.
|
|
60
|
-
FogRing(radius_factor=0.
|
|
61
|
-
FogRing(radius_factor=0.
|
|
60
|
+
FogRing(radius_factor=0.536, thickness=2),
|
|
61
|
+
FogRing(radius_factor=0.645, thickness=3),
|
|
62
|
+
FogRing(radius_factor=0.754, thickness=5),
|
|
63
|
+
FogRing(radius_factor=0.863, thickness=8),
|
|
64
|
+
FogRing(radius_factor=0.972, thickness=12),
|
|
62
65
|
]
|
|
63
66
|
|
|
64
67
|
|
|
@@ -70,7 +73,6 @@ def build_render_assets(cell_size: int) -> RenderAssets:
|
|
|
70
73
|
player_radius=PLAYER_RADIUS,
|
|
71
74
|
fov_radius=FOV_RADIUS,
|
|
72
75
|
fog_radius_scale=FOG_RADIUS_SCALE,
|
|
73
|
-
fog_hatch_pixel_scale=FOG_HATCH_PIXEL_SCALE,
|
|
74
76
|
fog_rings=FOG_RINGS,
|
|
75
77
|
footprint_radius=FOOTPRINT_RADIUS,
|
|
76
78
|
footprint_overview_radius=FOOTPRINT_OVERVIEW_RADIUS,
|
|
@@ -93,6 +95,10 @@ __all__ = [
|
|
|
93
95
|
"FogRing",
|
|
94
96
|
"RenderAssets",
|
|
95
97
|
"FOG_RADIUS_SCALE",
|
|
98
|
+
"SHADOW_OVERSAMPLE",
|
|
99
|
+
"SHADOW_STEPS",
|
|
100
|
+
"SHADOW_MIN_RATIO",
|
|
101
|
+
"SHADOW_RADIUS_RATIO",
|
|
96
102
|
"FLASHLIGHT_FOG_SCALE_STEP",
|
|
97
103
|
"FLASHLIGHT_HATCH_EXTRA_SCALE",
|
|
98
104
|
"build_render_assets",
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{zombie_escape-1.10.0 → zombie_escape-1.10.1}/src/zombie_escape/assets/fonts/Silkscreen-Regular.ttf
RENAMED
|
File without changes
|
{zombie_escape-1.10.0 → zombie_escape-1.10.1}/src/zombie_escape/assets/fonts/misaki_gothic.ttf
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|