@opencharacter/5e-srd-5.1 0.1.0 → 0.2.0

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.
Files changed (35) hide show
  1. package/README.md +7 -6
  2. package/content/classes/warlock.yaml +0 -7
  3. package/content/features/druid/natural-recovery.yaml +23 -45
  4. package/content/features/wizard/arcane-recovery.yaml +22 -67
  5. package/content/invocations/bewitching-whispers.yaml +9 -2
  6. package/content/invocations/dreadful-word.yaml +9 -2
  7. package/content/invocations/eldritch-spear.yaml +3 -2
  8. package/content/invocations/minions-of-chaos.yaml +9 -2
  9. package/content/invocations/mire-the-mind.yaml +9 -2
  10. package/content/invocations/sculptor-of-flesh.yaml +9 -2
  11. package/content/invocations/sign-of-ill-omen.yaml +9 -2
  12. package/content/invocations/thief-of-five-fates.yaml +9 -2
  13. package/content/races/half-orc.yaml +0 -2
  14. package/content/races/tiefling.yaml +0 -3
  15. package/content/spells/death-ward.yaml +11 -0
  16. package/content/spells/eldritch-blast.yaml +1 -1
  17. package/content/templates/eldritch-spear.yaml +4 -0
  18. package/content/traits/infernal-legacy.yaml +11 -2
  19. package/content/traits/relentless-endurance.yaml +5 -10
  20. package/dist/i18n/en.js +1 -1
  21. package/dist/i18n/en.json +24 -23
  22. package/dist/index.js +1 -1
  23. package/dist/release.json +1341 -2227
  24. package/i18n/en.yaml +24 -23
  25. package/pack.yaml +2 -2
  26. package/package.json +2 -2
  27. package/rules/classes.yaml +0 -1
  28. package/rules/combat.yaml +5 -0
  29. package/rules/content-types.yaml +3 -0
  30. package/rules/creation.yaml +6 -2
  31. package/rules/display.yaml +0 -6
  32. package/rules/monsters.yaml +1 -1
  33. package/rules/rest.yaml +13 -50
  34. package/rules/spellcasting.yaml +5 -0
  35. package/upgrades/0.1.0-to-0.2.0.yaml +62 -0
package/dist/release.json CHANGED
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "manifest": {
3
3
  "id": "5e-srd-5.1",
4
- "version": "0.1.0",
5
- "specVersion": "0.1.0",
4
+ "version": "0.2.0",
5
+ "specVersion": "0.2.0",
6
6
  "license": "CC-BY-4.0",
7
7
  "credit": "This work includes material taken from the System Reference Document 5.1 (“SRD 5.1”) by Wizards of the Coast LLC and available at https://dnd.wizards.com/resources/systems-reference-document. The SRD 5.1 is licensed under the Creative Commons Attribution 4.0 International License available at https://creativecommons.org/licenses/by/4.0/legalcode.",
8
8
  "defaultLanguage": "en"
@@ -717,10 +717,6 @@
717
717
  "type": "integer",
718
718
  "formula": "level.total >= 17 ? 4 : level.total >= 11 ? 3 : level.total >= 5 ? 2 : 1"
719
719
  },
720
- "eldritchBlast.range": {
721
- "type": "integer",
722
- "formula": 120
723
- },
724
720
  "eldritchBlast.push": {
725
721
  "type": "integer",
726
722
  "formula": 0
@@ -3313,6 +3309,7 @@
3313
3309
  "results": [
3314
3310
  "breathed"
3315
3311
  ],
3312
+ "available": "!self.used",
3316
3313
  "participants": {
3317
3314
  "target": {}
3318
3315
  },
@@ -3372,6 +3369,18 @@
3372
3369
  }
3373
3370
  ]
3374
3371
  },
