diff --git a/src/newcharacter.cpp b/src/newcharacter.cpp index eaa54233f5295..69d0ec1e87741 100644 --- a/src/newcharacter.cpp +++ b/src/newcharacter.cpp @@ -1290,10 +1290,11 @@ static std::string assemble_stat_details( avatar &u, const unsigned char sel ) case 1: { description_str = colorize( - string_format( _( "Melee to-hit bonus: +%.2f" ), u.get_melee_hit_base() ) - + string_format( _( "\nThrowing penalty per target's dodge: +%d" ), - u.throw_dispersion_per_dodge( false ) ), - COL_STAT_BONUS ); + string_format( _( "Melee to-hit bonus: %+.2f" ), u.get_melee_hit_base() ), + u.get_melee_hit_base() >= 0 ? COL_STAT_BONUS : COL_STAT_PENALTY ); + description_str += colorize( + string_format( _( "\nThrowing penalty per target's dodge: +%d" ), + u.throw_dispersion_per_dodge( false ) ), COL_STAT_PENALTY ); if( u.ranged_dex_mod() != 0 ) { description_str += colorize( string_format( _( "\nRanged penalty: -%d" ), std::abs( u.ranged_dex_mod() ) ), COL_STAT_PENALTY );