I am proposing one thing. That the option to highlight preferences relevant to roles be added.
Hopefully this could come with a filter to select only dwarfs which have one or more positive preferences (basically the ability to sort a role by this criteria).
I would prefer that this option also override the preference weightings for roles (i.e. set them all to zero) but that is merely for convenience.
Anything beyond that which I have said are descriptions of how I have seen Dwarf Therapist behaving at the moment or arguments/reasonings for why this option would be a good thing for players to have.
If all the weightings and mechanisms you are talking about are in some development version I can only shrug since I cannot check the validity of those assertions. If you are talking about the way the program (that is v25.0) works at the moment you are simply wrong.
I am happy for you to disagree with me about the ease and value of producing a numerical value for preferences. (I only hope that you do not insist that I use said schema.)
i've had some time to look at this again, and the issue isn't directly caused by the exclusion of zero matches. the cause is more to do with the default weights that are applied to the role preferences.
what happens in the back-end is that all role preference matches are analyzed, and they're assigned a rating. for example, having a single match in your game, was assigned a rating of 0.75. the role's use this rating for the preferences to determine the preference score. however, they also take into account the individual weights that have been assigned to the preference. so as an example of the problematic dwarf's roles:
Speardwarf Role:
- Spear match, worth 0.75, with a weight of 0.75
- Shield match, worth 0.75, with a weight of 1.00
Final weighted average: ((0.75*0.75)+(0.75 * 1.0)) / 1.75 = 0.75
Axedwarf Role:
- Shield match, worth 0.75, with a weight of 1.00
Final weighted average: 0.75 * 1.0 = 0.75
now, adding the zero-matches back in, for this example, would drop the Axedwarf role's preference rating down: ((
0.0*0.75)+(0.75 * 1.0)) / 1.75 = 0.43. but as you can see, that's very punishing and was the reason non-matches were excluded from the role preference ratings.
setting the preference weights equally with the current (25.0) method,
bumps up shows the problem with the Speardwarf: ((
0.75*1.0)+(0.75 * 1.0)) / 2.00 = 0.75.
this is more reasonable than punishing the non-matches above.a big part of the current issue is that the preference weights for the default roles need to be tweaked, especially after the recent changes to roles. for the default roles especially it would probably be a good idea to remove the preference weights entirely, essentially setting them all to 1.0
the highlighting is still an interesting idea though, because it would allow players to exclude all preference ratings from all roles (basically a global weight of 0) but still give an indication of which dwarves may have matching preferences. then, as you've explained, it's up to the player to decide if the preferences is actually applicable on the current fortress.
Edit: thinking about it a bit more, it might be worthwhile to modify the role cell tooltips to show the actual matching preferences...
Edit2: fix failed maths