RitualBelt now has an API.

This commit is contained in:
Zed A. Shaw 2025-04-24 03:32:20 -04:00
parent 31b35b43eb
commit a70f11646a
3 changed files with 30 additions and 3 deletions

View file

@ -102,4 +102,20 @@ namespace combat {
fmt::println("\n"); fmt::println("\n");
} }
RitualAction& RitualBelt::get(int index) {
return equipped.at(index);
}
void RitualBelt::equip(int index, RitualAction& action) {
equipped.insert_or_assign(index, action);
}
bool RitualBelt::has(int index) {
return equipped.contains(index);
}
void RitualBelt::unequip(int index) {
equipped.erase(index);
}
} }

View file

@ -62,6 +62,11 @@ namespace combat {
}; };
struct RitualBelt { struct RitualBelt {
std::vector<RitualAction> equipped; std::unordered_map<int, RitualAction> equipped;
RitualAction& get(int index);
void equip(int index, RitualAction& action);
bool has(int index);
void unequip(int index);
}; };
} }

View file

@ -76,11 +76,17 @@ TEST_CASE("the ritual belt works", "[rituals-belt]") {
{ {
auto action = re.finalize(plan); auto action = re.finalize(plan);
the_belt.equipped.push_back(action); the_belt.equip(0, action);
REQUIRE(the_belt.has(0));
} }
{ {
auto action = the_belt.equipped.at(0); auto action = the_belt.get(0);
action.dump(); action.dump();
} }
{
the_belt.unequip(0);
REQUIRE(!the_belt.has(0));
}
} }