crimsonland 0.1.0.dev8__tar.gz → 0.1.0.dev9__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 (137) hide show
  1. {crimsonland-0.1.0.dev8 → crimsonland-0.1.0.dev9}/PKG-INFO +1 -1
  2. {crimsonland-0.1.0.dev8 → crimsonland-0.1.0.dev9}/pyproject.toml +1 -1
  3. {crimsonland-0.1.0.dev8 → crimsonland-0.1.0.dev9}/src/crimson/render/world_renderer.py +12 -16
  4. {crimsonland-0.1.0.dev8 → crimsonland-0.1.0.dev9}/src/crimson/__init__.py +0 -0
  5. {crimsonland-0.1.0.dev8 → crimsonland-0.1.0.dev9}/src/crimson/assets_fetch.py +0 -0
  6. {crimsonland-0.1.0.dev8 → crimsonland-0.1.0.dev9}/src/crimson/atlas.py +0 -0
  7. {crimsonland-0.1.0.dev8 → crimsonland-0.1.0.dev9}/src/crimson/audio_router.py +0 -0
  8. {crimsonland-0.1.0.dev8 → crimsonland-0.1.0.dev9}/src/crimson/bonuses.py +0 -0
  9. {crimsonland-0.1.0.dev8 → crimsonland-0.1.0.dev9}/src/crimson/camera.py +0 -0
  10. {crimsonland-0.1.0.dev8 → crimsonland-0.1.0.dev9}/src/crimson/cli.py +0 -0
  11. {crimsonland-0.1.0.dev8 → crimsonland-0.1.0.dev9}/src/crimson/creatures/__init__.py +0 -0
  12. {crimsonland-0.1.0.dev8 → crimsonland-0.1.0.dev9}/src/crimson/creatures/ai.py +0 -0
  13. {crimsonland-0.1.0.dev8 → crimsonland-0.1.0.dev9}/src/crimson/creatures/anim.py +0 -0
  14. {crimsonland-0.1.0.dev8 → crimsonland-0.1.0.dev9}/src/crimson/creatures/damage.py +0 -0
  15. {crimsonland-0.1.0.dev8 → crimsonland-0.1.0.dev9}/src/crimson/creatures/runtime.py +0 -0
  16. {crimsonland-0.1.0.dev8 → crimsonland-0.1.0.dev9}/src/crimson/creatures/spawn.py +0 -0
  17. {crimsonland-0.1.0.dev8 → crimsonland-0.1.0.dev9}/src/crimson/debug.py +0 -0
  18. {crimsonland-0.1.0.dev8 → crimsonland-0.1.0.dev9}/src/crimson/demo.py +0 -0
  19. {crimsonland-0.1.0.dev8 → crimsonland-0.1.0.dev9}/src/crimson/demo_trial.py +0 -0
  20. {crimsonland-0.1.0.dev8 → crimsonland-0.1.0.dev9}/src/crimson/effects.py +0 -0
  21. {crimsonland-0.1.0.dev8 → crimsonland-0.1.0.dev9}/src/crimson/effects_atlas.py +0 -0
  22. {crimsonland-0.1.0.dev8 → crimsonland-0.1.0.dev9}/src/crimson/frontend/__init__.py +0 -0
  23. {crimsonland-0.1.0.dev8 → crimsonland-0.1.0.dev9}/src/crimson/frontend/assets.py +0 -0
  24. {crimsonland-0.1.0.dev8 → crimsonland-0.1.0.dev9}/src/crimson/frontend/boot.py +0 -0
  25. {crimsonland-0.1.0.dev8 → crimsonland-0.1.0.dev9}/src/crimson/frontend/menu.py +0 -0
  26. {crimsonland-0.1.0.dev8 → crimsonland-0.1.0.dev9}/src/crimson/frontend/panels/__init__.py +0 -0
  27. {crimsonland-0.1.0.dev8 → crimsonland-0.1.0.dev9}/src/crimson/frontend/panels/base.py +0 -0
  28. {crimsonland-0.1.0.dev8 → crimsonland-0.1.0.dev9}/src/crimson/frontend/panels/controls.py +0 -0
  29. {crimsonland-0.1.0.dev8 → crimsonland-0.1.0.dev9}/src/crimson/frontend/panels/mods.py +0 -0
  30. {crimsonland-0.1.0.dev8 → crimsonland-0.1.0.dev9}/src/crimson/frontend/panels/options.py +0 -0
  31. {crimsonland-0.1.0.dev8 → crimsonland-0.1.0.dev9}/src/crimson/frontend/panels/play_game.py +0 -0
  32. {crimsonland-0.1.0.dev8 → crimsonland-0.1.0.dev9}/src/crimson/frontend/panels/stats.py +0 -0
  33. {crimsonland-0.1.0.dev8 → crimsonland-0.1.0.dev9}/src/crimson/frontend/transitions.py +0 -0
  34. {crimsonland-0.1.0.dev8 → crimsonland-0.1.0.dev9}/src/crimson/game.py +0 -0
  35. {crimsonland-0.1.0.dev8 → crimsonland-0.1.0.dev9}/src/crimson/game_modes.py +0 -0
  36. {crimsonland-0.1.0.dev8 → crimsonland-0.1.0.dev9}/src/crimson/game_world.py +0 -0
  37. {crimsonland-0.1.0.dev8 → crimsonland-0.1.0.dev9}/src/crimson/gameplay.py +0 -0
  38. {crimsonland-0.1.0.dev8 → crimsonland-0.1.0.dev9}/src/crimson/input_codes.py +0 -0
  39. {crimsonland-0.1.0.dev8 → crimsonland-0.1.0.dev9}/src/crimson/modes/__init__.py +0 -0
  40. {crimsonland-0.1.0.dev8 → crimsonland-0.1.0.dev9}/src/crimson/modes/base_gameplay_mode.py +0 -0
  41. {crimsonland-0.1.0.dev8 → crimsonland-0.1.0.dev9}/src/crimson/modes/quest_mode.py +0 -0
  42. {crimsonland-0.1.0.dev8 → crimsonland-0.1.0.dev9}/src/crimson/modes/rush_mode.py +0 -0
  43. {crimsonland-0.1.0.dev8 → crimsonland-0.1.0.dev9}/src/crimson/modes/survival_mode.py +0 -0
  44. {crimsonland-0.1.0.dev8 → crimsonland-0.1.0.dev9}/src/crimson/modes/tutorial_mode.py +0 -0
  45. {crimsonland-0.1.0.dev8 → crimsonland-0.1.0.dev9}/src/crimson/modes/typo_mode.py +0 -0
  46. {crimsonland-0.1.0.dev8 → crimsonland-0.1.0.dev9}/src/crimson/paths.py +0 -0
  47. {crimsonland-0.1.0.dev8 → crimsonland-0.1.0.dev9}/src/crimson/perks.py +0 -0
  48. {crimsonland-0.1.0.dev8 → crimsonland-0.1.0.dev9}/src/crimson/persistence/__init__.py +0 -0
  49. {crimsonland-0.1.0.dev8 → crimsonland-0.1.0.dev9}/src/crimson/persistence/highscores.py +0 -0
  50. {crimsonland-0.1.0.dev8 → crimsonland-0.1.0.dev9}/src/crimson/persistence/save_status.py +0 -0
  51. {crimsonland-0.1.0.dev8 → crimsonland-0.1.0.dev9}/src/crimson/player_damage.py +0 -0
  52. {crimsonland-0.1.0.dev8 → crimsonland-0.1.0.dev9}/src/crimson/projectiles.py +0 -0
  53. {crimsonland-0.1.0.dev8 → crimsonland-0.1.0.dev9}/src/crimson/quests/__init__.py +0 -0
  54. {crimsonland-0.1.0.dev8 → crimsonland-0.1.0.dev9}/src/crimson/quests/helpers.py +0 -0
  55. {crimsonland-0.1.0.dev8 → crimsonland-0.1.0.dev9}/src/crimson/quests/registry.py +0 -0
  56. {crimsonland-0.1.0.dev8 → crimsonland-0.1.0.dev9}/src/crimson/quests/results.py +0 -0
  57. {crimsonland-0.1.0.dev8 → crimsonland-0.1.0.dev9}/src/crimson/quests/runtime.py +0 -0
  58. {crimsonland-0.1.0.dev8 → crimsonland-0.1.0.dev9}/src/crimson/quests/tier1.py +0 -0
  59. {crimsonland-0.1.0.dev8 → crimsonland-0.1.0.dev9}/src/crimson/quests/tier2.py +0 -0
  60. {crimsonland-0.1.0.dev8 → crimsonland-0.1.0.dev9}/src/crimson/quests/tier3.py +0 -0
  61. {crimsonland-0.1.0.dev8 → crimsonland-0.1.0.dev9}/src/crimson/quests/tier4.py +0 -0
  62. {crimsonland-0.1.0.dev8 → crimsonland-0.1.0.dev9}/src/crimson/quests/tier5.py +0 -0
  63. {crimsonland-0.1.0.dev8 → crimsonland-0.1.0.dev9}/src/crimson/quests/timeline.py +0 -0
  64. {crimsonland-0.1.0.dev8 → crimsonland-0.1.0.dev9}/src/crimson/quests/types.py +0 -0
  65. {crimsonland-0.1.0.dev8 → crimsonland-0.1.0.dev9}/src/crimson/render/__init__.py +0 -0
  66. {crimsonland-0.1.0.dev8 → crimsonland-0.1.0.dev9}/src/crimson/render/terrain_fx.py +0 -0
  67. {crimsonland-0.1.0.dev8 → crimsonland-0.1.0.dev9}/src/crimson/sim/__init__.py +0 -0
  68. {crimsonland-0.1.0.dev8 → crimsonland-0.1.0.dev9}/src/crimson/sim/world_defs.py +0 -0
  69. {crimsonland-0.1.0.dev8 → crimsonland-0.1.0.dev9}/src/crimson/sim/world_state.py +0 -0
  70. {crimsonland-0.1.0.dev8 → crimsonland-0.1.0.dev9}/src/crimson/terrain_assets.py +0 -0
  71. {crimsonland-0.1.0.dev8 → crimsonland-0.1.0.dev9}/src/crimson/tutorial/__init__.py +0 -0
  72. {crimsonland-0.1.0.dev8 → crimsonland-0.1.0.dev9}/src/crimson/tutorial/timeline.py +0 -0
  73. {crimsonland-0.1.0.dev8 → crimsonland-0.1.0.dev9}/src/crimson/typo/__init__.py +0 -0
  74. {crimsonland-0.1.0.dev8 → crimsonland-0.1.0.dev9}/src/crimson/typo/names.py +0 -0
  75. {crimsonland-0.1.0.dev8 → crimsonland-0.1.0.dev9}/src/crimson/typo/player.py +0 -0
  76. {crimsonland-0.1.0.dev8 → crimsonland-0.1.0.dev9}/src/crimson/typo/spawns.py +0 -0
  77. {crimsonland-0.1.0.dev8 → crimsonland-0.1.0.dev9}/src/crimson/typo/typing.py +0 -0
  78. {crimsonland-0.1.0.dev8 → crimsonland-0.1.0.dev9}/src/crimson/ui/__init__.py +0 -0
  79. {crimsonland-0.1.0.dev8 → crimsonland-0.1.0.dev9}/src/crimson/ui/cursor.py +0 -0
  80. {crimsonland-0.1.0.dev8 → crimsonland-0.1.0.dev9}/src/crimson/ui/demo_trial_overlay.py +0 -0
  81. {crimsonland-0.1.0.dev8 → crimsonland-0.1.0.dev9}/src/crimson/ui/game_over.py +0 -0
  82. {crimsonland-0.1.0.dev8 → crimsonland-0.1.0.dev9}/src/crimson/ui/hud.py +0 -0
  83. {crimsonland-0.1.0.dev8 → crimsonland-0.1.0.dev9}/src/crimson/ui/perk_menu.py +0 -0
  84. {crimsonland-0.1.0.dev8 → crimsonland-0.1.0.dev9}/src/crimson/views/__init__.py +0 -0
  85. {crimsonland-0.1.0.dev8 → crimsonland-0.1.0.dev9}/src/crimson/views/aim_debug.py +0 -0
  86. {crimsonland-0.1.0.dev8 → crimsonland-0.1.0.dev9}/src/crimson/views/animations.py +0 -0
  87. {crimsonland-0.1.0.dev8 → crimsonland-0.1.0.dev9}/src/crimson/views/arsenal_debug.py +0 -0
  88. {crimsonland-0.1.0.dev8 → crimsonland-0.1.0.dev9}/src/crimson/views/audio_bootstrap.py +0 -0
  89. {crimsonland-0.1.0.dev8 → crimsonland-0.1.0.dev9}/src/crimson/views/bonuses.py +0 -0
  90. {crimsonland-0.1.0.dev8 → crimsonland-0.1.0.dev9}/src/crimson/views/camera_debug.py +0 -0
  91. {crimsonland-0.1.0.dev8 → crimsonland-0.1.0.dev9}/src/crimson/views/camera_shake.py +0 -0
  92. {crimsonland-0.1.0.dev8 → crimsonland-0.1.0.dev9}/src/crimson/views/corpse_stamp_debug.py +0 -0
  93. {crimsonland-0.1.0.dev8 → crimsonland-0.1.0.dev9}/src/crimson/views/decals_debug.py +0 -0
  94. {crimsonland-0.1.0.dev8 → crimsonland-0.1.0.dev9}/src/crimson/views/empty.py +0 -0
  95. {crimsonland-0.1.0.dev8 → crimsonland-0.1.0.dev9}/src/crimson/views/fonts.py +0 -0
  96. {crimsonland-0.1.0.dev8 → crimsonland-0.1.0.dev9}/src/crimson/views/game_over.py +0 -0
  97. {crimsonland-0.1.0.dev8 → crimsonland-0.1.0.dev9}/src/crimson/views/ground.py +0 -0
  98. {crimsonland-0.1.0.dev8 → crimsonland-0.1.0.dev9}/src/crimson/views/lighting_debug.py +0 -0
  99. {crimsonland-0.1.0.dev8 → crimsonland-0.1.0.dev9}/src/crimson/views/particles.py +0 -0
  100. {crimsonland-0.1.0.dev8 → crimsonland-0.1.0.dev9}/src/crimson/views/perk_menu_debug.py +0 -0
  101. {crimsonland-0.1.0.dev8 → crimsonland-0.1.0.dev9}/src/crimson/views/perks.py +0 -0
  102. {crimsonland-0.1.0.dev8 → crimsonland-0.1.0.dev9}/src/crimson/views/player.py +0 -0
  103. {crimsonland-0.1.0.dev8 → crimsonland-0.1.0.dev9}/src/crimson/views/player_sprite_debug.py +0 -0
  104. {crimsonland-0.1.0.dev8 → crimsonland-0.1.0.dev9}/src/crimson/views/projectile_fx.py +0 -0
  105. {crimsonland-0.1.0.dev8 → crimsonland-0.1.0.dev9}/src/crimson/views/projectile_render_debug.py +0 -0
  106. {crimsonland-0.1.0.dev8 → crimsonland-0.1.0.dev9}/src/crimson/views/projectiles.py +0 -0
  107. {crimsonland-0.1.0.dev8 → crimsonland-0.1.0.dev9}/src/crimson/views/quest_title_overlay.py +0 -0
  108. {crimsonland-0.1.0.dev8 → crimsonland-0.1.0.dev9}/src/crimson/views/registry.py +0 -0
  109. {crimsonland-0.1.0.dev8 → crimsonland-0.1.0.dev9}/src/crimson/views/rush.py +0 -0
  110. {crimsonland-0.1.0.dev8 → crimsonland-0.1.0.dev9}/src/crimson/views/small_font_debug.py +0 -0
  111. {crimsonland-0.1.0.dev8 → crimsonland-0.1.0.dev9}/src/crimson/views/spawn_plan.py +0 -0
  112. {crimsonland-0.1.0.dev8 → crimsonland-0.1.0.dev9}/src/crimson/views/sprites.py +0 -0
  113. {crimsonland-0.1.0.dev8 → crimsonland-0.1.0.dev9}/src/crimson/views/survival.py +0 -0
  114. {crimsonland-0.1.0.dev8 → crimsonland-0.1.0.dev9}/src/crimson/views/terrain.py +0 -0
  115. {crimsonland-0.1.0.dev8 → crimsonland-0.1.0.dev9}/src/crimson/views/ui.py +0 -0
  116. {crimsonland-0.1.0.dev8 → crimsonland-0.1.0.dev9}/src/crimson/views/wicons.py +0 -0
  117. {crimsonland-0.1.0.dev8 → crimsonland-0.1.0.dev9}/src/crimson/weapon_sfx.py +0 -0
  118. {crimsonland-0.1.0.dev8 → crimsonland-0.1.0.dev9}/src/crimson/weapons.py +0 -0
  119. {crimsonland-0.1.0.dev8 → crimsonland-0.1.0.dev9}/src/grim/__init__.py +0 -0
  120. {crimsonland-0.1.0.dev8 → crimsonland-0.1.0.dev9}/src/grim/app.py +0 -0
  121. {crimsonland-0.1.0.dev8 → crimsonland-0.1.0.dev9}/src/grim/assets.py +0 -0
  122. {crimsonland-0.1.0.dev8 → crimsonland-0.1.0.dev9}/src/grim/audio.py +0 -0
  123. {crimsonland-0.1.0.dev8 → crimsonland-0.1.0.dev9}/src/grim/config.py +0 -0
  124. {crimsonland-0.1.0.dev8 → crimsonland-0.1.0.dev9}/src/grim/console.py +0 -0
  125. {crimsonland-0.1.0.dev8 → crimsonland-0.1.0.dev9}/src/grim/fonts/__init__.py +0 -0
  126. {crimsonland-0.1.0.dev8 → crimsonland-0.1.0.dev9}/src/grim/fonts/grim_mono.py +0 -0
  127. {crimsonland-0.1.0.dev8 → crimsonland-0.1.0.dev9}/src/grim/fonts/small.py +0 -0
  128. {crimsonland-0.1.0.dev8 → crimsonland-0.1.0.dev9}/src/grim/input.py +0 -0
  129. {crimsonland-0.1.0.dev8 → crimsonland-0.1.0.dev9}/src/grim/jaz.py +0 -0
  130. {crimsonland-0.1.0.dev8 → crimsonland-0.1.0.dev9}/src/grim/math.py +0 -0
  131. {crimsonland-0.1.0.dev8 → crimsonland-0.1.0.dev9}/src/grim/music.py +0 -0
  132. {crimsonland-0.1.0.dev8 → crimsonland-0.1.0.dev9}/src/grim/paq.py +0 -0
  133. {crimsonland-0.1.0.dev8 → crimsonland-0.1.0.dev9}/src/grim/rand.py +0 -0
  134. {crimsonland-0.1.0.dev8 → crimsonland-0.1.0.dev9}/src/grim/sfx.py +0 -0
  135. {crimsonland-0.1.0.dev8 → crimsonland-0.1.0.dev9}/src/grim/sfx_map.py +0 -0
  136. {crimsonland-0.1.0.dev8 → crimsonland-0.1.0.dev9}/src/grim/terrain_render.py +0 -0
  137. {crimsonland-0.1.0.dev8 → crimsonland-0.1.0.dev9}/src/grim/view.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: crimsonland
