bool SkillLevel::rust( bool charged_bio_mem ) { if (_level > 0 && calendar::turn > _lastPracticed && (calendar::turn - _lastPracticed) % rustRate(_level) == 0) { if (charged_bio_mem) { return one_in(5); } _exercise -= _level; if (_exercise < 0) { if (OPTIONS["SKILL_RUST"] == "vanilla" || OPTIONS["SKILL_RUST"] == "int") { _exercise = (100 * _level) - 1; --_level; } else { _exercise = 0; } } } return false; }
bool SkillLevel::rust(const calendar& turn, bool charged_bio_mem) { if (_level > 0 && turn > _lastPracticed && (turn - _lastPracticed) % rustRate(_level) == 0) { if (charged_bio_mem) return one_in(5); _exercise -= _level; if (_exercise < 0) { if (ACTIVE_WORLD_OPTIONS["SKILL_RUST"] == "vanilla" || ACTIVE_WORLD_OPTIONS["SKILL_RUST"] == "int") { _exercise = (100 * _level) - 1; --_level; } else { _exercise = 0; } } } return false; }
bool SkillLevel::rust( bool charged_bio_mem ) { calendar const delta = calendar::turn - _lastPracticed; if( _level <= 0 || delta <= 0 || delta % rustRate( _level ) ) { return false; } if( charged_bio_mem ) { return one_in( 5 ); } _exercise -= _level; auto const &rust_type = get_option<std::string>( "SKILL_RUST" ); if( _exercise < 0 ) { if( rust_type == "vanilla" || rust_type == "int" ) { _exercise = ( 100 * _level * _level ) - 1; --_level; } else { _exercise = 0; } } return false; }
bool SkillLevel::rust(const calendar& turn, bool forgetful, bool charged_bio_mem) { if (OPTIONS[OPT_SKILL_RUST] == 2) return false; if (_level > 0 && turn > _lastPracticed && (turn - _lastPracticed) % rustRate(_level) == 0) { if (rng(1,12) % forgetful ? 3 : 4) { if (OPTIONS[OPT_SKILL_RUST] == 0 || _exercise > 0) { if (charged_bio_mem) return one_in(5); --_exercise; if (_exercise <= 0) { _exercise = 99; --_level; } } } } return false; }
bool SkillLevel::isRusting(const calendar& turn) const { return OPTIONS["SKILL_RUST"] != "off" && (_level > 0) && (turn - _lastPracticed) > rustRate(_level); }
bool SkillLevel::isRusting() const { return get_option<std::string>( "SKILL_RUST" ) != "off" && ( _level > 0 ) && ( calendar::turn - _lastPracticed ) > rustRate( _level ); }
bool SkillLevel::isRusting(const calendar& turn) const { return (_level > 0) && (turn - _lastPracticed) > rustRate(_level); }