crimsonland 0.1.0.dev4__py3-none-any.whl → 0.1.0.dev6__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.
@@ -171,6 +171,7 @@ class WorldState:
171
171
  self.creatures.entries,
172
172
  world_size=float(world_size),
173
173
  damage_scale_by_type=damage_scale_by_type,
174
+ detail_preset=int(detail_preset),
174
175
  rng=self.state.rng.rand,
175
176
  runtime_state=self.state,
176
177
  players=self.players,
@@ -34,6 +34,9 @@ UI_TEXT = rl.Color(235, 235, 235, 255)
34
34
  UI_HINT = rl.Color(180, 180, 180, 255)
35
35
  UI_ERROR = rl.Color(240, 80, 80, 255)
36
36
 
37
+ ARSENAL_PLAYER_MOVE_SPEED_MULTIPLIER = 6.0
38
+ ARSENAL_PLAYER_INVULNERABLE_SHIELD_TIMER = 1e-3
39
+
37
40
  DEFAULT_SPAWN_IDS = (
38
41
  SpawnId.ZOMBIE_CONST_GREY_42,
39
42
  SpawnId.ZOMBIE_CONST_GREEN_BRUTE_43,
@@ -122,6 +125,13 @@ class ArsenalDebugView:
122
125
  self._paused = False
123
126
  self._screenshot_requested = False
124
127
 
128
+ def _apply_debug_player_cheats(self) -> None:
129
+ player = self._player
130
+ if player is None:
131
+ return
132
+ player.speed_multiplier = float(ARSENAL_PLAYER_MOVE_SPEED_MULTIPLIER)
133
+ player.shield_timer = float(ARSENAL_PLAYER_INVULNERABLE_SHIELD_TIMER)
134
+
125
135
  def _ui_line_height(self, scale: float = 1.0) -> int:
126
136
  if self._small is not None:
127
137
  return int(self._small.cell_size * scale)
@@ -329,6 +339,7 @@ class ArsenalDebugView:
329
339
  if player is None:
330
340
  return
331
341
 
342
+ self._apply_debug_player_cheats()
332
343
  input_state = self._build_input()
333
344
  self._world.update(dt, inputs=[input_state], game_mode=int(GameMode.SURVIVAL))
334
345
 
crimson/views/player.py CHANGED
@@ -295,6 +295,7 @@ class PlayerSandboxView:
295
295
  self._creatures,
296
296
  world_size=WORLD_SIZE,
297
297
  damage_scale_by_type=self._damage_scale_by_type,
298
+ detail_preset=5,
298
299
  rng=self._state.rng.rand,
299
300
  runtime_state=self._state,
300
301
  )
@@ -366,6 +366,7 @@ class ProjectileFxView:
366
366
  self._creatures,
367
367
  world_size=WORLD_SIZE,
368
368
  damage_scale_by_type=self._damage_scale_by_type,
369
+ detail_preset=5,
369
370
  rng=self._state.rng.rand,
370
371
  runtime_state=self._state,
371
372
  )
@@ -255,12 +255,17 @@ class ProjectileRenderDebugView:
255
255
  if self._world.audio is not None:
256
256
  prev_audio = (int(self._player.shot_seq), bool(self._player.reload_active), float(self._player.reload_timer))
257
257
 
258
+ detail_preset = 5
259
+ if self._world.config is not None:
260
+ detail_preset = int(self._world.config.data.get("detail_preset", 5) or 5)
261
+
258
262
  # Keep the scene stable: targets are static, only projectiles + player advance.
259
263
  hits = self._world.state.projectiles.update(
260
264
  float(dt),
261
265
  self._targets,
262
266
  world_size=WORLD_SIZE,
263
267
  damage_scale_by_type=self._world._damage_scale_by_type,
268
+ detail_preset=int(detail_preset),
264
269
  rng=self._world.state.rng.rand,
265
270
  runtime_state=self._world.state,
266
271
  )
@@ -321,8 +326,10 @@ class ProjectileRenderDebugView:
321
326
  rl.draw_circle_lines(int(sx), int(sy), int(max(1.0, radius)), TARGET_OUTLINE)
322
327
 
323
328
  # Projectiles.
324
- for proj in self._world.state.projectiles.iter_active():
325
- self._world._draw_projectile(proj, scale=scale)
329
+ for proj_index, proj in enumerate(self._world.state.projectiles.entries):
330
+ if not proj.active:
331
+ continue
332
+ self._world._draw_projectile(proj, proj_index=proj_index, scale=scale)
326
333
  for proj in self._world.state.secondary_projectiles.iter_active():
327
334
  self._world._draw_secondary_projectile(proj, scale=scale)
