Files
brevyscribe/src/transforms/__fixtures__/rangers.merge.ros
T
luxick 62d6bd211b
CI / check (push) Has been cancelled
Fork FancyScribe as BrevyScribe with the datasheet transforms built in
Print generic datasheets - every option a unit could take, the way the
official cards read - instead of a record of one particular list.

The three Python scripts that used to rewrite the .ros file before upload
are now transforms in src/transforms/, running in the browser between
DOMParser and the roster parser. Most of each script was machinery for
preserving the file byte for byte on the way back to disk; in the browser
the document is never serialised, so only the domain logic came across.

Because they run on the parsed document rather than the uploaded file,
flipping a transform off rebuilds from the original XML with no
re-upload. Saved rosters therefore hold the raw roster XML rather than
the parsed object, under new localStorage keys.

The scripts' output over four 11th-edition rosters is checked in as test
fixtures, so the port is measured against an independent implementation
that was verified by printing the cards; scripts/update-fixtures.mjs
refuses to overwrite those without --force.

Two parser call sites now use :scope> rather than repeating the scope
element's own name, which means the same thing in a browser and also
works under jsdom, where the old form matched nothing.

Also: served at the root rather than a GitHub Pages subpath, PostHog
analytics removed, and deploy/ carries an nginx site for
scribe.luxick.de plus an rsync deploy script.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-07-25 15:11:10 +02:00

