Note: I have Per: 6
Alright so on day 4 I’m mopping up zombies for scrap after using a slingshot to be able to craft longbow. Imagine my surprise when I reach archery two and get the message “You’ll need a more accurate gun to keep improving your aim.” What gives with that? I crafted a short bow which that had just unlocked and got the same thing. I’m essentially trapped at archery 2. So I searched on the message and got the block of code below. Is this another case of bullshit hidden breakpoints like the draw strength stat? How do I even make sense of this garbage to know at what point my Per is too garbage or diminishing returns shortchanges my investment?
// If the dispersion from the weapon is greater than the dispersion from your skill,
// you can't tell if you need to correct or the gun messed you up, so you can't learn.
const int weapon_dispersion = used_weapon->curammo->dispersion + used_weapon->dispersion();
const int player_dispersion = skill_dispersion( used_weapon, false ) +
ranged_skill_offset( used_weapon->skill() );
// High perception allows you to pick out details better, low perception interferes.
const bool train_skill = weapon_dispersion < player_dispersion + rng(0, get_per());
if( train_skill ) {
practice( skill_used, 4 + (num_shots / 2));
} else if( one_in(30) ) {
add_msg_if_player(m_info, _("You'll need a more accurate gun to keep improving your aim."));