Commit Graph

43 Enmetoj

Author SHA1 Message Date
Jaidyn Ann 74d713b76d Convert TMX maps to a parseable list
This allows embedding the map data directly
into the game system, instead of relying on
external files!
This’ll make distribution easier, for sure. =w=
2023-06-26 20:25:02 -05:00
Jaidyn Ann c0d2099ae8 Support for the passage of time 2023-06-26 15:43:01 -05:00
Jaidyn Ann 2a78737d28 Support for taking items
That is, directly moving an entity from the map
into the player’s pocket. Real simple
implementation, it’s just another
interact-function for use with your entities.
2023-06-26 11:12:06 -05:00
Jaidyn Ann 738239f50a Persistent data between maps! How exciting!
I spent a good chunk of time trying to get rid of
the maps’ global variables, instead packing each
map into a :map variable in a “game” hash-table…
but, wow, that took a while. And also made things
a bit more complicated. And also… we could just
do this. From this commit. So much easier! @-@
2023-06-26 09:33:51 -05:00
Jaidyn Ann 766f2dedee Whoops, too invisible! I fyixed it uwu 2023-06-26 09:08:45 -05:00
Jaidyn Ann 67019e9afb Moving between maps: Doorways! ♥ 2023-06-25 14:40:12 -05:00
Jaidyn Ann b61739aa24 Support for events triggered by moving to point
That is, a new “Trigger” Tiled object-type has
been made, which is just a rectangle with an
associated function. If the rectangle is stepped
upon (uwu step on me owo), the function is
triggered. Y’know, standard RPG stuffs.
2023-06-24 22:17:42 -05:00
Jaidyn Ann 1c2a371b38 Add casino attendant and bartender 2023-06-24 20:12:18 -05:00
Jaidyn Ann 90223f4a4c Flexibly edit entity data in dialogue
… including way better ^_^ dialogue :D
face! \o/ editing!
2023-06-24 19:49:47 -05:00
Jaidyn Ann 1a44f2bcac Begin the Casino map!
… including the gambler-dude story arc.
2023-06-24 17:01:12 -05:00
Jaidyn Ann 346d9d3a9d Begin proper dialogue with Sasha! 2023-06-23 22:25:16 -05:00
Jaidyn Ann 4d4b65da9c Split off STATE-LOOP into an engine package (⚙)
… while making generic state-function-creators for
both dialogues and overworld maps. This should
make game-specific code more pretty-like!
2023-06-23 13:29:09 -05:00
Jaidyn Ann e21d16069b Translations of menu-items ^_^ 2023-06-23 12:54:29 -05:00
Jaidyn Ann 495ed87f09 Baseline support for translations! :D
It’s not using gettext or anything, just a simple
system I cooked up for having the translations
hard-coded in, side-by-side.
… it’s easier for me this way when writing, and
it’ll make things easier later on, during
distribution :P
2023-06-23 11:28:34 -05:00
Jaidyn Ann b617e92aba Add `move` directive to dialogues — for moving! :D 2023-06-22 19:20:20 -05:00
Jaidyn Ann c7c0ed6d65 Menu state-function creator: #'📋:make-menu-state 2023-06-22 11:31:49 -05:00
Jaidyn Ann 82254570b1 Orienting dialogue to the left or right of entity 2023-06-20 20:04:13 -05:00
Jaidyn Ann 6467d9bec3 Don’t over-:use packages (hee-hee) 2023-06-19 14:58:12 -05:00
Jaidyn Ann b8faba4c6a When printing dialogue, show chars one-at-a-time
Y’know, RPG-style! ‘Cause we’re cool kids! c:<
… and this is a real RPG! This is legit!
This is legit! … this is legit… =,w,=
It _will_ be legit!
2023-06-19 14:43:46 -05:00
Jaidyn Ann 95442b39db Change entity faces while they’re talking
What a cool effect ^w^ ^o^ ^w^
2023-06-19 08:47:45 -05:00
Jaidyn Ann 218dcdc465 Start basic dialogue state, etc?
This is so bad, I wanna dieee :w:
2023-06-17 22:47:30 -05:00
Jaidyn Ann 6f60c76f4b Reorder overworld.tiled functions; overworld.util
No functional changes.
Re-order functions in overworld.tiled so SBCL
doesn't complain at me.
Split some functions from overworld.tiled into
a new overworld.util package. Also rename the
files in a nice way!
2023-06-17 10:12:23 -05:00
Jaidyn Ann b31446c0f1 Interact with nearby entities 2023-06-16 14:28:41 -05:00
Jaidyn Ann 0f512e80ea Switch MAP to being a hash-table instead of a plist
Having MAP be a hash-table makes it a little more
mutable (friendly for a game of this structure.
Because, y’know, we… I’m too lazy to explain this.
Read the code. Which I’m pretty sure is illegible.
Sorry… =w=""""") :w:
>o< cries cries cires criesd
2023-06-16 12:41:19 -05:00
Jaidyn Ann c801a2ddfb Run INTERACT function mentioned in Tiled map 2023-06-16 12:16:44 -05:00
Jaidyn Ann 32c95c3725 Use state return-values for overworld loop 2023-06-09 20:14:31 -05:00
Jaidyn Ann 8cbd029d6d Add optional “RETURN” pair to menu alists
In case you don't want a menu to return the
function's value when selected — or if you
don't want to have to add a function at all.
2023-06-09 18:22:56 -05:00
Jaidyn Ann 0cfd2deae0 Rename state-loop’s loop functions to “state-functions”
Also document all current state-functions.
2023-06-09 16:17:21 -05:00
Jaidyn Ann 94335468b3 Begin overworld-rendering loop
It draws to the screen, now! Err, well, it has
been able to do that, since my first day on
this project. But until now, there wasn't a
menu leading you there! c:<
2023-06-09 07:07:28 -05:00
Jaidyn Ann 7fe6d2a24d Simplify main function 2023-06-09 06:57:16 -05:00
Jaidyn Ann 21cfca30d2 Create general “state”-system
… by which an individual state's loop can plug
in another superceding loop function. Ex.,
a menu giving way to a sub-menu.
2023-06-08 21:57:51 -05:00
Jaidyn Ann e6e4410a91 Make menu-alist type real alist 2023-06-08 20:31:55 -05:00
Jaidyn Ann f06849b710 Implement menu input-loop; changing selection 2023-06-07 19:02:11 -05:00
Jaidyn Ann e59c192888 Support for selection-animations and a menu-format
Now menu reselection/selection can be animated
easily! It'll look super-cool when I get input
working, I swearrr.
2023-06-06 23:27:30 -05:00
Jaidyn Ann ee8b68033d Start of UI state-loop: Displaying and updating menus 2023-06-06 15:59:31 -05:00
Jaidyn Ann 7142cf4667 Start UI: Line-wrapping string printing 2023-06-04 12:52:18 -05:00
Jaidyn Ann 50bdc5fe5c Split into packages; no functional change 2023-06-04 04:04:34 -05:00
Jaidyn Ann 1f6ebbcfac Basic support for key layouts
Adds a small layer for translating input characters from non-QWERTY
keyboard layouts into their QWERTY counterparts. After all, it's
not the WASD that counts, but the position: ,AOE is just as valid!
2023-06-04 03:35:03 -05:00
Jaidyn Ann 2203f80454 Semantic parsing of input; ncurses for raw input
Yes, ncurses. Look, I caved, okay?!
But in my defense, I couldn't find a simple way to
get raw input in both a framebuffer and an xorg
terminal, so… ncurses can handle the details.
I'm just a dummy, you can't expect me to do
everything!

Well, input is parsed into a somewhat-semantic
format, so at least I did *something* alright.
2023-06-04 02:33:53 -05:00
Jaidyn Ann 25881ca350 Remove source-file copyright header 2023-06-03 22:13:45 -05:00
Jaidyn Ann 6fd48fd2dc Split matrix-loops into separate do-for-cell macro 2023-06-03 22:09:23 -05:00
Jaidyn Ann ce3dcebbb4 On screen refresh, only draw changed characters
The previous method — clearing the screen and
completely redrawing every frame — caused severe
screen-flickering. This is better, calculating the
changed characters per-frame and printing only
those.
2023-06-01 23:18:15 -05:00
Jaidyn Ann 20bc695cdf Simply rename the program! 2023-06-01 00:23:45 -05:00
Renamed from flora-sercha-sauna.lisp (Browse further)