First, I see a trend in the solutions to how to avoid breaking player preferences, so better call it out explicitly. The trend is that you don’t put the discrimination between good and bad between the subjective stuff like style coherence, but rather in objective stuff such as player effort and item quality. I think that would be the way to do it.
For brainstormings sake:
What about multiple appeal scores for the hearthlings, like this:
- base appeal
- coziness
- grandness
- spohistication
- wealthiness
- comfort
Different appeal factors go into different scores, and hearthlings will have preferences for these scores. A hearthling that likes sophistication score well will like wallpapered walls, while someone who likes a high score on the opposite of sophistication might rather love untouched wood. If you like wealthiness (yes, I know the word is weird), you might like the decorations in your room to be plated in gold, while someone that wants a cozy house is not so interested in that.
Then you need to determine the happyness bonus in proportion to the deviation that a houses relevant score has from the average score of your town. This is because:
- Even if you build a town with only great and grand buildings, there are inevitably going to be homes which are grander than others, so this way you avoid hearthlings with certain preferences to go sad.
- It makes sense that a hearthling would be happy with an exceptionally grand house, if nothing is available. That is how humans work at least, you get used to certain levels of things.
I hope that made sense. It is morning, and my brain is still not completely awake.