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