So, right now, a young creature is specified in the raws as an attribute of the adult creature. For instance, the [CREATURE:CAT] raw contains:
[CHILD:1][CHILDNAME:kitten:kittens]The system uses this to handle cat breeding, and seems to automatically handle the kitten maturing, the reduced meat/bone from butchering kittens, etc.
I think it would be a cooler system to have a separate raw entry for each young creature. This raw would contain all the attributes for the creature, and an attribute showing what adult creature RAW the young creature matured into. The mature creatures would have an attribute showing which young creature RAW the mature creature gave birth to. So, the CAT raw would have:
[BREED:1][CREATURE:KITTEN]And there would be a new KITTEN raw with:
[MATURE:1][CREATURE:CAT]Among other features, this would allow for:
- More interesting creature life-cycles; for instance, a cave spider (currently vermin) which survived for 20 years could turn into a giant cave spider (not vermin, highly dangerous). This would also allow for multi-stage creature lifestyles, like baby dragon -> dragon -> great wyrm.
- Different creature attributes for young creatures; for instance, a baby dragon might need to mature into an adult dragon before it got fire breath. When milking gets added back in, this would also support allowing milking of adults only.
- Better division of labor for dealing with creatures; for instance, trapping kittens could use 'small animal trapping' instead of 'butchering', which would seem to make more sense.
- Breeding of tame vermin, like purring maggots. This wouldn't be good for much except pure awesomeness.
Overall, this change would lead to more granular control of creature life-cycles and attributes, as well as moving a lot of the animal handling code from the program to the RAWs. Any thoughts?