Commit Graph

69 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 766f2dedee Whoops, too invisible! I fyixed it uwu 2023-06-26 09:08:45 -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 4deace5af5 Fix dialogue-printing for players’ lines 2023-06-24 22:29:56 -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 67e2ca0404 Tweak interact-radius again! 2023-06-24 20:04:52 -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 37eacc43f5 Tweak interaction range 2023-06-24 16:12:16 -05:00
Jaidyn Ann d7c978dc39 Tweak dialogue positioning 2023-06-24 16:12:05 -05:00
Jaidyn Ann b4cde1ea16 Add top-level layer, renders above player 2023-06-24 14:13:01 -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 dafccb17a1 Language-specific map layers 2023-06-23 12:41:47 -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 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 fe9b74a600 Vary dialogue-position by speaker/etc 2023-06-20 22:00:36 -05:00
Jaidyn Ann 9c5892f2f8 Orient dialogue vertically! How exciting! 2023-06-20 20:43:27 -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 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 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