Prep for the actually making ritual crafting work.
This commit is contained in:
parent
ad1d08ca96
commit
292711f91f
10 changed files with 56 additions and 74 deletions
18
rituals.cpp
18
rituals.cpp
|
@ -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;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue