86 statline class

This commit is contained in:
GameKnave 2022-11-19 11:37:31 -08:00
parent 8880445fc7
commit 47a861565c
29 changed files with 18383 additions and 93878 deletions

View file

@ -1,5 +1,6 @@
{
"name": "40k9e",
"wip": true,
"game": "Warhammer 40,000",
"genre": "sci-fi",
"publisher": "Games Workshop",
@ -116,7 +117,9 @@
},
"aspects": {
"Group Includes": true,
"Group Traits": true
"Group Traits": true,
"Rename": true,
"Describe": true
},
"allowed": {
"classifications": [
@ -769,121 +772,51 @@
],
"failState": "error",
"evaluate": "AND"
}
},
"aspects": {
"Type": "game piece",
"Lock Qty": true,
"Rename": true
}
},
"Statline": {
"stats": {
"A": {
"value": "0",
"statOrder": 7,
"group": "Stats",
"statType": "term",
"visibility": "always"
},
"BS": {
"format": "{v}+",
"value": 0,
"statOrder": 3,
"group": "Stats",
"statType": "numeric",
"visibility": "always"
},
"Ld": {
"value": 0,
"statOrder": 8,
"group": "Stats",
"statType": "numeric",
"visibility": "always"
},
"S": {
"value": 0,
"statOrder": 4,
"group": "Stats",
"statType": "numeric",
"visibility": "always"
},
"Sv": {
"format": "{v}+",
"value": 0,
"statOrder": 9,
"group": "Stats",
"statType": "numeric",
"visibility": "always"
},
"T": {
"value": 0,
"statOrder": 5,
"group": "Stats",
"statType": "numeric",
"visibility": "always"
},
"W": {
"value": 0,
"statOrder": 6,
"group": "Stats",
"statType": "numeric",
"visibility": "always"
},
"WS": {
"format": "{v}+",
"value": 0,
"statOrder": 2,
"group": "Stats",
"statType": "numeric",
"visibility": "always"
},
"Base": {
"statType": "term",
"value": null,
"visibility": "active"
},
"M": {
"statType": "term",
"format": "{t}″",
"value": null,
"statOrder": 1,
"group": "Stats",
"visibility": "always"
}
},
"rules": {
"remove tally": {
"crusadeStats": {
"evals": [
{
"paths": [
[
"{self}",
"designation"
"{roster}",
"stats",
"Play",
"value"
]
],
"value": "Narrative",
"operator": "AND",
"not": false
"not": true,
"actionable": true
}
],
"failState": "pass",
"evaluate": "OR",
"order": 1,
"evaluate": "AND",
"actions": [
{
"paths": [
[
"{self}",
"tally",
"{0string}"
"stats",
[
"Crusade Pts",
"Experience",
"Marked for Greatness"
],
"visibility"
]
],
"actionType": "modify",
"value": -1,
"actionType": "set",
"value": "hidden",
"iterations": 1
}
]
}
},
"aspects": {
"Type": "conceptual",
"Lock Qty": true,
"Rename": true
}
},
"Model": {
@ -1264,6 +1197,24 @@
"tracked": false
}
}
},
"Upgrade": {
"stats": {
"Points": {
"statType": "numeric",
"format": "+{v}",
"visibility": "normal",
"dynamic": false,
"tracked": true
},
"Power Level": {
"statType": "numeric",
"format": "+{v}",
"visibility": "normal",
"dynamic": false,
"tracked": true
}
}
}
},
"assetCatalog": {
@ -2338,7 +2289,6 @@
"gameModes": {},
"theme": {}
},
"revision": "0.1.1",
"dependencies": [],
"wip": true
"revision": "0.1.2",
"dependencies": []
}

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -5,8 +5,7 @@
"publisher": "Games Workshop",
"url": "https://warhammer40000.com/",
"notes": "This manifest is provided for the purposes of testing the features of *Rosterizer* and is not intended for distribution.",
"revision": "0.0.1",
"wip": true,
"revision": "0.0.2",
"dependencies": [
{
"slug": "123456",
@ -244,40 +243,6 @@
}
}
},
"Statline§Cartographica Rogue Trader": {
"stats": {
"M": {
"value": "6"
},
"WS": {
"value": 3
},
"BS": {
"value": 3
},
"S": {
"value": 3
},
"T": {
"value": 3
},
"W": {
"value": 4
},
"A": {
"value": "3"
},
"Ld": {
"value": 9
},
"Sv": {
"value": 4
},
"Base": {
"value": "32mm"
}
}
},
"Model§Death Cult Executioner": {
"stats": {
"Points": {
@ -504,40 +469,6 @@
}
}
},
"Statline§Death Cult Executioner": {
"stats": {
"M": {
"value": "6"
},
"WS": {
"value": 2
},
"BS": {
"value": 4
},
"S": {
"value": 3
},
"T": {
"value": 3
},
"W": {
"value": 2
},
"A": {
"value": "5"
},
"Ld": {
"value": 7
},
"Sv": {
"value": 5
},
"Base": {
"value": "32mm"
}
}
},
"Model§Lectro-Maester": {
"stats": {
"Points": {
@ -701,40 +632,6 @@
}
}
},
"Statline§Lectro-Maester": {
"stats": {
"M": {
"value": "6"
},
"WS": {
"value": 4
},
"BS": {
"value": 3
},
"S": {
"value": 3
},
"T": {
"value": 3
},
"W": {
"value": 2
},
"A": {
"value": "1"
},
"Ld": {
"value": 7
},
"Sv": {
"value": 5
},
"Base": {
"value": "32mm"
}
}
},
"Model§Rejuvenat Adept": {
"stats": {
"Points": {
@ -898,40 +795,6 @@
}
}
},
"Statline§Rejuvenat Adept": {
"stats": {
"M": {
"value": "6"
},
"WS": {
"value": 4
},
"BS": {
"value": 4
},
"S": {
"value": 3
},
"T": {
"value": 3
},
"W": {
"value": 2
},
"A": {
"value": "1"
},
"Ld": {
"value": 7
},
"Sv": {
"value": 5
},
"Base": {
"value": "32mm"
}
}
},
"Model§Voidsmen": {
"stats": {
"Points": {
@ -1110,40 +973,6 @@
}
}
},
"Statline§Voidsmen": {
"stats": {
"M": {
"value": "6"
},
"WS": {
"value": 4
},
"BS": {
"value": 4
},
"S": {
"value": 3
},
"T": {
"value": 3
},
"W": {
"value": 1
},
"A": {
"value": "1"
},
"Ld": {
"value": 6
},
"Sv": {
"value": 4
},
"Base": {
"value": "32mm"
}
}
},
"Model§Voidmaster": {
"stats": {
"Points": {
@ -1322,40 +1151,6 @@
}
}
},
"Statline§Voidmaster": {
"stats": {
"M": {
"value": "6"
},
"WS": {
"value": 4
},
"BS": {
"value": 4
},
"S": {
"value": 3
},
"T": {
"value": 3
},
"W": {
"value": 1
},
"A": {
"value": "2"
},
"Ld": {
"value": 7
},
"Sv": {
"value": 4
},
"Base": {
"value": "32mm"
}
}
},
"Model§Canid": {
"stats": {
"Points": {
@ -1393,40 +1188,6 @@
}
}
},
"Statline§Canid": {
"stats": {
"M": {
"value": "8"
},
"WS": {
"value": 3
},
"BS": {
"value": null
},
"S": {
"value": 4
},
"T": {
"value": 3
},
"W": {
"value": 1
},
"A": {
"value": "3"
},
"Ld": {
"value": 6
},
"Sv": {
"value": 4
},
"Base": {
"value": "32mm"
}
}
},
"Model§Navis Armsman": {
"stats": {
"Points": {
@ -1821,40 +1582,6 @@
}
}
},
"Statline§Navis Armsman": {
"stats": {
"M": {
"value": "6"
},
"WS": {
"value": 4
},
"BS": {
"value": 4
},
"S": {
"value": 3
},
"T": {
"value": 3
},
"W": {
"value": 1
},
"A": {
"value": "1"
},
"Ld": {
"value": 6
},
"Sv": {
"value": 4
},
"Base": {
"value": "32mm"
}
}
},
"Model§Navis Sergeant-at-Arms": {
"stats": {
"Points": {
@ -2130,40 +1857,6 @@
}
}
},
"Statline§Navis Sergeant-at-Arms": {
"stats": {
"M": {
"value": "6"
},
"WS": {
"value": 4
},
"BS": {
"value": 4
},
"S": {
"value": 3
},
"T": {
"value": 3
},
"W": {
"value": 1
},
"A": {
"value": "2"
},
"Ld": {
"value": 7
},
"Sv": {
"value": 4
},
"Base": {
"value": "32mm"
}
}
},
"Ability§Agent of the Imperium": {
"text": "If your army is [Battle-forged](https://wahapedia.ru/wh40k9ed/the-rules/core-rules/#BATTLE-FORGED-ARMIES), you can include one **AGENT OF** THE** IMPERIUM** unit in each IMPERIUM** (excluding FALLEN** units) [Patrol](https://wahapedia.ru/wh40k9ed/the-rules/core-rules/#Patrol-Detachment), [Battalion](https://wahapedia.ru/wh40k9ed/the-rules/core-rules/#Battalion-Detachment) and [Brigade Detachment](https://wahapedia.ru/wh40k9ed/the-rules/core-rules/#Brigade-Detachment) in your army without those units taking up [Battlefield Role slots](https://wahapedia.ru/wh40k9ed/the-rules/core-rules/#Battlefield-Role-Slots) in those Detachments. The inclusion of an AGENT** OF** THE** IMPERIUM** unit does not prevent other units from their Detachment benefiting from [Detachment abilities](https://wahapedia.ru/wh40k9ed/the-rules/core-rules/#Detachment-Abilities) (e.g. [Chapter Tactics](https://wahapedia.ru/wh40k9ed/factions/space-marines/#Chapter-Tactics-1), [Defenders of Humanity](https://wahapedia.ru/wh40k9ed/factions/astra-militarum/#Defenders-of-Humanity), etc.), and it does not prevent other units from your army benefiting from abilities that require every model in your army to have that ability (e.g. Combat Doctrines**). An AGENT** OF** THE** IMPERIUM** unit included in a Patrol, Battalion or Brigade Detachment in this manner is ignored for any rules that state all units from that Detachment must have at least one Faction keyword in common (e.g. in a [matched play](https://wahapedia.ru/wh40k9ed/the-rules/matched-play) game), and when determining your [Army Faction](https://wahapedia.ru/wh40k9ed/the-rules/core-rules/#Army-Faction)."
},
@ -2699,7 +2392,6 @@
},
"assets": {
"traits": [
"Statline§Cartographica Rogue Trader",
"Ability§Agent of the Imperium",
"Ability§Captain on Deck",
"Ability§Field Generators and Uncanny Reflexes",
@ -2725,7 +2417,7 @@
"Voidsmen-at-arms": {
"statType": "numeric",
"dynamic": true,
"visibility": "always",
"visibility": "active",
"value": 4,
"min": 4,
"max": 8,
@ -2755,8 +2447,6 @@
},
"assets": {
"traits": [
"Statline§Voidsmen",
"Statline§Voidmaster",
"Ability§Agent of the Imperium",
"Ability§Masters of Close Confines",
"Ability§Shipborne Personnel",
@ -2867,8 +2557,6 @@
},
"assets": {
"traits": [
"Statline§Navis Armsman",
"Statline§Navis Sergeant-at-Arms",
"Ability§Agent of the Imperium",
"Ability§Void Armour",
"Ability§Shipborne Personnel",

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -5,8 +5,7 @@
"publisher": "Games Workshop",
"url": "https://warhammer40000.com/",
"notes": "This manifest is provided for the purposes of testing the features of *Rosterizer* and is not intended for distribution.",
"revision": "0.0.1",
"wip": true,
"revision": "0.0.2",
"dependencies": [
{
"slug": "123456",
@ -354,40 +353,6 @@
}
}
},
"Statline§Chaos Warhound Titan": {
"stats": {
"M": {
"value": "0"
},
"WS": {
"value": null
},
"BS": {
"value": null
},
"S": {
"value": 8
},
"T": {
"value": 8
},
"W": {
"value": 50
},
"A": {
"value": "4"
},
"Ld": {
"value": 10
},
"Sv": {
"value": 2
},
"Base": {
"value": "Use model"
}
}
},
"Model§Chaos Reaver Titan": {
"stats": {
"Points": {
@ -843,40 +808,6 @@
}
}
},
"Statline§Chaos Reaver Titan": {
"stats": {
"M": {
"value": "0"
},
"WS": {
"value": null
},
"BS": {
"value": null
},
"S": {
"value": 8
},
"T": {
"value": 8
},
"W": {
"value": 70
},
"A": {
"value": "4"
},
"Ld": {
"value": 10
},
"Sv": {
"value": 2
},
"Base": {
"value": "Use model"
}
}
},
"Model§Chaos Warbringer Nemesis Titan": {
"stats": {
"Points": {
@ -1570,40 +1501,6 @@
}
}
},
"Statline§Chaos Warbringer Nemesis Titan": {
"stats": {
"M": {
"value": "0"
},
"WS": {
"value": null
},
"BS": {
"value": null
},
"S": {
"value": 8
},
"T": {
"value": 8
},
"W": {
"value": 100
},
"A": {
"value": "3"
},
"Ld": {
"value": 10
},
"Sv": {
"value": 2
},
"Base": {
"value": "Use model"
}
}
},
"Model§Chaos Warlord Titan": {
"stats": {
"Points": {
@ -2345,40 +2242,6 @@
}
}
},
"Statline§Chaos Warlord Titan": {
"stats": {
"M": {
"value": "0"
},
"WS": {
"value": null
},
"BS": {
"value": null
},
"S": {
"value": 9
},
"T": {
"value": 9
},
"W": {
"value": 120
},
"A": {
"value": "4"
},
"Ld": {
"value": 10
},
"Sv": {
"value": 2
},
"Base": {
"value": "Use model"
}
}
},
"Ability§Flank Speed": {
"text": "Each time this model Advances, do not make an [Advance roll](https://wahapedia.ru/wh40k9ed/the-rules/core-rules/#Advance). Instead, until the end of the phase, add 12\" to the Move characteristic of this model."
},
@ -2975,14 +2838,6 @@
},
"assets": {
"traits": [
{
"item": "Statline§Chaos Warhound Titan",
"stats": {
"Points": {
"visibility": "hidden"
}
}
},
"Ability§Reactor Meltdown",
"Ability§Flank Speed",
"Ability§Battle Titan",
@ -3023,14 +2878,6 @@
},
"assets": {
"traits": [
{
"item": "Statline§Chaos Reaver Titan",
"stats": {
"Points": {
"visibility": "hidden"
}
}
},
"Ability§Reactor Meltdown",
"Ability§Battle Titan",
"Ability§Void Shields",
@ -3070,14 +2917,6 @@
},
"assets": {
"traits": [
{
"item": "Statline§Chaos Warbringer Nemesis Titan",
"stats": {
"Points": {
"visibility": "hidden"
}
}
},
"Ability§Reactor Meltdown",
"Ability§Battle Titan",
"Ability§Void Shields",
@ -3117,14 +2956,6 @@
},
"assets": {
"traits": [
{
"item": "Statline§Chaos Warlord Titan",
"stats": {
"Points": {
"visibility": "hidden"
}
}
},
"Ability§Reactor Meltdown",
"Ability§War Engine",
"Ability§Void Shields",

File diff suppressed because it is too large Load diff

View file

@ -5,8 +5,7 @@
"publisher": "Games Workshop",
"url": "https://warhammer40000.com/",
"notes": "This manifest is provided for the purposes of testing the features of *Rosterizer* and is not intended for distribution.",
"revision": "0.0.1",
"wip": true,
"revision": "0.0.2",
"dependencies": [
{
"slug": "123456",
@ -17,12 +16,7 @@
"manifest": {
"assetTaxonomy": {
"Telethesia Discipline": {
"templateClass": "Psychic Power",
"stats": {
"Roll": {
"value": null
}
}
"templateClass": "Psychic Power"
}
},
"assetCatalog": {
@ -394,40 +388,6 @@
}
}
},
"Statline§Inquisitor Greyfax": {
"stats": {
"M": {
"value": "6"
},
"WS": {
"value": 3
},
"BS": {
"value": 3
},
"S": {
"value": 3
},
"T": {
"value": 3
},
"W": {
"value": 5
},
"A": {
"value": "4"
},
"Ld": {
"value": 10
},
"Sv": {
"value": 3
},
"Base": {
"value": "32mm"
}
}
},
"Model§Inquisitor Karamazov": {
"stats": {
"Points": {
@ -621,40 +581,6 @@
}
}
},
"Statline§Inquisitor Karamazov": {
"stats": {
"M": {
"value": "5"
},
"WS": {
"value": 3
},
"BS": {
"value": 3
},
"S": {
"value": 5
},
"T": {
"value": 5
},
"W": {
"value": 8
},
"A": {
"value": "4"
},
"Ld": {
"value": 10
},
"Sv": {
"value": 4
},
"Base": {
"value": "60mm"
}
}
},
"Model§Inquisitor Coteaz": {
"stats": {
"Points": {
@ -848,40 +774,6 @@
}
}
},
"Statline§Inquisitor Coteaz": {
"stats": {
"M": {
"value": "6"
},
"WS": {
"value": 3
},
"BS": {
"value": 3
},
"S": {
"value": 3
},
"T": {
"value": 3
},
"W": {
"value": 5
},
"A": {
"value": "4"
},
"Ld": {
"value": 10
},
"Sv": {
"value": 2
},
"Base": {
"value": "25mm"
}
}
},
"Model§Inquisitor (Inquisitor)": {
"stats": {
"Points": {
@ -2159,60 +2051,6 @@
}
}
},
"Statline§Inquisitor (Inquisitor)": {
"stats": {
"M": {
"value": "6"
},
"WS": {
"value": 3
},
"BS": {
"value": 3
},
"S": {
"value": 3
},
"T": {
"value": 3
},
"W": {
"value": 5
},
"A": {
"value": "4"
},
"Ld": {
"value": 9
},
"Sv": {
"value": 4
},
"Base": {
"value": "25mm"
}
},
"rules": {
"rename me": {
"evals": [],
"failState": "pass",
"evaluate": "AND",
"actions": [
{
"paths": [
[
"{self}",
"designation"
]
],
"actionType": "set",
"value": "Inquisitor",
"iterations": 1
}
]
}
}
},
"Model§Ordo Malleus Inquisitor in Terminator Armour": {
"stats": {
"Points": {
@ -2250,40 +2088,6 @@
}
}
},
"Statline§Ordo Malleus Inquisitor in Terminator Armour": {
"stats": {
"M": {
"value": "6"
},
"WS": {
"value": 3
},
"BS": {
"value": 3
},
"S": {
"value": 3
},
"T": {
"value": 3
},
"W": {
"value": 6
},
"A": {
"value": "4"
},
"Ld": {
"value": 9
},
"Sv": {
"value": 2
},
"Base": {
"value": "40mm"
}
}
},
"Model§Acolyte": {
"stats": {
"Points": {
@ -2870,40 +2674,6 @@
}
}
},
"Statline§Acolyte": {
"stats": {
"M": {
"value": "6"
},
"WS": {
"value": 4
},
"BS": {
"value": 4
},
"S": {
"value": 3
},
"T": {
"value": 3
},
"W": {
"value": 1
},
"A": {
"value": "2"
},
"Ld": {
"value": 7
},
"Sv": {
"value": 5
},
"Base": {
"value": "25mm"
}
}
},
"Model§Daemonhost": {
"stats": {
"Points": {
@ -3034,40 +2804,6 @@
}
}
},
"Statline§Daemonhost": {
"stats": {
"M": {
"value": "6"
},
"WS": {
"value": 4
},
"BS": {
"value": 4
},
"S": {
"value": 4
},
"T": {
"value": 4
},
"W": {
"value": 4
},
"A": {
"value": "3"
},
"Ld": {
"value": 7
},
"Sv": {
"value": 7
},
"Base": {
"value": "25mm"
}
}
},
"Model§Jokaero Weaponsmith": {
"stats": {
"Points": {
@ -3151,40 +2887,6 @@
}
}
},
"Statline§Jokaero Weaponsmith": {
"stats": {
"M": {
"value": "6"
},
"WS": {
"value": 6
},
"BS": {
"value": 4
},
"S": {
"value": 2
},
"T": {
"value": 3
},
"W": {
"value": 3
},
"A": {
"value": "2"
},
"Ld": {
"value": 7
},
"Sv": {
"value": 7
},
"Base": {
"value": "25mm"
}
}
},
"Model§Inquisition Land Raider Prometheus": {
"stats": {
"Points": {
@ -3450,40 +3152,6 @@
}
}
},
"Statline§Inquisition Land Raider Prometheus": {
"stats": {
"M": {
"value": "10"
},
"WS": {
"value": 6
},
"BS": {
"value": 3
},
"S": {
"value": 8
},
"T": {
"value": 8
},
"W": {
"value": 16
},
"A": {
"value": "6"
},
"Ld": {
"value": 9
},
"Sv": {
"value": 2
},
"Base": {
"value": "Use model"
}
}
},
"Model§Hector Rex": {
"stats": {
"Points": {
@ -3614,40 +3282,6 @@
}
}
},
"Statline§Hector Rex": {
"stats": {
"M": {
"value": "5"
},
"WS": {
"value": 2
},
"BS": {
"value": 3
},
"S": {
"value": 4
},
"T": {
"value": 3
},
"W": {
"value": 6
},
"A": {
"value": "4"
},
"Ld": {
"value": 9
},
"Sv": {
"value": 2
},
"Base": {
"value": "40mm"
}
}
},
"Model§Solomon Lok": {
"stats": {
"Points": {
@ -3747,40 +3381,6 @@
}
}
},
"Statline§Solomon Lok": {
"stats": {
"M": {
"value": "6"
},
"WS": {
"value": 3
},
"BS": {
"value": 3
},
"S": {
"value": 3
},
"T": {
"value": 3
},
"W": {
"value": 5
},
"A": {
"value": "4"
},
"Ld": {
"value": 9
},
"Sv": {
"value": 3
},
"Base": {
"value": "25mm"
}
}
},
"Model§Inquisitor Eisenhorn": {
"stats": {
"Points": {
@ -4053,40 +3653,6 @@
}
}
},
"Statline§Inquisitor Eisenhorn": {
"stats": {
"M": {
"value": "6"
},
"WS": {
"value": 3
},
"BS": {
"value": 3
},
"S": {
"value": 3
},
"T": {
"value": 3
},
"W": {
"value": 5
},
"A": {
"value": "4"
},
"Ld": {
"value": 10
},
"Sv": {
"value": 4
},
"Base": {
"value": "32mm"
}
}
},
"Model§Inquisitor (Inquisitor (Legendary))": {
"stats": {
"Points": {
@ -4144,60 +3710,6 @@
}
}
},
"Statline§Inquisitor (Inquisitor (Legendary))": {
"stats": {
"M": {
"value": "6"
},
"WS": {
"value": 3
},
"BS": {
"value": 3
},
"S": {
"value": 3
},
"T": {
"value": 3
},
"W": {
"value": 5
},
"A": {
"value": "4"
},
"Ld": {
"value": 9
},
"Sv": {
"value": 4
},
"Base": {
"value": "25mm"
}
},
"rules": {
"rename me": {
"evals": [],
"failState": "pass",
"evaluate": "AND",
"actions": [
{
"paths": [
[
"{self}",
"designation"
]
],
"actionType": "set",
"value": "Inquisitor",
"iterations": 1
}
]
}
}
},
"Model§Lord Inquisitor Kyria Draxus": {
"stats": {
"Points": {
@ -4349,40 +3861,6 @@
}
}
},
"Statline§Lord Inquisitor Kyria Draxus": {
"stats": {
"M": {
"value": "6"
},
"WS": {
"value": 2
},
"BS": {
"value": 3
},
"S": {
"value": 3
},
"T": {
"value": 3
},
"W": {
"value": 5
},
"A": {
"value": "4"
},
"Ld": {
"value": 9
},
"Sv": {
"value": 3
},
"Base": {
"value": "32mm"
}
}
},
"Model§Erasmus Cartavolnus": {
"stats": {
"Points": {
@ -4513,40 +3991,6 @@
}
}
},
"Statline§Erasmus Cartavolnus": {
"stats": {
"M": {
"value": "6"
},
"WS": {
"value": 3
},
"BS": {
"value": 3
},
"S": {
"value": 3
},
"T": {
"value": 3
},
"W": {
"value": 5
},
"A": {
"value": "4"
},
"Ld": {
"value": 9
},
"Sv": {
"value": 3
},
"Base": {
"value": "32mm"
}
}
},
"Ability§Psychic Hood": {
"text": "Each time a [Deny the Witch test](https://wahapedia.ru/wh40k9ed/the-rules/core-rules/#Deny-the-Witch) is taken for this model, if the unit attempting to [manifest](https://wahapedia.ru/wh40k9ed/the-rules/core-rules/#Manifesting-Psychic-Powers) the psychic power is within 12\" of this model, add 1 to that Deny the Witch test."
},
@ -5915,14 +5359,6 @@
},
"assets": {
"traits": [
{
"item": "Statline§Inquisitor Greyfax",
"stats": {
"Points": {
"visibility": "hidden"
}
}
},
"Ability§Authority of the Inquisition",
"Ability§Quarry",
"Ability§Unquestionable Wisdom (Aura)",
@ -5969,14 +5405,6 @@
},
"assets": {
"traits": [
{
"item": "Statline§Inquisitor Karamazov",
"stats": {
"Points": {
"visibility": "hidden"
}
}
},
"Ability§Authority of the Inquisition",
"Ability§Quarry",
"Ability§Unquestionable Wisdom (Aura)",
@ -6019,14 +5447,6 @@
},
"assets": {
"traits": [
{
"item": "Statline§Inquisitor Coteaz",
"stats": {
"Points": {
"visibility": "hidden"
}
}
},
"Ability§Authority of the Inquisition",
"Ability§Quarry",
"Ability§Unquestionable Wisdom (Aura)",
@ -6072,14 +5492,6 @@
},
"assets": {
"traits": [
{
"item": "Statline§Inquisitor (Inquisitor)",
"stats": {
"Points": {
"visibility": "hidden"
}
}
},
"Ability§Authority of the Inquisition",
"Ability§Quarry",
"Ability§Unquestionable Wisdom (Aura)",
@ -6126,14 +5538,6 @@
},
"assets": {
"traits": [
{
"item": "Statline§Ordo Malleus Inquisitor in Terminator Armour",
"stats": {
"Points": {
"visibility": "hidden"
}
}
},
"Ability§Authority of the Inquisition",
"Ability§Quarry",
"Ability§Terminator Armour",
@ -6171,7 +5575,7 @@
"Acolytes": {
"statType": "numeric",
"dynamic": true,
"visibility": "always",
"visibility": "active",
"value": 1,
"min": 1,
"max": 6,
@ -6193,7 +5597,6 @@
},
"assets": {
"traits": [
"Statline§Acolyte",
"Ability§Authority of the Inquisition",
"Ability§Quarry",
"Ability§Agent",
@ -6228,14 +5631,6 @@
},
"assets": {
"traits": [
{
"item": "Statline§Daemonhost",
"stats": {
"Points": {
"visibility": "hidden"
}
}
},
"Ability§Daemonic Power",
"Ability§Daemonic",
{
@ -6271,14 +5666,6 @@
},
"assets": {
"traits": [
{
"item": "Statline§Jokaero Weaponsmith",
"stats": {
"Points": {
"visibility": "hidden"
}
}
},
"Ability§Authority of the Inquisition",
"Ability§Defence Orbs",
"Ability§Inconceivable Customisation",
@ -6317,14 +5704,6 @@
},
"assets": {
"traits": [
{
"item": "Statline§Inquisition Land Raider Prometheus",
"stats": {
"Points": {
"visibility": "hidden"
}
}
},
"Ability§Quarry",
"Ability§Smoke Launchers",
"Ability§Explodes",
@ -6367,14 +5746,6 @@
},
"assets": {
"traits": [
{
"item": "Statline§Hector Rex",
"stats": {
"Points": {
"visibility": "hidden"
}
}
},
"Ability§Authority of the Inquisition",
"Ability§Quarry",
"Ability§Unquestionable Wisdom",
@ -6419,14 +5790,6 @@
},
"assets": {
"traits": [
{
"item": "Statline§Solomon Lok",
"stats": {
"Points": {
"visibility": "hidden"
}
}
},
"Ability§Authority of the Inquisition",
"Ability§Quarry",
"Ability§Unquestionable Wisdom",
@ -6468,14 +5831,6 @@
},
"assets": {
"traits": [
{
"item": "Statline§Inquisitor Eisenhorn",
"stats": {
"Points": {
"visibility": "hidden"
}
}
},
"Ability§Authority of the Inquisition",
"Ability§Quarry",
"Ability§Unquestionable Wisdom (Aura)",
@ -6521,14 +5876,6 @@
},
"assets": {
"traits": [
{
"item": "Statline§Inquisitor (Inquisitor (Legendary))",
"stats": {
"Points": {
"visibility": "hidden"
}
}
},
"Ability§Authority of the Inquisition",
"Ability§Quarry",
"Ability§Refractor Field",
@ -6578,14 +5925,6 @@
},
"assets": {
"traits": [
{
"item": "Statline§Lord Inquisitor Kyria Draxus",
"stats": {
"Points": {
"visibility": "hidden"
}
}
},
"Ability§Authority of the Inquisition",
"Ability§Quarry",
"Ability§Unquestionable Wisdom (Aura)",
@ -6633,14 +5972,6 @@
},
"assets": {
"traits": [
{
"item": "Statline§Erasmus Cartavolnus",
"stats": {
"Points": {
"visibility": "hidden"
}
}
},
"Ability§Authority of the Inquisition",
"Ability§Quarry",
"Ability§Unquestionable Wisdom (Aura)",

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load diff

View file

@ -5,8 +5,7 @@
"publisher": "Games Workshop",
"url": "https://warhammer40000.com/",
"notes": "This manifest is provided for the purposes of testing the features of *Rosterizer* and is not intended for distribution.",
"revision": "0.0.1",
"wip": true,
"revision": "0.0.2",
"dependencies": [
{
"slug": "123456",
@ -55,40 +54,6 @@
}
}
},
"Statline§Vindicare Assassin": {
"stats": {
"M": {
"value": "7"
},
"WS": {
"value": 2
},
"BS": {
"value": 2
},
"S": {
"value": 4
},
"T": {
"value": 4
},
"W": {
"value": 5
},
"A": {
"value": "5"
},
"Ld": {
"value": 9
},
"Sv": {
"value": 6
},
"Base": {
"value": "32mm"
}
}
},
"Model§Callidus Assassin": {
"stats": {
"Points": {
@ -126,40 +91,6 @@
}
}
},
"Statline§Callidus Assassin": {
"stats": {
"M": {
"value": "7"
},
"WS": {
"value": 2
},
"BS": {
"value": 2
},
"S": {
"value": 4
},
"T": {
"value": 4
},
"W": {
"value": 5
},
"A": {
"value": "5"
},
"Ld": {
"value": 9
},
"Sv": {
"value": 6
},
"Base": {
"value": "32mm"
}
}
},
"Model§Eversor Assassin": {
"stats": {
"Points": {
@ -197,40 +128,6 @@
}
}
},
"Statline§Eversor Assassin": {
"stats": {
"M": {
"value": "7"
},
"WS": {
"value": 2
},
"BS": {
"value": 2
},
"S": {
"value": 4
},
"T": {
"value": 4
},
"W": {
"value": 6
},
"A": {
"value": "6"
},
"Ld": {
"value": 9
},
"Sv": {
"value": 6
},
"Base": {
"value": "32mm"
}
}
},
"Model§Culexus Assassin": {
"stats": {
"Points": {
@ -268,40 +165,6 @@
}
}
},
"Statline§Culexus Assassin": {
"stats": {
"M": {
"value": "7"
},
"WS": {
"value": 2
},
"BS": {
"value": 2
},
"S": {
"value": 4
},
"T": {
"value": 4
},
"W": {
"value": 5
},
"A": {
"value": "4"
},
"Ld": {
"value": 9
},
"Sv": {
"value": 6
},
"Base": {
"value": "32mm"
}
}
},
"Ability§Independent Operative": {
"text": "This model can never have a [Warlord Trait](https://wahapedia.ru/wh40k9ed/the-rules/core-rules/#Warlord-Traits). During deployment, you can set this model up in concealment instead of placing it on the battlefield. At the end of any of your [Movement phases](https://wahapedia.ru/wh40k9ed/the-rules/core-rules/#MOVEMENT-PHASE), this model can reveal its position set it up anywhere on the battlefield that is more than 9\" away from any enemy models."
},
@ -621,14 +484,6 @@
},
"assets": {
"traits": [
{
"item": "Statline§Vindicare Assassin",
"stats": {
"Points": {
"visibility": "hidden"
}
}
},
"Ability§Agent of the Imperium",
"Ability§Execution Force",
"Ability§Independent Operative",
@ -673,14 +528,6 @@
},
"assets": {
"traits": [
{
"item": "Statline§Callidus Assassin",
"stats": {
"Points": {
"visibility": "hidden"
}
}
},
"Ability§Agent of the Imperium",
"Ability§Execution Force",
"Ability§Independent Operative",
@ -723,14 +570,6 @@
},
"assets": {
"traits": [
{
"item": "Statline§Eversor Assassin",
"stats": {
"Points": {
"visibility": "hidden"
}
}
},
"Ability§Agent of the Imperium",
"Ability§Execution Force",
"Ability§Independent Operative",
@ -774,14 +613,6 @@
},
"assets": {
"traits": [
{
"item": "Statline§Culexus Assassin",
"stats": {
"Points": {
"visibility": "hidden"
}
}
},
"Ability§Agent of the Imperium",
"Ability§Execution Force",
"Ability§Independent Operative",

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -5,8 +5,7 @@
"publisher": "Games Workshop",
"url": "https://warhammer40000.com/",
"notes": "This manifest is provided for the purposes of testing the features of *Rosterizer* and is not intended for distribution.",
"revision": "0.0.1",
"wip": true,
"revision": "0.0.2",
"dependencies": [
{
"slug": "123456",
@ -354,40 +353,6 @@
}
}
},
"Statline§Warhound Titan": {
"stats": {
"M": {
"value": "20"
},
"WS": {
"value": 4
},
"BS": {
"value": 3
},
"S": {
"value": 8
},
"T": {
"value": 8
},
"W": {
"value": 50
},
"A": {
"value": "4"
},
"Ld": {
"value": 10
},
"Sv": {
"value": 2
},
"Base": {
"value": "Use model"
}
}
},
"Model§Reaver Titan": {
"stats": {
"Points": {
@ -843,40 +808,6 @@
}
}
},
"Statline§Reaver Titan": {
"stats": {
"M": {
"value": "18"
},
"WS": {
"value": 4
},
"BS": {
"value": 3
},
"S": {
"value": 8
},
"T": {
"value": 8
},
"W": {
"value": 70
},
"A": {
"value": "4"
},
"Ld": {
"value": 10
},
"Sv": {
"value": 2
},
"Base": {
"value": "Use model"
}
}
},
"Model§Warlord Titan": {
"stats": {
"Points": {
@ -1618,40 +1549,6 @@
}
}
},
"Statline§Warlord Titan": {
"stats": {
"M": {
"value": "12"
},
"WS": {
"value": 4
},
"BS": {
"value": 3
},
"S": {
"value": 9
},
"T": {
"value": 9
},
"W": {
"value": 120
},
"A": {
"value": "4"
},
"Ld": {
"value": 10
},
"Sv": {
"value": 2
},
"Base": {
"value": "Use model"
}
}
},
"Model§Warbringer Nemesis Titan": {
"stats": {
"Points": {
@ -2345,40 +2242,6 @@
}
}
},
"Statline§Warbringer Nemesis Titan": {
"stats": {
"M": {
"value": "15"
},
"WS": {
"value": 4
},
"BS": {
"value": 3
},
"S": {
"value": 8
},
"T": {
"value": 8
},
"W": {
"value": 100
},
"A": {
"value": "3"
},
"Ld": {
"value": 10
},
"Sv": {
"value": 2
},
"Base": {
"value": "Use model"
}
}
},
"Ability§Flank Speed": {
"text": "Each time this model Advances, do not make an [Advance roll](https://wahapedia.ru/wh40k9ed/the-rules/core-rules/#Advance). Instead, until the end of the phase, add 12\" to the Move characteristic of this model."
},
@ -2975,14 +2838,6 @@
},
"assets": {
"traits": [
{
"item": "Statline§Warhound Titan",
"stats": {
"Points": {
"visibility": "hidden"
}
}
},
"Ability§Reactor Meltdown",
"Ability§Flank Speed",
"Ability§Battle Titan",
@ -3023,14 +2878,6 @@
},
"assets": {
"traits": [
{
"item": "Statline§Reaver Titan",
"stats": {
"Points": {
"visibility": "hidden"
}
}
},
"Ability§Reactor Meltdown",
"Ability§Battle Titan",
"Ability§Void Shields",
@ -3070,14 +2917,6 @@
},
"assets": {
"traits": [
{
"item": "Statline§Warlord Titan",
"stats": {
"Points": {
"visibility": "hidden"
}
}
},
"Ability§Reactor Meltdown",
"Ability§War Engine",
"Ability§Void Shields",
@ -3117,14 +2956,6 @@
},
"assets": {
"traits": [
{
"item": "Statline§Warbringer Nemesis Titan",
"stats": {
"Points": {
"visibility": "hidden"
}
}
},
"Ability§Reactor Meltdown",
"Ability§Battle Titan",
"Ability§Void Shields",

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -30,7 +30,7 @@ processInfo = (data,factionKey) => {
publisher: 'Games Workshop',
url: 'https://warhammer40000.com/',
notes: 'This manifest is provided for the purposes of testing the features of *Rosterizer* and is not intended for distribution.',
revision: '0.0.1',
revision: '0.0.2',
dependencies: [
{
slug: "123456",
@ -95,9 +95,6 @@ processModels = (data,assetCatalog) => {
}
assetCatalog[modelItemKey] = tempItem;
// console.log(modelItemKey)
let tempStatline = JSON.parse(JSON.stringify(tempItem));
delete tempStatline.stats.Points;
assetCatalog[modelItemKey.replace('Model§','Statline§')] = tempStatline;
});
}
dedupModels = (dupModels) => {
@ -307,10 +304,7 @@ processPsychicPowers = (data,assetCatalog) => {
}else{
let powerName = 'Psychic Power§' + power.name.toLowerCase().split(' ').map(w => w.charAt(0).toUpperCase() + w.slice(1)).join(' ');
let tempPower = {
text: formatText(power.description),
stats:{Roll:{
value: power.type + (power.roll ? (' ' + power.roll) : '')
}}
text: formatText(power.description)
};
assetCatalog[powerName] = tempPower;
}
@ -426,7 +420,7 @@ processUnits = (data,assetCatalog) => {
tempItem.stats[datasheet.name] = {
statType: 'numeric',
dynamic: true,
visibility: 'always',
visibility: 'active',
};
let stat = tempItem.stats[datasheet.name];
let range = models[0].models_per_unit.split('-');
@ -469,10 +463,7 @@ processUnits = (data,assetCatalog) => {
let modelList = [];
models.forEach(model => {
let [minQty,maxQty] = model.models_per_unit.split('-').map(qty => Number(qty));
let statlineName = model.itemKey.replace('Model§','Statline§');
if(minQty){
let defaultStatline = assetCatalog[statlineName];
// console.log(defaultStatline)
let tempTrait = {item: model.itemKey};
if(minQty > 1) tempTrait.quantity = minQty;
// console.log(datasheet.name,model.name,model.models_per_unit,models.length)
@ -481,16 +472,11 @@ processUnits = (data,assetCatalog) => {
tempTrait.stats.Points = tempTrait.stats.Points || {};
tempTrait.stats.Points.visibility = 'hidden';
}
let tempStatline = {...tempTrait,item: statlineName};
delete tempStatline.quantity;
// console.log(tempTrait)
// console.log(tempStatline)
if(Object.keys(tempStatline).length === 1) tempStatline = statlineName;
if(Object.keys(tempTrait).length === 1) tempTrait = model.itemKey;
tempItem.assets.traits = tempItem.assets.traits || [];
tempItem.assets.traits.push(tempTrait);
modelList.push(model)
tempItem.assets.traits.push(tempStatline);
}
if(minQty > 1 || maxQty > 1){
tempItem.allowed = tempItem.allowed || {};
@ -507,7 +493,7 @@ processUnits = (data,assetCatalog) => {
tempItem.assets.traits = tempItem.assets.traits || [];
tempItem.assets.traits.push(ability.itemKey);
});
const order = ['Statline§', 'Ability§', 'Wargear§', 'Psychic Power§', 'Model§'];
const order = ['Ability§', 'Wargear§', 'Psychic Power§', 'Model§'];
tempItem.assets.traits.sort((a, b) => stringSimilarity.findBestMatch((a.item || a),order).bestMatchIndex - stringSimilarity.findBestMatch((b.item || b),order).bestMatchIndex);
if(datasheet.psyker?.includes('Smite')){
@ -783,10 +769,7 @@ processPsychicClasses = (data,assetTaxonomy) => {
data.psychicPowers.forEach(power => {
if(power.type){
assetTaxonomy[power.type] = assetTaxonomy[power.type] || {
templateClass: 'Psychic Power',
stats:{Roll:{
value: null
}}
templateClass: 'Psychic Power'
}
}
});