328
335
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: crimsonland
3
- Version: 0.1.0.dev4
3
+ Version: 0.1.0.dev6
4
4
  Requires-Dist: construct>=2.10.70
5
5
  Requires-Dist: pillow>=12.1.0
6
6
  Requires-Dist: platformdirs>=4.5.1
@@ -12,9 +12,9 @@ crimson/creatures/damage.py,sha256=pjKIX32nGDVPnFaWCce0LNZ-UZXZqJpNvwHwq-DCWbE,3
12
12
  crimson/creatures/runtime.py,sha256=1FagJNwGWJuOXZEv4VaWak2IktNskSof82WCYJqui-U,40733
13
13
  crimson/creatures/spawn.py,sha256=ikgtr4sM2KdA2-eyxYdVmobcuZN6aA7xK7ceaIl7RSw,90059
14
14
  crimson/debug.py,sha256=vtfr0_HQHpiB5h57jAsl9cWyYxErSbZQ2uazcL1sJhU,127
15
- crimson/demo.py,sha256=rQG6Wdwy6t8sXZRt52vAmexpmgEyjRXuKs1sNx3wMoI,52500
15
+ crimson/demo.py,sha256=IzBcqiIilzC4PAEH6VwMpfb6y13HfieUOOfL1_kUwe0,52497
16
16
  crimson/demo_trial.py,sha256=BuoKB1DB-cPZ8jBp4x9gmxWF6tvhXMYRqJ9hMYrhxH4,4651
17
- crimson/effects.py,sha256=6-v23jb5-Xs_gu3EezjRJLCGAU8obSUR6b2opdTLTvc,33999
17
+ crimson/effects.py,sha256=tjOOZopqTI7TTOBREfIUfUhjoa3YqIoFJAPj5oJlW9Y,34056
18
18
  crimson/effects_atlas.py,sha256=Ko1O7z-1jGkH_KSeb8RrR2EtAs4V8vfo70ofhqbFak4,2104
19
19
  crimson/frontend/__init__.py,sha256=U4S_2y3zgLZVfMenHRaJFBW8yqh2mUBuI291LGQVOJ8,35
20
20
  crimson/frontend/assets.py,sha256=JHxOID6Ti6bD2LercdRJ7sSSr0nRX3WWeuRPDQwwbsY,1343
@@ -30,8 +30,8 @@ crimson/frontend/panels/stats.py,sha256=jtIRRfffR4u_q6ayLvwCZ6u2YDdFC6Ei_ytQbxY-
30
30
  crimson/frontend/transitions.py,sha256=-sAJUDqNZ943zXlqtvJ6jCg2YH8dSi8k7qK8caAfOKI,883
31
31
  crimson/game.py,sha256=_nPXvZDgu2sqEPk00ww9qx7nD8eQIXlIvU-yKfBuUA8,97537
32
32
  crimson/game_modes.py,sha256=qW7Tt97lSBmGrt0F17Ni5h8vRyngBzyS9XwWM1TFIEI,255
33
- crimson/game_world.py,sha256=088ZGsXdakFz_IDYc9hjQTNHCEy0niuPuCVcspdc0Yw,25961
34
- crimson/gameplay.py,sha256=Wvq5aeEZ-WHxOix7Bt_1V7pPn11mCn7pp9aDbZvmgl8,86812
33
+ crimson/game_world.py,sha256=nfKGcm3LHChPGLHJsurDFAATrHmhRvTmgxcLzUN9m5I,25440
34
+ crimson/gameplay.py,sha256=CtTCxwXWa66RjQS7MKa240J4Mzmel68H0wP0lqOre1s,87546
35
35
  crimson/input_codes.py,sha256=PmSWFZIit8unTBWk3uwifpHWMuk0qMg1ueKX3MGC7D0,5379
36
36
  crimson/modes/__init__.py,sha256=U4S_2y3zgLZVfMenHRaJFBW8yqh2mUBuI291LGQVOJ8,35
37
37
  crimson/modes/base_gameplay_mode.py,sha256=kmXJxkGnCKV5QZL_y5ML7r-p4bw7hMswKseG9XUn2jo,7555
@@ -46,7 +46,7 @@ crimson/persistence/__init__.py,sha256=U4S_2y3zgLZVfMenHRaJFBW8yqh2mUBuI291LGQVO
46
46
  crimson/persistence/highscores.py,sha256=i3eU_Vlu-Bn6kZHDWNMzUoJXvzkqOnPp_UFOeZXclYU,13026
47
47
  crimson/persistence/save_status.py,sha256=s-FZONO6JVYRULewtlxoIwATTy3P7rLy-vsVBfSKPk4,7748
