aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorElias Fleckenstein <eliasfleckenstein@web.de>2021-06-14 11:25:23 +0200
committerElias Fleckenstein <eliasfleckenstein@web.de>2021-06-14 11:25:23 +0200
commitbb0b5c95d7b1e89621e7ccd68bd9efccc4bd8134 (patch)
treec869088b7e3ca21e63df1d9d0063a30a11adf20f
parenteaa7e66f3c11ecbe01f28dbc2b32271f4229438b (diff)
downloaddungeon_game-bb0b5c95d7b1e89621e7ccd68bd9efccc4bd8134.tar.xz
Add sword attack key
-rw-r--r--doc/GAMEPLAY.md2
-rw-r--r--plugins/sword/sword.c13
2 files changed, 14 insertions, 1 deletions
diff --git a/doc/GAMEPLAY.md b/doc/GAMEPLAY.md
index 0384206..bdcc1bb 100644
--- a/doc/GAMEPLAY.md
+++ b/doc/GAMEPLAY.md
@@ -5,7 +5,7 @@
You are in a pixely dungeon. There is no exit, the goal of the game is to survive and to collect XP (score). There are monsters and items in the world; you have to collect things and defeat monsters.
## Controls
-You can use WASD to move up / left / down / right. Use Q to quit and Space to shoot fireballs if you have them in your inventory.
+You can use WASD to move up / left / down / right. Use Q to quit and Space to shoot fireballs if you have them in your inventory. Use E to use your sword if you have one in your inventory.
To navigate the inventory, use the arrow keys (up and down) to select an item and then press enter to use it.
## The map
diff --git a/plugins/sword/sword.c b/plugins/sword/sword.c
index 653692f..dc1118d 100644
--- a/plugins/sword/sword.c
+++ b/plugins/sword/sword.c
@@ -55,6 +55,14 @@ static struct item sword = {
.on_create = NULL,
};
+static void handle_e()
+{
+ struct itemstack *stack = inventory_find(&player_inventory, &sword);
+
+ if (stack)
+ use_sword(stack);
+}
+
__attribute__((constructor)) static void init()
{
inventory_add(&player_inventory, (struct itemstack) {
@@ -62,4 +70,9 @@ __attribute__((constructor)) static void init()
.count = 1,
.meta = NULL,
});
+
+ register_input_handler('e', (struct input_handler) {
+ .run_if_dead = false,
+ .callback = &handle_e,
+ });
}