Commit Graph

102 Commits

Author SHA1 Message Date
97ddfb876b
fix weird line break 2023-12-22 00:40:01 -08:00
fbeb313078
ignore vscode config 2023-12-21 23:30:17 -08:00
a359bc5031
duplicating the file -- preparing for major changes.
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.)
2023-12-21 13:09:33 -08:00
cdf517c51c
fix missing self plumbing 2023-12-20 18:16:55 -08:00
9aac99ef30
replace grab_butts with act
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.
2023-12-20 18:14:39 -08:00
5fef5bad00
Squash level_parser into main: parse levels in CSV
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
2023-12-20 14:09:07 -08:00
2bbc4e598c
clean up macOS garbage 2023-12-19 16:26:11 -08:00
62fe5f51d3
val helper function 2023-10-07 23:57:27 -07:00
fd68ef88ec
document The Parser, take an emit function. 2023-10-07 23:53:40 -07:00
fd9866e963
The Parser 2023-10-03 22:41:52 -07:00
a5ce0fd020
update todo list 2023-10-01 14:39:34 -07:00
dae108c231
move spark_particle's mknew call to the right spot 2023-10-01 00:46:32 -07:00
2e46d87a84
refactor spark logic. this loses tokens; may need to revisit 2023-09-30 20:10:42 -07:00
a4590821be
pre-initialize palettes for blip. costs tokens, saves time 2023-09-30 19:45:07 -07:00
cf1e1153a3
lframe increment is now 0x0.0001
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
2023-09-30 19:30:21 -07:00
f3ac1f492c
Dithering-style fade
Higher performance, allows free use of other palettes, frees up compressed space.
2023-09-30 19:15:22 -07:00
fb95085bd9
declare bullet_base before bullets 2023-09-30 15:02:34 -07:00
6f9517cee1
complete conversion to new 2023-09-30 15:01:39 -07:00
8d5f697961
fix incomplete conversions 2023-09-30 14:27:43 -07:00
bad8452f3c
migrate ships to mknew style 2023-09-30 14:24:31 -07:00
f49407baca
move ship typedefs before ship impls 2023-09-30 14:11:36 -07:00
e8ed97be9e
might as well offer a shortcut for that too 2023-09-30 14:07:54 -07:00
f4bcd11bed
preserve extra args to puketh
useful for puking to the clipboard instead of the console
2023-09-30 14:07:23 -07:00
4ae0d05b47
actually fix indentation 2023-09-30 14:03:06 -07:00
a4bf3f616a
fix indentation when puking up a linked list 2023-09-30 14:00:53 -07:00
8fb54ede26
fix list handling, add puketh 2023-09-30 13:59:07 -07:00
cb65a188a8
lua is not go 2023-09-30 13:50:39 -07:00
7c29c329b7
handle backreferences and linked lists in puke 2023-09-30 13:50:07 -07:00
f67c2da37f
remove draw_debug since it doesn't work; add "puke" debug helper
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
2023-09-30 13:32:52 -07:00
da8a5b9589
update readme section 2023-09-30 13:06:34 -07:00
a58421bd19
once_next_frame helper
token and time inefficient for now, but might help reduce bugs later? dunno
2023-09-30 13:03:38 -07:00
e0b8386849
new events is now always valid to append to
also "vore" now resets the eaten list
2023-09-30 12:55:33 -07:00
2b02d2b94b
fix blast projectile for rearranged checks 2023-09-30 12:52:58 -07:00
c90b56b603
fix obvious bugs
not working: ship bounds, "blast" weapon
2023-09-30 02:48:18 -07:00
2e8bba2a0e
oops, tilde only means "not" in "not equals" 2023-09-30 02:18:19 -07:00
803062ef43
one-line if doesn't need end 2023-09-30 02:17:19 -07:00
b61fe936e3
lua ain't go 2023-09-30 02:16:24 -07:00
63c97d1bee
fix handling pships as an arraylist 2023-09-30 02:15:05 -07:00
814149ceec
methodize ship stuff, convert remaining add calls 2023-09-30 02:12:41 -07:00
3b8e86d0e7
drawgame via strip, remove bury_the_dead 2023-09-29 09:55:43 -07:00
1ba869b644
start replacing arrays with intrusive slists
`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.
2023-09-29 01:10:16 -07:00
bd67006e3c
todo -- rectfill 2023-09-23 09:56:55 -07:00
81961ebd6d
label sections of The Plan 2023-09-13 00:24:48 -07:00
770420eeef
add dividers to make it more legible 2023-09-13 00:22:57 -07:00
362f1f06a6
basic roadmap 2023-09-13 00:21:53 -07:00
2f8703c487
another golf thing 2023-09-13 00:00:09 -07:00
7b0c2e0133
more golfing 2023-09-12 23:52:14 -07:00
5591068f1d
split trick on powcols, save more tokens 2023-09-12 23:44:33 -07:00
43e6160dbc
csvify some large tables
Steal the csv and usplit routines from Extreme Tetrom. Not yet using usplit.
2023-09-12 23:35:27 -07:00
44bc904ec2
the actual updated version 2023-09-12 22:49:01 -07:00