48
48
  crimson/player_damage.py,sha256=cECZO65NJwARoYdtsbvZBM8vQNs_8AVO4xa0omX0pGg,2215
49
- crimson/projectiles.py,sha256=rxgfcJcszSMIHv8Y6pxWqZ2sXogiOk8tAQSruLRM8Gc,40129
49
+ crimson/projectiles.py,sha256=56yocC2XYC69bixrmAgHud4YiSIgezMf2blCQw_YekM,51304
50
50
  crimson/quests/__init__.py,sha256=pKCkH0o1XIGDN9h6yNNaqvWek2CybEZRpejYRooULj8,375
51
51
  crimson/quests/helpers.py,sha256=TeZWhIy2x8Zs9S-vYRBOEZ7pkHNMr5YJ-wi4vYQ2q2M,3625
52
52
  crimson/quests/registry.py,sha256=Cees1QBN0VYTB-XyQtvZ1b4SykB-i4tAnWF6WSV-1pg,1478
@@ -61,10 +61,10 @@ crimson/quests/timeline.py,sha256=leK898fPt3zq52v-O6dK4c-wJBcY-E6v-y57Fk3kJ3Q,40
61
61
  crimson/quests/types.py,sha256=iSrz8VSiRZh1pUDSyq37ir7B28c0HF8DjdF6OJ3FoBo,1772
62
62
  crimson/render/__init__.py,sha256=U4S_2y3zgLZVfMenHRaJFBW8yqh2mUBuI291LGQVOJ8,35
63
63
  crimson/render/terrain_fx.py,sha256=MpBV6ukGwGqDluIO86BQhHRVWUvcFOi8MV-z_TfLsiw,2705
64
- crimson/render/world_renderer.py,sha256=dp6vNsYiH1td6xoxNCgoSC1He-By2sy6RP6rdAp9gSs,73026
64
+ crimson/render/world_renderer.py,sha256=9Gq2uya5duQAv4ievnqbGjJ2kXSAohVUwC36poDAp8M,88852
65
65
  crimson/sim/__init__.py,sha256=U4S_2y3zgLZVfMenHRaJFBW8yqh2mUBuI291LGQVOJ8,35
66
66
  crimson/sim/world_defs.py,sha256=HiMl--THnII3BTpt6mWAd20Xu-SRzCyHcs5pCR8aMbU,2195
67
- crimson/sim/world_state.py,sha256=kCaNJ28J5OGd_Pg-0Log5IsLjRSeKHeteSrIB7eHPhY,15607
67
+ crimson/sim/world_state.py,sha256=h_PPaomj-1KPscPsW3zZ07tVFb3DYPM-FQq3pepMGng,15653
68
68
  crimson/terrain_assets.py,sha256=X19LN3EZSkiz4uRvQfra3NtAXKAA8SMQ-nvOBlrspwE,670
69
69
  crimson/tutorial/__init__.py,sha256=SDDZKRpkQBqyVMU9U03DN242t8lo8ThLuWHmbVrP69k,333
70
70
  crimson/tutorial/timeline.py,sha256=aJDtASfkCSCL1RH4AZX-7xOZml9E4AORTAX6lI6A578,11307
@@ -82,7 +82,7 @@ crimson/ui/perk_menu.py,sha256=FdbwG_B7UyZmPVdvZho0nJNvkAVc0VVHM2TSrY4eTfM,12740
82
82
  crimson/views/__init__.py,sha256=1UWCzBSsgIeOtcKxqM4Vf12JEfPHKfb9KRZgl2TB84Q,1880
83
83
  crimson/views/aim_debug.py,sha256=2ldQ1MJO8AeG0i9x4ZJ3YLyp1X-HY_nJ0E1mY8jFF7Q,10873
84
84
  crimson/views/animations.py,sha256=iI6uTpYS-lbjnpqz_ihETm5q09V6RqjO7YHqaGjovPc,10660
85
- crimson/views/arsenal_debug.py,sha256=BWxjrrVF2dP5aa6GSaihzbNDIIS0OOXNyxgyvwqm4RU,13713
85
+ crimson/views/arsenal_debug.py,sha256=bS_FV6ffknOgSPBcAEZFDJ8CBjWitBziWVanjwXvMfs,14130
86
86
  crimson/views/audio_bootstrap.py,sha256=a2qM91biyI-LlSiIhEceJ8ptYJy-xQ2-b-YjeyXWx7w,1408
87
87
  crimson/views/bonuses.py,sha256=dbGx0IBjMMpqrnuVjBUkscxHq6uErCxAkEAb3uDhFqQ,7454
