1
0
mirror of https://github.com/zenorogue/hyperrogue.git synced 2026-01-27 04:53:35 +00:00

ru:: randeff now has id, and can be found via id

This commit is contained in:
Zeno Rogue
2025-12-07 20:18:53 +01:00
parent f1d316f7f8
commit fc6482ae43
2 changed files with 11 additions and 1 deletions

View File

@@ -17,13 +17,14 @@ struct data {
using powerfun = hr::function<void(data&)>;
struct randeff {
string id;
string name;
string desc;
string effect;
power *which_weapon;
int qty, a, b, c, d;
powerfun act;
randeff (string name, string desc, string effect, powerfun act) : name(name), desc(desc), effect(effect), act(act) {}
randeff (string name, string desc, string effect, powerfun act);
};
enum class mod { burning, freezing, disarming };

View File

@@ -1,5 +1,14 @@
namespace rogue_unlike {
map<string, randeff*> *all_effects;
randeff::randeff (string name, string desc, string effect, powerfun act)
: name(name), desc(desc), effect(effect), act(act) {
id = unspace(name);
if(!all_effects) all_effects = new map<string, randeff*>;
(*all_effects)[id] = this;
}
randeff inc_str("Strength", "Increases your Strength by 50%.", "You feel stronger!", [] (data &d) { m.next.stats[stat::str] += m.current.stats[stat::str] / 3; });
randeff inc_dex("Dexterity", "Increases your Dexterity by 50%.", "You feel faster!", [] (data &d) { m.next.stats[stat::dex] += m.current.stats[stat::dex] / 3; });
randeff inc_con("Toughness", "Increases your Toughness by 50%.", "You feel tougher!", [] (data &d) { m.next.stats[stat::con] += m.current.stats[stat::con] / 3; });