29 lines
30 KiB
XML
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<roster id="7rmu2zl" name="TEST" battleScribeVersion="2.03" generatedBy="https://newrecruit.eu" gameSystemId="sys-352e-adc2-7639-d610" gameSystemName="Warhammer 40,000 11th Edition" gameSystemRevision="6" xmlns="http://www.battlescribe.net/schema/rosterSchema"><costs><cost name="pts" typeId="51b2-306e-1021-d207" value="170" /></costs><forces><force id="7wfvr6o" name="Army Roster" entryId="bb9d-299a-ed60-2d8a" catalogueId="77b9-2f66-3f9b-5cf3" catalogueRevision="5" catalogueName="Imperium - Adeptus Mechanicus"><selections><selection id="bky5c11" name="Battle Size" entryId="7380-3e40-6ed6-b7cc::564e-fbc6-5266-3ea4" number="1" type="upgrade" from="entry"><categories><category id="4ac9-fd30-1e3d-b249" entryId="4ac9-fd30-1e3d-b249" name="Configuration" primary="true" /></categories></selection><selection id="bg2lcx" name="Detachment" entryId="2874-c86-3152-393::c82f-1b42-946-9c9a" number="1" type="upgrade" from="entry"><categories><category id="4ac9-fd30-1e3d-b249" entryId="4ac9-fd30-1e3d-b249" name="Configuration" primary="true" /></categories></selection><selection id="bdcmhqi" name="Force Disposition" entryId="8bc8-6bfe-78bd-2480::2f69-9148-45b4-86a8" number="1" type="upgrade" from="entry"><categories><category id="4ac9-fd30-1e3d-b249" entryId="4ac9-fd30-1e3d-b249" name="Configuration" primary="true" /></categories></selection><selection id="bnoi9vo" name="Show/Hide Options" entryId="3458-3cff-ef5f-a7c5::e8ef-836a-a9d1-901d" number="1" type="upgrade" from="entry"><categories><category id="4ac9-fd30-1e3d-b249" entryId="4ac9-fd30-1e3d-b249" name="Configuration" primary="true" /></categories></selection><selection id="iaoyf1" name="Skitarii Rangers" entryId="cb4c-b9a7-a9fd-b2de::de59-f65c-181a-8509" number="1" type="unit" from="entry"><rules><rule id="ada6-bac1-ffe0-d6f7" name="Scouts 6&quot;" hidden="false" page="39"><description>This ability always takes the form **Scouts X&quot;**. In the Resolve Pre-battle Abilities step, if every model in a unit has this ability, you can do one of the following: 
- If that unit is in **strategic reserves**, you can set up that unit anywhere that is wholly within your deployment zone. 
- If that unit is wholly within your deployment zone, it can make a **scout move**. 
- If that unit is embarked within a **DEDICATED TRANSPORT** that is wholly within your deployment zone, and if every model embarked within that **DEDICATED TRANSPORT** has the Scouts ability, that **DEDICATED TRANSPORT** can make a **scout move**.</description></rule><rule id="7a21-a958-e47d-5c0d" name="Doctrina Imperatives" hidden="false"><description>At the start of the battle round, you can select one of the Doctrina Imperatives below. Until the end of the battle round, that Doctrina Imperative is active for your army, and all units from your army that have the Doctrina Imperatives ability gain the relevant abilities shown below.
PROTECTOR IMPERATIVE
■ Ranged weapons equipped by models in this unit have the [HEAVY] ability.
■ Improve the Ballistic Skill characteristic of ranged weapons equipped by models in this unit by 1.
■ Each time a melee attack targets this unit, if this unit has the ^^**Battleline**^^ keyword and/or it is within 6&quot; of one or more friendly **^^Adeptus Mechanicus Battleline**^^ units, subtract 1 from the Hit roll.
CONQUEROR IMPERATIVE
■ Ranged weapons equipped by models in this unit have the [ASSAULT] ability.
■ Improve the Weapon Skill characteristic of melee weapons equipped by models in this unit by 1.
■ Each time a model in this unit makes an attack, if this unit has the **^^Battleline**^^ keyword and/or it is within 6&quot; of one or more friendly **^^Adeptus Mechanicus Battleline**^^ units, improve the Armour Penetration characteristic of that attack by 1.</description></rule></rules><profiles><profile id="013b-d05a-1fbc-40a5" name="Skitarii Rangers" hidden="false" typeId="c547-1836-d8a-ff4f" typeName="Unit" from="entry"><characteristics><characteristic name="M" typeId="e703-ecb6-5ce7-aec1">6&quot;</characteristic><characteristic name="T" typeId="d29d-cf75-fc2d-34a4">3</characteristic><characteristic name="Sv" typeId="450-a17e-9d5e-29da">4+</characteristic><characteristic name="W" typeId="750a-a2ec-90d3-21fe">1</characteristic><characteristic name="LD" typeId="58d2-b879-49c7-43bc">7+</characteristic><characteristic name="OC" typeId="bef7-942a-1a23-59f8">2</characteristic><characteristic name="InSv" typeId="55a7-5b54-c60d-11dc">5+</characteristic></characteristics></profile><profile id="3d74-3888-b3ba-d044" name="Objective Scouted" hidden="false" typeId="9cc3-6d83-4dd3-9b64" typeName="Abilities" from="entry"><characteristics><characteristic name="Description" typeId="9b8f-694b-e5e-b573">At the end of your Command phase, if this unit is within range of an objective marker you control, that objective marker remains under your control, even if you have no models within range of it, until your opponent controls it at the start or end of any turn.</characteristic></characteristics></profile></profiles><selections><selection id="ib6frjj" name="Skitarii Ranger Alpha" entryId="cb4c-b9a7-a9fd-b2de::e4b2-478b-a217-f999" number="1" type="model" from="entry"><selections><selection id="ifwp79" name="Alpha combat weapon" entryId="cb4c-b9a7-a9fd-b2de::5e8b-2f7f-6ef5-42e3" number="1" type="upgrade" from="entry"><profiles><profile id="532e-9f57-5eb5-5a29" name="Alpha combat weapon" hidden="false" typeId="8a40-4aaa-c780-9046" typeName="Melee Weapons" from="entry"><characteristics><characteristic name="Range" typeId="914c-b413-91e3-a132">Melee</characteristic><characteristic name="A" typeId="2337-daa1-6682-b110">2</characteristic><characteristic name="WS" typeId="95d1-95f-45b4-11d6">4+</characteristic><characteristic name="S" typeId="ab33-d393-96ce-ccba">5</characteristic><characteristic name="AP" typeId="41a0-1301-112a-e2f2">-1</characteristic><characteristic name="D" typeId="3254-9fe6-d824-513e">1</characteristic><characteristic name="Keywords" typeId="893f-9000-ccf7-648e">-</characteristic></characteristics></profile></profiles></selection><selection id="ifyk20o" name="Close combat weapon" entryId="cb4c-b9a7-a9fd-b2de::c88b-f6ce-fc07-df7a::2f1a-2fc7-2843-549d" number="1" type="upgrade" from="entry"><profiles><profile id="d317-6ae2-d64a-5831" name="Close combat weapon" hidden="false" typeId="8a40-4aaa-c780-9046" typeName="Melee Weapons" from="entry"><characteristics><characteristic name="Range" typeId="914c-b413-91e3-a132">Melee</characteristic><characteristic name="A" typeId="2337-daa1-6682-b110">1</characteristic><characteristic name="WS" typeId="95d1-95f-45b4-11d6">4+</characteristic><characteristic name="S" typeId="ab33-d393-96ce-ccba">3</characteristic><characteristic name="AP" typeId="41a0-1301-112a-e2f2">0</characteristic><characteristic name="D" typeId="3254-9fe6-d824-513e">1</characteristic><characteristic name="Keywords" typeId="893f-9000-ccf7-648e">-</characteristic></characteristics></profile></profiles></selection><selection id="if06eqb" name="Mechanicus pistol" entryId="cb4c-b9a7-a9fd-b2de::81fb-ddc2-edef-4aab::2b1f-798d-9bca-4ad9" entryGroupId="cb4c-b9a7-a9fd-b2de::c6a2-e9ac-9e52-a8b2" number="1" type="upgrade" from="group" group="Ranged weapon"><rules><rule id="be1e-ac8e-1e2c-3528" name="Devastating Wounds" hidden="false" page="28"><description>Each time an attack made with a **[DEVASTATING WOUNDS]** weapon results in a **critical wound**, the attack sequence for that attack ends and the target unit suffers a number of **mortal wounds** equal to the **D** characteristic of that weapon. These are inflicted after resolving any normal damage inflicted by those attacks. 
**Mortal wounds** inflicted by **[DEVASTATING WOUNDS]** weapons can damage a maximum of one model for each **critical wound**; any remaining **mortal wounds** inflicted by that attack are lost. 
**Example: An attack made with a **[DEVASTATING WOUNDS]** weapon with a **D** characteristic of 3 results in a **critical wound** against an Intercessor Squad, so inflicts 3 **mortal wounds**. The first 2 **mortal wounds** are sufficient to **destroy** 1 Intercessor model, so the remaining **mortal wound** is lost.*</description></rule><rule id="8bf7-8812-923d-29e4" name="Pistol" hidden="false" page="25"><description>**[PISTOL]** and **[CLOSE-QUARTERS]** are identical for all rules purposes. 
Units containing one or more models with a **[CLOSE-QUARTERS]** weapon can shoot using **close-quarters shooting** (10.06). When using another **shooting type**, for each model in that unit (excluding **MONSTER/VEHICLE** models), you can only select one of the following to make attacks with: 
- One or more of its **[CLOSE-QUARTERS]** weapons. 
- One or more of its other ranged weapons.</description></rule></rules><profiles><profile id="43ca-9255-d4f5-3962" name="Mechanicus pistol" hidden="false" typeId="f77d-b953-8fa4-b762" typeName="Ranged Weapons" from="entry"><characteristics><characteristic name="Range" typeId="9896-9419-16a1-92fc">12&quot;</characteristic><characteristic name="A" typeId="3bb-c35f-f54-fb08">1</characteristic><characteristic name="BS" typeId="94d-8a98-cf90-183e">4+</characteristic><characteristic name="S" typeId="2229-f494-25db-c5d3">6</characteristic><characteristic name="AP" typeId="9ead-8a10-520-de15">-1</characteristic><characteristic name="D" typeId="a354-c1c8-a745-f9e3">1</characteristic><characteristic name="Keywords" typeId="7f1b-8591-2fcf-d01c">Devastating Wounds, Pistol</characteristic></characteristics></profile></profiles><categories><category id="eeda-8544-a2f3-3fab" name="Ranged Weapon" entryId="eeda-8544-a2f3-3fab" primary="false" /></categories></selection></selections></selection><selection id="icexpa" name="Skitarii Ranger w/ arc rifle" entryId="cb4c-b9a7-a9fd-b2de::b93c-a0a7-1c46-66c4" entryGroupId="cb4c-b9a7-a9fd-b2de::24a0-5541-79b2-b1ff" number="1" type="model" from="group" group="9 Skitarii Rangers"><selections><selection id="imi1i2s" name="Arc rifle" entryId="cb4c-b9a7-a9fd-b2de::a3ca-8ea1-d6de-8df2" number="1" type="upgrade" from="entry"><rules><rule id="c5c8-8b58-b8b6-7786" name="Rapid Fire" hidden="false" page="25"><description>This ability always takes the form **[RAPID FIRE X]**. Each time you gather **attack dice** for a **[RAPID FIRE]** weapon, add **X** additional **attack dice** if the target unit was within half range of that weapon in the Select Targets step. 
***Example:** If a **[RAPID FIRE 1]** weapon with an **A** characteristic of 1 targets a unit that is within half range, you would gather one additional **attack dice** for that weapon (for a total of two for that weapon).*</description></rule><rule id="4111-82e3-9444-e942" name="Anti" hidden="false" page="28"><description>This ability always takes the form **[ANTI-X Y+]**. Each time an attack is made with an **[ANTI]** weapon, if the target unit has the keyword denoted by **X**, an unmodified **wound roll** of **Y+** is a **critical wound**.
***Example:** An attack made with an **[ANTI-VEHICLE 4+]** weapon against a ^^**Vehicle**^^ unit will result in a **critical wound** on an unmodified **wound roll** of 4+, while an attack made with an **[ANTI-PSYKER 2+]** weapon against a ^^**Psyker**^^ unit will result in a **critical wound** on an unmodified **wound roll** of 2+.*</description></rule><rule id="be1e-ac8e-1e2c-3528" name="Devastating Wounds" hidden="false" page="28"><description>Each time an attack made with a **[DEVASTATING WOUNDS]** weapon results in a **critical wound**, the attack sequence for that attack ends and the target unit suffers a number of **mortal wounds** equal to the **D** characteristic of that weapon. These are inflicted after resolving any normal damage inflicted by those attacks. 
**Mortal wounds** inflicted by **[DEVASTATING WOUNDS]** weapons can damage a maximum of one model for each **critical wound**; any remaining **mortal wounds** inflicted by that attack are lost. 
**Example: An attack made with a **[DEVASTATING WOUNDS]** weapon with a **D** characteristic of 3 results in a **critical wound** against an Intercessor Squad, so inflicts 3 **mortal wounds**. The first 2 **mortal wounds** are sufficient to **destroy** 1 Intercessor model, so the remaining **mortal wound** is lost.*</description></rule></rules><profiles><profile id="8908-36ba-7ec3-c451" name="Arc rifle" hidden="false" typeId="f77d-b953-8fa4-b762" typeName="Ranged Weapons" from="entry"><characteristics><characteristic name="Range" typeId="9896-9419-16a1-92fc">30&quot;</characteristic><characteristic name="A" typeId="3bb-c35f-f54-fb08">1</characteristic><characteristic name="BS" typeId="94d-8a98-cf90-183e">4+</characteristic><characteristic name="S" typeId="2229-f494-25db-c5d3">8</characteristic><characteristic name="AP" typeId="9ead-8a10-520-de15">-1</characteristic><characteristic name="D" typeId="a354-c1c8-a745-f9e3">D3</characteristic><characteristic name="Keywords" typeId="7f1b-8591-2fcf-d01c">Anti-Vehicle 4+, Devastating Wounds, Rapid Fire 1</characteristic></characteristics></profile></profiles><categories><category id="4986-bf86-beb4-13ac" name="Damage Dx Weapon" entryId="4986-bf86-beb4-13ac" primary="false" /></categories></selection><selection id="imvygop" name="Close combat weapon" entryId="cb4c-b9a7-a9fd-b2de::d3f4-cd9f-6358-7484::2f1a-2fc7-2843-549d" number="1" type="upgrade" from="entry"><profiles><profile id="d317-6ae2-d64a-5831" name="Close combat weapon" hidden="false" typeId="8a40-4aaa-c780-9046" typeName="Melee Weapons" from="entry"><characteristics><characteristic name="Range" typeId="914c-b413-91e3-a132">Melee</characteristic><characteristic name="A" typeId="2337-daa1-6682-b110">1</characteristic><characteristic name="WS" typeId="95d1-95f-45b4-11d6">4+</characteristic><characteristic name="S" typeId="ab33-d393-96ce-ccba">3</characteristic><characteristic name="AP" typeId="41a0-1301-112a-e2f2">0</characteristic><characteristic name="D" typeId="3254-9fe6-d824-513e">1</characteristic><characteristic name="Keywords" typeId="893f-9000-ccf7-648e">-</characteristic></characteristics></profile></profiles></selection></selections></selection><selection id="icp9adm" name="Skitarii Ranger w/ galvanic rifle" entryId="cb4c-b9a7-a9fd-b2de::b27c-7f37-083e-9234" entryGroupId="cb4c-b9a7-a9fd-b2de::24a0-5541-79b2-b1ff" number="1" type="model" from="group" group="9 Skitarii Rangers"><selections><selection id="iqpb7" name="Close combat weapon" entryId="cb4c-b9a7-a9fd-b2de::7d33-efbb-ded7-184f::2f1a-2fc7-2843-549d" number="1" type="upgrade" from="entry"><profiles><profile id="d317-6ae2-d64a-5831" name="Close combat weapon" hidden="false" typeId="8a40-4aaa-c780-9046" typeName="Melee Weapons" from="entry"><characteristics><characteristic name="Range" typeId="914c-b413-91e3-a132">Melee</characteristic><characteristic name="A" typeId="2337-daa1-6682-b110">1</characteristic><characteristic name="WS" typeId="95d1-95f-45b4-11d6">4+</characteristic><characteristic name="S" typeId="ab33-d393-96ce-ccba">3</characteristic><characteristic name="AP" typeId="41a0-1301-112a-e2f2">0</characteristic><characteristic name="D" typeId="3254-9fe6-d824-513e">1</characteristic><characteristic name="Keywords" typeId="893f-9000-ccf7-648e">-</characteristic></characteristics></profile></profiles></selection><selection id="iqq2e1q" name="Galvanic rifle" entryId="cb4c-b9a7-a9fd-b2de::6483-eb5-46a4-ff63" number="1" type="upgrade" from="entry"><profiles><profile id="db1c-cc92-e358-9c80" name="Galvanic rifle" hidden="false" typeId="f77d-b953-8fa4-b762" typeName="Ranged Weapons" from="entry"><characteristics><characteristic name="Range" typeId="9896-9419-16a1-92fc">30&quot;</characteristic><characteristic name="A" typeId="3bb-c35f-f54-fb08">2</characteristic><characteristic name="BS" typeId="94d-8a98-cf90-183e">4+</characteristic><characteristic name="S" typeId="2229-f494-25db-c5d3">4</characteristic><characteristic name="AP" typeId="9ead-8a10-520-de15">0</characteristic><characteristic name="D" typeId="a354-c1c8-a745-f9e3">1</characteristic><characteristic name="Keywords" typeId="7f1b-8591-2fcf-d01c">-</characteristic></characteristics></profile></profiles></selection></selections></selection><selection id="idm0h4" name="Skitarii Ranger w/ omnispex" entryId="cb4c-b9a7-a9fd-b2de::626e-72e0-7869-82c1" entryGroupId="cb4c-b9a7-a9fd-b2de::24a0-5541-79b2-b1ff" number="1" type="model" from="group" group="9 Skitarii Rangers"><selections><selection id="iu8lgka" name="Close combat weapon" entryId="cb4c-b9a7-a9fd-b2de::ec0f-669b-268-f632::2f1a-2fc7-2843-549d" number="1" type="upgrade" from="entry"><profiles><profile id="d317-6ae2-d64a-5831" name="Close combat weapon" hidden="false" typeId="8a40-4aaa-c780-9046" typeName="Melee Weapons" from="entry"><characteristics><characteristic name="Range" typeId="914c-b413-91e3-a132">Melee</characteristic><characteristic name="A" typeId="2337-daa1-6682-b110">1</characteristic><characteristic name="WS" typeId="95d1-95f-45b4-11d6">4+</characteristic><characteristic name="S" typeId="ab33-d393-96ce-ccba">3</characteristic><characteristic name="AP" typeId="41a0-1301-112a-e2f2">0</characteristic><characteristic name="D" typeId="3254-9fe6-d824-513e">1</characteristic><characteristic name="Keywords" typeId="893f-9000-ccf7-648e">-</characteristic></characteristics></profile></profiles></selection><selection id="it4ti8i" name="Galvanic rifle" entryId="cb4c-b9a7-a9fd-b2de::3d89-dec1-eaa9-47f3" number="1" type="upgrade" from="entry"><profiles><profile id="9d76-a181-3b5c-bb05" name="Galvanic rifle" hidden="false" typeId="f77d-b953-8fa4-b762" typeName="Ranged Weapons" from="entry"><characteristics><characteristic name="Range" typeId="9896-9419-16a1-92fc">30&quot;</characteristic><characteristic name="A" typeId="3bb-c35f-f54-fb08">2</characteristic><characteristic name="BS" typeId="94d-8a98-cf90-183e">4+</characteristic><characteristic name="S" typeId="2229-f494-25db-c5d3">4</characteristic><characteristic name="AP" typeId="9ead-8a10-520-de15">0</characteristic><characteristic name="D" typeId="a354-c1c8-a745-f9e3">1</characteristic><characteristic name="Keywords" typeId="7f1b-8591-2fcf-d01c">-</characteristic></characteristics></profile></profiles></selection><selection id="itha37s" name="Omnispex" entryId="cb4c-b9a7-a9fd-b2de::2422-d56e-c8ee-7fa1" number="1" type="upgrade" from="entry"><profiles><profile id="fd15-1322-c1a8-9568" name="Omnispex" hidden="false" typeId="9cc3-6d83-4dd3-9b64" typeName="Abilities" from="entry"><characteristics><characteristic name="Description" typeId="9b8f-694b-e5e-b573">Ranged weapons equipped by models in the bearers unit have the IGNORES COVER ability.</characteristic></characteristics></profile></profiles></selection></selections></selection><selection id="ic1xfv" name="Skitarii Ranger w/ plasma caliver" entryId="cb4c-b9a7-a9fd-b2de::b472-94bc-9482-44b6" entryGroupId="cb4c-b9a7-a9fd-b2de::24a0-5541-79b2-b1ff" number="1" type="model" from="group" group="9 Skitarii Rangers"><selections><selection id="j0anbqu" name="Close combat weapon" entryId="cb4c-b9a7-a9fd-b2de::dd52-c8f4-68d1-23d3::2f1a-2fc7-2843-549d" number="1" type="upgrade" from="entry"><profiles><profile id="d317-6ae2-d64a-5831" name="Close combat weapon" hidden="false" typeId="8a40-4aaa-c780-9046" typeName="Melee Weapons" from="entry"><characteristics><characteristic name="Range" typeId="914c-b413-91e3-a132">Melee</characteristic><characteristic name="A" typeId="2337-daa1-6682-b110">1</characteristic><characteristic name="WS" typeId="95d1-95f-45b4-11d6">4+</characteristic><characteristic name="S" typeId="ab33-d393-96ce-ccba">3</characteristic><characteristic name="AP" typeId="41a0-1301-112a-e2f2">0</characteristic><characteristic name="D" typeId="3254-9fe6-d824-513e">1</characteristic><characteristic name="Keywords" typeId="893f-9000-ccf7-648e">-</characteristic></characteristics></profile></profiles></selection><selection id="j0eyo15" name="Plasma caliver" entryId="cb4c-b9a7-a9fd-b2de::ab93-64bd-1c95-c6a7" number="1" type="upgrade" from="entry"><rules><rule id="8367-374c-f87-c627" name="Hazardous" hidden="false" page="28"><description>Each time a unit is **selected to shoot** or **selected to fight**, after that unit has resolved all of its attacks, make a number of **hazard rolls** (06.03) for that unit equal to the number of **[HAZARDOUS]** weapons you selected in the Select Weapons step.</description></rule></rules><profiles><profile id="5dcb-d52c-692f-ccdf" name="➤ Plasma caliver - supercharge" hidden="false" typeId="f77d-b953-8fa4-b762" typeName="Ranged Weapons" from="entry"><characteristics><characteristic name="Range" typeId="9896-9419-16a1-92fc">30&quot;</characteristic><characteristic name="A" typeId="3bb-c35f-f54-fb08">2</characteristic><characteristic name="BS" typeId="94d-8a98-cf90-183e">4+</characteristic><characteristic name="S" typeId="2229-f494-25db-c5d3">8</characteristic><characteristic name="AP" typeId="9ead-8a10-520-de15">-3</characteristic><characteristic name="D" typeId="a354-c1c8-a745-f9e3">2</characteristic><characteristic name="Keywords" typeId="7f1b-8591-2fcf-d01c">Hazardous</characteristic></characteristics></profile><profile id="bd00-ac4a-4c05-c059" name="➤ Plasma caliver - standard" hidden="false" typeId="f77d-b953-8fa4-b762" typeName="Ranged Weapons" from="entry"><characteristics><characteristic name="Range" typeId="9896-9419-16a1-92fc">30&quot;</characteristic><characteristic name="A" typeId="3bb-c35f-f54-fb08">2</characteristic><characteristic name="BS" typeId="94d-8a98-cf90-183e">4+</characteristic><characteristic name="S" typeId="2229-f494-25db-c5d3">7</characteristic><characteristic name="AP" typeId="9ead-8a10-520-de15">-2</characteristic><characteristic name="D" typeId="a354-c1c8-a745-f9e3">1</characteristic><characteristic name="Keywords" typeId="7f1b-8591-2fcf-d01c">-</characteristic></characteristics></profile></profiles></selection></selections></selection><selection id="ic0bmrs" name="Skitarii Ranger w/ transuranic arquebus" entryId="cb4c-b9a7-a9fd-b2de::22b3-9c84-0982-8627" entryGroupId="cb4c-b9a7-a9fd-b2de::24a0-5541-79b2-b1ff" number="1" type="model" from="group" group="9 Skitarii Rangers"><selections><selection id="j4f7vxh" name="Close combat weapon" entryId="cb4c-b9a7-a9fd-b2de::5281-ac75-7499-b970::2f1a-2fc7-2843-549d" number="1" type="upgrade" from="entry"><profiles><profile id="d317-6ae2-d64a-5831" name="Close combat weapon" hidden="false" typeId="8a40-4aaa-c780-9046" typeName="Melee Weapons" from="entry"><characteristics><characteristic name="Range" typeId="914c-b413-91e3-a132">Melee</characteristic><characteristic name="A" typeId="2337-daa1-6682-b110">1</characteristic><characteristic name="WS" typeId="95d1-95f-45b4-11d6">4+</characteristic><characteristic name="S" typeId="ab33-d393-96ce-ccba">3</characteristic><characteristic name="AP" typeId="41a0-1301-112a-e2f2">0</characteristic><characteristic name="D" typeId="3254-9fe6-d824-513e">1</characteristic><characteristic name="Keywords" typeId="893f-9000-ccf7-648e">-</characteristic></characteristics></profile></profiles></selection><selection id="j461d8e" name="Transuranic arquebus" entryId="cb4c-b9a7-a9fd-b2de::882-910a-c7c4-13b2" number="1" type="upgrade" from="entry"><rules><rule id="1202-10a8-78e9-4c67" name="Heavy" hidden="false" page="26"><description>In your Shooting phase, each time an attack is made with a **[HEAVY]** weapon, add 1 to the **hit roll** if all of the following apply to the attacking unit: 
- That unit is **unengaged**. 
- That unit was not set up on the battlefield this turn. 
- No model in that unit has moved more than 3&quot; this turn.</description></rule><rule id="9143-31ae-e0a6-6007" name="Precision" hidden="false" page="26"><description>While resolving attacks made with one or more **[PRECISION]** weapons, at the start of the Allocation Order step (05.03), if the target unit contains one or more **CHARACTER** models **visible** to one or more of the attacking models, the active player can select one allocation group that contains one of those **visible CHARACTER** models. If they do, until those attacks are resolved, or until that **CHARACTER** group is **destroyed** (whichever happens first), that **CHARACTER** group is the current allocation group.</description></rule></rules><profiles><profile id="1ca4-4582-3e1b-a7b0" name="Transuranic arquebus" hidden="false" typeId="f77d-b953-8fa4-b762" typeName="Ranged Weapons" from="entry"><characteristics><characteristic name="Range" typeId="9896-9419-16a1-92fc">36&quot;</characteristic><characteristic name="A" typeId="3bb-c35f-f54-fb08">1</characteristic><characteristic name="BS" typeId="94d-8a98-cf90-183e">4+</characteristic><characteristic name="S" typeId="2229-f494-25db-c5d3">7</characteristic><characteristic name="AP" typeId="9ead-8a10-520-de15">-2</characteristic><characteristic name="D" typeId="a354-c1c8-a745-f9e3">D3</characteristic><characteristic name="Keywords" typeId="7f1b-8591-2fcf-d01c">Heavy, Precision</characteristic></characteristics></profile></profiles><categories><category id="4986-bf86-beb4-13ac" name="Damage Dx Weapon" entryId="4986-bf86-beb4-13ac" primary="false" /></categories></selection></selections></selection><selection id="jnmkft" name="Skitarii Ranger w/ data-tether" entryId="cb4c-b9a7-a9fd-b2de::f525-f4d5-1ea1-ecaf" entryGroupId="cb4c-b9a7-a9fd-b2de::24a0-5541-79b2-b1ff" number="1" type="model" from="group" group="9 Skitarii Rangers"><selections><selection id="k71xjnt" name="Close combat weapon" entryId="cb4c-b9a7-a9fd-b2de::3af4-da3-68e5-9c48::2f1a-2fc7-2843-549d" number="1" type="upgrade" from="entry"><profiles><profile id="d317-6ae2-d64a-5831" name="Close combat weapon" hidden="false" typeId="8a40-4aaa-c780-9046" typeName="Melee Weapons" from="entry"><characteristics><characteristic name="Range" typeId="914c-b413-91e3-a132">Melee</characteristic><characteristic name="A" typeId="2337-daa1-6682-b110">1</characteristic><characteristic name="WS" typeId="95d1-95f-45b4-11d6">4+</characteristic><characteristic name="S" typeId="ab33-d393-96ce-ccba">3</characteristic><characteristic name="AP" typeId="41a0-1301-112a-e2f2">0</characteristic><characteristic name="D" typeId="3254-9fe6-d824-513e">1</characteristic><characteristic name="Keywords" typeId="893f-9000-ccf7-648e">-</characteristic></characteristics></profile></profiles></selection><selection id="k79b1s8" name="Enhanced data-tether" entryId="cb4c-b9a7-a9fd-b2de::709c-78a0-c807-bf70" number="1" type="upgrade" from="entry"><profiles><profile id="3c76-db6d-2b-29bd" name="Enhanced data-tether" hidden="false" typeId="9cc3-6d83-4dd3-9b64" typeName="Abilities" from="entry"><characteristics><characteristic name="Description" typeId="9b8f-694b-e5e-b573">Each time you select the bearers unit
as the target of a Stratagem, roll one D6: on a 5+, you gain 1CP.</characteristic></characteristics></profile></profiles></selection><selection id="k7ppis" name="Galvanic rifle" entryId="cb4c-b9a7-a9fd-b2de::5e3b-1117-fcdd-b4d5" number="1" type="upgrade" from="entry"><profiles><profile id="9767-45d6-3176-32d0" name="Galvanic rifle" hidden="false" typeId="f77d-b953-8fa4-b762" typeName="Ranged Weapons" from="entry"><characteristics><characteristic name="Range" typeId="9896-9419-16a1-92fc">30&quot;</characteristic><characteristic name="A" typeId="3bb-c35f-f54-fb08">2</characteristic><characteristic name="BS" typeId="94d-8a98-cf90-183e">4+</characteristic><characteristic name="S" typeId="2229-f494-25db-c5d3">4</characteristic><characteristic name="AP" typeId="9ead-8a10-520-de15">0</characteristic><characteristic name="D" typeId="a354-c1c8-a745-f9e3">1</characteristic><characteristic name="Keywords" typeId="7f1b-8591-2fcf-d01c">-</characteristic></characteristics></profile></profiles></selection></selections></selection></selections><costs><cost name="pts" typeId="51b2-306e-1021-d207" value="85" /></costs><categories><category id="bdec-fa84-45c0-24dc" name="Rangers" entryId="bdec-fa84-45c0-24dc" primary="false" /><category id="aff3-d6a3-2a95-9dc" name="Imperium" entryId="aff3-d6a3-2a95-9dc" primary="false" /><category id="5418-f86b-6e76-c5a" name="Faction: Adeptus Mechanicus" entryId="5418-f86b-6e76-c5a" primary="false" /><category id="cf47-a0d7-7207-29dc" name="Infantry" entryId="cf47-a0d7-7207-29dc" primary="false" /><category id="2a4e-9018-d675-74f1" name="Skitarii" entryId="2a4e-9018-d675-74f1" primary="false" /><category id="e338-111e-d0c6-b687" entryId="e338-111e-d0c6-b687" name="Battleline" primary="true" /><category id="40ce-cefb-031e-75a4" name="Recon Augury" entryId="40ce-cefb-031e-75a4" primary="false" /></categories></selection></selections><categories><category name="Uncategorized" id="o5b8aw" primary="false" entryId="(No Category)" /><category name="Configuration" id="7z2e0hj" primary="false" entryId="4ac9-fd30-1e3d-b249" /><category name="Epic Hero" id="o5e736q" primary="false" entryId="4f3a-f0f7-6647-348d" /><category name="Character" id="o6rksa8" primary="false" entryId="9cfd-1c32-585f-7d5c" /><category name="Battleline" id="o6ay1he" primary="false" entryId="e338-111e-d0c6-b687" /><category name="Infantry" id="o6kppe6" primary="false" entryId="cf47-a0d7-7207-29dc" /><category name="Swarm" id="o6tx7a" primary="false" entryId="b00b-5bae-444f-964e" /><category name="Mounted" id="o6cf37m" primary="false" entryId="14a0-40c9-2748-ae6e" /><category name="Beast" id="o6cnr9" primary="false" entryId="4c3e-9310-a516-3590" /><category name="Monster" id="o60v22i" primary="false" entryId="9693-cf84-fe69-37a9" /><category name="Vehicle" id="o6d7b7r" primary="false" entryId="dbd4-63-af05-998" /><category name="Drone" id="o6reyz" primary="false" entryId="2471-e2e0-3f55-d6cb" /><category name="Dedicated Transport" id="o6t0vy" primary="false" entryId="ba07-411c-2832-1f79" /><category name="Fortification" id="o63ey3d" primary="false" entryId="19d7-9c74-2140-5851" /><category name="Unit" id="o6f99k" primary="false" entryId="1160-70ae-a862-b1a8" /><category name="Allies: Astra Militarum" id="o73fsgv" primary="false" entryId="8247-35f6-ec2a-7caa" /><category name="Allies: Chaos Knights" id="o7wqmgi" primary="false" entryId="8dd6-af11-abd3-55f1" /><category name="Allies: Heretic Astartes" id="o7fadd" primary="false" entryId="92e6-f82e-0a48-2276" /><category name="Allies: Imperial Agents" id="o7a694k" primary="false" entryId="742f-5727-1bc9-6da5" /><category name="Allies: Imperial Knights" id="o7xkohf" primary="false" entryId="5e03-9044-273d-e818" /><category name="Allies: Legiones Daemonica" id="o7h1wqa" primary="false" entryId="e1ea-71b9-f0ef-d788" /><category name="Allies: Titanicus Traitoris" id="o7131zt" primary="false" entryId="24fa-8caf-cd68-31fb" /><category name="Allies: Unaligned Forces" id="o7u4bvf" primary="false" entryId="07d9-ab1c-cf28-0939" /><category name="Reference" id="o7g3qsb" primary="false" entryId="eef1-be80-500a-edfc" /><category name="Allies: Adeptus Titanicus" id="o8ica9m" primary="false" entryId="9988-6b5e-660e-d973" /><category name="Illegal Units" id="o881cch" primary="false" entryId="(Illegal Units)" /></categories></force></forces></roster>