forked from tgstation/tgstation
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathexperisci.dm
35 lines (31 loc) · 1.88 KB
/
experisci.dm
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
#define EXPERIMENT_CONFIG_ATTACKSELF "experiment_config_attackself"
#define EXPERIMENT_CONFIG_ALTCLICK "experiment_config_altclick"
#define EXPERIMENT_CONFIG_CLICK "experiment_config_click"
#define EXPERIMENT_CONFIG_UI "experiment_config_ui"
/// Boolean stage, complete/incomplete. No specific progress to report.
#define EXPERIMENT_BOOL_STAGE "bool"
/// Integer stages, should be whole numbers with total being included
/// to support rendering ``value of total``, or something akin to it.
#define EXPERIMENT_INT_STAGE "integer"
/// Float stages, the value should be between 0 and 1 representing percent completion
#define EXPERIMENT_FLOAT_STAGE "float"
/// Detail stages, only provide more textual information and have no inherent progress
#define EXPERIMENT_DETAIL_STAGE "detail"
/// Macro for defining a progress stage
#define EXPERIMENT_PROGRESS(type, desc, values...) list(list(type, desc, values))
/// Macro for boolean stages
#define EXPERIMENT_PROG_BOOL(desc, complete) EXPERIMENT_PROGRESS(EXPERIMENT_BOOL_STAGE, desc, complete)
/// Macro for integer stages
#define EXPERIMENT_PROG_INT(desc, complete, total) EXPERIMENT_PROGRESS(EXPERIMENT_INT_STAGE, desc, complete, total)
/// Macro for float stages
#define EXPERIMENT_PROG_FLOAT(desc, complete) EXPERIMENT_PROGRESS(EXPERIMENT_FLOAT_STAGE, desc, complete)
/// Macro for non-valued stages, details for exp stages
#define EXPERIMENT_PROG_DETAIL(desc, complete) EXPERIMENT_PROGRESS(EXPERIMENT_DETAIL_STAGE, desc, complete)
/// Destructive experiments which will destroy the sample
#define EXPERIMENT_TRAIT_DESTRUCTIVE (1 << 0)
/// Will always attempt to action every experiment eligible with a single input,
/// no experiment selection required
#define EXPERIMENT_CONFIG_ALWAYS_ACTIVE (1 << 0)
/// Experiment handlers with this flag will not automatically connect to the first techweb they find
/// on initialization
#define EXPERIMENT_CONFIG_NO_AUTOCONNECT (1 << 1)