|
|
|
@ -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) |
|
|
|
|