blob: e495417aefa1de194433aaed2643fc57aa8dbb2a (
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
42
43
|
#pragma once
#include "StarJson.hpp"
#include "StarThread.hpp"
#include "StarDamageTypes.hpp"
namespace Star {
STAR_STRUCT(DamageKind);
STAR_CLASS(DamageDatabase);
STAR_STRUCT(ElementalType);
typedef String TargetMaterial;
struct ElementalType {
String resistanceStat;
HashMap<HitType, String> damageNumberParticles;
};
struct DamageEffect {
Json sounds;
Json particles;
};
struct DamageKind {
String name;
HashMap<TargetMaterial, HashMap<HitType, DamageEffect>> effects;
String elementalType;
};
class DamageDatabase {
public:
DamageDatabase();
DamageKind const& damageKind(String name) const;
ElementalType const& elementalType(String const& name) const;
private:
StringMap<DamageKind> m_damageKinds;
StringMap<ElementalType> m_elementalTypes;
};
}
|