3
- Version: 0.1.0.dev8
3
+ Version: 0.1.0.dev9
4
4
  Requires-Dist: construct>=2.10.70
5
5
  Requires-Dist: pillow>=12.1.0
6
6
  Requires-Dist: platformdirs>=4.5.1
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "crimsonland"
3
- version = "0.1.0.dev8"
3
+ version = "0.1.0.dev9"
4
4
  requires-python = ">=3.13"
5
5
  dependencies = [
6
6
  "construct>=2.10.70",
@@ -939,24 +939,20 @@ class WorldRenderer:
939
939
  # Native: chain reach is derived from the streak scale (`fVar29 * perk_scale * 40.0`).
940
940
  radius = effect_scale * perk_scale * 40.0
941
941
 
942
- # Pick a stable set of targets so the arc visuals don't flicker.
943
- candidates: list[tuple[float, object]] = []
944
- for creature in self.creatures.entries:
945
- if not creature.active or float(creature.hp) <= 0.0:
942
+ # Native iterates via creature_find_in_radius(pos, radius, start_index) in pool order.
943
+ targets: list[object] = []
944
+ for creature in self.creatures.entries[1:]:
945
+ if not creature.active:
946
946
  continue
947
- if float(getattr(creature, "hitbox_size", 0.0)) < 5.0:
947
+ if float(getattr(creature, "hitbox_size", 0.0)) <= 5.0:
948
948
  continue
949
949
  d = math.hypot(float(creature.x) - pos_x, float(creature.y) - pos_y)
950
950
  threshold = float(creature.size) * 0.142857149 + 3.0
951
- if d > radius + threshold:
952
- continue
953
- candidates.append((d, creature))
954
-
955
- candidates.sort(key=lambda item: item[0])
956
- targets = [creature for _d, creature in candidates[:8]]
951
+ if d - radius < threshold:
952
+ targets.append(creature)
957
953
 
958
- inner = 10.0 * perk_scale * scale
959
- outer = 14.0 * perk_scale * scale
954
+ inner_half = 10.0 * perk_scale * scale
955
+ outer_half = 14.0 * perk_scale * scale
960
956
  u = 0.625
961
957
  v0 = 0.0
962
958
  v1 = 0.25
@@ -980,7 +976,7 @@ class WorldRenderer:
980
976
  py = nx
981
977
 
982
978
  # Outer strip (softer).
983
- half = outer * 0.5
979
+ half = outer_half
984
980
  off_x = px * half
985
981
  off_y = py * half
986
982
  x0 = sx - off_x
@@ -992,7 +988,7 @@ class WorldRenderer:
992
988
  x3 = tx - off_x
993
989
  y3 = ty - off_y
994
990
 
995
- outer_tint = self._color_from_rgba((0.5, 0.6, 1.0, base_alpha * 0.5))
991
+ outer_tint = self._color_from_rgba((0.5, 0.6, 1.0, base_alpha))
996
992
  rl.rl_color4ub(outer_tint.r, outer_tint.g, outer_tint.b, outer_tint.a)
997
993
  rl.rl_tex_coord2f(u, v0)
998
994
  rl.rl_vertex2f(x0, y0)
@@ -1004,7 +1000,7 @@ class WorldRenderer:
1004
1000
  rl.rl_vertex2f(x3, y3)
1005
1001
 
1006
1002
  # Inner strip (brighter).
1007
- half = inner * 0.5
1003
+ half = inner_half
1008
1004
  off_x = px * half
1009
1005
  off_y = py * half
1010
1006
  x0 = sx - off_x