RitualBelt now has an API.
This commit is contained in:
parent
31b35b43eb
commit
a70f11646a
3 changed files with 30 additions and 3 deletions
16
rituals.cpp
16
rituals.cpp
|
@ -102,4 +102,20 @@ namespace combat {
|
|||
|
||||
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);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -62,6 +62,11 @@ namespace combat {
|
|||
};
|
||||
|
||||
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);
|
||||
};
|
||||
}
|
||||
|
|
|
@ -76,11 +76,17 @@ TEST_CASE("the ritual belt works", "[rituals-belt]") {
|
|||
|
||||
{
|
||||
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();
|
||||
}
|
||||
|
||||
{
|
||||
the_belt.unequip(0);
|
||||
REQUIRE(!the_belt.has(0));
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue