Exemple #1
0
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;
}
Exemple #2
0
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;
}
Exemple #3
0
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;
}
Exemple #4
0
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;
}
Exemple #5
0
bool SkillLevel::isRusting(const calendar& turn) const
{
    return OPTIONS["SKILL_RUST"] != "off" && (_level > 0) && (turn - _lastPracticed) > rustRate(_level);
}
Exemple #6
0
bool SkillLevel::isRusting() const
{
    return get_option<std::string>( "SKILL_RUST" ) != "off" && ( _level > 0 ) &&
           ( calendar::turn - _lastPracticed ) > rustRate( _level );
}
Exemple #7
0
bool SkillLevel::isRusting(const calendar& turn) const
{
    return (_level > 0) && (turn - _lastPracticed) > rustRate(_level);
}