00001 #ifndef PLAYER_STATS_H
00002 #define PLAYER_STATS_H
00003
00004 enum stat_desc_type
00005 {
00006 SD_NAME,
00007 SD_LOSS,
00008 SD_DECREASE,
00009 SD_INCREASE,
00010 NUM_STAT_DESCS
00011 };
00012
00013 const char* stat_desc(stat_type stat, stat_desc_type desc);
00014
00015 void attribute_increase();
00016
00017 void modify_stat(stat_type which_stat, int8_t amount, bool suppress_msg,
00018 const char* cause, bool see_source = true);
00019
00020 void notify_stat_change(stat_type which_stat, int8_t amount,
00021 bool suppress_msg, const char* cause,
00022 bool see_source = true);
00023 void notify_stat_change(stat_type which_stat, int8_t amount,
00024 bool suppress_msg, const item_def &cause,
00025 bool removed = false);
00026 void notify_stat_change(const char* cause);
00027
00028 void jiyva_stat_action();
00029
00030 bool lose_stat(stat_type which_stat, int8_t stat_loss,
00031 bool force = false, const std::string cause = "",
00032 bool see_source = true);
00033 bool lose_stat(stat_type which_stat, int8_t stat_loss,
00034 bool force = false, const char* cause = NULL,
00035 bool see_source = true);
00036 bool lose_stat(stat_type which_stat, int8_t stat_loss,
00037 const monster* cause, bool force = false);
00038 bool lose_stat(stat_type which_stat, int8_t stat_loss,
00039 const item_def &cause, bool removed, bool force = false);
00040
00041 bool restore_stat(stat_type which_stat, int8_t stat_gain,
00042 bool suppress_msg, bool recovery = false);
00043
00044 void update_stat_zero();
00045
00046 #endif