3372
+ {
3373
+ "id": "spend",
3374
+ "kind": "changes",
3375
+ "changes": [
3376
+ {
3377
+ "type": "setState",
3378
+ "pick": "self",
3379
+ "key": "used",
3380
+ "value": true
3381
+ }
3382
+ ]
3383
+ },
3375
3384
  {
3376
3385
  "id": "result",
3377
3386
  "kind": "outcome",
@@ -3424,7 +3433,9 @@
3424
3433
  {
3425
3434
  "type": "choose",
3426
3435
  "path": {
3427
- "entry": "race",
3436
+ "entry": {
3437
+ "formula": "steps.race.added[0]"
3438
+ },
3428
3439
  "choice": [
3429
3440
  "subrace"
3430
3441
  ]
@@ -3819,7 +3830,9 @@
3819
3830
  {
3820
3831
  "type": "choose",
3821
3832
  "path": {
3822
- "entry": "race",
3833
+ "entry": {
3834
+ "formula": "steps.race.added[0]"
3835
+ },
3823
3836
  "choice": [
3824
3837
  "subrace"
3825
3838
  ]
@@ -4746,7 +4759,9 @@
4746
4759
  "type": "choose",
4747
4760
  "when": "has(steps.monster.item.startingForm)",
4748
4761
  "path": {
4749
- "entry": "monster",
4762
+ "entry": {
4763
+ "formula": "steps.monster.added[0]"
4764
+ },
4750
4765
  "choice": [
4751
4766
  "form"
4752
4767
  ]
@@ -6058,20 +6073,18 @@
6058
6073
  },
6059
6074
  {
6060
6075
  "type": "setState",
6061
- "when": "countCopies(has(copy.state.hellishRebukeUsed) && copy.state.hellishRebukeUsed) > 0",
6062
- "copies": {
6063
- "type": "race",
6064
- "where": "has(self.hellishRebukeUsed) && self.hellishRebukeUsed"
6076
+ "when": "countCopies(copy.item == @races.tiefling) > 0",
6077
+ "grants": {
6078
+ "where": "item.id == @traits.infernal-legacy && self.hellishRebukeUsed"
6065
6079
  },
6066
6080
  "key": "hellishRebukeUsed",
6067
6081
  "value": false
6068
6082
  },
6069
6083
  {
6070
6084
  "type": "setState",
6071
- "when": "countCopies(has(copy.state.darknessUsed) && copy.state.darknessUsed) > 0",
6072
- "copies": {
6073
- "type": "race",
6074
- "where": "has(self.darknessUsed) && self.darknessUsed"
6085
+ "when": "countCopies(copy.item == @races.tiefling) > 0",
6086
+ "grants": {
6087
+ "where": "item.id == @traits.infernal-legacy && self.darknessUsed"
6075
6088
  },
6076
6089
  "key": "darknessUsed",
6077
6090
  "value": false
@@ -6088,12 +6101,11 @@
6088
6101
  },
6089
6102
  {
6090
6103
  "type": "setState",
6091
- "when": "countCopies(has(copy.state.relentlessEnduranceUsed)\n && copy.state.relentlessEnduranceUsed) > 0",
6092
- "copies": {
6093
- "type": "race",
6094
- "where": "has(self.relentlessEnduranceUsed) && self.relentlessEnduranceUsed"
6104
+ "when": "countCopies(copy.item == @races.half-orc) > 0",
6105
+ "grants": {
6106
+ "where": "item.id == @traits.relentless-endurance && self.used"
6095
6107
  },
6096
- "key": "relentlessEnduranceUsed",
6108
+ "key": "used",
6097
6109
  "value": false
6098
6110
  },
6099
6111
  {
@@ -6118,72 +6130,20 @@
6118
6130
  },
6119
6131
  {
6120
6132
  "type": "setState",
6121
- "when": "countCopies(has(copy.state.bewitchingWhispersUsed) && copy.state.bewitchingWhispersUsed) > 0",
6122
- "copies": {
6123
- "type": "class",
6124
- "where": "has(self.bewitchingWhispersUsed) && self.bewitchingWhispersUsed"
6125
- },
6126
- "key": "bewitchingWhispersUsed",
6127
- "value": false
6128
- },
6129
- {
6130
- "type": "setState",
6131
- "when": "countCopies(has(copy.state.dreadfulWordUsed) && copy.state.dreadfulWordUsed) > 0",
6132
- "copies": {
6133
- "type": "class",
6134
- "where": "has(self.dreadfulWordUsed) && self.dreadfulWordUsed"
6135
- },
6136
- "key": "dreadfulWordUsed",
6137
- "value": false
6138
- },
6139
- {
6140
- "type": "setState",
6141
- "when": "countCopies(has(copy.state.minionsOfChaosUsed) && copy.state.minionsOfChaosUsed) > 0",
6142
- "copies": {
6143
- "type": "class",
6144
- "where": "has(self.minionsOfChaosUsed) && self.minionsOfChaosUsed"
6133
+ "when": "countCopies(copy.item == @classes.warlock) > 0",
6134
+ "picks": {
6135
+ "where": "item.type == 'invocation' && self.used"
6145
6136
  },
6146
- "key": "minionsOfChaosUsed",
6147
- "value": false
6148
- },
6149
- {
6150
- "type": "setState",
6151
- "when": "countCopies(has(copy.state.mireTheMindUsed) && copy.state.mireTheMindUsed) > 0",
6152
- "copies": {
6153
- "type": "class",
6154
- "where": "has(self.mireTheMindUsed) && self.mireTheMindUsed"
6155
- },
6156
- "key": "mireTheMindUsed",
6157
- "value": false
6158
- },
6159
- {
6160
- "type": "setState",
6161
- "when": "countCopies(has(copy.state.sculptorOfFleshUsed) && copy.state.sculptorOfFleshUsed) > 0",
6162
- "copies": {
6163
- "type": "class",
6164
- "where": "has(self.sculptorOfFleshUsed) && self.sculptorOfFleshUsed"
6165
- },
6166
- "key": "sculptorOfFleshUsed",
6167
- "value": false
6168
- },
6169
- {
6170
- "type": "setState",
6171
- "when": "countCopies(has(copy.state.signOfIllOmenUsed) && copy.state.signOfIllOmenUsed) > 0",
6172
- "copies": {
6173
- "type": "class",
6174
- "where": "has(self.signOfIllOmenUsed) && self.signOfIllOmenUsed"
6175
- },
6176
- "key": "signOfIllOmenUsed",
6137
+ "key": "used",
6177
6138
  "value": false
6178
6139
  },
6179
6140
  {
6180
6141
  "type": "setState",
6181
- "when": "countCopies(has(copy.state.thiefOfFiveFatesUsed) && copy.state.thiefOfFiveFatesUsed) > 0",
6182
- "copies": {
6183
- "type": "class",
6184
- "where": "has(self.thiefOfFiveFatesUsed) && self.thiefOfFiveFatesUsed"
6142
+ "when": "countCopies(copy.item == @races.dragonborn) > 0",
6143
+ "picks": {
6144
+ "where": "item.type == 'draconicAncestry' && self.used"
6185
6145
  },
6186
- "key": "thiefOfFiveFatesUsed",
6146
+ "key": "used",
6187
6147
  "value": false
6188
6148
  },
6189
6149
  {
@@ -7250,6 +7210,15 @@
7250
7210
  "key": "signatureSpell2Used",
7251
7211
  "value": false
7252
7212
  },
7213
+ {
7214
+ "type": "setState",
7215
+ "when": "countCopies(copy.item == @races.dragonborn) > 0",
7216
+ "picks": {
7217
+ "where": "item.type == 'draconicAncestry' && self.used"
7218
+ },
7219
+ "key": "used",
7220
+ "value": false
7221
+ },
7253
7222
  {
7254
7223
  "type": "setState",
7255
7224
  "when": "countCopies(copy.type == 'monsterAction') > 0",
@@ -11305,13 +11274,6 @@
11305
11274
  "priority": 1,
11306
11275
  "showWhen": "@spells.eldritch-blast in spells.warlock"
11307
11276
  },
11308
- "eldritchBlast.range": {
11309
- "groups": [
11310
- "class-features"
11311
- ],
11312
- "priority": 2,
11313
- "showWhen": "@spells.eldritch-blast in spells.warlock"
11314
- },
11315
11277
  "eldritchBlast.push": {
11316
11278
  "groups": [
11317
11279
  "class-features"
@@ -13641,6 +13603,12 @@
13641
13603
  "required": true
13642
13604
  }
13643
13605
  },
13606
+ "state": {
13607
+ "used": {
13608
+ "type": "boolean",
13609
+ "default": false
13610
+ }
13611
+ },
13644
13612
  "actions": [
13645
13613
  {
13646
13614
  "use": "breath-weapon"
@@ -17187,34 +17155,6 @@
17187
17155
  "hurlThroughHellUsed": {
17188
17156
  "type": "boolean",
17189
17157
  "default": false
17190
- },
17191
- "bewitchingWhispersUsed": {
17192
- "type": "boolean",
17193
- "default": false
17194
- },
17195
- "dreadfulWordUsed": {
17196
- "type": "boolean",
17197
- "default": false
17198
- },
17199
- "minionsOfChaosUsed": {
17200
- "type": "boolean",
17201
- "default": false
17202
- },
17203
- "mireTheMindUsed": {
17204
- "type": "boolean",
17205
- "default": false
17206
- },
17207
- "sculptorOfFleshUsed": {
17208
- "type": "boolean",
17209
- "default": false
17210
- },
17211
- "signOfIllOmenUsed": {
17212
- "type": "boolean",
17213
- "default": false
17214
- },
17215
- "thiefOfFiveFatesUsed": {
17216
- "type": "boolean",
17217
- "default": false
17218
17158
  }
17219
17159
  },
17220
17160
  "prerequisites": [
@@ -20363,97 +20303,42 @@
20363
20303
  "feature"
20364
20304
  ],
20365
20305
  "results": [
20366
- "recovered",
20367
- "too-many"
20306
+ "recovered"
20368
20307
  ],
20369
- "available": "!self.naturalRecoveryUsed",
20370
- "params": {
20371
- "level1": {
20372
- "type": "integer",
20373
- "optional": true,
20374
- "min": 0
20375
- },
20376
- "level2": {
20377
- "type": "integer",
20378
- "optional": true,
20379
- "min": 0
20380
- },
20381
- "level3": {
20382
- "type": "integer",
20383
- "optional": true,
20384
- "min": 0
20385
- },
20386
- "level4": {
20387
- "type": "integer",
20388
- "optional": true,
20389
- "min": 0
20390
- },
20391
- "level5": {
20392
- "type": "integer",
20393
- "optional": true,
20394
- "min": 0
20395
- }
20396
- },
20308
+ "available": "!self.naturalRecoveryUsed\n && spellSlots.level1.used + spellSlots.level2.used + spellSlots.level3.used\n + spellSlots.level4.used + spellSlots.level5.used > 0",
20397
20309
  "steps": [
20398
20310
  {
20399
- "id": "count",
20400
- "kind": "branch",
20401
- "cases": [
20311
+ "id": "slots",
20312
+ "kind": "choice",
20313
+ "options": {
20314
+ "values": [
20315
+ 1,
20316
+ 2,
20317
+ 3,
20318
+ 4,
20319
+ 5
20320
+ ],
20321
+ "where": "picks < fieldOf('spellSlots.level{slot}.used', value)\n && value + sumList(steps.slots.picked, indexOf(['1', '2', '3', '4', '5'], x) + 1)\n <= ceil(self.level / 2)"
20322
+ },
20323
+ "repeat": {
20324
+ "max": "ceil(self.level / 2)",
20325
+ "min": 1
20326
+ },
20327
+ "prefer": "value",
20328
+ "changes": [
20402
20329
  {
20403
- "when": true,
20404
- "flags": {
20405
- "l1": "has(params.level1) ? params.level1 : 0",
20406
- "l2": "has(params.level2) ? params.level2 : 0",
20407
- "l3": "has(params.level3) ? params.level3 : 0",
20408
- "l4": "has(params.level4) ? params.level4 : 0",
20409
- "l5": "has(params.level5) ? params.level5 : 0"
20410
- }
20330
+ "type": "adjust",
20331
+ "field": {
20332
+ "formula": "'spellSlots.level' + string(picked.value) + '.used'"
20333
+ },
20334
+ "by": -1
20411
20335
  }
20412
20336
  ]
20413
20337
  },
20414
- {
20415
- "id": "tooMany",
20416
- "kind": "outcome",
20417
- "when": "flags.l1 + 2 * flags.l2 + 3 * flags.l3 + 4 * flags.l4 + 5 * flags.l5 > ceil(self.level / 2)",
20418
- "result": "'too-many'",
20419
- "data": {
20420
- "limit": "ceil(self.level / 2)"
20421
- }
20422
- },
20423
20338
  {
20424
20339
  "id": "recover",
20425
20340
  "kind": "changes",
20426
20341
  "changes": [
20427
- {
20428
- "type": "set",
20429
- "field": "spellSlots.level1.used",
20430
- "value": "max(0, spellSlots.level1.used - flags.l1)",
20431
- "when": "flags.l1 > 0"
20432
- },
20433
- {
20434
- "type": "set",
20435
- "field": "spellSlots.level2.used",
20436
- "value": "max(0, spellSlots.level2.used - flags.l2)",
20437
- "when": "flags.l2 > 0"
20438
- },
20439
- {
20440
- "type": "set",
20441
- "field": "spellSlots.level3.used",
20442
- "value": "max(0, spellSlots.level3.used - flags.l3)",
20443
- "when": "flags.l3 > 0"
20444
- },
20445
- {
20446
- "type": "set",
20447
- "field": "spellSlots.level4.used",
20448
- "value": "max(0, spellSlots.level4.used - flags.l4)",
20449
- "when": "flags.l4 > 0"
20450
- },
20451
- {
20452
- "type": "set",
20453
- "field": "spellSlots.level5.used",
20454
- "value": "max(0, spellSlots.level5.used - flags.l5)",
20455
- "when": "flags.l5 > 0"
20456
- },
20457
20342
  {
20458
20343
  "type": "setState",
20459
20344
  "entry": "self",
@@ -20465,7 +20350,10 @@
20465
20350
  {
20466
20351
  "id": "result",
20467
20352
  "kind": "outcome",
20468
- "result": "'recovered'"
20353
+ "result": "'recovered'",
20354
+ "data": {
20355
+ "levels": "sumList(steps.slots.picked, indexOf(['1', '2', '3', '4', '5'], x) + 1)"
20356
+ }
20469
20357
  }
20470
20358
  ]
20471
20359
  }
@@ -24835,70 +24723,38 @@
24835
24723
  "feature"
24836
24724
  ],
24837
24725
  "results": [
24838
- "too-many",
24839
24726
  "recovered"
24840
24727
  ],
24841
- "available": "!self.arcaneRecoveryUsed",
24842
- "params": {
24843
- "level1": {
24844
- "type": "integer",
24845
- "optional": true
24846
- },
24847
- "level2": {
24848
- "type": "integer",
24849
- "optional": true
24850
- },
24851
- "level3": {
24852
- "type": "integer",
24853
- "optional": true
24854
- },
24855
- "level4": {
24856
- "type": "integer",
24857
- "optional": true
24858
- },
24859
- "level5": {
24860
- "type": "integer",
24861
- "optional": true
24862
- }
24863
- },
24728
+ "available": "!self.arcaneRecoveryUsed\n && spellSlots.level1.used + spellSlots.level2.used + spellSlots.level3.used\n + spellSlots.level4.used + spellSlots.level5.used > 0",
24864
24729
  "steps": [
24865
24730
  {
24866
- "id": "counts",
24867
- "kind": "branch",
24868
- "cases": [
24869
- {
24870
- "when": true,
24871
- "flags": {
24872
- "level1": "has(params.level1) ? params.level1 : 0",
24873
- "level2": "has(params.level2) ? params.level2 : 0",
24874
- "level3": "has(params.level3) ? params.level3 : 0",
24875
- "level4": "has(params.level4) ? params.level4 : 0",
24876
- "level5": "has(params.level5) ? params.level5 : 0"
24877
- }
24878
- }
24879
- ]
24880
- },
24881
- {
24882
- "id": "total",
24883
- "kind": "branch",
24884
- "cases": [
24731
+ "id": "slots",
24732
+ "kind": "choice",
24733
+ "options": {
24734
+ "values": [
24735
+ 1,
24736
+ 2,
24737
+ 3,
24738
+ 4,
24739
+ 5
24740
+ ],
24741
+ "where": "picks < fieldOf('spellSlots.level{slot}.used', value)\n && value + sumList(steps.slots.picked, indexOf(['1', '2', '3', '4', '5'], x) + 1)\n <= ceil(self.level / 2)"
24742
+ },
24743
+ "repeat": {
24744
+ "max": "ceil(self.level / 2)",
24745
+ "min": 1
24746
+ },
24747
+ "prefer": "value",
24748
+ "changes": [
24885
24749
  {
24886
- "when": true,
24887
- "flags": {
24888
- "levels": "flags.level1 + 2 * flags.level2 + 3 * flags.level3 + 4 * flags.level4 + 5 * flags.level5"
24889
- }
24750
+ "type": "adjust",
24751
+ "field": {
24752
+ "formula": "'spellSlots.level' + string(picked.value) + '.used'"
24753
+ },
24754
+ "by": -1
24890
24755
  }
24891
24756
  ]
24892
24757
  },
24893
- {
24894
- "id": "tooMany",
24895
- "kind": "outcome",
24896
- "when": "flags.levels == 0 || flags.levels > ceil(self.level / 2)\n || flags.level1 < 0 || flags.level1 > spellSlots.level1.used\n || flags.level2 < 0 || flags.level2 > spellSlots.level2.used\n || flags.level3 < 0 || flags.level3 > spellSlots.level3.used\n || flags.level4 < 0 || flags.level4 > spellSlots.level4.used\n || flags.level5 < 0 || flags.level5 > spellSlots.level5.used",
24897
- "result": "'too-many'",
24898
- "data": {
24899
- "maxLevels": "ceil(self.level / 2)"
24900
- }
24901
- },
24902
24758
  {
24903
24759
  "id": "recover",
24904
24760
  "kind": "changes",
@@ -24908,36 +24764,6 @@
24908
24764
  "entry": "self",
24909
24765
  "key": "arcaneRecoveryUsed",
24910
24766
  "value": true
24911
- },
24912
- {
24913
- "type": "adjust",
24914
- "field": "spellSlots.level1.used",
24915
- "by": "-flags.level1",
24916
- "when": "flags.level1 > 0"
24917
- },
24918
- {
24919
- "type": "adjust",
24920
- "field": "spellSlots.level2.used",
24921
- "by": "-flags.level2",
24922
- "when": "flags.level2 > 0"
24923
- },
24924
- {
24925
- "type": "adjust",
24926
- "field": "spellSlots.level3.used",
24927
- "by": "-flags.level3",
24928
- "when": "flags.level3 > 0"
24929
- },
24930
- {
24931
- "type": "adjust",
24932
- "field": "spellSlots.level4.used",
24933
- "by": "-flags.level4",
24934
- "when": "flags.level4 > 0"
24935
- },
24936
- {
24937
- "type": "adjust",
24938
- "field": "spellSlots.level5.used",
24939
- "by": "-flags.level5",
24940
- "when": "flags.level5 > 0"
24941
24767
  }
24942
24768
  ]
24943
24769
  },
@@ -24946,7 +24772,7 @@
24946
24772
  "kind": "outcome",
24947
24773
  "result": "'recovered'",
24948
24774
  "data": {
24949
- "levels": "flags.levels"
24775
+ "levels": "sumList(steps.slots.picked, indexOf(['1', '2', '3', '4', '5'], x) + 1)"
24950
24776
  }
24951
24777
  }
24952
24778
  ]
@@ -27648,6 +27474,12 @@
27648
27474
  {
27649
27475
  "id": "invocations.bewitching-whispers",
27650
27476
  "type": "invocation",
27477
+ "state": {
27478
+ "used": {
27479
+ "type": "boolean",
27480
+ "default": false
27481
+ }
27482
+ },
27651
27483
  "prerequisites": [
27652
27484
  {
27653
27485
  "id": "level",
@@ -27681,7 +27513,7 @@
27681
27513
  ]
27682
27514
  },
27683
27515
  "op": "option",
27684
- "when": "action.item.id == @spells.compulsion && flags.slot == pactSlots.level\n && pactSlots.used < pactSlots.max && !self.bewitchingWhispersUsed",
27516
+ "when": "action.item.id == @spells.compulsion && flags.slot == pactSlots.level\n && pactSlots.used < pactSlots.max && !self.used",
27685
27517
  "value": {
27686
27518
  "id": "invocation",
27687
27519
  "changes": [
@@ -27692,8 +27524,10 @@
27692
27524
  },
27693
27525
  {
27694
27526
  "type": "setState",
27695
- "entry": "self",
27696
- "key": "bewitchingWhispersUsed",
27527
+ "picks": {
27528
+ "where": "item.id == @invocations.bewitching-whispers"
27529
+ },
27530
+ "key": "used",
27697
27531
  "value": true
27698
27532
  }
27699
27533
  ]
@@ -27772,6 +27606,12 @@
27772
27606
  {
27773
27607
  "id": "invocations.dreadful-word",
27774
27608
  "type": "invocation",
27609
+ "state": {
27610
+ "used": {
27611
+ "type": "boolean",
27612
+ "default": false
27613
+ }
27614
+ },
27775
27615
  "prerequisites": [
27776
27616
  {
27777
27617
  "id": "level",
@@ -27805,7 +27645,7 @@
27805
27645
  ]
27806
27646
  },
27807
27647
  "op": "option",
27808
- "when": "action.item.id == @spells.confusion && flags.slot == pactSlots.level\n && pactSlots.used < pactSlots.max && !self.dreadfulWordUsed",
27648
+ "when": "action.item.id == @spells.confusion && flags.slot == pactSlots.level\n && pactSlots.used < pactSlots.max && !self.used",
27809
27649
  "value": {
27810
27650
  "id": "invocation",
27811
27651
  "changes": [
@@ -27816,8 +27656,10 @@
27816
27656
  },
27817
27657
  {
27818
27658
  "type": "setState",
27819
- "entry": "self",
27820
- "key": "dreadfulWordUsed",
27659
+ "picks": {
27660
+ "where": "item.id == @invocations.dreadful-word"
27661
+ },
27662
+ "key": "used",
27821
27663
  "value": true
27822
27664
  }
27823
27665
  ]
@@ -27852,11 +27694,13 @@
27852
27694
  "when": "@spells.eldritch-blast in spells.warlock"
27853
27695
  }
27854
27696
  ],
27855
- "effects": [
27697
+ "keepsTemplates": [
27856
27698
  {
27857
- "target": "eldritchBlast.range",
27858
- "op": "atLeast",
27859
- "value": 300
27699
+ "template": "templates.eldritch-spear",
27700
+ "content": {
27701
+ "type": "spell",
27702
+ "where": "item.id == @spells.eldritch-blast"
27703
+ }
27860
27704
  }
27861
27705
  ]
27862
27706
  },
@@ -27960,6 +27804,12 @@
27960
27804
  {
27961
27805
  "id": "invocations.minions-of-chaos",
27962
27806
  "type": "invocation",
27807
+ "state": {
27808
+ "used": {
27809
+ "type": "boolean",
27810
+ "default": false
27811
+ }
27812
+ },
27963
27813
  "prerequisites": [
27964
27814
  {
27965
27815
  "id": "level",
@@ -27993,7 +27843,7 @@
27993
27843
  ]
27994
27844
  },
27995
27845
  "op": "option",
27996
- "when": "action.item.id == @spells.conjure-elemental && flags.slot == pactSlots.level\n && pactSlots.used < pactSlots.max && !self.minionsOfChaosUsed",
27846
+ "when": "action.item.id == @spells.conjure-elemental && flags.slot == pactSlots.level\n && pactSlots.used < pactSlots.max && !self.used",
27997
27847
  "value": {
27998
27848
  "id": "invocation",
27999
27849
  "changes": [
@@ -28004,8 +27854,10 @@
28004
27854
  },
28005
27855
  {
28006
27856
  "type": "setState",
28007
- "entry": "self",
28008
- "key": "minionsOfChaosUsed",
27857
+ "picks": {
27858
+ "where": "item.id == @invocations.minions-of-chaos"
27859
+ },
27860
+ "key": "used",
28009
27861
  "value": true
28010
27862
  }
28011
27863
  ]
@@ -28016,6 +27868,12 @@
28016
27868
  {
28017
27869
  "id": "invocations.mire-the-mind",
28018
27870
  "type": "invocation",
27871
+ "state": {
27872
+ "used": {
27873
+ "type": "boolean",
27874
+ "default": false
27875
+ }
27876
+ },
28019
27877
  "prerequisites": [
28020
27878
  {
28021
27879
  "id": "level",
@@ -28049,7 +27907,7 @@
28049
27907
  ]
28050
27908
  },
28051
27909
  "op": "option",
28052
- "when": "action.item.id == @spells.slow && flags.slot == pactSlots.level\n && pactSlots.used < pactSlots.max && !self.mireTheMindUsed",
27910
+ "when": "action.item.id == @spells.slow && flags.slot == pactSlots.level\n && pactSlots.used < pactSlots.max && !self.used",
28053
27911
  "value": {
28054
27912
  "id": "invocation",
28055
27913
  "changes": [
@@ -28060,8 +27918,10 @@
28060
27918
  },
28061
27919
  {
28062
27920
  "type": "setState",
28063
- "entry": "self",
28064
- "key": "mireTheMindUsed",
27921
+ "picks": {
27922
+ "where": "item.id == @invocations.mire-the-mind"
27923
+ },
27924
+ "key": "used",
28065
27925
  "value": true
28066
27926
  }
28067
27927
  ]
@@ -28141,6 +28001,12 @@
28141
28001
  {
28142
28002
  "id": "invocations.sculptor-of-flesh",
28143
28003
  "type": "invocation",
28004
+ "state": {
28005
+ "used": {
28006
+ "type": "boolean",
28007
+ "default": false
28008
+ }
28009
+ },
28144
28010
  "prerequisites": [
28145
28011
  {
28146
28012
  "id": "level",
@@ -28174,7 +28040,7 @@
28174
28040
  ]
28175
28041
  },
28176
28042
  "op": "option",
28177
- "when": "action.item.id == @spells.polymorph && flags.slot == pactSlots.level\n && pactSlots.used < pactSlots.max && !self.sculptorOfFleshUsed",
28043
+ "when": "action.item.id == @spells.polymorph && flags.slot == pactSlots.level\n && pactSlots.used < pactSlots.max && !self.used",
28178
28044
  "value": {
28179
28045
  "id": "invocation",
28180
28046
  "changes": [
@@ -28185,8 +28051,10 @@
28185
28051
  },
28186
28052
  {
28187
28053
  "type": "setState",
28188
- "entry": "self",
28189
- "key": "sculptorOfFleshUsed",
28054
+ "picks": {
28055
+ "where": "item.id == @invocations.sculptor-of-flesh"
28056
+ },
28057
+ "key": "used",
28190
28058
  "value": true
28191
28059
  }
28192
28060
  ]
@@ -28197,6 +28065,12 @@
28197
28065
  {
28198
28066
  "id": "invocations.sign-of-ill-omen",
28199
28067
  "type": "invocation",
28068
+ "state": {
28069
+ "used": {
28070
+ "type": "boolean",
28071
+ "default": false
28072
+ }
28073
+ },
28200
28074
  "prerequisites": [
28201
28075
  {
28202
28076
  "id": "level",
@@ -28230,7 +28104,7 @@
28230
28104
  ]
28231
28105
  },
28232
28106
  "op": "option",
28233
- "when": "action.item.id == @spells.bestow-curse && flags.slot == pactSlots.level\n && pactSlots.used < pactSlots.max && !self.signOfIllOmenUsed",
28107
+ "when": "action.item.id == @spells.bestow-curse && flags.slot == pactSlots.level\n && pactSlots.used < pactSlots.max && !self.used",
28234
28108
  "value": {
28235
28109
  "id": "invocation",
28236
28110
  "changes": [
@@ -28241,8 +28115,10 @@
28241
28115
  },
28242
28116
  {
28243
28117
  "type": "setState",
28244
- "entry": "self",
28245
- "key": "signOfIllOmenUsed",
28118
+ "picks": {
28119
+ "where": "item.id == @invocations.sign-of-ill-omen"
28120
+ },
28121
+ "key": "used",
28246
28122
  "value": true
28247
28123
  }
28248
28124
  ]
@@ -28253,6 +28129,12 @@
28253
28129
  {
28254
28130
  "id": "invocations.thief-of-five-fates",
28255
28131
  "type": "invocation",
28132
+ "state": {
28133
+ "used": {
28134
+ "type": "boolean",
28135
+ "default": false
28136
+ }
28137
+ },
28256
28138
  "grants": [
28257
28139
  {
28258
28140
  "item": "spells.bane"
@@ -28280,7 +28162,7 @@
28280
28162
  ]
28281
28163
  },
28282
28164
  "op": "option",
28283
- "when": "action.item.id == @spells.bane && flags.slot == pactSlots.level\n && pactSlots.used < pactSlots.max && !self.thiefOfFiveFatesUsed",
28165
+ "when": "action.item.id == @spells.bane && flags.slot == pactSlots.level\n && pactSlots.used < pactSlots.max && !self.used",
28284
28166
  "value": {
28285
28167
  "id": "invocation",
28286
28168
  "changes": [
@@ -28291,8 +28173,10 @@
28291
28173
  },
28292
28174
  {
28293
28175
  "type": "setState",
28294
- "entry": "self",
28295
- "key": "thiefOfFiveFatesUsed",
28176
+ "picks": {
28177
+ "where": "item.id == @invocations.thief-of-five-fates"
28178
+ },
28179
+ "key": "used",
28296
28180
  "value": true
28297
28181
  }
28298
28182
  ]
@@ -82511,12 +82395,6 @@
82511
82395
  "speed": 30,
82512
82396
  "size": "medium"
82513
82397
  },
82514
- "state": {
82515
- "relentlessEnduranceUsed": {
82516
- "type": "boolean",
82517
- "default": false
82518
- }
82519
- },
82520
82398
  "effects": [
82521
82399
  {
82522
82400
  "target": "abilities.str.base",
@@ -82646,16 +82524,6 @@
82646
82524
  "speed": 30,
82647
82525
  "size": "medium"
82648
82526
  },
82649
- "state": {
82650
- "hellishRebukeUsed": {
82651
- "type": "boolean",
82652
- "default": false
82653
- },
82654
- "darknessUsed": {
82655
- "type": "boolean",
82656
- "default": false
82657
- }
82658
- },
82659
82527
  "effects": [
82660
82528
  {
82661
82529
  "target": "abilities.int.base",
@@ -84817,12 +84685,42 @@
84817
84685
  "somatic": true,
84818
84686
  "material": false,
84819
84687
  "durationUnit": "hour",
84820
- "durationAmount": 8
84688
+ "durationAmount": 8,
84689
+ "applied": true
84821
84690
  },
84822
84691
  "actions": [
84823
84692
  {
84824
84693
  "use": "cast-spell"
84825
84694
  }
84695
+ ],
84696
+ "effects": [
84697
+ {
84698
+ "id": "ward",
84699
+ "target": {
84700
+ "incoming": {
84701
+ "fields": [
84702
+ "hp.current"
84703
+ ],
84704
+ "tags": [
84705
+ "damage"
84706
+ ]
84707
+ }
84708
+ },
84709
+ "op": "atLeast",
84710
+ "value": "-(hp.current + hp.temp - 1)",
84711
+ "when": "hp.current > 0 && hp.current + hp.temp + incoming.amount <= 0",
84712
+ "scope": "applied",
84713
+ "duration": {
84714
+ "amount": 8,
84715
+ "unit": "hour"
84716
+ },
84717
+ "then": [
84718
+ {
84719
+ "type": "removeEffect",
84720
+ "entry": "self"
84721
+ }
84722
+ ]
84723
+ }
84826
84724
  ]
84827
84725
  },
84828
84726
  {
@@ -85548,7 +85446,7 @@
85548
85446
  "data": {
85549
85447
  "critical": "flags.critical",
85550
85448
  "attack": "steps.attack.total",
85551
- "range": "eldritchBlast.range",
85449
+ "range": "item.range",
85552
85450
  "push": "has(steps.damage) ? eldritchBlast.push : 0"
85553
85451
  }
85554
85452
  }
@@ -93277,6 +93175,16 @@
93277
93175
  }
93278
93176
  ]
93279
93177
  },
93178
+ {
93179
+ "id": "templates.eldritch-spear",
93180
+ "type": "template",
93181
+ "appliesTo": {
93182
+ "type": "spell"
93183
+ },
93184
+ "fields": {
93185
+ "range": 300
93186
+ }
93187
+ },
93280
93188
  {
93281
93189
  "id": "tools.alchemists-supplies",
93282
93190
  "type": "tool",
@@ -93924,6 +93832,16 @@
93924
93832
  {
93925
93833
  "id": "traits.infernal-legacy",
93926
93834
  "type": "trait",
93835
+ "state": {
93836
+ "hellishRebukeUsed": {
93837
+ "type": "boolean",
93838
+ "default": false
93839
+ },
93840
+ "darknessUsed": {
93841
+ "type": "boolean",
93842
+ "default": false
93843
+ }
93844
+ },
93927
93845
  "effects": [
93928
93846
  {
93929
93847
  "target": "spellcasting.racial.mod",
@@ -94012,7 +93930,9 @@
94012
93930
  "changes": [
94013
93931
  {
94014
93932
  "type": "setState",
94015
- "entry": "self",
93933
+ "grants": {
93934
+ "where": "item.id == @traits.infernal-legacy"
93935
+ },
94016
93936
  "key": "hellishRebukeUsed",
94017
93937
  "value": true
94018
93938
  }
@@ -94036,7 +93956,9 @@
94036
93956
  "changes": [
94037
93957
  {
94038
93958
  "type": "setState",
94039
- "entry": "self",
93959
+ "grants": {
93960
+ "where": "item.id == @traits.infernal-legacy"
93961
+ },
94040
93962
  "key": "darknessUsed",
94041
93963
  "value": true
94042
93964
  }
@@ -94116,11 +94038,17 @@
94116
94038
  {
94117
94039
  "id": "traits.relentless-endurance",
94118
94040
  "type": "trait",
94041
+ "state": {
94042
+ "used": {
94043
+ "type": "boolean",
94044
+ "default": false
94045
+ }
94046
+ },
94119
94047
  "followUps": [
94120
94048
  {
94121
94049
  "id": "relentless-endurance",
94122
94050
  "becomes": "hp.current == 0",
94123
- "when": "countCopies(has(copy.state.relentlessEnduranceUsed)\n && !copy.state.relentlessEnduranceUsed) > 0",
94051
+ "when": "!self.used",
94124
94052
  "action": "relentless-endurance"
94125
94053
  }
94126
94054
  ],
@@ -94133,7 +94061,7 @@
94133
94061
  "results": [
94134
94062
  "endured"
94135
94063
  ],
94136
- "available": "hp.current == 0 && countCopies(has(copy.state.relentlessEnduranceUsed)\n && !copy.state.relentlessEnduranceUsed) > 0",
94064
+ "available": "hp.current == 0 && !self.used",
94137
94065
  "steps": [
94138
94066
  {
94139
94067
  "id": "endure",
@@ -94146,11 +94074,8 @@
94146
94074
  },
94147
94075
  {
94148
94076
  "type": "setState",
94149
- "copies": {
94150
- "type": "race",
94151
- "where": "has(self.relentlessEnduranceUsed)"
94152
- },
94153
- "key": "relentlessEnduranceUsed",
94077
+ "grant": "self",
94078
+ "key": "used",
94154
94079
  "value": true
94155
94080
  }
94156
94081
  ]
@@ -95109,7 +95034,97 @@
95109
95034
  }
95110
95035
  }
95111
95036
  ],
95112
- "upgrades": [],
95037
+ "upgrades": [
95038
+ {
95039
+ "pack": "5e-srd-5.1",
95040
+ "from": "0.1.0",
95041
+ "to": "0.2.0",
95042
+ "steps": [
95043
+ {
95044
+ "op": "moveState",
95045
+ "type": "class",
95046
+ "from": "bewitchingWhispersUsed",
95047
+ "to": "used",
95048
+ "owner": "features.warlock.eldritch-invocations",
95049
+ "choice": "invocations",
95050
+ "option": "invocations.bewitching-whispers"
95051
+ },
95052
+ {
95053
+ "op": "moveState",
95054
+ "type": "class",
95055
+ "from": "dreadfulWordUsed",
95056
+ "to": "used",
95057
+ "owner": "features.warlock.eldritch-invocations",
95058
+ "choice": "invocations",
95059
+ "option": "invocations.dreadful-word"
95060
+ },
95061
+ {
95062
+ "op": "moveState",
95063
+ "type": "class",
95064
+ "from": "minionsOfChaosUsed",
95065
+ "to": "used",
95066
+ "owner": "features.warlock.eldritch-invocations",
95067
+ "choice": "invocations",
95068
+ "option": "invocations.minions-of-chaos"
95069
+ },
95070
+ {
95071
+ "op": "moveState",
95072
+ "type": "class",
95073
+ "from": "mireTheMindUsed",
95074
+ "to": "used",
95075
+ "owner": "features.warlock.eldritch-invocations",
95076
+ "choice": "invocations",
95077
+ "option": "invocations.mire-the-mind"
95078
+ },
95079
+ {
95080
+ "op": "moveState",
95081
+ "type": "class",
95082
+ "from": "sculptorOfFleshUsed",
95083
+ "to": "used",
95084
+ "owner": "features.warlock.eldritch-invocations",
95085
+ "choice": "invocations",
95086
+ "option": "invocations.sculptor-of-flesh"
95087
+ },
95088
+ {
95089
+ "op": "moveState",
95090
+ "type": "class",
95091
+ "from": "signOfIllOmenUsed",
95092
+ "to": "used",
95093
+ "owner": "features.warlock.eldritch-invocations",
95094
+ "choice": "invocations",
95095
+ "option": "invocations.sign-of-ill-omen"
95096
+ },
95097
+ {
95098
+ "op": "moveState",
95099
+ "type": "class",
95100
+ "from": "thiefOfFiveFatesUsed",
95101
+ "to": "used",
95102
+ "owner": "features.warlock.eldritch-invocations",
95103
+ "choice": "invocations",
95104
+ "option": "invocations.thief-of-five-fates"
95105
+ },
95106
+ {
95107
+ "op": "moveState",
95108
+ "type": "race",
95109
+ "from": "relentlessEnduranceUsed",
95110
+ "to": "used",
95111
+ "grant": "traits.relentless-endurance"
95112
+ },
95113
+ {
95114
+ "op": "moveState",
95115
+ "type": "race",
95116
+ "from": "hellishRebukeUsed",
95117
+ "grant": "traits.infernal-legacy"
95118
+ },
95119
+ {
95120
+ "op": "moveState",
95121
+ "type": "race",
95122
+ "from": "darknessUsed",
95123
+ "grant": "traits.infernal-legacy"
95124
+ }
95125
+ ]
95126
+ }
95127
+ ],
95113
95128
  "formulas": {
95114
95129
  "1": {
95115
95130
  "text": "1",
@@ -96552,17 +96567,85 @@
96552
96567
  }
96553
96568
  }
96554
96569
  },
96555
- "!self.arcaneRecoveryUsed": {
96556
- "text": "!self.arcaneRecoveryUsed",
96570
+ "!self.arcaneRecoveryUsed\n && spellSlots.level1.used + spellSlots.level2.used + spellSlots.level3.used\n + spellSlots.level4.used + spellSlots.level5.used > 0": {
96571
+ "text": "!self.arcaneRecoveryUsed && spellSlots.level1.used + spellSlots.level2.used + spellSlots.level3.used + spellSlots.level4.used + spellSlots.level5.used > 0",
96557
96572
  "tree": {
96558
- "type": "unary",
96559
- "op": "!",
96560
- "operand": {
96561
- "type": "name",
96562
- "path": [
96563
- "self",
96564
- "arcaneRecoveryUsed"
96565
- ]
96573
+ "type": "binary",
96574
+ "op": "&&",
96575
+ "left": {
96576
+ "type": "unary",
96577
+ "op": "!",
96578
+ "operand": {
96579
+ "type": "name",
96580
+ "path": [
96581
+ "self",
96582
+ "arcaneRecoveryUsed"
96583
+ ]
96584
+ }
96585
+ },
96586
+ "right": {
96587
+ "type": "binary",
96588
+ "op": ">",
96589
+ "left": {
96590
+ "type": "binary",
96591
+ "op": "+",
96592
+ "left": {
96593
+ "type": "binary",
96594
+ "op": "+",
96595
+ "left": {
96596
+ "type": "binary",
96597
+ "op": "+",
96598
+ "left": {
96599
+ "type": "binary",
96600
+ "op": "+",
96601
+ "left": {
96602
+ "type": "name",
96603
+ "path": [
96604
+ "spellSlots",
96605
+ "level1",
96606
+ "used"
96607
+ ]
96608
+ },
96609
+ "right": {
96610
+ "type": "name",
96611
+ "path": [
96612
+ "spellSlots",
96613
+ "level2",
96614
+ "used"
96615
+ ]
96616
+ }
96617
+ },
96618
+ "right": {
96619
+ "type": "name",
96620
+ "path": [
96621
+ "spellSlots",
96622
+ "level3",
96623
+ "used"
96624
+ ]
96625
+ }
96626
+ },
96627
+ "right": {
96628
+ "type": "name",
96629
+ "path": [
96630
+ "spellSlots",
96631
+ "level4",
96632
+ "used"
96633
+ ]
96634
+ }
96635
+ },
96636
+ "right": {
96637
+ "type": "name",
96638
+ "path": [
96639
+ "spellSlots",
96640
+ "level5",
96641
+ "used"
96642
+ ]
96643
+ }
96644
+ },
96645
+ "right": {
96646
+ "type": "int",
96647
+ "value": 0
96648
+ }
96566
96649
  }
96567
96650
  }
96568
96651
  },
@@ -96641,17 +96724,85 @@
96641
96724
  }
96642
96725
  }
96643
96726
  },
96644
- "!self.naturalRecoveryUsed": {
96645
- "text": "!self.naturalRecoveryUsed",
96727
+ "!self.naturalRecoveryUsed\n && spellSlots.level1.used + spellSlots.level2.used + spellSlots.level3.used\n + spellSlots.level4.used + spellSlots.level5.used > 0": {
96728
+ "text": "!self.naturalRecoveryUsed && spellSlots.level1.used + spellSlots.level2.used + spellSlots.level3.used + spellSlots.level4.used + spellSlots.level5.used > 0",
96646
96729
  "tree": {
96647
- "type": "unary",
96648
- "op": "!",
96649
- "operand": {
96650
- "type": "name",
96651
- "path": [
96652
- "self",
96653
- "naturalRecoveryUsed"
96654
- ]
96730
+ "type": "binary",
96731
+ "op": "&&",
96732
+ "left": {
96733
+ "type": "unary",
96734
+ "op": "!",
96735
+ "operand": {
96736
+ "type": "name",
96737
+ "path": [
96738
+ "self",
96739
+ "naturalRecoveryUsed"
96740
+ ]
96741
+ }
96742
+ },
96743
+ "right": {
96744
+ "type": "binary",
96745
+ "op": ">",
96746
+ "left": {
96747
+ "type": "binary",
96748
+ "op": "+",
96749
+ "left": {
96750
+ "type": "binary",
96751
+ "op": "+",
96752
+ "left": {
96753
+ "type": "binary",
96754
+ "op": "+",
96755
+ "left": {
96756
+ "type": "binary",
96757
+ "op": "+",
96758
+ "left": {
96759
+ "type": "name",
96760
+ "path": [
96761
+ "spellSlots",
96762
+ "level1",
96763
+ "used"
96764
+ ]
96765
+ },
96766
+ "right": {
96767
+ "type": "name",
96768
+ "path": [
96769
+ "spellSlots",
96770
+ "level2",
96771
+ "used"
96772
+ ]
96773
+ }
96774
+ },
96775
+ "right": {
96776
+ "type": "name",
96777
+ "path": [
96778
+ "spellSlots",
96779
+ "level3",
96780
+ "used"
96781
+ ]
96782
+ }
96783
+ },
96784
+ "right": {
96785
+ "type": "name",
96786
+ "path": [
96787
+ "spellSlots",
96788
+ "level4",
96789
+ "used"
96790
+ ]
96791
+ }
96792
+ },
96793
+ "right": {
96794
+ "type": "name",
96795
+ "path": [
96796
+ "spellSlots",
96797
+ "level5",
96798
+ "used"
96799
+ ]
96800
+ }
96801
+ },
96802
+ "right": {
96803
+ "type": "int",
96804
+ "value": 0
96805
+ }
96655
96806
  }
96656
96807
  }
96657
96808
  },
@@ -96711,6 +96862,20 @@
96711
96862
  }
96712
96863
  }
96713
96864
  },
96865
+ "!self.used": {
96866
+ "text": "!self.used",
96867
+ "tree": {
96868
+ "type": "unary",
96869
+ "op": "!",
96870
+ "operand": {
96871
+ "type": "name",
96872
+ "path": [
96873
+ "self",
96874
+ "used"
96875
+ ]
96876
+ }
96877
+ }
96878
+ },
96714
96879
  "!self.wholenessUsed": {
96715
96880
  "text": "!self.wholenessUsed",
96716
96881
  "tree": {
@@ -101363,6 +101528,38 @@
101363
101528
  }
101364
101529
  }
101365
101530
  },
101531
+ "'spellSlots.level' + string(picked.value) + '.used'": {
101532
+ "text": "'spellSlots.level' + string(picked.value) + '.used'",
101533
+ "tree": {
101534
+ "type": "binary",
101535
+ "op": "+",
101536
+ "left": {
101537
+ "type": "binary",
101538
+ "op": "+",
101539
+ "left": {
101540
+ "type": "string",
101541
+ "value": "spellSlots.level"
101542
+ },
101543
+ "right": {
101544
+ "type": "call",
101545
+ "fn": "string",
101546
+ "args": [
101547
+ {
101548
+ "type": "name",
101549
+ "path": [
101550
+ "picked",
101551
+ "value"
101552
+ ]
101553
+ }
101554
+ ]
101555
+ }
101556
+ },
101557
+ "right": {
101558
+ "type": "string",
101559
+ "value": ".used"
101560
+ }
101561
+ }
101562
+ },
101366
101563
  "'spent'": {
101367
101564
  "text": "'spent'",
101368
101565
  "tree": {
@@ -101523,13 +101720,6 @@
101523
101720
  "value": "tiny"
101524
101721
  }
101525
101722
  },
101526
- "'too-many'": {
101527
- "text": "'too-many'",
101528
- "tree": {
101529
- "type": "string",
101530
- "value": "too-many"
101531
- }
101532
- },
101533
101723
  "'tools.disguise-kit'": {
101534
101724
  "text": "'tools.disguise-kit'",
101535
101725
  "tree": {
@@ -117400,6 +117590,39 @@
117400
117590
  }
117401
117591
  }
117402
117592
  },
117593
+ "-(hp.current + hp.temp - 1)": {
117594
+ "text": "-(hp.current + hp.temp - 1)",
117595
+ "tree": {
117596
+ "type": "unary",
117597
+ "op": "-",
117598
+ "operand": {
117599
+ "type": "binary",
117600
+ "op": "-",
117601
+ "left": {
117602
+ "type": "binary",
117603
+ "op": "+",
117604
+ "left": {
117605
+ "type": "name",
117606
+ "path": [
117607
+ "hp",
117608
+ "current"
117609
+ ]
117610
+ },
117611
+ "right": {
117612
+ "type": "name",
117613
+ "path": [
117614
+ "hp",
117615
+ "temp"
117616
+ ]
117617
+ }
117618
+ },
117619
+ "right": {
117620
+ "type": "int",
117621
+ "value": 1
117622
+ }
117623
+ }
117624
+ }
117625
+ },
117403
117626
  "-1d4": {
117404
117627
  "text": "-1d4",
117405
117628
  "tree": {
@@ -117427,76 +117650,6 @@
117427
117650
  }
117428
117651
  }
117429
117652
  },
117430
- "-flags.level1": {
117431
- "text": "-flags.level1",
117432
- "tree": {
117433
- "type": "unary",
117434
- "op": "-",
117435
- "operand": {
117436
- "type": "name",
117437
- "path": [
117438
- "flags",
117439
- "level1"
117440
- ]
117441
- }
117442
- }
117443
- },
117444
- "-flags.level2": {
117445
- "text": "-flags.level2",
117446
- "tree": {
117447
- "type": "unary",
117448
- "op": "-",
117449
- "operand": {
117450
- "type": "name",
117451
- "path": [
117452
- "flags",
117453
- "level2"
117454
- ]
117455
- }
117456
- }
117457
- },
117458
- "-flags.level3": {
117459
- "text": "-flags.level3",
117460
- "tree": {
117461
- "type": "unary",
117462
- "op": "-",
117463
- "operand": {
117464
- "type": "name",
117465
- "path": [
117466
- "flags",
117467
- "level3"
117468
- ]
117469
- }
117470
- }
117471
- },
117472
- "-flags.level4": {
117473
- "text": "-flags.level4",
117474
- "tree": {
117475
- "type": "unary",
117476
- "op": "-",
117477
- "operand": {
117478
- "type": "name",
117479
- "path": [
117480
- "flags",
117481
- "level4"
117482
- ]
117483
- }
117484
- }
117485
- },
117486
- "-flags.level5": {
117487
- "text": "-flags.level5",
117488
- "tree": {
117489
- "type": "unary",
117490
- "op": "-",
117491
- "operand": {
117492
- "type": "name",
117493
- "path": [
117494
- "flags",
117495
- "level5"
117496
- ]
117497
- }
117498
- }
117499
- },
117500
117653
  "-flags.slot": {
117501
117654
  "text": "-flags.slot",
117502
117655
  "tree": {
@@ -126122,8 +126275,8 @@
126122
126275
  }
126123
126276
  }
126124
126277
  },
126125
- "action.item.id == @spells.bane && flags.slot == pactSlots.level\n && pactSlots.used < pactSlots.max && !self.thiefOfFiveFatesUsed": {
126126
- "text": "action.item.id == @spells.bane && flags.slot == pactSlots.level && pactSlots.used < pactSlots.max && !self.thiefOfFiveFatesUsed",
126278
+ "action.item.id == @spells.bane && flags.slot == pactSlots.level\n && pactSlots.used < pactSlots.max && !self.used": {
126279
+ "text": "action.item.id == @spells.bane && flags.slot == pactSlots.level && pactSlots.used < pactSlots.max && !self.used",
126127
126280
  "tree": {
126128
126281
  "type": "binary",
126129
126282
  "op": "&&",
@@ -126194,14 +126347,14 @@
126194
126347
  "type": "name",
126195
126348
  "path": [
126196
126349
  "self",
126197
- "thiefOfFiveFatesUsed"
126350
+ "used"
126198
126351
  ]
126199
126352
  }
126200
126353
  }
126201
126354
  }
126202
126355
  },
126203
- "action.item.id == @spells.bestow-curse && flags.slot == pactSlots.level\n && pactSlots.used < pactSlots.max && !self.signOfIllOmenUsed": {
126204
- "text": "action.item.id == @spells.bestow-curse && flags.slot == pactSlots.level && pactSlots.used < pactSlots.max && !self.signOfIllOmenUsed",
126356
+ "action.item.id == @spells.bestow-curse && flags.slot == pactSlots.level\n && pactSlots.used < pactSlots.max && !self.used": {
126357
+ "text": "action.item.id == @spells.bestow-curse && flags.slot == pactSlots.level && pactSlots.used < pactSlots.max && !self.used",
126205
126358
  "tree": {
126206
126359
  "type": "binary",
126207
126360
  "op": "&&",
@@ -126272,14 +126425,14 @@
126272
126425
  "type": "name",
126273
126426
  "path": [
126274
126427
  "self",
126275
- "signOfIllOmenUsed"
126428
+ "used"
126276
126429
  ]
126277
126430
  }
126278
126431
  }
126279
126432
  }
126280
126433
  },
126281
- "action.item.id == @spells.compulsion && flags.slot == pactSlots.level\n && pactSlots.used < pactSlots.max && !self.bewitchingWhispersUsed": {
126282
- "text": "action.item.id == @spells.compulsion && flags.slot == pactSlots.level && pactSlots.used < pactSlots.max && !self.bewitchingWhispersUsed",
126434
+ "action.item.id == @spells.compulsion && flags.slot == pactSlots.level\n && pactSlots.used < pactSlots.max && !self.used": {
126435
+ "text": "action.item.id == @spells.compulsion && flags.slot == pactSlots.level && pactSlots.used < pactSlots.max && !self.used",
126283
126436
  "tree": {
126284
126437
  "type": "binary",
126285
126438
  "op": "&&",
@@ -126350,7 +126503,7 @@
126350
126503
  "type": "name",
126351
126504
  "path": [
126352
126505
  "self",
126353
- "bewitchingWhispersUsed"
126506
+ "used"
126354
126507
  ]
126355
126508
  }
126356
126509
  }
@@ -126573,8 +126726,8 @@
126573
126726
  }
126574
126727
  }
126575
126728
  },
126576
- "action.item.id == @spells.confusion && flags.slot == pactSlots.level\n && pactSlots.used < pactSlots.max && !self.dreadfulWordUsed": {
126577
- "text": "action.item.id == @spells.confusion && flags.slot == pactSlots.level && pactSlots.used < pactSlots.max && !self.dreadfulWordUsed",
126729
+ "action.item.id == @spells.confusion && flags.slot == pactSlots.level\n && pactSlots.used < pactSlots.max && !self.used": {
126730
+ "text": "action.item.id == @spells.confusion && flags.slot == pactSlots.level && pactSlots.used < pactSlots.max && !self.used",
126578
126731
  "tree": {
126579
126732
  "type": "binary",
126580
126733
  "op": "&&",
@@ -126645,14 +126798,14 @@
126645
126798
  "type": "name",
126646
126799
  "path": [
126647
126800
  "self",
126648
- "dreadfulWordUsed"
126801
+ "used"
126649
126802
  ]
126650
126803
  }
126651
126804
  }
126652
126805
  }
126653
126806
  },
126654
- "action.item.id == @spells.conjure-elemental && flags.slot == pactSlots.level\n && pactSlots.used < pactSlots.max && !self.minionsOfChaosUsed": {
126655
- "text": "action.item.id == @spells.conjure-elemental && flags.slot == pactSlots.level && pactSlots.used < pactSlots.max && !self.minionsOfChaosUsed",
126807
+ "action.item.id == @spells.conjure-elemental && flags.slot == pactSlots.level\n && pactSlots.used < pactSlots.max && !self.used": {
126808
+ "text": "action.item.id == @spells.conjure-elemental && flags.slot == pactSlots.level && pactSlots.used < pactSlots.max && !self.used",
126656
126809
  "tree": {
126657
126810
  "type": "binary",
126658
126811
  "op": "&&",
@@ -126723,7 +126876,7 @@
126723
126876
  "type": "name",
126724
126877
  "path": [
126725
126878
  "self",
126726
- "minionsOfChaosUsed"
126879
+ "used"
126727
126880
  ]
126728
126881
  }
126729
126882
  }
@@ -127144,8 +127297,8 @@
127144
127297
  }
127145
127298
  }
127146
127299
  },
127147
- "action.item.id == @spells.polymorph && flags.slot == pactSlots.level\n && pactSlots.used < pactSlots.max && !self.sculptorOfFleshUsed": {
127148
- "text": "action.item.id == @spells.polymorph && flags.slot == pactSlots.level && pactSlots.used < pactSlots.max && !self.sculptorOfFleshUsed",
127300
+ "action.item.id == @spells.polymorph && flags.slot == pactSlots.level\n && pactSlots.used < pactSlots.max && !self.used": {
127301
+ "text": "action.item.id == @spells.polymorph && flags.slot == pactSlots.level && pactSlots.used < pactSlots.max && !self.used",
127149
127302
  "tree": {
127150
127303
  "type": "binary",
127151
127304
  "op": "&&",
@@ -127216,14 +127369,14 @@
127216
127369
  "type": "name",
127217
127370
  "path": [
127218
127371
  "self",
127219
- "sculptorOfFleshUsed"
127372
+ "used"
127220
127373
  ]
127221
127374
  }
127222
127375
  }
127223
127376
  }
127224
127377
  },
127225
- "action.item.id == @spells.slow && flags.slot == pactSlots.level\n && pactSlots.used < pactSlots.max && !self.mireTheMindUsed": {
127226
- "text": "action.item.id == @spells.slow && flags.slot == pactSlots.level && pactSlots.used < pactSlots.max && !self.mireTheMindUsed",
127378
+ "action.item.id == @spells.slow && flags.slot == pactSlots.level\n && pactSlots.used < pactSlots.max && !self.used": {
127379
+ "text": "action.item.id == @spells.slow && flags.slot == pactSlots.level && pactSlots.used < pactSlots.max && !self.used",
127227
127380
  "tree": {
127228
127381
  "type": "binary",
127229
127382
  "op": "&&",
@@ -127294,7 +127447,7 @@
127294
127447
  "type": "name",
127295
127448
  "path": [
127296
127449
  "self",
127297
- "mireTheMindUsed"
127450
+ "used"
127298
127451
  ]
127299
127452
  }
127300
127453
  }
@@ -136835,6 +136988,38 @@
136835
136988
  }
136836
136989
  }
136837
136990
  },