88
88
  crimson/views/camera_debug.py,sha256=Vi6jANGQpXMK0bpL7hX_QQI_6Rl97ykElaoAuXd06YY,14025
@@ -97,10 +97,10 @@ crimson/views/lighting_debug.py,sha256=T9ce224ZrJtztKTSFUn1G29MY0KYuHVhNdcDU7hlr
97
97
  crimson/views/particles.py,sha256=z3nFPEyItv9aAY_RbByl-jDlwvH22fG30sIMWiaR1aM,10109
98
98
  crimson/views/perk_menu_debug.py,sha256=q4rn3R4tJASlep5jeAXwrBffj5_akJ4a4veq7FIpRiU,17831
99
99
  crimson/views/perks.py,sha256=Uac31DVvHZvjDmMrHpfvkg7LVpXw76xKL1BqwaLAsHU,15052
100
- crimson/views/player.py,sha256=pj1_hFZ7VRUDfZYdUI1b-EpA7FdoBhhKM3Jk4x4s-GI,16540
100
+ crimson/views/player.py,sha256=cMZiFbJK_um8yAFR1pFW7Hdq4_Tl6RZmGmZk1FwAiZE,16569
101
101
  crimson/views/player_sprite_debug.py,sha256=DDU6kl9sfhZ2nVXzBbsPSUKdIutHf5YNs2DrNQPRb2Q,11158
102
- crimson/views/projectile_fx.py,sha256=XIp3Zq82Pz6g-B30qa6-nlKF_dseLNoQNSUPhj9Y4i8,23148
103
- crimson/views/projectile_render_debug.py,sha256=CBSkUbflOSdrauyX1WucZ96CdYVBt_2QmGlx7i-KijM,14048
102
+ crimson/views/projectile_fx.py,sha256=pmMiXm2hJ1XeGf40VtdPk2TbVJX56aATBYTCRekYOdU,23177
103
+ crimson/views/projectile_render_debug.py,sha256=gogOiEGT1P_5qD5rMcuxqPac3-WrPJmbJGvg6USvoxE,14347
104
104
  crimson/views/projectiles.py,sha256=k5zD_9614_-M4qYpnwKUS23fUUrjJS2Wzm7ZalOSKnU,8067
105
105
  crimson/views/quest_title_overlay.py,sha256=EbMvXvYqagLLXmhaM7PC0fhxxhHGYGYI2ytgYiWqAd4,3338
106
106
  crimson/views/registry.py,sha256=Kxc_aQMWOAjI6Uq_SRkb0AmYQxyVmM6rxT3UF74irzs,930
@@ -133,7 +133,7 @@ grim/sfx.py,sha256=cpn2Mmeio7BSDgbStSft-eZchO9Ot2MrK6iXJqxlLqU,7836
133
133
  grim/sfx_map.py,sha256=FM5iBzKkG30Vtu78SRavVNgXMbGK7ZFcQ8i6lgMlzVw,4697
134
134
  grim/terrain_render.py,sha256=EZ7ySYJyTZwXcrJx1mKbY3ewZtPi7Y270XnZgGJyZG8,31509
135
135
  grim/view.py,sha256=oF4pHZehBqOxPjKMU28TDg3qATh_amMIRJp-vMQnpn4,334
136
- crimsonland-0.1.0.dev4.dist-info/WHEEL,sha256=fAguSjoiATBe7TNBkJwOjyL1Tt4wwiaQGtNtjRPNMQA,80
137
- crimsonland-0.1.0.dev4.dist-info/entry_points.txt,sha256=jzzcExxiE9xpt4Iw2nbB1lwTv2Zj4H14WJTIPMkAjoE,77
138
- crimsonland-0.1.0.dev4.dist-info/METADATA,sha256=P31NWI18NJaVSSYq1Vu4rEf0rEuss9oTHazY-SwkVa0,243
139
- crimsonland-0.1.0.dev4.dist-info/RECORD,,
136
+ crimsonland-0.1.0.dev6.dist-info/WHEEL,sha256=fAguSjoiATBe7TNBkJwOjyL1Tt4wwiaQGtNtjRPNMQA,80
137
+ crimsonland-0.1.0.dev6.dist-info/entry_points.txt,sha256=jzzcExxiE9xpt4Iw2nbB1lwTv2Zj4H14WJTIPMkAjoE,77
138
+ crimsonland-0.1.0.dev6.dist-info/METADATA,sha256=xh-O_q3NLT4mfdymSlZ0e6l0g08ACM5Fdd2IMZNqstg,243
139
+ crimsonland-0.1.0.dev6.dist-info/RECORD,,