Commit Graph

36 Enmetoj

Author SHA1 Message Date
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 9ee7597772 Invisible and/or weird interactible entities! =w= 2023-06-25 19:59:34 -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 67e2ca0404 Tweak interact-radius again! 2023-06-24 20:04:52 -05:00
Jaidyn Ann 37eacc43f5 Tweak interaction range 2023-06-24 16:12:16 -05:00
Jaidyn Ann b4cde1ea16 Add top-level layer, renders above player 2023-06-24 14:13:01 -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 dafccb17a1 Language-specific map layers 2023-06-23 12:41:47 -05:00
Jaidyn Ann b617e92aba Add `move` directive to dialogues — for moving! :D 2023-06-22 19:20:20 -05:00
Jaidyn Ann 6eb5596263 “Chunk” entities like map tiles
Now :entities of the map hash-table is no longer a
flat list of entity plists, but a “chunked” alist
of these entity plists. Each alist is dedicated to
a different “chunk” (screenfull) of the map.
This (hypothetically) makes finding on-screen
entities more speedy.
2023-06-21 23:47:54 -05:00
Jaidyn Ann 666c155f95 Legiblify :💬; finish dialogue-printing with ENTER
Like with RPGs!
2023-06-21 20:31:29 -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 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 d664996190 Re-order functions (no functional change) 2023-06-16 20:11:47 -05:00
Jaidyn Ann 3db5cdcdd6 Minor refactoring; add accessors 2023-06-16 20:09:35 -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 c37ce281ea Split Tiled map-parsing into its own subpackage 2023-06-16 09:36:53 -05:00
Jaidyn Ann 11951c28a4 Support for embedding entities in the Tiled map 2023-06-16 09:00:58 -05:00
Jaidyn Ann 9d7961c6ad Parse cl-tiled CELL objects into alists 2023-06-15 18:14:39 -05:00
Jaidyn Ann 53f34b4e17 Non-traversable tiles like walls and such
Yes, now the player must adhere to the laws of
physics! Weird, right? Really wack? Super-weird?
2023-06-15 11:15:46 -05:00
Jaidyn Ann b08577b3db Parse maps with multiple tile-layers 2023-06-14 22:03:55 -05:00
Jaidyn Ann 939a433f32 Better drawing of strange-width NPC/player faces
Now entities (like the player) will be drawn more
evenly, even if their faces are ~~owo~~ WEIRD uwu
2023-06-14 16:36:34 -05:00
Jaidyn Ann f492aa6dba Movement between map-chunks by walking off-screen 2023-06-13 21:16:31 -05:00
Jaidyn Ann 7f77c4b887 Render the map in bits-and-pieces (chunks)
Rather than have several map-files of 72×20 tiles,
now we can have one huge map that's automatically
split into 72×20 chunks.
2023-06-11 17:12:52 -05:00
Jaidyn Ann 987457587b Draw ASCII people instead of mere one-off chars
Isn’t @ worse as a player-character than

[owo]
 ||

?
2023-06-10 15:29:52 -05:00
Jaidyn Ann d7e9d66749 Begin movement and entity support 2023-06-09 23:00:26 -05:00
Jaidyn Ann 32c95c3725 Use state return-values for overworld loop 2023-06-09 20:14:31 -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