Difference between revisions of "Template:Actual Age"
(→Maths) |
|||
Line 15: | Line 15: | ||
===Maths=== | ===Maths=== | ||
− | :<code>with 1 = {sum from t=1 to actual_ticks_to_adulthood: 1/( | + | :<code>with 1 = {sum from t=1 to actual_ticks_to_adulthood: 1/(adult_age_expressed_in_ticks - t)},<br>actual_ticks_to_adulthood trends to (1-1/e)×adult_age_expressed_in_ticks as the ticks trend to infinity</code> |
− | :<code>with (juvenile_age/adult_age) = {sum from t=1 to actual_ticks_to_juvenile: 1/( | + | :<code>with (juvenile_age/adult_age) = {sum from t=1 to actual_ticks_to_juvenile: 1/(adult_age_expressed_in_ticks - t)},<br>actual_ticks_to_juvenile trends to (1-1/e^(juvenile_age/adult_age))×adult_age_expressed_in_ticks as the ticks trend to infinity</code> |
==Example uses== | ==Example uses== |
Revision as of 11:36, 30 September 2021
Returns the actual age at which an animal will reach a life stage age listed in its def files.
Parameters
- adult_age - this has to be the adult_age listed in the animal's def xml, or seen in the in-game information window
- juvenile_age - if a second parameter is given, the number returned will be the actual juvenile age. This number must be found from the defs files.
Formula used
actual_juvenile_age = (1-1/e^(juvenile_age/adult_age))×adult_age
actual_adult_age = (1-1/e)×adult_age
Explanation
If the values from the defs files were to be believed as-is, you would expect to see (0.3333-0.25)*60 = 5 days of juvenile stage for horses. However, the time they actually spend in game as a juvenile is only about 2 days. This method accurately predicts this.
The reason for this weirdness is because the amount the growth stat increases each tick is proportional to 1/ticks_to_adulthood
, where ticks_to_adulthood is simply the difference between the ticks since birth and the def file's adult_age expressed in ticks. The consequence of growth updating this way is that initially, the growth stat will increase slowly, and then as the animal approaches 100% growth, it increases faster.
Maths
with 1 = {sum from t=1 to actual_ticks_to_adulthood: 1/(adult_age_expressed_in_ticks - t)},
actual_ticks_to_adulthood trends to (1-1/e)×adult_age_expressed_in_ticks as the ticks trend to infinity
with (juvenile_age/adult_age) = {sum from t=1 to actual_ticks_to_juvenile: 1/(adult_age_expressed_in_ticks - t)},
actual_ticks_to_juvenile trends to (1-1/e^(juvenile_age/adult_age))×adult_age_expressed_in_ticks as the ticks trend to infinity
Example uses
- Horse adult: {{Actual Age|0.3333}} -> 0.21068578097385
- Horse juvenile: {{Actual Age|0.3333|0.25}} -> 0.17587203545609
- Fox juvenile: {{Actual Age|0.3333|0.1}} -> 0.086392694342281