1
0
mirror of https://github.com/zenorogue/hyperrogue.git synced 2026-06-01 18:32:12 +00:00

ru:: random potion powers are now restricted to rooms

This commit is contained in:
Zeno Rogue
2026-03-29 16:01:37 +02:00
parent 925cc5ada1
commit 09ed49cf80
6 changed files with 34 additions and 1 deletions
+7
View File
@@ -49,6 +49,7 @@ void save_as(string fname) {
// list current powers
for(auto& p: powers) {
save_via_stater(f, p, "POWER", isize(p.randeffs));
for(auto& r: p.active_in_rooms) println(f, "ACTIVE-IN ", r->id);
for(auto& r: p.randeffs) save_via_stater(f, *r, "EFFECT", true);
}
@@ -212,6 +213,7 @@ void load_from(string fname) {
current_power = nullptr;
try {
current_power = &find_power_by_id(param);
current_power->active_in_rooms.clear();
load_hs(f, *current_power);
current_power->randeffs = {};
}
@@ -219,6 +221,11 @@ void load_from(string fname) {
println(hlog, "warning: unknown power: ", param);
}
}
else if(cap == "ACTIVE-IN") {
auto r = may_find_room_by_id(param);
if(!r) println(hlog, "warning: active in a room that does not exist");
current_power->active_in_rooms.insert(r);
}
else if(cap == "EFFECT") {
if(!all_effects->count(param)) {
println(hlog, "warning: unknown effect: ", param);