This commit is contained in:
Aria 2025-03-21 22:23:30 +11:00
commit 9c94d113d3
Signed by untrusted user who does not match committer: aria
GPG key ID: 19AB7AA462B8AB3B
10260 changed files with 1237388 additions and 0 deletions

View file

@ -0,0 +1,44 @@
#ifndef STAR_STAT_EFFECT_DATABASE_HPP
#define STAR_STAT_EFFECT_DATABASE_HPP
#include "StarThread.hpp"
#include "StarStatusTypes.hpp"
namespace Star {
STAR_EXCEPTION(StatusEffectDatabaseException, StarException);
STAR_CLASS(StatusEffectDatabase);
// Named, unique, unstackable scripted effects.
struct UniqueStatusEffectConfig {
String name;
Maybe<String> blockingStat;
Json effectConfig;
float defaultDuration;
StringList scripts;
unsigned scriptDelta;
Maybe<String> animationConfig;
String label;
String description;
Maybe<String> icon;
};
class StatusEffectDatabase {
public:
StatusEffectDatabase();
bool isUniqueEffect(UniqueStatusEffect const& effect) const;
UniqueStatusEffectConfig uniqueEffectConfig(UniqueStatusEffect const& effect) const;
private:
UniqueStatusEffectConfig parseUniqueEffect(Json const& config, String const& path) const;
HashMap<UniqueStatusEffect, UniqueStatusEffectConfig> m_uniqueEffects;
};
}
#endif