136991
+ "countCopies(copy.item == @classes.warlock) > 0": {
136992
+ "text": "countCopies(copy.item == @classes.warlock) > 0",
136993
+ "tree": {
136994
+ "type": "binary",
136995
+ "op": ">",
136996
+ "left": {
136997
+ "type": "call",
136998
+ "fn": "countCopies",
136999
+ "args": [
137000
+ {
137001
+ "type": "binary",
137002
+ "op": "==",
137003
+ "left": {
137004
+ "type": "name",
137005
+ "path": [
137006
+ "copy",
137007
+ "item"
137008
+ ]
137009
+ },
137010
+ "right": {
137011
+ "type": "ref",
137012
+ "id": "classes.warlock"
137013
+ }
137014
+ }
137015
+ ]
137016
+ },
137017
+ "right": {
137018
+ "type": "int",
137019
+ "value": 0
137020
+ }
137021
+ }
137022
+ },
136838
137023
  "countCopies(copy.item == @magic-items.ring-of-x-ray-vision\n && copy.state.used) > 0": {
136839
137024
  "text": "countCopies(copy.item == @magic-items.ring-of-x-ray-vision && copy.state.used) > 0",
136840
137025
  "tree": {
@@ -136879,6 +137064,102 @@
136879
137064
  }
136880
137065
  }
