Prep for the actually making ritual crafting work.

This commit is contained in:
Zed A. Shaw 2025-04-26 02:21:59 -04:00
parent ad1d08ca96
commit 292711f91f
10 changed files with 56 additions and 74 deletions

View file

@ -39,13 +39,13 @@ namespace combat {
return $actions.at(name);
}
RitualAI RitualEngine::start() {
RitualBlanket RitualEngine::start() {
auto start = load_state("initial");
auto goal = load_state("final");
return {"actions", start, goal};
}
void RitualEngine::set_state(RitualAI& ritual, std::string name, bool setting) {
void RitualEngine::set_state(RitualBlanket& ritual, std::string name, bool setting) {
dbc::check($profile.contains(name),
fmt::format("ritual action named {} is not in profile, look in {} config",
name, $config.$src_path));
@ -53,38 +53,38 @@ namespace combat {
ritual.start.set($profile.at(name), setting);
}
void RitualEngine::reset(RitualAI& ritual) {
void RitualEngine::reset(RitualBlanket& ritual) {
ritual.start = ritual.original;
}
void RitualEngine::plan(RitualAI& ritual) {
void RitualEngine::plan(RitualBlanket& ritual) {
ritual.plan = ai::plan_actions($scripts.at(ritual.script), ritual.start, ritual.goal);
}
bool RitualAI::will_do(std::string name) {
bool RitualBlanket::will_do(std::string name) {
if(plan.script.size() == 0) return false;
return plan.script[0].name == name;
}
ai::Action RitualAI::pop() {
ai::Action RitualBlanket::pop() {
auto result = plan.script.front();
plan.script.pop_front();
return result;
}
// BUG: maybe this should be called RitualBlanket instead?
void RitualAI::dump() {
void RitualBlanket::dump() {
ai::dump_script(script, start, plan.script);
}
bool RitualAI::is_combined() {
bool RitualBlanket::is_combined() {
dbc::check(!plan.script.empty(), "you are attempting to check an empty plan");
auto& last = plan.script.back();
return plan.script.size() > 1 && last.name == "combined";
}
RitualAction RitualEngine::finalize(RitualAI& ritual) {
RitualAction RitualEngine::finalize(RitualBlanket& ritual) {
(void)ritual;
RitualAction result;