blob: e4c39d30103186c728b3eb9d8415de2dc156b9c5 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
|
#pragma once
#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;
};
}
|