136881
137066
  },
137067
+ "countCopies(copy.item == @races.dragonborn) > 0": {
137068
+ "text": "countCopies(copy.item == @races.dragonborn) > 0",
137069
+ "tree": {
137070
+ "type": "binary",
137071
+ "op": ">",
137072
+ "left": {
137073
+ "type": "call",
137074
+ "fn": "countCopies",
137075
+ "args": [
137076
+ {
137077
+ "type": "binary",
137078
+ "op": "==",
137079
+ "left": {
137080
+ "type": "name",
137081
+ "path": [
137082
+ "copy",
137083
+ "item"
137084
+ ]
137085
+ },
137086
+ "right": {
137087
+ "type": "ref",
137088
+ "id": "races.dragonborn"
137089
+ }
137090
+ }
137091
+ ]
137092
+ },
137093
+ "right": {
137094
+ "type": "int",
137095
+ "value": 0
137096
+ }
137097
+ }
137098
+ },
137099
+ "countCopies(copy.item == @races.half-orc) > 0": {
137100
+ "text": "countCopies(copy.item == @races.half-orc) > 0",
137101
+ "tree": {
137102
+ "type": "binary",
137103
+ "op": ">",
137104
+ "left": {
137105
+ "type": "call",
137106
+ "fn": "countCopies",
137107
+ "args": [
137108
+ {
137109
+ "type": "binary",
137110
+ "op": "==",
137111
+ "left": {
137112
+ "type": "name",
137113
+ "path": [
137114
+ "copy",
137115
+ "item"
137116
+ ]
137117
+ },
137118
+ "right": {
137119
+ "type": "ref",
137120
+ "id": "races.half-orc"
137121
+ }
137122
+ }
137123
+ ]
137124
+ },
137125
+ "right": {
137126
+ "type": "int",
137127
+ "value": 0
137128
+ }
137129
+ }
137130
+ },
137131
+ "countCopies(copy.item == @races.tiefling) > 0": {
137132
+ "text": "countCopies(copy.item == @races.tiefling) > 0",
137133
+ "tree": {
137134
+ "type": "binary",
137135
+ "op": ">",
137136
+ "left": {
137137
+ "type": "call",
137138
+ "fn": "countCopies",
137139
+ "args": [
137140
+ {
137141
+ "type": "binary",
137142
+ "op": "==",
137143
+ "left": {
137144
+ "type": "name",
137145
+ "path": [
137146
+ "copy",
137147
+ "item"
137148
+ ]
137149
+ },
137150
+ "right": {
137151
+ "type": "ref",
137152
+ "id": "races.tiefling"
137153
+ }
137154
+ }
137155
+ ]
137156
+ },
137157
+ "right": {
137158
+ "type": "int",
137159
+ "value": 0
137160
+ }
137161
+ }
137162
+ },
136882
137163
  "countCopies(copy.type == 'gear' && has(copy.state.quivered)\n && copy.state.quivered && copy.fields.category != 'ammunition') == 0": {
136883
137164
  "text": "countCopies(copy.type == 'gear' && has(copy.state.quivered) && copy.state.quivered && copy.fields.category != 'ammunition') == 0",
136884
137165
  "tree": {
@@ -137420,49 +137701,6 @@
137420
137701
  }
137421
137702
  }
137422
137703
  },
137423
- "countCopies(has(copy.state.bewitchingWhispersUsed) && copy.state.bewitchingWhispersUsed) > 0": {
137424
- "text": "countCopies(has(copy.state.bewitchingWhispersUsed) && copy.state.bewitchingWhispersUsed) > 0",
137425
- "tree": {
137426
- "type": "binary",
137427
- "op": ">",
137428
- "left": {
137429
- "type": "call",
137430
- "fn": "countCopies",
137431
- "args": [
137432
- {
137433
- "type": "binary",
137434
- "op": "&&",
137435
- "left": {
137436
- "type": "call",
137437
- "fn": "has",
137438
- "args": [
137439
- {
137440
- "type": "name",
137441
- "path": [
137442
- "copy",
137443
- "state",
137444
- "bewitchingWhispersUsed"
137445
- ]
137446
- }
137447
- ]
137448
- },
137449
- "right": {
137450
- "type": "name",
137451
- "path": [
137452
- "copy",
137453
- "state",
137454
- "bewitchingWhispersUsed"
137455
- ]
137456
- }
137457
- }
137458
- ]
137459
- },
137460
- "right": {
137461
- "type": "int",
137462
- "value": 0
137463
- }
137464
- }
137465
- },
137466
137704
  "countCopies(has(copy.state.channelDivinitySpent) && copy.state.channelDivinitySpent > 0) > 0": {
137467
137705
  "text": "countCopies(has(copy.state.channelDivinitySpent) && copy.state.channelDivinitySpent > 0) > 0",
137468
137706
  "tree": {
@@ -137608,49 +137846,6 @@
137608
137846
  }
137609
137847
  }
137610
137848
  },
137611
- "countCopies(has(copy.state.darknessUsed) && copy.state.darknessUsed) > 0": {
137612
- "text": "countCopies(has(copy.state.darknessUsed) && copy.state.darknessUsed) > 0",
137613
- "tree": {
137614
- "type": "binary",
137615
- "op": ">",
137616
- "left": {
137617
- "type": "call",
137618
- "fn": "countCopies",
137619
- "args": [
137620
- {
137621
- "type": "binary",
137622
- "op": "&&",
137623
- "left": {
137624
- "type": "call",
137625
- "fn": "has",
137626
- "args": [
137627
- {
137628
- "type": "name",
137629
- "path": [
137630
- "copy",
137631
- "state",
137632
- "darknessUsed"
137633
- ]
137634
- }
137635
- ]
137636
- },
137637
- "right": {
137638
- "type": "name",
137639
- "path": [
137640
- "copy",
137641
- "state",
137642
- "darknessUsed"
137643
- ]
137644
- }
137645
- }
137646
- ]
137647
- },
137648
- "right": {
137649
- "type": "int",
137650
- "value": 0
137651
- }
137652
- }
137653
- },
137654
137849
  "countCopies(has(copy.state.divineIntervention) && copy.state.divineIntervention == 'failed') > 0": {
137655
137850
  "text": "countCopies(has(copy.state.divineIntervention) && copy.state.divineIntervention == 'failed') > 0",
137656
137851
  "tree": {
@@ -137753,49 +137948,6 @@
137753
137948
  }
137754
137949
  }
137755
137950
  },
137756
- "countCopies(has(copy.state.dreadfulWordUsed) && copy.state.dreadfulWordUsed) > 0": {
137757
- "text": "countCopies(has(copy.state.dreadfulWordUsed) && copy.state.dreadfulWordUsed) > 0",
137758
- "tree": {
137759
- "type": "binary",
137760
- "op": ">",
137761
- "left": {
137762
- "type": "call",
137763
- "fn": "countCopies",
137764
- "args": [
137765
- {
137766
- "type": "binary",
137767
- "op": "&&",
137768
- "left": {
137769
- "type": "call",
137770
- "fn": "has",
137771
- "args": [
137772
- {
137773
- "type": "name",
137774
- "path": [
137775
- "copy",
137776
- "state",
137777
- "dreadfulWordUsed"
137778
- ]
137779
- }
137780
- ]
137781
- },
137782
- "right": {
137783
- "type": "name",
137784
- "path": [
137785
- "copy",
137786
- "state",
137787
- "dreadfulWordUsed"
137788
- ]
137789
- }
137790
- }
137791
- ]
137792
- },
137793
- "right": {
137794
- "type": "int",
137795
- "value": 0
137796
- }
137797
- }
137798
- },
137799
137951
  "countCopies(has(copy.state.eldritchMasterUsed) && copy.state.eldritchMasterUsed) > 0": {
137800
137952
  "text": "countCopies(has(copy.state.eldritchMasterUsed) && copy.state.eldritchMasterUsed) > 0",
137801
137953
  "tree": {
@@ -137839,49 +137991,6 @@
137839
137991
  }
137840
137992
  }
