Gear, Troops & Research

Troops

The cost, training time, power, and unlock requirements of every tier for the three troop types: Infantry, Lancer, and Marksman.

The module has 3 entries, each with tiers 1 to 12. The Troops calculator reads this table.


Types

TroopData

FieldTypeDescription
id'infantry' | 'lancer' | 'marksman'Stable identifier
namestringDisplay name
tiersTroopTier[]Tiers 1 to 12

TroopTier

FieldTypeDescription
tiernumberTier number, 1 to 12
powernumber?Power of one troop at Fire Crystal level 0
fireCrystalPowerTroopFireCrystalPower[]?Power at Fire Crystal levels 1 to 10. Tiers 10 and 11 only
unlockCampLevelnumber?Camp level of the troop type that unlocks the tier. Tiers 1 to 10 only
unlockRequirementsResearchRequirement[]?Building and research requirements. Tiers 11 and 12 only
costTroopMaterial[]Meat, wood, coal, and iron for one troop
trainingTimeSecondsnumberSeconds to train one troop with no training speed bonus
promotionCostTroopMaterial[]?Resources to promote one troop from tier 11 to tier 12. Tier 12 only

TroopMaterial

FieldTypeDescription
itemIdstringAn id from items()
amountnumberAmount needed

TroopFireCrystalPower

FieldTypeDescription
levelnumberFire Crystal level, 1 to 10
powernumberPower of one troop

Factory

import { troops } from 'whiteout-survival-data'

troops() // all 3 troop types
troops(source) // wrap a pre-filtered array

Filters and sorts

troops() has no filters or sorts of its own.


Helpers

FunctionReturnsDescription
troopPower(troop, tier, fireCrystalLevel?)number | undefinedPower of one troop of a tier at a Fire Crystal level. Level 0, the default, is the base power
highestTierAtCampLevel(troop, campLevel)TroopTier | undefinedHighest tier that the camp of the troop type can train at a camp level. undefined below camp level 1

A tier that does not change with the Fire Crystal level returns its base power at any level. troopPower returns undefined for an unknown tier, or for a level above 10 on tier 10 or 11.

highestTierAtCampLevel never returns tier 11 or 12, because those tiers do not depend on the camp level.


Terminal methods

MethodReturnsDescription
.get()TroopData[]All results
.first()TroopData | undefinedFirst result
.find(id)TroopData | undefinedFind by id
.findByName(name)TroopData | undefinedCase-insensitive exact name match
.search(query)TroopData[]Case-insensitive partial name match
.count()numberNumber of results

Examples

import {
  highestTierAtCampLevel,
  troopPower,
  troops,
} from 'whiteout-survival-data'

const infantry = troops().find('infantry')
infantry?.tiers.length // 12

const tier12 = infantry?.tiers.find((tier) => tier.tier === 12)
tier12?.trainingTimeSeconds // 215
tier12?.promotionCost?.map((material) => material.amount) // [3476, 2613, 604, 120]
tier12?.power // 178

if (infantry) {
  // Power of one troop at Fire Crystal level 10, for tier 11
  troopPower(infantry, 11, 10) // 148
  troopPower(infantry, 11) // 80, the base power

  // The highest tier that camp level 19 can train
  highestTierAtCampLevel(infantry, 19)?.tier // 7

  // What tier 11 needs
  infantry.tiers[10].unlockRequirements
  // [
  //   { type: 'building', id: 'war-academy', level: 'FC 1' },
  //   { type: 'research', id: 'helios-infantry', level: 1 },
  // ]
}

Notes

The three types have the same power at each tier.

Tier123456789101112
Power346913202838506680178

Tiers 1 to 10 have unlockCampLevel: 1, 4, 7, 11, 13, 16, 19, 22, 26, and 30. The camp levels are the same for the Infantry, Lancer, and Marksman camps.

Tiers 11 and 12 have unlockRequirements instead, in the same shape as the requirements of Research. Tier 11 needs the War Academy at FC 1 and the Helios research of the type. Tier 12 needs the War Academy at FC 10 and the Exalted research of the type. The id of a research requirement is the capstone node: helios-infantry and exalted-infantry, and the same for the other two types.

The training time of a tier is the same for all three types, and the costs differ. promotionCost is stored because it is not the difference of the two training costs.

Tiers 10 and 11 have fireCrystalPower. Tier 12 does not change with the Fire Crystal level and has no table. The three types have the same values.

TierFC 0FC 1FC 2FC 3FC 4FC 5FC 6FC 7FC 8FC 9FC 10
1066717683889499104110115121
11808692100106114120126135141148

Known gaps and derived values

It is not known whether tiers 11 and 12 also need a camp level.

The tier 12 costs are partly derived. The Marksman promotion cost was measured in the game, and the Infantry and Lancer promotion costs were scaled from it.


Next steps

Previous
Chief Charm converter