else if( id == effect_formication ) {
///\EFFECT_INT decreases occurrence of itching from formication effect
if( x_in_y( intense, 100 + 50 * get_int() ) ) {
if( !is_npc() ) {
//~ %s is bodypart in accusative.
add_msg( m_warning, _( "You start scratching your %s!" ), body_part_name_accusative( bp ) );
g->u.cancel_activity();
} else if( g->u.sees( pos() ) ) {
//~ 1$s is NPC name, 2$s is bodypart in accusative.
add_msg( _( "%1$s starts scratching their %2$s!" ), name, body_part_name_accusative( bp ) );
}
moves -= 150;
apply_damage( nullptr, bp, 1 );
}
If I’m reading this correctly, the effect only does 1 damage to the specified body part every time you see the scratching yourself message. How often do you scratch yourself in a day? It’s annoying to dive through functions without visual studio going, so I can’t get a feel for how often this is going to trigger from just the arguments passed to x_n_y function. Maybe this is something that got overlooked in the recent change to turn lengths. Days are technically 6 times longer now.
edit: On second thought, I’d guess this is firing 1-3 times in 500, based on your int of 8. Max intensity for formication is 3. What that would mean in times per day, I can’t figure out easily, as I’m not sure how often this function gets called.