137841
137993
  },
137842
- "countCopies(has(copy.state.hellishRebukeUsed) && copy.state.hellishRebukeUsed) > 0": {
137843
- "text": "countCopies(has(copy.state.hellishRebukeUsed) && copy.state.hellishRebukeUsed) > 0",
137844
- "tree": {
137845
- "type": "binary",
137846
- "op": ">",
137847
- "left": {
137848
- "type": "call",
137849
- "fn": "countCopies",
137850
- "args": [
137851
- {
137852
- "type": "binary",
137853
- "op": "&&",
137854
- "left": {
137855
- "type": "call",
137856
- "fn": "has",
137857
- "args": [
137858
- {
137859
- "type": "name",
137860
- "path": [
137861
- "copy",
137862
- "state",
137863
- "hellishRebukeUsed"
137864
- ]
137865
- }
137866
- ]
137867
- },
137868
- "right": {
137869
- "type": "name",
137870
- "path": [
137871
- "copy",
137872
- "state",
137873
- "hellishRebukeUsed"
137874
- ]
137875
- }
137876
- }
137877
- ]
137878
- },
137879
- "right": {
137880
- "type": "int",
137881
- "value": 0
137882
- }
137883
- }
137884
- },
137885
137994
  "countCopies(has(copy.state.holyNimbusUsed) && copy.state.holyNimbusUsed) > 0": {
137886
137995
  "text": "countCopies(has(copy.state.holyNimbusUsed) && copy.state.holyNimbusUsed) > 0",
137887
137996
  "tree": {
@@ -138121,92 +138230,6 @@
138121
138230
  }
138122
138231
  }
138123
138232
  },
138124
- "countCopies(has(copy.state.minionsOfChaosUsed) && copy.state.minionsOfChaosUsed) > 0": {
138125
- "text": "countCopies(has(copy.state.minionsOfChaosUsed) && copy.state.minionsOfChaosUsed) > 0",
138126
- "tree": {
138127
- "type": "binary",
138128
- "op": ">",
138129
- "left": {
138130
- "type": "call",
138131
- "fn": "countCopies",
138132
- "args": [
138133
- {
138134
- "type": "binary",
138135
- "op": "&&",
138136
- "left": {
138137
- "type": "call",
138138
- "fn": "has",
138139
- "args": [
138140
- {
138141
- "type": "name",
138142
- "path": [
138143
- "copy",
138144
- "state",
138145
- "minionsOfChaosUsed"
138146
- ]
138147
- }
138148
- ]
138149
- },
138150
- "right": {
138151
- "type": "name",
138152
- "path": [
138153
- "copy",
138154
- "state",
138155
- "minionsOfChaosUsed"
138156
- ]
138157
- }
138158
- }
138159
- ]
138160
- },
138161
- "right": {
138162
- "type": "int",
138163
- "value": 0
138164
- }
138165
- }
138166
- },
138167
- "countCopies(has(copy.state.mireTheMindUsed) && copy.state.mireTheMindUsed) > 0": {
138168
- "text": "countCopies(has(copy.state.mireTheMindUsed) && copy.state.mireTheMindUsed) > 0",
138169
- "tree": {
138170
- "type": "binary",
138171
- "op": ">",
138172
- "left": {
138173
- "type": "call",
138174
- "fn": "countCopies",
138175
- "args": [
138176
- {
138177
- "type": "binary",
138178
- "op": "&&",
138179
- "left": {
138180
- "type": "call",
138181
- "fn": "has",
138182
- "args": [
138183
- {
138184
- "type": "name",
138185
- "path": [
138186
- "copy",
138187
- "state",
138188
- "mireTheMindUsed"
138189
- ]
138190
- }
138191
- ]
138192
- },
138193
- "right": {
138194
- "type": "name",
138195
- "path": [
138196
- "copy",
138197
- "state",
138198
- "mireTheMindUsed"
138199
- ]
138200
- }
138201
- }
138202
- ]
138203
- },
138204
- "right": {
138205
- "type": "int",
138206
- "value": 0
138207
- }
138208
- }
138209
- },
138210
138233
  "countCopies(has(copy.state.naturalRecoveryUsed) && copy.state.naturalRecoveryUsed) > 0": {
138211
138234
  "text": "countCopies(has(copy.state.naturalRecoveryUsed) && copy.state.naturalRecoveryUsed) > 0",
138212
138235
  "tree": {
@@ -138352,96 +138375,6 @@
138352
138375
  }
138353
138376
  }
138354
138377
  },
138355
- "countCopies(has(copy.state.relentlessEnduranceUsed)\n && !copy.state.relentlessEnduranceUsed) > 0": {
138356
- "text": "countCopies(has(copy.state.relentlessEnduranceUsed) && !copy.state.relentlessEnduranceUsed) > 0",
138357
- "tree": {
138358
- "type": "binary",
138359
- "op": ">",
138360
- "left": {
138361
- "type": "call",
138362
- "fn": "countCopies",
138363
- "args": [
138364
- {
138365
- "type": "binary",
138366
- "op": "&&",
138367
- "left": {
138368
- "type": "call",
138369
- "fn": "has",
138370
- "args": [
138371
- {
138372
- "type": "name",
138373
- "path": [
138374
- "copy",
138375
- "state",
138376
- "relentlessEnduranceUsed"
138377
- ]
138378
- }
138379
- ]
138380
- },
138381
- "right": {
138382
- "type": "unary",
138383
- "op": "!",
138384
- "operand": {
138385
- "type": "name",
138386
- "path": [
138387
- "copy",
138388
- "state",
138389
- "relentlessEnduranceUsed"
138390
- ]
138391
- }
138392
- }
138393
- }
138394
- ]
138395
- },
138396
- "right": {
138397
- "type": "int",
138398
- "value": 0
138399
- }
138400
- }
138401
- },
138402
- "countCopies(has(copy.state.relentlessEnduranceUsed)\n && copy.state.relentlessEnduranceUsed) > 0": {
138403
- "text": "countCopies(has(copy.state.relentlessEnduranceUsed) && copy.state.relentlessEnduranceUsed) > 0",
138404
- "tree": {
138405
- "type": "binary",
138406
- "op": ">",
138407
- "left": {
138408
- "type": "call",
138409
- "fn": "countCopies",
138410
- "args": [
138411
- {
138412
- "type": "binary",
138413
- "op": "&&",
138414
- "left": {
138415
- "type": "call",
138416
- "fn": "has",
138417
- "args": [
138418
- {
138419
- "type": "name",
138420
- "path": [
138421
- "copy",
138422
- "state",
138423
- "relentlessEnduranceUsed"
138424
- ]
138425
- }
138426
- ]
138427
- },
138428
- "right": {
138429
- "type": "name",
138430
- "path": [
138431
- "copy",
138432
- "state",
138433
- "relentlessEnduranceUsed"
138434
- ]
138435
- }
138436
- }
138437
- ]
138438
- },
138439
- "right": {
138440
- "type": "int",
138441
- "value": 0
138442
- }
138443
- }
138444
- },
138445
138378
  "countCopies(has(copy.state.relentlessRageSpent) && copy.state.relentlessRageSpent > 0) > 0": {
138446
138379
  "text": "countCopies(has(copy.state.relentlessRageSpent) && copy.state.relentlessRageSpent > 0) > 0",
138447
138380
  "tree": {
@@ -138493,49 +138426,6 @@
138493
138426
  }
138494
138427
  }
138495
138428
  },
138496
- "countCopies(has(copy.state.sculptorOfFleshUsed) && copy.state.sculptorOfFleshUsed) > 0": {
138497
- "text": "countCopies(has(copy.state.sculptorOfFleshUsed) && copy.state.sculptorOfFleshUsed) > 0",
138498
- "tree": {
138499
- "type": "binary",
138500
- "op": ">",
138501
- "left": {
138502
- "type": "call",
138503
- "fn": "countCopies",
138504
- "args": [
138505
- {
138506
- "type": "binary",
138507
- "op": "&&",
138508
- "left": {
138509
- "type": "call",
138510
- "fn": "has",
138511
- "args": [
138512
- {
138513
- "type": "name",
138514
- "path": [
138515
- "copy",
138516
- "state",
138517
- "sculptorOfFleshUsed"
138518
- ]
138519
- }
138520
- ]
138521
- },
138522
- "right": {
138523
- "type": "name",
138524
- "path": [
138525
- "copy",
138526
- "state",
138527
- "sculptorOfFleshUsed"
138528
- ]
138529
- }
138530
- }
138531
- ]
138532
- },
138533
- "right": {
138534
- "type": "int",
138535
- "value": 0
138536
- }
138537
- }
138538
- },
138539
138429
  "countCopies(has(copy.state.secondWindUsed) && copy.state.secondWindUsed) > 0": {
138540
138430
  "text": "countCopies(has(copy.state.secondWindUsed) && copy.state.secondWindUsed) > 0",
138541
138431
  "tree": {
@@ -138579,49 +138469,6 @@
138579
138469
  }
138580
138470
  }
138581
138471
  },
138582
- "countCopies(has(copy.state.signOfIllOmenUsed) && copy.state.signOfIllOmenUsed) > 0": {
138583
- "text": "countCopies(has(copy.state.signOfIllOmenUsed) && copy.state.signOfIllOmenUsed) > 0",
138584
- "tree": {
138585
- "type": "binary",
138586
- "op": ">",
138587
- "left": {
138588
- "type": "call",
138589
- "fn": "countCopies",
138590
- "args": [
138591
- {
138592
- "type": "binary",
138593
- "op": "&&",
138594
- "left": {
138595
- "type": "call",
138596
- "fn": "has",
138597
- "args": [
138598
- {
138599
- "type": "name",
138600
- "path": [
138601
- "copy",
138602
- "state",
138603
- "signOfIllOmenUsed"
138604
- ]
138605
- }
138606
- ]
138607
- },
138608
- "right": {
138609
- "type": "name",
138610
- "path": [
138611
- "copy",
138612
- "state",
138613
- "signOfIllOmenUsed"
138614
- ]
138615
- }
138616
- }
138617
- ]
138618
- },
138619
- "right": {
138620
- "type": "int",
138621
- "value": 0
138622
- }
138623
- }
138624
- },
138625
138472
  "countCopies(has(copy.state.signatureSpell1Used) && copy.state.signatureSpell1Used) > 0": {
138626
138473
  "text": "countCopies(has(copy.state.signatureSpell1Used) && copy.state.signatureSpell1Used) > 0",
138627
138474
  "tree": {
@@ -138891,49 +138738,6 @@
138891
138738
  }
138892
138739
  }
138893
138740
  },
138894
- "countCopies(has(copy.state.thiefOfFiveFatesUsed) && copy.state.thiefOfFiveFatesUsed) > 0": {
138895
- "text": "countCopies(has(copy.state.thiefOfFiveFatesUsed) && copy.state.thiefOfFiveFatesUsed) > 0",
138896
- "tree": {
138897
- "type": "binary",
138898
- "op": ">",
138899
- "left": {
138900
- "type": "call",
138901
- "fn": "countCopies",
138902
- "args": [
138903
- {
138904
- "type": "binary",
138905
- "op": "&&",
138906
- "left": {
138907
- "type": "call",
138908
- "fn": "has",
138909
- "args": [
138910
- {
138911
- "type": "name",
138912
- "path": [
138913
- "copy",
138914
- "state",
138915
- "thiefOfFiveFatesUsed"
138916
- ]
138917
- }
138918
- ]
138919
- },
138920
- "right": {
138921
- "type": "name",
138922
- "path": [
138923
- "copy",
138924
- "state",
138925
- "thiefOfFiveFatesUsed"
138926
- ]
138927
- }
138928
- }
138929
- ]
138930
- },
138931
- "right": {
138932
- "type": "int",
138933
- "value": 0
138934
- }
138935
- }
138936
- },
138937
138741
  "countCopies(has(copy.state.usedToday) && size(copy.state.usedToday) > 0) > 0": {
138938
138742
  "text": "countCopies(has(copy.state.usedToday) && size(copy.state.usedToday) > 0) > 0",
138939
138743
  "tree": {
@@ -141443,16 +141247,6 @@
141443
141247
  }
141444
141248
  }
141445
141249
  },
141446
- "eldritchBlast.range": {
141447
- "text": "eldritchBlast.range",
141448
- "tree": {
141449
- "type": "name",
141450
- "path": [
141451
- "eldritchBlast",
141452
- "range"
141453
- ]
141454
- }
141455
- },
141456
141250
  "elementalAffinity.resistant": {
141457
141251
  "text": "elementalAffinity.resistant",
141458
141252
  "tree": {
@@ -142866,207 +142660,6 @@
142866
142660
  }
142867
142661
  }
142868
142662
  },
142869
- "flags.l1 + 2 * flags.l2 + 3 * flags.l3 + 4 * flags.l4 + 5 * flags.l5 > ceil(self.level / 2)": {
142870
- "text": "flags.l1 + 2 * flags.l2 + 3 * flags.l3 + 4 * flags.l4 + 5 * flags.l5 > ceil(self.level / 2)",
142871
- "tree": {
142872
- "type": "binary",
142873
- "op": ">",
142874
- "left": {
142875
- "type": "binary",
142876
- "op": "+",
142877
- "left": {
142878
- "type": "binary",
142879
- "op": "+",
142880
- "left": {
142881
- "type": "binary",
142882
- "op": "+",
142883
- "left": {
142884
- "type": "binary",
142885
- "op": "+",
142886
- "left": {
142887
- "type": "name",
142888
- "path": [
142889
- "flags",
142890
- "l1"
142891
- ]
142892
- },
142893
- "right": {
142894
- "type": "binary",
142895
- "op": "*",
142896
- "left": {
142897
- "type": "int",
142898
- "value": 2
142899
- },
142900
- "right": {
142901
- "type": "name",
142902
- "path": [
142903
- "flags",
142904
- "l2"
142905
- ]
142906
- }
142907
- }
142908
- },
142909
- "right": {
142910
- "type": "binary",
142911
- "op": "*",
142912
- "left": {
142913
- "type": "int",
142914
- "value": 3
142915
- },
142916
- "right": {
142917
- "type": "name",
142918
- "path": [
142919
- "flags",
142920
- "l3"
142921
- ]
142922
- }
142923
- }
142924
- },
142925
- "right": {
142926
- "type": "binary",
142927
- "op": "*",
142928
- "left": {
142929
- "type": "int",
142930
- "value": 4
142931
- },
142932
- "right": {
142933
- "type": "name",
142934
- "path": [
142935
- "flags",
142936
- "l4"
142937
- ]
142938
- }
142939
- }
142940
- },
142941
- "right": {
142942
- "type": "binary",
142943
- "op": "*",
142944
- "left": {
142945
- "type": "int",
142946
- "value": 5
142947
- },
142948
- "right": {
142949
- "type": "name",
142950
- "path": [
142951
- "flags",
142952
- "l5"
142953
- ]
142954
- }
142955
- }
142956
- },
142957
- "right": {
142958
- "type": "call",
142959
- "fn": "ceil",
142960
- "args": [
142961
- {
142962
- "type": "binary",
142963
- "op": "/",
142964
- "left": {
142965
- "type": "name",
142966
- "path": [
142967
- "self",
142968
- "level"
142969
- ]
142970
- },
142971
- "right": {
142972
- "type": "int",
142973
- "value": 2
142974
- }
142975
- }
142976
- ]
142977
- }
142978
- }
142979
- },
142980
- "flags.l1 > 0": {
142981
- "text": "flags.l1 > 0",
142982
- "tree": {
142983
- "type": "binary",
142984
- "op": ">",
142985
- "left": {
142986
- "type": "name",
142987
- "path": [
142988
- "flags",
142989
- "l1"
142990
- ]
142991
- },
142992
- "right": {
142993
- "type": "int",
142994
- "value": 0
142995
- }
142996
- }
142997
- },
142998
- "flags.l2 > 0": {
142999
- "text": "flags.l2 > 0",
143000
- "tree": {
143001
- "type": "binary",
143002
- "op": ">",
143003
- "left": {
143004
- "type": "name",
143005
- "path": [
143006
- "flags",
143007
- "l2"
143008
- ]
143009
- },
143010
- "right": {
143011
- "type": "int",
143012
- "value": 0
143013
- }
143014
- }
143015
- },
143016
- "flags.l3 > 0": {
143017
- "text": "flags.l3 > 0",
143018
- "tree": {
143019
- "type": "binary",
143020
- "op": ">",
143021
- "left": {
143022
- "type": "name",
143023
- "path": [
143024
- "flags",
143025
- "l3"
143026
- ]
143027
- },
143028
- "right": {
143029
- "type": "int",
143030
- "value": 0
143031
- }
143032
- }
143033
- },
143034
- "flags.l4 > 0": {
143035
- "text": "flags.l4 > 0",
143036
- "tree": {
143037
- "type": "binary",
143038
- "op": ">",
143039
- "left": {
143040
- "type": "name",
143041
- "path": [
143042
- "flags",
143043
- "l4"
143044
- ]
143045
- },
143046
- "right": {
143047
- "type": "int",
143048
- "value": 0
143049
- }
143050
- }
143051
- },
143052
- "flags.l5 > 0": {
143053
- "text": "flags.l5 > 0",
143054
- "tree": {
143055
- "type": "binary",
143056
- "op": ">",
143057
- "left": {
143058
- "type": "name",
143059
- "path": [
143060
- "flags",
143061
- "l5"
143062
- ]
143063
- },
143064
- "right": {
143065
- "type": "int",
143066
- "value": 0
143067
- }
143068
- }
143069
- },
143070
142663
  "flags.landed && has(item.condition)\n && (!has(item.saveDc) || (has(steps.saves) && steps.saves.result == 'failure'))": {
143071
142664
  "text": "flags.landed && has(item.condition) && (!has(item.saveDc) || has(steps.saves) && steps.saves.result == 'failure')",
143072
142665
  "tree": {
@@ -143326,456 +142919,6 @@
143326
142919
  }
143327
142920
  }
