Support for cloning battles for AI purposes.
All checks were successful
continuous-integration/drone/push Build is passing

Signed-off-by: Deukhoofd <Deukhoofd@gmail.com>
This commit is contained in:
2021-04-11 15:20:50 +02:00
parent a3b7002cd4
commit 84a14cff2b
19 changed files with 236 additions and 30 deletions

View File

@@ -18,6 +18,8 @@ namespace CreatureLib::Battling {
virtual ~BattleScript() = default;
virtual BattleScript* Clone() = 0;
virtual void Stack(){};
virtual void OnRemove(){};

View File

@@ -15,6 +15,12 @@ namespace CreatureLib::Battling {
static constexpr size_t defaultCapacity = 8;
ScriptSet() : _scripts(defaultCapacity), _lookup(defaultCapacity){};
void Clone(ScriptSet& s) {
for (auto* script : _scripts) {
s.Add(script->Clone());
}
}
BattleScript* Add(BattleScript* script) {
auto v = _lookup.TryGet(script->GetName());
if (v.has_value()) {