From 604897a01ebfe9df07aa9f30a017771e918c3c94 Mon Sep 17 00:00:00 2001 From: Duda Date: Mon, 11 Jul 2022 15:51:45 -0700 Subject: [PATCH] Smartly allow custom models in a unit without messing with the stat qty selection --- tyranids/tyranids.manifest | 387 +++++++++++++++++++++++++++++-------- 1 file changed, 310 insertions(+), 77 deletions(-) diff --git a/tyranids/tyranids.manifest b/tyranids/tyranids.manifest index 28ce806..5037011 100644 --- a/tyranids/tyranids.manifest +++ b/tyranids/tyranids.manifest @@ -425,59 +425,6 @@ } ] }, - "1 quantity per model": { - "evals": [ - { - "paths": [ - [ - "{self}", - "designation" - ] - ], - "operator": "AND", - "not": false, - "actionable": false, - "note": "Checking my name so i know the correct model to find." - }, - { - "paths": [ - [ - "{self}", - "stats", - "model", - "value" - ] - ], - "operator": "AND", - "not": false, - "actionable": false - } - ], - "failState": "pass", - "evaluate": "OR", - "order": 11, - "actions": [ - { - "paths": [ - [ - "{self}", - "traits", - "item", - "{1string}", - "quantity" - ] - ], - "actionType": "set", - "value": [ - "{self}", - "stats", - "{0string}", - "value" - ], - "iterations": 1 - } - ] - }, "adjust power": { "evals": [ { @@ -792,6 +739,294 @@ "iterations": 1 } ] + }, + "1 quantity per model": { + "evals": [ + { + "paths": [ + [ + "{self}", + "designation" + ] + ], + "operator": "AND", + "not": false, + "actionable": false, + "note": "Checking my name so i know the correct statName to look at for qty." + }, + { + "paths": [ + [ + "{self}", + "stats", + "model", + "value" + ] + ], + "operator": "AND", + "not": false, + "actionable": false, + "note": "Storing the itemKey of the model we want to track" + }, + { + "paths": [ + [ + "{self}", + "assets", + "item", + "{1string}", + "quantity" + ] + ], + "operator": "SUM", + "not": false, + "actionable": false, + "note": "Isolate quantity of modified models", + "equation": { + "operator": "T-O", + "value": [ + "{self}", + "traits", + "item", + "{1string}", + "quantity" + ] + } + }, + { + "paths": [ + [ + "{self}", + "stats", + "{0string}", + "value" + ] + ], + "operator": "AND", + "not": false, + "actionable": false, + "note": "Determine new qty of trait", + "equation": { + "operator": "T-O", + "value": [ + "{self}", + "rules", + "1 quantity per model", + "evals", + "2", + "result", + "integer" + ] + } + } + ], + "failState": "pass", + "evaluate": "OR", + "order": 11, + "actions": [ + { + "paths": [ + [ + "{self}", + "traits", + "item", + "{1string}", + "quantity" + ] + ], + "actionType": "set", + "value": [ + "{self}", + "rules", + "1 quantity per model", + "evals", + "3", + "result", + "integer" + ], + "iterations": 1 + }, + { + "paths": [ + [ + "{self}", + "allowed", + "items" + ] + ], + "actionType": "add", + "value": [ + "{self}", + "stats", + "model", + "value" + ], + "iterations": 1 + } + ] + }, + "Incorrect number of models.": { + "evals": [ + { + "paths": [ + [ + "{self}", + "designation" + ] + ], + "operator": "AND", + "not": false, + "actionable": false + }, + { + "paths": [ + [ + "{self}", + "stats", + "model", + "value" + ] + ], + "operator": "AND", + "not": false, + "actionable": false + }, + { + "paths": [ + [ + "{self}", + "assets", + "item", + "{1string}", + "quantity" + ] + ], + "max": [ + "{self}", + "stats", + "{0string}", + "max" + ], + "min": [ + "{self}", + "stats", + "{0string}", + "min" + ], + "operator": "SUM", + "not": false + } + ], + "failState": "error", + "evaluate": "OR", + "order": 12 + }, + "automagical tracking bounds": { + "evals": [ + { + "paths": [ + [ + "{self}", + "designation" + ] + ], + "operator": "AND", + "not": false, + "note": "this is currently non-functional pending refactoring of findTargets" + }, + { + "paths": [ + [ + "{self}", + "stats", + "model", + "value" + ] + ], + "operator": "AND", + "not": false, + "actionable": false + }, + { + "paths": [ + [ + "{self}", + "assets", + "item", + "{1string}", + "designation" + ] + ], + "operator": "AND", + "not": false + } + ], + "failState": "pass", + "evaluate": "OR", + "actions": [ + { + "paths": [ + [ + "{self}", + "stats", + "{2string}", + "value" + ] + ], + "actionType": "set", + "value": 1000, + "iterations": 1 + }, + { + "paths": [ + [ + "{self}", + "stats", + "{2string}", + "tracked" + ] + ], + "actionType": "set", + "value": true, + "iterations": 1 + }, + { + "paths": [ + [ + "{self}", + "stats", + "{2string}", + "min" + ] + ], + "actionType": "set", + "value": [ + "{self}", + "stats", + "{0string}", + "min" + ], + "iterations": 1 + }, + { + "paths": [ + [ + "{self}", + "stats", + "{2string}", + "max" + ] + ], + "actionType": "set", + "value": [ + "{self}", + "stats", + "{0string}", + "max" + ], + "iterations": 1 + } + ] } }, "aspects": { @@ -5672,11 +5907,11 @@ "assets": { "traits": [ "Statline§Gargoyle", + "Ability§Swarming Masses", { "item": "Model§Gargoyle", "quantity": 10 - }, - "Ability§Swarming Masses" + } ] }, "designation": "Gargoyles" @@ -5779,12 +6014,12 @@ "assets": { "traits": [ "Statline§Hormagaunt", + "Ability§Swarming Masses", + "Ability§Bounding Leap", { "item": "Model§Hormagaunt", "quantity": 10 - }, - "Ability§Swarming Masses", - "Ability§Bounding Leap" + } ] }, "designation": "Hormagaunts" @@ -5878,11 +6113,11 @@ "assets": { "traits": [ "Statline§Termagaunt", + "Ability§Swarming Masses", { "item": "Model§Termagaunt", "quantity": 10 - }, - "Ability§Swarming Masses" + } ] }, "designation": "Termagaunts" @@ -5893,7 +6128,7 @@ "value": 4 }, "model": { - "value": null + "value": "Model§Tyranid Warrior" }, "Adrenal glands": { "statType": "rank", @@ -5979,16 +6214,6 @@ "statType": "numeric", "value": 0 }, - "Tyranid Warrior": { - "statType": "numeric", - "label": "Tyranid Warriors", - "value": 0, - "statOrder": -1, - "visibility": "always", - "tracked": true, - "min": 3, - "max": 9 - }, "power1": { "value": 4 }, @@ -5997,6 +6222,18 @@ }, "poweri": { "value": 4 + }, + "Tyranid Warriors": { + "statType": "numeric", + "increment": { + "value": 3 + }, + "value": 3, + "statOrder": -1, + "visibility": "always", + "dynamic": true, + "min": 3, + "max": 9 } }, "keywords": { @@ -6019,9 +6256,7 @@ "Statline§Tyranid Warrior", "Ability§Synapse (Aura)", "Ability§Shadow in the Warp (Aura)", - "Ability§Warrior Spawning" - ], - "included": [ + "Ability§Warrior Spawning", { "item": "Model§Tyranid Warrior", "quantity": 3 @@ -6029,9 +6264,7 @@ ] }, "allowed": { - "items": [ - "Model§Tyranid Warrior" - ] + "items": [] }, "rules": { "Only 1 of every 3 can have a Venom cannon.": {