143328
142921
  },
143329
- "flags.level1 + 2 * flags.level2 + 3 * flags.level3 + 4 * flags.level4 + 5 * flags.level5": {
143330
- "text": "flags.level1 + 2 * flags.level2 + 3 * flags.level3 + 4 * flags.level4 + 5 * flags.level5",
143331
- "tree": {
143332
- "type": "binary",
143333
- "op": "+",
143334
- "left": {
143335
- "type": "binary",
143336
- "op": "+",
143337
- "left": {
143338
- "type": "binary",
143339
- "op": "+",
143340
- "left": {
143341
- "type": "binary",
143342
- "op": "+",
143343
- "left": {
143344
- "type": "name",
143345
- "path": [
143346
- "flags",
143347
- "level1"
143348
- ]
143349
- },
143350
- "right": {
143351
- "type": "binary",
143352
- "op": "*",
143353
- "left": {
143354
- "type": "int",
143355
- "value": 2
143356
- },
143357
- "right": {
143358
- "type": "name",
143359
- "path": [
143360
- "flags",
143361
- "level2"
143362
- ]
143363
- }
143364
- }
143365
- },
143366
- "right": {
143367
- "type": "binary",
143368
- "op": "*",
143369
- "left": {
143370
- "type": "int",
143371
- "value": 3
143372
- },
143373
- "right": {
143374
- "type": "name",
143375
- "path": [
143376
- "flags",
143377
- "level3"
143378
- ]
143379
- }
143380
- }
143381
- },
143382
- "right": {
143383
- "type": "binary",
143384
- "op": "*",
143385
- "left": {
143386
- "type": "int",
143387
- "value": 4
143388
- },
143389
- "right": {
143390
- "type": "name",
143391
- "path": [
143392
- "flags",
143393
- "level4"
143394
- ]
143395
- }
143396
- }
143397
- },
143398
- "right": {
143399
- "type": "binary",
143400
- "op": "*",
143401
- "left": {
143402
- "type": "int",
143403
- "value": 5
143404
- },
143405
- "right": {
143406
- "type": "name",
143407
- "path": [
143408
- "flags",
143409
- "level5"
143410
- ]
143411
- }
143412
- }
143413
- }
143414
- },
143415
- "flags.level1 > 0": {
143416
- "text": "flags.level1 > 0",
143417
- "tree": {
143418
- "type": "binary",
143419
- "op": ">",
143420
- "left": {
143421
- "type": "name",
143422
- "path": [
143423
- "flags",
143424
- "level1"
143425
- ]
143426
- },
143427
- "right": {
143428
- "type": "int",
143429
- "value": 0
143430
- }
143431
- }
143432
- },
143433
- "flags.level2 > 0": {
143434
- "text": "flags.level2 > 0",
143435
- "tree": {
143436
- "type": "binary",
143437
- "op": ">",
143438
- "left": {
143439
- "type": "name",
143440
- "path": [
143441
- "flags",
143442
- "level2"
143443
- ]
143444
- },
143445
- "right": {
143446
- "type": "int",
143447
- "value": 0
143448
- }
143449
- }
143450
- },
143451
- "flags.level3 > 0": {
143452
- "text": "flags.level3 > 0",
143453
- "tree": {
143454
- "type": "binary",
143455
- "op": ">",
143456
- "left": {
143457
- "type": "name",
143458
- "path": [
143459
- "flags",
143460
- "level3"
143461
- ]
143462
- },
143463
- "right": {
143464
- "type": "int",
143465
- "value": 0
143466
- }
143467
- }
143468
- },
143469
- "flags.level4 > 0": {
143470
- "text": "flags.level4 > 0",
143471
- "tree": {
143472
- "type": "binary",
143473
- "op": ">",
143474
- "left": {
143475
- "type": "name",
143476
- "path": [
143477
- "flags",
143478
- "level4"
143479
- ]
143480
- },
143481
- "right": {
143482
- "type": "int",
143483
- "value": 0
143484
- }
143485
- }
143486
- },
143487
- "flags.level5 > 0": {
143488
- "text": "flags.level5 > 0",
143489
- "tree": {
143490
- "type": "binary",
143491
- "op": ">",
143492
- "left": {
143493
- "type": "name",
143494
- "path": [
143495
- "flags",
143496
- "level5"
143497
- ]
143498
- },
143499
- "right": {
143500
- "type": "int",
143501
- "value": 0
143502
- }
143503
- }
143504
- },
143505
- "flags.levels": {
143506
- "text": "flags.levels",
143507
- "tree": {
143508
- "type": "name",
143509
- "path": [
143510
- "flags",
143511
- "levels"
143512
- ]
143513
- }
143514
- },
143515
- "flags.levels == 0 || flags.levels > ceil(self.level / 2)\n || flags.level1 < 0 || flags.level1 > spellSlots.level1.used\n || flags.level2 < 0 || flags.level2 > spellSlots.level2.used\n || flags.level3 < 0 || flags.level3 > spellSlots.level3.used\n || flags.level4 < 0 || flags.level4 > spellSlots.level4.used\n || flags.level5 < 0 || flags.level5 > spellSlots.level5.used": {
143516
- "text": "flags.levels == 0 || flags.levels > ceil(self.level / 2) || flags.level1 < 0 || flags.level1 > spellSlots.level1.used || flags.level2 < 0 || flags.level2 > spellSlots.level2.used || flags.level3 < 0 || flags.level3 > spellSlots.level3.used || flags.level4 < 0 || flags.level4 > spellSlots.level4.used || flags.level5 < 0 || flags.level5 > spellSlots.level5.used",
143517
- "tree": {
143518
- "type": "binary",
143519
- "op": "||",
143520
- "left": {
143521
- "type": "binary",
143522
- "op": "||",
143523
- "left": {
143524
- "type": "binary",
143525
- "op": "||",
143526
- "left": {
143527
- "type": "binary",
143528
- "op": "||",
143529
- "left": {
143530
- "type": "binary",
143531
- "op": "||",
143532
- "left": {
143533
- "type": "binary",
143534
- "op": "||",
143535
- "left": {
143536
- "type": "binary",
143537
- "op": "||",
143538
- "left": {
143539
- "type": "binary",
143540
- "op": "||",
143541
- "left": {
143542
- "type": "binary",
143543
- "op": "||",
143544
- "left": {
143545
- "type": "binary",
143546
- "op": "||",
143547
- "left": {
143548
- "type": "binary",
143549
- "op": "||",
143550
- "left": {
143551
- "type": "binary",
143552
- "op": "==",
143553
- "left": {
143554
- "type": "name",
143555
- "path": [
143556
- "flags",
143557
- "levels"
143558
- ]
143559
- },
143560
- "right": {
143561
- "type": "int",
143562
- "value": 0
143563
- }
143564
- },
143565
- "right": {
143566
- "type": "binary",
143567
- "op": ">",
143568
- "left": {
143569
- "type": "name",
143570
- "path": [
143571
- "flags",
143572
- "levels"
143573
- ]
143574
- },
143575
- "right": {
143576
- "type": "call",
143577
- "fn": "ceil",
143578
- "args": [
143579
- {
143580
- "type": "binary",
143581
- "op": "/",
143582
- "left": {
143583
- "type": "name",
143584
- "path": [
143585
- "self",
143586
- "level"
143587
- ]
143588
- },
143589
- "right": {
143590
- "type": "int",
143591
- "value": 2
143592
- }
143593
- }
143594
- ]
143595
- }
143596
- }
143597
- },
143598
- "right": {
143599
- "type": "binary",
143600
- "op": "<",
143601
- "left": {
143602
- "type": "name",
143603
- "path": [
143604
- "flags",
143605
- "level1"
143606
- ]
143607
- },
143608
- "right": {
143609
- "type": "int",
143610
- "value": 0
143611
- }
143612
- }
143613
- },
143614
- "right": {
143615
- "type": "binary",
143616
- "op": ">",
143617
- "left": {
143618
- "type": "name",
143619
- "path": [
143620
- "flags",
143621
- "level1"
143622
- ]
143623
- },
143624
- "right": {
143625
- "type": "name",
143626
- "path": [
143627
- "spellSlots",
143628
- "level1",
143629
- "used"
143630
- ]
143631
- }
143632
- }
143633
- },
143634
- "right": {
143635
- "type": "binary",
143636
- "op": "<",
143637
- "left": {
143638
- "type": "name",
143639
- "path": [
143640
- "flags",
143641
- "level2"
143642
- ]
143643
- },
143644
- "right": {
143645
- "type": "int",
143646
- "value": 0
143647
- }
143648
- }
143649
- },
143650
- "right": {
143651
- "type": "binary",
143652
- "op": ">",
143653
- "left": {
143654
- "type": "name",
143655
- "path": [
143656
- "flags",
143657
- "level2"
143658
- ]
143659
- },
143660
- "right": {
143661
- "type": "name",
143662
- "path": [
143663
- "spellSlots",
143664
- "level2",
143665
- "used"
143666
- ]
143667
- }
143668
- }
143669
- },
143670
- "right": {
143671
- "type": "binary",
143672
- "op": "<",
143673
- "left": {
143674
- "type": "name",
143675
- "path": [
143676
- "flags",
143677
- "level3"
143678
- ]
143679
- },
143680
- "right": {
143681
- "type": "int",
143682
- "value": 0
143683
- }
143684
- }
143685
- },
143686
- "right": {
143687
- "type": "binary",
143688
- "op": ">",
143689
- "left": {
143690
- "type": "name",
143691
- "path": [
143692
- "flags",
143693
- "level3"
143694
- ]
143695
- },
143696
- "right": {
143697
- "type": "name",
143698
- "path": [
143699
- "spellSlots",
143700
- "level3",
143701
- "used"
143702
- ]
143703
- }
143704
- }
143705
- },
143706
- "right": {
143707
- "type": "binary",
143708
- "op": "<",
143709
- "left": {
143710
- "type": "name",
143711
- "path": [
143712
- "flags",
143713
- "level4"
143714
- ]
143715
- },
143716
- "right": {
143717
- "type": "int",
143718
- "value": 0
143719
- }
143720
- }
143721
- },
143722
- "right": {
143723
- "type": "binary",
143724
- "op": ">",
143725
- "left": {
143726
- "type": "name",
143727
- "path": [
143728
- "flags",
143729
- "level4"
143730
- ]
143731
- },
143732
- "right": {
143733
- "type": "name",
143734
- "path": [
143735
- "spellSlots",
143736
- "level4",
143737
- "used"
143738
- ]
143739
- }
143740
- }
143741
- },
143742
- "right": {
143743
- "type": "binary",
143744
- "op": "<",
143745
- "left": {
143746
- "type": "name",
143747
- "path": [
143748
- "flags",
143749
- "level5"
143750
- ]
143751
- },
143752
- "right": {
143753
- "type": "int",
143754
- "value": 0
143755
- }
143756
- }
143757
- },
143758
- "right": {
143759
- "type": "binary",
143760
- "op": ">",
143761
- "left": {
143762
- "type": "name",
143763
- "path": [
143764
- "flags",
143765
- "level5"
143766
- ]
143767
- },
143768
- "right": {
143769
- "type": "name",
143770
- "path": [
143771
- "spellSlots",
143772
- "level5",
143773
- "used"
143774
- ]
143775
- }
143776
- }
143777
- }
143778
- },
143779
142922
  "flags.luckDie": {
143780
142923
  "text": "flags.luckDie",
143781
142924
  "tree": {
@@ -148484,156 +147627,6 @@
148484
147627
  }
148485
147628
  }
148486
147629
  },
148487
- "has(params.level1) ? params.level1 : 0": {
148488
- "text": "has(params.level1) ? params.level1 : 0",
148489
- "tree": {
148490
- "type": "conditional",
148491
- "test": {
148492
- "type": "call",
148493
- "fn": "has",
148494
- "args": [
148495
- {
148496
- "type": "name",
148497
- "path": [
148498
- "params",
148499
- "level1"
148500
- ]
148501
- }
148502
- ]
148503
- },
148504
- "then": {
148505
- "type": "name",
148506
- "path": [
148507
- "params",
148508
- "level1"
148509
- ]
148510
- },
148511
- "else": {
148512
- "type": "int",
148513
- "value": 0
148514
- }
148515
- }
148516
- },
148517
- "has(params.level2) ? params.level2 : 0": {
148518
- "text": "has(params.level2) ? params.level2 : 0",
148519
- "tree": {
148520
- "type": "conditional",
148521
- "test": {
148522
- "type": "call",
148523
- "fn": "has",
148524
- "args": [
148525
- {
148526
- "type": "name",
148527
- "path": [
148528
- "params",
148529
- "level2"
148530
- ]
148531
- }
148532
- ]
148533
- },
148534
- "then": {
148535
- "type": "name",
148536
- "path": [
148537
- "params",
148538
- "level2"
148539
- ]
148540
- },
148541
- "else": {
148542
- "type": "int",
148543
- "value": 0
148544
- }
148545
- }
148546
- },
148547
- "has(params.level3) ? params.level3 : 0": {
148548
- "text": "has(params.level3) ? params.level3 : 0",
148549
- "tree": {
148550
- "type": "conditional",
148551
- "test": {
148552
- "type": "call",
148553
- "fn": "has",
148554
- "args": [
148555
- {
148556
- "type": "name",
148557
- "path": [
148558
- "params",
148559
- "level3"
148560
- ]
148561
- }
148562
- ]
148563
- },
148564
- "then": {
148565
- "type": "name",
148566
- "path": [
148567
- "params",
148568
- "level3"
148569
- ]
148570
- },
148571
- "else": {
148572
- "type": "int",
148573
- "value": 0
148574
- }
148575
- }
148576
- },
148577
- "has(params.level4) ? params.level4 : 0": {
148578
- "text": "has(params.level4) ? params.level4 : 0",
148579
- "tree": {
148580
- "type": "conditional",
148581
- "test": {
148582
- "type": "call",
148583
- "fn": "has",
148584
- "args": [
148585
- {
148586
- "type": "name",
148587
- "path": [
148588
- "params",
148589
- "level4"
148590
- ]
148591
- }
148592
- ]
148593
- },
148594
- "then": {
148595
- "type": "name",
148596
- "path": [
148597
- "params",
148598
- "level4"
148599
- ]
148600
- },
148601
- "else": {
148602
- "type": "int",
148603
- "value": 0
148604
- }
148605
- }
148606
- },
148607
- "has(params.level5) ? params.level5 : 0": {
148608
- "text": "has(params.level5) ? params.level5 : 0",
148609
- "tree": {
148610
- "type": "conditional",
148611
- "test": {
148612
- "type": "call",
148613
- "fn": "has",
148614
- "args": [
148615
- {
148616
- "type": "name",
148617
- "path": [
148618
- "params",
148619
- "level5"
148620
- ]
148621
- }
148622
- ]
148623
- },
148624
- "then": {
148625
- "type": "name",
148626
- "path": [
148627
- "params",
148628
- "level5"
148629
- ]
148630
- },
148631
- "else": {
148632
- "type": "int",
148633
- "value": 0
148634
- }
148635
- }
148636
- },
148637
147630
  "has(params.magical) ? [params.magical ? 'magical' : 'nonmagical'] : []": {
148638
147631
  "text": "has(params.magical) ? [params.magical ? 'magical' : 'nonmagical'] : []",
148639
147632
  "tree": {
@@ -150642,33 +149635,6 @@
150642
149635
  }
150643
149636
  }
150644
149637
  },
150645
- "has(self.bewitchingWhispersUsed) && self.bewitchingWhispersUsed": {
150646
- "text": "has(self.bewitchingWhispersUsed) && self.bewitchingWhispersUsed",
150647
- "tree": {
150648
- "type": "binary",
150649
- "op": "&&",
150650
- "left": {
150651
- "type": "call",
150652
- "fn": "has",
150653
- "args": [
150654
- {
150655
- "type": "name",
150656
- "path": [
150657
- "self",
150658
- "bewitchingWhispersUsed"
150659
- ]
150660
- }
150661
- ]
150662
- },
150663
- "right": {
150664
- "type": "name",
150665
- "path": [
150666
- "self",
150667
- "bewitchingWhispersUsed"
150668
- ]
150669
- }
150670
- }
150671
- },
150672
149638
  "has(self.by) ? self.by : ''": {
150673
149639
  "text": "has(self.by) ? self.by : ''",
150674
149640
  "tree": {
@@ -150796,33 +149762,6 @@
150796
149762
  }
150797
149763
  }
150798
149764
  },
150799
- "has(self.darknessUsed) && self.darknessUsed": {
150800
- "text": "has(self.darknessUsed) && self.darknessUsed",
150801
- "tree": {
150802
- "type": "binary",
150803
- "op": "&&",
150804
- "left": {
150805
- "type": "call",
150806
- "fn": "has",
150807
- "args": [
150808
- {
150809
- "type": "name",
150810
- "path": [
150811
- "self",
150812
- "darknessUsed"
150813
- ]
150814
- }
150815
- ]
150816
- },
150817
- "right": {
150818
- "type": "name",
150819
- "path": [
150820
- "self",
150821
- "darknessUsed"
150822
- ]
150823
- }
150824
- }
150825
- },
150826
149765
  "has(self.divineIntervention) && self.divineIntervention == 'failed'": {
150827
149766
  "text": "has(self.divineIntervention) && self.divineIntervention == 'failed'",
150828
149767
  "tree": {
@@ -150893,33 +149832,6 @@
150893
149832
  }
150894
149833
  }
150895
149834
  },
150896
- "has(self.dreadfulWordUsed) && self.dreadfulWordUsed": {
150897
- "text": "has(self.dreadfulWordUsed) && self.dreadfulWordUsed",
150898
- "tree": {
150899
- "type": "binary",
150900
- "op": "&&",
150901
- "left": {
150902
- "type": "call",
150903
- "fn": "has",
150904
- "args": [
150905
- {
150906
- "type": "name",
150907
- "path": [
150908
- "self",
150909
- "dreadfulWordUsed"
150910
- ]
150911
- }
150912
- ]
150913
- },
150914
- "right": {
150915
- "type": "name",
150916
- "path": [
150917
- "self",
150918
- "dreadfulWordUsed"
150919
- ]
150920
- }
150921
- }
150922
- },
150923
149835
  "has(self.eldritchMasterUsed) && self.eldritchMasterUsed": {
150924
149836
  "text": "has(self.eldritchMasterUsed) && self.eldritchMasterUsed",
150925
149837
  "tree": {
@@ -150947,33 +149859,6 @@
150947
149859
  }
150948
149860
  }
150949
149861
  },
150950
- "has(self.hellishRebukeUsed) && self.hellishRebukeUsed": {
150951
- "text": "has(self.hellishRebukeUsed) && self.hellishRebukeUsed",
150952
- "tree": {
150953
- "type": "binary",
150954
- "op": "&&",
150955
- "left": {
150956
- "type": "call",
150957
- "fn": "has",
150958
- "args": [
150959
- {
150960
- "type": "name",
150961
- "path": [
150962
- "self",
150963
- "hellishRebukeUsed"
150964
- ]
150965
- }
150966
- ]
150967
- },
150968
- "right": {
150969
- "type": "name",
150970
- "path": [
150971
- "self",
150972
- "hellishRebukeUsed"
150973
- ]
150974
- }
150975
- }
150976
- },
150977
149862
  "has(self.holyNimbusUsed) && self.holyNimbusUsed": {
150978
149863
  "text": "has(self.holyNimbusUsed) && self.holyNimbusUsed",
150979
149864
  "tree": {
@@ -151168,60 +150053,6 @@
151168
150053
  }
151169
150054
  }
151170
150055
  },
151171
- "has(self.minionsOfChaosUsed) && self.minionsOfChaosUsed": {
151172
- "text": "has(self.minionsOfChaosUsed) && self.minionsOfChaosUsed",
151173
- "tree": {
151174
- "type": "binary",
151175
- "op": "&&",
151176
- "left": {
151177
- "type": "call",
151178
- "fn": "has",
151179
- "args": [
151180
- {
151181
- "type": "name",
151182
- "path": [
151183
- "self",
151184
- "minionsOfChaosUsed"
151185
- ]
151186
- }
151187
- ]
151188
- },
151189
- "right": {
151190
- "type": "name",
151191
- "path": [
151192
- "self",
151193
- "minionsOfChaosUsed"
151194
- ]
151195
- }
151196
- }
151197
- },
151198
- "has(self.mireTheMindUsed) && self.mireTheMindUsed": {
151199
- "text": "has(self.mireTheMindUsed) && self.mireTheMindUsed",
151200
- "tree": {
151201
- "type": "binary",
151202
- "op": "&&",
151203
- "left": {
151204
- "type": "call",
151205
- "fn": "has",
151206
- "args": [
151207
- {
151208
- "type": "name",
151209
- "path": [
151210
- "self",
151211
- "mireTheMindUsed"
151212
- ]
151213
- }
151214
- ]
151215
- },
151216
- "right": {
151217
- "type": "name",
151218
- "path": [
151219
- "self",
151220
- "mireTheMindUsed"
151221
- ]
151222
- }
151223
- }
151224
- },
151225
150056
  "has(self.naturalRecoveryUsed) && self.naturalRecoveryUsed": {
151226
150057
  "text": "has(self.naturalRecoveryUsed) && self.naturalRecoveryUsed",
151227
150058
  "tree": {
@@ -151319,49 +150150,6 @@
151319
150150
  }
151320
150151
  }
151321
150152
  },
151322
- "has(self.relentlessEnduranceUsed)": {
151323
- "text": "has(self.relentlessEnduranceUsed)",
151324
- "tree": {
151325
- "type": "call",
151326
- "fn": "has",
151327
- "args": [
151328
- {
151329
- "type": "name",
151330
- "path": [
151331
- "self",
151332
- "relentlessEnduranceUsed"
151333
- ]
151334
- }
151335
- ]
151336
- }
151337
- },
151338
- "has(self.relentlessEnduranceUsed) && self.relentlessEnduranceUsed": {
151339
- "text": "has(self.relentlessEnduranceUsed) && self.relentlessEnduranceUsed",
151340
- "tree": {
151341
- "type": "binary",
151342
- "op": "&&",
151343
- "left": {
151344
- "type": "call",
151345
- "fn": "has",
151346
- "args": [
151347
- {
151348
- "type": "name",
151349
- "path": [
151350
- "self",
151351
- "relentlessEnduranceUsed"
151352
- ]
151353
- }
151354
- ]
151355
- },
151356
- "right": {
151357
- "type": "name",
151358
- "path": [
151359
- "self",
151360
- "relentlessEnduranceUsed"
151361
- ]
151362
- }
151363
- }
151364
- },
151365
150153
  "has(self.relentlessRageSpent) && self.relentlessRageSpent > 0": {
151366
150154
  "text": "has(self.relentlessRageSpent) && self.relentlessRageSpent > 0",
151367
150155
  "tree": {
@@ -151397,33 +150185,6 @@
151397
150185
  }
151398
150186
  }
151399
150187
  },
151400
- "has(self.sculptorOfFleshUsed) && self.sculptorOfFleshUsed": {
151401
- "text": "has(self.sculptorOfFleshUsed) && self.sculptorOfFleshUsed",
151402
- "tree": {
151403
- "type": "binary",
151404
- "op": "&&",
151405
- "left": {
151406
- "type": "call",
151407
- "fn": "has",
151408
- "args": [
151409
- {
151410
- "type": "name",
151411
- "path": [
151412
- "self",
151413
- "sculptorOfFleshUsed"
151414
- ]
151415
- }
151416
- ]
151417
- },
151418
- "right": {
151419
- "type": "name",
151420
- "path": [
151421
- "self",
151422
- "sculptorOfFleshUsed"
151423
- ]
151424
- }
151425
- }
151426
- },
151427
150188
  "has(self.secondWindUsed) && self.secondWindUsed": {
151428
150189
  "text": "has(self.secondWindUsed) && self.secondWindUsed",
151429
150190
  "tree": {
@@ -151451,33 +150212,6 @@
151451
150212
  }
151452
150213
  }
151453
150214
  },
151454
- "has(self.signOfIllOmenUsed) && self.signOfIllOmenUsed": {
151455
- "text": "has(self.signOfIllOmenUsed) && self.signOfIllOmenUsed",
151456
- "tree": {
151457
- "type": "binary",
151458
- "op": "&&",
151459
- "left": {
151460
- "type": "call",
151461
- "fn": "has",
151462
- "args": [
151463
- {
151464
- "type": "name",
151465
- "path": [
151466
- "self",
151467
- "signOfIllOmenUsed"
151468
- ]
151469
- }
151470
- ]
151471
- },
151472
- "right": {
151473
- "type": "name",
151474
- "path": [
151475
- "self",
151476
- "signOfIllOmenUsed"
151477
- ]
151478
- }
151479
- }
151480
- },
151481
150215
  "has(self.signatureSpell1Used) && self.signatureSpell1Used": {
151482
150216
  "text": "has(self.signatureSpell1Used) && self.signatureSpell1Used",
151483
150217
  "tree": {
@@ -151594,33 +150328,6 @@
151594
150328
  }
151595
150329
  }
151596
150330
  },
151597
- "has(self.thiefOfFiveFatesUsed) && self.thiefOfFiveFatesUsed": {
151598
- "text": "has(self.thiefOfFiveFatesUsed) && self.thiefOfFiveFatesUsed",
151599
- "tree": {
151600
- "type": "binary",
151601
- "op": "&&",
151602
- "left": {
151603
- "type": "call",
151604
- "fn": "has",
151605
- "args": [
151606
- {
151607
- "type": "name",
151608
- "path": [
151609
- "self",
151610
- "thiefOfFiveFatesUsed"
151611
- ]
151612
- }
151613
- ]
151614
- },
151615
- "right": {
151616
- "type": "name",
151617
- "path": [
151618
- "self",
151619
- "thiefOfFiveFatesUsed"
151620
- ]
151621
- }
151622
- }
151623
- },
151624
150331
  "has(self.usedToday) && size(self.usedToday) > 0": {
151625
150332
  "text": "has(self.usedToday) && size(self.usedToday) > 0",
151626
150333
  "tree": {
@@ -153071,6 +151778,39 @@
153071
151778
  }
153072
151779
  }
153073
151780
  },
151781
+ "hp.current == 0 && !self.used": {
151782
+ "text": "hp.current == 0 && !self.used",
151783
+ "tree": {
151784
+ "type": "binary",
151785
+ "op": "&&",
151786
+ "left": {
151787
+ "type": "binary",
151788
+ "op": "==",
151789
+ "left": {
151790
+ "type": "name",
151791
+ "path": [
151792
+ "hp",
151793
+ "current"
151794
+ ]
151795
+ },
151796
+ "right": {
151797
+ "type": "int",
151798
+ "value": 0
151799
+ }
151800
+ },
151801
+ "right": {
151802
+ "type": "unary",
151803
+ "op": "!",
151804
+ "operand": {
151805
+ "type": "name",
151806
+ "path": [
151807
+ "self",
151808
+ "used"
151809
+ ]
151810
+ }
151811
+ }
151812
+ }
151813
+ },
153074
151814
  "hp.current == 0 && !sheet.monster": {
153075
151815
  "text": "hp.current == 0 && !sheet.monster",
153076
151816
  "tree": {
@@ -153164,14 +151904,14 @@
153164
151904
  }
153165
151905
  }
153166
151906
  },
