When generating cat thoughts, there will now be a chance for the other_cat to be a cat that they already have a relationship with, or one they are related to (determined by relationship_thought_chance and kin_thought_chance).
Default settings are 20% relationship/20% kin, so 60% of other_cats for thoughts will still be pure RNG.
The chance is for setting other_cat, not whether or not a thought will actually MENTION another cat, so the actual % of thoughts the player sees that contain a related cat's name will be lower.
In addition, an option (dead_relations) was added in the clansettings to enable retaining dead cats' relationships. This is false by default. The reason these two changes are bundled is because when dead_relations is enabled, dead cats can now have relationship thoughts rolled, so they will have a chance to think about cats they were friends with before dying.
This also fixes a bug I discovered during testing in which some cousins would not properly be displayed in the family tree (now cousins aren't checked until the full list of aunts and uncles is complete).
Why This Is Good For ClanGen
Thoughts are one of the main ways to get insight into the day-to-day lives of the cats in your Clan. Oftentimes, cats in Clangen can feel a bit disconnected with one another, especially in larger Clans; while there is a relationship and kin system, it has no impact on who they're thinking of. This change will hopefully make the Clan feel more "alive" by allowing cats' connections to affect thoughts.
It also makes dead cat thoughts more interesting, as now a dead cat is more likely to be thinking of their kin (or friends, if dead_relations is enabled) left behind in the living world.
Allowing dead cats to retain their relationships is a commonly requested feature; it is by default off and includes a tooltip warning mentioning possible performance impacts on large Clans (though it's not clear if this impact would be all that significant). Keeping that information is valuable for those who like to look back through their cats in StarClan and the Dark Forest and remember who they were friends or rivals with.
Proof of Testing
Changelog/Credits
Big changes:
Added relationship-based and kin-based thought weights to make cats more likely to think about cats they already know or are related to, with the weights being adjustable in the config file
Added a Clan setting, dead_relations (default: false), that saves and displays dead cats' relationships when enabled in the Clan settings page
Technical changes:
Added a helper function called get_kin_groups to utility.py
Added get_uncle_aunts, get_cousins, and get_grandkits, which are extremely similar to other get_relative functions
Added get_distant_kin and recursive_get_relatives so we can gather cats from further away on the family tree, generally excluding "in-laws" and cousins of cousins
Added two game_config settings, relationship_thought_chance and kin_thought_chance, to choose the % of thoughts that will be of that type (default: 20%)
Bugfix:
Fixed an issue with init_cousins where cats were being checked as cousins before all aunts and uncles had been added to the parents_siblings list, resulting in some cousins not appearing in the family tree under certain circumstances
About The Pull Request
When generating cat thoughts, there will now be a chance for the other_cat to be a cat that they already have a relationship with, or one they are related to (determined by relationship_thought_chance and kin_thought_chance).
In addition, an option (dead_relations) was added in the clansettings to enable retaining dead cats' relationships. This is false by default. The reason these two changes are bundled is because when dead_relations is enabled, dead cats can now have relationship thoughts rolled, so they will have a chance to think about cats they were friends with before dying.
This also fixes a bug I discovered during testing in which some cousins would not properly be displayed in the family tree (now cousins aren't checked until the full list of aunts and uncles is complete).
Why This Is Good For ClanGen
Thoughts are one of the main ways to get insight into the day-to-day lives of the cats in your Clan. Oftentimes, cats in Clangen can feel a bit disconnected with one another, especially in larger Clans; while there is a relationship and kin system, it has no impact on who they're thinking of. This change will hopefully make the Clan feel more "alive" by allowing cats' connections to affect thoughts.
It also makes dead cat thoughts more interesting, as now a dead cat is more likely to be thinking of their kin (or friends, if dead_relations is enabled) left behind in the living world.
Allowing dead cats to retain their relationships is a commonly requested feature; it is by default off and includes a tooltip warning mentioning possible performance impacts on large Clans (though it's not clear if this impact would be all that significant). Keeping that information is valuable for those who like to look back through their cats in StarClan and the Dark Forest and remember who they were friends or rivals with.
Proof of Testing
Changelog/Credits
Big changes:
Technical changes:
Bugfix: