a batch change from ship to self broke the thing that kept the player on
the screen. also spawn_goodie got missed in the migration to `_ENV` for
looking up stuff by name.
Vacuum Gambit is about to stop being a Tyrian clone. The hybrid of
Mega Man Battle Network and Slay the Spire mechanics lends itself better
to Galaga than Tyrian. updatedshmup.p8 remains an excellent basis for a
Tyrian-like shmup, especially since it has a (demo of a) level loading
engine that reads strings, and maybe I'll even implement something along
those lines someday -- but I'm about to tear it all down to build it up
again, starting with the entire model for levels and progress, followed
shortly by the "energy" system and its interaction with shields.
(long-term plan: shields will auto-recover after every "flotilla", but
health will be more difficult to recover. Player shots will be limited
entirely by ammo and cooldown, replacing the "burst throughput" vs.
"sustain throughput" system created by the generator, although some
enemy firing patterns may recreate that behavior.)
(plan for the "level" system: create Galaga-style flotillas. I think
ship behaviors can reasonably be declared in the 8 bits available in
sprite flags, meaning I can program simple enemies entirely from the
sprite sheet and draw flotillas on the map.)
marshaling through a table is a waste of time, the duplication betweeen
positive and negative thrust vectors is pointless, and pre-multiplying
thrust complicates "stay in a box" goals later on.
commit b91ebeb775
Author: Kistaro Windrider <kistaro@gmail.com>
Date: Wed Dec 20 13:33:00 2023 -0800
fix boss
it works now except for a square being drawn in the shield. good enough
commit ab687f8f6d
Author: Kistaro Windrider <kistaro@gmail.com>
Date: Wed Dec 20 13:23:29 2023 -0800
adjust spawning
now it runs for a little tiny bit!
commit bef95df6a1
Author: Kistaro Windrider <kistaro@gmail.com>
Date: Wed Dec 20 13:18:20 2023 -0800
typo
commit 24435a3c15
Author: Kistaro Windrider <kistaro@gmail.com>
Date: Wed Dec 20 13:18:01 2023 -0800
move guns before ships
commit 0c3a36f1fd
Author: Kistaro Windrider <kistaro@gmail.com>
Date: Wed Dec 20 13:15:34 2023 -0800
defer zap_gun creation until it exists
commit a39c419e5f
Author: Kistaro Windrider <kistaro@gmail.com>
Date: Wed Dec 20 13:13:51 2023 -0800
fix mknew
commit 9ef762268f
Author: Kistaro Windrider <kistaro@gmail.com>
Date: Wed Dec 20 13:04:13 2023 -0800
many assorted syntax errors
commit e50f516b11
Author: Kistaro Windrider <kistaro@gmail.com>
Date: Wed Dec 20 12:00:34 2023 -0800
allow strings when spawning guns
commit f9e28fa0e2
Author: Kistaro Windrider <kistaro@gmail.com>
Date: Wed Dec 20 11:59:20 2023 -0800
fix missing paren
commit 38a054dec1
Author: Kistaro Windrider <kistaro@gmail.com>
Date: Wed Dec 20 11:48:08 2023 -0800
candidate conversion to csv for level format
commit fd391ff3bc
Author: Kistaro Windrider <kistaro@gmail.com>
Date: Wed Dec 20 11:40:11 2023 -0800
use _ENV to get rid of level_events and spawns
commit fbd9f97429
Author: Kistaro Windrider <kistaro@gmail.com>
Date: Wed Dec 20 11:33:59 2023 -0800
maybe fix the level parser
commit 2a61e8b5d6
Author: Kistaro Windrider <kistaro@gmail.com>
Date: Sun Oct 15 21:09:12 2023 -0700
partial conversion to CSV-based levels, does not run yet
commit 4ccbe1dc35
Author: Kistaro Windrider <kistaro@gmail.com>
Date: Fri Oct 13 01:02:43 2023 -0700
okay honestly this all can and should just be CSVs
commit b536d2c987
Author: Kistaro Windrider <kistaro@gmail.com>
Date: Sun Oct 8 00:41:24 2023 -0700
base for representing a level as a string
avoids time rollover! not doing this for `distance` because I don't intend any level script to exceed five minutes, but freeze time could be much longer
linked lists don't have a measurable length. will use a persistent intangible for debug dumps in the future. `puke` however can be used at the CLI to dump a table. I need to write a `listpuke` variant too
`add` costs ten cycles. `push_back` isn't actually any better, but bury_the_dead can get pretty bad, especially for large arrays (like the bullets collections). also replacing the kill loop structure with the `strip` call removes a massive amount of code repetition that's costing me a lot of tokens. I think the final result is _probably_ actually slower because of function call overhead per iteration except when there are collisions on many frames; hopefully the headroom bought by the bucket collider is enough because I'm definitely going to need the tokens.