153167
- "hp.current == 0 && countCopies(has(copy.state.relentlessEnduranceUsed)\n && !copy.state.relentlessEnduranceUsed) > 0": {
153168
- "text": "hp.current == 0 && countCopies(has(copy.state.relentlessEnduranceUsed) && !copy.state.relentlessEnduranceUsed) > 0",
151907
+ "hp.current > 0 && hp.current + hp.temp + incoming.amount <= 0": {
151908
+ "text": "hp.current > 0 && hp.current + hp.temp + incoming.amount <= 0",
153169
151909
  "tree": {
153170
151910
  "type": "binary",
153171
151911
  "op": "&&",
153172
151912
  "left": {
153173
151913
  "type": "binary",
153174
- "op": "==",
151914
+ "op": ">",
153175
151915
  "left": {
153176
151916
  "type": "name",
153177
151917
  "path": [
@@ -153186,42 +151926,35 @@
153186
151926
  },
153187
151927
  "right": {
153188
151928
  "type": "binary",
153189
- "op": ">",
151929
+ "op": "<=",
153190
151930
  "left": {
153191
- "type": "call",
153192
- "fn": "countCopies",
153193
- "args": [
153194
- {
153195
- "type": "binary",
153196
- "op": "&&",
153197
- "left": {
153198
- "type": "call",
153199
- "fn": "has",
153200
- "args": [
153201
- {
153202
- "type": "name",
153203
- "path": [
153204
- "copy",
153205
- "state",
153206
- "relentlessEnduranceUsed"
153207
- ]
153208
- }
153209
- ]
153210
- },
153211
- "right": {
153212
- "type": "unary",
153213
- "op": "!",
153214
- "operand": {
153215
- "type": "name",
153216
- "path": [
153217
- "copy",
153218
- "state",
153219
- "relentlessEnduranceUsed"
153220
- ]
153221
- }
153222
- }
151931
+ "type": "binary",
151932
+ "op": "+",
151933
+ "left": {
151934
+ "type": "binary",
151935
+ "op": "+",
151936
+ "left": {
151937
+ "type": "name",
151938
+ "path": [
151939
+ "hp",
151940
+ "current"
151941
+ ]
151942
+ },
151943
+ "right": {
151944
+ "type": "name",
151945
+ "path": [
151946
+ "hp",
151947
+ "temp"
151948
+ ]
153223
151949
  }
153224
- ]
151950
+ },
151951
+ "right": {
151952
+ "type": "name",
151953
+ "path": [
151954
+ "incoming",
151955
+ "amount"
151956
+ ]
151957
+ }
153225
151958
  },
153226
151959
  "right": {
153227
151960
  "type": "int",
@@ -154814,6 +153547,132 @@
154814
153547
  }
154815
153548
  }
154816
153549
  },
153550
+ "item.id == @invocations.bewitching-whispers": {
153551
+ "text": "item.id == @invocations.bewitching-whispers",
153552
+ "tree": {
153553
+ "type": "binary",
153554
+ "op": "==",
153555
+ "left": {
153556
+ "type": "name",
153557
+ "path": [
153558
+ "item",
153559
+ "id"
153560
+ ]
153561
+ },
153562
+ "right": {
153563
+ "type": "ref",
153564
+ "id": "invocations.bewitching-whispers"
153565
+ }
153566
+ }
153567
+ },
153568
+ "item.id == @invocations.dreadful-word": {
153569
+ "text": "item.id == @invocations.dreadful-word",
153570
+ "tree": {
153571
+ "type": "binary",
153572
+ "op": "==",
153573
+ "left": {
153574
+ "type": "name",
153575
+ "path": [
153576
+ "item",
153577
+ "id"
153578
+ ]
153579
+ },
153580
+ "right": {
153581
+ "type": "ref",
153582
+ "id": "invocations.dreadful-word"
153583
+ }
153584
+ }
153585
+ },
153586
+ "item.id == @invocations.minions-of-chaos": {
153587
+ "text": "item.id == @invocations.minions-of-chaos",
153588
+ "tree": {
153589
+ "type": "binary",
153590
+ "op": "==",
153591
+ "left": {
153592
+ "type": "name",
153593
+ "path": [
153594
+ "item",
153595
+ "id"
153596
+ ]
153597
+ },
153598
+ "right": {
153599
+ "type": "ref",
153600
+ "id": "invocations.minions-of-chaos"
153601
+ }
153602
+ }
153603
+ },
153604
+ "item.id == @invocations.mire-the-mind": {
153605
+ "text": "item.id == @invocations.mire-the-mind",
153606
+ "tree": {
153607
+ "type": "binary",
153608
+ "op": "==",
153609
+ "left": {
153610
+ "type": "name",
153611
+ "path": [
153612
+ "item",
153613
+ "id"
153614
+ ]
153615
+ },
153616
+ "right": {
153617
+ "type": "ref",
153618
+ "id": "invocations.mire-the-mind"
153619
+ }
153620
+ }
153621
+ },
153622
+ "item.id == @invocations.sculptor-of-flesh": {
153623
+ "text": "item.id == @invocations.sculptor-of-flesh",
153624
+ "tree": {
153625
+ "type": "binary",
153626
+ "op": "==",
153627
+ "left": {
153628
+ "type": "name",
153629
+ "path": [
153630
+ "item",
153631
+ "id"
153632
+ ]
153633
+ },
153634
+ "right": {
153635
+ "type": "ref",
153636
+ "id": "invocations.sculptor-of-flesh"
153637
+ }
153638
+ }
153639
+ },
153640
+ "item.id == @invocations.sign-of-ill-omen": {
153641
+ "text": "item.id == @invocations.sign-of-ill-omen",
153642
+ "tree": {
153643
+ "type": "binary",
153644
+ "op": "==",
153645
+ "left": {
153646
+ "type": "name",
153647
+ "path": [
153648
+ "item",
153649
+ "id"
153650
+ ]
153651
+ },
153652
+ "right": {
153653
+ "type": "ref",
153654
+ "id": "invocations.sign-of-ill-omen"
153655
+ }
153656
+ }
153657
+ },
153658
+ "item.id == @invocations.thief-of-five-fates": {
153659
+ "text": "item.id == @invocations.thief-of-five-fates",
153660
+ "tree": {
153661
+ "type": "binary",
153662
+ "op": "==",
153663
+ "left": {
153664
+ "type": "name",
153665
+ "path": [
153666
+ "item",
153667
+ "id"
153668
+ ]
153669
+ },
153670
+ "right": {
153671
+ "type": "ref",
153672
+ "id": "invocations.thief-of-five-fates"
153673
+ }
153674
+ }
153675
+ },
154817
153676
  "item.id == @magic-items.ring-of-x-ray-vision && self.used": {
154818
153677
  "text": "item.id == @magic-items.ring-of-x-ray-vision && self.used",
154819
153678
  "tree": {
@@ -154843,6 +153702,129 @@
154843
153702
  }
154844
153703
  }
154845
153704
  },
153705
+ "item.id == @spells.eldritch-blast": {
153706
+ "text": "item.id == @spells.eldritch-blast",
153707
+ "tree": {
153708
+ "type": "binary",
153709
+ "op": "==",
153710
+ "left": {
153711
+ "type": "name",
153712
+ "path": [
153713
+ "item",
153714
+ "id"
153715
+ ]
153716
+ },
153717
+ "right": {
153718
+ "type": "ref",
153719
+ "id": "spells.eldritch-blast"
153720
+ }
153721
+ }
153722
+ },
153723
+ "item.id == @traits.infernal-legacy": {
153724
+ "text": "item.id == @traits.infernal-legacy",
153725
+ "tree": {
153726
+ "type": "binary",
153727
+ "op": "==",
153728
+ "left": {
153729
+ "type": "name",
153730
+ "path": [
153731
+ "item",
153732
+ "id"
153733
+ ]
153734
+ },
153735
+ "right": {
153736
+ "type": "ref",
153737
+ "id": "traits.infernal-legacy"
153738
+ }
153739
+ }
153740
+ },
153741
+ "item.id == @traits.infernal-legacy && self.darknessUsed": {
153742
+ "text": "item.id == @traits.infernal-legacy && self.darknessUsed",
153743
+ "tree": {
153744
+ "type": "binary",
153745
+ "op": "&&",
153746
+ "left": {
153747
+ "type": "binary",
153748
+ "op": "==",
153749
+ "left": {
153750
+ "type": "name",
153751
+ "path": [
153752
+ "item",
153753
+ "id"
153754
+ ]
153755
+ },
153756
+ "right": {
153757
+ "type": "ref",
153758
+ "id": "traits.infernal-legacy"
153759
+ }
153760
+ },
153761
+ "right": {
153762
+ "type": "name",
153763
+ "path": [
153764
+ "self",
153765
+ "darknessUsed"
153766
+ ]
153767
+ }
153768
+ }
153769
+ },
153770
+ "item.id == @traits.infernal-legacy && self.hellishRebukeUsed": {
153771
+ "text": "item.id == @traits.infernal-legacy && self.hellishRebukeUsed",
153772
+ "tree": {
153773
+ "type": "binary",
153774
+ "op": "&&",
153775
+ "left": {
153776
+ "type": "binary",
153777
+ "op": "==",
153778
+ "left": {
153779
+ "type": "name",
153780
+ "path": [
153781
+ "item",
153782
+ "id"
153783
+ ]
153784
+ },
153785
+ "right": {
153786
+ "type": "ref",
153787
+ "id": "traits.infernal-legacy"
153788
+ }
153789
+ },
153790
+ "right": {
153791
+ "type": "name",
153792
+ "path": [
153793
+ "self",
153794
+ "hellishRebukeUsed"
153795
+ ]
153796
+ }
153797
+ }
153798
+ },
153799
+ "item.id == @traits.relentless-endurance && self.used": {
153800
+ "text": "item.id == @traits.relentless-endurance && self.used",
153801
+ "tree": {
153802
+ "type": "binary",
153803
+ "op": "&&",
153804
+ "left": {
153805
+ "type": "binary",
153806
+ "op": "==",
153807
+ "left": {
153808
+ "type": "name",
153809
+ "path": [
153810
+ "item",
153811
+ "id"
153812
+ ]
153813
+ },
153814
+ "right": {
153815
+ "type": "ref",
153816
+ "id": "traits.relentless-endurance"
153817
+ }
153818
+ },
153819
+ "right": {
153820
+ "type": "name",
153821
+ "path": [
153822
+ "self",
153823
+ "used"
153824
+ ]
153825
+ }
153826
+ }
153827
+ },
154846
153828
  "item.id == @weapons.dagger": {
154847
153829
  "text": "item.id == @weapons.dagger",
154848
153830
  "tree": {
@@ -158226,6 +157208,64 @@
158226
157208
  ]
158227
157209
  }
158228
157210
  },
157211
+ "item.type == 'draconicAncestry' && self.used": {
157212
+ "text": "item.type == 'draconicAncestry' && self.used",
157213
+ "tree": {
157214
+ "type": "binary",
157215
+ "op": "&&",
157216
+ "left": {
157217
+ "type": "binary",
157218
+ "op": "==",
157219
+ "left": {
157220
+ "type": "name",
157221
+ "path": [
157222
+ "item",
157223
+ "type"
157224
+ ]
157225
+ },
157226
+ "right": {
157227
+ "type": "string",
157228
+ "value": "draconicAncestry"
157229
+ }
157230
+ },
157231
+ "right": {
157232
+ "type": "name",
157233
+ "path": [
157234
+ "self",
157235
+ "used"
157236
+ ]
157237
+ }
157238
+ }
157239
+ },
157240
+ "item.type == 'invocation' && self.used": {
157241
+ "text": "item.type == 'invocation' && self.used",
157242
+ "tree": {
157243
+ "type": "binary",
157244
+ "op": "&&",
157245
+ "left": {
157246
+ "type": "binary",
157247
+ "op": "==",
157248
+ "left": {
157249
+ "type": "name",
157250
+ "path": [
157251
+ "item",
157252
+ "type"
157253
+ ]
157254
+ },
157255
+ "right": {
157256
+ "type": "string",
157257
+ "value": "invocation"
157258
+ }
157259
+ },
157260
+ "right": {
157261
+ "type": "name",
157262
+ "path": [
157263
+ "self",
157264
+ "used"
157265
+ ]
157266
+ }
157267
+ }
157268
+ },
158229
157269
  "item.xp": {
158230
157270
  "text": "item.xp",
158231
157271
  "tree": {
@@ -160947,166 +159987,6 @@
160947
159987
  ]
160948
159988
  }
160949
159989
  },
160950
- "max(0, spellSlots.level1.used - flags.l1)": {
160951
- "text": "max(0, spellSlots.level1.used - flags.l1)",
160952
- "tree": {
160953
- "type": "call",
160954
- "fn": "max",
160955
- "args": [
160956
- {
160957
- "type": "int",
160958
- "value": 0
160959
- },
160960
- {
160961
- "type": "binary",
160962
- "op": "-",
160963
- "left": {
160964
- "type": "name",
160965
- "path": [
160966
- "spellSlots",
160967
- "level1",
160968
- "used"
160969
- ]
160970
- },
160971
- "right": {
160972
- "type": "name",
160973
- "path": [
160974
- "flags",
160975
- "l1"
160976
- ]
160977
- }
160978
- }
160979
- ]
160980
- }
160981
- },
160982
- "max(0, spellSlots.level2.used - flags.l2)": {
160983
- "text": "max(0, spellSlots.level2.used - flags.l2)",
160984
- "tree": {
160985
- "type": "call",
160986
- "fn": "max",
160987
- "args": [
160988
- {
160989
- "type": "int",
160990
- "value": 0
160991
- },
160992
- {
160993
- "type": "binary",
160994
- "op": "-",
160995
- "left": {
160996
- "type": "name",
160997
- "path": [
160998
- "spellSlots",
160999
- "level2",
161000
- "used"
161001
- ]
161002
- },
161003
- "right": {
161004
- "type": "name",
161005
- "path": [
161006
- "flags",
161007
- "l2"
161008
- ]
161009
- }
161010
- }
161011
- ]
161012
- }
161013
- },
161014
- "max(0, spellSlots.level3.used - flags.l3)": {
161015
- "text": "max(0, spellSlots.level3.used - flags.l3)",
161016
- "tree": {
161017
- "type": "call",
161018
- "fn": "max",
161019
- "args": [
161020
- {
161021
- "type": "int",
161022
- "value": 0
161023
- },
161024
- {
161025
- "type": "binary",
161026
- "op": "-",
161027
- "left": {
161028
- "type": "name",
161029
- "path": [
161030
- "spellSlots",
161031
- "level3",
161032
- "used"
161033
- ]
161034
- },
161035
- "right": {
161036
- "type": "name",
161037
- "path": [
161038
- "flags",
161039
- "l3"
161040
- ]
161041
- }
161042
- }
161043
- ]
161044
- }
161045
- },
161046
- "max(0, spellSlots.level4.used - flags.l4)": {
161047
- "text": "max(0, spellSlots.level4.used - flags.l4)",
161048
- "tree": {
161049
- "type": "call",
161050
- "fn": "max",
161051
- "args": [
161052
- {
161053
- "type": "int",
161054
- "value": 0
161055
- },
161056
- {
161057
- "type": "binary",
161058
- "op": "-",
161059
- "left": {
161060
- "type": "name",
161061
- "path": [
161062
- "spellSlots",
161063
- "level4",
161064
- "used"
161065
- ]
161066
- },
161067
- "right": {
161068
- "type": "name",
161069
- "path": [
161070
- "flags",
161071
- "l4"
161072
- ]
161073
- }
161074
- }
161075
- ]
161076
- }
161077
- },
161078
- "max(0, spellSlots.level5.used - flags.l5)": {
161079
- "text": "max(0, spellSlots.level5.used - flags.l5)",
161080
- "tree": {
161081
- "type": "call",
161082
- "fn": "max",
161083
- "args": [
161084
- {
161085
- "type": "int",
161086
- "value": 0
161087
- },
161088
- {
161089
- "type": "binary",
161090
- "op": "-",
161091
- "left": {
161092
- "type": "name",
161093
- "path": [
161094
- "spellSlots",
161095
- "level5",
161096
- "used"
161097
- ]
161098
- },
161099
- "right": {
161100
- "type": "name",
161101
- "path": [
161102
- "flags",
161103
- "l5"
161104
- ]
161105
- }
161106
- }
161107
- ]
161108
- }
161109
- },
161110
159990
  "max(0, steps.bleed.total)": {
161111
159991
  "text": "max(0, steps.bleed.total)",
161112
159992
  "tree": {
@@ -163887,6 +162767,133 @@
163887
162767
  ]
163888
162768
  }
163889
162769
  },
162770
+ "picks < fieldOf('spellSlots.level{slot}.used', value)\n && value + sumList(steps.slots.picked, indexOf(['1', '2', '3', '4', '5'], x) + 1)\n <= ceil(self.level / 2)": {
162771
+ "text": "picks < fieldOf('spellSlots.level{slot}.used', value) && value + sumList(steps.slots.picked, indexOf(['1', '2', '3', '4', '5'], x) + 1) <= ceil(self.level / 2)",
162772
+ "tree": {
162773
+ "type": "binary",
162774
+ "op": "&&",
162775
+ "left": {
162776
+ "type": "binary",
162777
+ "op": "<",
162778
+ "left": {
162779
+ "type": "name",
162780
+ "path": [
162781
+ "picks"
162782
+ ]
162783
+ },
162784
+ "right": {
162785
+ "type": "call",
162786
+ "fn": "fieldOf",
162787
+ "args": [
162788
+ {
162789
+ "type": "string",
162790
+ "value": "spellSlots.level{slot}.used"
162791
+ },
162792
+ {
162793
+ "type": "name",
162794
+ "path": [
162795
+ "value"
162796
+ ]
162797
+ }
162798
+ ]
162799
+ }
162800
+ },
162801
+ "right": {
162802
+ "type": "binary",
162803
+ "op": "<=",
162804
+ "left": {
162805
+ "type": "binary",
162806
+ "op": "+",
162807
+ "left": {
162808
+ "type": "name",
162809
+ "path": [
162810
+ "value"
162811
+ ]
162812
+ },
162813
+ "right": {
162814
+ "type": "call",
162815
+ "fn": "sumList",
162816
+ "args": [
162817
+ {
162818
+ "type": "name",
162819
+ "path": [
162820
+ "steps",
162821
+ "slots",
162822
+ "picked"
162823
+ ]
162824
+ },
162825
+ {
162826
+ "type": "binary",
162827
+ "op": "+",
162828
+ "left": {
162829
+ "type": "call",
162830
+ "fn": "indexOf",
162831
+ "args": [
162832
+ {
162833
+ "type": "list",
162834
+ "items": [
162835
+ {
162836
+ "type": "string",
162837
+ "value": "1"
162838
+ },
162839
+ {
162840
+ "type": "string",
162841
+ "value": "2"
162842
+ },
162843
+ {
162844
+ "type": "string",
162845
+ "value": "3"
162846
+ },
162847
+ {
162848
+ "type": "string",
162849
+ "value": "4"
162850
+ },
162851
+ {
162852
+ "type": "string",
162853
+ "value": "5"
162854
+ }
162855
+ ]
162856
+ },
162857
+ {
162858
+ "type": "name",
162859
+ "path": [
162860
+ "x"
162861
+ ]
162862
+ }
162863
+ ]
162864
+ },
162865
+ "right": {
162866
+ "type": "int",
162867
+ "value": 1
162868
+ }
162869
+ }
162870
+ ]
162871
+ }
162872
+ },
162873
+ "right": {
162874
+ "type": "call",
162875
+ "fn": "ceil",
162876
+ "args": [
162877
+ {
162878
+ "type": "binary",
162879
+ "op": "/",
162880
+ "left": {
162881
+ "type": "name",
162882
+ "path": [
162883
+ "self",
162884
+ "level"
162885
+ ]
162886
+ },
162887
+ "right": {
162888
+ "type": "int",
162889
+ "value": 2
162890
+ }
162891
+ }
162892
+ ]
162893
+ }
162894
+ }
162895
+ }
162896
+ },
163890
162897
  "proficiency.bonus": {
163891
162898
  "text": "proficiency.bonus",
163892
162899
  "tree": {
@@ -175913,6 +174920,24 @@
175913
174920
  }
175914
174921
  }
175915
174922
  },
174923
+ "steps.monster.added[0]": {
174924
+ "text": "steps.monster.added[0]",
174925
+ "tree": {
174926
+ "type": "index",
174927
+ "object": {
174928
+ "type": "name",
174929
+ "path": [
174930
+ "steps",
174931
+ "monster",
174932
+ "added"
174933
+ ]
174934
+ },
174935
+ "index": {
174936
+ "type": "int",
174937
+ "value": 0
174938
+ }
174939
+ }
174940
+ },
175916
174941
  "steps.monster.item.alignment": {
175917
174942
  "text": "steps.monster.item.alignment",
175918
174943
  "tree": {
@@ -176321,6 +175346,24 @@
176321
175346
  ]
176322
175347
  }
176323
175348
  },
175349
+ "steps.race.added[0]": {
175350
+ "text": "steps.race.added[0]",
175351
+ "tree": {
175352
+ "type": "index",
175353
+ "object": {
175354
+ "type": "name",
175355
+ "path": [
175356
+ "steps",
175357
+ "race",
175358
+ "added"
175359
+ ]
175360
+ },
175361
+ "index": {
175362
+ "type": "int",
175363
+ "value": 0
175364
+ }
175365
+ }
175366
+ },
176324
175367
  "steps.rangerWeapons.picked == 'two-simple-melee'": {
176325
175368
  "text": "steps.rangerWeapons.picked == 'two-simple-melee'",
176326
175369
  "tree": {
@@ -178692,6 +177735,68 @@
178692
177735
  }
178693
177736
  }
178694
177737
  },
177738
+ "sumList(steps.slots.picked, indexOf(['1', '2', '3', '4', '5'], x) + 1)": {
177739
+ "text": "sumList(steps.slots.picked, indexOf(['1', '2', '3', '4', '5'], x) + 1)",
177740
+ "tree": {
177741
+ "type": "call",
177742
+ "fn": "sumList",
177743
+ "args": [
177744
+ {
177745
+ "type": "name",
177746
+ "path": [
177747
+ "steps",
177748
+ "slots",
177749
+ "picked"
177750
+ ]
177751
+ },
177752
+ {
177753
+ "type": "binary",
177754
+ "op": "+",
177755
+ "left": {
177756
+ "type": "call",
177757
+ "fn": "indexOf",
177758
+ "args": [
177759
+ {
177760
+ "type": "list",
177761
+ "items": [
177762
+ {
177763
+ "type": "string",
177764
+ "value": "1"
177765
+ },
177766
+ {
177767
+ "type": "string",
177768
+ "value": "2"
177769
+ },
177770
+ {
177771
+ "type": "string",
177772
+ "value": "3"
177773
+ },
177774
+ {
177775
+ "type": "string",
177776
+ "value": "4"
177777
+ },
177778
+ {
177779
+ "type": "string",
177780
+ "value": "5"
177781
+ }
177782
+ ]
177783
+ },
177784
+ {
177785
+ "type": "name",
177786
+ "path": [
177787
+ "x"
177788
+ ]
177789
+ }
177790
+ ]
177791
+ },
177792
+ "right": {
177793
+ "type": "int",
177794
+ "value": 1
177795
+ }
177796
+ }
177797
+ ]
177798
+ }
177799
+ },
178695
177800
  "tranquility.active": {
178696
177801
  "text": "tranquility.active",
178697
177802
  "tree": {
@@ -178712,6 +177817,15 @@
178712
177817
  ]
178713
177818
  }
178714
177819
  },
177820
+ "value": {
177821
+ "text": "value",
177822
+ "tree": {
177823
+ "type": "name",
177824
+ "path": [
177825
+ "value"
177826
+ ]
177827
+ }
177828
+ },
178715
177829
  "value in proficiencies.skills": {
178716
177830
  "text": "value in proficiencies.skills",
178717
177831
  "tree": {