Test rituals are now configurable in assets/config.json

This commit is contained in:
Zed A. Shaw 2025-04-24 23:06:15 -04:00
parent ebb69dd589
commit 30997cbff5
4 changed files with 33 additions and 19 deletions

View file

@ -26,22 +26,27 @@ void LevelManager::temp_create_player_rituals() {
auto& level = current();
auto player = level.player;
auto& the_belt = level.world->get<combat::RitualBelt>(player);
Config config("assets/config.json");
combat::RitualEngine re("assets/rituals.json");
auto blanket = re.start();
re.set_state(blanket, "has_magick", true);
re.plan(blanket);
auto ritual = re.finalize(blanket);
the_belt.equip(0, ritual);
blanket = re.start();
re.set_state(blanket, "has_spikes", true);
re.plan(blanket);
ritual = re.finalize(blanket);
dbc::check(ritual.kind == combat::RitualKind::PHYSICAL,
fmt::format("second attack is not physical but is {}",
int(ritual.kind)));
the_belt.equip(1, ritual);
int slot = 0;
for(auto& settings : config["test_rituals"]) {
if(settings["active"]) {
auto blanket = re.start();
settings.erase("active");
for(auto& el : settings.items()) {
re.set_state(blanket, el.key(), el.value());
}
re.plan(blanket);
auto ritual = re.finalize(blanket);
the_belt.equip(slot, ritual);
slot++;
}
}
}
inline shared_ptr<DinkyECS::World> clone_load_world(shared_ptr<DinkyECS::World> prev_world)