Tramway SDK
character.h
Go to the documentation of this file.
1// Tramway Drifting and Dungeon Exploration Simulator SDK Runtime
2
3#ifndef TRAM_SDK_EXTENSIONS_KITCHENSINK_CHARACTER_H
4#define TRAM_SDK_EXTENSIONS_KITCHENSINK_CHARACTER_H
5
7
8#include <framework/core.h>
9
10namespace tram {
11 class Entity;
12}
13
14namespace tram::Ext::Kitchensink {
15
16class Character;
17class Faction;
18
22};
23
26 float rank;
27 float loyalty;
28};
29
32 float rank;
33 float loyalty;
34};
35
36class Faction {
37public:
39
43 void SetCharacterRank(Character*, float);
44 void SetCharacterLoyalty(Character*, float);
47 void SetRelation(Faction*, float);
48 float GetRelation(Faction*);
50
51 static Faction* Find(name_t name);
52protected:
53 std::vector<FactionRank> ranks;
54 std::vector<FactionRelation> relations;
55};
56
59 float value;
60};
61
63public:
66
67 void SetAttribute(name_t attribute, float value);
68 float GetAttribute(name_t attribute);
69
70 void AddFaction(Faction*, float, float);
71
74
75 static CharacterClass* Find(name_t name);
76protected:
77 std::vector<CharacterClass*> base_classes;
78 std::vector<BaseAttribute> base_attributes;
79 std::vector<BaseFactionRank> base_factions;
80};
81
85};
86
87class Character {
88public:
91
94 void SetBaseDisposition(Character*, float);
95
96 bool IsInFaction(Faction*);
97
98 static void LoadFromDisk(const char*);
99 static Character* Find(Entity* entity);
100 static Character* Find(id_t entity_id);
101protected:
102 friend class Faction;
103
105
107
108 std::vector<CharacterDisposition> dispositions;
109 std::vector<Faction*> factions;
110};
111
112}
113
114#endif // TRAM_SDK_EXTENSIONS_KITCHENSINK_CHARACTER_H
Entity base class.
Definition: entity.h:23
Definition: character.h:62
bool HasBaseClass(CharacterClass *)
Definition: character.cpp:162
float GetAttribute(name_t attribute)
Definition: character.cpp:187
void AddBaseClass(CharacterClass *)
Definition: character.cpp:155
void AddFaction(Faction *, float, float)
Definition: character.cpp:197
std::vector< BaseFactionRank > base_factions
Definition: character.h:79
std::vector< BaseAttribute > base_attributes
Definition: character.h:78
void SetAttribute(name_t attribute, float value)
Definition: character.cpp:171
static CharacterClass * Find(name_t name)
Definition: character.cpp:229
std::vector< CharacterClass * > base_classes
Definition: character.h:77
void GatherBaseAttributes(AttributeContainer &)
Definition: character.cpp:216
Definition: character.h:87
void SetBaseDisposition(Character *, float)
Definition: character.cpp:272
CharacterClass * character_class
Definition: character.h:106
std::vector< CharacterDisposition > dispositions
Definition: character.h:108
bool IsInFaction(Faction *)
Definition: character.cpp:280
float GetDisposition(Character *)
Definition: character.cpp:261
bool HasClass(CharacterClass *)
Definition: character.cpp:245
id_t entity_id
Definition: character.h:104
static Character * Find(Entity *entity)
Definition: character.cpp:288
void AddClass(CharacterClass *)
Definition: character.cpp:241
static void LoadFromDisk(const char *)
Definition: character.cpp:304
float GetBaseDisposition(Character *)
Definition: character.cpp:250
std::vector< Faction * > factions
Definition: character.h:109
Definition: character.h:36
std::vector< FactionRank > ranks
Definition: character.h:53
float GetDisposition(Character *)
Definition: character.cpp:131
static Faction * Find(name_t name)
Definition: character.cpp:139
void SetCharacterRank(Character *, float)
Definition: character.cpp:64
bool HasCharacter(Character *)
Definition: character.cpp:56
std::vector< FactionRelation > relations
Definition: character.h:54
void SetRelation(Faction *, float)
Definition: character.cpp:102
float GetCharacterLoyalty(Character *)
Definition: character.cpp:92
float GetRelation(Faction *)
Definition: character.cpp:121
void RemoveCharacter(Character *)
Definition: character.cpp:52
void SetCharacterLoyalty(Character *, float)
Definition: character.cpp:73
void AddCharacter(Character *)
Definition: character.cpp:33
name_t name
Definition: character.h:38
float GetCharacterRank(Character *)
Definition: character.cpp:82
Extension containing random stuff that doesn't fit in anywhere else.
Definition: ai.cpp:15
Serialization, i.e.
uint32_t id_t
Definition: core.h:10
Definition: character.h:57
name_t name
Definition: character.h:58
float value
Definition: character.h:59
Definition: character.h:30
Faction * faction
Definition: character.h:31
float loyalty
Definition: character.h:33
float rank
Definition: character.h:32
float disposition
Definition: character.h:84
Character * character
Definition: character.h:83
Definition: character.h:24
float rank
Definition: character.h:26
Character * character
Definition: character.h:25
float loyalty
Definition: character.h:27
Definition: character.h:19
float disposition
Definition: character.h:21
Faction * faction
Definition: character.h:20
Interned string type.
Definition: uid.h:10