From 02cea1ad28423169a2c3a76621c1df07b18e31ce Mon Sep 17 00:00:00 2001 From: Zeno Rogue Date: Fri, 1 Aug 2025 17:32:18 +0200 Subject: [PATCH] hairsnake bite different power, and some overrides --- rogueviz/ru/classes.cpp | 12 +++++++----- rogueviz/ru/entity.cpp | 2 +- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/rogueviz/ru/classes.cpp b/rogueviz/ru/classes.cpp index 59f71b6f..09dce64b 100644 --- a/rogueviz/ru/classes.cpp +++ b/rogueviz/ru/classes.cpp @@ -579,8 +579,9 @@ struct snake : public enemy { string get_name() override { return "snake"; } string get_help() override { return "A nasty dungeon snake."; } void regenerate() override { enemy::regenerate(); dir = respawn_dir; } - int base_xp() { return 10; } - int max_hp() { return 30; } + int base_xp() override { return 10; } + int max_hp() override { return 30; } + virtual int bite() { return 25; } }; struct disnake : public snake { @@ -589,9 +590,10 @@ struct disnake : public snake { bool is_disarmer() override { return true; } string get_name() override { return "hairsnake"; } string get_help() override { return "A magically animated hair."; } - int base_xp() { return 0; } - int max_hp() { return 1; } - virtual void unact() { destroyed = true; } + int base_xp() override { return 0; } + int max_hp() override { return 1; } + void unact() override { destroyed = true; } + int bite() override { return 5; } }; struct kestrel : public enemy { diff --git a/rogueviz/ru/entity.cpp b/rogueviz/ru/entity.cpp index 7cb11af3..23ea52e5 100644 --- a/rogueviz/ru/entity.cpp +++ b/rogueviz/ru/entity.cpp @@ -471,7 +471,7 @@ void snake::act() { dir = -dir; } if(intersect(get_pixel_bbox(), m.get_pixel_bbox()) && gframeid > invinc_end) { - if(m.reduce_hp(25)) addMessage("The snake bites you!"); + if(m.reduce_hp(bite())) addMessage("The snake bites you!"); } }