Rituals can now be configured to have a kind and an element based on the results.

master
Zed A. Shaw 3 days ago
parent a342c53b02
commit 5d924c764f
  1. 14
      assets/rituals.json
  2. 8
      rituals.cpp
  3. 9
      rituals.hpp

@ -138,30 +138,44 @@
"effects": {
"boost_magick": {
"damage": 10,
"kind": 2,
"element": 1,
"probability": 1.0
},
"pierce_type": {
"damage": 11,
"kind": 1,
"element": 0,
"probability": 1.1
},
"magick_type": {
"damage": 12,
"kind": 2,
"element": 1,
"probability": 1.2
},
"heals_user": {
"damage": 13,
"kind": 0,
"element": 0,
"probability": 1.3
},
"curses_user": {
"damage": 14,
"kind": 0,
"element": 0,
"probability": 1.4
},
"boost_damage_large": {
"damage": 15,
"kind": 0,
"element": 0,
"probability": 1.5
},
"combined": {
"damage": 16,
"kind": 0,
"element": 0,
"probability": 1.6
}
}

@ -84,9 +84,13 @@ namespace combat {
auto& effect = effects[action.name];
result.damage += int(effect["damage"]);
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: {}",
action.name, result.damage, result.probability);
fmt::println("ritual has action {} with damage {}, prob: {}, kind: {}, element: {}",
action.name, result.damage,
result.probability, int(result.kind),
int(result.element));
}
}

@ -26,13 +26,18 @@ namespace combat {
};
enum class RitualElement {
FIRE, LIGHTNING, PHYSICAL
NONE=0, FIRE=1, LIGHTNING=2
};
enum class RitualKind {
NONE=0, PHYSICAL=1, MAGICK=2
};
struct RitualAction {
float probability = 1.0f;
int damage = 0;
RitualElement element{RitualElement::FIRE};
RitualKind kind{RitualKind::NONE};
RitualElement element{RitualElement::NONE};
};
struct RitualEngine {

Loading…
Cancel
Save