void Creature::reset_stats() { // Reset our stats to normal levels // Any persistent buffs/debuffs will take place in disease.h, // player::suffer(), etc. // repopulate the stat fields process_effects(); str_cur = str_max + get_str_bonus(); dex_cur = dex_max + get_dex_bonus(); per_cur = per_max + get_per_bonus(); int_cur = int_max + get_int_bonus(); // Floor for our stats. No stat changes should occur after this! if (dex_cur < 0) { dex_cur = 0; } if (str_cur < 0) { str_cur = 0; } if (per_cur < 0) { per_cur = 0; } if (int_cur < 0) { int_cur = 0; } // add an appropriate number of moves moves += get_speed(); }
void Creature::reset_stats() { // Reset our stats to normal levels // Any persistent buffs/debuffs will take place in effects, // player::suffer(), etc. // repopulate the stat fields str_cur = str_max + get_str_bonus(); dex_cur = dex_max + get_dex_bonus(); per_cur = per_max + get_per_bonus(); int_cur = int_max + get_int_bonus(); // Floor for our stats. No stat changes should occur after this! if (dex_cur < 0) { dex_cur = 0; } if (str_cur < 0) { str_cur = 0; } if (per_cur < 0) { per_cur = 0; } if (int_cur < 0) { int_cur = 0; } }
void Character::reset_stats() { // Bionic buffs if (has_active_bionic("bio_hydraulics")) mod_str_bonus(20); if (has_bionic("bio_eye_enhancer")) mod_per_bonus(2); if (has_bionic("bio_str_enhancer")) mod_str_bonus(2); if (has_bionic("bio_int_enhancer")) mod_int_bonus(2); if (has_bionic("bio_dex_enhancer")) mod_dex_bonus(2); // Trait / mutation buffs if (has_trait("THICK_SCALES")) { mod_dex_bonus(-2); } if (has_trait("CHITIN2") || has_trait("CHITIN3") || has_trait("CHITIN_FUR3")) { mod_dex_bonus(-1); } if (has_trait("BIRD_EYE")) { mod_per_bonus(4); } if (has_trait("INSECT_ARMS")) { mod_dex_bonus(-2); } if (has_trait("WEBBED")) { mod_dex_bonus(-1); } if (has_trait("ARACHNID_ARMS")) { mod_dex_bonus(-4); } if (has_trait("ARM_TENTACLES") || has_trait("ARM_TENTACLES_4") || has_trait("ARM_TENTACLES_8")) { mod_dex_bonus(1); } // Dodge-related effects if (has_trait("TAIL_LONG")) { mod_dodge_bonus(2); } if (has_trait("TAIL_CATTLE")) { mod_dodge_bonus(1); } if (has_trait("TAIL_RAT")) { mod_dodge_bonus(2); } if (has_trait("TAIL_THICK") && !(has_active_mutation("TAIL_THICK")) ) { mod_dodge_bonus(1); } if (has_trait("TAIL_RAPTOR")) { mod_dodge_bonus(3); } if (has_trait("TAIL_FLUFFY")) { mod_dodge_bonus(4); } if (has_trait("WINGS_BAT")) { mod_dodge_bonus(-3); } if (has_trait("WINGS_BUTTERFLY")) { mod_dodge_bonus(-4); } ///\EFFECT_STR_MAX above 15 decreases Dodge bonus by 1 (NEGATIVE) if (str_max >= 16) {mod_dodge_bonus(-1);} // Penalty if we're huge ///\EFFECT_STR_MAX below 6 increases Dodge bonus by 1 else if (str_max <= 5) {mod_dodge_bonus(1);} // Bonus if we're small nv_cached = false; // Reset our stats to normal levels // Any persistent buffs/debuffs will take place in effects, // player::suffer(), etc. // repopulate the stat fields str_cur = str_max + get_str_bonus(); dex_cur = dex_max + get_dex_bonus(); per_cur = per_max + get_per_bonus(); int_cur = int_max + get_int_bonus(); // Floor for our stats. No stat changes should occur after this! if( dex_cur < 0 ) { dex_cur = 0; } if( str_cur < 0 ) { str_cur = 0; } if( per_cur < 0 ) { per_cur = 0; } if( int_cur < 0 ) { int_cur = 0; } // Does nothing! TODO: Remove Creature::reset_stats(); }