summaryrefslogtreecommitdiffstats
path: root/crawl-ref/source/player-stats.h
blob: a560ef53dee1dd156d77da318903c2c1f408c9fe (plain) (blame)
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
44
#ifndef PLAYER_STATS_H
#define PLAYER_STATS_H

enum stat_desc_type
{
    SD_NAME,
    SD_LOSS,
    SD_DECREASE,
    SD_INCREASE,
    NUM_STAT_DESCS
};

const char* stat_desc(stat_type stat, stat_desc_type desc);

bool attribute_increase();

void modify_stat(stat_type which_stat, int amount, bool suppress_msg,
                 const char* cause, bool see_source = true);

void notify_stat_change(stat_type which_stat, int amount,
                        bool suppress_msg, const char* cause,
                        bool see_source = true);
void notify_stat_change(stat_type which_stat, int amount,
                        bool suppress_msg, const item_def &cause,
                        bool removed = false);
void notify_stat_change(const char* cause);

void jiyva_stat_action();

bool lose_stat(stat_type which_stat, int stat_loss,
               bool force = false, const string cause = "",
               bool see_source = true);
bool lose_stat(stat_type which_stat, int stat_loss,
               bool force = false, const char* cause = NULL,
               bool see_source = true);
bool lose_stat(stat_type which_stat, int stat_loss,
               const monster* cause, bool force = false);

bool restore_stat(stat_type which_stat, int stat_gain,
                  bool suppress_msg, bool recovery = false);

void update_stat_zero();

#endif