Add a dump function and clean up some data.

master
Zed A. Shaw 3 days ago
parent 5d924c764f
commit 17d30e2ed2
  1. 12
      assets/rituals.json
  2. 18
      rituals.cpp
  3. 3
      rituals.hpp
  4. 2
      tests/rituals.cpp

@ -146,37 +146,37 @@
"damage": 11,
"kind": 1,
"element": 0,
"probability": 1.1
"probability": 1.0
},
"magick_type": {
"damage": 12,
"kind": 2,
"element": 1,
"probability": 1.2
"probability": 1.0
},
"heals_user": {
"damage": 13,
"kind": 0,
"element": 0,
"probability": 1.3
"probability": 1.0
},
"curses_user": {
"damage": 14,
"kind": 0,
"element": 0,
"probability": 1.4
"probability": 0.5
},
"boost_damage_large": {
"damage": 15,
"kind": 0,
"element": 0,
"probability": 1.5
"probability": 1.0
},
"combined": {
"damage": 16,
"kind": 0,
"element": 0,
"probability": 1.6
"probability": 1.0
}
}
}

@ -83,17 +83,23 @@ namespace combat {
if(effects.contains(action.name)) {
auto& effect = effects[action.name];
result.damage += int(effect["damage"]);
result.probability += float(effect["probability"]);
result.probability *= float(effect["probability"]);
result.kind = RitualKind(int(effect["kind"]));
result.element = RitualElement(int(effect["element"]));
fmt::println("ritual has action {} with damage {}, prob: {}, kind: {}, element: {}",
action.name, result.damage,
result.probability, int(result.kind),
int(result.element));
}
}
return result;
}
void RitualAction::dump() {
fmt::print("ritual has damage {}, prob: {}, kind: {}, element: {}; named: ",
damage, probability, int(kind), int(element));
for(auto& name : names) {
fmt::print("{} ", name);
}
fmt::println("\n");
}
}

@ -38,6 +38,9 @@ namespace combat {
int damage = 0;
RitualKind kind{RitualKind::NONE};
RitualElement element{RitualElement::NONE};
std::vector<std::string> names;
void dump();
};
struct RitualEngine {

@ -62,5 +62,5 @@ TEST_CASE("rituals can be finalized for the end result", "[rituals-finalize]") {
plan.dump();
auto action = re.finalize(plan);
(void)action;
action.dump();
}

Loading…
Cancel
Save