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, "damage": 11,
"kind": 1, "kind": 1,
"element": 0, "element": 0,
"probability": 1.1 "probability": 1.0
}, },
"magick_type": { "magick_type": {
"damage": 12, "damage": 12,
"kind": 2, "kind": 2,
"element": 1, "element": 1,
"probability": 1.2 "probability": 1.0
}, },
"heals_user": { "heals_user": {
"damage": 13, "damage": 13,
"kind": 0, "kind": 0,
"element": 0, "element": 0,
"probability": 1.3 "probability": 1.0
}, },
"curses_user": { "curses_user": {
"damage": 14, "damage": 14,
"kind": 0, "kind": 0,
"element": 0, "element": 0,
"probability": 1.4 "probability": 0.5
}, },
"boost_damage_large": { "boost_damage_large": {
"damage": 15, "damage": 15,
"kind": 0, "kind": 0,
"element": 0, "element": 0,
"probability": 1.5 "probability": 1.0
}, },
"combined": { "combined": {
"damage": 16, "damage": 16,
"kind": 0, "kind": 0,
"element": 0, "element": 0,
"probability": 1.6 "probability": 1.0
} }
} }
} }

@ -83,17 +83,23 @@ namespace combat {
if(effects.contains(action.name)) { if(effects.contains(action.name)) {
auto& effect = effects[action.name]; auto& effect = effects[action.name];
result.damage += int(effect["damage"]); result.damage += int(effect["damage"]);
result.probability += float(effect["probability"]); result.probability *= float(effect["probability"]);
result.kind = RitualKind(int(effect["kind"])); result.kind = RitualKind(int(effect["kind"]));
result.element = RitualElement(int(effect["element"])); 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; 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; int damage = 0;
RitualKind kind{RitualKind::NONE}; RitualKind kind{RitualKind::NONE};
RitualElement element{RitualElement::NONE}; RitualElement element{RitualElement::NONE};
std::vector<std::string> names;
void dump();
}; };
struct RitualEngine { struct RitualEngine {

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

Loading…
Cancel
Save