Alliance

Alliance facilities

The 8 map-based Alliance Facility types, with the bonus and the map locations of each level.

The facilities are construction, defense, expedition, gathering, production, tech, training, and weapons. They have 12 levels in all.


Types

AllianceFacility

FieldTypeDescription
idstringStable identifier, such as defense
namestringDisplay name
bonusStatstringStat the facility boosts, such as Troop Defense Boost
levelsAllianceFacilityLevel[]The levels the data covers

AllianceFacilityLevel

FieldTypeDescription
levelnumberFacility level
boosterPercentnumberBooster percent listed for the level in the in-game map info
heavilyInjuredPercentnumberHeavily injured percent listed for the level
lossesPercentnumberLosses percent listed for the level
ownLimitnumberMost facilities of that level one alliance can own. Always 1
availablenumberFacilities of that level on the map. Equals locations.length
locationsAllianceFacilityLocation[]Map coordinates

AllianceFacilityLocation

FieldTypeDescription
xnumberMap x
ynumberMap y

Factory

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

allianceFacility() // all 8 facilities
allianceFacility(source) // wrap a pre-filtered array

Filters

This module has no filters or sorts of its own. Use the terminal methods.


Terminal methods

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

Examples

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

// Bonus stat and levels of one facility
const defense = allianceFacility().find('defense')
defense?.bonusStat // 'Troop Defense Boost'
defense?.levels.map((l) => [l.level, l.boosterPercent, l.available])
// [[2, 5, 8], [4, 8, 3]]

// Map coordinates of the level 1 construction facilities
allianceFacility().find('construction')?.levels[0].locations
// [{ x: 1068, y: 138 }, { x: 537, y: 138 }, ...]

// Facilities whose name contains a word
allianceFacility().search('ing').length // 2

Notes

The capture rules are not stored as data: a 30-minute capture, 3 days of control, stacking rules, and a limit of 12 facilities.

Some levels are missing

The data comes from the in-game map info, which documents only some levels of each facility. For example, defense has Levels 2 and 4, and gathering has only Level 1. The missing levels are gaps. They are not guessed.


Next steps

Previous
Alliance tech