[LIFESTAGE:0:BABY:0]
[LIFESTAGE:1:CHILD:2]
[LIFESTAGE:2:ADULT:15]
[LIFESTAGE:3:SENIOR:65]
The syntax meaning [LIFESTAGE:ORDER:TITLE:AGE].
Conceivably, the [BODY_SIZE:] tags could be absorbed into this.
[LIFESTAGE:0:BABY:0:0:4500]
^ The problem is that this particular set up doesn't add anything that the current system doesn't do. BODYSIZE has
implicit numbering already based on the ordering, and naming the stages like that doesn't allow anything we couldn't really do already. Just calling a stage "Senior" doesn't tell the game what that means, or allow any new code to be run related to it.
Turning castes into life-stages directly doesn't really look good either. Because a character can only be of one caste, so there would have to be a matrix of gender x lifestage then. With baby, child, adult, senior, this would mean eight separate CASTES with jumps between them at aging. Which would be a mess to code and maintain.
For reference here are the relevant tags currently:
[BODY_SIZE:0:0:3000]
[BODY_SIZE:1:168:15000]
[BODY_SIZE:12:0:60000]
[BABY:1]
[GENERAL_BABY_NAME:dwarven baby:dwarven babies]
[BABYNAME:dwarven baby:dwarven babies]
[CHILD:12]
[GENERAL_CHILD_NAME:dwarven child:dwarven children]
[CHILDNAME:dwarven child:dwarven children]
[CASTE:FEMALE]
[FEMALE]
[MULTIPLE_LITTER_RARE]
[CASTE:MALE]
[MALE]
[BODY_DETAIL_PLAN:FACIAL_HAIR_TISSUE_LAYERS]
Bodysize, baby/child ages and babyname/childname can currently be declared separately for castes if you like, or externally, and it would be ideal if lifestages also allowed that.
What we
really want of course is to be able to specify different tags that are added or removed when a creature ages to a new life stage. So we want something like the grouping that the caste system allows, but not
actual different castes for every combination of age and sex (because of combinatorial idiocy).
So, a system like this:
[STAGE:BABY]
// define what baby means here, with tags
[STAGE:CHILD]
// define what child means here, with tags
[SELECT_STAGE:ALL]
// go back to working with all stages
This would allow adding or removing tags as ages change, with the goal of gradually moving away from a hard-coded system. Creatures would be defined as having 1 caste, and 1 stage at any time. But I'd make STAGE dependent on CASTE (i.e. stages can be declared for all CASTES at once, or differently per CASTE). Additionally, the [BABY] and [CHILD] tags would be kept to indicate which of the hard-coded stages each STAGE entry actually represents, similar to how CASTE:MALE and CASTE:FEMALE still tag either MALE or FEMALE.
Personally, I'd keep the BODYSIZE tag system separate to the age-bracket system. We want the most flexible system possible, and right now BODYSIZE can vary independently of life stages if you want. We might as well keep that independence if there's no good reason to remove it.