Jaidyn Ann
128870ac28
Add intermissions at the end of flashbacks
2023-07-13 22:55:16 -05:00
Jaidyn Ann
4baaa8d04a
*Finally* allow “using” an item @w@
2023-07-12 18:29:49 -05:00
Jaidyn Ann
63515434d0
Slightly tweak the engine thingy
2023-07-11 22:14:02 -05:00
Jaidyn Ann
efaaba9cad
Add generic trigger function for entrances/exits
2023-07-10 21:59:01 -05:00
Jaidyn Ann
63e31ef4f8
Compress maps by _a bunch_!
...
Look at these gains:
672K old-outdoors.tmx.lisp
264K new-outdoors.tmx.lisp
2023-07-07 10:40:43 -05:00
Jaidyn Ann
845c2540a9
Support for numpad-movement, diagonal movement
2023-07-02 09:57:32 -05:00
Jaidyn Ann
eaa42ab2d8
Move 📋 :RENDER-STRING* & 📋 :RENDER-LINE to ✎
...
Also add new function, ✎:RENDER-STRING-VERBATIM
2023-06-30 13:52:50 -05:00
Jaidyn Ann
d0cb621320
Split package definitions into packages.lisp
2023-06-28 10:15:23 -05:00
Jaidyn Ann
b38d4ca436
Fix mis-uses of the 'player symbol
2023-06-28 09:56:25 -05:00
Jaidyn Ann
06e875b271
Create the scaffodling for an inventory menu
...
All it does right now is print your raw list of
items. That’s OK for now! =w=
2023-06-27 21:36:13 -05:00
Jaidyn Ann
6849968528
Abstract the semantic meaning of key from the char
...
This lets us do cool looking stuff, like '⌨:🆗
2023-06-27 11:54:52 -05:00
Jaidyn Ann
51c913a700
Create and ASDF system for the game
...
This might help cool stuff get working, later!
Maybe! :D
2023-06-26 21:49:34 -05:00
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
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