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:
@@ -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 };
|
||||
|
||||
@@ -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; });
|
||||
|
||||
Reference in New Issue
Block a user