Thanks for playing and thank you so much for the nice comment :). Animal Crossing was definitely an inspo here as my gf got me into it this year and I quite enjoy that game now!
As for your experience with the evaluation system unfortunately I miss tagged the TV stands so they aren't properly tracked in the submission process which means you can't perfect the level. I patched it on my end already but I digress.
As for how the evaluation system works since you're the second person to ask about it I'll try and cover it in some detail:
Client have what is essentially a requirements dictionary. The keys of this dictionary are item names and they hold a dictionary containing two particular values, a "count" and a "weight". Here's an example:
{"bed": {"count": 2, "weight": 4}, "stove": {"count": 1, "weight": 4}}
The count is the ideal number of the furniture piece the submission should include and the weight is how many points it is worth. Weight can also be better interpreted as how much that furniture matters to the client.
When the player submits the design I collect all the player placed objects and then a count dictionary for them. Since at this stage in the games development only the # of items is what is really considered, I'd love to take this system a step further and track the distance objects are placed to each other, and the overall vibe / theme of the design but didn't have the time for that in this jam.
This count dictionary for the player is then checked against the clients requirements. I take the players count and subtract the clients count and then I take that diff and use it to decide the # of points and what dialogue should be picked for the client. If the diff is 0 the player had the perfect amount of items and a "Good" dialogue is selected from the dictionary containing the clients response, and I award the full weight. If the player didn't include the item at all no points are rewarded and a bad dialogue is chosen. But if you are over or under then it checks if you are within a tolerance. The over tolerance is always 2 before you end up with bad dialogue. But the under tolerance is based on the client count. So if the client count is 1, the under tolerance is 0 because then you would've not included the item at all. If its 2 the under tolerance is 1, if its 5 the tolerance is 2, so on and so forth.
This whole system then uses a function that goes through the clients dialogue dictionary and matches up "Good", "Mid" and "Bad" responses with the particular furniture items.
There's a whole bunch of improvements and adjustments that I'm making for the system to be more interesting for the player to interact with. Like a maximum number of responses per attempt, more generalized responses rather than flat out telling the player what is missing. Having the journal update dynamically after submissions. And like I said I want to take it many steps further so the game isn't just about placing an X amount of furniture items and more about the principle of designing a space that the client would actually want.
If you made it this far in the comment then once again thanks for playing and sorry, if you can't tell I like talking about the mechanics lol