Commit graph

57 commits

Author SHA1 Message Date
eed5c3aff3 render: extract color palette; convert floating labels to enum
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: I29c5feb6099fe321e227e0313282f1546a6a6964
2026-04-08 13:33:14 +00:00
3998fb5259 rogged: move various magic numbers to the settings struct
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: Ie5cadb3d9dca130b57b858905f549f2d6a6a6964
2026-04-08 13:33:14 +00:00
6050083293 render: perform proper null checks for item_get_name()
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: I007a86584f618f990f7a5ed569115aeb6a6a6964
2026-04-08 13:33:14 +00:00
raf
6281c756a8 Merge pull request 'render: (relatively) minor UI overhaul' (#10) from notashelf/push-lnksylnmlvzq into main
Reviewed-on: #10
Reviewed-by: A.M. Rowsell <amr@noreply.localhost>
2026-04-08 12:39:09 +00:00
1a6b71fd03
render: sectioned new HUD layout with portrait; polish action log panel
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: I8a46ddecadd45712c9bef32d061783896a6a6964
2026-04-08 15:38:22 +03:00
ea8306060b
render: revert redundant ternary expression
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: Ica6dc2015e573cc71b1882e69fef351e6a6a6964
2026-04-08 15:38:21 +03:00
22a2da75a9
render: implement dynamic box sizing & line count calculation in render_message
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: Ibb30f7ff6fbff55f253397619e2208c76a6a6964
2026-04-08 15:38:20 +03:00
4f0a85df19
build: 'lock' zig build setup
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: I5a09be217458921978d2a8f69ef72ee86a6a6964
2026-04-08 15:38:19 +03:00
436083f606
render: replace game over screen with end screen; show stats breakdown
The game over logic is now consolidated as there are two possible
scenarios: victory or death. The end-screen rendering has thus been
consolidated to display victory (gold YOU ESCAPED) or death (red GAME OVER)
with a stats box. 

Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: Iecf71ecde4097a41bd074f9123c8c4c76a6a6964
2026-04-08 15:38:18 +03:00
19a9da4aee
stats: track all gameplay statistics during player actions
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: Ie94380572d2256dda45ce7bfcf347c7f6a6a6964
2026-04-08 15:38:17 +03:00
e048e02475
stats: add stat tracking fields to GameState
We can now track kills, items, damage dealt/taken, crits, times hit,
potions used, floors reached, and final score in `GameState` for
end-game display. This is rather basic for now, but I intend to extend
the tracked statistics as we introduce more mechanics. 

Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: I4dcd3e1effd0209268dc56fe4bba4b696a6a6964
2026-04-08 15:38:16 +03:00
0b4f14c73c
build: also link raylib for libcombat
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: I337a654ffc0dbfab19bdbe68ba9bd9026a6a6964
2026-04-08 15:38:15 +03:00
24bb2696e4
nix: add a package alias 'rogged' in flake outputs
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: I2a526b49d0c8b43b529d760a340d8af56a6a6964
2026-04-08 15:34:20 +03:00
172ff53561
nix: apply a source filter to the main package
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: Id6933272a05f17c70fe91719dbd3ac9c6a6a6964
2026-04-08 15:34:19 +03:00
raf
b6aa958413 Merge pull request 'audio: refactor audio asset loading, add crit sound' (#9) from amr/rogged:audio into main
Reviewed-on: #9
Reviewed-by: raf <raf@notashelf.dev>
2026-04-07 17:56:35 +00:00
0410db95bb
audio: remove duplicate sound 2026-04-07 13:54:29 -04:00
a315b14dd1
audio: refactor audio asset loading, add crit sound 2026-04-06 17:51:07 -04:00
23dead8c0d
audio: add item pickup sound 2026-04-06 14:03:39 -04:00
d7a2e81f24 audio: add various sound assets (#7)
Reviewed-on: #7
Co-authored-by: A.M. Rowsell <amr@frzn.dev>
Co-committed-by: A.M. Rowsell <amr@frzn.dev>
2026-04-06 15:12:08 +00:00
raf
1f65d406cd Merge pull request 'docs: add a README' (#6) from notashelf/push-nrzuupynktom into main
Reviewed-on: #6
2026-04-05 21:15:01 +00:00
raf
43867417f9 Merge branch 'main' into notashelf/push-nrzuupynktom 2026-04-05 21:14:44 +00:00
raf
3e1239959a Merge pull request 'docs: add a proper README' (#5) from notashelf/push-omrqsvynvltn into notashelf/push-nrzuupynktom
Reviewed-on: #5
2026-04-05 21:14:16 +00:00
raf
91491b53d8 Merge pull request 'dev: migrate combat system & basic build execution to Zig' (#4) from notashelf/push-nrzuupynktom into main
Reviewed-on: #4
2026-04-05 21:14:11 +00:00
cc2e06fffb
docs: add a proper README
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: Ibd89741c4e6ce51ba139b6dbe8fa0fcf6a6a6964
2026-04-05 22:38:37 +03:00
e14af1f9f0
combat: nicer UI with floating labels, HP bar colors, world shake & audio
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: I9e1720b112a0a5ceab64da56735f4fb36a6a6964
2026-04-05 22:36:38 +03:00
c495dc1d7e
audio: add dodge, block, crit, and proc sounds
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: I860551db6ca06a34785e9129b64d8fc56a6a6964
2026-04-05 22:36:37 +03:00
6c541bcacc
combat: extend FloatingText with label and effect_type
fields

Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: Iad085ea5d8007257d77d606ab69e57a26a6a6964
2026-04-05 22:36:36 +03:00
0830aaa128
meta: look for zig files only in libs/
The core game is, and will remain, C

Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: I568a9d71f55774e195eaa3a75eff80136a6a6964
2026-04-05 22:36:35 +03:00
4a718b9685
combat: buff status effects
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: Ie2f5af13ad3c0392a5e873b15170b0226a6a6964
2026-04-05 22:36:34 +03:00
1875d94e44
combat: tune damage math and enemy scaling
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: I983d5980f8d14ccebc6b681100af8a146a6a6964
2026-04-05 22:36:33 +03:00
ee116ef33f
refactor: split player_move and decompose handle_input
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: Iaac0cda778dd541eb34980f3e902ca726a6a6964
2026-04-05 22:36:32 +03:00
22ab6fc6eb
combat: rewrite in Zig; add basic damage types and weapon archetypes
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: Ic8055a1cf6bdad1aca13673ea171b4b46a6a6964
2026-04-05 20:29:12 +03:00
7af642612b
build: migrate from Make to Zig build system + Just
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: I7585121a5ec8e797adc43ba8e30d4ac86a6a6964
2026-04-05 20:29:11 +03:00
62c030527f
nix: bump nixpkgs
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: I0183e42e1ee52e9e68150b1b42371cf36a6a6964
2026-04-05 00:18:50 +03:00
6fee9b37c9
meta: ignore zig cache files
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: Id4fce83201c4c7d717379c09a33b223b6a6a6964
2026-04-05 00:18:49 +03:00
f637bbf5be
nix: add zig to build inputs
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: I87b657bbfa7ca420ba7786f6dcc1acd46a6a6964
2026-04-05 00:18:36 +03:00
raf
beb905a054 Merge pull request 'ui: experimental message box width auto-sizing' (#2) from amr/rogged:msgfix into main
Reviewed-on: #2
Reviewed-by: raf <raf@notashelf.dev>
2026-04-04 17:37:18 +00:00
raf
e086ca53e8 Merge pull request 'chore: update .editorconfig to match indentation size in .clang-format' (#3) from amr/rogged:editconfig into main
Reviewed-on: #3
2026-04-04 15:41:47 +00:00
f8b63aafac
chore: update .editorconfig to match indentation size in .clang-format 2026-04-04 00:30:29 -04:00
39b7e01119
formatting: cleaned up formatting of this change, added TODO 2026-04-04 00:23:24 -04:00
b49808a216
ui: experimental message box width auto-sizing 2026-04-04 00:01:22 -04:00
a89d3684ef
ui: add floating damage text and shake screen; streamline action log
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: I7a85e496beaf78150c6c1f7ddbb343d96a6a6964
2026-04-03 16:37:13 +03:00
9cbbb9636f
combat: add hit chance & damage variance to make combat more engaging
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: Ia1e0a503dba03e5df7b863b97db962e36a6a6964
2026-04-03 16:37:12 +03:00
fdc0657237
nix: add direnv manifest
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: Idcd1d80b8d1cc8989177415a5f798f076a6a6964
2026-04-03 15:45:17 +03:00
de2ce8ba43
player: add equipment slots and inventory overlay
- Weapon/armor equip slots persist until replaced
- Numbered inventory overlay with I key
- E to equip from inventory, U to use potions"

Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: I474acd676da3b768c1aac24f75f303e86a6a6964
2026-04-03 15:45:16 +03:00
e4926a86fe
player: implement manual pickup and descend confirmation
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: Icd8d0ffd9bdf92f5c8943590886543566a6a6964
2026-04-03 15:45:15 +03:00
db21bdacdd
various: add speed/cooldown & initiative system
- Goblins act every ~2 turns, skeletons ~1.5, orcs ~1.2
- Enemies accumulate cooldown based on speed, act when <= 0
- Player always acts every turn (speed = 100)"

Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: Id822579a0326887d91a80bd4ab27a72d6a6a6964
2026-04-03 15:45:14 +03:00
8f6650919d
chore: setup clang-format for formatting
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: I322b7dd5dcd699247b58fe9f5db7bcd86a6a6964
2026-04-03 15:45:13 +03:00
786fce3814
various: consolidate game state into a GameState struct
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: I9d8998707c02e64cf177a6eeb51e399e6a6a6964
2026-04-03 15:45:12 +03:00
d3798cc99f
map: add is_floor() helper to check walkable tiles
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: I7368f74d1cbcf5913e5d8e9331cfa4326a6a6964
2026-04-03 15:45:11 +03:00