From bb0b5c95d7b1e89621e7ccd68bd9efccc4bd8134 Mon Sep 17 00:00:00 2001 From: Elias Fleckenstein Date: Mon, 14 Jun 2021 11:25:23 +0200 Subject: [PATCH] Add sword attack key --- doc/GAMEPLAY.md | 2 +- plugins/sword/sword.c | 13 +++++++++++++ 2 files changed, 14 insertions(+), 1 deletion(-) 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, + }); } -- 2.44.0