Debug view improvements, warp animation
* Add a visible frame one tile beyond the normal screen in debug mode. * Fix the display of motion paths for mounted traps in debug mode. * Add an animation for the warp trap.
This commit is contained in:
@@ -131,6 +131,30 @@ def test_window_sized_once_for_tallest_level(make_game, tmp_path, monkeypatch):
|
||||
assert g.win_h == 4 * 32 + HUD_H
|
||||
|
||||
|
||||
def test_debug_view_adds_overscan_margin(tmp_path):
|
||||
from game.game import Game, HUD_H
|
||||
from game import settings as S
|
||||
p = tmp_path / "d.yaml"
|
||||
p.write_text("name: t\ntile_size: 32\ndebug: true\nmap: |\n #####\n #P.G#\n #####\n")
|
||||
g = Game([str(p)], str(tmp_path / "noassets"))
|
||||
m = S.DEBUG_VIEW_MARGIN * 32
|
||||
assert m > 0
|
||||
# the level draws shifted into an enlarged play surface...
|
||||
assert g.level.render_offset == (m, m)
|
||||
assert g.world.get_size() == (g.level.width + 2 * m, g.level.height + 2 * m)
|
||||
# ...and the fixed window budgeted the margin so it isn't clipped.
|
||||
assert g.win_h == g.level.height + 2 * m + HUD_H
|
||||
|
||||
|
||||
def test_no_overscan_without_debug(tmp_path):
|
||||
from game.game import Game
|
||||
p = tmp_path / "n.yaml"
|
||||
p.write_text("name: t\ntile_size: 32\nmap: |\n #####\n #P.G#\n #####\n")
|
||||
g = Game([str(p)], str(tmp_path / "noassets"))
|
||||
assert g.level.render_offset == (0, 0)
|
||||
assert g.world.get_size() == (g.level.width, g.level.height)
|
||||
|
||||
|
||||
def test_battery_visual_scales_by_pct(make_level):
|
||||
lvl = make_level(SIMPLE + "battery_pct: 4\n")
|
||||
assert lvl.battery_pct == 4
|
||||
|
||||
Reference in New Issue
Block a user