ref: 26be0b8195b59e99cb871aded46d2a2f1c176da2 crates2/src/levels.lisp -rw-r--r-- 25.3 KiB
Fix peeking and turnstiles, add :restart and level

  * Fix peeking in test runner because of the larger levels
  * Make pulled not to pass turnstiles
  * Add :restart input
  * Add level
Add autoplay, level and :back input, fix timers in test mode
Add initial automatic play testing feature

  * 'make test' runs automatic play test. It plays the game
    from start to finish automatically, without any user
    intervention and as fast as possible (without delays)
    and checks that everything looks as it should be.

    This play testing uses the textual ASCII "renderer", so this
    visual representation is tested at the same time and no
    graphical or TUI libraries are needed. Of course any 2D or 3D
    representation is not tested by this test, but as
    the different visual representations should be very
    simple (only show the current situation visually, possibly
    doing linear interpolation for the motion of crates), and all
    the logic and animating is done in inside the game, the game logic,
    animating and playability should be pretty comprehensively tested.
Fix and update 'Block Timer', change frame duration

  * Remove magic number for frame duration and use different value.
  * Use separate visuals for time and crate in 'Block Timer'.
  * Fix initarg for uptime slot in 'Block Timer'.
  * Add new test level.
  * Add textual visuals for some counts (usable as times and counts).
Fix bugs and optimize for debugging in 'make slime'

  * Optimize for debugging in 'make slime'.
  * Fix initarg for 'west' slot of 'Pulled' crate.
  * Add new test level.
  * Fix state handling in 'Pulled' crate.
  * Fix and refactor function 'between-inclusive-p'.
Add initial 'Pulled' crate, change visual representation, etc.

  * Add Helper script for running from Makefile (because of
    the W^X protection used in OpenBSD).

  * Add platform specific notes for OpenBSD.

  * Add initial 'Pulled' crate.

  * Fix 'slime.sh' helper script for OpenBSD.

  * Change visual representation to allow more than
    one visual for a crate. This is needed for example
    in 'Pulled' crates where the "handles" can be
    drawn with much fewer assets by allowing the
    separation of the base crate from the different
    visuals for the handles. This can be used in other
    places too (for example counters and timers can
    have the time from a separate visual).

  * Update all existing visual representations to use
    lists of identifiers (instead of scalar identifiers).

  * Check for NIL in function 'on-which-side-is-other'
Add 'Pass Timer'
Add 'Pass Counter' and delayed attach, fix wall collisions
Use correct test function, fix test level

 * Use correct test function (for string keys) in
   the textual visuals hash table.

 * Fix the fake input in one of the test levels.
Add block counter, remove lamented slot and escape method
Add initial block timer
Continue with turnstiles, refactor level information

 * Add rest of the turnstiles, both the 'one step'
   and the regular ones.

 * Refactor level data and fake input - make
   fake input part of each level definition
   and change the way the level data is defined.

 * Add more initial test levels.
Modify slopes
Implement initial slopes
Purge lamented crates, add 'on-which-side-i-am'
Fix few things
Continue implementing