From: Elias Fleckenstein Date: Mon, 14 Jun 2021 09:25:23 +0000 (+0200) Subject: Add sword attack key X-Git-Url: https://git.lizzy.rs/?a=commitdiff_plain;h=bb0b5c95d7b1e89621e7ccd68bd9efccc4bd8134;p=dungeon_game.git Add sword attack key --- 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, + }); }