@elite-dangerous-almanac/core 0.1.4 → 0.1.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/PROVENANCE/i18n/SOURCES.md +40 -41
- package/PROVENANCE/ships/SOURCES.md +71 -9
- package/README.md +11 -5
- package/THIRD_PARTY_NOTICES.md +4 -3
- package/assets/ships/Adder/gunsight.svg +17 -0
- package/assets/ships/Anaconda/gunsight.svg +32 -0
- package/assets/ships/Asp/gunsight.svg +26 -0
- package/assets/ships/Asp_Scout/gunsight.svg +20 -0
- package/assets/ships/BelugaLiner/gunsight.svg +23 -0
- package/assets/ships/CobraMkIII/gunsight.svg +20 -0
- package/assets/ships/CobraMkIV/gunsight.svg +23 -0
- package/assets/ships/CobraMkV/gunsight.svg +23 -0
- package/assets/ships/Corsair/gunsight.svg +26 -0
- package/assets/ships/Cutter/gunsight.svg +29 -0
- package/assets/ships/DiamondBack/gunsight.svg +20 -0
- package/assets/ships/DiamondBackXL/gunsight.svg +17 -0
- package/assets/ships/Dolphin/gunsight.svg +14 -0
- package/assets/ships/Eagle/gunsight.svg +17 -0
- package/assets/ships/Empire_Courier/gunsight.svg +17 -0
- package/assets/ships/Empire_Eagle/gunsight.svg +17 -0
- package/assets/ships/Empire_Trader/gunsight.svg +20 -0
- package/assets/ships/Explorer_NX/gunsight.svg +29 -0
- package/assets/ships/Federation_Corvette/gunsight.svg +29 -0
- package/assets/ships/Federation_Corvette/schematic-bottom.svg +5 -5
- package/assets/ships/Federation_Corvette/schematic-top.svg +14 -14
- package/assets/ships/Federation_Dropship/gunsight.svg +23 -0
- package/assets/ships/Federation_Dropship_MkII/gunsight.svg +20 -0
- package/assets/ships/Federation_Gunship/gunsight.svg +29 -0
- package/assets/ships/FerDeLance/gunsight.svg +23 -0
- package/assets/ships/Hauler/gunsight.svg +11 -0
- package/assets/ships/Independant_Trader/gunsight.svg +20 -0
- package/assets/ships/Krait_Light/gunsight.svg +20 -0
- package/assets/ships/Krait_MkII/gunsight.svg +23 -0
- package/assets/ships/LakonMiner/gunsight.svg +32 -0
- package/assets/ships/Mamba/gunsight.svg +23 -0
- package/assets/ships/Mandalay/gunsight.svg +26 -0
- package/assets/ships/MediumTransport01/gunsight.svg +23 -0
- package/assets/ships/Orca/gunsight.svg +17 -0
- package/assets/ships/PantherMkII/gunsight.svg +38 -0
- package/assets/ships/Python/gunsight.svg +23 -0
- package/assets/ships/Python_NX/gunsight.svg +26 -0
- package/assets/ships/SideWinder/gunsight.svg +14 -0
- package/assets/ships/SmallCombat01_NX/gunsight.svg +23 -0
- package/assets/ships/Type6/gunsight.svg +14 -0
- package/assets/ships/Type7/gunsight.svg +20 -0
- package/assets/ships/Type8/gunsight.svg +26 -0
- package/assets/ships/Type9/gunsight.svg +23 -0
- package/assets/ships/Type9_Military/gunsight.svg +35 -0
- package/assets/ships/TypeX/gunsight.svg +26 -0
- package/assets/ships/TypeX_2/gunsight.svg +26 -0
- package/assets/ships/TypeX_3/gunsight.svg +29 -0
- package/assets/ships/Viper/gunsight.svg +20 -0
- package/assets/ships/Viper_MkIV/gunsight.svg +20 -0
- package/assets/ships/Vulture/gunsight.svg +14 -0
- package/dist/chunk-2VPVZELZ.js +1 -0
- package/dist/{chunk-EU42PAV4.js.map → chunk-2VPVZELZ.js.map} +1 -1
- package/dist/{chunk-O72KI7RP.js → chunk-3EO7PTAP.js} +1 -1
- package/dist/{chunk-XT6KKGSE.js → chunk-3MPLVD2R.js} +1 -1
- package/dist/chunk-5V4OXZLE.js +1 -0
- package/dist/{chunk-CTJQPQRA.js.map → chunk-5V4OXZLE.js.map} +1 -1
- package/dist/chunk-6FKBZPI6.js +1 -0
- package/dist/{chunk-3IMWUYXJ.js.map → chunk-6FKBZPI6.js.map} +1 -1
- package/dist/{chunk-MGT52MJM.js → chunk-BZDTEXXM.js} +1 -1
- package/dist/{chunk-UBYO7VZR.js → chunk-DBGXZF7O.js} +1 -1
- package/dist/{chunk-SVZARHWP.js → chunk-DYPOL3CI.js} +1 -1
- package/dist/{chunk-SVZARHWP.js.map → chunk-DYPOL3CI.js.map} +1 -1
- package/dist/chunk-EVEFYI7K.js +1 -0
- package/dist/{chunk-GKDEI2SQ.js.map → chunk-EVEFYI7K.js.map} +1 -1
- package/dist/{chunk-6RLMBSXE.js → chunk-EWAS7KMF.js} +1 -1
- package/dist/chunk-JKWV3CZN.js +1 -0
- package/dist/{chunk-XN6Q7LWU.js.map → chunk-JKWV3CZN.js.map} +1 -1
- package/dist/{chunk-PHPLZEFS.js → chunk-JPBMRJFC.js} +1 -1
- package/dist/{chunk-PHPLZEFS.js.map → chunk-JPBMRJFC.js.map} +1 -1
- package/dist/chunk-JXLCRQH5.js +1 -0
- package/dist/{chunk-EKWLAHRG.js.map → chunk-JXLCRQH5.js.map} +1 -1
- package/dist/chunk-NCKOVFBJ.js +1 -0
- package/dist/{chunk-TFPIPIMU.js.map → chunk-NCKOVFBJ.js.map} +1 -1
- package/dist/chunk-NEFUW32I.js +1 -0
- package/dist/{chunk-2J2UV4ZX.js.map → chunk-NEFUW32I.js.map} +1 -1
- package/dist/chunk-NWBWTJM3.js +1 -0
- package/dist/chunk-NWBWTJM3.js.map +1 -0
- package/dist/chunk-PEHOKSSD.js +1 -0
- package/dist/chunk-PYV7VI6I.js +1 -0
- package/dist/{chunk-EJMNNQIS.js.map → chunk-PYV7VI6I.js.map} +1 -1
- package/dist/{chunk-QI22FKBG.js → chunk-Q3QCLNVG.js} +1 -1
- package/dist/{chunk-QI22FKBG.js.map → chunk-Q3QCLNVG.js.map} +1 -1
- package/dist/chunk-QGAZWX7G.js +1 -0
- package/dist/{chunk-HRVIHQ4A.js.map → chunk-QGAZWX7G.js.map} +1 -1
- package/dist/{chunk-FGNJ7EVM.js → chunk-RC6F6RAU.js} +1 -1
- package/dist/{chunk-FGNJ7EVM.js.map → chunk-RC6F6RAU.js.map} +1 -1
- package/dist/chunk-SNADUQSJ.js +1 -0
- package/dist/chunk-SNADUQSJ.js.map +1 -0
- package/dist/chunk-SU352DIW.js +1 -0
- package/dist/chunk-SU352DIW.js.map +1 -0
- package/dist/{chunk-VB3XZGIB.js → chunk-T4CV4CDF.js} +1 -1
- package/dist/chunk-TEOJCBSG.js +1 -0
- package/dist/chunk-TEOJCBSG.js.map +1 -0
- package/dist/{chunk-QMFBL5XO.js → chunk-UPUC5X2C.js} +1 -1
- package/dist/{chunk-QMFBL5XO.js.map → chunk-UPUC5X2C.js.map} +1 -1
- package/dist/chunk-WHAU3C4E.js +1 -0
- package/dist/{chunk-H3HMVGEY.js.map → chunk-WHAU3C4E.js.map} +1 -1
- package/dist/chunk-ZKU7CMAH.js +1 -0
- package/dist/chunk-ZKU7CMAH.js.map +1 -0
- package/dist/equipment/index.js +1 -1
- package/dist/equipment/upgrade-costs.js +1 -1
- package/dist/equipment/upgrade-costs.js.map +1 -1
- package/dist/i18n/blueprints.js +1 -1
- package/dist/i18n/diagnostics.d.ts +1 -0
- package/dist/i18n/diagnostics.js +1 -1
- package/dist/i18n/engineering-groups.d.ts +2 -2
- package/dist/i18n/engineering-groups.js +1 -1
- package/dist/i18n/experimental-effect-descriptions.js +1 -1
- package/dist/i18n/experimental-effects.js +1 -1
- package/dist/i18n/index.d.ts +29 -1
- package/dist/i18n/index.js +1 -1
- package/dist/i18n/materials.d.ts +2 -3
- package/dist/i18n/materials.js +1 -1
- package/dist/i18n/micro-resources.d.ts +2 -3
- package/dist/i18n/micro-resources.js +1 -1
- package/dist/i18n/modules.d.ts +3 -4
- package/dist/i18n/modules.js +1 -1
- package/dist/i18n/pre-engineered.js +1 -1
- package/dist/i18n/ships.js +1 -1
- package/dist/i18n/slots.js +1 -1
- package/dist/ships/blueprint-costs.d.ts +112 -22
- package/dist/ships/blueprint-costs.js +1 -1
- package/dist/ships/blueprint-costs.js.map +1 -1
- package/dist/ships/blueprints.d.ts +3 -1
- package/dist/ships/blueprints.js +1 -1
- package/dist/ships/engineering.d.ts +5 -4
- package/dist/ships/engineering.js +1 -1
- package/dist/ships/experimental-effect-costs.d.ts +7 -2
- package/dist/ships/experimental-effect-costs.js +1 -1
- package/dist/ships/experimental-effect-costs.js.map +1 -1
- package/dist/ships/experimental-effects.d.ts +2 -1
- package/dist/ships/experimental-effects.js +1 -1
- package/dist/ships/gunsights.js +1 -1
- package/dist/ships/index.d.ts +6 -3
- package/dist/ships/index.js +1 -1
- package/dist/ships/modules-all.js +1 -1
- package/dist/ships/modules-core.js +1 -1
- package/dist/ships/modules-hardpoint.d.ts +1 -0
- package/dist/ships/modules-hardpoint.js +1 -1
- package/dist/ships/modules-internal.d.ts +1 -0
- package/dist/ships/modules-internal.js +1 -1
- package/dist/ships/modules-utility.d.ts +1 -0
- package/dist/ships/modules-utility.js +1 -1
- package/dist/ships/modules.d.ts +22 -5
- package/dist/ships/modules.js +1 -1
- package/dist/ships/pre-engineered-stats.js +1 -1
- package/dist/ships/pre-engineered.d.ts +9 -3
- package/dist/ships/pre-engineered.js +1 -1
- package/dist/ships/ship-loadout.d.ts +72 -27
- package/dist/ships/ship-loadout.js +1 -1
- package/package.json +1 -1
- package/dist/chunk-2J2UV4ZX.js +0 -1
- package/dist/chunk-3IMWUYXJ.js +0 -1
- package/dist/chunk-7XXNVKAB.js +0 -1
- package/dist/chunk-7XXNVKAB.js.map +0 -1
- package/dist/chunk-CTJQPQRA.js +0 -1
- package/dist/chunk-E45EDCYH.js +0 -1
- package/dist/chunk-E45EDCYH.js.map +0 -1
- package/dist/chunk-EJMNNQIS.js +0 -1
- package/dist/chunk-EKWLAHRG.js +0 -1
- package/dist/chunk-EU42PAV4.js +0 -1
- package/dist/chunk-GKDEI2SQ.js +0 -1
- package/dist/chunk-H3HMVGEY.js +0 -1
- package/dist/chunk-HRVIHQ4A.js +0 -1
- package/dist/chunk-M5IBENCW.js +0 -1
- package/dist/chunk-M5IBENCW.js.map +0 -1
- package/dist/chunk-PNZCLQDJ.js +0 -1
- package/dist/chunk-TFPIPIMU.js +0 -1
- package/dist/chunk-XN6Q7LWU.js +0 -1
- /package/dist/{chunk-O72KI7RP.js.map → chunk-3EO7PTAP.js.map} +0 -0
- /package/dist/{chunk-XT6KKGSE.js.map → chunk-3MPLVD2R.js.map} +0 -0
- /package/dist/{chunk-MGT52MJM.js.map → chunk-BZDTEXXM.js.map} +0 -0
- /package/dist/{chunk-UBYO7VZR.js.map → chunk-DBGXZF7O.js.map} +0 -0
- /package/dist/{chunk-6RLMBSXE.js.map → chunk-EWAS7KMF.js.map} +0 -0
- /package/dist/{chunk-PNZCLQDJ.js.map → chunk-PEHOKSSD.js.map} +0 -0
- /package/dist/{chunk-VB3XZGIB.js.map → chunk-T4CV4CDF.js.map} +0 -0
|
@@ -6,6 +6,14 @@ They are deliberately sparse: absence means that no accepted source carried a va
|
|
|
6
6
|
the lookup API returns `null` for that locale rather than treating English as a
|
|
7
7
|
translation.
|
|
8
8
|
|
|
9
|
+
**Five locales are stored: `en`, `de`, `es`, `fr` and `ru`.** Several accepted sources
|
|
10
|
+
publish more — Portuguese, Brazilian Portuguese, Italian, Hungarian, Georgian and
|
|
11
|
+
Simplified Chinese among them — and those values are deliberately not carried: the
|
|
12
|
+
project supports those five languages and no others. That is a decision about this
|
|
13
|
+
catalogue, not a gap in any source, so re-deriving a catalogue from its source must drop
|
|
14
|
+
the other columns again rather than restore them. Every locale is stored under a bare
|
|
15
|
+
language tag; a regional or script tag resolves to its language.
|
|
16
|
+
|
|
9
17
|
## `module-names.jsonc`
|
|
10
18
|
|
|
11
19
|
- **Acquired:** 2026-08-14 UTC.
|
|
@@ -19,13 +27,11 @@ translation.
|
|
|
19
27
|
Almanac's canonical English name. This prevents broad EDDI families such as
|
|
20
28
|
`CargoRack`, `MissileRack` and `PlanetaryApproachSuite` from erasing the distinct Mk II,
|
|
21
29
|
seeker and advanced names the Almanac carries. EDSY's module `fdname` and effective
|
|
22
|
-
`namekey` fill a missing `de`, `es`, `fr
|
|
30
|
+
`namekey` fill a missing `de`, `es`, `fr` or `ru` value only when EDSY's English
|
|
23
31
|
module name also exactly equals the canonical name. Values shared by modules with one
|
|
24
32
|
canonical name are retained only when they agree, then stored once under that name.
|
|
25
33
|
- **Coverage:** English covers all 1,199 symbols. The explicit translations cover 1,120
|
|
26
|
-
in German, 1,090 in Spanish, 1,088 in French
|
|
27
|
-
822 in Portuguese, 1,029 in Brazilian Portuguese, 1,153 in Russian and 1,028 in
|
|
28
|
-
Simplified Chinese.
|
|
34
|
+
in German, 1,090 in Spanish, 1,088 in French and 1,153 in Russian.
|
|
29
35
|
- **Manual corrections:** none.
|
|
30
36
|
|
|
31
37
|
## `blueprint-names.jsonc`
|
|
@@ -39,7 +45,7 @@ translation.
|
|
|
39
45
|
each language file. Names remain keyed per blueprint because a single English phrase
|
|
40
46
|
can have different grammatical translations for different module families.
|
|
41
47
|
- **Coverage:** English covers all 107 blueprints; EDSY covers 55 in German and 59 each
|
|
42
|
-
in Spanish, French
|
|
48
|
+
in Spanish, French and Russian. The remaining recipes include Operations
|
|
43
49
|
and other newer records EDSY does not identify or translate.
|
|
44
50
|
- **Manual corrections:** EDSY's French `FSD_FastBoot` value ends in one accidental
|
|
45
51
|
ASCII space; the stored display name removes it so a successful lookup is already
|
|
@@ -55,7 +61,7 @@ translation.
|
|
|
55
61
|
EDSY's `expeffect.fdname`; that record's id selects an explicit `expeffect-<id>` entry
|
|
56
62
|
from each language file.
|
|
57
63
|
- **Coverage:** English covers all 86 effects; EDSY covers 84 in German and 85 each in
|
|
58
|
-
Spanish, French
|
|
64
|
+
Spanish, French and Russian.
|
|
59
65
|
- **Manual corrections:** none.
|
|
60
66
|
|
|
61
67
|
## `material-names.jsonc`
|
|
@@ -73,11 +79,7 @@ translation.
|
|
|
73
79
|
parenthetical Guardian and Thargoid category labels where the owning catalogue does;
|
|
74
80
|
localized columns remain verbatim source values.
|
|
75
81
|
- **Coverage:** English, Spanish and Russian cover all 146 materials. The explicit
|
|
76
|
-
translations cover 128 in German
|
|
77
|
-
Georgian. Fourteen of the source's Georgian values are byte-for-byte equal to the
|
|
78
|
-
canonical English spelling and are retained verbatim; they are explicit source values,
|
|
79
|
-
not lookup-generated fallbacks. The pinned source carries no Simplified Chinese
|
|
80
|
-
material names.
|
|
82
|
+
translations cover 128 in German and 140 in French.
|
|
81
83
|
- **Manual corrections:** none.
|
|
82
84
|
|
|
83
85
|
## `micro-resource-names.jsonc`
|
|
@@ -94,18 +96,11 @@ translation.
|
|
|
94
96
|
localized columns are copied. Twenty-eight of the 30 in-game-backed records also have
|
|
95
97
|
rows in Odyssey Materials Helper, while `PowerVirus` and
|
|
96
98
|
`SmallCapacityPowerRegulator` do not. All 30 take the explicit in-game `name` values for
|
|
97
|
-
German, Spanish, French
|
|
98
|
-
|
|
99
|
-
In both cases the owning catalogue remains authoritative for canonical English names.
|
|
99
|
+
German, Spanish, French and Russian. In both cases the owning catalogue remains
|
|
100
|
+
authoritative for canonical English names.
|
|
100
101
|
- **Coverage:** English, Spanish and Russian cover all 226 micro resources. The explicit
|
|
101
|
-
translations cover 218 in German and
|
|
102
|
-
|
|
103
|
-
canonical English spelling and are retained verbatim; they are explicit source values,
|
|
104
|
-
not lookup-generated fallbacks.
|
|
105
|
-
- **Manual corrections:** the 30 in-game values labelled Brazilian Portuguese are stored
|
|
106
|
-
under `pt`, matching the 188 existing Portuguese entries because both sets contain the
|
|
107
|
-
same Brazilian Portuguese game text. `pt-BR` lookups resolve these values through the
|
|
108
|
-
regional-to-language fallback.
|
|
102
|
+
translations cover 218 in German and 225 in French.
|
|
103
|
+
- **Manual corrections:** none.
|
|
109
104
|
|
|
110
105
|
## `ship-names.jsonc`
|
|
111
106
|
|
|
@@ -121,9 +116,8 @@ translation.
|
|
|
121
116
|
Helper's `ships.name.*` key after removing punctuation and folding case. EDSY's
|
|
122
117
|
`eddb.js` `ship.fdname` supplies the second join, with explicit `ship-<id>` language
|
|
123
118
|
entries filling locales absent from the CSV. The resulting source-backed coverage is
|
|
124
|
-
48 ships in Spanish, 44 in French
|
|
125
|
-
|
|
126
|
-
no accepted source carries a German ship-name table.
|
|
119
|
+
48 ships in Spanish, 44 in French and 48 in Russian; no accepted source carries a
|
|
120
|
+
German ship-name table.
|
|
127
121
|
- **Standing conclusion:** every source-backed non-English value is byte-for-byte equal
|
|
128
122
|
to the canonical English ship name. The explicit values remain in the catalogue so a
|
|
129
123
|
lookup distinguishes a source-backed same spelling from an unavailable translation.
|
|
@@ -144,21 +138,19 @@ translation.
|
|
|
144
138
|
|
|
145
139
|
- **Acquired:** 2026-08-18 UTC.
|
|
146
140
|
- **EDSY revision:** commit `e446fbe6e4597dea7ab0bd3105b9a36642388040`;
|
|
147
|
-
database version `424009901`, last-modified marker `20260810`; `lang-en.json
|
|
148
|
-
`lang-
|
|
149
|
-
`9b199db635f7b968b75c8e9a14bdce68e37e4120`,
|
|
150
|
-
`493fa09c4d4a11f0282e1e4076a67fed8d7f317e` and
|
|
141
|
+
database version `424009901`, last-modified marker `20260810`; `lang-en.json` and
|
|
142
|
+
`lang-ru.json` have Git blob ids `9b199db635f7b968b75c8e9a14bdce68e37e4120` and
|
|
151
143
|
`36496372d056754c34da03ca6836e27987c96b6a` respectively.
|
|
152
144
|
- **Derivation:** each of the 48 group ids and its canonical English name is projected
|
|
153
145
|
from `data/ships/engineering-options.jsonc`. That catalogue derives its group menus
|
|
154
146
|
from EDSY, with the supplemental sources and corrections recorded in
|
|
155
147
|
`data/ships/SOURCES.md`. Where a canonical English name matches an EDSY `mtype-*`
|
|
156
148
|
value in `lang-en.json` byte-for-byte and uniquely, explicit values with the same key
|
|
157
|
-
are copied from `lang-
|
|
158
|
-
- **Coverage:** canonical English covers every engineering option group
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
149
|
+
are copied from `lang-ru.json`.
|
|
150
|
+
- **Coverage:** canonical English covers every engineering option group; Russian covers
|
|
151
|
+
44 of 48. The Guardian power-plant, power-distributor and hull-reinforcement groups
|
|
152
|
+
have no distinct EDSY label, and EDSY carries no Russian value for
|
|
153
|
+
`frameShiftDrivesSCO`.
|
|
162
154
|
- **Manual corrections:** none.
|
|
163
155
|
|
|
164
156
|
## `experimental-effect-descriptions.jsonc`
|
|
@@ -175,22 +167,29 @@ translation.
|
|
|
175
167
|
|
|
176
168
|
## `pre-engineered-variant-names.jsonc`
|
|
177
169
|
|
|
178
|
-
- **Acquired:** 2026-08-18 UTC.
|
|
170
|
+
- **Acquired:** 2026-08-18 UTC; the Merc-shop names 2026-08-22 UTC.
|
|
179
171
|
- **Derivation:** all 76 compound identities and English names come from
|
|
180
172
|
`data/ships/pre-engineered.jsonc`. An identity combines the base module symbol,
|
|
181
173
|
blueprint, optional experimental effect and acquisition route. When a variant name
|
|
182
174
|
exactly matches its base module's canonical name, it reuses that record from
|
|
183
|
-
`module-names.jsonc`; the
|
|
175
|
+
`module-names.jsonc`; the 41 distinct display records are stored once. Fixed reward
|
|
184
176
|
names such as the three `Decorative_*` festive launchers remain canonical English.
|
|
177
|
+
- **The 22 Merc-shop rows carry the shop's own names**, in 14 distinct records — the shop
|
|
178
|
+
sells a "Far-Reaching Abrasion Blaster", not an Abrasion Blaster — so they do not reuse
|
|
179
|
+
their base module's record. English and the German, Spanish, French and Russian values
|
|
180
|
+
are supplied by the repository owner from the in-game shop listing; no registry
|
|
181
|
+
publishes them.
|
|
185
182
|
- **Coverage:** English covers every variant. Ordinary names inherit the explicit
|
|
186
|
-
localized values available for their base module;
|
|
187
|
-
translation source.
|
|
183
|
+
localized values available for their base module; the Merc-shop names carry all five
|
|
184
|
+
stored locales; fixed reward names have no accepted translation source.
|
|
188
185
|
- **Manual corrections:** none.
|
|
189
186
|
|
|
190
187
|
## Known gaps
|
|
191
188
|
|
|
192
189
|
Localized coverage follows the accepted sources and is not complete for every catalogue or
|
|
193
|
-
locale.
|
|
194
|
-
|
|
195
|
-
|
|
190
|
+
stored locale. A language absent from all ten catalogues is the locale decision recorded
|
|
191
|
+
above rather than a gap. The accepted sources carry only canonical English for
|
|
192
|
+
outfitting-family labels and some engineering-group labels, slot and restriction labels,
|
|
193
|
+
fixed reward names, and structured loadout, calculation, SLEF and edit messages. Missing
|
|
194
|
+
source-backed translations remain tracked by
|
|
196
195
|
[#320](https://github.com/DarkSession/Elite-Dangerous-Almanac/issues/320).
|
|
@@ -130,8 +130,6 @@ identity from FDevIDs, stats and slots from coriolis-data, joined on `symbol`.
|
|
|
130
130
|
### Gunsights
|
|
131
131
|
|
|
132
132
|
- **File:** `gunsights.jsonc` (48 player-flyable hulls, 234 weapon hardpoints).
|
|
133
|
-
- **Source:** in-game gunsight observations from the in-game verification snapshot
|
|
134
|
-
pinned above.
|
|
135
133
|
- **Derivation:** each observation is joined to `ships.jsonc` by case-insensitive hull
|
|
136
134
|
symbol. Its hardpoints are joined by exact journal slot key to the hardpoints returned
|
|
137
135
|
by `enumerateSlots`, then written in the existing `Ship.hardpoints` order. One observed
|
|
@@ -387,6 +385,20 @@ FDevIDs, stats from coriolis-data and EDSY, joined on `symbol`.
|
|
|
387
385
|
The group source, derivation, split
|
|
388
386
|
Guardian families and coverage are documented under Engineering options below; this
|
|
389
387
|
field is a projection of that map, not a separate classification source.
|
|
388
|
+
- **`family` groups the three variable-slot outfitting lists.** Every internal,
|
|
389
|
+
hardpoint and utility record carries one stable descriptive English label: 484
|
|
390
|
+
internal modules in 35 families, 159 hardpoints in 29, and 35 utility fittings in
|
|
391
|
+
12. The 521 core records carry none because their existing `slot` is already the
|
|
392
|
+
grouping the core-internals screen uses; public loaders normalize that deliberate
|
|
393
|
+
absence to `null`. Labels are derived from the canonical `name` identities above and
|
|
394
|
+
the module kind represented by each record, then pluralized for display. Variants
|
|
395
|
+
remain with the base family rather than fragmenting a list: Bi-Weave and Prismatic
|
|
396
|
+
generators are `Shield Generators`; corrosion-resistant and Mk II racks are
|
|
397
|
+
`Cargo Racks`; Powerplay weapons stay with their base weapon; Mk I/Mk II cabins and
|
|
398
|
+
vessel hangars share `Passenger Cabins` and `Vessel Hangars`. Guardian/AX and
|
|
399
|
+
specialist mining weapons retain their distinct kind where their function differs.
|
|
400
|
+
A re-derivation must carry these labels in the normalized identity arrays; no
|
|
401
|
+
upstream column publishes this display classification.
|
|
390
402
|
- **Stats source:** coriolis-data `modules/**` for the mechanical, defence, power and
|
|
391
403
|
weapon stats; EDSY `eddb.js` for mass, integrity, power draw, boot time and the
|
|
392
404
|
engineering base stats coriolis does not carry; and in-game verification for the
|
|
@@ -1095,14 +1107,17 @@ up straight through with no disambiguation at all. Both paths are evidence that
|
|
|
1095
1107
|
|
|
1096
1108
|
- **Files:** `blueprints.jsonc` (per-blueprint, per-grade stat modifiers),
|
|
1097
1109
|
`blueprint-costs.jsonc` (the matching per-grade material requirements),
|
|
1110
|
+
`blueprint-merc-coin-costs.jsonc` (the per-roll Merc-Coin amounts the 25 recipes that
|
|
1111
|
+
charge a currency bill alongside those materials),
|
|
1098
1112
|
`blueprint-journal-names.jsonc` (the three recipe ids whose journal spelling collides
|
|
1099
1113
|
with another recipe), `experimental-effects.jsonc` (special-effect stat modifiers and
|
|
1100
1114
|
qualitative descriptions), and `experimental-effect-costs.jsonc` (the matching
|
|
1101
1115
|
one-application material costs).
|
|
1102
1116
|
Stored modifier labels use journal `Modifier` **Labels**. Each blueprint is `{ name, grades }`
|
|
1103
|
-
(each grade `{ features, damageDistribution? }`). The cost file uses the same
|
|
1104
|
-
grades for the craftable subset; fixed reward identities without an ordinary
|
|
1105
|
-
absent.
|
|
1117
|
+
(each grade `{ features, damageDistribution? }`). The material cost file uses the same
|
|
1118
|
+
ids and grades for the craftable subset; fixed reward identities without an ordinary
|
|
1119
|
+
cost are absent. The Merc-Coin file is a subset of that subset, with the same ids and
|
|
1120
|
+
the same grades again — a recipe charging no currency is absent rather than zero. Each experimental effect is
|
|
1106
1121
|
`{ name, modifiers, damageDistribution?, description? }`, with its cost file keyed by
|
|
1107
1122
|
the same effect ids.
|
|
1108
1123
|
- **Display names:** each blueprint and experimental effect carries its `name`.
|
|
@@ -1216,8 +1231,11 @@ up straight through with no disambiguation at all. Both paths are evidence that
|
|
|
1216
1231
|
grade 5. Inara does not publish journal spellings for the damage members, and the
|
|
1217
1232
|
repository contains no raw `Loadout` capture of this blueprint.
|
|
1218
1233
|
Their per-roll `materials` are from the same registry (resolved to Frontier material
|
|
1219
|
-
`symbol`s against the `materials` domain)
|
|
1220
|
-
|
|
1234
|
+
`symbol`s against the `materials` domain). Where that same crafting-cost table lists a
|
|
1235
|
+
per-roll **Merc-Coin** amount beside them — on the 25 recipes named under "Merc-Coin
|
|
1236
|
+
crafting cost" below, which is every recipe in this bullet except the Anti-Guardian one
|
|
1237
|
+
— the amount is a currency rather than a material, so it is stored separately, in
|
|
1238
|
+
`blueprint-merc-coin-costs.jsonc`. Some totals are
|
|
1221
1239
|
non-monotonic (pre-engineered UI values, not primitive weights — notably the
|
|
1222
1240
|
Enduring-feedback rail-gun damage and the Balanced-distributor G4 mass) and are
|
|
1223
1241
|
**preserved as published, not silently "corrected"**. The Merc-Coin **weapon-reward**
|
|
@@ -1225,6 +1243,39 @@ up straight through with no disambiguation at all. Both paths are evidence that
|
|
|
1225
1243
|
pre-engineering; the general/core/optional recipes (fuel scoop, laser plasma-conversion)
|
|
1226
1244
|
span grades 1–5, and the Anti-Guardian recipe is grade 1 only.
|
|
1227
1245
|
|
|
1246
|
+
- **Merc-Coin crafting cost — `blueprint-merc-coin-costs.jsonc`.** A recipe that charges a
|
|
1247
|
+
currency lists it in the same Inara crafting-cost box as its materials, on a `Merc Coin`
|
|
1248
|
+
line carrying an amount and no material link. That amount is stored in its own file, per
|
|
1249
|
+
blueprint and per grade, because it is a currency and not a material: folding it into an
|
|
1250
|
+
`EngineeringMaterial` list would put something with no `symbol` in the materials domain.
|
|
1251
|
+
Amounts are **per roll**, exactly as the material recipes are, so pricing a climb weights
|
|
1252
|
+
each grade by its roll count.
|
|
1253
|
+
- **25 recipes charge one, and no other blueprint does.** Inara's blueprint index marks
|
|
1254
|
+
a charging recipe by rendering its name in the coin colour, and the marked set is
|
|
1255
|
+
exactly the 21 bespoke grade-2–5 recipes a bought Mercenary article climbs plus the
|
|
1256
|
+
four Operations recipes an ordinary menu lists at grades 1–5 (`FuelScoop_Efficiency`
|
|
1257
|
+
and the three `*Laser_ThermalPlasmaConversion`) — 18 marked rows of the 197 the index
|
|
1258
|
+
lists, because one published recipe can answer to more than one stored id. An ordinary
|
|
1259
|
+
engineer recipe is therefore **absent rather than zero**, and `GuardianModule_Sturdy`
|
|
1260
|
+
is absent for the same reason. That index is the whole evidence for the negative half
|
|
1261
|
+
of the claim: it is a completeness reading of one listing, not 197 pages checked one
|
|
1262
|
+
by one. Acquired 2026-08-22 UTC; the pages are live and expose no immutable revision.
|
|
1263
|
+
- **Every row is joined to its `fdname` by its own material recipe, not by name.** Inara
|
|
1264
|
+
publishes one page per recipe, keyed by its display name; each of the 18 pages' per-grade
|
|
1265
|
+
material lists was compared against `blueprint-costs.jsonc` before its Merc-Coin figures
|
|
1266
|
+
were taken, and all 25 rows agree on every grade, every material and every count. That is what
|
|
1267
|
+
binds "Rail Gun — Enduring feedback" to `RailGun_LongShot` rather than a guess at the
|
|
1268
|
+
display name.
|
|
1269
|
+
- **One published recipe, several stored ids, one set of amounts.** Inara publishes a
|
|
1270
|
+
single page for Cargo Rack — Extended, Power Distributor — Support focused, Fragment
|
|
1271
|
+
Cannon — Double screaming and Seeker Missile Rack — Lockdown, while this repository
|
|
1272
|
+
keys each as two or five per-SKU ids (see "Seven of these keys are almost certainly not
|
|
1273
|
+
journal ids" above). Those ids already carry **identical material recipes** at every
|
|
1274
|
+
grade, from that same one page; their Merc-Coin amounts are identical for the same
|
|
1275
|
+
reason, and are not a claim that the sizes were separately observed to cost the same.
|
|
1276
|
+
- **A pre-engineered article's shop price is a different number** and stays on the variant
|
|
1277
|
+
as `mercCoinCost`: that buys the article at grade 1, while these amounts buy the climb
|
|
1278
|
+
above it.
|
|
1228
1279
|
- **Anti-Guardian Zone Resistance is keyed once, as the game spells it.**
|
|
1229
1280
|
`blueprints.jsonc` stores the one player-facing blueprint under
|
|
1230
1281
|
**`GuardianModule_Sturdy`** — the id a journal writes, and the only one any engineering
|
|
@@ -1285,8 +1336,12 @@ up straight through with no disambiguation at all. Both paths are evidence that
|
|
|
1285
1336
|
magnitudes carry them (e.g. Force Shell shot speed −16.6667%, FSD Interrupt damage −30%
|
|
1286
1337
|
/ burst interval +50%). A fixed damage-type conversion is carried separately as
|
|
1287
1338
|
`damageDistribution`, because it is a nested split rather than a scalar modifier.
|
|
1288
|
-
Their one-application `materials` are
|
|
1289
|
-
Merc
|
|
1339
|
+
Their one-application `materials` are the whole cost. **No experimental effect charges
|
|
1340
|
+
Merc Coin**, so nothing is missing beside them: repository-owner in-game confirmation,
|
|
1341
|
+
2026-08-22 UTC, no immutable upstream revision. The currency is charged by 25
|
|
1342
|
+
**blueprints** and by no effect, so an effect's empty currency cost is a fact about the
|
|
1343
|
+
game rather than an omission here — those blueprint amounts are carried, under
|
|
1344
|
+
"Merc-Coin crafting cost" above. Every one is a weapon effect, and
|
|
1290
1345
|
the weapon groups' menus list them.
|
|
1291
1346
|
- **Three effects state a fixed converted damage type.** High Yield Shell, Inertial
|
|
1292
1347
|
Impact and Overload Munitions produce 50/50 kinetic/explosive, kinetic/thermal and
|
|
@@ -1689,6 +1744,13 @@ up straight through with no disambiguation at all. Both paths are evidence that
|
|
|
1689
1744
|
and several rows are annotated as having been obtainable both ways — the six SCO "V1"
|
|
1690
1745
|
drives most obviously. `acquisition` records the tag; it is not a claim that no other
|
|
1691
1746
|
route ever existed.
|
|
1747
|
+
- **`name` is the base module's name, except on the Merc-shop rows.** A community-goal or
|
|
1748
|
+
tech-broker article is listed under the module it fits as, so those rows carry the
|
|
1749
|
+
catalogue name verbatim. The 22 `mercenary` rows do not: the shop sells the
|
|
1750
|
+
"Far-Reaching Abrasion Blaster" and the "Support Focused Power Distributor" under those
|
|
1751
|
+
names, 14 distinct ones over the 22 rows. Supplied by the repository owner from the
|
|
1752
|
+
in-game shop listing, acquired 2026-08-22 UTC; the registries carry the transformation,
|
|
1753
|
+
not the label. Their localized values are recorded in `data/i18n/SOURCES.md`.
|
|
1692
1754
|
- **`engineeringLocked: true` marks 12 final weapon rows:** the seven pre-engineered
|
|
1693
1755
|
Guardian weapons and the five fixed Enzyme/AX articles. Their evidence is recorded once
|
|
1694
1756
|
under Engineering options.
|
package/README.md
CHANGED
|
@@ -55,9 +55,10 @@ The package has six feature areas:
|
|
|
55
55
|
|
|
56
56
|
## Ship assets
|
|
57
57
|
|
|
58
|
-
Every catalogued hull includes
|
|
58
|
+
Every catalogued hull includes four SVG files in the installed package:
|
|
59
59
|
|
|
60
60
|
```text
|
|
61
|
+
assets/ships/<symbol>/gunsight.svg
|
|
61
62
|
assets/ships/<symbol>/illustration.svg
|
|
62
63
|
assets/ships/<symbol>/schematic-top.svg
|
|
63
64
|
assets/ships/<symbol>/schematic-bottom.svg
|
|
@@ -67,6 +68,11 @@ assets/ships/<symbol>/schematic-bottom.svg
|
|
|
67
68
|
package files rather than JavaScript subpath exports, so applications can copy them from
|
|
68
69
|
the installed package into their own public or bundled asset directory.
|
|
69
70
|
|
|
71
|
+
`gunsight.svg` is a `600 × 600` frontal plot of the fixed-weapon aim points at a nominal
|
|
72
|
+
1,000-metre target range. Each weapon group under `#weapon-dots` carries the same
|
|
73
|
+
`data-journal-slot` key used by the hull's hardpoint layout. The illustration and both
|
|
74
|
+
schematics use a `1200 × 800` canvas.
|
|
75
|
+
|
|
70
76
|
The two schematics expose a stable annotation contract for hull-anatomy interfaces:
|
|
71
77
|
|
|
72
78
|
- Each annotated feature is a `<g>` group carrying a `data-feature` category. The
|
|
@@ -170,10 +176,10 @@ getEngineeringGroupName('frameShiftDrives', 'de'); // -> null
|
|
|
170
176
|
```
|
|
171
177
|
|
|
172
178
|
The functions return an explicit source value verbatim, so a source-backed spelling may
|
|
173
|
-
happen to equal English; the library itself never supplies an English fallback.
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
179
|
+
happen to equal English; the library itself never supplies an English fallback. The
|
|
180
|
+
catalogues carry English, French, German, Russian and Spanish, each stored under a bare
|
|
181
|
+
language tag: a regional or script subtag is dropped (`de-DE` → `de`), and any other
|
|
182
|
+
language returns `null`.
|
|
177
183
|
|
|
178
184
|
The same contract covers ship manufacturers, pre-engineered variant names, engineering
|
|
179
185
|
group names, experimental-effect descriptions, loadout-slot and restriction labels, and
|
package/THIRD_PARTY_NOTICES.md
CHANGED
|
@@ -90,9 +90,10 @@ a verbatim copy produced at build time — edit this file, never the copy.
|
|
|
90
90
|
for its code — its module definitions and resource tables supply localized outfitting
|
|
91
91
|
names. The names are factual Elite Dangerous game data; no EDDI code is incorporated.
|
|
92
92
|
- **[Inara](https://inara.cz/)** — the blueprint and outfitting registries behind the
|
|
93
|
-
Operations pre-engineered blueprints
|
|
94
|
-
hull layouts, and the component pages that
|
|
95
|
-
|
|
93
|
+
Operations pre-engineered blueprints, shop rows and the per-roll Merc-Coin crafting
|
|
94
|
+
costs, the ship pages used to corroborate hull layouts, and the component pages that
|
|
95
|
+
grade the Thargoid caustic / Titan materials absent from FDevIDs and classify Power
|
|
96
|
+
Megaship Data as an Odyssey data resource.
|
|
96
97
|
- **[EliteDangerousRegionMap](https://github.com/klightspeed/EliteDangerousRegionMap)** by
|
|
97
98
|
**Ben Peddell** ([klightspeed](https://github.com/klightspeed)), **MIT** — the 42
|
|
98
99
|
galactic codex regions, their ids and their lookup geometry. Original region-boundary
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 600 600" data-identity="adder" data-target-range-metres="1000" data-half-span-tangent="0.08">
|
|
2
|
+
<g id="gunsight" fill="none" stroke="#22333b" stroke-width="2">
|
|
3
|
+
<circle cx="300" cy="300" r="12"/>
|
|
4
|
+
<circle cx="300" cy="300" r="2" fill="#22333b" stroke="none"/>
|
|
5
|
+
</g>
|
|
6
|
+
<g id="weapon-dots" fill="#e63946" stroke="#ffffff" stroke-width="1.5">
|
|
7
|
+
<g id="hardpoint-01" data-name="MediumHardpoint1" data-journal-slot="MediumHardpoint1" data-socket="!Hardpoint0" data-direction-ratio-x="0" data-direction-ratio-y="0" data-offset-x-metres="7.95e-08" data-offset-y-metres="2.476220131">
|
|
8
|
+
<circle cx="300.000000" cy="290.714175" r="5"/>
|
|
9
|
+
</g>
|
|
10
|
+
<g id="hardpoint-02" data-name="SmallHardpoint1" data-journal-slot="SmallHardpoint1" data-socket="!Hardpoint1" data-direction-ratio-x="0" data-direction-ratio-y="0" data-offset-x-metres="4.803110899" data-offset-y-metres="-3.305289984">
|
|
11
|
+
<circle cx="318.011666" cy="312.394837" r="5"/>
|
|
12
|
+
</g>
|
|
13
|
+
<g id="hardpoint-03" data-name="SmallHardpoint2" data-journal-slot="SmallHardpoint2" data-socket="!Hardpoint2" data-direction-ratio-x="0" data-direction-ratio-y="0" data-offset-x-metres="-4.81071919" data-offset-y-metres="-3.305160046">
|
|
14
|
+
<circle cx="281.959803" cy="312.394350" r="5"/>
|
|
15
|
+
</g>
|
|
16
|
+
</g>
|
|
17
|
+
</svg>
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 600 600" data-identity="anaconda" data-target-range-metres="1000" data-half-span-tangent="0.08">
|
|
2
|
+
<g id="gunsight" fill="none" stroke="#22333b" stroke-width="2">
|
|
3
|
+
<circle cx="300" cy="300" r="12"/>
|
|
4
|
+
<circle cx="300" cy="300" r="2" fill="#22333b" stroke="none"/>
|
|
5
|
+
</g>
|
|
6
|
+
<g id="weapon-dots" fill="#e63946" stroke="#ffffff" stroke-width="1.5">
|
|
7
|
+
<g id="hardpoint-01" data-name="LargeHardpoint1" data-journal-slot="LargeHardpoint1" data-socket="!Hardpoint0" data-direction-ratio-x="0" data-direction-ratio-y="0" data-offset-x-metres="-0.0676546022" data-offset-y-metres="-16.49276972">
|
|
8
|
+
<circle cx="299.746295" cy="361.847886" r="5"/>
|
|
9
|
+
</g>
|
|
10
|
+
<g id="hardpoint-02" data-name="HugeHardpoint1" data-journal-slot="HugeHardpoint1" data-socket="!Hardpoint1" data-direction-ratio-x="0" data-direction-ratio-y="0" data-offset-x-metres="-0.0500994027" data-offset-y-metres="-20.85164976">
|
|
11
|
+
<circle cx="299.812127" cy="378.193687" r="5"/>
|
|
12
|
+
</g>
|
|
13
|
+
<g id="hardpoint-03" data-name="LargeHardpoint2" data-journal-slot="LargeHardpoint2" data-socket="!Hardpoint2" data-direction-ratio-x="0" data-direction-ratio-y="0" data-offset-x-metres="-6.395654671" data-offset-y-metres="-6.012909889">
|
|
14
|
+
<circle cx="276.016295" cy="322.548412" r="5"/>
|
|
15
|
+
</g>
|
|
16
|
+
<g id="hardpoint-04" data-name="LargeHardpoint3" data-journal-slot="LargeHardpoint3" data-socket="!Hardpoint3" data-direction-ratio-x="0" data-direction-ratio-y="0" data-offset-x-metres="6.260495193" data-offset-y-metres="-6.012919426">
|
|
17
|
+
<circle cx="323.476857" cy="322.548448" r="5"/>
|
|
18
|
+
</g>
|
|
19
|
+
<g id="hardpoint-05" data-name="MediumHardpoint2" data-journal-slot="MediumHardpoint2" data-socket="!Hardpoint4" data-direction-ratio-x="0" data-direction-ratio-y="0" data-offset-x-metres="8.197345741" data-offset-y-metres="-10.42525959">
|
|
20
|
+
<circle cx="330.740047" cy="339.094723" r="5"/>
|
|
21
|
+
</g>
|
|
22
|
+
<g id="hardpoint-06" data-name="MediumHardpoint1" data-journal-slot="MediumHardpoint1" data-socket="!Hardpoint5" data-direction-ratio-x="0" data-direction-ratio-y="0" data-offset-x-metres="-8.332314484" data-offset-y-metres="-10.4250598">
|
|
23
|
+
<circle cx="268.753821" cy="339.093974" r="5"/>
|
|
24
|
+
</g>
|
|
25
|
+
<g id="hardpoint-07" data-name="SmallHardpoint2" data-journal-slot="SmallHardpoint2" data-socket="!Hardpoint7" data-direction-ratio-x="0" data-direction-ratio-y="0" data-offset-x-metres="1.396265395" data-offset-y-metres="-27.17289925">
|
|
26
|
+
<circle cx="305.235995" cy="401.898372" r="5"/>
|
|
27
|
+
</g>
|
|
28
|
+
<g id="hardpoint-08" data-name="SmallHardpoint1" data-journal-slot="SmallHardpoint1" data-socket="!Hardpoint8" data-direction-ratio-x="0" data-direction-ratio-y="0" data-offset-x-metres="-1.532654636" data-offset-y-metres="-27.17029953">
|
|
29
|
+
<circle cx="294.252545" cy="401.888623" r="5"/>
|
|
30
|
+
</g>
|
|
31
|
+
</g>
|
|
32
|
+
</svg>
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 600 600" data-identity="asp" data-target-range-metres="1000" data-half-span-tangent="0.08">
|
|
2
|
+
<g id="gunsight" fill="none" stroke="#22333b" stroke-width="2">
|
|
3
|
+
<circle cx="300" cy="300" r="12"/>
|
|
4
|
+
<circle cx="300" cy="300" r="2" fill="#22333b" stroke="none"/>
|
|
5
|
+
</g>
|
|
6
|
+
<g id="weapon-dots" fill="#e63946" stroke="#ffffff" stroke-width="1.5">
|
|
7
|
+
<g id="hardpoint-01" data-name="SmallHardpoint1" data-journal-slot="SmallHardpoint1" data-socket="!Hardpoint4" data-direction-ratio-x="0" data-direction-ratio-y="0" data-offset-x-metres="4.393425578" data-offset-y-metres="-3.852212012">
|
|
8
|
+
<circle cx="316.475346" cy="314.445795" r="5"/>
|
|
9
|
+
</g>
|
|
10
|
+
<g id="hardpoint-02" data-name="SmallHardpoint2" data-journal-slot="SmallHardpoint2" data-socket="!Hardpoint5" data-direction-ratio-x="0" data-direction-ratio-y="0" data-offset-x-metres="-4.393014318" data-offset-y-metres="-3.852212012">
|
|
11
|
+
<circle cx="283.526196" cy="314.445795" r="5"/>
|
|
12
|
+
</g>
|
|
13
|
+
<g id="hardpoint-03" data-name="SmallHardpoint3" data-journal-slot="SmallHardpoint3" data-socket="!Hardpoint6" data-direction-ratio-x="0" data-direction-ratio-y="0" data-offset-x-metres="0.8882707894" data-offset-y-metres="-5.805761874">
|
|
14
|
+
<circle cx="303.331015" cy="321.771607" r="5"/>
|
|
15
|
+
</g>
|
|
16
|
+
<g id="hardpoint-04" data-name="SmallHardpoint4" data-journal-slot="SmallHardpoint4" data-socket="!Hardpoint7" data-direction-ratio-x="0" data-direction-ratio-y="0" data-offset-x-metres="-0.8607862056" data-offset-y-metres="-5.805761874">
|
|
17
|
+
<circle cx="296.772052" cy="321.771607" r="5"/>
|
|
18
|
+
</g>
|
|
19
|
+
<g id="hardpoint-05" data-name="MediumHardpoint1" data-journal-slot="MediumHardpoint1" data-socket="!Hardpoint8" data-direction-ratio-x="0" data-direction-ratio-y="0" data-offset-x-metres="4.019735926" data-offset-y-metres="-0.2208419442">
|
|
20
|
+
<circle cx="315.074010" cy="300.828157" r="5"/>
|
|
21
|
+
</g>
|
|
22
|
+
<g id="hardpoint-06" data-name="MediumHardpoint2" data-journal-slot="MediumHardpoint2" data-socket="!Hardpoint9" data-direction-ratio-x="0" data-direction-ratio-y="0" data-offset-x-metres="-4.01976431" data-offset-y-metres="-0.2208419442">
|
|
23
|
+
<circle cx="284.925884" cy="300.828157" r="5"/>
|
|
24
|
+
</g>
|
|
25
|
+
</g>
|
|
26
|
+
</svg>
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 600 600" data-identity="asp_scout" data-target-range-metres="1000" data-half-span-tangent="0.08">
|
|
2
|
+
<g id="gunsight" fill="none" stroke="#22333b" stroke-width="2">
|
|
3
|
+
<circle cx="300" cy="300" r="12"/>
|
|
4
|
+
<circle cx="300" cy="300" r="2" fill="#22333b" stroke="none"/>
|
|
5
|
+
</g>
|
|
6
|
+
<g id="weapon-dots" fill="#e63946" stroke="#ffffff" stroke-width="1.5">
|
|
7
|
+
<g id="hardpoint-01" data-name="SmallHardpoint1" data-journal-slot="SmallHardpoint1" data-socket="!Hardpoint6" data-direction-ratio-x="0" data-direction-ratio-y="0" data-offset-x-metres="0.8882707894" data-offset-y-metres="-5.805761874">
|
|
8
|
+
<circle cx="303.331015" cy="321.771607" r="5"/>
|
|
9
|
+
</g>
|
|
10
|
+
<g id="hardpoint-02" data-name="SmallHardpoint2" data-journal-slot="SmallHardpoint2" data-socket="!Hardpoint7" data-direction-ratio-x="0" data-direction-ratio-y="0" data-offset-x-metres="-0.8607862056" data-offset-y-metres="-5.805761874">
|
|
11
|
+
<circle cx="296.772052" cy="321.771607" r="5"/>
|
|
12
|
+
</g>
|
|
13
|
+
<g id="hardpoint-03" data-name="MediumHardpoint1" data-journal-slot="MediumHardpoint1" data-socket="!Hardpoint8" data-direction-ratio-x="0" data-direction-ratio-y="0" data-offset-x-metres="4.019735926" data-offset-y-metres="-0.2208419442">
|
|
14
|
+
<circle cx="315.074010" cy="300.828157" r="5"/>
|
|
15
|
+
</g>
|
|
16
|
+
<g id="hardpoint-04" data-name="MediumHardpoint2" data-journal-slot="MediumHardpoint2" data-socket="!Hardpoint9" data-direction-ratio-x="0" data-direction-ratio-y="0" data-offset-x-metres="-4.01976431" data-offset-y-metres="-0.2208419442">
|
|
17
|
+
<circle cx="284.925884" cy="300.828157" r="5"/>
|
|
18
|
+
</g>
|
|
19
|
+
</g>
|
|
20
|
+
</svg>
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 600 600" data-identity="belugaliner" data-target-range-metres="1000" data-half-span-tangent="0.08">
|
|
2
|
+
<g id="gunsight" fill="none" stroke="#22333b" stroke-width="2">
|
|
3
|
+
<circle cx="300" cy="300" r="12"/>
|
|
4
|
+
<circle cx="300" cy="300" r="2" fill="#22333b" stroke="none"/>
|
|
5
|
+
</g>
|
|
6
|
+
<g id="weapon-dots" fill="#e63946" stroke="#ffffff" stroke-width="1.5">
|
|
7
|
+
<g id="hardpoint-01" data-name="MediumHardpoint1" data-journal-slot="MediumHardpoint1" data-socket="!Hardpoint6" data-direction-ratio-x="0" data-direction-ratio-y="0" data-offset-x-metres="-3.867887652" data-offset-y-metres="19.74544048">
|
|
8
|
+
<circle cx="285.495421" cy="225.954598" r="5"/>
|
|
9
|
+
</g>
|
|
10
|
+
<g id="hardpoint-02" data-name="MediumHardpoint2" data-journal-slot="MediumHardpoint2" data-socket="!Hardpoint7" data-direction-ratio-x="0" data-direction-ratio-y="0" data-offset-x-metres="3.86789211" data-offset-y-metres="19.74544048">
|
|
11
|
+
<circle cx="314.504595" cy="225.954598" r="5"/>
|
|
12
|
+
</g>
|
|
13
|
+
<g id="hardpoint-03" data-name="MediumHardpoint3" data-journal-slot="MediumHardpoint3" data-socket="!Hardpoint8" data-direction-ratio-x="0" data-direction-ratio-y="0" data-offset-x-metres="3.1204e-06" data-offset-y-metres="-12.56546021">
|
|
14
|
+
<circle cx="300.000012" cy="347.120476" r="5"/>
|
|
15
|
+
</g>
|
|
16
|
+
<g id="hardpoint-04" data-name="MediumHardpoint4" data-journal-slot="MediumHardpoint4" data-socket="!Hardpoint11" data-direction-ratio-x="0" data-direction-ratio-y="0" data-offset-x-metres="9.956502282" data-offset-y-metres="-13.03135967">
|
|
17
|
+
<circle cx="337.336884" cy="348.867599" r="5"/>
|
|
18
|
+
</g>
|
|
19
|
+
<g id="hardpoint-05" data-name="MediumHardpoint5" data-journal-slot="MediumHardpoint5" data-socket="!Hardpoint12" data-direction-ratio-x="0" data-direction-ratio-y="0" data-offset-x-metres="-10.04569784" data-offset-y-metres="-13.03135967">
|
|
20
|
+
<circle cx="262.328633" cy="348.867599" r="5"/>
|
|
21
|
+
</g>
|
|
22
|
+
</g>
|
|
23
|
+
</svg>
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 600 600" data-identity="cobramkiii" data-target-range-metres="1000" data-half-span-tangent="0.08">
|
|
2
|
+
<g id="gunsight" fill="none" stroke="#22333b" stroke-width="2">
|
|
3
|
+
<circle cx="300" cy="300" r="12"/>
|
|
4
|
+
<circle cx="300" cy="300" r="2" fill="#22333b" stroke="none"/>
|
|
5
|
+
</g>
|
|
6
|
+
<g id="weapon-dots" fill="#e63946" stroke="#ffffff" stroke-width="1.5">
|
|
7
|
+
<g id="hardpoint-01" data-name="MediumHardpoint1" data-journal-slot="MediumHardpoint1" data-socket="!Hardpoint0" data-direction-ratio-x="0" data-direction-ratio-y="0" data-offset-x-metres="-2.725256026" data-offset-y-metres="-2.219459772">
|
|
8
|
+
<circle cx="289.780290" cy="308.322974" r="5"/>
|
|
9
|
+
</g>
|
|
10
|
+
<g id="hardpoint-02" data-name="MediumHardpoint2" data-journal-slot="MediumHardpoint2" data-socket="!Hardpoint1" data-direction-ratio-x="0" data-direction-ratio-y="0" data-offset-x-metres="4.300404012" data-offset-y-metres="-2.219459772">
|
|
11
|
+
<circle cx="316.126515" cy="308.322974" r="5"/>
|
|
12
|
+
</g>
|
|
13
|
+
<g id="hardpoint-03" data-name="SmallHardpoint2" data-journal-slot="SmallHardpoint2" data-socket="!Hardpoint2" data-direction-ratio-x="0" data-direction-ratio-y="0" data-offset-x-metres="19.62892336" data-offset-y-metres="-4.274562851">
|
|
14
|
+
<circle cx="373.608463" cy="316.029611" r="5"/>
|
|
15
|
+
</g>
|
|
16
|
+
<g id="hardpoint-04" data-name="SmallHardpoint1" data-journal-slot="SmallHardpoint1" data-socket="!Hardpoint3" data-direction-ratio-x="0" data-direction-ratio-y="0" data-offset-x-metres="-18.16507536" data-offset-y-metres="-4.274562851">
|
|
17
|
+
<circle cx="231.880967" cy="316.029611" r="5"/>
|
|
18
|
+
</g>
|
|
19
|
+
</g>
|
|
20
|
+
</svg>
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 600 600" data-identity="cobramkiv" data-target-range-metres="1000" data-half-span-tangent="0.08">
|
|
2
|
+
<g id="gunsight" fill="none" stroke="#22333b" stroke-width="2">
|
|
3
|
+
<circle cx="300" cy="300" r="12"/>
|
|
4
|
+
<circle cx="300" cy="300" r="2" fill="#22333b" stroke="none"/>
|
|
5
|
+
</g>
|
|
6
|
+
<g id="weapon-dots" fill="#e63946" stroke="#ffffff" stroke-width="1.5">
|
|
7
|
+
<g id="hardpoint-01" data-name="MediumHardpoint1" data-journal-slot="MediumHardpoint1" data-socket="!Hardpoint0" data-direction-ratio-x="0" data-direction-ratio-y="0" data-offset-x-metres="-2.725256026" data-offset-y-metres="-2.219459772">
|
|
8
|
+
<circle cx="289.780290" cy="308.322974" r="5"/>
|
|
9
|
+
</g>
|
|
10
|
+
<g id="hardpoint-02" data-name="MediumHardpoint2" data-journal-slot="MediumHardpoint2" data-socket="!Hardpoint1" data-direction-ratio-x="0" data-direction-ratio-y="0" data-offset-x-metres="4.300404012" data-offset-y-metres="-2.219459772">
|
|
11
|
+
<circle cx="316.126515" cy="308.322974" r="5"/>
|
|
12
|
+
</g>
|
|
13
|
+
<g id="hardpoint-03" data-name="SmallHardpoint2" data-journal-slot="SmallHardpoint2" data-socket="!Hardpoint2" data-direction-ratio-x="0" data-direction-ratio-y="0" data-offset-x-metres="3.627923906" data-offset-y-metres="1.653739929">
|
|
14
|
+
<circle cx="313.604715" cy="293.798475" r="5"/>
|
|
15
|
+
</g>
|
|
16
|
+
<g id="hardpoint-04" data-name="SmallHardpoint1" data-journal-slot="SmallHardpoint1" data-socket="!Hardpoint3" data-direction-ratio-x="0" data-direction-ratio-y="0" data-offset-x-metres="-2.16423589" data-offset-y-metres="1.653739929">
|
|
17
|
+
<circle cx="291.884115" cy="293.798475" r="5"/>
|
|
18
|
+
</g>
|
|
19
|
+
<g id="hardpoint-05" data-name="SmallHardpoint3" data-journal-slot="SmallHardpoint3" data-socket="!Hardpoint8" data-direction-ratio-x="0" data-direction-ratio-y="0" data-offset-x-metres="0.7319211364" data-offset-y-metres="1.53098011">
|
|
20
|
+
<circle cx="302.744704" cy="294.258825" r="5"/>
|
|
21
|
+
</g>
|
|
22
|
+
</g>
|
|
23
|
+
</svg>
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 600 600" data-identity="cobramkv" data-target-range-metres="1000" data-half-span-tangent="0.08">
|
|
2
|
+
<g id="gunsight" fill="none" stroke="#22333b" stroke-width="2">
|
|
3
|
+
<circle cx="300" cy="300" r="12"/>
|
|
4
|
+
<circle cx="300" cy="300" r="2" fill="#22333b" stroke="none"/>
|
|
5
|
+
</g>
|
|
6
|
+
<g id="weapon-dots" fill="#e63946" stroke="#ffffff" stroke-width="1.5">
|
|
7
|
+
<g id="hardpoint-01" data-name="MediumHardpoint1" data-journal-slot="MediumHardpoint1" data-socket="!Hardpoint0" data-direction-ratio-x="0" data-direction-ratio-y="0" data-offset-x-metres="-6.025300026" data-offset-y-metres="-2.749541938">
|
|
8
|
+
<circle cx="277.405125" cy="310.310782" r="5"/>
|
|
9
|
+
</g>
|
|
10
|
+
<g id="hardpoint-02" data-name="MediumHardpoint2" data-journal-slot="MediumHardpoint2" data-socket="!Hardpoint1" data-direction-ratio-x="0" data-direction-ratio-y="0" data-offset-x-metres="6.025300026" data-offset-y-metres="-2.749541938">
|
|
11
|
+
<circle cx="322.594875" cy="310.310782" r="5"/>
|
|
12
|
+
</g>
|
|
13
|
+
<g id="hardpoint-03" data-name="SmallHardpoint2" data-journal-slot="SmallHardpoint2" data-socket="!Hardpoint2" data-direction-ratio-x="0" data-direction-ratio-y="0" data-offset-x-metres="8.157999992" data-offset-y-metres="-1.031039953">
|
|
14
|
+
<circle cx="330.592500" cy="303.866400" r="5"/>
|
|
15
|
+
</g>
|
|
16
|
+
<g id="hardpoint-04" data-name="SmallHardpoint1" data-journal-slot="SmallHardpoint1" data-socket="!Hardpoint3" data-direction-ratio-x="0" data-direction-ratio-y="0" data-offset-x-metres="-8.157670021" data-offset-y-metres="-1.031039953">
|
|
17
|
+
<circle cx="269.408737" cy="303.866400" r="5"/>
|
|
18
|
+
</g>
|
|
19
|
+
<g id="hardpoint-05" data-name="MediumHardpoint3" data-journal-slot="MediumHardpoint3" data-socket="!Hardpoint8" data-direction-ratio-x="0" data-direction-ratio-y="0" data-offset-x-metres="0" data-offset-y-metres="3.086419821">
|
|
20
|
+
<circle cx="300.000000" cy="288.425926" r="5"/>
|
|
21
|
+
</g>
|
|
22
|
+
</g>
|
|
23
|
+
</svg>
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 600 600" data-identity="corsair" data-target-range-metres="1000" data-half-span-tangent="0.08">
|
|
2
|
+
<g id="gunsight" fill="none" stroke="#22333b" stroke-width="2">
|
|
3
|
+
<circle cx="300" cy="300" r="12"/>
|
|
4
|
+
<circle cx="300" cy="300" r="2" fill="#22333b" stroke="none"/>
|
|
5
|
+
</g>
|
|
6
|
+
<g id="weapon-dots" fill="#e63946" stroke="#ffffff" stroke-width="1.5">
|
|
7
|
+
<g id="hardpoint-01" data-name="LargeHardpoint1" data-journal-slot="LargeHardpoint1" data-socket="!Hardpoint0" data-direction-ratio-x="0" data-direction-ratio-y="0" data-offset-x-metres="-0.000246232" data-offset-y-metres="1.928740025">
|
|
8
|
+
<circle cx="299.999077" cy="292.767225" r="5"/>
|
|
9
|
+
</g>
|
|
10
|
+
<g id="hardpoint-02" data-name="LargeHardpoint2" data-journal-slot="LargeHardpoint2" data-socket="!Hardpoint1" data-direction-ratio-x="0" data-direction-ratio-y="0" data-offset-x-metres="-3.847556298" data-offset-y-metres="-5.660593912">
|
|
11
|
+
<circle cx="285.571664" cy="321.227227" r="5"/>
|
|
12
|
+
</g>
|
|
13
|
+
<g id="hardpoint-03" data-name="LargeHardpoint3" data-journal-slot="LargeHardpoint3" data-socket="!Hardpoint2" data-direction-ratio-x="0" data-direction-ratio-y="0" data-offset-x-metres="3.846753652" data-offset-y-metres="-5.660593912">
|
|
14
|
+
<circle cx="314.425326" cy="321.227227" r="5"/>
|
|
15
|
+
</g>
|
|
16
|
+
<g id="hardpoint-04" data-name="MediumHardpoint3" data-journal-slot="MediumHardpoint3" data-socket="!Hardpoint3" data-direction-ratio-x="0" data-direction-ratio-y="0" data-offset-x-metres="-0.000246232" data-offset-y-metres="-12.9786396">
|
|
17
|
+
<circle cx="299.999077" cy="348.669899" r="5"/>
|
|
18
|
+
</g>
|
|
19
|
+
<g id="hardpoint-05" data-name="MediumHardpoint2" data-journal-slot="MediumHardpoint2" data-socket="!Hardpoint4" data-direction-ratio-x="0" data-direction-ratio-y="0" data-offset-x-metres="-3.895796245" data-offset-y-metres="0.2843203545">
|
|
20
|
+
<circle cx="285.390764" cy="298.933799" r="5"/>
|
|
21
|
+
</g>
|
|
22
|
+
<g id="hardpoint-06" data-name="MediumHardpoint1" data-journal-slot="MediumHardpoint1" data-socket="!Hardpoint5" data-direction-ratio-x="0" data-direction-ratio-y="0" data-offset-x-metres="3.895303781" data-offset-y-metres="0.2843203545">
|
|
23
|
+
<circle cx="314.607389" cy="298.933799" r="5"/>
|
|
24
|
+
</g>
|
|
25
|
+
</g>
|
|
26
|
+
</svg>
|