This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
heritage [2019/08/01 03:31] 96.227.143.238 |
heritage [2019/09/11 13:49] (current) 188.152.123.92 |
||
---|---|---|---|
Line 5: | Line 5: | ||
These points will be renewed upon [[:abdication|abdications]] and [[:ascension|ascensions]]. The land acquired and research unlocked will be reset as well. | These points will be renewed upon [[:abdication|abdications]] and [[:ascension|ascensions]]. The land acquired and research unlocked will be reset as well. | ||
- | You earn HP through [[:abdication|abdications]] and [[:ascension|ascensions]] at certain populations. Note: You need the population listed, max population is not taken into consideration. | + | You earn HP through [[:abdication|abdications]] and [[:ascension|ascensions]] at certain populations. Note: It's the actual population which is used, max population is not taken into consideration. |
+ | |||
+ | Once the village have more than 50 population you will be awarded 1 xp for each additional villager. | ||
+ | |||
+ | The cost in xp of the next heritage point is 20+2*n with n equal to the total of hp owned. | ||
+ | |||
+ | hp_cost_in_xp = 20 + 2 * current_hp | ||
+ | |||
+ | xp_awarded = pop - hp_cost_in_xp_awarded_in_current_run - 50 | ||
+ | |||
+ | calculateHeritagePoints( removeXP = false ) { | ||
+ | let peoplePoints = this.resourcesService.getTotalPeople(); | ||
+ | let xp = this.xp; | ||
+ | let threshold = 20 + (this.heritagePoints * 2); | ||
+ | let pointsToAward = 0; | ||
+ | while ( peoplePoints >= threshold ) { | ||
+ | pointsToAward += 1; | ||
+ | peoplePoints -= threshold; | ||
+ | threshold += 2; | ||
+ | } | ||
+ | while ( peoplePoints + xp >= threshold ) { | ||
+ | pointsToAward += 1; | ||
+ | peoplePoints -= threshold; | ||
+ | if ( peoplePoints < 0 ) { | ||
+ | xp += peoplePoints; | ||
+ | } | ||
+ | threshold += 2; | ||
+ | } | ||
+ | if ( removeXP ) { | ||
+ | this.xp = xp; | ||
+ | } | ||
+ | peoplePoints -= 50; | ||
+ | if ( peoplePoints < 0 ) { | ||
+ | peoplePoints = 0; | ||
+ | } | ||
+ | return { hp: pointsToAward, xp: peoplePoints }; | ||
+ | } | ||
+ | |||
+ | peopleToNextHeritagePoint(): number { | ||
+ | let peoplePoints = this.resourcesService.getTotalPeople() + this.xp; | ||
+ | let threshold = 20 + (this.heritagePoints * 2); | ||
+ | while ( peoplePoints >= threshold ) { | ||
+ | peoplePoints -= threshold; | ||
+ | threshold += 2; | ||
+ | } | ||
+ | return threshold - peoplePoints; | ||
+ | } | ||
The formula for the population requirement where n is the number of HP earned: 100*2^(n-1)-50 | The formula for the population requirement where n is the number of HP earned: 100*2^(n-1)-50 | ||
+ | |||
+ |