@opencharacter/cwn-srd 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.
package/dist/index.js CHANGED
@@ -1,2 +1,2 @@
1
1
  // Generated by pnpm build:packs. Do not edit.
2
- export default {"manifest":{"id":"cwn-srd","version":"0.1.0","specVersion":"0.2.0","license":"CC0-1.0","notices":{"not-affiliated":"This pack is compatible with Cities Without Number, a game by Kevin Crawford published by Sine Nomine Publishing. It is built on the Cities Without Number System Reference Document, which its author dedicated to the public domain under CC0 1.0. It is unofficial: it is not affiliated with, approved or endorsed by Kevin Crawford or Sine Nomine Publishing."},"defaultLanguage":"en"},"rules":{"actions":[{"id":"level-up","tags":["advancement"],"available":"!character.creating && level < 10","params":{"random":{"type":"boolean","default":false}},"results":["raised"],"steps":[{"id":"raise","kind":"changes","changes":[{"type":"adjust","field":"level","by":1}]},{"id":"edge","kind":"action","when":"level + 1 == 5","use":"gain-edge","params":{"choice":"'edge-5'","random":"params.random"}},{"id":"focus","kind":"action","when":"(level + 1) in [2, 5, 7, 10]","use":"gain-focus","params":{"random":"params.random"}},{"id":"dice","kind":"branch","sheet":"proposed","cases":[{"when":true,"flags":{"perDie":"attributes.con.mod + hp.dieBonus","dice":"level"}}]},{"id":"hp","kind":"roll","tags":["hit-points"],"parts":[{"dice":"flags.perDie >= 0 ? (flags.dice)d6 : flags.perDie == -1 ? (flags.dice)d6min2\n : flags.perDie == -2 ? (flags.dice)d6min3 : flags.perDie == -3 ? (flags.dice)d6min4\n : (flags.dice)d6min5"},{"value":"flags.dice * flags.perDie"}]},{"id":"gains","kind":"changes","sheet":"proposed","changes":[{"type":"set","field":"hp.rolled","value":"max(steps.hp.total, hp.rolled + 1)"},{"type":"adjust","field":"skillPoints.unspent","by":"skillPoints.perLevel"}]},{"id":"picks","kind":"choice","options":{"pending":{}},"random":"params.random"},{"id":"done","kind":"outcome","result":"'raised'"}]},{"id":"improve-skill","tags":["advancement"],"available":"!character.creating","params":{"skill":{"type":"enum","values":["administer","connect","drive","exert","fix","heal","know","lead","notice","perform","program","punch","shoot","sneak","stab","survive","talk","trade","work","cast","summon"]}},"results":["improved","refused"],"steps":[{"id":"start","kind":"branch","cases":[{"when":true,"flags":{"level":"fieldOf('skills.{skill}.base', params.skill)","credit":"fieldOf('skills.{skill}.credit', params.skill)"}}]},{"id":"cost","kind":"branch","cases":[{"when":"flags.level < 4","flags":{"cost":"flags.level + 2","allowed":"level >= [1, 1, 3, 6, 9][flags.level + 1]\n && skillPoints.unspent + flags.credit >= flags.level + 2"}},{"when":true,"flags":{"cost":0,"allowed":false}}]},{"id":"buy","kind":"changes","when":"flags.allowed","changes":[{"type":"set","field":{"formula":"'skills.' + params.skill + '.base'"},"value":"flags.level + 1"},{"type":"set","field":{"formula":"'skills.' + params.skill + '.credit'"},"value":"max(0, flags.credit - flags.cost)"},{"type":"adjust","field":"skillPoints.unspent","by":"-max(0, flags.cost - flags.credit)"}]},{"id":"result","kind":"outcome","result":"flags.allowed ? 'improved' : 'refused'"}]},{"id":"improve-attribute","tags":["advancement"],"available":"!character.creating && !underdog && advancement.attributeBoosts < 5","params":{"attribute":{"type":"enum","values":["str","dex","con","int","wis","cha"]}},"results":["improved","refused"],"steps":[{"id":"start","kind":"branch","cases":[{"when":true,"flags":{"cost":"advancement.attributeBoosts + 1","allowed":"skillPoints.unspent >= advancement.attributeBoosts + 1\n && level >= [1, 1, 3, 6, 9][advancement.attributeBoosts]\n && fieldOf('attributes.{attribute}.base', params.attribute) < 18"}}]},{"id":"buy","kind":"changes","when":"flags.allowed","changes":[{"type":"adjust","field":{"formula":"'attributes.' + params.attribute + '.base'"},"by":1},{"type":"adjust","field":"advancement.attributeBoosts","by":1},{"type":"adjust","field":"skillPoints.unspent","by":"-flags.cost"}]},{"id":"result","kind":"outcome","result":"flags.allowed ? 'improved' : 'refused'"}]},{"id":"gain-skill","tags":["building"],"params":{"code":{"type":"enum","values":["administer","connect","drive","exert","fix","heal","know","lead","notice","perform","program","punch","shoot","sneak","stab","survive","talk","trade","work","cast","summon","combat","any","punch-stab","noncombat"]},"random":{"type":"boolean","default":false}},"results":["raised","points"],"steps":[{"id":"start","kind":"branch","sheet":"proposed","cases":[{"when":true,"flags":{"points":"!character.creating","candidates":"filterList(keysOf('skill'),\n (params.code == x\n || (params.code == 'combat' && x in ['punch', 'shoot', 'stab'])\n || (params.code == 'punch-stab' && x in ['punch', 'stab'])\n || (params.code == 'noncombat'\n && !(x in ['punch', 'shoot', 'stab', 'cast', 'summon']))\n || (params.code == 'any' && !(x in ['cast', 'summon'])))\n && (!character.creating || fieldOf('skills.{skill}.base', x) < 1))"}}]},{"id":"fallback","kind":"branch","sheet":"proposed","when":"size(flags.candidates) == 0","cases":[{"when":true,"flags":{"candidates":"filterList(keysOf('skill'),\n !(x in ['cast', 'summon']) && fieldOf('skills.{skill}.base', x) < 1)"}}]},{"id":"skill","kind":"choice","tags":["skill-pick"],"options":{"values":{"formula":"flags.candidates"}},"when":"size(flags.candidates) > 1","random":"params.random","recommend":"flags.candidates[0]"},{"id":"picked","kind":"branch","cases":[{"when":true,"flags":{"skill":"has(steps.skill) ? steps.skill.picked : flags.candidates[0]"}}]},{"id":"raise","kind":"changes","when":"!flags.points","changes":[{"type":"adjust","field":{"formula":"'skills.' + flags.skill + '.base'"},"by":1}]},{"id":"pool","kind":"branch","sheet":"proposed","when":"flags.points","cases":[{"when":true,"flags":{"level":"fieldOf('skills.{skill}.base', flags.skill)","pool":"3 + fieldOf('skills.{skill}.credit', flags.skill)"}}]},{"id":"buy1","kind":"branch","when":"flags.points && flags.level < 4 && flags.pool >= flags.level + 2","cases":[{"when":true,"flags":{"pool":"flags.pool - flags.level - 2","level":"flags.level + 1"}}]},{"id":"buy2","kind":"branch","when":"flags.points && flags.level < 4 && flags.pool >= flags.level + 2","cases":[{"when":true,"flags":{"pool":"flags.pool - flags.level - 2","level":"flags.level + 1"}}]},{"id":"buy3","kind":"branch","when":"flags.points && flags.level < 4 && flags.pool >= flags.level + 2","cases":[{"when":true,"flags":{"pool":"flags.pool - flags.level - 2","level":"flags.level + 1"}}]},{"id":"spend","kind":"changes","when":"flags.points","changes":[{"type":"set","field":{"formula":"'skills.' + flags.skill + '.base'"},"value":"flags.level"},{"type":"set","field":{"formula":"'skills.' + flags.skill + '.credit'"},"value":"flags.level >= 4 ? 0 : flags.pool"},{"type":"adjust","when":"flags.level >= 4 && flags.pool > 0","field":"skillPoints.unspent","by":"flags.pool"}]},{"id":"done","kind":"outcome","result":"flags.points ? 'points' : 'raised'","data":{"skill":"flags.skill"}}]},{"id":"gain-attribute","tags":["building"],"params":{"code":{"type":"enum","values":["any-stat-1","physical-2","mental-2"]},"random":{"type":"boolean","default":false}},"steps":[{"id":"start","kind":"branch","sheet":"proposed","cases":[{"when":true,"flags":{"amount":"params.code == 'any-stat-1' ? 1 : 2","group":"params.code == 'physical-2' ? ['str', 'dex', 'con']\n : params.code == 'mental-2' ? ['int', 'wis', 'cha']\n : ['str', 'dex', 'con', 'int', 'wis', 'cha']"}}]},{"id":"best","kind":"branch","sheet":"proposed","cases":[{"when":true,"flags":{"best":"sortList(filterList(flags.group,\n fieldOf('attributes.{attribute}.base', x) <= 18 - flags.amount),\n -fieldOf('attributes.{attribute}.base', x))"}}]},{"id":"boost","kind":"allocate","sheet":"proposed","fields":{"type":"field","where":"'attribute-base' in item.tags\n && countList(flags.group, ('attr.' + x) in item.tags) > 0"},"budget":"flags.amount","spend":"upTo","limit":"18 - field.value","random":"params.random","recommend":{"attributes.str.base":"size(flags.best) > 0 && flags.best[0] == 'str' ? flags.amount : 0","attributes.dex.base":"size(flags.best) > 0 && flags.best[0] == 'dex' ? flags.amount : 0","attributes.con.base":"size(flags.best) > 0 && flags.best[0] == 'con' ? flags.amount : 0","attributes.int.base":"size(flags.best) > 0 && flags.best[0] == 'int' ? flags.amount : 0","attributes.wis.base":"size(flags.best) > 0 && flags.best[0] == 'wis' ? flags.amount : 0","attributes.cha.base":"size(flags.best) > 0 && flags.best[0] == 'cha' ? flags.amount : 0"}}]},{"id":"gain-focus","tags":["building","advancement"],"params":{"random":{"type":"boolean","default":false}},"results":["gained"],"steps":[{"id":"mode","kind":"choice","sheet":"proposed","when":"countCopies(copy.type == 'focus' && copy.state.level < copy.fields.maxLevel) > 0","options":[{"id":"new"},{"id":"raise"}],"recommend":"'new'","random":"params.random"},{"id":"picked","kind":"branch","cases":[{"when":true,"flags":{"mode":"has(steps.mode) ? steps.mode.picked : 'new'"}}]},{"id":"focus","kind":"choice","when":"flags.mode == 'new'","tags":["focus-pick"],"sheet":"proposed","options":{"content":{"type":"focus","where":"('repeatable' in item.tags || countCopies(copy.item == item.id) == 0)\n && !('brings-cyber' in item.tags\n && (magic.graced || countCopies(copy.item == @foci.all-natural) > 0))\n && !(item.id == @foci.all-natural && (underdog || magic.mage || magic.summoner\n || magic.graced || countCopies(copy.type == 'cyberware' && copy.fields.strain > 0) > 0))"}},"recommend":"options[0]","random":"params.random"},{"id":"raised","kind":"choice","when":"flags.mode == 'raise'","sheet":"proposed","options":{"copies":{"type":"focus","where":"self.level < item.maxLevel"}},"recommend":"options[0]","random":"params.random","changes":[{"type":"setState","entry":"picked","key":"level","value":2}]},{"id":"specialty","kind":"choice","when":"has(steps.focus) && has(steps.focus.item.bonusSkill) && steps.focus.item.bonusSkill == 'noncombat'","options":{"values":["administer","connect","drive","exert","fix","heal","know","lead","notice","perform","program","sneak","survive","talk","trade","work"]},"recommend":"options[0]","random":"params.random"},{"id":"attribute","kind":"choice","when":"has(steps.focus) && 'asks-attribute' in steps.focus.item.tags","options":{"values":["str","dex","con","int","wis","cha"]},"recommend":"options[0]","random":"params.random"},{"id":"add","kind":"changes","when":"has(steps.focus)","changes":[{"type":"addItem","when":"!has(steps.specialty) && !has(steps.attribute)","entry":{"item":"steps.focus.picked"}},{"type":"addItem","when":"has(steps.specialty)","entry":{"item":"steps.focus.picked","choices":{"skill":[{"option":{"formula":"steps.specialty.picked"}}]}}},{"type":"addItem","when":"has(steps.attribute)","entry":{"item":"steps.focus.picked","choices":{"attribute-1":[{"option":{"formula":"steps.attribute.picked"}}]}}},{"type":"addItem","forEach":"steps.focus.item.startingItems","entry":{"item":"x"}}]},{"id":"picks","kind":"choice","when":"has(steps.focus)","options":{"pending":{"entry":"steps.add.added[0]"}},"random":"params.random"},{"id":"cyber","kind":"changes","sheet":"proposed","when":"has(steps.focus) && size(steps.focus.item.startingCyber) > 0\n && strain.total + steps.focus.item.startingCyberStrain <= strain.max && !magic.graced","changes":[{"type":"addItem","forEach":"steps.focus.item.startingCyber","entry":{"item":"x"}}]},{"id":"bonus","kind":"action","when":"has(steps.focus) && has(steps.focus.item.bonusSkill)","use":"gain-skill","params":{"code":"steps.focus.item.bonusSkill == 'noncombat' ? steps.specialty.picked : steps.focus.item.bonusSkill","random":"params.random"}},{"id":"bonus2","kind":"action","when":"has(steps.focus) && has(steps.focus.item.bonusSkill2)","use":"gain-skill","params":{"code":"steps.focus.item.bonusSkill2","random":"params.random"}},{"id":"levelTwo","kind":"action","when":"has(steps.raised) && has(steps.raised.item.levelTwoSkill)","use":"gain-skill","params":{"code":"steps.raised.item.levelTwoSkill","random":"params.random"}},{"id":"gear","kind":"action","when":"has(steps.focus) && has(steps.focus.item.gearBudget)","use":"acquire-focus-gear","params":{"kind":"steps.focus.item.gearBudget","random":"params.random"}},{"id":"done","kind":"outcome","result":"'gained'"}]},{"id":"gain-edge","tags":["building"],"params":{"choice":{"type":"enum","values":["edge-1","edge-2","edge-5","underdog-edge"]},"random":{"type":"boolean","default":false}},"results":["gained"],"steps":[{"id":"edge","kind":"choice","tags":["edge-pick"],"sheet":"proposed","options":{"content":{"type":"edge","where":"('repeatable' in item.tags || !(item.id in edges.taken))\n && (!item.magic || (campaign.magic && params.choice != 'underdog-edge'\n && params.choice != 'edge-5'))\n && !('not-underdog' in item.tags && (underdog || params.choice == 'underdog-edge'))\n && !('brings-cyber' in item.tags\n && (magic.graced || countCopies(copy.item == @foci.all-natural) > 0))"}},"recommend":"options[0]","random":"params.random","changes":[{"type":"choose","path":{"choice":"[params.choice]"},"option":"picked.id"}]},{"id":"attribute","kind":"choice","when":"steps.edge.item.asksAttribute","options":{"values":["str","dex","int","wis","cha"]},"recommend":"options[0]","random":"params.random","changes":[{"type":"choose","path":{"choice":"[params.choice, steps.edge.picked, 'attribute']"},"option":"picked.id"}]},{"id":"bonus","kind":"action","when":"has(steps.edge.item.bonusSkill)","use":"gain-skill","params":{"code":"steps.edge.item.bonusSkill","random":"params.random"}},{"id":"retro","kind":"changes","sheet":"proposed","when":"!character.creating && 'retroactive-points' in steps.edge.item.tags","changes":[{"type":"adjust","field":"skillPoints.unspent","by":"level - 1"}]},{"id":"items","kind":"changes","when":"size(steps.edge.item.startingItems) > 0 || steps.edge.item.friendContacts > 0","changes":[{"type":"addItem","forEach":"steps.edge.item.startingItems","entry":{"item":"x"}},{"type":"addItem","when":"steps.edge.item.friendContacts > 0","entry":{"item":"'contacts.contact'","state":{"bond":"'friend'"}}}]},{"id":"cyber","kind":"changes","sheet":"proposed","when":"size(steps.edge.item.startingCyber) > 0\n && strain.total + steps.edge.item.startingCyberStrain <= strain.max && !magic.graced","changes":[{"type":"addItem","forEach":"steps.edge.item.startingCyber","entry":{"item":"x"}}]},{"id":"programs","kind":"choice","when":"steps.edge.item.programElements > 0","sheet":"proposed","options":{"content":{"type":"program","where":"picks == 0"}},"repeat":{"max":"steps.edge.item.programElements","min":"steps.edge.item.programElements"},"random":"params.random","recommend":"options[0]","changes":[{"type":"addItem","entry":{"item":"picked.id","state":{"source":"'edge'"}}}]},{"id":"wired","kind":"action","when":"steps.edge.item.cyberBudget > 0","use":"acquire-wired-cyber","params":{"random":"params.random"}},{"id":"spells","kind":"choice","when":"steps.edge.item.spells > 0","sheet":"proposed","options":{"content":{"type":"spell","where":"picks == 0"}},"repeat":{"max":"steps.edge.item.spells","min":"steps.edge.item.spells"},"random":"params.random","recommend":"options[0]","changes":[{"type":"addItem","entry":{"item":"picked.id"}}]},{"id":"arts","kind":"choice","when":"steps.edge.item.buysArts","sheet":"proposed","options":{"content":{"type":"art","where":"item.cost <= arts.points - arts.spent && countCopies(copy.item == item.id) == 0\n && !('alacrity' in item.tags && countCopies('alacrity' in copy.tags) > 0)"}},"repeat":{"max":4},"random":"params.random","recommend":"options[0]","changes":[{"type":"addItem","entry":{"item":"picked.id"}}]},{"id":"focus","kind":"action","when":"steps.edge.item.extraFocus","use":"gain-focus","params":{"random":"params.random"}},{"id":"done","kind":"outcome","result":"'gained'"}]},{"id":"skill-check","tags":["check"],"params":{"skill":{"type":"id","of":"field","where":"'skill' in item.tags"},"attribute":{"type":"enum","values":["str","dex","con","int","wis","cha"]},"difficulty":{"type":"integer","optional":true},"modifier":{"type":"integer","optional":true}},"results":["success","failure","rolled"],"steps":[{"id":"start","kind":"branch","cases":[{"when":true,"flags":{"dc":"has(params.difficulty) ? params.difficulty : -1"}}]},{"id":"check","kind":"roll","tags":["skill-check",{"formula":"params.skill.tags"},{"formula":"'attr.' + params.attribute"}],"bands":"check","parts":[{"dice":"2d6kh2","tags":["skill-dice"]},{"field":"params.skill.id"},{"field":"'attributes.' + params.attribute + '.mod'"},{"value":"params.modifier","when":"has(params.modifier)"}]},{"id":"result","kind":"outcome","result":"flags.dc < 0 ? 'rolled' : steps.check.band","data":{"total":"steps.check.total"}}]},{"id":"saving-throw","tags":["save"],"params":{"save":{"type":"enum","values":["physical","evasion","mental","luck"]},"modifier":{"type":"integer","optional":true}},"results":["success","failure"],"steps":[{"id":"start","kind":"branch","cases":[{"when":true,"flags":{"target":"fieldOf('saves.{save}', params.save)"}}]},{"id":"save","kind":"roll","tags":["save",{"formula":"'save.' + params.save"}],"bands":"save","parts":[{"dice":"1d20"},{"value":"params.modifier","when":"has(params.modifier)"}]},{"id":"result","kind":"outcome","result":"steps.save.band","data":{"total":"steps.save.total","target":"flags.target"}}]},{"id":"initiative","tags":["initiative"],"results":["rolled"],"steps":[{"id":"roll","kind":"roll","tags":["initiative"],"parts":[{"dice":"1d8"},{"field":"'combat.initiative'"}]},{"id":"result","kind":"outcome","result":"'rolled'","data":{"total":"steps.roll.total"}}]},{"id":"end-scene","tags":["rest"],"steps":[{"id":"refresh","kind":"changes","changes":[{"type":"setState","copies":{"type":"armor","where":"self.soakUsed > 0"},"key":"soakUsed","value":0},{"type":"setState","copies":{"type":"cyberdeck","where":"self.shieldingUsed > 0"},"key":"shieldingUsed","value":0},{"type":"set","field":"effort.mage.scene","value":0},{"type":"set","field":"effort.summoner.scene","value":0}]}]},{"id":"rest","tags":["rest"],"steps":[{"id":"recover","kind":"changes","changes":[{"type":"adjust","when":"!hp.frail","field":"hp.current","by":"level"},{"type":"adjust","when":"strain.temporary > 0","field":"strain.temporary","by":-1},{"type":"set","field":"effort.mage.day","value":0},{"type":"set","field":"effort.mage.scene","value":0},{"type":"set","field":"effort.summoner.day","value":0},{"type":"set","field":"effort.summoner.scene","value":0},{"type":"set","field":"hacking.access.spent","value":0},{"type":"set","field":"arts.bonusRolls.used","value":0}]}]},{"id":"first-aid","tags":["healing"],"available":"strain.total + 1 <= strain.max","params":{"healerSkill":{"type":"integer","min":-1,"max":4}},"steps":[{"id":"heal","kind":"roll","tags":["healing","first-aid"],"parts":[{"dice":"1d6"},{"value":"params.healerSkill"}]},{"id":"apply","kind":"changes","changes":[{"type":"adjust","field":"hp.current","by":"max(0, steps.heal.total)"},{"type":"adjust","field":"strain.temporary","by":1}]}]},{"id":"major-injury","tags":["injury"],"results":["rolled"],"params":{"modifier":{"type":"integer","optional":true}},"steps":[{"id":"roll","kind":"roll","tags":["major-injury"],"bands":"major-injury","parts":[{"dice":"1d12"},{"value":"params.modifier","when":"has(params.modifier)"}]},{"id":"result","kind":"outcome","result":"'rolled'","data":{"injury":"steps.roll.band"}}]},{"id":"create-character","tags":["creation"],"available":"character.creating","params":{"random":{"type":"boolean","default":false}},"results":["created"],"steps":[{"id":"method","kind":"choice","options":[{"id":"roll"},{"id":"array"}],"recommend":"'roll'"},{"id":"str","kind":"roll","tags":["creation"],"when":"steps.method.picked == 'roll'","parts":[{"dice":"3d6"}]},{"id":"dex","kind":"roll","tags":["creation"],"when":"steps.method.picked == 'roll'","parts":[{"dice":"3d6"}]},{"id":"con","kind":"roll","tags":["creation"],"when":"steps.method.picked == 'roll'","parts":[{"dice":"3d6"}]},{"id":"int","kind":"roll","tags":["creation"],"when":"steps.method.picked == 'roll'","parts":[{"dice":"3d6"}]},{"id":"wis","kind":"roll","tags":["creation"],"when":"steps.method.picked == 'roll'","parts":[{"dice":"3d6"}]},{"id":"cha","kind":"roll","tags":["creation"],"when":"steps.method.picked == 'roll'","parts":[{"dice":"3d6"}]},{"id":"rolled","kind":"branch","when":"steps.method.picked == 'roll'","cases":[{"when":true,"flags":{"totals":"[steps.str.total, steps.dex.total, steps.con.total, steps.int.total,\n steps.wis.total, steps.cha.total]"}}]},{"id":"substitute","kind":"choice","when":"steps.method.picked == 'roll'","options":[{"id":"none"},{"id":"str","when":"steps.str.total < 14"},{"id":"dex","when":"steps.dex.total < 14"},{"id":"con","when":"steps.con.total < 14"},{"id":"int","when":"steps.int.total < 14"},{"id":"wis","when":"steps.wis.total < 14"},{"id":"cha","when":"steps.cha.total < 14"}],"recommend":"minList(flags.totals, x) >= 14 ? 'none'\n : ['str', 'dex', 'con', 'int', 'wis', 'cha'][\n indexOf(flags.totals, minList(flags.totals, x))]"},{"id":"scores","kind":"changes","when":"steps.method.picked == 'roll'","changes":[{"type":"set","field":"attributes.str.base","value":"steps.substitute.picked == 'str' ? 14 : steps.str.total"},{"type":"set","field":"attributes.dex.base","value":"steps.substitute.picked == 'dex' ? 14 : steps.dex.total"},{"type":"set","field":"attributes.con.base","value":"steps.substitute.picked == 'con' ? 14 : steps.con.total"},{"type":"set","field":"attributes.int.base","value":"steps.substitute.picked == 'int' ? 14 : steps.int.total"},{"type":"set","field":"attributes.wis.base","value":"steps.substitute.picked == 'wis' ? 14 : steps.wis.total"},{"type":"set","field":"attributes.cha.base","value":"steps.substitute.picked == 'cha' ? 14 : steps.cha.total"}]},{"id":"array","kind":"allocate","when":"steps.method.picked == 'array'","fields":{"type":"field","where":"'attribute-base' in item.tags"},"values":[14,12,11,10,9,7],"random":"params.random","recommend":{"attributes.str.base":10,"attributes.dex.base":14,"attributes.con.base":12,"attributes.int.base":11,"attributes.wis.base":9,"attributes.cha.base":7}},{"id":"background","kind":"choice","options":{"content":{"type":"background"}},"recommend":"options[0]","random":"params.random","changes":[{"type":"choose","path":{"choice":["background"]},"option":"picked.id"}]},{"id":"freeSkill","kind":"action","use":"gain-skill","params":{"code":"steps.background.item.freeSkill","random":"params.random"}},{"id":"tables","kind":"branch","cases":[{"when":true,"flags":{"growth":"[steps.background.item.growth1, steps.background.item.growth2,\n steps.background.item.growth3, steps.background.item.growth4,\n steps.background.item.growth5, steps.background.item.growth6]","learning":"[steps.background.item.learning1, steps.background.item.learning2,\n steps.background.item.learning3, steps.background.item.learning4,\n steps.background.item.learning5, steps.background.item.learning6,\n steps.background.item.learning7, steps.background.item.learning8]"}}]},{"id":"skillMethod","kind":"choice","options":[{"id":"roll"},{"id":"pick"}],"recommend":"params.random ? 'roll' : 'pick'"},{"id":"table1","kind":"choice","when":"steps.skillMethod.picked == 'roll'","options":[{"id":"growth"},{"id":"learning"}],"recommend":"'learning'","random":"params.random"},{"id":"roll1","kind":"roll","tags":["creation"],"when":"steps.skillMethod.picked == 'roll'","parts":[{"dice":"steps.table1.picked == 'growth' ? 1d6 : 1d8"}]},{"id":"entry1","kind":"branch","when":"steps.skillMethod.picked == 'roll'","cases":[{"when":true,"flags":{"entry":"steps.table1.picked == 'growth' ? flags.growth[steps.roll1.total - 1]\n : flags.learning[steps.roll1.total - 1]"}}]},{"id":"skill1","kind":"action","when":"steps.skillMethod.picked == 'roll' && !(flags.entry in ['any-stat-1', 'physical-2', 'mental-2'])","use":"gain-skill","params":{"code":"flags.entry","random":"params.random"}},{"id":"stat1","kind":"action","when":"steps.skillMethod.picked == 'roll' && flags.entry in ['any-stat-1', 'physical-2', 'mental-2']","use":"gain-attribute","params":{"code":"flags.entry","random":"params.random"}},{"id":"table2","kind":"choice","when":"steps.skillMethod.picked == 'roll'","options":[{"id":"growth"},{"id":"learning"}],"recommend":"'learning'","random":"params.random"},{"id":"roll2","kind":"roll","tags":["creation"],"when":"steps.skillMethod.picked == 'roll'","parts":[{"dice":"steps.table2.picked == 'growth' ? 1d6 : 1d8"}]},{"id":"entry2","kind":"branch","when":"steps.skillMethod.picked == 'roll'","cases":[{"when":true,"flags":{"entry":"steps.table2.picked == 'growth' ? flags.growth[steps.roll2.total - 1]\n : flags.learning[steps.roll2.total - 1]"}}]},{"id":"skill2","kind":"action","when":"steps.skillMethod.picked == 'roll' && !(flags.entry in ['any-stat-1', 'physical-2', 'mental-2'])","use":"gain-skill","params":{"code":"flags.entry","random":"params.random"}},{"id":"stat2","kind":"action","when":"steps.skillMethod.picked == 'roll' && flags.entry in ['any-stat-1', 'physical-2', 'mental-2']","use":"gain-attribute","params":{"code":"flags.entry","random":"params.random"}},{"id":"table3","kind":"choice","when":"steps.skillMethod.picked == 'roll'","options":[{"id":"growth"},{"id":"learning"}],"recommend":"'learning'","random":"params.random"},{"id":"roll3","kind":"roll","tags":["creation"],"when":"steps.skillMethod.picked == 'roll'","parts":[{"dice":"steps.table3.picked == 'growth' ? 1d6 : 1d8"}]},{"id":"entry3","kind":"branch","when":"steps.skillMethod.picked == 'roll'","cases":[{"when":true,"flags":{"entry":"steps.table3.picked == 'growth' ? flags.growth[steps.roll3.total - 1]\n : flags.learning[steps.roll3.total - 1]"}}]},{"id":"skill3","kind":"action","when":"steps.skillMethod.picked == 'roll' && !(flags.entry in ['any-stat-1', 'physical-2', 'mental-2'])","use":"gain-skill","params":{"code":"flags.entry","random":"params.random"}},{"id":"stat3","kind":"action","when":"steps.skillMethod.picked == 'roll' && flags.entry in ['any-stat-1', 'physical-2', 'mental-2']","use":"gain-attribute","params":{"code":"flags.entry","random":"params.random"}},{"id":"pick1","kind":"choice","when":"steps.skillMethod.picked == 'pick'","options":{"values":{"formula":"filterList(flags.learning, x != 'any')"}},"recommend":"filterList(flags.learning, x != 'any')[0]","random":"params.random"},{"id":"learned1","kind":"action","when":"steps.skillMethod.picked == 'pick'","use":"gain-skill","params":{"code":"steps.pick1.picked","random":"params.random"}},{"id":"pick2","kind":"choice","when":"steps.skillMethod.picked == 'pick'","options":{"values":{"formula":"filterList(flags.learning, x != 'any')"}},"recommend":"filterList(flags.learning, x != 'any')[1]","random":"params.random"},{"id":"learned2","kind":"action","when":"steps.skillMethod.picked == 'pick'","use":"gain-skill","params":{"code":"steps.pick2.picked","random":"params.random"}},{"id":"edge1","kind":"action","use":"gain-edge","params":{"choice":"'edge-1'","random":"params.random"}},{"id":"edge2","kind":"action","use":"gain-edge","params":{"choice":"'edge-2'","random":"params.random"}},{"id":"focus","kind":"action","use":"gain-focus","params":{"random":"params.random"}},{"id":"modifiers","kind":"branch","sheet":"proposed","cases":[{"when":true,"flags":{"underdog":"attributes.modTotal <= -1 && !(@edges.prodigy in edges.taken)"}}]},{"id":"underdog","kind":"choice","when":"flags.underdog","options":[{"id":"take"},{"id":"decline"}],"recommend":"'take'","changes":[{"type":"set","when":"picked.id == 'take'","field":"underdog","value":true}]},{"id":"underdogEdge","kind":"action","when":"has(steps.underdog) && steps.underdog.picked == 'take'","use":"gain-edge","params":{"choice":"'underdog-edge'","random":"params.random"}},{"id":"hp","kind":"roll","tags":["creation","hit-points"],"sheet":"proposed","parts":[{"dice":"1d6"},{"field":"'attributes.con.mod'"},{"field":"'hp.dieBonus'"}]},{"id":"hpMax","kind":"changes","changes":[{"type":"set","field":"hp.rolled","value":"max(1, steps.hp.total)"}]},{"id":"freePick","kind":"action","use":"gain-skill","params":{"code":"'any'","random":"params.random"}},{"id":"contacts","kind":"choice","options":[{"id":"acquaintances"},{"id":"friend"}],"recommend":"'acquaintances'","random":"params.random","changes":[{"type":"addItem","when":"picked.id == 'acquaintances'","entry":{"item":"'contacts.contact'","state":{"bond":"'acquaintance'"}}},{"type":"addItem","when":"picked.id == 'acquaintances'","entry":{"item":"'contacts.contact'","state":{"bond":"'acquaintance'"}}},{"type":"addItem","when":"picked.id == 'friend'","entry":{"item":"'contacts.contact'","state":{"bond":"'friend'"}}}]},{"id":"freeItemKind","kind":"choice","options":[{"id":"weapon"},{"id":"armor"},{"id":"gear"},{"id":"cyberdeck"},{"id":"drone"}],"recommend":"'weapon'","random":"params.random"},{"id":"freeWeapon","kind":"choice","when":"steps.freeItemKind.picked == 'weapon'","options":{"content":{"type":"weapon","where":"item.cost <= 1000 && !('restricted' in item.tags)"}},"recommend":"options[0]","random":"params.random","changes":[{"type":"addItem","entry":{"item":"picked.id"}}]},{"id":"freeArmor","kind":"choice","when":"steps.freeItemKind.picked == 'armor'","options":{"content":{"type":"armor","where":"item.cost <= 1000 && !('restricted' in item.tags)"}},"recommend":"options[0]","random":"params.random","changes":[{"type":"addItem","entry":{"item":"picked.id"}}]},{"id":"freeGear","kind":"choice","when":"steps.freeItemKind.picked == 'gear'","options":{"content":{"type":"gear","where":"item.cost <= 1000 && !('restricted' in item.tags)"}},"recommend":"options[0]","random":"params.random","changes":[{"type":"addItem","entry":{"item":"picked.id"}}]},{"id":"freeCyberdeck","kind":"choice","when":"steps.freeItemKind.picked == 'cyberdeck'","options":{"content":{"type":"cyberdeck","where":"item.cost <= 1000 && !('restricted' in item.tags)"}},"recommend":"options[0]","random":"params.random","changes":[{"type":"addItem","entry":{"item":"picked.id"}}]},{"id":"freeDrone","kind":"choice","when":"steps.freeItemKind.picked == 'drone'","options":{"content":{"type":"drone","where":"item.cost <= 1000 && !('restricted' in item.tags)"}},"recommend":"options[0]","random":"params.random","changes":[{"type":"addItem","entry":{"item":"picked.id"}}]},{"id":"gear","kind":"changes","changes":[{"type":"set","field":"money","value":500},{"type":"set","field":"lifestyle","value":"'middle'"}]},{"id":"finish","kind":"changes","sheet":"proposed","changes":[{"type":"set","field":"hp.current","value":"hp.max"},{"type":"finishCreation"}]},{"id":"done","kind":"outcome","result":"'created'"}]},{"id":"trigger-cyber","tags":["cyber"],"available":"has(item.triggerStrain) && !self.damaged && strain.total + item.triggerStrain <= strain.max","steps":[{"id":"strain","kind":"changes","changes":[{"type":"adjust","field":"strain.temporary","by":"item.triggerStrain"}]}]},{"id":"acquire-wired-cyber","tags":["building"],"params":{"random":{"type":"boolean","default":false}},"steps":[{"id":"cyber","kind":"choice","sheet":"proposed","options":{"content":{"type":"cyberware","where":"item.cost <= cyber.wiredBudget - cyber.wiredUsed\n && strain.total + item.strain <= strain.max\n && countCopies(copy.item == item.id) == 0"}},"repeat":{"max":8},"recommend":"options[0]","random":"params.random","changes":[{"type":"addItem","entry":{"item":"picked.id","state":{"wired":true}}}]}]},{"id":"use-drug","tags":["drug"],"available":"self.quantity > 0","params":{"healerSkill":{"type":"integer","optional":true}},"steps":[{"id":"heal","kind":"roll","when":"has(item.healDice)","tags":["healing"],"parts":[{"dice":"item.healDice"},{"value":"has(params.healerSkill) ? params.healerSkill : 0"}]},{"id":"take","kind":"changes","changes":[{"type":"adjustQuantity","entry":"self","by":-1},{"type":"adjust","when":"item.strain > 0","field":"strain.temporary","by":"item.strain"},{"type":"adjust","when":"has(steps.heal)","field":"hp.current","by":"steps.heal.total"}]}]},{"id":"acquire-focus-gear","tags":["building"],"available":"budget.vehicle > budget.vehicleUsed || budget.drone > budget.droneUsed","params":{"kind":{"type":"enum","values":["vehicle","drone"]},"random":{"type":"boolean","default":false}},"steps":[{"id":"vehicle","kind":"choice","when":"params.kind == 'vehicle'","sheet":"proposed","options":{"content":{"type":"vehicle","where":"item.cost <= budget.vehicle - budget.vehicleUsed && !('restricted' in item.tags)"}},"prefer":"item.cost","random":"params.random","changes":[{"type":"addItem","entry":{"item":"picked.id","state":{"focusGear":true}}}]},{"id":"vehicles","kind":"choice","when":"params.kind == 'vehicle'","sheet":"proposed","options":{"content":{"type":"vehicle","where":"item.cost <= budget.vehicle - budget.vehicleUsed && !('restricted' in item.tags)"}},"repeat":{"max":5},"prefer":"item.cost","random":"params.random","changes":[{"type":"addItem","entry":{"item":"picked.id","state":{"focusGear":true}}}]},{"id":"drone","kind":"choice","when":"params.kind == 'drone'","sheet":"proposed","options":{"content":{"type":"drone","where":"item.cost <= budget.drone - budget.droneUsed && !('restricted' in item.tags)\n && (!has(item.enc) || enc.stowed + item.enc <= enc.stowedMax)"}},"prefer":"item.cost","random":"params.random","changes":[{"type":"addItem","entry":{"item":"picked.id","state":{"focusGear":true}}}]},{"id":"drones","kind":"choice","when":"params.kind == 'drone'","sheet":"proposed","options":{"content":{"type":"drone","where":"item.cost <= budget.drone - budget.droneUsed && !('restricted' in item.tags)\n && (!has(item.enc) || enc.stowed + item.enc <= enc.stowedMax)"}},"repeat":{"max":5},"prefer":"item.cost","random":"params.random","changes":[{"type":"addItem","entry":{"item":"picked.id","state":{"focusGear":true}}}]}]},{"id":"run-program","tags":["hacking"],"available":"item.kind == 'verb' && hacking.cpu > 0 && hacking.access.current >= item.accessCost","params":{"difficulty":{"type":"integer","optional":true},"wireless":{"type":"boolean","default":false},"crown":{"type":"boolean","default":false},"modifier":{"type":"integer","optional":true}},"results":["success","failure","rolled"],"steps":[{"id":"subject","kind":"choice","options":{"copies":{"type":"program","where":"item.kind == 'subject' && item.subjectType in action.item.targets"}},"recommend":"options[0]"},{"id":"start","kind":"branch","cases":[{"when":true,"flags":{"dc":"has(params.difficulty) ? params.difficulty : -1"}}]},{"id":"check","kind":"roll","tags":["hacking","skill-check","skill.program","attr.int"],"bands":"check","parts":[{"dice":"2d6kh2","tags":["skill-dice"]},{"field":"'attributes.int.mod'"},{"field":"'skills.program.level'"},{"value":"item.checkMod","when":"item.checkMod != 0"},{"value":-2,"when":"params.wireless"},{"value":-1,"when":"params.crown"},{"value":"params.modifier","when":"has(params.modifier)"}]},{"id":"pay","kind":"changes","when":"item.accessCost > 0","changes":[{"type":"adjust","field":"hacking.access.spent","by":"item.accessCost"}]},{"id":"result","kind":"outcome","result":"flags.dc < 0 ? 'rolled' : steps.check.band","data":{"total":"steps.check.total"}}]},{"id":"cast-spell","tags":["magic","spell"],"available":"magic.mage && self.prepared","params":{"commit":{"type":"enum","values":["scene","day"],"optional":true},"overcast":{"type":"boolean","default":false}},"results":["cast","overcast"],"steps":[{"id":"start","kind":"branch","cases":[{"when":true,"flags":{"commit":"item.effort == 'either' ? (has(params.commit) ? params.commit : 'scene')\n : item.effort"}}]},{"id":"effort","kind":"changes","when":"!params.overcast && flags.commit != 'none'","changes":[{"type":"adjust","when":"flags.commit == 'scene'","field":"effort.mage.scene","by":1},{"type":"adjust","when":"flags.commit == 'day'","field":"effort.mage.day","by":1}]},{"id":"overcasting","kind":"roll","when":"params.overcast","tags":["overcast"],"bands":"overcast","parts":[{"dice":"1d20"},{"field":"'skills.cast.level'"},{"field":"'attributes.con.mod'"},{"value":-2,"when":"flags.commit == 'day'"}]},{"id":"strain","kind":"changes","when":"params.overcast","changes":[{"type":"adjust","when":"!(steps.overcasting.band in ['death', 'mortal'])","field":"strain.temporary","by":"steps.overcasting.band == 'unconscious' ? 4 : steps.overcasting.band == 'stunned' ? 2 : 1"},{"type":"set","when":"steps.overcasting.band == 'mortal'","field":"hp.current","value":0}]},{"id":"result","kind":"outcome","result":"params.overcast ? 'overcast' : 'cast'","data":{"consequence":"params.overcast ? steps.overcasting.band : 'none'"}}]},{"id":"summon-spirit","tags":["magic","summoning"],"available":"magic.summoner","params":{"earlier":{"type":"integer","default":0,"min":0}},"steps":[{"id":"commit","kind":"changes","changes":[{"type":"adjust","field":"effort.summoner.day","by":"self.cost + (self.ritual ? 0 : params.earlier)"}]}]},{"id":"attack","tags":["attack"],"available":"(self.equipped || 'standard' in item.tags || 'implant' in item.tags)\n && !('trap' in item.tags) && (!has(item.magazine) || self.loaded >= 1)","params":{"attribute":{"type":"enum","values":["str","dex","wis"],"optional":true},"thrown":{"type":"boolean","default":false},"burst":{"type":"boolean","default":false},"lethal":{"type":"boolean","optional":true},"targetAc":{"type":"integer","optional":true},"targetTrauma":{"type":"integer","optional":true},"modifier":{"type":"integer","optional":true}},"participants":{"target":{"max":1,"fields":{"ac.ranged":{"type":"integer"},"ac.melee":{"type":"integer"},"trauma.target":{"type":"integer","default":6}}}},"results":["hit","miss","rolled"],"steps":[{"id":"start","kind":"branch","cases":[{"when":true,"flags":{"ranged":"has(item.rangeNormal) && (!('melee' in item.tags) || params.thrown)","thrown":"'thrown' in item.tags\n || (params.thrown && has(item.rangeNormal) && 'melee' in item.tags)","attributes":"item.attribute == 'str-dex' ? ['str', 'dex']\n : item.attribute == 'none' ? [] : [item.attribute]","burst":"params.burst && 'burst' in item.tags && self.loaded >= 3","nonlethal":"has(params.lethal) ? !params.lethal : 'nonlethal' in item.tags"}}]},{"id":"pick","kind":"branch","cases":[{"when":true,"flags":{"attribute":"has(params.attribute) && params.attribute in flags.attributes ? params.attribute\n : size(flags.attributes) == 0 ? ''\n : sortList(flags.attributes, -fieldOf('attributes.{attribute}.mod', x))[0]","skill":"flags.thrown ? max(skills.shoot.level, skills.stab.level, skills.exert.level)\n : fieldOf('skills.{skill}.level', item.skill)","ac":"'grenade' in item.tags ? 10\n : size(participants.target) > 0\n ? (flags.ranged ? participants.target[0].ac.ranged\n : participants.target[0].ac.melee)\n : has(params.targetAc) ? params.targetAc : -1","meleeAc":"size(participants.target) > 0 ? participants.target[0].ac.melee\n : has(params.targetAc) ? params.targetAc : -1","traumaTarget":"size(participants.target) > 0 ? participants.target[0].trauma.target\n : has(params.targetTrauma) ? params.targetTrauma : 6"}}]},{"id":"mod","kind":"branch","cases":[{"when":true,"flags":{"attrMod":"flags.attribute == '' ? 0 : fieldOf('attributes.{attribute}.mod', flags.attribute)","skillDamage":"'unarmed' in item.tags ? 0\n : flags.thrown ? max(combat.meleeSkillDamage, combat.rangedSkillDamage)\n : flags.ranged ? combat.rangedSkillDamage : combat.meleeSkillDamage","meleeHit":"!('unarmed' in item.tags) && (!flags.ranged || flags.thrown)\n ? combat.meleeHitBonus : 0"}}]},{"id":"hit","kind":"roll","tags":["attack",{"formula":"flags.ranged ? 'attack.ranged' : 'attack.melee'"},{"formula":"'skill.' + item.skill"}],"bands":"hit","parts":[{"dice":"1d20"},{"field":"'combat.attackBonus'"},{"value":"flags.attrMod","tags":["attack.attribute"]},{"value":"flags.skill >= 0 ? flags.skill : -2","tags":["attack.skill"]},{"value":"item.attackBonus","when":"item.attackBonus != 0"},{"value":"flags.meleeHit","when":"flags.meleeHit != 0"},{"value":2,"when":"flags.burst","tags":["attack.burst"]},{"value":"params.modifier","when":"has(params.modifier)"}]},{"id":"landed","kind":"branch","cases":[{"when":true,"flags":{"hit":"flags.ac < 0 || steps.hit.band == 'hit'","shock":"has(item.shockDamage) && item.shockDamage > 0 && !flags.ranged\n && (!has(item.shockAc) || flags.meleeAc < 0\n || min(flags.meleeAc, combat.shockAc) <= item.shockAc)\n ? max(0, item.shockDamage + flags.attrMod + item.shockBonus\n + combat.shockBonus + combat.damageBonus + flags.skillDamage)\n : 0"}}]},{"id":"damage","kind":"roll","when":"flags.hit","tags":["damage",{"formula":"flags.ranged ? 'damage.ranged' : 'damage.melee'"},{"formula":"'skill.' + item.skill"}],"parts":[{"dice":"item.damage"},{"value":"flags.attrMod","tags":["damage.attribute"]},{"value":2,"when":"flags.burst","tags":["damage.burst"]},{"value":"item.damageBonus","when":"item.damageBonus != 0"},{"value":"flags.skillDamage","when":"flags.skillDamage != 0","tags":["damage.skill"]},{"field":"'combat.damageBonus'"},{"value":"skills.punch.level","when":"'unarmed' in item.tags && skills.punch.level > 0","tags":["damage.punch"]}]},{"id":"trauma","kind":"roll","when":"flags.hit && has(item.traumaDie) && !flags.nonlethal","tags":["trauma"],"bands":"trauma","parts":[{"dice":"item.traumaDie"},{"value":"item.traumaDieBonus","when":"item.traumaDieBonus != 0"},{"field":"'combat.traumaBonus'"}]},{"id":"total","kind":"branch","cases":[{"when":"flags.hit","flags":{"traumatic":"has(steps.trauma) && steps.trauma.band == 'traumatic'","dealt":"max(0, max(steps.damage.total, flags.shock))\n * (has(steps.trauma) && steps.trauma.band == 'traumatic' ? item.traumaRating : 1)"}},{"when":true,"flags":{"traumatic":false,"dealt":"flags.shock"}}]},{"id":"bonusRoll","kind":"changes","when":"situational.bonusRoll != 'none' && arts.bonusRolls.used < arts.bonusRolls.max\n && (situational.bonusRoll == 'hit' || flags.hit)","changes":[{"type":"adjust","field":"arts.bonusRolls.used","by":1}]},{"id":"ammo","kind":"changes","when":"has(item.magazine)","changes":[{"type":"adjustState","entry":"self","key":"loaded","by":"flags.burst ? -3 : -1"}]},{"id":"deal","kind":"changes","when":"flags.dealt > 0","to":"target","changes":[{"type":"adjust","field":"hp.current","by":"-flags.dealt","tags":["damage","damage.weapon",{"formula":"flags.nonlethal ? ['damage.nonlethal'] : []"},{"formula":"flags.traumatic ? ['damage.traumatic'] : []"}]}]},{"id":"result","kind":"outcome","result":"flags.ac < 0 ? 'rolled' : flags.hit ? 'hit' : 'miss'","data":{"damage":"flags.dealt","traumatic":"flags.traumatic","shock":"flags.shock"}}]},{"id":"reload","tags":["reload"],"available":"has(item.magazine) && self.loaded < item.magazine","steps":[{"id":"fill","kind":"changes","changes":[{"type":"setState","entry":"self","key":"loaded","value":"item.magazine"}]}]}],"fields":{"soak.max":{"type":"integer","formula":"sumCopies(copy.fields.soak, copy.type == 'armor' && copy.equipped)"},"soak.current":{"type":"integer","formula":"sumCopies(copy.fields.soak - copy.state.soakUsed, copy.type == 'armor' && copy.equipped)"},"armor.heavy":{"type":"integer","formula":"sumCopies(copy.fields.heavy, copy.type == 'armor' && copy.equipped)"},"attributes.str.base":{"type":"integer","input":true,"default":10,"min":3,"max":18,"tags":["attribute-base","attr.str"]},"attributes.dex.base":{"type":"integer","input":true,"default":10,"min":3,"max":18,"tags":["attribute-base","attr.dex"]},"attributes.con.base":{"type":"integer","input":true,"default":10,"min":3,"max":18,"tags":["attribute-base","attr.con"]},"attributes.int.base":{"type":"integer","input":true,"default":10,"min":3,"max":18,"tags":["attribute-base","attr.int"]},"attributes.wis.base":{"type":"integer","input":true,"default":10,"min":3,"max":18,"tags":["attribute-base","attr.wis"]},"attributes.cha.base":{"type":"integer","input":true,"default":10,"min":3,"max":18,"tags":["attribute-base","attr.cha"]},"attributes.str.score":{"type":"integer","formula":"attributes.str.base","tags":["attribute","attr.str"]},"attributes.dex.score":{"type":"integer","formula":"attributes.dex.base","tags":["attribute","attr.dex"]},"attributes.con.score":{"type":"integer","formula":"attributes.con.base","tags":["attribute","attr.con"]},"attributes.int.score":{"type":"integer","formula":"attributes.int.base","tags":["attribute","attr.int"]},"attributes.wis.score":{"type":"integer","formula":"attributes.wis.base","tags":["attribute","attr.wis"]},"attributes.cha.score":{"type":"integer","formula":"attributes.cha.base","tags":["attribute","attr.cha"]},"attributes.str.scoreMod":{"type":"integer","tags":["attribute-score-mod","attr.str"],"formula":"attributes.str.score >= 18 ? 2 : attributes.str.score >= 14 ? 1\n : attributes.str.score >= 8 ? 0 : attributes.str.score >= 4 ? -1 : -2"},"attributes.dex.scoreMod":{"type":"integer","tags":["attribute-score-mod","attr.dex"],"formula":"attributes.dex.score >= 18 ? 2 : attributes.dex.score >= 14 ? 1\n : attributes.dex.score >= 8 ? 0 : attributes.dex.score >= 4 ? -1 : -2"},"attributes.con.scoreMod":{"type":"integer","tags":["attribute-score-mod","attr.con"],"formula":"attributes.con.score >= 18 ? 2 : attributes.con.score >= 14 ? 1\n : attributes.con.score >= 8 ? 0 : attributes.con.score >= 4 ? -1 : -2"},"attributes.int.scoreMod":{"type":"integer","tags":["attribute-score-mod","attr.int"],"formula":"attributes.int.score >= 18 ? 2 : attributes.int.score >= 14 ? 1\n : attributes.int.score >= 8 ? 0 : attributes.int.score >= 4 ? -1 : -2"},"attributes.wis.scoreMod":{"type":"integer","tags":["attribute-score-mod","attr.wis"],"formula":"attributes.wis.score >= 18 ? 2 : attributes.wis.score >= 14 ? 1\n : attributes.wis.score >= 8 ? 0 : attributes.wis.score >= 4 ? -1 : -2"},"attributes.cha.scoreMod":{"type":"integer","tags":["attribute-score-mod","attr.cha"],"formula":"attributes.cha.score >= 18 ? 2 : attributes.cha.score >= 14 ? 1\n : attributes.cha.score >= 8 ? 0 : attributes.cha.score >= 4 ? -1 : -2"},"attributes.str.modBonus":{"type":"integer","formula":"0","tags":["attribute-mod-bonus","attr.str"]},"attributes.dex.modBonus":{"type":"integer","formula":"0","tags":["attribute-mod-bonus","attr.dex"]},"attributes.con.modBonus":{"type":"integer","formula":"0","tags":["attribute-mod-bonus","attr.con"]},"attributes.int.modBonus":{"type":"integer","formula":"0","tags":["attribute-mod-bonus","attr.int"]},"attributes.wis.modBonus":{"type":"integer","formula":"0","tags":["attribute-mod-bonus","attr.wis"]},"attributes.cha.modBonus":{"type":"integer","formula":"0","tags":["attribute-mod-bonus","attr.cha"]},"attributes.str.modCap":{"type":"integer","formula":"2","tags":["attribute-mod-cap","attr.str"]},"attributes.dex.modCap":{"type":"integer","formula":"2","tags":["attribute-mod-cap","attr.dex"]},"attributes.con.modCap":{"type":"integer","formula":"2","tags":["attribute-mod-cap","attr.con"]},"attributes.int.modCap":{"type":"integer","formula":"2","tags":["attribute-mod-cap","attr.int"]},"attributes.wis.modCap":{"type":"integer","formula":"2","tags":["attribute-mod-cap","attr.wis"]},"attributes.cha.modCap":{"type":"integer","formula":"2","tags":["attribute-mod-cap","attr.cha"]},"attributes.str.mod":{"type":"integer","tags":["attribute-mod","attr.str"],"formula":"max(-3, min(max(attributes.str.modCap, attributes.str.scoreMod),\n attributes.str.scoreMod + attributes.str.modBonus))"},"attributes.dex.mod":{"type":"integer","tags":["attribute-mod","attr.dex"],"formula":"max(-3, min(max(attributes.dex.modCap, attributes.dex.scoreMod),\n attributes.dex.scoreMod + attributes.dex.modBonus))"},"attributes.con.mod":{"type":"integer","tags":["attribute-mod","attr.con"],"formula":"max(-3, min(max(attributes.con.modCap, attributes.con.scoreMod),\n attributes.con.scoreMod + attributes.con.modBonus))"},"attributes.int.mod":{"type":"integer","tags":["attribute-mod","attr.int"],"formula":"max(-3, min(max(attributes.int.modCap, attributes.int.scoreMod),\n attributes.int.scoreMod + attributes.int.modBonus))"},"attributes.wis.mod":{"type":"integer","tags":["attribute-mod","attr.wis"],"formula":"max(-3, min(max(attributes.wis.modCap, attributes.wis.scoreMod),\n attributes.wis.scoreMod + attributes.wis.modBonus))"},"attributes.cha.mod":{"type":"integer","tags":["attribute-mod","attr.cha"],"formula":"max(-3, min(max(attributes.cha.modCap, attributes.cha.scoreMod),\n attributes.cha.scoreMod + attributes.cha.modBonus))"},"attributes.modTotal":{"type":"integer","formula":"attributes.str.mod + attributes.dex.mod + attributes.con.mod + attributes.int.mod\n + attributes.wis.mod + attributes.cha.mod"},"campaign.magic":{"type":"boolean","input":true,"default":false},"campaign.alienation":{"type":"boolean","input":true,"default":false},"level":{"type":"integer","input":true,"default":1,"min":1,"max":10},"xp.current":{"type":"integer","input":true,"default":0,"min":0},"xp.track":{"type":"enum","values":["fast","slow"],"input":true,"default":"fast"},"xp.next":{"type":"integer","formula":"level >= 10 ? 0\n : (xp.track == 'fast' ? [0, 3, 6, 12, 18, 27, 39, 54, 72, 93]\n : [0, 6, 15, 24, 36, 51, 69, 87, 105, 139])[level]"},"hp.rolled":{"type":"integer","input":true,"default":1,"min":1},"hp.max":{"type":"integer","formula":"hp.rolled","min":1},"hp.current":{"type":"integer","input":true,"default":0,"min":0,"max":"hp.max"},"hp.frail":{"type":"boolean","input":true,"default":false},"saves.physical":{"type":"integer","tags":["save","save.physical"],"formula":"16 - level - max(attributes.str.mod, attributes.con.mod)"},"saves.evasion":{"type":"integer","tags":["save","save.evasion"],"formula":"16 - level - max(attributes.dex.mod, attributes.int.mod)"},"saves.mental":{"type":"integer","tags":["save","save.mental"],"formula":"16 - level - max(attributes.wis.mod, attributes.cha.mod)"},"saves.luck":{"type":"integer","tags":["save","save.luck"],"formula":"16 - level"},"combat.attackBonus":{"type":"integer","formula":"floor(level / 2)"},"combat.damageBonus":{"type":"integer","formula":"0"},"combat.traumaBonus":{"type":"integer","formula":"0"},"combat.initiative":{"type":"integer","formula":"attributes.dex.mod"},"combat.move":{"type":"integer","formula":"10"},"trauma.target":{"type":"integer","formula":"6"},"ac.ranged.base":{"type":"integer","formula":"10"},"ac.melee.base":{"type":"integer","formula":"10"},"ac.ranged":{"type":"integer","formula":"ac.ranged.base + attributes.dex.mod"},"ac.melee":{"type":"integer","formula":"ac.melee.base + attributes.dex.mod"},"money":{"type":"integer","input":true,"default":0,"min":0},"lifestyle":{"type":"enum","values":["squatter","slum","middle","fine","luxury"],"input":true,"default":"middle"},"lifestyle.strain":{"type":"integer","formula":"[-2, -1, 0, 1, 2][indexOf(['squatter', 'slum', 'middle', 'fine', 'luxury'], lifestyle)]"},"languages.extra":{"type":"integer","formula":"(skills.know.level >= 1 ? 2 : skills.know.level >= 0 ? 1 : 0)\n + (skills.connect.level >= 1 ? 2 : skills.connect.level >= 0 ? 1 : 0)"},"languages.known":{"type":"string","input":true,"default":""},"skillPoints.unspent":{"type":"integer","input":true,"default":0,"min":0},"advancement.attributeBoosts":{"type":"integer","input":true,"default":0,"min":0,"max":5},"underdog":{"type":"boolean","input":true,"default":false},"goal":{"type":"string","input":true,"default":""},"cyber.eyes":{"type":"boolean","formula":"countCopies(copy.type == 'cyberware' && 'cybereyes' in copy.tags) > 0"},"cyber.plugJack":{"type":"integer","formula":"0"},"cyber.plugWiring":{"type":"boolean","formula":"false"},"cyber.ears":{"type":"boolean","formula":"countCopies(copy.type == 'cyberware' && 'cyberears' in copy.tags) > 0"},"strain.cyber":{"type":"decimal","formula":"sumCopies(copy.fields.strain\n * ((copy.fields.eyeMod && cyber.eyes) || (copy.fields.earMod && cyber.ears) ? 0.5 : 1),\n copy.type == 'cyberware')"},"strain.cyberIgnored":{"type":"decimal","formula":"0"},"strain.maintenanceRelief":{"type":"integer","input":true,"default":0,"min":0,"max":2},"strain.otherPermanent":{"type":"decimal","input":true,"default":0,"min":0},"strain.permanent":{"type":"decimal","formula":"max(0, strain.cyber - strain.cyberIgnored - strain.maintenanceRelief) + strain.otherPermanent"},"strain.temporary":{"type":"integer","input":true,"default":0,"min":0},"strain.total":{"type":"decimal","formula":"strain.permanent + strain.temporary","limits":{"max":"strain.max"}},"strain.constitution":{"type":"integer","formula":"attributes.con.score"},"strain.max":{"type":"integer","formula":"strain.constitution + lifestyle.strain"},"cyber.wiredBudget":{"type":"integer","formula":"0"},"cyber.wiredUsed":{"type":"integer","formula":"sumCopies(copy.fields.cost, copy.type == 'cyberware' && copy.state.wired)"},"alienation.permanent":{"type":"integer","formula":"sumCopies(ceil(copy.fields.strain\n * ((copy.fields.eyeMod && cyber.eyes) || (copy.fields.earMod && cyber.ears) ? 0.5 : 1))\n + (copy.fields.category == 'nerve' ? 2 : 0), copy.type == 'cyberware')"},"alienation.current":{"type":"integer","input":true,"default":0,"min":0},"alienation.max":{"type":"integer","formula":"attributes.wis.score"},"alienation.total":{"type":"integer","formula":"max(alienation.permanent, alienation.current)","limits":{"max":"campaign.alienation ? alienation.max : 1000"}},"drones.attackBonus":{"type":"integer","formula":"combat.attackBonus + max(attributes.int.mod, attributes.dex.mod)\n + max(skills.drive.level, skills.program.level)"},"drones.commandable":{"type":"integer","formula":"1"},"edges.taken":{"type":"set","of":"edge"},"hp.dieBonus":{"type":"integer","formula":"0"},"skillPoints.perLevel":{"type":"integer","formula":"3"},"foci.allowed":{"type":"integer","formula":"1 + (level >= 2 ? 1 : 0) + (level >= 5 ? 1 : 0) + (level >= 7 ? 1 : 0) + (level >= 10 ? 1 : 0)"},"foci.taken":{"type":"integer","formula":"sumCopies(copy.state.level, copy.type == 'focus')"},"enc.readied":{"type":"integer","formula":"sumCopies(copy.fields.enc * copy.quantity,\n has(copy.fields.enc) && copy.equipped && !('worn' in copy.tags))","limits":{"max":"enc.readiedMax + 4"}},"enc.stowed":{"type":"integer","formula":"sumCopies(copy.fields.enc * copy.quantity, has(copy.fields.enc) && !copy.equipped)","limits":{"max":"enc.stowedMax + 8"}},"enc.readiedMax":{"type":"integer","formula":"floor(attributes.str.score / 2)"},"enc.stowedMax":{"type":"integer","formula":"attributes.str.score"},"enc.overload":{"type":"integer","formula":"min(2, max(0, max(ceil((enc.readied - enc.readiedMax) / 2),\n ceil((enc.stowed - enc.stowedMax) / 4))))"},"maintenance.multiplier":{"type":"integer","formula":"1"},"maintenance.fixBonus":{"type":"integer","formula":"0"},"maintenance.max":{"type":"integer","formula":"max(0, attributes.int.mod + attributes.con.mod\n + 3 * min(5, max(0, skills.fix.level + maintenance.fixBonus))) * maintenance.multiplier"},"maintenance.used":{"type":"integer","input":true,"default":0,"min":0},"budget.vehicle":{"type":"integer","formula":"0"},"budget.drone":{"type":"integer","formula":"0"},"budget.vehicleUsed":{"type":"integer","formula":"sumCopies(copy.fields.cost, copy.type == 'vehicle' && copy.state.focusGear)"},"budget.droneUsed":{"type":"integer","formula":"sumCopies(copy.fields.cost, copy.type == 'drone' && copy.state.focusGear)"},"hacking.deck.bonusAccess":{"type":"integer","formula":"0"},"hacking.memory.max":{"type":"integer","formula":"0"},"hacking.cpu":{"type":"integer","formula":"0"},"hacking.shielding.max":{"type":"integer","formula":"0"},"hacking.shielding.current":{"type":"integer","formula":"maxCopies(copy.fields.shielding - copy.state.shieldingUsed,\n copy.type == 'cyberdeck' && copy.equipped)"},"hacking.access.max":{"type":"integer","formula":"max(0, attributes.int.mod + skills.program.level + hacking.deck.bonusAccess)"},"hacking.access.spent":{"type":"integer","input":true,"default":0,"min":0},"hacking.access.current":{"type":"integer","formula":"max(0, hacking.access.max - hacking.access.spent)"},"hacking.datafiles":{"type":"integer","input":true,"default":0,"min":0},"hacking.memory.perElement":{"type":"decimal","formula":"1"},"hacking.memory.used":{"type":"integer","formula":"ceil(countCopies(copy.type == 'program') * hacking.memory.perElement) + hacking.datafiles","limits":{"max":"hacking.memory.max"}},"hacking.programming.max":{"type":"integer","formula":"skills.program.level >= 1 ? 2 * skills.program.level : 0"},"hacking.programming.used":{"type":"integer","formula":"countCopies(copy.type == 'program' && copy.state.source == 'written')","limits":{"max":"hacking.programming.max"}},"magic.mage":{"type":"boolean","formula":"false"},"magic.summoner":{"type":"boolean","formula":"false"},"magic.graced":{"type":"boolean","formula":"false"},"magic.cyberPenalty":{"type":"integer","formula":"ceil(sumCopies(max(1, copy.fields.strain), copy.type == 'cyberware'))"},"effort.mage.max":{"type":"integer","formula":"magic.mage ? max(1, max(attributes.int.mod, attributes.wis.mod) + skills.cast.level\n - magic.cyberPenalty) : 0"},"effort.mage.scene":{"type":"integer","input":true,"default":0,"min":0},"effort.mage.day":{"type":"integer","input":true,"default":0,"min":0},"effort.mage.current":{"type":"integer","formula":"max(0, effort.mage.max - effort.mage.scene - effort.mage.day)"},"spells.preparedMax":{"type":"integer","formula":"magic.mage ? max(0, ceil(level / 2) + skills.cast.level) : 0"},"spells.prepared":{"type":"integer","formula":"countCopies(copy.type == 'spell' && copy.state.prepared)","limits":{"max":"spells.preparedMax"}},"effort.summoner.max":{"type":"integer","formula":"magic.summoner ? max(1, max(attributes.con.mod, attributes.cha.mod) + skills.summon.level\n - magic.cyberPenalty) : 0"},"effort.summoner.scene":{"type":"integer","input":true,"default":0,"min":0},"effort.summoner.day":{"type":"integer","input":true,"default":0,"min":0},"effort.summoner.current":{"type":"integer","formula":"max(0, effort.summoner.max - effort.summoner.scene - effort.summoner.day)"},"arts.points":{"type":"integer","formula":"magic.graced ? max(0, [2, 3, 4, 6, 6, 7, 7, 9, 10, 11][level - 1]\n - (countCopies(copy.type == 'cyberware') > 0 ? magic.cyberPenalty : 0)) : 0"},"arts.spent":{"type":"integer","formula":"sumCopies(copy.fields.cost, copy.type == 'art')","limits":{"max":"arts.points"}},"arts.bonusRolls.max":{"type":"integer","formula":0},"arts.bonusRolls.used":{"type":"integer","input":true,"default":0,"min":0,"max":"max(0, arts.bonusRolls.max)"},"skills.administer.base":{"type":"integer","input":true,"default":-1,"min":-1,"max":4,"tags":["skill-base","skill.administer"]},"skills.connect.base":{"type":"integer","input":true,"default":-1,"min":-1,"max":4,"tags":["skill-base","skill.connect"]},"skills.drive.base":{"type":"integer","input":true,"default":-1,"min":-1,"max":4,"tags":["skill-base","skill.drive"]},"skills.exert.base":{"type":"integer","input":true,"default":-1,"min":-1,"max":4,"tags":["skill-base","skill.exert"]},"skills.fix.base":{"type":"integer","input":true,"default":-1,"min":-1,"max":4,"tags":["skill-base","skill.fix"]},"skills.heal.base":{"type":"integer","input":true,"default":-1,"min":-1,"max":4,"tags":["skill-base","skill.heal"]},"skills.know.base":{"type":"integer","input":true,"default":-1,"min":-1,"max":4,"tags":["skill-base","skill.know"]},"skills.lead.base":{"type":"integer","input":true,"default":-1,"min":-1,"max":4,"tags":["skill-base","skill.lead"]},"skills.notice.base":{"type":"integer","input":true,"default":-1,"min":-1,"max":4,"tags":["skill-base","skill.notice"]},"skills.perform.base":{"type":"integer","input":true,"default":-1,"min":-1,"max":4,"tags":["skill-base","skill.perform"]},"skills.program.base":{"type":"integer","input":true,"default":-1,"min":-1,"max":4,"tags":["skill-base","skill.program"]},"skills.punch.base":{"type":"integer","input":true,"default":-1,"min":-1,"max":4,"tags":["skill-base","skill.punch"]},"skills.shoot.base":{"type":"integer","input":true,"default":-1,"min":-1,"max":4,"tags":["skill-base","skill.shoot"]},"skills.sneak.base":{"type":"integer","input":true,"default":-1,"min":-1,"max":4,"tags":["skill-base","skill.sneak"]},"skills.stab.base":{"type":"integer","input":true,"default":-1,"min":-1,"max":4,"tags":["skill-base","skill.stab"]},"skills.survive.base":{"type":"integer","input":true,"default":-1,"min":-1,"max":4,"tags":["skill-base","skill.survive"]},"skills.talk.base":{"type":"integer","input":true,"default":-1,"min":-1,"max":4,"tags":["skill-base","skill.talk"]},"skills.trade.base":{"type":"integer","input":true,"default":-1,"min":-1,"max":4,"tags":["skill-base","skill.trade"]},"skills.work.base":{"type":"integer","input":true,"default":-1,"min":-1,"max":4,"tags":["skill-base","skill.work"]},"skills.cast.base":{"type":"integer","input":true,"default":-1,"min":-1,"max":4,"tags":["skill-base","skill.cast"]},"skills.summon.base":{"type":"integer","input":true,"default":-1,"min":-1,"max":4,"tags":["skill-base","skill.summon"]},"skills.administer.credit":{"type":"integer","input":true,"default":0,"min":0,"max":4},"skills.connect.credit":{"type":"integer","input":true,"default":0,"min":0,"max":4},"skills.drive.credit":{"type":"integer","input":true,"default":0,"min":0,"max":4},"skills.exert.credit":{"type":"integer","input":true,"default":0,"min":0,"max":4},"skills.fix.credit":{"type":"integer","input":true,"default":0,"min":0,"max":4},"skills.heal.credit":{"type":"integer","input":true,"default":0,"min":0,"max":4},"skills.know.credit":{"type":"integer","input":true,"default":0,"min":0,"max":4},"skills.lead.credit":{"type":"integer","input":true,"default":0,"min":0,"max":4},"skills.notice.credit":{"type":"integer","input":true,"default":0,"min":0,"max":4},"skills.perform.credit":{"type":"integer","input":true,"default":0,"min":0,"max":4},"skills.program.credit":{"type":"integer","input":true,"default":0,"min":0,"max":4},"skills.punch.credit":{"type":"integer","input":true,"default":0,"min":0,"max":4},"skills.shoot.credit":{"type":"integer","input":true,"default":0,"min":0,"max":4},"skills.sneak.credit":{"type":"integer","input":true,"default":0,"min":0,"max":4},"skills.stab.credit":{"type":"integer","input":true,"default":0,"min":0,"max":4},"skills.survive.credit":{"type":"integer","input":true,"default":0,"min":0,"max":4},"skills.talk.credit":{"type":"integer","input":true,"default":0,"min":0,"max":4},"skills.trade.credit":{"type":"integer","input":true,"default":0,"min":0,"max":4},"skills.work.credit":{"type":"integer","input":true,"default":0,"min":0,"max":4},"skills.cast.credit":{"type":"integer","input":true,"default":0,"min":0,"max":4},"skills.summon.credit":{"type":"integer","input":true,"default":0,"min":0,"max":4},"skills.administer.level":{"type":"integer","formula":"skills.administer.base","tags":["skill","skill.administer"]},"skills.connect.level":{"type":"integer","formula":"skills.connect.base","tags":["skill","skill.connect"]},"skills.drive.level":{"type":"integer","formula":"skills.drive.base","tags":["skill","skill.drive"]},"skills.exert.level":{"type":"integer","formula":"skills.exert.base","tags":["skill","skill.exert"]},"skills.fix.level":{"type":"integer","formula":"skills.fix.base","tags":["skill","skill.fix"]},"skills.heal.level":{"type":"integer","formula":"skills.heal.base","tags":["skill","skill.heal"]},"skills.know.level":{"type":"integer","formula":"skills.know.base","tags":["skill","skill.know"]},"skills.lead.level":{"type":"integer","formula":"skills.lead.base","tags":["skill","skill.lead"]},"skills.notice.level":{"type":"integer","formula":"skills.notice.base","tags":["skill","skill.notice"]},"skills.perform.level":{"type":"integer","formula":"skills.perform.base","tags":["skill","skill.perform"]},"skills.program.level":{"type":"integer","formula":"skills.program.base","tags":["skill","skill.program"]},"skills.punch.level":{"type":"integer","formula":"skills.punch.base","tags":["skill","skill.punch"]},"skills.shoot.level":{"type":"integer","formula":"skills.shoot.base","tags":["skill","skill.shoot"]},"skills.sneak.level":{"type":"integer","formula":"skills.sneak.base","tags":["skill","skill.sneak"]},"skills.stab.level":{"type":"integer","formula":"skills.stab.base","tags":["skill","skill.stab"]},"skills.survive.level":{"type":"integer","formula":"skills.survive.base","tags":["skill","skill.survive"]},"skills.talk.level":{"type":"integer","formula":"skills.talk.base","tags":["skill","skill.talk"]},"skills.trade.level":{"type":"integer","formula":"skills.trade.base","tags":["skill","skill.trade"]},"skills.work.level":{"type":"integer","formula":"skills.work.base","tags":["skill","skill.work"]},"skills.cast.level":{"type":"integer","formula":"skills.cast.base","tags":["skill","skill.cast"]},"skills.summon.level":{"type":"integer","formula":"skills.summon.base","tags":["skill","skill.summon"]},"skills.work.profession":{"type":"string","input":true,"default":""},"combat.shockAc":{"type":"integer","formula":"99"},"combat.shockBonus":{"type":"integer","formula":"0"},"combat.meleeSkillDamage":{"type":"integer","formula":"0"},"combat.rangedSkillDamage":{"type":"integer","formula":"0"},"combat.meleeHitBonus":{"type":"integer","formula":"0"}},"contentTypes":{"armor":{"carried":true,"equippable":true,"fields":{"cost":{"type":"integer","default":0,"min":0},"enc":{"type":"integer","min":0},"kind":{"type":"enum","values":["clothing","suit","shield"],"required":true},"rangedAc":{"type":"integer","required":true},"meleeAc":{"type":"integer","required":true},"soak":{"type":"integer","default":0,"min":0},"traumaMod":{"type":"integer","default":0},"heavy":{"type":"integer","default":0,"min":0},"obvious":{"type":"boolean","default":false}},"state":{"soakUsed":{"type":"integer","default":0,"min":0}},"effects":[{"id":"ranged-ac","target":"ac.ranged.base","op":"set","value":"item.rangedAc","when":"self.equipped && item.kind != 'shield'"},{"id":"melee-ac","target":"ac.melee.base","op":"set","value":"item.meleeAc","when":"self.equipped && item.kind != 'shield'"},{"id":"shield-ranged","target":"ac.ranged","op":"add","value":"item.rangedAc","when":"self.equipped && item.kind == 'shield'"},{"id":"shield-melee","target":"ac.melee","op":"add","value":"item.meleeAc","when":"self.equipped && item.kind == 'shield'"},{"id":"trauma","target":"trauma.target","op":"add","value":"item.traumaMod","when":"self.equipped && item.traumaMod != 0"},{"id":"soak","target":{"incoming":{"fields":["hp.current"],"tags":["damage"]}},"op":"add","value":"min(item.soak - self.soakUsed, -incoming.amount)","when":"self.equipped && item.soak > self.soakUsed && incoming.amount < 0\n && !('damage.cyberspace' in incoming.tags) && !('damage.direct' in incoming.tags)","then":[{"type":"adjustState","entry":"self","key":"soakUsed","by":"min(item.soak - self.soakUsed, -incoming.amount)"}]}]},"background":{"copies":{"max":0},"fields":{"freeSkill":{"type":"enum","required":true,"values":["administer","connect","drive","exert","fix","heal","know","lead","notice","perform","program","punch","shoot","sneak","stab","survive","talk","trade","work","combat"]},"growth1":{"type":"enum","required":true,"values":["administer","connect","drive","exert","fix","heal","know","lead","notice","perform","program","punch","shoot","sneak","stab","survive","talk","trade","work","combat","any","any-stat-1","physical-2","mental-2"]},"growth2":{"type":"enum","required":true,"values":["administer","connect","drive","exert","fix","heal","know","lead","notice","perform","program","punch","shoot","sneak","stab","survive","talk","trade","work","combat","any","any-stat-1","physical-2","mental-2"]},"growth3":{"type":"enum","required":true,"values":["administer","connect","drive","exert","fix","heal","know","lead","notice","perform","program","punch","shoot","sneak","stab","survive","talk","trade","work","combat","any","any-stat-1","physical-2","mental-2"]},"growth4":{"type":"enum","required":true,"values":["administer","connect","drive","exert","fix","heal","know","lead","notice","perform","program","punch","shoot","sneak","stab","survive","talk","trade","work","combat","any","any-stat-1","physical-2","mental-2"]},"growth5":{"type":"enum","required":true,"values":["administer","connect","drive","exert","fix","heal","know","lead","notice","perform","program","punch","shoot","sneak","stab","survive","talk","trade","work","combat","any","any-stat-1","physical-2","mental-2"]},"growth6":{"type":"enum","required":true,"values":["administer","connect","drive","exert","fix","heal","know","lead","notice","perform","program","punch","shoot","sneak","stab","survive","talk","trade","work","combat","any","any-stat-1","physical-2","mental-2"]},"learning1":{"type":"enum","required":true,"values":["administer","connect","drive","exert","fix","heal","know","lead","notice","perform","program","punch","shoot","sneak","stab","survive","talk","trade","work","combat","any"]},"learning2":{"type":"enum","required":true,"values":["administer","connect","drive","exert","fix","heal","know","lead","notice","perform","program","punch","shoot","sneak","stab","survive","talk","trade","work","combat","any"]},"learning3":{"type":"enum","required":true,"values":["administer","connect","drive","exert","fix","heal","know","lead","notice","perform","program","punch","shoot","sneak","stab","survive","talk","trade","work","combat","any"]},"learning4":{"type":"enum","required":true,"values":["administer","connect","drive","exert","fix","heal","know","lead","notice","perform","program","punch","shoot","sneak","stab","survive","talk","trade","work","combat","any"]},"learning5":{"type":"enum","required":true,"values":["administer","connect","drive","exert","fix","heal","know","lead","notice","perform","program","punch","shoot","sneak","stab","survive","talk","trade","work","combat","any"]},"learning6":{"type":"enum","required":true,"values":["administer","connect","drive","exert","fix","heal","know","lead","notice","perform","program","punch","shoot","sneak","stab","survive","talk","trade","work","combat","any"]},"learning7":{"type":"enum","required":true,"values":["administer","connect","drive","exert","fix","heal","know","lead","notice","perform","program","punch","shoot","sneak","stab","survive","talk","trade","work","combat","any"]},"learning8":{"type":"enum","required":true,"values":["administer","connect","drive","exert","fix","heal","know","lead","notice","perform","program","punch","shoot","sneak","stab","survive","talk","trade","work","combat","any"]}}},"contact":{"nameFrom":"label","state":{"label":{"type":"string","default":""},"bond":{"type":"enum","values":["acquaintance","friend"],"default":"acquaintance"},"about":{"type":"string","default":""}}},"cyberware":{"fields":{"cost":{"type":"integer","default":0,"min":0},"category":{"type":"enum","values":["body","head","skin","limb","sensory","medical","nerve"],"required":true},"concealment":{"type":"enum","values":["medical","touch","sight"],"required":true},"strain":{"type":"decimal","default":0,"min":0},"eyeMod":{"type":"boolean","default":false},"earMod":{"type":"boolean","default":false},"triggerStrain":{"type":"integer","min":1},"baseAc":{"type":"integer"},"traumaMod":{"type":"integer","default":0}},"state":{"damaged":{"type":"boolean","default":false},"wired":{"type":"boolean","default":false}},"effects":[{"id":"ranged-ac","target":"ac.ranged.base","op":"set","value":"item.baseAc","when":"has(item.baseAc) && !self.damaged"},{"id":"melee-ac","target":"ac.melee.base","op":"set","value":"item.baseAc","when":"has(item.baseAc) && !self.damaged"},{"id":"trauma","target":"trauma.target","op":"add","value":"item.traumaMod","when":"item.traumaMod != 0 && !self.damaged"}],"actions":[{"use":"trigger-cyber"}]},"skillplug":{"carried":true,"equippable":true,"fields":{"cost":{"type":"integer","default":0,"min":0},"plugLevel":{"type":"integer","required":true,"min":0,"max":3}}},"syndrome":{"fields":{"alienation":{"type":"integer","required":true,"min":0}},"effects":[{"id":"allowance","target":"alienation.max","op":"add","value":"item.alienation"}]},"drone":{"carried":true,"equippable":true,"fields":{"cost":{"type":"integer","default":0,"min":0},"enc":{"type":"integer","min":0},"ac":{"type":"integer","required":true},"traumaTarget":{"type":"integer","required":true},"hp":{"type":"integer","required":true,"min":1},"fittings":{"type":"integer","default":0,"min":0},"fittingsUsed":{"type":"integer","default":0,"min":0},"move":{"type":"integer","required":true,"min":0},"moveKind":{"type":"enum","values":["ground","fly","swim"],"required":true},"hardpoints":{"type":"integer","default":0,"min":0}},"state":{"hp":{"type":"integer","default":"item.hp","min":0,"max":"item.hp"},"focusGear":{"type":"boolean","default":false}}},"edge":{"copies":{"max":0},"fields":{"bonusSkill":{"type":"enum","values":["administer","connect","drive","exert","fix","heal","know","lead","notice","perform","program","punch","shoot","sneak","stab","survive","talk","trade","work","cast","summon","combat","any"]},"magic":{"type":"boolean","default":false},"startingItems":{"type":"set","of":"string","default":[]},"startingCyber":{"type":"set","of":"string","default":[]},"startingCyberStrain":{"type":"decimal","default":0,"min":0},"programElements":{"type":"integer","default":0,"min":0},"cyberBudget":{"type":"integer","default":0,"min":0},"spells":{"type":"integer","default":0,"min":0},"extraFocus":{"type":"boolean","default":false},"friendContacts":{"type":"integer","default":0,"min":0},"buysArts":{"type":"boolean","default":false},"asksAttribute":{"type":"boolean","default":false}},"effects":[{"id":"taken","target":"edges.taken","op":"grant","value":{"formula":"item.id"}}]},"focus":{"fields":{"maxLevel":{"type":"integer","default":2,"min":1,"max":2},"bonusSkill":{"type":"enum","values":["administer","connect","drive","exert","fix","heal","know","lead","notice","perform","program","punch","shoot","sneak","stab","survive","talk","trade","work","combat","any","punch-stab","noncombat"]},"bonusSkill2":{"type":"enum","values":["administer","connect","drive","exert","fix","heal","know","lead","notice","perform","program","punch","shoot","sneak","stab","survive","talk","trade","work"]},"levelTwoSkill":{"type":"enum","values":["administer","connect","drive","exert","fix","heal","know","lead","notice","perform","program","punch","shoot","sneak","stab","survive","talk","trade","work"]},"startingItems":{"type":"set","of":"string","default":[]},"startingCyber":{"type":"set","of":"string","default":[]},"startingCyberStrain":{"type":"decimal","default":0,"min":0},"gearBudget":{"type":"enum","values":["vehicle","drone"]}},"state":{"level":{"type":"integer","default":1,"min":1,"max":"item.maxLevel"}}},"gear":{"carried":true,"equippable":true,"fields":{"cost":{"type":"integer","default":0,"min":0},"enc":{"type":"integer","min":0}}},"drug":{"carried":true,"fields":{"cost":{"type":"integer","default":0,"min":0},"enc":{"type":"integer","default":1,"min":0},"minHeal":{"type":"integer","min":0},"strain":{"type":"integer","default":0,"min":0},"healDice":{"type":"dice"}},"actions":[{"use":"use-drug"}]},"cyberdeck":{"carried":true,"equippable":true,"fields":{"cost":{"type":"integer","default":0,"min":0},"enc":{"type":"integer","min":0},"bonusAccess":{"type":"integer","default":0},"memory":{"type":"integer","default":0,"min":0},"shielding":{"type":"integer","default":0,"min":0},"cpu":{"type":"integer","default":0,"min":0}},"state":{"shieldingUsed":{"type":"integer","default":0,"min":0}},"effects":[{"id":"access","target":"hacking.deck.bonusAccess","op":"set","value":"item.bonusAccess"},{"id":"memory","target":"hacking.memory.max","op":"set","value":"item.memory"},{"id":"cpu","target":"hacking.cpu","op":"set","value":"item.cpu"},{"id":"shielding","target":"hacking.shielding.max","op":"set","value":"item.shielding"},{"id":"shield","target":{"incoming":{"fields":["hp.current"],"tags":["damage.cyberspace"]}},"op":"add","value":"min(item.shielding - self.shieldingUsed, -incoming.amount)","when":"self.equipped && item.shielding > self.shieldingUsed && incoming.amount < 0","then":[{"type":"adjustState","entry":"self","key":"shieldingUsed","by":"min(item.shielding - self.shieldingUsed, -incoming.amount)"}]}]},"program":{"carried":true,"fields":{"cost":{"type":"integer","default":0,"min":0},"kind":{"type":"enum","values":["verb","subject"],"required":true},"targets":{"type":"set","of":"string","default":[]},"accessCost":{"type":"integer","default":1,"min":0},"checkMod":{"type":"integer","default":0},"subjectType":{"type":"enum","values":["avatar","data","device","cyber","program"]}},"state":{"source":{"type":"enum","values":["bought","written","edge"],"default":"bought"}},"actions":[{"use":"run-program"}]},"spell":{"fields":{"effort":{"type":"enum","values":["day","scene","either","none"],"required":true},"duration":{"type":"enum","values":["instant","scene","concentration","rounds"],"required":true}},"state":{"prepared":{"type":"boolean","default":false}},"actions":[{"use":"cast-spell"}]},"art":{"fields":{"cost":{"type":"integer","required":true,"min":1}}},"spirit":{"nameFrom":"label","state":{"label":{"type":"string","default":""},"form":{"type":"enum","values":["spirit-1","spirit-2","spirit-3","physical-1","physical-2","physical-3"],"default":"spirit-1"},"ritual":{"type":"boolean","default":true}},"computed":{"cost":{"type":"integer","formula":"max(1, size(picksOf('powers')) - (self.ritual ? 1 : 0) - max(0, skills.summon.level))"}},"actions":[{"use":"summon-spirit"}]},"spiritPower":{"copies":{"max":0},"fields":{"minLevel":{"type":"integer","default":1,"min":1},"physicalOnly":{"type":"boolean","default":false}}},"vehicle":{"carried":true,"fields":{"cost":{"type":"integer","default":0,"min":0},"speed":{"type":"integer","required":true},"armor":{"type":"integer","default":0,"min":0},"traumaTarget":{"type":"integer","required":true},"ac":{"type":"integer","required":true},"hp":{"type":"integer","required":true,"min":1},"crew":{"type":"integer","required":true,"min":1},"power":{"type":"integer","required":true,"min":0},"mass":{"type":"integer","required":true,"min":0},"powerUsed":{"type":"integer","default":0,"min":0},"massUsed":{"type":"integer","default":0,"min":0},"size":{"type":"enum","values":["small","medium","large"],"required":true},"hardpoints":{"type":"integer","default":0,"min":0}},"state":{"hp":{"type":"integer","default":"item.hp","min":0,"max":"item.hp"},"focusGear":{"type":"boolean","default":false}}},"weapon":{"carried":true,"equippable":true,"fields":{"cost":{"type":"integer","default":0,"min":0},"enc":{"type":"integer","min":0},"damage":{"type":"dice","required":true},"skill":{"type":"enum","values":["shoot","stab","punch"],"required":true},"attribute":{"type":"enum","values":["str","dex","str-dex","wis","none"],"required":true},"rangeNormal":{"type":"integer","min":0},"rangeLong":{"type":"integer","min":0},"magazine":{"type":"integer","min":1},"shockDamage":{"type":"integer","min":0},"shockAc":{"type":"integer","min":0},"traumaDie":{"type":"dice"},"traumaRating":{"type":"integer","min":1},"attackBonus":{"type":"integer","default":0},"damageBonus":{"type":"integer","default":0},"shockBonus":{"type":"integer","default":0},"traumaDieBonus":{"type":"integer","default":0}},"state":{"loaded":{"type":"integer","default":"has(item.magazine) ? item.magazine : 0","min":0,"max":"has(item.magazine) ? item.magazine : 0"}},"actions":[{"use":"attack"},{"use":"reload"}]}},"effects":[{"id":"heavy-armor","target":{"rolls":["skill.sneak","skill.exert"]},"op":"add","value":"-armor.heavy","when":"armor.heavy > 0","tags":["armor.heavy"]},{"id":"overload","target":"combat.move","op":"add","value":"-[0, 3, 5][enc.overload]","when":"enc.overload > 0"}],"families":{"attribute":["str","dex","con","int","wis","cha"],"growthRoll":[1,2,3,4,5,6],"learningRoll":[1,2,3,4,5,6,7,8],"save":["physical","evasion","mental","luck"],"skill":["administer","connect","drive","exert","fix","heal","know","lead","notice","perform","program","punch","shoot","sneak","stab","survive","talk","trade","work","cast","summon"]},"choices":[{"id":"background","from":{"type":"background"}},{"id":"edge","slots":[1,2,5],"unique":"edges","when":"slot < 5 || level >= 5","from":{"type":"edge"},"eligible":"(campaign.magic || !item.magic) && (slot < 5 || !item.magic)"},{"id":"underdog-edge","unique":"edges","when":"underdog","from":{"type":"edge"},"eligible":"!item.magic"}],"followUps":[{"id":"level-up","while":"!character.creating && level < 10 && xp.current >= xp.next","action":"level-up"},{"id":"gain-focus","while":"!character.creating && foci.taken < foci.allowed","action":"gain-focus"}],"constraints":[{"id":"underdog-modifiers","check":"!character.creating || !underdog || attributes.modTotal <= -1"},{"id":"underdog-boosts","check":"!underdog || advancement.attributeBoosts == 0"},{"id":"wired-budget","check":"cyber.wiredUsed <= cyber.wiredBudget"},{"id":"drone-fittings","copies":{"type":"drone"},"check":"item.fittingsUsed <= item.fittings"},{"id":"foci-allowed","check":"foci.taken <= foci.allowed"},{"id":"focus-once","copies":{"type":"focus","where":"!('repeatable' in item.tags)"},"check":"countCopies(copy.item == item.id) <= 1"},{"id":"vehicle-budget","check":"budget.vehicleUsed <= budget.vehicle"},{"id":"drone-budget","check":"budget.droneUsed <= budget.drone"},{"id":"creation-skill-cap","check":"!character.creating || maxList(keysOf('skill'), fieldOf('skills.{skill}.base', x)) <= 1"},{"id":"vehicle-power-mass","copies":{"type":"vehicle"},"check":"item.powerUsed <= item.power && item.massUsed <= item.mass"}],"settings":{"stacking":{"keys":{"skill-dice":"highestOnly"}}},"resultBands":{"check":[{"id":"success","when":"roll.total >= flags.dc"},{"id":"failure","when":true}],"save":[{"id":"failure","when":"roll.kept[0] == 1"},{"id":"success","when":"roll.kept[0] == 20 || roll.total >= flags.target"},{"id":"failure","when":true}],"major-injury":[{"id":"death","when":"roll.total <= 1"},{"id":"internal","when":"roll.total == 2"},{"id":"brain","when":"roll.total == 3"},{"id":"eye","when":"roll.total == 4"},{"id":"gut","when":"roll.total == 5"},{"id":"right-leg","when":"roll.total == 6"},{"id":"left-leg","when":"roll.total == 7"},{"id":"right-arm","when":"roll.total == 8"},{"id":"left-arm","when":"roll.total == 9"},{"id":"system","when":"roll.total == 10"},{"id":"flesh-wound","when":true}],"overcast":[{"id":"death","when":"roll.total <= 1"},{"id":"mortal","when":"roll.total <= 4"},{"id":"unconscious","when":"roll.total <= 8"},{"id":"stunned","when":"roll.total <= 15"},{"id":"dazed","when":"roll.total <= 19"},{"id":"strained","when":true}],"skill-level":[{"id":"untrained","when":"roll.total < 0"},{"id":"level-0","when":"roll.total == 0"},{"id":"level-1","when":"roll.total == 1"},{"id":"level-2","when":"roll.total == 2"},{"id":"level-3","when":"roll.total == 3"},{"id":"level-4","when":true}],"hit":[{"id":"hit","when":"roll.total >= flags.ac"},{"id":"miss","when":true}],"trauma":[{"id":"traumatic","when":"roll.total >= flags.traumaTarget"},{"id":"none","when":true}]},"creation":[{"id":"guided","action":"create-character"},{"id":"random","action":"create-character","params":{"random":true},"random":true}],"display":{"groups":[{"id":"summary","priority":0,"visibility":"primary"},{"id":"attributes","priority":0,"members":{"type":"field","where":"'attribute' in item.tags"}},{"id":"skills","priority":0,"members":{"type":"field","where":"'skill' in item.tags"}},{"id":"saves","priority":1,"members":{"type":"field","where":"'save' in item.tags"}},{"id":"combat","priority":1},{"id":"strain","priority":1},{"id":"hacking","priority":2,"showWhen":"skills.program.base >= 0 || hacking.memory.max > 0 || hacking.cpu > 0"},{"id":"magic","priority":2,"showWhen":"magic.mage || magic.summoner || magic.graced"},{"id":"alienation","priority":2,"showWhen":"campaign.alienation"},{"id":"possessions","priority":2},{"id":"advancement","priority":3},{"id":"training","priority":3,"visibility":"background"},{"id":"campaign","priority":4,"visibility":"background"},{"id":"checks","kind":"actions","priority":0,"members":{"type":"action","where":"'check' in item.tags || 'save' in item.tags"}},{"id":"attacks","kind":"actions","priority":0,"members":{"type":"action","where":"'attack' in item.tags || 'reload' in item.tags"}},{"id":"combat-actions","kind":"actions","priority":1,"members":{"type":"action","where":"'initiative' in item.tags || 'healing' in item.tags || 'injury' in item.tags\n || 'drug' in item.tags || 'cyber' in item.tags"}},{"id":"hacking-actions","kind":"actions","priority":1,"members":{"type":"action","where":"'hacking' in item.tags"}},{"id":"magic-actions","kind":"actions","priority":1,"members":{"type":"action","where":"'magic' in item.tags"}},{"id":"rests","kind":"actions","priority":2,"members":{"type":"action","where":"'rest' in item.tags"}},{"id":"advancement-actions","kind":"actions","priority":3,"visibility":"background","members":{"type":"action","where":"'advancement' in item.tags"}},{"id":"creation","kind":"actions","priority":3,"visibility":"background","members":{"type":"action","where":"'creation' in item.tags || 'building' in item.tags"}},{"id":"background","kind":"content","priority":0,"showWhen":"hasChoice('background')","members":{"type":"background"}},{"id":"edges","kind":"content","priority":0,"showWhen":"hasChoice('edge')","members":{"type":"edge"}},{"id":"foci","kind":"content","priority":0,"members":{"type":"focus"}},{"id":"contacts","kind":"content","priority":1,"members":{"type":"contact"},"sortBy":"self.bond == 'friend' ? 0 : 1"},{"id":"weapons","kind":"content","priority":1,"members":{"type":"weapon"}},{"id":"armor","kind":"content","priority":1,"members":{"type":"armor"}},{"id":"cyberware","kind":"content","priority":1,"members":{"type":"cyberware"},"sectionBy":"item.category"},{"id":"skillplugs","kind":"content","priority":2,"members":{"type":"skillplug"}},{"id":"gear","kind":"content","priority":2,"members":{"type":"gear"}},{"id":"drugs","kind":"content","priority":2,"members":{"type":"drug"}},{"id":"cyberdecks","kind":"content","priority":2,"members":{"type":"cyberdeck"}},{"id":"programs","kind":"content","priority":2,"members":{"type":"program"},"sectionBy":"item.kind"},{"id":"drones","kind":"content","priority":2,"members":{"type":"drone"}},{"id":"vehicles","kind":"content","priority":2,"members":{"type":"vehicle"}},{"id":"spells","kind":"content","priority":2,"showWhen":"magic.mage","members":{"type":"spell"},"sortBy":"self.prepared ? 0 : 1"},{"id":"arts","kind":"content","priority":2,"showWhen":"magic.graced","members":{"type":"art"}},{"id":"spirits","kind":"content","priority":2,"showWhen":"magic.summoner","members":{"type":"spirit"}},{"id":"syndromes","kind":"content","priority":2,"showWhen":"campaign.alienation","members":{"type":"syndrome"}}],"fields":{"level":{"groups":["summary","advancement"],"priority":0},"hp.current":{"groups":["summary"],"priority":1,"input":{"widget":"number"},"with":[{"field":"hp.max","as":"max"}]},"strain.total":{"groups":["summary","strain"],"priority":2,"with":[{"field":"strain.max","as":"max"}]},"ac.ranged":{"groups":["summary","combat"],"priority":3},"ac.melee":{"groups":["summary","combat"],"priority":4},"combat.attackBonus":{"groups":["summary","combat"],"priority":5,"format":"signed"},"trauma.target":{"groups":["summary","combat"],"priority":6},"soak.current":{"groups":["summary","combat"],"priority":7,"showWhen":"soak.max > 0","with":[{"field":"soak.max","as":"max"}]},"attributes.str.score":{"priority":0,"with":[{"field":"attributes.str.mod","as":"modifier"}]},"attributes.dex.score":{"priority":0,"with":[{"field":"attributes.dex.mod","as":"modifier"}]},"attributes.con.score":{"priority":0,"with":[{"field":"attributes.con.mod","as":"modifier"}]},"attributes.int.score":{"priority":0,"with":[{"field":"attributes.int.mod","as":"modifier"}]},"attributes.wis.score":{"priority":0,"with":[{"field":"attributes.wis.mod","as":"modifier"}]},"attributes.cha.score":{"priority":0,"with":[{"field":"attributes.cha.mod","as":"modifier"}]},"attributes.str.mod":{"format":"signed","visibility":"background"},"attributes.dex.mod":{"format":"signed","visibility":"background"},"attributes.con.mod":{"format":"signed","visibility":"background"},"attributes.int.mod":{"format":"signed","visibility":"background"},"attributes.wis.mod":{"format":"signed","visibility":"background"},"attributes.cha.mod":{"format":"signed","visibility":"background"},"attributes.str.base":{"groups":["training"],"priority":0},"attributes.dex.base":{"groups":["training"],"priority":0},"attributes.con.base":{"groups":["training"],"priority":0},"attributes.int.base":{"groups":["training"],"priority":0},"attributes.wis.base":{"groups":["training"],"priority":0},"attributes.cha.base":{"groups":["training"],"priority":0},"attributes.str.scoreMod":{"hidden":true},"attributes.dex.scoreMod":{"hidden":true},"attributes.con.scoreMod":{"hidden":true},"attributes.int.scoreMod":{"hidden":true},"attributes.wis.scoreMod":{"hidden":true},"attributes.cha.scoreMod":{"hidden":true},"attributes.str.modBonus":{"hidden":true},"attributes.dex.modBonus":{"hidden":true},"attributes.con.modBonus":{"hidden":true},"attributes.int.modBonus":{"hidden":true},"attributes.wis.modBonus":{"hidden":true},"attributes.cha.modBonus":{"hidden":true},"attributes.str.modCap":{"hidden":true},"attributes.dex.modCap":{"hidden":true},"attributes.con.modCap":{"hidden":true},"attributes.int.modCap":{"hidden":true},"attributes.wis.modCap":{"hidden":true},"attributes.cha.modCap":{"hidden":true},"attributes.modTotal":{"groups":["training"],"priority":1,"format":"signed"},"skills.administer.level":{"format":{"bands":"skill-level"},"rolls":[{"action":"skill-check","params":{"skill":"skills.administer.level"}}],"showWhen":"!('administer' in ['cast', 'summon']) || campaign.magic || skills.administer.base >= 0"},"skills.connect.level":{"format":{"bands":"skill-level"},"rolls":[{"action":"skill-check","params":{"skill":"skills.connect.level"}}],"showWhen":"!('connect' in ['cast', 'summon']) || campaign.magic || skills.connect.base >= 0"},"skills.drive.level":{"format":{"bands":"skill-level"},"rolls":[{"action":"skill-check","params":{"skill":"skills.drive.level"}}],"showWhen":"!('drive' in ['cast', 'summon']) || campaign.magic || skills.drive.base >= 0"},"skills.exert.level":{"format":{"bands":"skill-level"},"rolls":[{"action":"skill-check","params":{"skill":"skills.exert.level"}}],"showWhen":"!('exert' in ['cast', 'summon']) || campaign.magic || skills.exert.base >= 0"},"skills.fix.level":{"format":{"bands":"skill-level"},"rolls":[{"action":"skill-check","params":{"skill":"skills.fix.level"}}],"showWhen":"!('fix' in ['cast', 'summon']) || campaign.magic || skills.fix.base >= 0"},"skills.heal.level":{"format":{"bands":"skill-level"},"rolls":[{"action":"skill-check","params":{"skill":"skills.heal.level"}}],"showWhen":"!('heal' in ['cast', 'summon']) || campaign.magic || skills.heal.base >= 0"},"skills.know.level":{"format":{"bands":"skill-level"},"rolls":[{"action":"skill-check","params":{"skill":"skills.know.level"}}],"showWhen":"!('know' in ['cast', 'summon']) || campaign.magic || skills.know.base >= 0"},"skills.lead.level":{"format":{"bands":"skill-level"},"rolls":[{"action":"skill-check","params":{"skill":"skills.lead.level"}}],"showWhen":"!('lead' in ['cast', 'summon']) || campaign.magic || skills.lead.base >= 0"},"skills.notice.level":{"format":{"bands":"skill-level"},"rolls":[{"action":"skill-check","params":{"skill":"skills.notice.level"}}],"showWhen":"!('notice' in ['cast', 'summon']) || campaign.magic || skills.notice.base >= 0"},"skills.perform.level":{"format":{"bands":"skill-level"},"rolls":[{"action":"skill-check","params":{"skill":"skills.perform.level"}}],"showWhen":"!('perform' in ['cast', 'summon']) || campaign.magic || skills.perform.base >= 0"},"skills.program.level":{"format":{"bands":"skill-level"},"rolls":[{"action":"skill-check","params":{"skill":"skills.program.level"}}],"showWhen":"!('program' in ['cast', 'summon']) || campaign.magic || skills.program.base >= 0"},"skills.punch.level":{"format":{"bands":"skill-level"},"rolls":[{"action":"skill-check","params":{"skill":"skills.punch.level"}}],"showWhen":"!('punch' in ['cast', 'summon']) || campaign.magic || skills.punch.base >= 0"},"skills.shoot.level":{"format":{"bands":"skill-level"},"rolls":[{"action":"skill-check","params":{"skill":"skills.shoot.level"}}],"showWhen":"!('shoot' in ['cast', 'summon']) || campaign.magic || skills.shoot.base >= 0"},"skills.sneak.level":{"format":{"bands":"skill-level"},"rolls":[{"action":"skill-check","params":{"skill":"skills.sneak.level"}}],"showWhen":"!('sneak' in ['cast', 'summon']) || campaign.magic || skills.sneak.base >= 0"},"skills.stab.level":{"format":{"bands":"skill-level"},"rolls":[{"action":"skill-check","params":{"skill":"skills.stab.level"}}],"showWhen":"!('stab' in ['cast', 'summon']) || campaign.magic || skills.stab.base >= 0"},"skills.survive.level":{"format":{"bands":"skill-level"},"rolls":[{"action":"skill-check","params":{"skill":"skills.survive.level"}}],"showWhen":"!('survive' in ['cast', 'summon']) || campaign.magic || skills.survive.base >= 0"},"skills.talk.level":{"format":{"bands":"skill-level"},"rolls":[{"action":"skill-check","params":{"skill":"skills.talk.level"}}],"showWhen":"!('talk' in ['cast', 'summon']) || campaign.magic || skills.talk.base >= 0"},"skills.trade.level":{"format":{"bands":"skill-level"},"rolls":[{"action":"skill-check","params":{"skill":"skills.trade.level"}}],"showWhen":"!('trade' in ['cast', 'summon']) || campaign.magic || skills.trade.base >= 0"},"skills.work.level":{"format":{"bands":"skill-level"},"rolls":[{"action":"skill-check","params":{"skill":"skills.work.level"}}],"showWhen":"!('work' in ['cast', 'summon']) || campaign.magic || skills.work.base >= 0"},"skills.cast.level":{"format":{"bands":"skill-level"},"rolls":[{"action":"skill-check","params":{"skill":"skills.cast.level"}}],"showWhen":"!('cast' in ['cast', 'summon']) || campaign.magic || skills.cast.base >= 0"},"skills.summon.level":{"format":{"bands":"skill-level"},"rolls":[{"action":"skill-check","params":{"skill":"skills.summon.level"}}],"showWhen":"!('summon' in ['cast', 'summon']) || campaign.magic || skills.summon.base >= 0"},"skills.administer.base":{"groups":["training"],"priority":2,"format":{"bands":"skill-level"},"showWhen":"!('administer' in ['cast', 'summon']) || campaign.magic || skills.administer.base >= 0"},"skills.connect.base":{"groups":["training"],"priority":2,"format":{"bands":"skill-level"},"showWhen":"!('connect' in ['cast', 'summon']) || campaign.magic || skills.connect.base >= 0"},"skills.drive.base":{"groups":["training"],"priority":2,"format":{"bands":"skill-level"},"showWhen":"!('drive' in ['cast', 'summon']) || campaign.magic || skills.drive.base >= 0"},"skills.exert.base":{"groups":["training"],"priority":2,"format":{"bands":"skill-level"},"showWhen":"!('exert' in ['cast', 'summon']) || campaign.magic || skills.exert.base >= 0"},"skills.fix.base":{"groups":["training"],"priority":2,"format":{"bands":"skill-level"},"showWhen":"!('fix' in ['cast', 'summon']) || campaign.magic || skills.fix.base >= 0"},"skills.heal.base":{"groups":["training"],"priority":2,"format":{"bands":"skill-level"},"showWhen":"!('heal' in ['cast', 'summon']) || campaign.magic || skills.heal.base >= 0"},"skills.know.base":{"groups":["training"],"priority":2,"format":{"bands":"skill-level"},"showWhen":"!('know' in ['cast', 'summon']) || campaign.magic || skills.know.base >= 0"},"skills.lead.base":{"groups":["training"],"priority":2,"format":{"bands":"skill-level"},"showWhen":"!('lead' in ['cast', 'summon']) || campaign.magic || skills.lead.base >= 0"},"skills.notice.base":{"groups":["training"],"priority":2,"format":{"bands":"skill-level"},"showWhen":"!('notice' in ['cast', 'summon']) || campaign.magic || skills.notice.base >= 0"},"skills.perform.base":{"groups":["training"],"priority":2,"format":{"bands":"skill-level"},"showWhen":"!('perform' in ['cast', 'summon']) || campaign.magic || skills.perform.base >= 0"},"skills.program.base":{"groups":["training"],"priority":2,"format":{"bands":"skill-level"},"showWhen":"!('program' in ['cast', 'summon']) || campaign.magic || skills.program.base >= 0"},"skills.punch.base":{"groups":["training"],"priority":2,"format":{"bands":"skill-level"},"showWhen":"!('punch' in ['cast', 'summon']) || campaign.magic || skills.punch.base >= 0"},"skills.shoot.base":{"groups":["training"],"priority":2,"format":{"bands":"skill-level"},"showWhen":"!('shoot' in ['cast', 'summon']) || campaign.magic || skills.shoot.base >= 0"},"skills.sneak.base":{"groups":["training"],"priority":2,"format":{"bands":"skill-level"},"showWhen":"!('sneak' in ['cast', 'summon']) || campaign.magic || skills.sneak.base >= 0"},"skills.stab.base":{"groups":["training"],"priority":2,"format":{"bands":"skill-level"},"showWhen":"!('stab' in ['cast', 'summon']) || campaign.magic || skills.stab.base >= 0"},"skills.survive.base":{"groups":["training"],"priority":2,"format":{"bands":"skill-level"},"showWhen":"!('survive' in ['cast', 'summon']) || campaign.magic || skills.survive.base >= 0"},"skills.talk.base":{"groups":["training"],"priority":2,"format":{"bands":"skill-level"},"showWhen":"!('talk' in ['cast', 'summon']) || campaign.magic || skills.talk.base >= 0"},"skills.trade.base":{"groups":["training"],"priority":2,"format":{"bands":"skill-level"},"showWhen":"!('trade' in ['cast', 'summon']) || campaign.magic || skills.trade.base >= 0"},"skills.work.base":{"groups":["training"],"priority":2,"format":{"bands":"skill-level"},"showWhen":"!('work' in ['cast', 'summon']) || campaign.magic || skills.work.base >= 0"},"skills.cast.base":{"groups":["training"],"priority":2,"format":{"bands":"skill-level"},"showWhen":"!('cast' in ['cast', 'summon']) || campaign.magic || skills.cast.base >= 0"},"skills.summon.base":{"groups":["training"],"priority":2,"format":{"bands":"skill-level"},"showWhen":"!('summon' in ['cast', 'summon']) || campaign.magic || skills.summon.base >= 0"},"skills.administer.credit":{"groups":["training"],"priority":3,"showWhen":"skills.administer.credit > 0"},"skills.connect.credit":{"groups":["training"],"priority":3,"showWhen":"skills.connect.credit > 0"},"skills.drive.credit":{"groups":["training"],"priority":3,"showWhen":"skills.drive.credit > 0"},"skills.exert.credit":{"groups":["training"],"priority":3,"showWhen":"skills.exert.credit > 0"},"skills.fix.credit":{"groups":["training"],"priority":3,"showWhen":"skills.fix.credit > 0"},"skills.heal.credit":{"groups":["training"],"priority":3,"showWhen":"skills.heal.credit > 0"},"skills.know.credit":{"groups":["training"],"priority":3,"showWhen":"skills.know.credit > 0"},"skills.lead.credit":{"groups":["training"],"priority":3,"showWhen":"skills.lead.credit > 0"},"skills.notice.credit":{"groups":["training"],"priority":3,"showWhen":"skills.notice.credit > 0"},"skills.perform.credit":{"groups":["training"],"priority":3,"showWhen":"skills.perform.credit > 0"},"skills.program.credit":{"groups":["training"],"priority":3,"showWhen":"skills.program.credit > 0"},"skills.punch.credit":{"groups":["training"],"priority":3,"showWhen":"skills.punch.credit > 0"},"skills.shoot.credit":{"groups":["training"],"priority":3,"showWhen":"skills.shoot.credit > 0"},"skills.sneak.credit":{"groups":["training"],"priority":3,"showWhen":"skills.sneak.credit > 0"},"skills.stab.credit":{"groups":["training"],"priority":3,"showWhen":"skills.stab.credit > 0"},"skills.survive.credit":{"groups":["training"],"priority":3,"showWhen":"skills.survive.credit > 0"},"skills.talk.credit":{"groups":["training"],"priority":3,"showWhen":"skills.talk.credit > 0"},"skills.trade.credit":{"groups":["training"],"priority":3,"showWhen":"skills.trade.credit > 0"},"skills.work.credit":{"groups":["training"],"priority":3,"showWhen":"skills.work.credit > 0"},"skills.cast.credit":{"groups":["training"],"priority":3,"showWhen":"skills.cast.credit > 0"},"skills.summon.credit":{"groups":["training"],"priority":3,"showWhen":"skills.summon.credit > 0"},"skills.work.profession":{"groups":["skills"],"priority":99},"saves.physical":{"rolls":[{"action":"saving-throw","params":{"save":"physical"}}]},"saves.evasion":{"rolls":[{"action":"saving-throw","params":{"save":"evasion"}}]},"saves.mental":{"rolls":[{"action":"saving-throw","params":{"save":"mental"}}]},"saves.luck":{"rolls":[{"action":"saving-throw","params":{"save":"luck"}}]},"combat.initiative":{"groups":["combat"],"priority":7,"format":"signed","rolls":[{"action":"initiative"}]},"combat.damageBonus":{"groups":["combat"],"priority":8,"format":"signed","showWhen":"combat.damageBonus != 0"},"combat.traumaBonus":{"groups":["combat"],"priority":9,"format":"signed","showWhen":"combat.traumaBonus != 0"},"combat.move":{"groups":["combat"],"priority":10,"unit":"m"},"ac.ranged.base":{"groups":["combat"],"priority":11,"visibility":"background"},"ac.melee.base":{"groups":["combat"],"priority":12,"visibility":"background"},"soak.max":{"groups":["combat"],"priority":13,"visibility":"background"},"armor.heavy":{"groups":["combat"],"priority":14,"showWhen":"armor.heavy > 0"},"hp.max":{"groups":["combat"],"priority":15,"visibility":"background"},"hp.rolled":{"groups":["combat"],"priority":16,"visibility":"background"},"hp.frail":{"groups":["combat"],"priority":17},"hp.dieBonus":{"groups":["training"],"priority":4,"showWhen":"hp.dieBonus != 0"},"combat.shockAc":{"hidden":true},"combat.shockBonus":{"hidden":true},"combat.meleeSkillDamage":{"hidden":true},"combat.rangedSkillDamage":{"hidden":true},"combat.meleeHitBonus":{"hidden":true},"drones.attackBonus":{"groups":["combat"],"priority":18,"format":"signed","showWhen":"countCopies(copy.type == 'drone') > 0"},"drones.commandable":{"groups":["combat"],"priority":19,"showWhen":"countCopies(copy.type == 'drone') > 0"},"strain.temporary":{"groups":["strain"],"priority":3},"strain.permanent":{"groups":["strain"],"priority":4},"strain.max":{"groups":["strain"],"priority":5,"visibility":"background"},"strain.cyber":{"groups":["strain"],"priority":6,"visibility":"background"},"strain.cyberIgnored":{"groups":["strain"],"priority":7,"showWhen":"strain.cyberIgnored > 0"},"strain.maintenanceRelief":{"groups":["strain"],"priority":8,"visibility":"background"},"strain.otherPermanent":{"groups":["strain"],"priority":9,"visibility":"background"},"strain.constitution":{"hidden":true},"lifestyle.strain":{"hidden":true},"cyber.eyes":{"hidden":true},"cyber.ears":{"hidden":true},"cyber.plugJack":{"hidden":true},"cyber.plugWiring":{"hidden":true},"cyber.wiredBudget":{"groups":["training"],"priority":10,"showWhen":"cyber.wiredBudget > 0"},"cyber.wiredUsed":{"groups":["training"],"priority":11,"showWhen":"cyber.wiredBudget > 0"},"alienation.total":{"groups":["alienation"],"priority":0,"with":[{"field":"alienation.max","as":"max"}]},"alienation.current":{"groups":["alienation"],"priority":1},"alienation.permanent":{"groups":["alienation"],"priority":2},"alienation.max":{"groups":["alienation"],"priority":3,"visibility":"background"},"hacking.access.current":{"groups":["hacking"],"priority":0,"with":[{"field":"hacking.access.max","as":"max"}]},"hacking.access.spent":{"groups":["hacking"],"priority":1,"visibility":"background"},"hacking.cpu":{"groups":["hacking"],"priority":2},"hacking.memory.used":{"groups":["hacking"],"priority":3,"with":[{"field":"hacking.memory.max","as":"max"}]},"hacking.shielding.current":{"groups":["hacking"],"priority":4,"with":[{"field":"hacking.shielding.max","as":"max"}]},"hacking.datafiles":{"groups":["hacking"],"priority":5},"hacking.programming.used":{"groups":["hacking"],"priority":6,"showWhen":"hacking.programming.max > 0","with":[{"field":"hacking.programming.max","as":"max"}]},"hacking.deck.bonusAccess":{"groups":["hacking"],"priority":7,"visibility":"background"},"hacking.memory.perElement":{"hidden":true},"effort.mage.current":{"groups":["magic"],"priority":0,"showWhen":"magic.mage","with":[{"field":"effort.mage.max","as":"max"}]},"effort.mage.scene":{"groups":["magic"],"priority":1,"showWhen":"magic.mage"},"effort.mage.day":{"groups":["magic"],"priority":2,"showWhen":"magic.mage"},"spells.prepared":{"groups":["magic"],"priority":3,"showWhen":"magic.mage","with":[{"field":"spells.preparedMax","as":"max"}]},"effort.summoner.current":{"groups":["magic"],"priority":4,"showWhen":"magic.summoner","with":[{"field":"effort.summoner.max","as":"max"}]},"effort.summoner.scene":{"groups":["magic"],"priority":5,"showWhen":"magic.summoner"},"effort.summoner.day":{"groups":["magic"],"priority":6,"showWhen":"magic.summoner"},"arts.spent":{"groups":["magic"],"priority":7,"showWhen":"magic.graced","with":[{"field":"arts.points","as":"max"}]},"magic.cyberPenalty":{"groups":["magic"],"priority":8,"showWhen":"magic.cyberPenalty > 0"},"magic.mage":{"hidden":true},"magic.summoner":{"hidden":true},"magic.graced":{"hidden":true},"money":{"groups":["summary","possessions"],"priority":8},"lifestyle":{"groups":["possessions"],"priority":1},"enc.readied":{"groups":["possessions"],"priority":2,"with":[{"field":"enc.readiedMax","as":"max"}]},"enc.stowed":{"groups":["possessions"],"priority":3,"with":[{"field":"enc.stowedMax","as":"max"}]},"enc.overload":{"groups":["possessions"],"priority":4,"showWhen":"enc.overload > 0"},"budget.vehicle":{"groups":["possessions"],"priority":5,"showWhen":"budget.vehicle > 0","with":[{"field":"budget.vehicleUsed","as":"detail"}]},"budget.drone":{"groups":["possessions"],"priority":6,"showWhen":"budget.drone > 0","with":[{"field":"budget.droneUsed","as":"detail"}]},"maintenance.used":{"groups":["possessions"],"priority":7,"showWhen":"maintenance.max > 0 || maintenance.used > 0","with":[{"field":"maintenance.max","as":"max"}]},"maintenance.multiplier":{"hidden":true},"maintenance.fixBonus":{"hidden":true},"languages.extra":{"groups":["possessions"],"priority":8},"languages.known":{"groups":["possessions"],"priority":9},"goal":{"groups":["possessions"],"priority":10},"xp.current":{"groups":["advancement"],"priority":1,"with":[{"field":"xp.next","as":"max"}]},"xp.track":{"groups":["advancement"],"priority":2,"visibility":"background"},"skillPoints.unspent":{"groups":["advancement"],"priority":3},"foci.taken":{"groups":["advancement"],"priority":4,"with":[{"field":"foci.allowed","as":"max"}]},"advancement.attributeBoosts":{"groups":["advancement"],"priority":5,"visibility":"background"},"underdog":{"groups":["advancement"],"priority":6,"visibility":"background"},"skillPoints.perLevel":{"groups":["training"],"priority":5},"edges.taken":{"hidden":true},"campaign.magic":{"groups":["campaign"],"priority":0},"campaign.alienation":{"groups":["campaign"],"priority":1}},"types":{"background":{"quantity":{"hidden":true}},"focus":{"quantity":{"hidden":true},"state":{"level":{"priority":0,"input":{"widget":"dots"}}}},"contact":{"quantity":{"hidden":true},"state":{"bond":{"priority":0},"about":{"priority":1}}},"weapon":{"state":{"loaded":{"priority":0,"showWhen":"has(item.magazine)"}},"fields":{"damage":{"format":"dice"},"traumaDie":{"format":"dice"},"rangeNormal":{"unit":"m"},"rangeLong":{"unit":"m"}}},"armor":{"state":{"soakUsed":{"priority":0,"showWhen":"self.soakUsed > 0"}}},"cyberware":{"quantity":{"hidden":true},"state":{"damaged":{"priority":0},"wired":{"priority":1,"visibility":"background"}}},"cyberdeck":{"state":{"shieldingUsed":{"priority":0,"showWhen":"self.shieldingUsed > 0"}}},"program":{"quantity":{"hidden":true},"state":{"source":{"priority":0,"visibility":"background"}}},"drone":{"state":{"hp":{"priority":0},"focusGear":{"priority":1,"visibility":"background"}},"fields":{"move":{"unit":"m"}}},"vehicle":{"state":{"hp":{"priority":0},"focusGear":{"priority":1,"visibility":"background"}}},"spell":{"quantity":{"hidden":true},"state":{"prepared":{"priority":0}}},"art":{"quantity":{"hidden":true}},"spirit":{"quantity":{"hidden":true},"state":{"form":{"priority":0},"ritual":{"priority":1}}},"syndrome":{"quantity":{"hidden":true}}}},"situational":[{"id":"bonusRoll","type":"enum","values":["none","hit","damage"],"default":"none","rolls":["attack","damage"]},{"id":"versusMagic","type":"boolean","default":false,"rolls":["save"]}],"tags":["attribute","attribute-base","attribute-score-mod","attribute-mod","attribute-mod-bonus","attribute-mod-cap","attr.str","attr.dex","attr.con","attr.int","attr.wis","attr.cha","skill-base","skill.administer","skill.connect","skill.drive","skill.exert","skill.fix","skill.heal","skill.know","skill.lead","skill.notice","skill.perform","skill.program","skill.punch","skill.shoot","skill.sneak","skill.stab","skill.survive","skill.talk","skill.trade","skill.work","skill.cast","skill.summon","save.physical","save.evasion","save.mental","save.luck","check","skill-check","skill-dice","attack.melee","attack.ranged","attack.attribute","attack.skill","attack.burst","damage.melee","damage.ranged","damage.attribute","damage.burst","damage.punch","damage.skill","trauma","initiative","hit-points","healing","first-aid","major-injury","overcast","creation","building","advancement","skill-pick","focus-pick","edge-pick","reload","drug","cyber","hacking","magic","spell","summoning","rest","injury","armor.heavy","damage.weapon","damage.nonlethal","damage.traumatic","damage.cyberspace","damage.direct","standard","repeatable","asks-attribute","brings-cyber","not-underdog","retroactive-points","restricted","worn","vr-crown","firearm","melee","unarmed","thrown","grenade","heavy","implant","burst","suppress","braced","quick-reload","two-handed","nonlethal","anti-vehicle","launcher","indirect","trap","special","vehicle-mounted","body-blades","blade","cranial-jack","gunlink","cybereyes","cyberears","dermal-armor","self-terminating","portable","flying","armored","armored-heavy","alacrity"],"standardCopies":[{"type":"weapon","where":"'standard' in item.tags"}]},"content":[{"id":"armor-accessories.absorption-plates","type":"template","appliesTo":{"type":"armor","where":"item.kind == 'clothing'"},"fields":{"rangedAc":"prior.rangedAc + 2","meleeAc":"prior.meleeAc + 2","soak":"prior.soak + 3","enc":"prior.enc + 1","heavy":"prior.heavy + 1","obvious":true,"cost":"prior.cost + 500"}},{"id":"armor-accessories.joint-reinforcement","type":"template","appliesTo":{"type":"armor","where":"item.kind == 'clothing'"},"fields":{"rangedAc":"prior.rangedAc + 1","meleeAc":"prior.meleeAc + 1","heavy":"prior.heavy + 1","cost":"prior.cost + 250"}},{"id":"armor-mods.absorption-pads","type":"template","appliesTo":{"type":"armor","where":"item.kind != 'shield'"},"fields":{"soak":"prior.soak + 5"}},{"id":"armor-mods.active-response","type":"template","appliesTo":{"type":"armor","where":"item.kind != 'shield'"},"fields":{"traumaMod":"prior.traumaMod + 1"}},{"id":"armor-mods.biostabilizing","type":"template","appliesTo":{"type":"armor","where":"item.kind != 'shield'"}},{"id":"armor-mods.customized","type":"template","appliesTo":{"type":"armor","where":"item.kind != 'shield'"},"fields":{"rangedAc":"prior.rangedAc + 1","meleeAc":"prior.meleeAc + 1"}},{"id":"armor-mods.discreet-design","type":"template","appliesTo":{"type":"armor","where":"item.kind != 'shield'"},"fields":{"rangedAc":"prior.rangedAc - 2","meleeAc":"prior.meleeAc - 2","obvious":false}},{"id":"armor-mods.flexible","type":"template","appliesTo":{"type":"armor","where":"item.kind != 'shield'"},"fields":{"heavy":"max(0, prior.heavy - base.heavy)"}},{"id":"armor-mods.quickchange","type":"template","appliesTo":{"type":"armor","where":"item.kind != 'shield'"}},{"id":"armor-mods.sealed","type":"template","appliesTo":{"type":"armor","where":"item.kind != 'shield'"}},{"id":"armor-mods.tailored-rig","type":"template","appliesTo":{"type":"armor","where":"item.kind != 'shield'"},"effects":[{"target":"enc.readiedMax","op":"add","value":1,"when":"self.equipped"},{"target":"enc.stowedMax","op":"add","value":2,"when":"self.equipped"}]},{"id":"armor-mods.trauma-dampers","type":"template","appliesTo":{"type":"armor","where":"item.kind != 'shield'"},"fields":{"soak":"prior.soak + 5"}},{"id":"armor-mods.whisperlight","type":"template","appliesTo":{"type":"armor","where":"item.kind != 'shield'"},"fields":{"enc":"max(0, prior.enc - 1)"}},{"id":"armor.armored-clothing","type":"armor","fields":{"cost":1000,"enc":2,"kind":"clothing","rangedAc":16,"meleeAc":14,"soak":5,"traumaMod":1}},{"id":"armor.heavy-armored-suit","type":"armor","tags":["restricted"],"fields":{"cost":20000,"enc":3,"kind":"suit","rangedAc":20,"meleeAc":18,"soak":15,"traumaMod":3,"heavy":1,"obvious":true}},{"id":"armor.impact-jacket","type":"armor","fields":{"cost":1000,"enc":1,"kind":"clothing","rangedAc":12,"meleeAc":14,"soak":8,"traumaMod":1,"obvious":true}},{"id":"armor.light-armored-suit","type":"armor","tags":["restricted"],"fields":{"cost":5000,"enc":2,"kind":"suit","rangedAc":16,"meleeAc":13,"soak":5,"traumaMod":2,"obvious":true}},{"id":"armor.medium-armored-suit","type":"armor","tags":["restricted"],"fields":{"cost":10000,"enc":3,"kind":"suit","rangedAc":18,"meleeAc":14,"soak":10,"traumaMod":2,"obvious":true}},{"id":"armor.ordinary-clothing","type":"armor","fields":{"cost":25,"enc":0,"kind":"clothing","rangedAc":10,"meleeAc":10}},{"id":"armor.plated-longcoat","type":"armor","fields":{"cost":2000,"enc":3,"kind":"clothing","rangedAc":17,"meleeAc":15,"soak":5,"traumaMod":1,"heavy":1,"obvious":true}},{"id":"armor.reinforced-clothing","type":"armor","fields":{"cost":100,"enc":0,"kind":"clothing","rangedAc":13,"meleeAc":10,"soak":2}},{"id":"armor.reinforced-longcoat","type":"armor","fields":{"cost":500,"enc":1,"kind":"clothing","rangedAc":15,"meleeAc":13,"soak":5,"traumaMod":1}},{"id":"armor.riot-shield","type":"armor","fields":{"cost":1000,"enc":2,"kind":"shield","rangedAc":2,"meleeAc":4,"obvious":true}},{"id":"armor.street-leathers","type":"armor","fields":{"cost":250,"enc":0,"kind":"clothing","rangedAc":13,"meleeAc":12,"soak":3}},{"id":"armor.war-harness","type":"armor","fields":{"cost":200,"enc":1,"kind":"clothing","rangedAc":13,"meleeAc":14,"soak":5,"obvious":true}},{"id":"arts.alacrity-basic","type":"art","tags":["alacrity"],"fields":{"cost":2}},{"id":"arts.alacrity-improved","type":"art","tags":["alacrity"],"fields":{"cost":3}},{"id":"arts.alacrity-sublime","type":"art","tags":["alacrity"],"fields":{"cost":4}},{"id":"arts.arcane-senses","type":"art","fields":{"cost":1}},{"id":"arts.arcane-skill","type":"art","fields":{"cost":1}},{"id":"arts.blades-of-will","type":"art","fields":{"cost":1}},{"id":"arts.brazen-thews","type":"art","fields":{"cost":1},"effects":[{"target":"attributes.str.modBonus","op":"add","value":1},{"target":"attributes.str.modCap","op":"atLeast","value":3}]},{"id":"arts.faultless-grace","type":"art","fields":{"cost":1},"effects":[{"target":"attributes.dex.modBonus","op":"add","value":1},{"target":"attributes.dex.modCap","op":"atLeast","value":3}]},{"id":"arts.flying-steps","type":"art","fields":{"cost":1}},{"id":"arts.hand-of-doom","type":"art","fields":{"cost":1},"keepsTemplates":[{"template":"weapon-mods.hand-of-doom","copies":{"type":"weapon","where":"'unarmed' in item.tags"}}]},{"id":"arts.hundred-faces","type":"art","fields":{"cost":2}},{"id":"arts.inexhaustible-vigor","type":"art","fields":{"cost":1},"effects":[{"target":"attributes.con.modBonus","op":"add","value":1},{"target":"attributes.con.modCap","op":"atLeast","value":3}]},{"id":"arts.martial-instinct","type":"art","fields":{"cost":1},"effects":[{"target":"arts.bonusRolls.max","op":"set","value":"max(1, skills.punch.level, skills.shoot.level, skills.stab.level)"},{"target":{"rolls":["attack"]},"op":"rollModifier","value":{"kind":"advantage","of":"roll"},"when":"situational.bonusRoll == 'hit' && arts.bonusRolls.used < arts.bonusRolls.max"},{"target":{"rolls":["damage"]},"op":"rollModifier","value":{"kind":"advantage","of":"roll"},"when":"situational.bonusRoll == 'damage' && arts.bonusRolls.used < arts.bonusRolls.max"}]},{"id":"arts.occult-pavis","type":"art","fields":{"cost":2},"effects":[{"target":{"rolls":["save"]},"op":"rollModifier","value":{"kind":"advantage"},"when":"situational.versusMagic"}]},{"id":"arts.personal-void","type":"art","fields":{"cost":1}},{"id":"arts.refulgent-vitality","type":"art","fields":{"cost":1}},{"id":"arts.skin-of-steel","type":"art","fields":{"cost":2},"effects":[{"target":"ac.ranged.base","op":"set","value":"15 + ceil(level / 2)"},{"target":"ac.melee.base","op":"set","value":"15 + ceil(level / 2)"},{"target":"trauma.target","op":"add","value":"level >= 5 ? 2 : 1"}]},{"id":"arts.sorcerous-sight","type":"art","fields":{"cost":1}},{"id":"arts.spiritbane","type":"art","fields":{"cost":1}},{"id":"backgrounds.bum","type":"background","fields":{"freeSkill":"survive","growth1":"any-stat-1","growth2":"physical-2","growth3":"physical-2","growth4":"mental-2","growth5":"survive","growth6":"any","learning1":"combat","learning2":"survive","learning3":"connect","learning4":"sneak","learning5":"notice","learning6":"talk","learning7":"fix","learning8":"trade"}},{"id":"backgrounds.bureaucrat","type":"background","fields":{"freeSkill":"administer","growth1":"any-stat-1","growth2":"mental-2","growth3":"mental-2","growth4":"mental-2","growth5":"administer","growth6":"any","learning1":"administer","learning2":"know","learning3":"talk","learning4":"program","learning5":"lead","learning6":"trade","learning7":"notice","learning8":"any"}},{"id":"backgrounds.clergy","type":"background","fields":{"freeSkill":"lead","growth1":"any-stat-1","growth2":"mental-2","growth3":"mental-2","growth4":"mental-2","growth5":"connect","growth6":"any","learning1":"lead","learning2":"talk","learning3":"connect","learning4":"perform","learning5":"know","learning6":"heal","learning7":"notice","learning8":"any"}},{"id":"backgrounds.coder","type":"background","fields":{"freeSkill":"program","growth1":"any-stat-1","growth2":"mental-2","growth3":"mental-2","growth4":"mental-2","growth5":"program","growth6":"any","learning1":"program","learning2":"administer","learning3":"fix","learning4":"talk","learning5":"connect","learning6":"know","learning7":"notice","learning8":"any"}},{"id":"backgrounds.corp-security","type":"background","fields":{"freeSkill":"combat","growth1":"any-stat-1","growth2":"physical-2","growth3":"physical-2","growth4":"physical-2","growth5":"combat","growth6":"any","learning1":"combat","learning2":"administer","learning3":"connect","learning4":"notice","learning5":"exert","learning6":"heal","learning7":"sneak","learning8":"lead"}},{"id":"backgrounds.corper","type":"background","fields":{"freeSkill":"work","growth1":"any-stat-1","growth2":"any-stat-1","growth3":"physical-2","growth4":"mental-2","growth5":"any","growth6":"any","learning1":"work","learning2":"talk","learning3":"connect","learning4":"combat","learning5":"notice","learning6":"sneak","learning7":"fix","learning8":"any"}},{"id":"backgrounds.criminal","type":"background","fields":{"freeSkill":"sneak","growth1":"any-stat-1","growth2":"any-stat-1","growth3":"physical-2","growth4":"mental-2","growth5":"sneak","growth6":"any","learning1":"combat","learning2":"sneak","learning3":"notice","learning4":"connect","learning5":"talk","learning6":"survive","learning7":"exert","learning8":"lead"}},{"id":"backgrounds.doctor","type":"background","fields":{"freeSkill":"heal","growth1":"any-stat-1","growth2":"physical-2","growth3":"mental-2","growth4":"mental-2","growth5":"heal","growth6":"any","learning1":"heal","learning2":"notice","learning3":"know","learning4":"talk","learning5":"administer","learning6":"connect","learning7":"fix","learning8":"any"}},{"id":"backgrounds.drone-jockey","type":"background","fields":{"freeSkill":"drive","growth1":"any-stat-1","growth2":"physical-2","growth3":"physical-2","growth4":"mental-2","growth5":"drive","growth6":"any","learning1":"drive","learning2":"fix","learning3":"shoot","learning4":"notice","learning5":"sneak","learning6":"exert","learning7":"program","learning8":"any"}},{"id":"backgrounds.ganger","type":"background","fields":{"freeSkill":"combat","growth1":"any-stat-1","growth2":"physical-2","growth3":"physical-2","growth4":"mental-2","growth5":"combat","growth6":"any","learning1":"combat","learning2":"connect","learning3":"survive","learning4":"notice","learning5":"sneak","learning6":"talk","learning7":"fix","learning8":"any"}},{"id":"backgrounds.laborer","type":"background","fields":{"freeSkill":"exert","growth1":"any-stat-1","growth2":"physical-2","growth3":"physical-2","growth4":"physical-2","growth5":"exert","growth6":"any","learning1":"exert","learning2":"work","learning3":"sneak","learning4":"trade","learning5":"survive","learning6":"fix","learning7":"combat","learning8":"any"}},{"id":"backgrounds.law-enforcement","type":"background","fields":{"freeSkill":"administer","growth1":"any-stat-1","growth2":"physical-2","growth3":"physical-2","growth4":"mental-2","growth5":"administer","growth6":"any","learning1":"administer","learning2":"combat","learning3":"notice","learning4":"sneak","learning5":"talk","learning6":"connect","learning7":"heal","learning8":"any"}},{"id":"backgrounds.manager","type":"background","fields":{"freeSkill":"administer","growth1":"any-stat-1","growth2":"mental-2","growth3":"mental-2","growth4":"mental-2","growth5":"administer","growth6":"any","learning1":"administer","learning2":"talk","learning3":"trade","learning4":"connect","learning5":"notice","learning6":"lead","learning7":"program","learning8":"any"}},{"id":"backgrounds.outlander","type":"background","fields":{"freeSkill":"survive","growth1":"any-stat-1","growth2":"mental-2","growth3":"physical-2","growth4":"physical-2","growth5":"survive","growth6":"any","learning1":"survive","learning2":"drive","learning3":"fix","learning4":"trade","learning5":"sneak","learning6":"connect","learning7":"combat","learning8":"any"}},{"id":"backgrounds.performer","type":"background","fields":{"freeSkill":"perform","growth1":"any-stat-1","growth2":"any-stat-1","growth3":"mental-2","growth4":"physical-2","growth5":"perform","growth6":"any","learning1":"perform","learning2":"lead","learning3":"connect","learning4":"talk","learning5":"trade","learning6":"sneak","learning7":"combat","learning8":"any"}},{"id":"backgrounds.soldier","type":"background","fields":{"freeSkill":"combat","growth1":"any-stat-1","growth2":"mental-2","growth3":"physical-2","growth4":"physical-2","growth5":"combat","growth6":"any","learning1":"combat","learning2":"exert","learning3":"lead","learning4":"notice","learning5":"survive","learning6":"heal","learning7":"administer","learning8":"any"}},{"id":"backgrounds.spy","type":"background","fields":{"freeSkill":"sneak","growth1":"any-stat-1","growth2":"any-stat-1","growth3":"mental-2","growth4":"physical-2","growth5":"sneak","growth6":"any","learning1":"sneak","learning2":"notice","learning3":"talk","learning4":"connect","learning5":"program","learning6":"exert","learning7":"combat","learning8":"any"}},{"id":"backgrounds.streetwalker","type":"background","fields":{"freeSkill":"talk","growth1":"any-stat-1","growth2":"any-stat-1","growth3":"physical-2","growth4":"mental-2","growth5":"talk","growth6":"any","learning1":"talk","learning2":"perform","learning3":"connect","learning4":"trade","learning5":"sneak","learning6":"notice","learning7":"heal","learning8":"any"}},{"id":"backgrounds.technician","type":"background","fields":{"freeSkill":"fix","growth1":"any-stat-1","growth2":"physical-2","growth3":"mental-2","growth4":"mental-2","growth5":"fix","growth6":"any","learning1":"fix","learning2":"program","learning3":"exert","learning4":"trade","learning5":"notice","learning6":"connect","learning7":"drive","learning8":"any"}},{"id":"backgrounds.trader","type":"background","fields":{"freeSkill":"trade","growth1":"any-stat-1","growth2":"mental-2","growth3":"mental-2","growth4":"physical-2","growth5":"trade","growth6":"any","learning1":"trade","learning2":"notice","learning3":"connect","learning4":"fix","learning5":"talk","learning6":"administer","learning7":"combat","learning8":"any"}},{"id":"contacts.contact","type":"contact"},{"id":"cyberdeck-mods.bespoke-code-optimization","type":"template","appliesTo":{"type":"cyberdeck"},"fields":{"cost":"prior.cost + floor(base.cost * 0.2)"}},{"id":"cyberdeck-mods.buffer-circuits","type":"template","appliesTo":{"type":"cyberdeck"},"fields":{"shielding":"prior.shielding + 5","cost":"prior.cost + floor(base.cost * 0.2)"}},{"id":"cyberdeck-mods.cpu-overclocking","type":"template","appliesTo":{"type":"cyberdeck"},"fields":{"cpu":"prior.cpu + 1","cost":"prior.cost + floor(base.cost * 0.3)"}},{"id":"cyberdeck-mods.memory-expansion","type":"template","appliesTo":{"type":"cyberdeck"},"fields":{"memory":"prior.memory + 4","cost":"prior.cost + floor(base.cost * 0.2)"}},{"id":"cyberdeck-mods.polymorphic-intrusion-algorithms","type":"template","appliesTo":{"type":"cyberdeck"},"fields":{"bonusAccess":"prior.bonusAccess + 1","cpu":"max(0, prior.cpu - 1)","cost":"prior.cost + floor(base.cost * 0.1)"}},{"id":"cyberdeck-mods.skeletal-case","type":"template","appliesTo":{"type":"cyberdeck"},"fields":{"enc":"max(0, prior.enc - 1)","memory":"max(0, prior.memory - 2)","cost":"prior.cost + floor(base.cost * 0.1)"}},{"id":"cyberdeck-mods.thermal-exhaust-case","type":"template","appliesTo":{"type":"cyberdeck"},"fields":{"enc":"prior.enc + 1","cpu":"prior.cpu + 1","cost":"prior.cost + floor(base.cost * 0.3)"}},{"id":"cyberdecks.beowulf","type":"cyberdeck","fields":{"cost":60000,"enc":1,"bonusAccess":2,"memory":13,"shielding":10,"cpu":4}},{"id":"cyberdecks.icepick","type":"cyberdeck","fields":{"cost":15000,"enc":1,"bonusAccess":2,"memory":10,"shielding":10,"cpu":3}},{"id":"cyberdecks.scrap-deck","type":"cyberdeck","fields":{"cost":500,"enc":1,"bonusAccess":1,"memory":8,"shielding":5,"cpu":2}},{"id":"cyberdecks.synapse","type":"cyberdeck","fields":{"cost":30000,"enc":1,"bonusAccess":2,"memory":11,"shielding":5,"cpu":4}},{"id":"cyberdecks.taifu","type":"cyberdeck","fields":{"cost":250000,"enc":1,"bonusAccess":3,"memory":13,"shielding":15,"cpu":6}},{"id":"cyberdecks.tanto","type":"cyberdeck","fields":{"cost":5000,"enc":1,"bonusAccess":1,"memory":10,"shielding":10,"cpu":3}},{"id":"cyberdecks.tizona","type":"cyberdeck","fields":{"cost":100000,"enc":1,"bonusAccess":3,"memory":11,"shielding":10,"cpu":5}},{"id":"cyberware-complications.bad-connection","type":"template","appliesTo":{"type":"cyberware"}},{"id":"cyberware-complications.blatant","type":"template","appliesTo":{"type":"cyberware"}},{"id":"cyberware-complications.complicated","type":"template","appliesTo":{"type":"cyberware"}},{"id":"cyberware-complications.debilitating","type":"template","appliesTo":{"type":"cyberware"}},{"id":"cyberware-complications.exhausting","type":"template","appliesTo":{"type":"cyberware"}},{"id":"cyberware-complications.fussy","type":"template","appliesTo":{"type":"cyberware"}},{"id":"cyberware-complications.inefficient","type":"template","appliesTo":{"type":"cyberware"},"fields":{"strain":"prior.strain + 0.5"}},{"id":"cyberware-complications.loud","type":"template","appliesTo":{"type":"cyberware"}},{"id":"cyberware-complications.petty-annoyance","type":"template","appliesTo":{"type":"cyberware"}},{"id":"cyberware-complications.power-hungry","type":"template","appliesTo":{"type":"cyberware"}},{"id":"cyberware-complications.uncooperative","type":"template","appliesTo":{"type":"cyberware"}},{"id":"cyberware-complications.unreliable","type":"template","appliesTo":{"type":"cyberware"}},{"id":"cyberware-mods.biocapacitors","type":"template","appliesTo":{"type":"cyberware"},"fields":{"cost":"prior.cost + floor(base.cost * 0.3)"}},{"id":"cyberware-mods.durable-system","type":"template","appliesTo":{"type":"cyberware","where":"item.category in ['limb', 'sensory']"},"fields":{"cost":"prior.cost + floor(base.cost * 0.2)"}},{"id":"cyberware-mods.firewalled","type":"template","appliesTo":{"type":"cyberware"},"fields":{"cost":"prior.cost + floor(base.cost * 0.2)"}},{"id":"cyberware-mods.hardened-weave","type":"template","appliesTo":{"type":"cyberware","where":"has(item.baseAc)"},"fields":{"baseAc":"prior.baseAc + 2","cost":"prior.cost + floor(base.cost * 0.3)"}},{"id":"cyberware-mods.low-maintenance","type":"template","appliesTo":{"type":"cyberware"},"fields":{"cost":"prior.cost + floor(base.cost * 0.1)"}},{"id":"cyberware-mods.monoblade","type":"template","appliesTo":{"type":"cyberware","where":"'blade' in item.tags"},"fields":{"cost":"prior.cost + floor(base.cost * 0.2)"}},{"id":"cyberware-mods.profile-adjustment","type":"template","appliesTo":{"type":"cyberware"},"fields":{"cost":"prior.cost + floor(base.cost * 0.2)"}},{"id":"cyberware-mods.quick-detach","type":"template","appliesTo":{"type":"cyberware"},"fields":{"cost":"prior.cost + floor(base.cost * 0.3)"}},{"id":"cyberware-mods.tailored-interface","type":"template","appliesTo":{"type":"cyberware","where":"item.strain >= 2"},"fields":{"strain":"prior.strain >= 2 ? prior.strain - 1 : prior.strain","cost":"prior.cost + floor(base.cost * 0.3)"}},{"id":"cyberware-mods.targeting-processor","type":"template","appliesTo":{"type":"cyberware"},"fields":{"cost":"prior.cost + floor(base.cost * 0.3)"}},{"id":"cyberware.active-sense-processor","type":"cyberware","fields":{"cost":50000,"category":"sensory","concealment":"medical","strain":1},"effects":[{"target":{"rolls":["skill.notice"]},"op":"add","value":1,"when":"'attr.wis' in roll.tags && attributes.wis.mod < 2"}]},{"id":"cyberware.aesthetic-augmentation-suite","type":"cyberware","fields":{"cost":50000,"category":"body","concealment":"sight","strain":2},"effects":[{"target":"attributes.cha.score","op":"atLeast","value":"attributes.cha.base >= 14 ? min(18, attributes.cha.base + 2) : 14"}]},{"id":"cyberware.assisted-glide-system","type":"cyberware","fields":{"cost":50000,"category":"body","concealment":"touch","strain":2}},{"id":"cyberware.banshee-module","type":"cyberware","fields":{"cost":30000,"category":"body","concealment":"medical","strain":1}},{"id":"cyberware.body-blades-i","type":"cyberware","tags":["blade"],"fields":{"cost":10000,"category":"limb","concealment":"medical","strain":1},"keepsTemplates":[{"template":"weapon-mods.body-blades-1","copies":{"type":"weapon","where":"'unarmed' in item.tags"},"when":"!self.damaged"}]},{"id":"cyberware.body-blades-ii","type":"cyberware","tags":["blade"],"fields":{"cost":25000,"category":"limb","concealment":"sight","strain":2},"keepsTemplates":[{"template":"weapon-mods.body-blades-2","copies":{"type":"weapon","where":"'unarmed' in item.tags"},"when":"!self.damaged"}]},{"id":"cyberware.coordination-augment-i","type":"cyberware","fields":{"cost":50000,"category":"nerve","concealment":"medical","strain":2},"effects":[{"target":"attributes.dex.score","op":"atLeast","value":"attributes.dex.base >= 14 ? min(18, attributes.dex.base + 2) : 14"}]},{"id":"cyberware.coordination-augment-ii","type":"cyberware","fields":{"cost":200000,"category":"nerve","concealment":"touch","strain":3},"effects":[{"target":"attributes.dex.score","op":"atLeast","value":18},{"target":"combat.move","op":"add","value":10}]},{"id":"cyberware.courier-memory","type":"cyberware","fields":{"cost":10000,"category":"head","concealment":"medical","strain":0.25}},{"id":"cyberware.cranial-jack","type":"cyberware","tags":["cranial-jack"],"fields":{"cost":1000,"category":"head","concealment":"touch","strain":0.25},"effects":[{"target":"hacking.cpu","op":"atLeast","value":1}]},{"id":"cyberware.cyberears","type":"cyberware","tags":["cyberears"],"fields":{"cost":10000,"category":"sensory","concealment":"touch","strain":0.25}},{"id":"cyberware.cybereyes","type":"cyberware","tags":["cybereyes"],"fields":{"cost":10000,"category":"sensory","concealment":"sight","strain":0.25}},{"id":"cyberware.cyberlimb","type":"cyberware","fields":{"cost":10000,"category":"limb","concealment":"touch","strain":0.5}},{"id":"cyberware.cybernetic-infrastructure-baseline","type":"cyberware","fields":{"cost":20000,"category":"body","concealment":"medical"},"effects":[{"target":"strain.cyberIgnored","op":"add","value":"max(0, 12 - attributes.con.score)"}]},{"id":"cyberware.deadman-circuit","type":"cyberware","fields":{"cost":10000,"category":"body","concealment":"sight","strain":0.25}},{"id":"cyberware.dermal-armor-i","type":"cyberware","tags":["dermal-armor"],"fields":{"cost":40000,"category":"skin","concealment":"medical","strain":1,"baseAc":16,"traumaMod":1}},{"id":"cyberware.dermal-armor-ii","type":"cyberware","tags":["dermal-armor"],"fields":{"cost":80000,"category":"skin","concealment":"touch","strain":2,"baseAc":18,"traumaMod":1}},{"id":"cyberware.dermal-armor-iii","type":"cyberware","tags":["dermal-armor"],"fields":{"cost":200000,"category":"skin","concealment":"sight","strain":3,"baseAc":20,"traumaMod":2}},{"id":"cyberware.dermal-armor-trauma-shielding","type":"cyberware","fields":{"cost":100000,"category":"body","concealment":"medical","strain":1,"traumaMod":1}},{"id":"cyberware.discretion-insurance-unit","type":"cyberware","fields":{"cost":10000,"category":"head","concealment":"medical","strain":0.5}},{"id":"cyberware.ear-mod-filter","type":"cyberware","fields":{"cost":10000,"category":"sensory","concealment":"medical","strain":0.5,"earMod":true}},{"id":"cyberware.ear-mod-positional-detection","type":"cyberware","fields":{"cost":15000,"category":"sensory","concealment":"medical","strain":0.5,"earMod":true}},{"id":"cyberware.ear-mod-sonar","type":"cyberware","fields":{"cost":20000,"category":"sensory","concealment":"medical","strain":0.5,"earMod":true}},{"id":"cyberware.ear-mod-tracer","type":"cyberware","fields":{"cost":10000,"category":"sensory","concealment":"medical","strain":0.5,"earMod":true}},{"id":"cyberware.emergency-stabilization-factor","type":"cyberware","fields":{"cost":30000,"category":"body","concealment":"medical","strain":1}},{"id":"cyberware.enhanced-reflexes-i","type":"cyberware","fields":{"cost":100000,"category":"nerve","concealment":"medical","strain":2}},{"id":"cyberware.enhanced-reflexes-ii","type":"cyberware","fields":{"cost":250000,"category":"nerve","concealment":"medical","strain":3,"triggerStrain":1}},{"id":"cyberware.enhanced-reflexes-iii","type":"cyberware","fields":{"cost":750000,"category":"nerve","concealment":"touch","strain":4,"triggerStrain":1}},{"id":"cyberware.eye-mod-dazzler","type":"cyberware","fields":{"cost":15000,"category":"head","concealment":"medical","strain":0.5,"eyeMod":true,"triggerStrain":1}},{"id":"cyberware.eye-mod-flechette-launcher","type":"cyberware","fields":{"cost":20000,"category":"head","concealment":"medical","strain":0.5,"eyeMod":true},"standardCopies":[{"type":"weapon","where":"item.id == @weapons.eye-flechette"}]},{"id":"cyberware.eye-mod-impostor","type":"cyberware","fields":{"cost":10000,"category":"sensory","concealment":"medical","strain":1,"eyeMod":true}},{"id":"cyberware.eye-mod-infrared-vision","type":"cyberware","fields":{"cost":5000,"category":"sensory","concealment":"medical","strain":0.5,"eyeMod":true}},{"id":"cyberware.eye-mod-low-light-vision","type":"cyberware","fields":{"cost":5000,"category":"sensory","concealment":"medical","strain":0.5,"eyeMod":true}},{"id":"cyberware.eye-mod-tactical-view","type":"cyberware","fields":{"cost":10000,"category":"sensory","concealment":"medical","strain":0.5,"eyeMod":true}},{"id":"cyberware.eye-mod-zoom","type":"cyberware","fields":{"cost":10000,"category":"sensory","concealment":"medical","strain":0.5,"eyeMod":true}},{"id":"cyberware.fleshmod","type":"cyberware","fields":{"cost":20000,"category":"body","concealment":"medical","strain":1}},{"id":"cyberware.full-body-conversion","type":"cyberware","fields":{"cost":6000000,"category":"body","concealment":"sight","traumaMod":6},"effects":[{"target":"strain.constitution","op":"atLeast","value":20}]},{"id":"cyberware.funes-complex","type":"cyberware","fields":{"cost":40000,"category":"head","concealment":"medical","strain":1}},{"id":"cyberware.gunlink","type":"cyberware","tags":["gunlink"],"fields":{"cost":25000,"category":"sensory","concealment":"touch","strain":1}},{"id":"cyberware.headcomm","type":"cyberware","fields":{"cost":1000,"category":"sensory","concealment":"medical","strain":0.25}},{"id":"cyberware.hemosynthetic-filter-system","type":"cyberware","fields":{"cost":25000,"category":"body","concealment":"medical","strain":1}},{"id":"cyberware.holdout-cavity","type":"cyberware","fields":{"cost":10000,"category":"body","concealment":"medical","strain":1}},{"id":"cyberware.iron-hand-aegis","type":"cyberware","fields":{"cost":40000,"category":"limb","concealment":"touch","strain":1}},{"id":"cyberware.limbgun","type":"cyberware","fields":{"cost":30000,"category":"limb","concealment":"touch","strain":1}},{"id":"cyberware.medical-support-readout","type":"cyberware","fields":{"cost":10000,"category":"body","concealment":"medical","strain":0.25}},{"id":"cyberware.medusa-implant","type":"cyberware","fields":{"cost":20000,"category":"head","concealment":"sight","strain":0.5}},{"id":"cyberware.muscle-fiber-replacement-i","type":"cyberware","fields":{"cost":50000,"category":"limb","concealment":"touch","strain":1},"effects":[{"target":"attributes.str.score","op":"atLeast","value":"attributes.str.base >= 14 ? min(18, attributes.str.base + 2) : 14"}]},{"id":"cyberware.muscle-fiber-replacement-ii","type":"cyberware","fields":{"cost":200000,"category":"limb","concealment":"sight","strain":2},"effects":[{"target":"attributes.str.score","op":"atLeast","value":18}]},{"id":"cyberware.neolimb","type":"cyberware","fields":{"cost":25000,"category":"limb","concealment":"sight","strain":1},"effects":[{"target":"enc.readiedMax","op":"add","value":2}]},{"id":"cyberware.neural-buffer","type":"cyberware","fields":{"cost":40000,"category":"head","concealment":"medical","strain":1},"state":{"bufferUsed":{"type":"integer","default":0,"min":0}},"effects":[{"target":{"incoming":{"fields":["hp.current"],"tags":["damage.cyberspace"]}},"op":"add","value":"min(3 * level - self.bufferUsed, -incoming.amount)","when":"!self.damaged && 3 * level > self.bufferUsed && incoming.amount < 0","then":[{"type":"adjustState","entry":"self","key":"bufferUsed","by":"min(3 * level - self.bufferUsed, -incoming.amount)"}]}]},{"id":"cyberware.omnihand","type":"cyberware","fields":{"cost":10000,"category":"limb","concealment":"touch","strain":0.25}},{"id":"cyberware.poseidon-implants","type":"cyberware","fields":{"cost":30000,"category":"skin","concealment":"touch","strain":1}},{"id":"cyberware.prosthetic-cyber-i","type":"cyberware","fields":{"cost":5000,"category":"medical","concealment":"sight","strain":1}},{"id":"cyberware.prosthetic-cyber-ii","type":"cyberware","fields":{"cost":15000,"category":"medical","concealment":"medical","strain":0.25}},{"id":"cyberware.reaction-booster-i","type":"cyberware","fields":{"cost":50000,"category":"nerve","concealment":"medical","strain":1},"effects":[{"target":"combat.initiative","op":"add","value":2}]},{"id":"cyberware.reaction-booster-ii","type":"cyberware","fields":{"cost":100000,"category":"nerve","concealment":"medical","strain":2},"effects":[{"target":"combat.initiative","op":"add","value":2}]},{"id":"cyberware.recovery-support-unit","type":"cyberware","fields":{"cost":30000,"category":"body","concealment":"medical","strain":1}},{"id":"cyberware.redundant-systems","type":"cyberware","fields":{"cost":15000,"category":"body","concealment":"medical","strain":1}},{"id":"cyberware.regulated-anagathic-substrate","type":"cyberware","fields":{"cost":200000,"category":"medical","concealment":"medical","strain":1}},{"id":"cyberware.remote-control-unit","type":"cyberware","fields":{"cost":10000,"category":"nerve","concealment":"touch","strain":2,"triggerStrain":1},"effects":[{"target":"drones.commandable","op":"atLeast","value":"1 + max(0, skills.drive.level)"}]},{"id":"cyberware.retribution-shield","type":"cyberware","fields":{"cost":50000,"category":"body","concealment":"touch","strain":1,"triggerStrain":1}},{"id":"cyberware.sealed-systems-implant","type":"cyberware","fields":{"cost":15000,"category":"skin","concealment":"medical","strain":1}},{"id":"cyberware.sensory-recorder","type":"cyberware","fields":{"cost":10000,"category":"sensory","concealment":"medical","strain":0.5}},{"id":"cyberware.sharkskin-electrodes","type":"cyberware","fields":{"cost":20000,"category":"skin","concealment":"touch","strain":1}},{"id":"cyberware.shock-fists","type":"cyberware","fields":{"cost":10000,"category":"limb","concealment":"touch","strain":1,"triggerStrain":1}},{"id":"cyberware.skillplug-jack-i","type":"cyberware","fields":{"cost":10000,"category":"head","concealment":"touch","strain":0.25},"effects":[{"target":"cyber.plugJack","op":"atLeast","value":1}]},{"id":"cyberware.skillplug-jack-ii","type":"cyberware","fields":{"cost":25000,"category":"head","concealment":"touch","strain":0.5},"effects":[{"target":"cyber.plugJack","op":"atLeast","value":2}]},{"id":"cyberware.skillplug-wiring","type":"cyberware","fields":{"cost":50000,"category":"nerve","concealment":"medical","strain":1},"effects":[{"target":"cyber.plugWiring","op":"set","value":true}]},{"id":"cyberware.skinmod","type":"cyberware","fields":{"cost":250,"category":"skin","concealment":"sight"}},{"id":"cyberware.skull-citadel","type":"cyberware","fields":{"cost":100000,"category":"head","concealment":"medical","strain":2}},{"id":"cyberware.skyborn-shielding","type":"cyberware","fields":{"cost":40000,"category":"skin","concealment":"sight","strain":2}},{"id":"cyberware.stick-pads","type":"cyberware","fields":{"cost":15000,"category":"limb","concealment":"touch","strain":0.5}},{"id":"cyberware.synthears","type":"cyberware","tags":["cyberears"],"fields":{"cost":25000,"category":"sensory","concealment":"medical","strain":0.25}},{"id":"cyberware.syntheyes","type":"cyberware","tags":["cybereyes"],"fields":{"cost":25000,"category":"sensory","concealment":"medical","strain":0.25}},{"id":"cyberware.synthlimb","type":"cyberware","fields":{"cost":25000,"category":"limb","concealment":"medical","strain":0.5}},{"id":"cyberware.therapeutic-control-dampers","type":"cyberware","fields":{"cost":25000,"category":"body","concealment":"medical","strain":1}},{"id":"cyberware.titan-gun-system","type":"cyberware","fields":{"cost":100000,"category":"body","concealment":"sight","strain":1}},{"id":"cyberware.trajectory-optimization-node","type":"cyberware","fields":{"cost":50000,"category":"nerve","concealment":"medical","strain":1}},{"id":"cyberware.viper-sting","type":"cyberware","fields":{"cost":25000,"category":"body","concealment":"medical","strain":0.5}},{"id":"cyberware.zombie-wires","type":"cyberware","fields":{"cost":60000,"category":"nerve","concealment":"medical","strain":2,"triggerStrain":2}},{"id":"drone-fittings.ablative-code-buffer","type":"template","appliesTo":{"type":"drone"},"fields":{"fittingsUsed":"prior.fittingsUsed + 1","cost":"prior.cost + floor(base.cost * 0.1)"}},{"id":"drone-fittings.altitude-boost-unit","type":"template","appliesTo":{"type":"drone"},"fields":{"fittingsUsed":"prior.fittingsUsed + 1","cost":"prior.cost + floor(base.cost * 0.1)"}},{"id":"drone-fittings.ammo-caddy","type":"template","appliesTo":{"type":"drone"},"fields":{"fittingsUsed":"prior.fittingsUsed + 1","cost":"prior.cost + floor(base.cost * 0.1)"}},{"id":"drone-fittings.ammo-supply","type":"template","appliesTo":{"type":"drone"},"fields":{"fittingsUsed":"prior.fittingsUsed + 1","cost":"prior.cost + floor(base.cost * 0.1)"}},{"id":"drone-fittings.assisted-boost-burner","type":"template","appliesTo":{"type":"drone"},"fields":{"fittingsUsed":"prior.fittingsUsed + 1","cost":"prior.cost + floor(base.cost * 0.1)"}},{"id":"drone-fittings.cargo-space","type":"template","appliesTo":{"type":"drone"},"fields":{"enc":"has(prior.enc) ? prior.enc + 1 : 0","fittingsUsed":"prior.fittingsUsed + 1","cost":"prior.cost + floor(base.cost * 0.2)"}},{"id":"drone-fittings.command-deck-follow","type":"template","appliesTo":{"type":"drone"},"fields":{"fittingsUsed":"prior.fittingsUsed + 1","cost":"prior.cost + floor(base.cost * 0.1)"}},{"id":"drone-fittings.command-deck-kill","type":"template","appliesTo":{"type":"drone"},"fields":{"fittingsUsed":"prior.fittingsUsed + 1","cost":"prior.cost + floor(base.cost * 0.25)"}},{"id":"drone-fittings.command-deck-patrol","type":"template","appliesTo":{"type":"drone"},"fields":{"fittingsUsed":"prior.fittingsUsed + 1","cost":"prior.cost + floor(base.cost * 0.1)"}},{"id":"drone-fittings.command-deck-watch","type":"template","appliesTo":{"type":"drone"},"fields":{"fittingsUsed":"prior.fittingsUsed + 1","cost":"prior.cost + floor(base.cost * 0.1)"}},{"id":"drone-fittings.emergency-evac-litter","type":"template","appliesTo":{"type":"drone"},"fields":{"fittingsUsed":"prior.fittingsUsed + 1","cost":"prior.cost + floor(base.cost * 0.25)"}},{"id":"drone-fittings.emissions-shielding","type":"template","appliesTo":{"type":"drone"},"fields":{"fittingsUsed":"prior.fittingsUsed + 1","cost":"prior.cost + floor(base.cost * 0.2)"}},{"id":"drone-fittings.enhanced-structure","type":"template","appliesTo":{"type":"drone"},"fields":{"hp":"prior.hp + ceil(base.hp * 0.25)","fittingsUsed":"prior.fittingsUsed + 1","cost":"prior.cost + floor(base.cost * 0.25)"}},{"id":"drone-fittings.extended-range","type":"template","appliesTo":{"type":"drone"},"fields":{"fittingsUsed":"prior.fittingsUsed + 1","cost":"prior.cost + floor(base.cost * 0.25)"}},{"id":"drone-fittings.glider-grips","type":"template","appliesTo":{"type":"drone"},"fields":{"fittingsUsed":"prior.fittingsUsed + 1","cost":"prior.cost + floor(base.cost * 0.2)"}},{"id":"drone-fittings.improved-armor","type":"template","appliesTo":{"type":"drone"},"fields":{"ac":"min(18, prior.ac + 2)","enc":"has(prior.enc) ? prior.enc + 1 : 0","fittingsUsed":"prior.fittingsUsed + 1","cost":"prior.cost + floor(base.cost * 0.25)"}},{"id":"drone-fittings.improved-targeting-logic","type":"template","appliesTo":{"type":"drone"},"fields":{"fittingsUsed":"prior.fittingsUsed + 1","cost":"prior.cost + floor(base.cost * 0.2)"}},{"id":"drone-fittings.laser-comms","type":"template","appliesTo":{"type":"drone"},"fields":{"fittingsUsed":"prior.fittingsUsed + 1","cost":"prior.cost + floor(base.cost * 0.1)"}},{"id":"drone-fittings.manipulator-tendrils","type":"template","appliesTo":{"type":"drone"},"fields":{"fittingsUsed":"prior.fittingsUsed + 1","cost":"prior.cost + floor(base.cost * 0.2)"}},{"id":"drone-fittings.memory-banks","type":"template","appliesTo":{"type":"drone"},"fields":{"fittingsUsed":"prior.fittingsUsed + 1","cost":"prior.cost + floor(base.cost * 0.1)"}},{"id":"drone-fittings.no-touch-web","type":"template","appliesTo":{"type":"drone"},"fields":{"fittingsUsed":"prior.fittingsUsed + 1","cost":"prior.cost + floor(base.cost * 0.1)"}},{"id":"drone-fittings.sleep-mode","type":"template","appliesTo":{"type":"drone"},"fields":{"fittingsUsed":"prior.fittingsUsed + 1","cost":"prior.cost + floor(base.cost * 0.1)"}},{"id":"drone-fittings.stealth-package","type":"template","appliesTo":{"type":"drone"},"fields":{"fittingsUsed":"prior.fittingsUsed + 1","cost":"prior.cost + floor(base.cost * 0.25)"}},{"id":"drone-fittings.suicide-charge","type":"template","appliesTo":{"type":"drone"},"fields":{"fittingsUsed":"prior.fittingsUsed + 1","cost":"prior.cost + floor(base.cost * 0.25)"}},{"id":"drone-fittings.telescopic-optics","type":"template","appliesTo":{"type":"drone"},"fields":{"fittingsUsed":"prior.fittingsUsed + 1","cost":"prior.cost + floor(base.cost * 0.2)"}},{"id":"drone-fittings.thermal-optics","type":"template","appliesTo":{"type":"drone"},"fields":{"fittingsUsed":"prior.fittingsUsed + 1","cost":"prior.cost + floor(base.cost * 0.2)"}},{"id":"drone-fittings.trauma-response-suite","type":"template","appliesTo":{"type":"drone"},"fields":{"fittingsUsed":"prior.fittingsUsed + 1","cost":"prior.cost + floor(base.cost * 0.25)"}},{"id":"drone-fittings.voice-broadcast","type":"template","appliesTo":{"type":"drone"},"fields":{"fittingsUsed":"prior.fittingsUsed + 1","cost":"prior.cost + floor(base.cost * 0.1)"}},{"id":"drone-fittings.wallcrawler","type":"template","appliesTo":{"type":"drone"},"fields":{"fittingsUsed":"prior.fittingsUsed + 1","cost":"prior.cost + floor(base.cost * 0.2)"}},{"id":"drone-fittings.weapon-hardpoint","type":"template","appliesTo":{"type":"drone"},"fields":{"hardpoints":"prior.hardpoints + 1","fittingsUsed":"prior.fittingsUsed + 2","cost":"prior.cost + floor(base.cost * 0.25)"}},{"id":"drone-mods.additional-fitting","type":"template","appliesTo":{"type":"drone"},"fields":{"fittings":"prior.fittings + 1","enc":"has(prior.enc) ? prior.enc + 1 : 0","cost":"prior.cost + floor(base.cost * 0.5)"}},{"id":"drone-mods.additional-hardpoint","type":"template","appliesTo":{"type":"drone"},"fields":{"hardpoints":"prior.hardpoints + 1","enc":"has(prior.enc) ? prior.enc + 1 : 0","cost":"prior.cost + floor(base.cost * 0.5)"}},{"id":"drone-mods.battery-swapping","type":"template","appliesTo":{"type":"drone","where":"'portable' in item.tags"},"fields":{"cost":"prior.cost + floor(base.cost * 0.1)"}},{"id":"drone-mods.boosted-engine","type":"template","appliesTo":{"type":"drone"},"fields":{"move":"prior.move + 10","cost":"prior.cost + floor(base.cost * 0.25)"}},{"id":"drone-mods.heavy-plating","type":"template","appliesTo":{"type":"drone"},"fields":{"ac":"prior.ac + 2","move":"max(0, prior.move - 5)","enc":"has(prior.enc) ? prior.enc + 1 : 0","cost":"prior.cost + floor(base.cost * 0.25)"}},{"id":"drone-mods.quick-launch","type":"template","appliesTo":{"type":"drone","where":"'portable' in item.tags"},"fields":{"cost":"prior.cost + floor(base.cost * 0.1)"}},{"id":"drone-mods.redundant-systems","type":"template","appliesTo":{"type":"drone"},"fields":{"hp":"prior.hp + ceil(base.hp * 0.25)","enc":"has(prior.enc) ? prior.enc + 1 : 0","cost":"prior.cost + floor(base.cost * 0.5)"}},{"id":"drone-mods.stripped-fittings","type":"template","appliesTo":{"type":"drone","where":"'portable' in item.tags"},"fields":{"fittings":"max(0, prior.fittings - 1)","enc":"has(prior.enc) ? max(1, prior.enc - 1) : 0","cost":"prior.cost + floor(base.cost * 0.1)"}},{"id":"drones.hummingbird","type":"drone","tags":["portable"],"fields":{"cost":2000,"enc":3,"ac":15,"traumaTarget":6,"hp":5,"fittings":2,"move":10,"moveKind":"fly","hardpoints":0}},{"id":"drones.javelin","type":"drone","tags":["portable"],"fields":{"cost":10000,"enc":6,"ac":16,"traumaTarget":6,"hp":12,"fittings":5,"move":20,"moveKind":"fly","hardpoints":1}},{"id":"drones.kerberos","type":"drone","fields":{"cost":15000,"ac":18,"traumaTarget":8,"hp":25,"fittings":6,"move":20,"moveKind":"ground","hardpoints":3}},{"id":"drones.kraken","type":"drone","fields":{"cost":10000,"ac":16,"traumaTarget":8,"hp":20,"fittings":5,"move":15,"moveKind":"swim","hardpoints":2}},{"id":"drones.mouse","type":"drone","tags":["portable"],"fields":{"cost":500,"enc":1,"ac":13,"traumaTarget":6,"hp":1,"fittings":0,"move":5,"moveKind":"ground","hardpoints":0}},{"id":"drones.pitbull","type":"drone","tags":["portable"],"fields":{"cost":5000,"enc":5,"ac":15,"traumaTarget":8,"hp":15,"fittings":5,"move":20,"moveKind":"ground","hardpoints":1}},{"id":"drones.roach","type":"drone","tags":["portable"],"fields":{"cost":1000,"enc":3,"ac":13,"traumaTarget":6,"hp":8,"fittings":3,"move":10,"moveKind":"ground","hardpoints":0}},{"id":"drones.shrike","type":"drone","fields":{"cost":25000,"ac":18,"traumaTarget":8,"hp":20,"fittings":6,"move":30,"moveKind":"fly","hardpoints":2}},{"id":"drones.sunfish","type":"drone","tags":["portable"],"fields":{"cost":1000,"enc":3,"ac":15,"traumaTarget":6,"hp":8,"fittings":3,"move":10,"moveKind":"swim","hardpoints":0}},{"id":"drugs.avalanche","type":"drug","fields":{"cost":100,"minHeal":0}},{"id":"drugs.boneshaker","type":"drug","fields":{"cost":10,"strain":2}},{"id":"drugs.chokeout","type":"drug","fields":{"cost":50}},{"id":"drugs.control-delete","type":"drug","fields":{"cost":25}},{"id":"drugs.hellbender","type":"drug","fields":{"cost":100}},{"id":"drugs.lurch","type":"drug","fields":{"cost":25,"minHeal":0,"strain":1,"healDice":"1d10"}},{"id":"drugs.madeleine","type":"drug","fields":{"cost":100}},{"id":"drugs.medical-prescription","type":"drug","fields":{"cost":20}},{"id":"drugs.olympus","type":"drug","fields":{"cost":100,"minHeal":0,"strain":1}},{"id":"drugs.panacea","type":"drug","fields":{"cost":200,"minHeal":1}},{"id":"drugs.pillow","type":"drug","fields":{"cost":10,"minHeal":0}},{"id":"drugs.psycho","type":"drug","fields":{"cost":10}},{"id":"drugs.reset","type":"drug","tags":["restricted"],"fields":{"cost":1000}},{"id":"drugs.sand","type":"drug","fields":{"cost":2}},{"id":"drugs.trauma-patch","type":"drug","fields":{"cost":50}},{"id":"drugs.window","type":"drug","fields":{"cost":200,"minHeal":1}},{"id":"edges.educated","type":"edge","tags":["retroactive-points"],"fields":{"bonusSkill":"any"},"effects":[{"target":"skillPoints.perLevel","op":"add","value":1}]},{"id":"edges.face","type":"edge","fields":{"bonusSkill":"connect"}},{"id":"edges.focused","type":"edge","repeatable":true,"fields":{"extraFocus":true},"effects":[{"target":"foci.allowed","op":"add","value":1}]},{"id":"edges.ghost","type":"edge","fields":{"bonusSkill":"sneak"}},{"id":"edges.graced","type":"edge","fields":{"magic":true,"buysArts":true},"effects":[{"target":"magic.graced","op":"set","value":true}]},{"id":"edges.hacker","type":"edge","tags":["brings-cyber"],"fields":{"bonusSkill":"program","programElements":8,"startingItems":["cyberdecks.scrap-deck"],"startingCyber":["cyberware.cranial-jack"],"startingCyberStrain":0.25}},{"id":"edges.hard-to-kill","type":"edge","effects":[{"target":"hp.dieBonus","op":"add","value":2},{"target":"trauma.target","op":"add","value":1}]},{"id":"edges.killing-blow","type":"edge","fields":{"bonusSkill":"combat"},"effects":[{"target":"combat.damageBonus","op":"add","value":"ceil(level / 2)"},{"target":"combat.traumaBonus","op":"add","value":1}]},{"id":"edges.masterful-expertise","type":"edge"},{"id":"edges.on-target","type":"edge","fields":{"bonusSkill":"combat"},"effects":[{"target":"combat.attackBonus","op":"set","value":"level"}]},{"id":"edges.operators-fortune","type":"edge"},{"id":"edges.prodigy","type":"edge","tags":["not-underdog"],"fields":{"asksAttribute":true},"choices":[{"id":"attribute","from":{"values":["str","dex","int","wis","cha"]},"effects":[{"target":{"fields":{"where":"'attribute' in item.tags && ('attr.' + pick.value) in item.tags"}},"op":"atLeast","value":18},{"target":{"fields":{"where":"'attribute-score-mod' in item.tags && ('attr.' + pick.value) in item.tags"}},"op":"atLeast","value":3}]}],"prerequisites":[{"id":"not-underdog","when":"!underdog"}]},{"id":"edges.spellcaster","type":"edge","fields":{"magic":true,"bonusSkill":"cast","spells":4},"effects":[{"target":"magic.mage","op":"set","value":true}]},{"id":"edges.summoner","type":"edge","fields":{"magic":true,"bonusSkill":"summon"},"effects":[{"target":"magic.summoner","op":"set","value":true}]},{"id":"edges.veterans-luck","type":"edge"},{"id":"edges.voice-of-the-people","type":"edge","fields":{"friendContacts":1},"grants":[{"item":"foci.pop-idol","state":{"level":2}}]},{"id":"edges.wired","type":"edge","tags":["brings-cyber"],"fields":{"cyberBudget":200000},"effects":[{"target":"cyber.wiredBudget","op":"add","value":200000}]},{"id":"foci.ace-driver","type":"focus","fields":{"bonusSkill":"drive","levelTwoSkill":"fix","gearBudget":"vehicle"},"effects":[{"target":"budget.vehicle","op":"atLeast","value":"[5000, 10000, 15000, 20000, 30000, 40000, 60000, 80000, 100000, 200000][level - 1]"}]},{"id":"foci.alert","type":"focus","fields":{"bonusSkill":"notice"}},{"id":"foci.all-natural","type":"focus","tags":["asks-attribute"],"fields":{"maxLevel":1,"bonusSkill":"any"},"prerequisites":[{"id":"no-cyber","when":"countCopies(copy.type == 'cyberware' && copy.fields.strain > 0) == 0"},{"id":"no-magic","when":"!magic.mage && !magic.summoner && !magic.graced"}],"choices":[{"id":"attribute","slots":[1,3,5,7,10],"when":"level >= slot","from":{"values":["str","dex","con","int","wis","cha"]},"effects":[{"target":{"fields":{"where":"'attribute-mod-bonus' in item.tags && ('attr.' + pick.value) in item.tags"}},"op":"add","value":1},{"target":{"fields":{"where":"'attribute-mod-cap' in item.tags && ('attr.' + pick.value) in item.tags"}},"op":"atLeast","value":3}]}]},{"id":"foci.armsmaster","type":"focus","fields":{"bonusSkill":"stab"},"effects":[{"target":"combat.meleeSkillDamage","op":"atLeast","value":"max(0, skills.stab.level)"},{"target":"combat.shockAc","op":"atMost","value":10,"when":"self.level >= 2"},{"target":"combat.meleeHitBonus","op":"add","value":1,"when":"self.level >= 2"}]},{"id":"foci.assassin","type":"focus","fields":{"bonusSkill":"sneak"}},{"id":"foci.authority","type":"focus","fields":{"bonusSkill":"lead"}},{"id":"foci.close-combatant","type":"focus","fields":{"bonusSkill":"combat"},"effects":[{"target":"combat.shockAc","op":"atMost","value":10,"when":"self.level >= 2"}]},{"id":"foci.cyberdoc","type":"focus","fields":{"bonusSkill":"fix","bonusSkill2":"heal","startingItems":["gear.kit-cyberdoc"]}},{"id":"foci.deadeye","type":"focus","fields":{"bonusSkill":"shoot"},"effects":[{"target":"combat.rangedSkillDamage","op":"atLeast","value":"max(0, skills.shoot.level)"}]},{"id":"foci.diplomat","type":"focus","fields":{"bonusSkill":"talk"}},{"id":"foci.drone-pilot","type":"focus","tags":["brings-cyber"],"fields":{"bonusSkill":"drive","bonusSkill2":"fix","gearBudget":"drone","startingCyber":["cyberware.remote-control-unit"],"startingCyberStrain":2},"effects":[{"target":"budget.drone","op":"atLeast","value":"[1000, 5000, 10000, 15000, 20000, 25000, 35000, 45000, 60000, 80000][level - 1]"},{"target":"drones.attackBonus","op":"add","value":2,"when":"self.level >= 2"}]},{"id":"foci.expert-programmer","type":"focus","fields":{"bonusSkill":"program"},"effects":[{"target":"hacking.programming.max","op":"add","value":"level + 2"},{"target":"hacking.memory.perElement","op":"set","value":0.5,"when":"self.level >= 2"},{"target":"hacking.cpu","op":"add","value":"max(0, skills.program.level)","when":"self.level >= 2"}]},{"id":"foci.healer","type":"focus","fields":{"bonusSkill":"heal"},"effects":[{"target":{"rolls":["skill.heal"]},"op":"rollModifier","value":{"kind":"poolDice","count":1},"stackKey":"skill-dice"}]},{"id":"foci.henchkeeper","type":"focus","fields":{"bonusSkill":"lead"}},{"id":"foci.many-faces","type":"focus","fields":{"maxLevel":1,"bonusSkill":"sneak"}},{"id":"foci.pop-idol","type":"focus","fields":{"bonusSkill":"perform"},"effects":[{"target":"attributes.cha.modBonus","op":"add","value":1,"when":"self.level >= 2"}]},{"id":"foci.roamer","type":"focus","fields":{"bonusSkill":"survive","bonusSkill2":"drive","gearBudget":"vehicle"},"effects":[{"target":"budget.vehicle","op":"atLeast","value":"[5000, 10000, 15000, 20000, 30000, 40000, 60000, 80000, 100000, 200000][level - 1]"}]},{"id":"foci.safe-haven","type":"focus","fields":{"bonusSkill":"sneak"}},{"id":"foci.shocking-assault","type":"focus","fields":{"bonusSkill":"punch-stab"},"effects":[{"target":"combat.shockAc","op":"atMost","value":10},{"target":"combat.shockBonus","op":"add","value":2,"when":"self.level >= 2"}]},{"id":"foci.snipers-eye","type":"focus","fields":{"bonusSkill":"shoot"}},{"id":"foci.specialist","type":"focus","tags":["repeatable"],"fields":{"bonusSkill":"noncombat"},"choices":[{"id":"skill","from":{"values":["administer","connect","drive","exert","fix","heal","know","lead","notice","perform","program","sneak","survive","talk","trade","work"]},"effects":[{"target":{"rolls":["skill-check"]},"op":"rollModifier","value":{"kind":"poolDice","count":"self.level >= 2 ? 2 : 1"},"when":"('skill.' + pick.value) in roll.tags","stackKey":"skill-dice"}]}]},{"id":"foci.tinker","type":"focus","fields":{"bonusSkill":"fix"},"effects":[{"target":"maintenance.multiplier","op":"set","value":2},{"target":"maintenance.fixBonus","op":"add","value":1,"when":"self.level >= 2"}]},{"id":"foci.unarmed-combatant","type":"focus","fields":{"bonusSkill":"punch"},"keepsTemplates":[{"template":"weapon-mods.unarmed-combatant","copies":{"type":"weapon","where":"'unarmed' in item.tags"}},{"template":"weapon-mods.unarmed-combatant-2","when":"self.level >= 2","copies":{"type":"weapon","where":"'unarmed' in item.tags"}}]},{"id":"foci.unique-gift","type":"focus","fields":{"maxLevel":1}},{"id":"foci.unregistered","type":"focus","fields":{"maxLevel":1}},{"id":"foci.whirlwind-assault","type":"focus","fields":{"bonusSkill":"punch-stab"}},{"id":"gear.active-hearing-protection","type":"gear","fields":{"cost":250,"enc":1}},{"id":"gear.ammunition","type":"gear","fields":{"cost":1}},{"id":"gear.anti-flash-goggles","type":"gear","fields":{"cost":100,"enc":1}},{"id":"gear.backpack","type":"gear","tags":["worn"],"fields":{"cost":25,"enc":1}},{"id":"gear.basic-smartphone","type":"gear","fields":{"cost":50}},{"id":"gear.binoculars","type":"gear","fields":{"cost":100,"enc":1}},{"id":"gear.bus-pass-monthly","type":"gear","fields":{"cost":50}},{"id":"gear.cheap-vr-crown","type":"gear","tags":["vr-crown"],"fields":{"cost":50,"enc":1}},{"id":"gear.climbing-kit","type":"gear","fields":{"cost":150,"enc":2}},{"id":"gear.empty-magazine","type":"gear","fields":{"cost":10,"enc":1}},{"id":"gear.fashionable-clothing","type":"gear","tags":["worn"],"fields":{"cost":500,"enc":1}},{"id":"gear.fashionable-smartphone","type":"gear","fields":{"cost":2000}},{"id":"gear.gas-mask","type":"gear","fields":{"cost":1000,"enc":1}},{"id":"gear.handheld-radio","type":"gear","fields":{"cost":50,"enc":1}},{"id":"gear.haute-couture-clothing","type":"gear","tags":["worn"],"fields":{"cost":10000,"enc":1}},{"id":"gear.ir-goggles","type":"gear","fields":{"cost":1000,"enc":1}},{"id":"gear.kit-basic-tools","type":"gear","fields":{"cost":100,"enc":2}},{"id":"gear.kit-cyberdoc","type":"gear","fields":{"cost":500,"enc":2}},{"id":"gear.kit-medkit","type":"gear","fields":{"cost":100,"enc":1}},{"id":"gear.kit-survival","type":"gear","fields":{"cost":100,"enc":2}},{"id":"gear.lockpicks","type":"gear","fields":{"cost":100,"enc":1}},{"id":"gear.maintenance-supplies","type":"gear","fields":{"cost":0,"enc":1}},{"id":"gear.manufacturers-installation-kit","type":"gear","fields":{"cost":10000,"enc":1}},{"id":"gear.military-ration","type":"gear","fields":{"cost":20,"enc":1}},{"id":"gear.ordinary-clothes","type":"gear","tags":["worn"],"fields":{"cost":25,"enc":1}},{"id":"gear.portable-video-camera","type":"gear","fields":{"cost":300,"enc":1}},{"id":"gear.smartphone-service-plan","type":"gear","fields":{"cost":10}},{"id":"gear.surgical-theater-tools-level-1","type":"gear","fields":{"cost":10000,"enc":10}},{"id":"gear.surgical-theater-tools-level-2","type":"gear","fields":{"cost":500000}},{"id":"gear.surgical-theater-tools-level-3","type":"gear","fields":{"cost":5000000}},{"id":"gear.ultralight-tab-radio","type":"gear","fields":{"cost":500,"enc":0}},{"id":"gear.wearable-light","type":"gear","tags":["worn"],"fields":{"cost":25,"enc":1}},{"id":"programs.subjects.avatar","type":"program","fields":{"cost":500,"kind":"subject","subjectType":"avatar"}},{"id":"programs.subjects.barrier","type":"program","fields":{"cost":1000,"kind":"subject","subjectType":"data"}},{"id":"programs.subjects.camera","type":"program","fields":{"cost":500,"kind":"subject","subjectType":"device"}},{"id":"programs.subjects.cyber","type":"program","fields":{"cost":1000,"kind":"subject","subjectType":"cyber"}},{"id":"programs.subjects.datafile","type":"program","fields":{"cost":500,"kind":"subject","subjectType":"data"}},{"id":"programs.subjects.door","type":"program","fields":{"cost":500,"kind":"subject","subjectType":"device"}},{"id":"programs.subjects.drone","type":"program","fields":{"cost":1000,"kind":"subject","subjectType":"device"}},{"id":"programs.subjects.machine","type":"program","fields":{"cost":500,"kind":"subject","subjectType":"device"}},{"id":"programs.subjects.program","type":"program","fields":{"cost":500,"kind":"subject","subjectType":"program"}},{"id":"programs.subjects.sensor","type":"program","fields":{"cost":500,"kind":"subject","subjectType":"device"}},{"id":"programs.subjects.transmission","type":"program","fields":{"cost":1000,"kind":"subject","subjectType":"data"}},{"id":"programs.subjects.turret","type":"program","fields":{"cost":1000,"kind":"subject","subjectType":"device"}},{"id":"programs.verbs.activate","type":"program","tags":["self-terminating"],"fields":{"cost":1000,"kind":"verb","targets":["device","cyber"],"accessCost":1,"checkMod":1}},{"id":"programs.verbs.analyze","type":"program","tags":["self-terminating"],"fields":{"cost":500,"kind":"verb","targets":["device","data"],"accessCost":0,"checkMod":1}},{"id":"programs.verbs.append","type":"program","tags":["self-terminating"],"fields":{"cost":500,"kind":"verb","targets":["data"],"accessCost":1}},{"id":"programs.verbs.blind","type":"program","fields":{"cost":2000,"kind":"verb","targets":["device","cyber"],"accessCost":1}},{"id":"programs.verbs.deactivate","type":"program","tags":["self-terminating"],"fields":{"cost":2000,"kind":"verb","targets":["device","cyber"],"accessCost":1,"checkMod":1}},{"id":"programs.verbs.decrypt","type":"program","tags":["self-terminating"],"fields":{"cost":1000,"kind":"verb","targets":["data"],"accessCost":1}},{"id":"programs.verbs.defend","type":"program","fields":{"cost":1000,"kind":"verb","targets":["device","cyber"],"accessCost":0}},{"id":"programs.verbs.delude","type":"program","fields":{"cost":5000,"kind":"verb","targets":["device"],"accessCost":1,"checkMod":-1}},{"id":"programs.verbs.erase","type":"program","tags":["self-terminating"],"fields":{"cost":500,"kind":"verb","targets":["data"],"accessCost":1,"checkMod":1}},{"id":"programs.verbs.frisk","type":"program","tags":["self-terminating"],"fields":{"cost":500,"kind":"verb","targets":["cyber"],"accessCost":0,"checkMod":1}},{"id":"programs.verbs.ghost","type":"program","fields":{"cost":2000,"kind":"verb","targets":["avatar"],"accessCost":1}},{"id":"programs.verbs.glitch","type":"program","fields":{"cost":1000,"kind":"verb","targets":["device","cyber"],"accessCost":0,"checkMod":2}},{"id":"programs.verbs.hijack","type":"program","fields":{"cost":5000,"kind":"verb","targets":["device"],"accessCost":1,"checkMod":-1}},{"id":"programs.verbs.kill","type":"program","tags":["self-terminating"],"fields":{"cost":5000,"kind":"verb","targets":["avatar"],"accessCost":1}},{"id":"programs.verbs.lock","type":"program","fields":{"cost":1000,"kind":"verb","targets":["device","data"],"accessCost":1,"checkMod":1}},{"id":"programs.verbs.paralyze","type":"program","fields":{"cost":2000,"kind":"verb","targets":["avatar"],"accessCost":1,"checkMod":-1}},{"id":"programs.verbs.replace","type":"program","tags":["self-terminating"],"fields":{"cost":1000,"kind":"verb","targets":["data"],"accessCost":1}},{"id":"programs.verbs.sabotage","type":"program","tags":["self-terminating"],"fields":{"cost":2000,"kind":"verb","targets":["device","cyber"],"accessCost":1,"checkMod":-1}},{"id":"programs.verbs.sense","type":"program","fields":{"cost":1000,"kind":"verb","targets":["device","cyber"],"accessCost":0}},{"id":"programs.verbs.siege","type":"program","fields":{"cost":2500,"kind":"verb","targets":["device"],"accessCost":1,"checkMod":-2}},{"id":"programs.verbs.silence","type":"program","fields":{"cost":1000,"kind":"verb","targets":["avatar"],"accessCost":1,"checkMod":1}},{"id":"programs.verbs.stun","type":"program","tags":["self-terminating"],"fields":{"cost":1000,"kind":"verb","targets":["avatar"],"accessCost":0,"checkMod":1}},{"id":"programs.verbs.terminate","type":"program","tags":["self-terminating"],"fields":{"cost":500,"kind":"verb","targets":["program"],"accessCost":1}},{"id":"programs.verbs.unlock","type":"program","tags":["self-terminating"],"fields":{"cost":500,"kind":"verb","targets":["device","data"],"accessCost":1,"checkMod":1}},{"id":"skillplugs.level-0","type":"skillplug","fields":{"cost":1000,"plugLevel":0},"choices":[{"id":"skill","from":{"values":["administer","connect","drive","exert","fix","heal","know","lead","notice","perform","program","punch","shoot","sneak","stab","survive","talk","trade","work"]},"effects":[{"target":{"fields":{"where":"'skill' in item.tags && ('skill.' + pick.value) in item.tags"}},"op":"atLeast","value":0,"when":"self.equipped && cyber.plugJack >= (pick.value in ['drive', 'exert', 'perform', 'punch', 'shoot', 'sneak', 'stab'] ? 2 : 1)"}]}]},{"id":"skillplugs.level-1","type":"skillplug","fields":{"cost":10000,"plugLevel":1},"choices":[{"id":"skill","from":{"values":["administer","connect","drive","exert","fix","heal","know","lead","notice","perform","program","punch","shoot","sneak","stab","survive","talk","trade","work"]},"effects":[{"target":{"fields":{"where":"'skill' in item.tags && ('skill.' + pick.value) in item.tags"}},"op":"atLeast","value":1,"when":"self.equipped && cyber.plugJack >= (pick.value in ['drive', 'exert', 'perform', 'punch', 'shoot', 'sneak', 'stab'] ? 2 : 1)"}]}]},{"id":"skillplugs.level-2","type":"skillplug","fields":{"cost":50000,"plugLevel":2},"choices":[{"id":"skill","from":{"values":["administer","connect","drive","exert","fix","heal","know","lead","notice","perform","program","punch","shoot","sneak","stab","survive","talk","trade","work"]},"effects":[{"target":{"fields":{"where":"'skill' in item.tags && ('skill.' + pick.value) in item.tags"}},"op":"atLeast","value":2,"when":"self.equipped && cyber.plugJack >= (pick.value in ['drive', 'exert', 'perform', 'punch', 'shoot', 'sneak', 'stab'] ? 2 : 1) && cyber.plugWiring"}]}]},{"id":"skillplugs.level-3","type":"skillplug","tags":["restricted"],"fields":{"cost":0,"plugLevel":3},"choices":[{"id":"skill","from":{"values":["administer","connect","drive","exert","fix","heal","know","lead","notice","perform","program","punch","shoot","sneak","stab","survive","talk","trade","work"]},"effects":[{"target":{"fields":{"where":"'skill' in item.tags && ('skill.' + pick.value) in item.tags"}},"op":"atLeast","value":3,"when":"self.equipped && cyber.plugJack >= (pick.value in ['drive', 'exert', 'perform', 'punch', 'shoot', 'sneak', 'stab'] ? 2 : 1) && cyber.plugWiring"}]}]},{"id":"spells.arson","type":"spell","fields":{"effort":"day","duration":"instant"}},{"id":"spells.blast","type":"spell","fields":{"effort":"day","duration":"instant"}},{"id":"spells.blastwave","type":"spell","fields":{"effort":"day","duration":"instant"}},{"id":"spells.bless","type":"spell","fields":{"effort":"scene","duration":"scene"}},{"id":"spells.cleanse-toxin","type":"spell","fields":{"effort":"day","duration":"instant"}},{"id":"spells.cloak","type":"spell","fields":{"effort":"day","duration":"scene"}},{"id":"spells.combat-precognition","type":"spell","fields":{"effort":"day","duration":"scene"}},{"id":"spells.compulsion","type":"spell","fields":{"effort":"scene","duration":"scene"}},{"id":"spells.curse","type":"spell","fields":{"effort":"scene","duration":"rounds"}},{"id":"spells.detect-target","type":"spell","fields":{"effort":"scene","duration":"scene"}},{"id":"spells.dispel","type":"spell","fields":{"effort":"day","duration":"instant"}},{"id":"spells.disrupt","type":"spell","fields":{"effort":"day","duration":"instant"}},{"id":"spells.emotion","type":"spell","fields":{"effort":"either","duration":"scene"}},{"id":"spells.far-senses","type":"spell","fields":{"effort":"day","duration":"concentration"}},{"id":"spells.glide","type":"spell","fields":{"effort":"scene","duration":"instant"}},{"id":"spells.haste","type":"spell","fields":{"effort":"day","duration":"scene"}},{"id":"spells.heal-injury","type":"spell","fields":{"effort":"day","duration":"instant"}},{"id":"spells.illumination","type":"spell","fields":{"effort":"none","duration":"scene"}},{"id":"spells.mirage","type":"spell","fields":{"effort":"scene","duration":"scene"}},{"id":"spells.muffle","type":"spell","fields":{"effort":"scene","duration":"scene"}},{"id":"spells.paralysis","type":"spell","fields":{"effort":"day","duration":"scene"}},{"id":"spells.psychic-interrogation","type":"spell","fields":{"effort":"day","duration":"instant"}},{"id":"spells.slow","type":"spell","fields":{"effort":"day","duration":"rounds"}},{"id":"spells.soul-link","type":"spell","fields":{"effort":"scene","duration":"scene"}},{"id":"spells.stun","type":"spell","fields":{"effort":"either","duration":"instant"}},{"id":"spells.stunwave","type":"spell","fields":{"effort":"day","duration":"instant"}},{"id":"spells.triage","type":"spell","fields":{"effort":"either","duration":"instant"}},{"id":"spirit-powers.airy-steps","type":"spiritPower"},{"id":"spirit-powers.artifice-wise","type":"spiritPower"},{"id":"spirit-powers.aura-of-destruction","type":"spiritPower"},{"id":"spirit-powers.curse","type":"spiritPower"},{"id":"spirit-powers.ensnare","type":"spiritPower","fields":{"physicalOnly":true}},{"id":"spirit-powers.favor","type":"spiritPower"},{"id":"spirit-powers.feral-pact","type":"spiritPower"},{"id":"spirit-powers.finned-swiftness","type":"spiritPower"},{"id":"spirit-powers.flesh-of-clay","type":"spiritPower"},{"id":"spirit-powers.ghostly-presence","type":"spiritPower"},{"id":"spirit-powers.hideous-talons","type":"spiritPower","fields":{"physicalOnly":true}},{"id":"spirit-powers.iron-eidolon","type":"spiritPower","fields":{"physicalOnly":true}},{"id":"spirit-powers.merciful-hands","type":"spiritPower"},{"id":"spirit-powers.mighty-form","type":"spiritPower","fields":{"physicalOnly":true}},{"id":"spirit-powers.mislead","type":"spiritPower"},{"id":"spirit-powers.misty-form","type":"spiritPower"},{"id":"spirit-powers.mortal-disguise","type":"spiritPower"},{"id":"spirit-powers.myrmidons-shield","type":"spiritPower"},{"id":"spirit-powers.namebearer","type":"spiritPower"},{"id":"spirit-powers.natural-immunity","type":"spiritPower"},{"id":"spirit-powers.poltergeist","type":"spiritPower"},{"id":"spirit-powers.skilled","type":"spiritPower"},{"id":"spirit-powers.spiderlegs","type":"spiritPower"},{"id":"spirit-powers.spirit-of-war","type":"spiritPower","fields":{"physicalOnly":true}},{"id":"spirit-powers.spirit-whispers","type":"spiritPower"},{"id":"spirit-powers.spirits-eye","type":"spiritPower"},{"id":"spirit-powers.swift-pursuit","type":"spiritPower"},{"id":"spirit-powers.violent-will","type":"spiritPower","fields":{"physicalOnly":true}},{"id":"spirits.spirit","type":"spirit","choices":[{"id":"powers","from":{"type":"spiritPower"},"pick":{"min":0,"max":31},"required":false,"eligible":"level >= item.minLevel && (!item.physicalOnly || self.form in ['physical-1', 'physical-2', 'physical-3'])"}]},{"id":"syndromes.brutal","type":"syndrome","fields":{"alienation":4}},{"id":"syndromes.candid","type":"syndrome","fields":{"alienation":3}},{"id":"syndromes.cold","type":"syndrome","fields":{"alienation":4}},{"id":"syndromes.distant","type":"syndrome","fields":{"alienation":3}},{"id":"syndromes.exultant","type":"syndrome","fields":{"alienation":3}},{"id":"syndromes.fearless","type":"syndrome","fields":{"alienation":4}},{"id":"syndromes.hypervigilant","type":"syndrome","fields":{"alienation":3}},{"id":"syndromes.murderous","type":"syndrome","fields":{"alienation":6}},{"id":"syndromes.ravenous","type":"syndrome","fields":{"alienation":4}},{"id":"syndromes.savage","type":"syndrome","fields":{"alienation":5}},{"id":"syndromes.secretive","type":"syndrome","fields":{"alienation":3}},{"id":"syndromes.stressed","type":"syndrome","fields":{"alienation":5}},{"id":"vehicle-fittings.advanced-sensors","type":"template","appliesTo":{"type":"vehicle"},"fields":{"powerUsed":"prior.powerUsed + 1","cost":"prior.cost + 8000"}},{"id":"vehicle-fittings.afterburners","type":"template","appliesTo":{"type":"vehicle"},"fields":{"powerUsed":"prior.powerUsed + 1","massUsed":"prior.massUsed + 2","cost":"prior.cost + 5000"}},{"id":"vehicle-fittings.armor-plating","type":"template","appliesTo":{"type":"vehicle"},"fields":{"armor":"prior.armor + 3","massUsed":"prior.massUsed + 3","cost":"prior.cost + 5000"}},{"id":"vehicle-fittings.cargo-space","type":"template","appliesTo":{"type":"vehicle"},"fields":{"massUsed":"prior.massUsed + 1"}},{"id":"vehicle-fittings.crash-pod","type":"template","appliesTo":{"type":"vehicle","where":"item.size != 'small'"},"fields":{"massUsed":"prior.massUsed + 2","cost":"prior.cost + 2500"}},{"id":"vehicle-fittings.ecm-emitter","type":"template","appliesTo":{"type":"vehicle","where":"item.size != 'small'"},"fields":{"powerUsed":"prior.powerUsed + 2","cost":"prior.cost + 10000"}},{"id":"vehicle-fittings.emissions-cloaking","type":"template","appliesTo":{"type":"vehicle"},"fields":{"powerUsed":"prior.powerUsed + 1","massUsed":"prior.massUsed + 2","cost":"prior.cost + 10000"}},{"id":"vehicle-fittings.extra-durability","type":"template","appliesTo":{"type":"vehicle","where":"item.size != 'small'"},"fields":{"hp":"prior.hp + ceil(base.hp * 0.25)","massUsed":"prior.massUsed + 4","cost":"prior.cost + 5000"}},{"id":"vehicle-fittings.extra-passengers","type":"template","appliesTo":{"type":"vehicle"},"fields":{"crew":"prior.crew + (item.size == 'small' ? 1 : item.size == 'medium' ? 2 : 4)","massUsed":"prior.massUsed + 2","cost":"prior.cost + 2500"}},{"id":"vehicle-fittings.field-portable","type":"template","appliesTo":{"type":"vehicle"},"fields":{"massUsed":"prior.massUsed + 2","cost":"prior.cost + 1000"}},{"id":"vehicle-fittings.ghost-driver","type":"template","appliesTo":{"type":"vehicle"},"fields":{"powerUsed":"prior.powerUsed + 1","massUsed":"prior.massUsed + 1","cost":"prior.cost + 2500"}},{"id":"vehicle-fittings.hardpoint-support","type":"template","appliesTo":{"type":"vehicle","where":"item.size != 'small'"},"fields":{"hardpoints":"prior.hardpoints + 1","powerUsed":"prior.powerUsed + 1","massUsed":"prior.massUsed + 1","cost":"prior.cost + 5000"}},{"id":"vehicle-fittings.jack-control-port","type":"template","appliesTo":{"type":"vehicle"},"fields":{"powerUsed":"prior.powerUsed + 2","cost":"prior.cost + 5000"}},{"id":"vehicle-fittings.limpet-mount-medium","type":"template","appliesTo":{"type":"vehicle","where":"item.size == 'large'"},"fields":{"massUsed":"prior.massUsed + 6","cost":"prior.cost + 10000"}},{"id":"vehicle-fittings.limpet-mount-small","type":"template","appliesTo":{"type":"vehicle","where":"item.size != 'small'"},"fields":{"massUsed":"prior.massUsed + 3","cost":"prior.cost + 5000"}},{"id":"vehicle-fittings.living-quarters","type":"template","appliesTo":{"type":"vehicle","where":"item.size == 'large'"},"fields":{"massUsed":"prior.massUsed + 4","cost":"prior.cost + 8000"}},{"id":"vehicle-fittings.medbay","type":"template","appliesTo":{"type":"vehicle","where":"item.size != 'small'"},"fields":{"powerUsed":"prior.powerUsed + 1","massUsed":"prior.massUsed + 2","cost":"prior.cost + 10000"}},{"id":"vehicle-fittings.offroad-package","type":"template","appliesTo":{"type":"vehicle","where":"item.size == 'large'"},"fields":{"powerUsed":"prior.powerUsed + 1","massUsed":"prior.massUsed + 3","cost":"prior.cost + 5000"}},{"id":"vehicle-fittings.power-system-large","type":"template","appliesTo":{"type":"vehicle","where":"item.size == 'large'"},"fields":{"power":"prior.power + 8","massUsed":"prior.massUsed + 5","cost":"prior.cost + 10000"}},{"id":"vehicle-fittings.power-system-medium","type":"template","appliesTo":{"type":"vehicle","where":"item.size != 'small'"},"fields":{"power":"prior.power + 4","massUsed":"prior.massUsed + 3","cost":"prior.cost + 5000"}},{"id":"vehicle-fittings.power-system-small","type":"template","appliesTo":{"type":"vehicle"},"fields":{"power":"prior.power + 2","massUsed":"prior.massUsed + 2","cost":"prior.cost + 1000"}},{"id":"vehicle-fittings.sealed-atmosphere","type":"template","appliesTo":{"type":"vehicle","where":"item.size != 'small'"},"fields":{"powerUsed":"prior.powerUsed + 1","massUsed":"prior.massUsed + 1","cost":"prior.cost + 5000"}},{"id":"vehicle-fittings.smugglers-hold","type":"template","appliesTo":{"type":"vehicle"},"fields":{"massUsed":"prior.massUsed + 1","cost":"prior.cost + 1000"}},{"id":"vehicle-fittings.targeting-board","type":"template","appliesTo":{"type":"vehicle","where":"item.size != 'small'"},"fields":{"powerUsed":"prior.powerUsed + 1","massUsed":"prior.massUsed + 1","cost":"prior.cost + 2500"}},{"id":"vehicle-fittings.tool-rack","type":"template","appliesTo":{"type":"vehicle","where":"item.size != 'small'"},"fields":{"massUsed":"prior.massUsed + 2","cost":"prior.cost + 2500"}},{"id":"vehicle-mods.augmented-armor","type":"template","appliesTo":{"type":"vehicle"},"fields":{"armor":"prior.armor + 3","cost":"prior.cost + floor(base.cost * 0.25)"}},{"id":"vehicle-mods.drone-hub","type":"template","appliesTo":{"type":"vehicle"},"fields":{"cost":"prior.cost + floor(base.cost * 0.1)"}},{"id":"vehicle-mods.extra-seating","type":"template","appliesTo":{"type":"vehicle"},"fields":{"crew":"prior.crew + (item.size == 'small' ? 1 : item.size == 'medium' ? 2 : 4)","cost":"prior.cost + floor(base.cost * 0.1)"}},{"id":"vehicle-mods.integrated-magazines","type":"template","appliesTo":{"type":"vehicle"},"fields":{"cost":"prior.cost + floor(base.cost * 0.1)"}},{"id":"vehicle-mods.personalized-controls","type":"template","appliesTo":{"type":"vehicle"},"fields":{"cost":"prior.cost + floor(base.cost * 0.2)"}},{"id":"vehicle-mods.power-system-upgrade","type":"template","appliesTo":{"type":"vehicle"},"fields":{"power":"prior.power + (item.size == 'small' ? 2 : item.size == 'medium' ? 3 : 4)","cost":"prior.cost + floor(base.cost * 0.25)"}},{"id":"vehicle-mods.q-cladding","type":"template","appliesTo":{"type":"vehicle"},"fields":{"cost":"prior.cost + floor(base.cost * 0.2)"}},{"id":"vehicle-mods.reactive-defenses","type":"template","appliesTo":{"type":"vehicle"},"fields":{"ac":"prior.ac + 2","armor":"max(0, prior.armor - 2)","cost":"prior.cost + floor(base.cost * 0.25)"}},{"id":"vehicle-mods.reinforced-chassis","type":"template","appliesTo":{"type":"vehicle"},"fields":{"hp":"prior.hp + floor(base.hp * 0.25)","mass":"max(0, prior.mass - 2)","cost":"prior.cost + floor(base.cost * 0.25)"}},{"id":"vehicle-mods.remote-sensors","type":"template","appliesTo":{"type":"vehicle"},"fields":{"cost":"prior.cost + floor(base.cost * 0.1)"}},{"id":"vehicle-mods.supplementary-tanks","type":"template","appliesTo":{"type":"vehicle"},"fields":{"cost":"prior.cost + floor(base.cost * 0.1)"}},{"id":"vehicle-mods.ultralight-components","type":"template","appliesTo":{"type":"vehicle"},"fields":{"mass":"prior.mass + (item.size == 'small' ? 2 : item.size == 'medium' ? 3 : 4)","hp":"max(1, prior.hp - ceil(base.hp * 0.2))","cost":"prior.cost + floor(base.cost * 0.2)"}},{"id":"vehicle-mods.upgraded-speed","type":"template","appliesTo":{"type":"vehicle"},"fields":{"speed":"prior.speed + 1","mass":"max(0, prior.mass - ceil(prior.mass * 0.2))","cost":"prior.cost + floor(base.cost * 0.25)"}},{"id":"vehicles.apc","type":"vehicle","tags":["restricted","armored"],"fields":{"cost":60000,"speed":-1,"traumaTarget":10,"ac":16,"hp":30,"crew":16,"power":5,"mass":14,"size":"large","hardpoints":1}},{"id":"vehicles.car","type":"vehicle","fields":{"cost":5000,"speed":0,"armor":6,"traumaTarget":12,"ac":11,"hp":30,"crew":5,"power":3,"mass":7,"size":"medium","hardpoints":1}},{"id":"vehicles.casra","type":"vehicle","tags":["restricted","flying"],"fields":{"cost":200000,"speed":2,"armor":10,"traumaTarget":10,"ac":18,"hp":35,"crew":2,"power":7,"mass":10,"size":"large","hardpoints":2}},{"id":"vehicles.dropcraft","type":"vehicle","tags":["restricted","flying"],"fields":{"cost":1000000,"speed":3,"armor":12,"traumaTarget":12,"ac":16,"hp":40,"crew":13,"power":8,"mass":12,"size":"large","hardpoints":2}},{"id":"vehicles.gev","type":"vehicle","tags":["restricted","armored"],"fields":{"cost":100000,"speed":1,"traumaTarget":10,"ac":16,"hp":30,"crew":3,"power":6,"mass":10,"size":"large","hardpoints":2}},{"id":"vehicles.helicopter","type":"vehicle","tags":["flying"],"fields":{"cost":50000,"speed":3,"armor":6,"traumaTarget":10,"ac":14,"hp":20,"crew":6,"power":4,"mass":9,"size":"medium","hardpoints":1}},{"id":"vehicles.micro-flyer","type":"vehicle","tags":["flying"],"fields":{"cost":3000,"speed":0,"traumaTarget":6,"ac":13,"hp":10,"crew":1,"power":1,"mass":4,"size":"small","hardpoints":0}},{"id":"vehicles.motorcycle","type":"vehicle","fields":{"cost":1000,"speed":1,"armor":4,"traumaTarget":10,"ac":13,"hp":10,"crew":1,"power":1,"mass":3,"size":"small","hardpoints":0}},{"id":"vehicles.tank","type":"vehicle","tags":["restricted","armored-heavy"],"fields":{"cost":500000,"speed":0,"traumaTarget":12,"ac":18,"hp":40,"crew":3,"power":8,"mass":15,"size":"large","hardpoints":3}},{"id":"vehicles.truck","type":"vehicle","fields":{"cost":7500,"speed":0,"armor":6,"traumaTarget":12,"ac":11,"hp":35,"crew":2,"power":3,"mass":14,"size":"large","hardpoints":1}},{"id":"weapon-mods.autotargeting","type":"template","appliesTo":{"type":"weapon","where":"'firearm' in item.tags"},"fields":{"attackBonus":"prior.attackBonus + 1"}},{"id":"weapon-mods.body-blades-1","type":"template","appliesTo":{"type":"weapon","where":"'unarmed' in item.tags"},"tags":["body-blades"],"removeTags":["unarmed","nonlethal"],"fields":{"damage":"1d8","skill":"stab","shockDamage":2,"shockAc":15,"traumaDie":"1d8","traumaRating":3}},{"id":"weapon-mods.body-blades-2","type":"template","appliesTo":{"type":"weapon","where":"'unarmed' in item.tags"},"tags":["body-blades"],"removeTags":["unarmed","nonlethal"],"fields":{"damage":"2d6","skill":"stab","shockDamage":4,"shockAc":15,"traumaDie":"1d10","traumaRating":3}},{"id":"weapon-mods.concealed","type":"template","appliesTo":{"type":"weapon"}},{"id":"weapon-mods.customized","type":"template","appliesTo":{"type":"weapon"},"fields":{"attackBonus":"prior.attackBonus + 1"}},{"id":"weapon-mods.extended-mag","type":"template","appliesTo":{"type":"weapon","where":"has(item.magazine)"},"fields":{"magazine":"prior.magazine * 2"}},{"id":"weapon-mods.hand-of-doom","type":"template","appliesTo":{"type":"weapon","where":"'unarmed' in item.tags"},"removeTags":["nonlethal"],"fields":{"damage":"1d10","shockDamage":2,"shockAc":15,"traumaDie":"1d8","traumaRating":3,"attackBonus":"prior.attackBonus + floor(level / 3)","damageBonus":"prior.damageBonus + floor(level / 3)","shockBonus":"prior.shockBonus + floor(level / 3)"}},{"id":"weapon-mods.heavy-sabot","type":"template","appliesTo":{"type":"weapon","where":"'firearm' in item.tags"},"tags":["anti-vehicle"]},{"id":"weapon-mods.integral-toxins","type":"template","appliesTo":{"type":"weapon","where":"'melee' in item.tags || 'thrown' in item.tags"},"fields":{"damageBonus":"prior.damageBonus + 2","shockBonus":"prior.shockBonus + 2"}},{"id":"weapon-mods.onboard-gunlink","type":"template","appliesTo":{"type":"weapon","where":"'firearm' in item.tags"}},{"id":"weapon-mods.predictive-guidance","type":"template","appliesTo":{"type":"weapon"},"fields":{"attackBonus":"prior.attackBonus + 1","damageBonus":"prior.damageBonus + 1","shockBonus":"prior.shockBonus + 1"}},{"id":"weapon-mods.reel-wires","type":"template","appliesTo":{"type":"weapon","where":"has(item.rangeNormal)"}},{"id":"weapon-mods.savage-impact","type":"template","appliesTo":{"type":"weapon","where":"'melee' in item.tags"},"fields":{"damageBonus":"prior.damageBonus + 1","shockBonus":"prior.shockBonus + 1"}},{"id":"weapon-mods.shock-burst","type":"template","appliesTo":{"type":"weapon"}},{"id":"weapon-mods.stun-rounds","type":"template","appliesTo":{"type":"weapon","where":"'firearm' in item.tags"},"tags":["nonlethal"],"fields":{"rangeNormal":"floor(prior.rangeNormal / 2)","rangeLong":"floor(prior.rangeLong / 2)","damageBonus":"prior.damageBonus - 2","traumaDie":null,"traumaRating":null}},{"id":"weapon-mods.thermal-charge","type":"template","appliesTo":{"type":"weapon","where":"'melee' in item.tags || 'thrown' in item.tags"},"fields":{"damageBonus":"prior.damageBonus + 2","shockBonus":"prior.shockBonus + 2"}},{"id":"weapon-mods.unarmed-combatant-2","type":"template","appliesTo":{"type":"weapon","where":"'unarmed' in item.tags"},"fields":{"traumaDie":"1d8"}},{"id":"weapon-mods.unarmed-combatant","type":"template","appliesTo":{"type":"weapon","where":"'unarmed' in item.tags"},"fields":{"damage":"[1d6, 1d8, 1d10, 1d12, 1d12 + 1][max(0, skills.punch.base)]","shockDamage":"max(0, skills.punch.base)","shockAc":15,"traumaDie":"1d6","traumaRating":2}},{"id":"weapons.advanced-big-sword","type":"weapon","tags":["melee","two-handed"],"fields":{"cost":2500,"enc":2,"damage":"2d8","skill":"stab","attribute":"str","shockDamage":4,"shockAc":15,"traumaDie":"1d8","traumaRating":3}},{"id":"weapons.advanced-bow","type":"weapon","tags":["firearm","quick-reload","two-handed"],"fields":{"cost":500,"enc":2,"damage":"1d8","skill":"shoot","attribute":"dex","rangeNormal":30,"rangeLong":200,"magazine":1,"traumaDie":"1d8+1","traumaRating":3}},{"id":"weapons.advanced-club","type":"weapon","tags":["melee","nonlethal"],"fields":{"cost":500,"enc":1,"damage":"1d8","skill":"stab","attribute":"str","shockDamage":2,"shockAc":18,"traumaDie":"1d8","traumaRating":3}},{"id":"weapons.advanced-knife","type":"weapon","tags":["melee"],"fields":{"cost":200,"enc":1,"damage":"1d6","skill":"stab","attribute":"str-dex","rangeNormal":10,"rangeLong":20,"shockDamage":2,"shockAc":15,"traumaDie":"1d8","traumaRating":3}},{"id":"weapons.advanced-sword","type":"weapon","tags":["melee"],"fields":{"cost":1000,"enc":1,"damage":"1d10","skill":"stab","attribute":"str-dex","shockDamage":3,"shockAc":15,"traumaDie":"1d8","traumaRating":3}},{"id":"weapons.anti-materiel-rifle","type":"weapon","tags":["heavy","braced","anti-vehicle","restricted","two-handed"],"fields":{"cost":8000,"enc":3,"damage":"3d8","skill":"shoot","attribute":"dex","rangeNormal":1000,"rangeLong":2000,"magazine":5,"traumaDie":"1d12","traumaRating":3}},{"id":"weapons.automatic-rifle","type":"weapon","tags":["firearm","suppress","restricted","two-handed"],"fields":{"cost":10000,"enc":4,"damage":"2d8","skill":"shoot","attribute":"dex","rangeNormal":200,"rangeLong":400,"magazine":10,"traumaDie":"1d10","traumaRating":3}},{"id":"weapons.big-club","type":"weapon","tags":["melee","nonlethal","two-handed"],"fields":{"cost":100,"enc":2,"damage":"1d10","skill":"stab","attribute":"str","shockDamage":2,"shockAc":18,"traumaDie":"1d8","traumaRating":3}},{"id":"weapons.big-sword","type":"weapon","tags":["melee","two-handed"],"fields":{"cost":500,"enc":2,"damage":"2d6","skill":"stab","attribute":"str","shockDamage":2,"shockAc":15,"traumaDie":"1d8","traumaRating":3}},{"id":"weapons.club","type":"weapon","tags":["melee","nonlethal"],"fields":{"cost":0,"enc":1,"damage":"1d4","skill":"stab","attribute":"str","rangeNormal":10,"rangeLong":20,"shockDamage":1,"shockAc":18,"traumaDie":"1d6","traumaRating":2}},{"id":"weapons.combat-rifle","type":"weapon","tags":["firearm","burst","restricted","two-handed"],"fields":{"cost":2500,"enc":2,"damage":"1d12","skill":"shoot","attribute":"dex","rangeNormal":100,"rangeLong":300,"magazine":30,"traumaDie":"1d8","traumaRating":3}},{"id":"weapons.combat-shotgun","type":"weapon","tags":["firearm","burst","restricted","two-handed"],"fields":{"cost":3000,"enc":2,"damage":"3d4","skill":"shoot","attribute":"dex","rangeNormal":10,"rangeLong":30,"magazine":12,"traumaDie":"1d10","traumaRating":3}},{"id":"weapons.demo-charge","type":"weapon","tags":["heavy","anti-vehicle","restricted","trap"],"fields":{"cost":1000,"enc":1,"damage":"3d10","skill":"shoot","attribute":"none","rangeNormal":20,"rangeLong":20,"traumaDie":"1d10","traumaRating":3}},{"id":"weapons.drone-cannon","type":"weapon","tags":["heavy","vehicle-mounted","anti-vehicle","restricted"],"fields":{"cost":5000,"damage":"2d8","skill":"shoot","attribute":"dex","rangeNormal":200,"rangeLong":1000,"magazine":10,"traumaDie":"1d10","traumaRating":3}},{"id":"weapons.eye-flechette","type":"weapon","tags":["firearm","implant"],"fields":{"damage":"1d6","skill":"shoot","attribute":"dex","rangeNormal":10,"rangeLong":10,"magazine":1,"traumaDie":"1d8","traumaRating":2}},{"id":"weapons.flash-grenade","type":"weapon","tags":["grenade","thrown","special"],"fields":{"cost":50,"enc":1,"damage":"0","skill":"shoot","attribute":"dex","rangeNormal":10,"rangeLong":30}},{"id":"weapons.frag-grenade","type":"weapon","tags":["grenade","thrown","restricted"],"fields":{"cost":100,"enc":1,"damage":"2d6","skill":"shoot","attribute":"dex","rangeNormal":10,"rangeLong":30,"traumaDie":"1d8","traumaRating":2}},{"id":"weapons.gas-grenade","type":"weapon","tags":["grenade","thrown","nonlethal"],"fields":{"cost":50,"enc":1,"damage":"1d10","skill":"shoot","attribute":"dex","rangeNormal":10,"rangeLong":30}},{"id":"weapons.grenade-launcher","type":"weapon","tags":["heavy","launcher","restricted"],"fields":{"cost":3000,"enc":1,"damage":"0","skill":"shoot","attribute":"dex","rangeNormal":150,"rangeLong":350,"magazine":3}},{"id":"weapons.headshot-pod","type":"weapon","tags":["heavy","vehicle-mounted","anti-vehicle","restricted"],"fields":{"cost":20000,"damage":"4d6","skill":"shoot","attribute":"dex","rangeNormal":1000,"rangeLong":2000,"magazine":1,"traumaDie":"1d20","traumaRating":4}},{"id":"weapons.heavy-machine-gun","type":"weapon","tags":["heavy","braced","suppress","anti-vehicle","restricted","two-handed"],"fields":{"cost":10000,"enc":3,"damage":"3d6","skill":"shoot","attribute":"dex","rangeNormal":500,"rangeLong":2000,"magazine":10,"traumaDie":"1d12","traumaRating":3}},{"id":"weapons.heavy-pistol","type":"weapon","tags":["firearm"],"fields":{"cost":200,"enc":1,"damage":"1d8","skill":"shoot","attribute":"dex","rangeNormal":10,"rangeLong":100,"magazine":8,"traumaDie":"1d6","traumaRating":3}},{"id":"weapons.knife","type":"weapon","tags":["melee"],"fields":{"cost":20,"enc":1,"damage":"1d4","skill":"stab","attribute":"str-dex","rangeNormal":10,"rangeLong":20,"shockDamage":1,"shockAc":15,"traumaDie":"1d6","traumaRating":3}},{"id":"weapons.land-mine-anti-personnel","type":"weapon","tags":["heavy","restricted","trap"],"fields":{"cost":150,"enc":1,"damage":"1d8","skill":"shoot","attribute":"none","traumaDie":"1d10","traumaRating":3}},{"id":"weapons.land-mine-anti-vehicle","type":"weapon","tags":["heavy","anti-vehicle","restricted","trap"],"fields":{"cost":1000,"enc":2,"damage":"3d8","skill":"shoot","attribute":"none","traumaDie":"1d20","traumaRating":3}},{"id":"weapons.light-pistol","type":"weapon","tags":["firearm"],"fields":{"cost":200,"enc":1,"damage":"1d6","skill":"shoot","attribute":"dex","rangeNormal":10,"rangeLong":80,"magazine":15,"traumaDie":"1d8","traumaRating":2}},{"id":"weapons.main-tank-gun","type":"weapon","tags":["heavy","vehicle-mounted","anti-vehicle","restricted"],"fields":{"cost":100000,"damage":"4d12","skill":"shoot","attribute":"dex","rangeNormal":1000,"rangeLong":3000,"magazine":1,"traumaDie":"1d20","traumaRating":4}},{"id":"weapons.mortar","type":"weapon","tags":["heavy","restricted","indirect"],"fields":{"cost":5000,"enc":3,"damage":"3d6","skill":"shoot","attribute":"wis","rangeNormal":1000,"rangeLong":2000,"magazine":1,"traumaDie":"1d12","traumaRating":3}},{"id":"weapons.mounted-autogun","type":"weapon","tags":["heavy","vehicle-mounted","suppress","anti-vehicle","restricted"],"fields":{"cost":15000,"damage":"3d8","skill":"shoot","attribute":"dex","rangeNormal":500,"rangeLong":2000,"magazine":10,"traumaDie":"1d12","traumaRating":2}},{"id":"weapons.rifle","type":"weapon","tags":["firearm","two-handed"],"fields":{"cost":1000,"enc":2,"damage":"1d10+2","skill":"shoot","attribute":"dex","rangeNormal":200,"rangeLong":400,"magazine":6,"traumaDie":"1d8","traumaRating":3}},{"id":"weapons.rocket-launcher","type":"weapon","tags":["heavy","anti-vehicle","restricted","two-handed"],"fields":{"cost":5000,"enc":2,"damage":"3d10","skill":"shoot","attribute":"dex","rangeNormal":2000,"rangeLong":4000,"traumaDie":"1d10","traumaRating":3}},{"id":"weapons.semi-auto-shotgun","type":"weapon","tags":["firearm","two-handed"],"fields":{"cost":1000,"enc":2,"damage":"3d4","skill":"shoot","attribute":"dex","rangeNormal":10,"rangeLong":30,"magazine":6,"traumaDie":"1d10","traumaRating":3}},{"id":"weapons.shotgun","type":"weapon","tags":["firearm","two-handed"],"fields":{"cost":200,"enc":2,"damage":"3d4","skill":"shoot","attribute":"dex","rangeNormal":10,"rangeLong":30,"magazine":2,"traumaDie":"1d10","traumaRating":3}},{"id":"weapons.shrieker-gun","type":"weapon","tags":["heavy","vehicle-mounted","suppress","nonlethal","restricted"],"fields":{"cost":10000,"damage":"2d6","skill":"shoot","attribute":"none","rangeNormal":100,"rangeLong":400}},{"id":"weapons.smoke-grenade","type":"weapon","tags":["grenade","thrown","special"],"fields":{"cost":25,"enc":1,"damage":"0","skill":"shoot","attribute":"dex","rangeNormal":10,"rangeLong":30}},{"id":"weapons.sniper-rifle","type":"weapon","tags":["firearm","quick-reload","braced","two-handed"],"fields":{"cost":3000,"enc":2,"damage":"2d8","skill":"shoot","attribute":"dex","rangeNormal":1000,"rangeLong":2000,"magazine":1,"traumaDie":"1d10","traumaRating":4}},{"id":"weapons.spear","type":"weapon","tags":["melee"],"fields":{"cost":50,"enc":1,"damage":"1d6","skill":"stab","attribute":"str-dex","rangeNormal":10,"rangeLong":20,"shockDamage":2,"shockAc":13,"traumaDie":"1d8","traumaRating":3}},{"id":"weapons.submachine-gun","type":"weapon","tags":["firearm","burst","restricted"],"fields":{"cost":2000,"enc":1,"damage":"1d8","skill":"shoot","attribute":"dex","rangeNormal":30,"rangeLong":100,"magazine":20,"traumaDie":"1d6","traumaRating":2}},{"id":"weapons.sword","type":"weapon","tags":["melee"],"fields":{"cost":200,"enc":1,"damage":"1d8","skill":"stab","attribute":"str-dex","shockDamage":2,"shockAc":13,"traumaDie":"1d8","traumaRating":2}},{"id":"weapons.taser-pistol","type":"weapon","tags":["firearm","nonlethal"],"fields":{"cost":500,"enc":1,"damage":"1d8","skill":"shoot","attribute":"dex","rangeNormal":10,"rangeLong":15,"magazine":2}},{"id":"weapons.unarmed","type":"weapon","tags":["standard","unarmed","melee","nonlethal"],"fields":{"damage":"1d2","skill":"punch","attribute":"str-dex","traumaDie":"1d6","traumaRating":1}}],"upgrades":[],"formulas":{"0":{"text":"0","tree":{"type":"int","value":0}},"1":{"text":"1","tree":{"type":"int","value":1}},"2":{"text":"2","tree":{"type":"int","value":2}},"3":{"text":"3","tree":{"type":"int","value":3}},"6":{"text":"6","tree":{"type":"int","value":6}},"10":{"text":"10","tree":{"type":"int","value":10}},"99":{"text":"99","tree":{"type":"int","value":99}},"!('administer' in ['cast', 'summon']) || campaign.magic || skills.administer.base >= 0":{"text":"!('administer' in ['cast', 'summon']) || campaign.magic || skills.administer.base >= 0","tree":{"type":"binary","op":"||","left":{"type":"binary","op":"||","left":{"type":"unary","op":"!","operand":{"type":"binary","op":"in","left":{"type":"string","value":"administer"},"right":{"type":"list","items":[{"type":"string","value":"cast"},{"type":"string","value":"summon"}]}}},"right":{"type":"name","path":["campaign","magic"]}},"right":{"type":"binary","op":">=","left":{"type":"name","path":["skills","administer","base"]},"right":{"type":"int","value":0}}}},"!('cast' in ['cast', 'summon']) || campaign.magic || skills.cast.base >= 0":{"text":"!('cast' in ['cast', 'summon']) || campaign.magic || skills.cast.base >= 0","tree":{"type":"binary","op":"||","left":{"type":"binary","op":"||","left":{"type":"unary","op":"!","operand":{"type":"binary","op":"in","left":{"type":"string","value":"cast"},"right":{"type":"list","items":[{"type":"string","value":"cast"},{"type":"string","value":"summon"}]}}},"right":{"type":"name","path":["campaign","magic"]}},"right":{"type":"binary","op":">=","left":{"type":"name","path":["skills","cast","base"]},"right":{"type":"int","value":0}}}},"!('connect' in ['cast', 'summon']) || campaign.magic || skills.connect.base >= 0":{"text":"!('connect' in ['cast', 'summon']) || campaign.magic || skills.connect.base >= 0","tree":{"type":"binary","op":"||","left":{"type":"binary","op":"||","left":{"type":"unary","op":"!","operand":{"type":"binary","op":"in","left":{"type":"string","value":"connect"},"right":{"type":"list","items":[{"type":"string","value":"cast"},{"type":"string","value":"summon"}]}}},"right":{"type":"name","path":["campaign","magic"]}},"right":{"type":"binary","op":">=","left":{"type":"name","path":["skills","connect","base"]},"right":{"type":"int","value":0}}}},"!('drive' in ['cast', 'summon']) || campaign.magic || skills.drive.base >= 0":{"text":"!('drive' in ['cast', 'summon']) || campaign.magic || skills.drive.base >= 0","tree":{"type":"binary","op":"||","left":{"type":"binary","op":"||","left":{"type":"unary","op":"!","operand":{"type":"binary","op":"in","left":{"type":"string","value":"drive"},"right":{"type":"list","items":[{"type":"string","value":"cast"},{"type":"string","value":"summon"}]}}},"right":{"type":"name","path":["campaign","magic"]}},"right":{"type":"binary","op":">=","left":{"type":"name","path":["skills","drive","base"]},"right":{"type":"int","value":0}}}},"!('exert' in ['cast', 'summon']) || campaign.magic || skills.exert.base >= 0":{"text":"!('exert' in ['cast', 'summon']) || campaign.magic || skills.exert.base >= 0","tree":{"type":"binary","op":"||","left":{"type":"binary","op":"||","left":{"type":"unary","op":"!","operand":{"type":"binary","op":"in","left":{"type":"string","value":"exert"},"right":{"type":"list","items":[{"type":"string","value":"cast"},{"type":"string","value":"summon"}]}}},"right":{"type":"name","path":["campaign","magic"]}},"right":{"type":"binary","op":">=","left":{"type":"name","path":["skills","exert","base"]},"right":{"type":"int","value":0}}}},"!('fix' in ['cast', 'summon']) || campaign.magic || skills.fix.base >= 0":{"text":"!('fix' in ['cast', 'summon']) || campaign.magic || skills.fix.base >= 0","tree":{"type":"binary","op":"||","left":{"type":"binary","op":"||","left":{"type":"unary","op":"!","operand":{"type":"binary","op":"in","left":{"type":"string","value":"fix"},"right":{"type":"list","items":[{"type":"string","value":"cast"},{"type":"string","value":"summon"}]}}},"right":{"type":"name","path":["campaign","magic"]}},"right":{"type":"binary","op":">=","left":{"type":"name","path":["skills","fix","base"]},"right":{"type":"int","value":0}}}},"!('heal' in ['cast', 'summon']) || campaign.magic || skills.heal.base >= 0":{"text":"!('heal' in ['cast', 'summon']) || campaign.magic || skills.heal.base >= 0","tree":{"type":"binary","op":"||","left":{"type":"binary","op":"||","left":{"type":"unary","op":"!","operand":{"type":"binary","op":"in","left":{"type":"string","value":"heal"},"right":{"type":"list","items":[{"type":"string","value":"cast"},{"type":"string","value":"summon"}]}}},"right":{"type":"name","path":["campaign","magic"]}},"right":{"type":"binary","op":">=","left":{"type":"name","path":["skills","heal","base"]},"right":{"type":"int","value":0}}}},"!('know' in ['cast', 'summon']) || campaign.magic || skills.know.base >= 0":{"text":"!('know' in ['cast', 'summon']) || campaign.magic || skills.know.base >= 0","tree":{"type":"binary","op":"||","left":{"type":"binary","op":"||","left":{"type":"unary","op":"!","operand":{"type":"binary","op":"in","left":{"type":"string","value":"know"},"right":{"type":"list","items":[{"type":"string","value":"cast"},{"type":"string","value":"summon"}]}}},"right":{"type":"name","path":["campaign","magic"]}},"right":{"type":"binary","op":">=","left":{"type":"name","path":["skills","know","base"]},"right":{"type":"int","value":0}}}},"!('lead' in ['cast', 'summon']) || campaign.magic || skills.lead.base >= 0":{"text":"!('lead' in ['cast', 'summon']) || campaign.magic || skills.lead.base >= 0","tree":{"type":"binary","op":"||","left":{"type":"binary","op":"||","left":{"type":"unary","op":"!","operand":{"type":"binary","op":"in","left":{"type":"string","value":"lead"},"right":{"type":"list","items":[{"type":"string","value":"cast"},{"type":"string","value":"summon"}]}}},"right":{"type":"name","path":["campaign","magic"]}},"right":{"type":"binary","op":">=","left":{"type":"name","path":["skills","lead","base"]},"right":{"type":"int","value":0}}}},"!('notice' in ['cast', 'summon']) || campaign.magic || skills.notice.base >= 0":{"text":"!('notice' in ['cast', 'summon']) || campaign.magic || skills.notice.base >= 0","tree":{"type":"binary","op":"||","left":{"type":"binary","op":"||","left":{"type":"unary","op":"!","operand":{"type":"binary","op":"in","left":{"type":"string","value":"notice"},"right":{"type":"list","items":[{"type":"string","value":"cast"},{"type":"string","value":"summon"}]}}},"right":{"type":"name","path":["campaign","magic"]}},"right":{"type":"binary","op":">=","left":{"type":"name","path":["skills","notice","base"]},"right":{"type":"int","value":0}}}},"!('perform' in ['cast', 'summon']) || campaign.magic || skills.perform.base >= 0":{"text":"!('perform' in ['cast', 'summon']) || campaign.magic || skills.perform.base >= 0","tree":{"type":"binary","op":"||","left":{"type":"binary","op":"||","left":{"type":"unary","op":"!","operand":{"type":"binary","op":"in","left":{"type":"string","value":"perform"},"right":{"type":"list","items":[{"type":"string","value":"cast"},{"type":"string","value":"summon"}]}}},"right":{"type":"name","path":["campaign","magic"]}},"right":{"type":"binary","op":">=","left":{"type":"name","path":["skills","perform","base"]},"right":{"type":"int","value":0}}}},"!('program' in ['cast', 'summon']) || campaign.magic || skills.program.base >= 0":{"text":"!('program' in ['cast', 'summon']) || campaign.magic || skills.program.base >= 0","tree":{"type":"binary","op":"||","left":{"type":"binary","op":"||","left":{"type":"unary","op":"!","operand":{"type":"binary","op":"in","left":{"type":"string","value":"program"},"right":{"type":"list","items":[{"type":"string","value":"cast"},{"type":"string","value":"summon"}]}}},"right":{"type":"name","path":["campaign","magic"]}},"right":{"type":"binary","op":">=","left":{"type":"name","path":["skills","program","base"]},"right":{"type":"int","value":0}}}},"!('punch' in ['cast', 'summon']) || campaign.magic || skills.punch.base >= 0":{"text":"!('punch' in ['cast', 'summon']) || campaign.magic || skills.punch.base >= 0","tree":{"type":"binary","op":"||","left":{"type":"binary","op":"||","left":{"type":"unary","op":"!","operand":{"type":"binary","op":"in","left":{"type":"string","value":"punch"},"right":{"type":"list","items":[{"type":"string","value":"cast"},{"type":"string","value":"summon"}]}}},"right":{"type":"name","path":["campaign","magic"]}},"right":{"type":"binary","op":">=","left":{"type":"name","path":["skills","punch","base"]},"right":{"type":"int","value":0}}}},"!('repeatable' in item.tags)":{"text":"!('repeatable' in item.tags)","tree":{"type":"unary","op":"!","operand":{"type":"binary","op":"in","left":{"type":"string","value":"repeatable"},"right":{"type":"name","path":["item","tags"]}}}},"!('shoot' in ['cast', 'summon']) || campaign.magic || skills.shoot.base >= 0":{"text":"!('shoot' in ['cast', 'summon']) || campaign.magic || skills.shoot.base >= 0","tree":{"type":"binary","op":"||","left":{"type":"binary","op":"||","left":{"type":"unary","op":"!","operand":{"type":"binary","op":"in","left":{"type":"string","value":"shoot"},"right":{"type":"list","items":[{"type":"string","value":"cast"},{"type":"string","value":"summon"}]}}},"right":{"type":"name","path":["campaign","magic"]}},"right":{"type":"binary","op":">=","left":{"type":"name","path":["skills","shoot","base"]},"right":{"type":"int","value":0}}}},"!('sneak' in ['cast', 'summon']) || campaign.magic || skills.sneak.base >= 0":{"text":"!('sneak' in ['cast', 'summon']) || campaign.magic || skills.sneak.base >= 0","tree":{"type":"binary","op":"||","left":{"type":"binary","op":"||","left":{"type":"unary","op":"!","operand":{"type":"binary","op":"in","left":{"type":"string","value":"sneak"},"right":{"type":"list","items":[{"type":"string","value":"cast"},{"type":"string","value":"summon"}]}}},"right":{"type":"name","path":["campaign","magic"]}},"right":{"type":"binary","op":">=","left":{"type":"name","path":["skills","sneak","base"]},"right":{"type":"int","value":0}}}},"!('stab' in ['cast', 'summon']) || campaign.magic || skills.stab.base >= 0":{"text":"!('stab' in ['cast', 'summon']) || campaign.magic || skills.stab.base >= 0","tree":{"type":"binary","op":"||","left":{"type":"binary","op":"||","left":{"type":"unary","op":"!","operand":{"type":"binary","op":"in","left":{"type":"string","value":"stab"},"right":{"type":"list","items":[{"type":"string","value":"cast"},{"type":"string","value":"summon"}]}}},"right":{"type":"name","path":["campaign","magic"]}},"right":{"type":"binary","op":">=","left":{"type":"name","path":["skills","stab","base"]},"right":{"type":"int","value":0}}}},"!('summon' in ['cast', 'summon']) || campaign.magic || skills.summon.base >= 0":{"text":"!('summon' in ['cast', 'summon']) || campaign.magic || skills.summon.base >= 0","tree":{"type":"binary","op":"||","left":{"type":"binary","op":"||","left":{"type":"unary","op":"!","operand":{"type":"binary","op":"in","left":{"type":"string","value":"summon"},"right":{"type":"list","items":[{"type":"string","value":"cast"},{"type":"string","value":"summon"}]}}},"right":{"type":"name","path":["campaign","magic"]}},"right":{"type":"binary","op":">=","left":{"type":"name","path":["skills","summon","base"]},"right":{"type":"int","value":0}}}},"!('survive' in ['cast', 'summon']) || campaign.magic || skills.survive.base >= 0":{"text":"!('survive' in ['cast', 'summon']) || campaign.magic || skills.survive.base >= 0","tree":{"type":"binary","op":"||","left":{"type":"binary","op":"||","left":{"type":"unary","op":"!","operand":{"type":"binary","op":"in","left":{"type":"string","value":"survive"},"right":{"type":"list","items":[{"type":"string","value":"cast"},{"type":"string","value":"summon"}]}}},"right":{"type":"name","path":["campaign","magic"]}},"right":{"type":"binary","op":">=","left":{"type":"name","path":["skills","survive","base"]},"right":{"type":"int","value":0}}}},"!('talk' in ['cast', 'summon']) || campaign.magic || skills.talk.base >= 0":{"text":"!('talk' in ['cast', 'summon']) || campaign.magic || skills.talk.base >= 0","tree":{"type":"binary","op":"||","left":{"type":"binary","op":"||","left":{"type":"unary","op":"!","operand":{"type":"binary","op":"in","left":{"type":"string","value":"talk"},"right":{"type":"list","items":[{"type":"string","value":"cast"},{"type":"string","value":"summon"}]}}},"right":{"type":"name","path":["campaign","magic"]}},"right":{"type":"binary","op":">=","left":{"type":"name","path":["skills","talk","base"]},"right":{"type":"int","value":0}}}},"!('trade' in ['cast', 'summon']) || campaign.magic || skills.trade.base >= 0":{"text":"!('trade' in ['cast', 'summon']) || campaign.magic || skills.trade.base >= 0","tree":{"type":"binary","op":"||","left":{"type":"binary","op":"||","left":{"type":"unary","op":"!","operand":{"type":"binary","op":"in","left":{"type":"string","value":"trade"},"right":{"type":"list","items":[{"type":"string","value":"cast"},{"type":"string","value":"summon"}]}}},"right":{"type":"name","path":["campaign","magic"]}},"right":{"type":"binary","op":">=","left":{"type":"name","path":["skills","trade","base"]},"right":{"type":"int","value":0}}}},"!('unarmed' in item.tags) && (!flags.ranged || flags.thrown)\n ? combat.meleeHitBonus : 0":{"text":"!('unarmed' in item.tags) && (!flags.ranged || flags.thrown) ? combat.meleeHitBonus : 0","tree":{"type":"conditional","test":{"type":"binary","op":"&&","left":{"type":"unary","op":"!","operand":{"type":"binary","op":"in","left":{"type":"string","value":"unarmed"},"right":{"type":"name","path":["item","tags"]}}},"right":{"type":"binary","op":"||","left":{"type":"unary","op":"!","operand":{"type":"name","path":["flags","ranged"]}},"right":{"type":"name","path":["flags","thrown"]}}},"then":{"type":"name","path":["combat","meleeHitBonus"]},"else":{"type":"int","value":0}}},"!('work' in ['cast', 'summon']) || campaign.magic || skills.work.base >= 0":{"text":"!('work' in ['cast', 'summon']) || campaign.magic || skills.work.base >= 0","tree":{"type":"binary","op":"||","left":{"type":"binary","op":"||","left":{"type":"unary","op":"!","operand":{"type":"binary","op":"in","left":{"type":"string","value":"work"},"right":{"type":"list","items":[{"type":"string","value":"cast"},{"type":"string","value":"summon"}]}}},"right":{"type":"name","path":["campaign","magic"]}},"right":{"type":"binary","op":">=","left":{"type":"name","path":["skills","work","base"]},"right":{"type":"int","value":0}}}},"!(steps.overcasting.band in ['death', 'mortal'])":{"text":"!(steps.overcasting.band in ['death', 'mortal'])","tree":{"type":"unary","op":"!","operand":{"type":"binary","op":"in","left":{"type":"name","path":["steps","overcasting","band"]},"right":{"type":"list","items":[{"type":"string","value":"death"},{"type":"string","value":"mortal"}]}}}},"!character.creating":{"text":"!character.creating","tree":{"type":"unary","op":"!","operand":{"type":"name","path":["character","creating"]}}},"!character.creating && !underdog && advancement.attributeBoosts < 5":{"text":"!character.creating && !underdog && advancement.attributeBoosts < 5","tree":{"type":"binary","op":"&&","left":{"type":"binary","op":"&&","left":{"type":"unary","op":"!","operand":{"type":"name","path":["character","creating"]}},"right":{"type":"unary","op":"!","operand":{"type":"name","path":["underdog"]}}},"right":{"type":"binary","op":"<","left":{"type":"name","path":["advancement","attributeBoosts"]},"right":{"type":"int","value":5}}}},"!character.creating && 'retroactive-points' in steps.edge.item.tags":{"text":"!character.creating && 'retroactive-points' in steps.edge.item.tags","tree":{"type":"binary","op":"&&","left":{"type":"unary","op":"!","operand":{"type":"name","path":["character","creating"]}},"right":{"type":"binary","op":"in","left":{"type":"string","value":"retroactive-points"},"right":{"type":"name","path":["steps","edge","item","tags"]}}}},"!character.creating && foci.taken < foci.allowed":{"text":"!character.creating && foci.taken < foci.allowed","tree":{"type":"binary","op":"&&","left":{"type":"unary","op":"!","operand":{"type":"name","path":["character","creating"]}},"right":{"type":"binary","op":"<","left":{"type":"name","path":["foci","taken"]},"right":{"type":"name","path":["foci","allowed"]}}}},"!character.creating && level < 10":{"text":"!character.creating && level < 10","tree":{"type":"binary","op":"&&","left":{"type":"unary","op":"!","operand":{"type":"name","path":["character","creating"]}},"right":{"type":"binary","op":"<","left":{"type":"name","path":["level"]},"right":{"type":"int","value":10}}}},"!character.creating && level < 10 && xp.current >= xp.next":{"text":"!character.creating && level < 10 && xp.current >= xp.next","tree":{"type":"binary","op":"&&","left":{"type":"binary","op":"&&","left":{"type":"unary","op":"!","operand":{"type":"name","path":["character","creating"]}},"right":{"type":"binary","op":"<","left":{"type":"name","path":["level"]},"right":{"type":"int","value":10}}},"right":{"type":"binary","op":">=","left":{"type":"name","path":["xp","current"]},"right":{"type":"name","path":["xp","next"]}}}},"!character.creating || !underdog || attributes.modTotal <= -1":{"text":"!character.creating || !underdog || attributes.modTotal <= -1","tree":{"type":"binary","op":"||","left":{"type":"binary","op":"||","left":{"type":"unary","op":"!","operand":{"type":"name","path":["character","creating"]}},"right":{"type":"unary","op":"!","operand":{"type":"name","path":["underdog"]}}},"right":{"type":"binary","op":"<=","left":{"type":"name","path":["attributes","modTotal"]},"right":{"type":"unary","op":"-","operand":{"type":"int","value":1}}}}},"!character.creating || maxList(keysOf('skill'), fieldOf('skills.{skill}.base', x)) <= 1":{"text":"!character.creating || maxList(keysOf('skill'), fieldOf('skills.{skill}.base', x)) <= 1","tree":{"type":"binary","op":"||","left":{"type":"unary","op":"!","operand":{"type":"name","path":["character","creating"]}},"right":{"type":"binary","op":"<=","left":{"type":"call","fn":"maxList","args":[{"type":"call","fn":"keysOf","args":[{"type":"string","value":"skill"}]},{"type":"call","fn":"fieldOf","args":[{"type":"string","value":"skills.{skill}.base"},{"type":"name","path":["x"]}]}]},"right":{"type":"int","value":1}}}},"!flags.points":{"text":"!flags.points","tree":{"type":"unary","op":"!","operand":{"type":"name","path":["flags","points"]}}},"!has(steps.specialty) && !has(steps.attribute)":{"text":"!has(steps.specialty) && !has(steps.attribute)","tree":{"type":"binary","op":"&&","left":{"type":"unary","op":"!","operand":{"type":"call","fn":"has","args":[{"type":"name","path":["steps","specialty"]}]}},"right":{"type":"unary","op":"!","operand":{"type":"call","fn":"has","args":[{"type":"name","path":["steps","attribute"]}]}}}},"!hp.frail":{"text":"!hp.frail","tree":{"type":"unary","op":"!","operand":{"type":"name","path":["hp","frail"]}}},"!item.magic":{"text":"!item.magic","tree":{"type":"unary","op":"!","operand":{"type":"name","path":["item","magic"]}}},"!magic.mage && !magic.summoner && !magic.graced":{"text":"!magic.mage && !magic.summoner && !magic.graced","tree":{"type":"binary","op":"&&","left":{"type":"binary","op":"&&","left":{"type":"unary","op":"!","operand":{"type":"name","path":["magic","mage"]}},"right":{"type":"unary","op":"!","operand":{"type":"name","path":["magic","summoner"]}}},"right":{"type":"unary","op":"!","operand":{"type":"name","path":["magic","graced"]}}}},"!params.overcast && flags.commit != 'none'":{"text":"!params.overcast && flags.commit != 'none'","tree":{"type":"binary","op":"&&","left":{"type":"unary","op":"!","operand":{"type":"name","path":["params","overcast"]}},"right":{"type":"binary","op":"!=","left":{"type":"name","path":["flags","commit"]},"right":{"type":"string","value":"none"}}}},"!self.damaged":{"text":"!self.damaged","tree":{"type":"unary","op":"!","operand":{"type":"name","path":["self","damaged"]}}},"!self.damaged && 3 * level > self.bufferUsed && incoming.amount < 0":{"text":"!self.damaged && 3 * level > self.bufferUsed && incoming.amount < 0","tree":{"type":"binary","op":"&&","left":{"type":"binary","op":"&&","left":{"type":"unary","op":"!","operand":{"type":"name","path":["self","damaged"]}},"right":{"type":"binary","op":">","left":{"type":"binary","op":"*","left":{"type":"int","value":3},"right":{"type":"name","path":["level"]}},"right":{"type":"name","path":["self","bufferUsed"]}}},"right":{"type":"binary","op":"<","left":{"type":"name","path":["incoming","amount"]},"right":{"type":"int","value":0}}}},"!underdog":{"text":"!underdog","tree":{"type":"unary","op":"!","operand":{"type":"name","path":["underdog"]}}},"!underdog || advancement.attributeBoosts == 0":{"text":"!underdog || advancement.attributeBoosts == 0","tree":{"type":"binary","op":"||","left":{"type":"unary","op":"!","operand":{"type":"name","path":["underdog"]}},"right":{"type":"binary","op":"==","left":{"type":"name","path":["advancement","attributeBoosts"]},"right":{"type":"int","value":0}}}},"'acquaintance'":{"text":"'acquaintance'","tree":{"type":"string","value":"acquaintance"}},"'acquaintances'":{"text":"'acquaintances'","tree":{"type":"string","value":"acquaintances"}},"'advancement' in item.tags":{"text":"'advancement' in item.tags","tree":{"type":"binary","op":"in","left":{"type":"string","value":"advancement"},"right":{"type":"name","path":["item","tags"]}}},"'any'":{"text":"'any'","tree":{"type":"string","value":"any"}},"'attack' in item.tags || 'reload' in item.tags":{"text":"'attack' in item.tags || 'reload' in item.tags","tree":{"type":"binary","op":"||","left":{"type":"binary","op":"in","left":{"type":"string","value":"attack"},"right":{"type":"name","path":["item","tags"]}},"right":{"type":"binary","op":"in","left":{"type":"string","value":"reload"},"right":{"type":"name","path":["item","tags"]}}}},"'attr.' + params.attribute":{"text":"'attr.' + params.attribute","tree":{"type":"binary","op":"+","left":{"type":"string","value":"attr."},"right":{"type":"name","path":["params","attribute"]}}},"'attr.wis' in roll.tags && attributes.wis.mod < 2":{"text":"'attr.wis' in roll.tags && attributes.wis.mod < 2","tree":{"type":"binary","op":"&&","left":{"type":"binary","op":"in","left":{"type":"string","value":"attr.wis"},"right":{"type":"name","path":["roll","tags"]}},"right":{"type":"binary","op":"<","left":{"type":"name","path":["attributes","wis","mod"]},"right":{"type":"int","value":2}}}},"'attribute' in item.tags":{"text":"'attribute' in item.tags","tree":{"type":"binary","op":"in","left":{"type":"string","value":"attribute"},"right":{"type":"name","path":["item","tags"]}}},"'attribute' in item.tags && ('attr.' + pick.value) in item.tags":{"text":"'attribute' in item.tags && 'attr.' + pick.value in item.tags","tree":{"type":"binary","op":"&&","left":{"type":"binary","op":"in","left":{"type":"string","value":"attribute"},"right":{"type":"name","path":["item","tags"]}},"right":{"type":"binary","op":"in","left":{"type":"binary","op":"+","left":{"type":"string","value":"attr."},"right":{"type":"name","path":["pick","value"]}},"right":{"type":"name","path":["item","tags"]}}}},"'attribute-base' in item.tags":{"text":"'attribute-base' in item.tags","tree":{"type":"binary","op":"in","left":{"type":"string","value":"attribute-base"},"right":{"type":"name","path":["item","tags"]}}},"'attribute-base' in item.tags\n && countList(flags.group, ('attr.' + x) in item.tags) > 0":{"text":"'attribute-base' in item.tags && countList(flags.group, 'attr.' + x in item.tags) > 0","tree":{"type":"binary","op":"&&","left":{"type":"binary","op":"in","left":{"type":"string","value":"attribute-base"},"right":{"type":"name","path":["item","tags"]}},"right":{"type":"binary","op":">","left":{"type":"call","fn":"countList","args":[{"type":"name","path":["flags","group"]},{"type":"binary","op":"in","left":{"type":"binary","op":"+","left":{"type":"string","value":"attr."},"right":{"type":"name","path":["x"]}},"right":{"type":"name","path":["item","tags"]}}]},"right":{"type":"int","value":0}}}},"'attribute-mod-bonus' in item.tags && ('attr.' + pick.value) in item.tags":{"text":"'attribute-mod-bonus' in item.tags && 'attr.' + pick.value in item.tags","tree":{"type":"binary","op":"&&","left":{"type":"binary","op":"in","left":{"type":"string","value":"attribute-mod-bonus"},"right":{"type":"name","path":["item","tags"]}},"right":{"type":"binary","op":"in","left":{"type":"binary","op":"+","left":{"type":"string","value":"attr."},"right":{"type":"name","path":["pick","value"]}},"right":{"type":"name","path":["item","tags"]}}}},"'attribute-mod-cap' in item.tags && ('attr.' + pick.value) in item.tags":{"text":"'attribute-mod-cap' in item.tags && 'attr.' + pick.value in item.tags","tree":{"type":"binary","op":"&&","left":{"type":"binary","op":"in","left":{"type":"string","value":"attribute-mod-cap"},"right":{"type":"name","path":["item","tags"]}},"right":{"type":"binary","op":"in","left":{"type":"binary","op":"+","left":{"type":"string","value":"attr."},"right":{"type":"name","path":["pick","value"]}},"right":{"type":"name","path":["item","tags"]}}}},"'attribute-score-mod' in item.tags && ('attr.' + pick.value) in item.tags":{"text":"'attribute-score-mod' in item.tags && 'attr.' + pick.value in item.tags","tree":{"type":"binary","op":"&&","left":{"type":"binary","op":"in","left":{"type":"string","value":"attribute-score-mod"},"right":{"type":"name","path":["item","tags"]}},"right":{"type":"binary","op":"in","left":{"type":"binary","op":"+","left":{"type":"string","value":"attr."},"right":{"type":"name","path":["pick","value"]}},"right":{"type":"name","path":["item","tags"]}}}},"'attributes.' + params.attribute + '.base'":{"text":"'attributes.' + params.attribute + '.base'","tree":{"type":"binary","op":"+","left":{"type":"binary","op":"+","left":{"type":"string","value":"attributes."},"right":{"type":"name","path":["params","attribute"]}},"right":{"type":"string","value":".base"}}},"'attributes.' + params.attribute + '.mod'":{"text":"'attributes.' + params.attribute + '.mod'","tree":{"type":"binary","op":"+","left":{"type":"binary","op":"+","left":{"type":"string","value":"attributes."},"right":{"type":"name","path":["params","attribute"]}},"right":{"type":"string","value":".mod"}}},"'attributes.con.mod'":{"text":"'attributes.con.mod'","tree":{"type":"string","value":"attributes.con.mod"}},"'attributes.int.mod'":{"text":"'attributes.int.mod'","tree":{"type":"string","value":"attributes.int.mod"}},"'blade' in item.tags":{"text":"'blade' in item.tags","tree":{"type":"binary","op":"in","left":{"type":"string","value":"blade"},"right":{"type":"name","path":["item","tags"]}}},"'check' in item.tags || 'save' in item.tags":{"text":"'check' in item.tags || 'save' in item.tags","tree":{"type":"binary","op":"||","left":{"type":"binary","op":"in","left":{"type":"string","value":"check"},"right":{"type":"name","path":["item","tags"]}},"right":{"type":"binary","op":"in","left":{"type":"string","value":"save"},"right":{"type":"name","path":["item","tags"]}}}},"'combat.attackBonus'":{"text":"'combat.attackBonus'","tree":{"type":"string","value":"combat.attackBonus"}},"'combat.damageBonus'":{"text":"'combat.damageBonus'","tree":{"type":"string","value":"combat.damageBonus"}},"'combat.initiative'":{"text":"'combat.initiative'","tree":{"type":"string","value":"combat.initiative"}},"'combat.traumaBonus'":{"text":"'combat.traumaBonus'","tree":{"type":"string","value":"combat.traumaBonus"}},"'contacts.contact'":{"text":"'contacts.contact'","tree":{"type":"string","value":"contacts.contact"}},"'created'":{"text":"'created'","tree":{"type":"string","value":"created"}},"'creation' in item.tags || 'building' in item.tags":{"text":"'creation' in item.tags || 'building' in item.tags","tree":{"type":"binary","op":"||","left":{"type":"binary","op":"in","left":{"type":"string","value":"creation"},"right":{"type":"name","path":["item","tags"]}},"right":{"type":"binary","op":"in","left":{"type":"string","value":"building"},"right":{"type":"name","path":["item","tags"]}}}},"'edge'":{"text":"'edge'","tree":{"type":"string","value":"edge"}},"'edge-1'":{"text":"'edge-1'","tree":{"type":"string","value":"edge-1"}},"'edge-2'":{"text":"'edge-2'","tree":{"type":"string","value":"edge-2"}},"'edge-5'":{"text":"'edge-5'","tree":{"type":"string","value":"edge-5"}},"'firearm' in item.tags":{"text":"'firearm' in item.tags","tree":{"type":"binary","op":"in","left":{"type":"string","value":"firearm"},"right":{"type":"name","path":["item","tags"]}}},"'friend'":{"text":"'friend'","tree":{"type":"string","value":"friend"}},"'gained'":{"text":"'gained'","tree":{"type":"string","value":"gained"}},"'grenade' in item.tags ? 10\n : size(participants.target) > 0\n ? (flags.ranged ? participants.target[0].ac.ranged\n : participants.target[0].ac.melee)\n : has(params.targetAc) ? params.targetAc : -1":{"text":"'grenade' in item.tags ? 10 : size(participants.target) > 0 ? (flags.ranged ? participants.target[0].ac.ranged : participants.target[0].ac.melee) : has(params.targetAc) ? params.targetAc : -1","tree":{"type":"conditional","test":{"type":"binary","op":"in","left":{"type":"string","value":"grenade"},"right":{"type":"name","path":["item","tags"]}},"then":{"type":"int","value":10},"else":{"type":"conditional","test":{"type":"binary","op":">","left":{"type":"call","fn":"size","args":[{"type":"name","path":["participants","target"]}]},"right":{"type":"int","value":0}},"then":{"type":"conditional","test":{"type":"name","path":["flags","ranged"]},"then":{"type":"member","object":{"type":"member","object":{"type":"index","object":{"type":"name","path":["participants","target"]},"index":{"type":"int","value":0}},"name":"ac"},"name":"ranged"},"else":{"type":"member","object":{"type":"member","object":{"type":"index","object":{"type":"name","path":["participants","target"]},"index":{"type":"int","value":0}},"name":"ac"},"name":"melee"}},"else":{"type":"conditional","test":{"type":"call","fn":"has","args":[{"type":"name","path":["params","targetAc"]}]},"then":{"type":"name","path":["params","targetAc"]},"else":{"type":"unary","op":"-","operand":{"type":"int","value":1}}}}}},"'hacking' in item.tags":{"text":"'hacking' in item.tags","tree":{"type":"binary","op":"in","left":{"type":"string","value":"hacking"},"right":{"type":"name","path":["item","tags"]}}},"'hp.dieBonus'":{"text":"'hp.dieBonus'","tree":{"type":"string","value":"hp.dieBonus"}},"'initiative' in item.tags || 'healing' in item.tags || 'injury' in item.tags\n || 'drug' in item.tags || 'cyber' in item.tags":{"text":"'initiative' in item.tags || 'healing' in item.tags || 'injury' in item.tags || 'drug' in item.tags || 'cyber' in item.tags","tree":{"type":"binary","op":"||","left":{"type":"binary","op":"||","left":{"type":"binary","op":"||","left":{"type":"binary","op":"||","left":{"type":"binary","op":"in","left":{"type":"string","value":"initiative"},"right":{"type":"name","path":["item","tags"]}},"right":{"type":"binary","op":"in","left":{"type":"string","value":"healing"},"right":{"type":"name","path":["item","tags"]}}},"right":{"type":"binary","op":"in","left":{"type":"string","value":"injury"},"right":{"type":"name","path":["item","tags"]}}},"right":{"type":"binary","op":"in","left":{"type":"string","value":"drug"},"right":{"type":"name","path":["item","tags"]}}},"right":{"type":"binary","op":"in","left":{"type":"string","value":"cyber"},"right":{"type":"name","path":["item","tags"]}}}},"'learning'":{"text":"'learning'","tree":{"type":"string","value":"learning"}},"'magic' in item.tags":{"text":"'magic' in item.tags","tree":{"type":"binary","op":"in","left":{"type":"string","value":"magic"},"right":{"type":"name","path":["item","tags"]}}},"'melee' in item.tags":{"text":"'melee' in item.tags","tree":{"type":"binary","op":"in","left":{"type":"string","value":"melee"},"right":{"type":"name","path":["item","tags"]}}},"'melee' in item.tags || 'thrown' in item.tags":{"text":"'melee' in item.tags || 'thrown' in item.tags","tree":{"type":"binary","op":"||","left":{"type":"binary","op":"in","left":{"type":"string","value":"melee"},"right":{"type":"name","path":["item","tags"]}},"right":{"type":"binary","op":"in","left":{"type":"string","value":"thrown"},"right":{"type":"name","path":["item","tags"]}}}},"'middle'":{"text":"'middle'","tree":{"type":"string","value":"middle"}},"'new'":{"text":"'new'","tree":{"type":"string","value":"new"}},"'portable' in item.tags":{"text":"'portable' in item.tags","tree":{"type":"binary","op":"in","left":{"type":"string","value":"portable"},"right":{"type":"name","path":["item","tags"]}}},"'raised'":{"text":"'raised'","tree":{"type":"string","value":"raised"}},"'rest' in item.tags":{"text":"'rest' in item.tags","tree":{"type":"binary","op":"in","left":{"type":"string","value":"rest"},"right":{"type":"name","path":["item","tags"]}}},"'roll'":{"text":"'roll'","tree":{"type":"string","value":"roll"}},"'rolled'":{"text":"'rolled'","tree":{"type":"string","value":"rolled"}},"'save' in item.tags":{"text":"'save' in item.tags","tree":{"type":"binary","op":"in","left":{"type":"string","value":"save"},"right":{"type":"name","path":["item","tags"]}}},"'save.' + params.save":{"text":"'save.' + params.save","tree":{"type":"binary","op":"+","left":{"type":"string","value":"save."},"right":{"type":"name","path":["params","save"]}}},"'skill' in item.tags":{"text":"'skill' in item.tags","tree":{"type":"binary","op":"in","left":{"type":"string","value":"skill"},"right":{"type":"name","path":["item","tags"]}}},"'skill' in item.tags && ('skill.' + pick.value) in item.tags":{"text":"'skill' in item.tags && 'skill.' + pick.value in item.tags","tree":{"type":"binary","op":"&&","left":{"type":"binary","op":"in","left":{"type":"string","value":"skill"},"right":{"type":"name","path":["item","tags"]}},"right":{"type":"binary","op":"in","left":{"type":"binary","op":"+","left":{"type":"string","value":"skill."},"right":{"type":"name","path":["pick","value"]}},"right":{"type":"name","path":["item","tags"]}}}},"'skill.' + item.skill":{"text":"'skill.' + item.skill","tree":{"type":"binary","op":"+","left":{"type":"string","value":"skill."},"right":{"type":"name","path":["item","skill"]}}},"'skills.' + flags.skill + '.base'":{"text":"'skills.' + flags.skill + '.base'","tree":{"type":"binary","op":"+","left":{"type":"binary","op":"+","left":{"type":"string","value":"skills."},"right":{"type":"name","path":["flags","skill"]}},"right":{"type":"string","value":".base"}}},"'skills.' + flags.skill + '.credit'":{"text":"'skills.' + flags.skill + '.credit'","tree":{"type":"binary","op":"+","left":{"type":"binary","op":"+","left":{"type":"string","value":"skills."},"right":{"type":"name","path":["flags","skill"]}},"right":{"type":"string","value":".credit"}}},"'skills.' + params.skill + '.base'":{"text":"'skills.' + params.skill + '.base'","tree":{"type":"binary","op":"+","left":{"type":"binary","op":"+","left":{"type":"string","value":"skills."},"right":{"type":"name","path":["params","skill"]}},"right":{"type":"string","value":".base"}}},"'skills.' + params.skill + '.credit'":{"text":"'skills.' + params.skill + '.credit'","tree":{"type":"binary","op":"+","left":{"type":"binary","op":"+","left":{"type":"string","value":"skills."},"right":{"type":"name","path":["params","skill"]}},"right":{"type":"string","value":".credit"}}},"'skills.cast.level'":{"text":"'skills.cast.level'","tree":{"type":"string","value":"skills.cast.level"}},"'skills.program.level'":{"text":"'skills.program.level'","tree":{"type":"string","value":"skills.program.level"}},"'standard' in item.tags":{"text":"'standard' in item.tags","tree":{"type":"binary","op":"in","left":{"type":"string","value":"standard"},"right":{"type":"name","path":["item","tags"]}}},"'take'":{"text":"'take'","tree":{"type":"string","value":"take"}},"'thrown' in item.tags\n || (params.thrown && has(item.rangeNormal) && 'melee' in item.tags)":{"text":"'thrown' in item.tags || params.thrown && has(item.rangeNormal) && 'melee' in item.tags","tree":{"type":"binary","op":"||","left":{"type":"binary","op":"in","left":{"type":"string","value":"thrown"},"right":{"type":"name","path":["item","tags"]}},"right":{"type":"binary","op":"&&","left":{"type":"binary","op":"&&","left":{"type":"name","path":["params","thrown"]},"right":{"type":"call","fn":"has","args":[{"type":"name","path":["item","rangeNormal"]}]}},"right":{"type":"binary","op":"in","left":{"type":"string","value":"melee"},"right":{"type":"name","path":["item","tags"]}}}}},"'unarmed' in item.tags":{"text":"'unarmed' in item.tags","tree":{"type":"binary","op":"in","left":{"type":"string","value":"unarmed"},"right":{"type":"name","path":["item","tags"]}}},"'unarmed' in item.tags && skills.punch.level > 0":{"text":"'unarmed' in item.tags && skills.punch.level > 0","tree":{"type":"binary","op":"&&","left":{"type":"binary","op":"in","left":{"type":"string","value":"unarmed"},"right":{"type":"name","path":["item","tags"]}},"right":{"type":"binary","op":">","left":{"type":"name","path":["skills","punch","level"]},"right":{"type":"int","value":0}}}},"'unarmed' in item.tags ? 0\n : flags.thrown ? max(combat.meleeSkillDamage, combat.rangedSkillDamage)\n : flags.ranged ? combat.rangedSkillDamage : combat.meleeSkillDamage":{"text":"'unarmed' in item.tags ? 0 : flags.thrown ? max(combat.meleeSkillDamage, combat.rangedSkillDamage) : flags.ranged ? combat.rangedSkillDamage : combat.meleeSkillDamage","tree":{"type":"conditional","test":{"type":"binary","op":"in","left":{"type":"string","value":"unarmed"},"right":{"type":"name","path":["item","tags"]}},"then":{"type":"int","value":0},"else":{"type":"conditional","test":{"type":"name","path":["flags","thrown"]},"then":{"type":"call","fn":"max","args":[{"type":"name","path":["combat","meleeSkillDamage"]},{"type":"name","path":["combat","rangedSkillDamage"]}]},"else":{"type":"conditional","test":{"type":"name","path":["flags","ranged"]},"then":{"type":"name","path":["combat","rangedSkillDamage"]},"else":{"type":"name","path":["combat","meleeSkillDamage"]}}}}},"'underdog-edge'":{"text":"'underdog-edge'","tree":{"type":"string","value":"underdog-edge"}},"'weapon'":{"text":"'weapon'","tree":{"type":"string","value":"weapon"}},"('repeatable' in item.tags || !(item.id in edges.taken))\n && (!item.magic || (campaign.magic && params.choice != 'underdog-edge'\n && params.choice != 'edge-5'))\n && !('not-underdog' in item.tags && (underdog || params.choice == 'underdog-edge'))\n && !('brings-cyber' in item.tags\n && (magic.graced || countCopies(copy.item == @foci.all-natural) > 0))":{"text":"('repeatable' in item.tags || !(item.id in edges.taken)) && (!item.magic || campaign.magic && params.choice != 'underdog-edge' && params.choice != 'edge-5') && !('not-underdog' in item.tags && (underdog || params.choice == 'underdog-edge')) && !('brings-cyber' in item.tags && (magic.graced || countCopies(copy.item == @foci.all-natural) > 0))","tree":{"type":"binary","op":"&&","left":{"type":"binary","op":"&&","left":{"type":"binary","op":"&&","left":{"type":"binary","op":"||","left":{"type":"binary","op":"in","left":{"type":"string","value":"repeatable"},"right":{"type":"name","path":["item","tags"]}},"right":{"type":"unary","op":"!","operand":{"type":"binary","op":"in","left":{"type":"name","path":["item","id"]},"right":{"type":"name","path":["edges","taken"]}}}},"right":{"type":"binary","op":"||","left":{"type":"unary","op":"!","operand":{"type":"name","path":["item","magic"]}},"right":{"type":"binary","op":"&&","left":{"type":"binary","op":"&&","left":{"type":"name","path":["campaign","magic"]},"right":{"type":"binary","op":"!=","left":{"type":"name","path":["params","choice"]},"right":{"type":"string","value":"underdog-edge"}}},"right":{"type":"binary","op":"!=","left":{"type":"name","path":["params","choice"]},"right":{"type":"string","value":"edge-5"}}}}},"right":{"type":"unary","op":"!","operand":{"type":"binary","op":"&&","left":{"type":"binary","op":"in","left":{"type":"string","value":"not-underdog"},"right":{"type":"name","path":["item","tags"]}},"right":{"type":"binary","op":"||","left":{"type":"name","path":["underdog"]},"right":{"type":"binary","op":"==","left":{"type":"name","path":["params","choice"]},"right":{"type":"string","value":"underdog-edge"}}}}}},"right":{"type":"unary","op":"!","operand":{"type":"binary","op":"&&","left":{"type":"binary","op":"in","left":{"type":"string","value":"brings-cyber"},"right":{"type":"name","path":["item","tags"]}},"right":{"type":"binary","op":"||","left":{"type":"name","path":["magic","graced"]},"right":{"type":"binary","op":">","left":{"type":"call","fn":"countCopies","args":[{"type":"binary","op":"==","left":{"type":"name","path":["copy","item"]},"right":{"type":"ref","id":"foci.all-natural"}}]},"right":{"type":"int","value":0}}}}}}},"('repeatable' in item.tags || countCopies(copy.item == item.id) == 0)\n && !('brings-cyber' in item.tags\n && (magic.graced || countCopies(copy.item == @foci.all-natural) > 0))\n && !(item.id == @foci.all-natural && (underdog || magic.mage || magic.summoner\n || magic.graced || countCopies(copy.type == 'cyberware' && copy.fields.strain > 0) > 0))":{"text":"('repeatable' in item.tags || countCopies(copy.item == item.id) == 0) && !('brings-cyber' in item.tags && (magic.graced || countCopies(copy.item == @foci.all-natural) > 0)) && !(item.id == @foci.all-natural && (underdog || magic.mage || magic.summoner || magic.graced || countCopies(copy.type == 'cyberware' && copy.fields.strain > 0) > 0))","tree":{"type":"binary","op":"&&","left":{"type":"binary","op":"&&","left":{"type":"binary","op":"||","left":{"type":"binary","op":"in","left":{"type":"string","value":"repeatable"},"right":{"type":"name","path":["item","tags"]}},"right":{"type":"binary","op":"==","left":{"type":"call","fn":"countCopies","args":[{"type":"binary","op":"==","left":{"type":"name","path":["copy","item"]},"right":{"type":"name","path":["item","id"]}}]},"right":{"type":"int","value":0}}},"right":{"type":"unary","op":"!","operand":{"type":"binary","op":"&&","left":{"type":"binary","op":"in","left":{"type":"string","value":"brings-cyber"},"right":{"type":"name","path":["item","tags"]}},"right":{"type":"binary","op":"||","left":{"type":"name","path":["magic","graced"]},"right":{"type":"binary","op":">","left":{"type":"call","fn":"countCopies","args":[{"type":"binary","op":"==","left":{"type":"name","path":["copy","item"]},"right":{"type":"ref","id":"foci.all-natural"}}]},"right":{"type":"int","value":0}}}}}},"right":{"type":"unary","op":"!","operand":{"type":"binary","op":"&&","left":{"type":"binary","op":"==","left":{"type":"name","path":["item","id"]},"right":{"type":"ref","id":"foci.all-natural"}},"right":{"type":"binary","op":"||","left":{"type":"binary","op":"||","left":{"type":"binary","op":"||","left":{"type":"binary","op":"||","left":{"type":"name","path":["underdog"]},"right":{"type":"name","path":["magic","mage"]}},"right":{"type":"name","path":["magic","summoner"]}},"right":{"type":"name","path":["magic","graced"]}},"right":{"type":"binary","op":">","left":{"type":"call","fn":"countCopies","args":[{"type":"binary","op":"&&","left":{"type":"binary","op":"==","left":{"type":"name","path":["copy","type"]},"right":{"type":"string","value":"cyberware"}},"right":{"type":"binary","op":">","left":{"type":"name","path":["copy","fields","strain"]},"right":{"type":"int","value":0}}}]},"right":{"type":"int","value":0}}}}}}},"('skill.' + pick.value) in roll.tags":{"text":"'skill.' + pick.value in roll.tags","tree":{"type":"binary","op":"in","left":{"type":"binary","op":"+","left":{"type":"string","value":"skill."},"right":{"type":"name","path":["pick","value"]}},"right":{"type":"name","path":["roll","tags"]}}},"(campaign.magic || !item.magic) && (slot < 5 || !item.magic)":{"text":"(campaign.magic || !item.magic) && (slot < 5 || !item.magic)","tree":{"type":"binary","op":"&&","left":{"type":"binary","op":"||","left":{"type":"name","path":["campaign","magic"]},"right":{"type":"unary","op":"!","operand":{"type":"name","path":["item","magic"]}}},"right":{"type":"binary","op":"||","left":{"type":"binary","op":"<","left":{"type":"name","path":["slot"]},"right":{"type":"int","value":5}},"right":{"type":"unary","op":"!","operand":{"type":"name","path":["item","magic"]}}}}},"(level + 1) in [2, 5, 7, 10]":{"text":"level + 1 in [2, 5, 7, 10]","tree":{"type":"binary","op":"in","left":{"type":"binary","op":"+","left":{"type":"name","path":["level"]},"right":{"type":"int","value":1}},"right":{"type":"list","items":[{"type":"int","value":2},{"type":"int","value":5},{"type":"int","value":7},{"type":"int","value":10}]}}},"(self.equipped || 'standard' in item.tags || 'implant' in item.tags)\n && !('trap' in item.tags) && (!has(item.magazine) || self.loaded >= 1)":{"text":"(self.equipped || 'standard' in item.tags || 'implant' in item.tags) && !('trap' in item.tags) && (!has(item.magazine) || self.loaded >= 1)","tree":{"type":"binary","op":"&&","left":{"type":"binary","op":"&&","left":{"type":"binary","op":"||","left":{"type":"binary","op":"||","left":{"type":"name","path":["self","equipped"]},"right":{"type":"binary","op":"in","left":{"type":"string","value":"standard"},"right":{"type":"name","path":["item","tags"]}}},"right":{"type":"binary","op":"in","left":{"type":"string","value":"implant"},"right":{"type":"name","path":["item","tags"]}}},"right":{"type":"unary","op":"!","operand":{"type":"binary","op":"in","left":{"type":"string","value":"trap"},"right":{"type":"name","path":["item","tags"]}}}},"right":{"type":"binary","op":"||","left":{"type":"unary","op":"!","operand":{"type":"call","fn":"has","args":[{"type":"name","path":["item","magazine"]}]}},"right":{"type":"binary","op":">=","left":{"type":"name","path":["self","loaded"]},"right":{"type":"int","value":1}}}}},"(skills.know.level >= 1 ? 2 : skills.know.level >= 0 ? 1 : 0)\n + (skills.connect.level >= 1 ? 2 : skills.connect.level >= 0 ? 1 : 0)":{"text":"(skills.know.level >= 1 ? 2 : skills.know.level >= 0 ? 1 : 0) + (skills.connect.level >= 1 ? 2 : skills.connect.level >= 0 ? 1 : 0)","tree":{"type":"binary","op":"+","left":{"type":"conditional","test":{"type":"binary","op":">=","left":{"type":"name","path":["skills","know","level"]},"right":{"type":"int","value":1}},"then":{"type":"int","value":2},"else":{"type":"conditional","test":{"type":"binary","op":">=","left":{"type":"name","path":["skills","know","level"]},"right":{"type":"int","value":0}},"then":{"type":"int","value":1},"else":{"type":"int","value":0}}},"right":{"type":"conditional","test":{"type":"binary","op":">=","left":{"type":"name","path":["skills","connect","level"]},"right":{"type":"int","value":1}},"then":{"type":"int","value":2},"else":{"type":"conditional","test":{"type":"binary","op":">=","left":{"type":"name","path":["skills","connect","level"]},"right":{"type":"int","value":0}},"then":{"type":"int","value":1},"else":{"type":"int","value":0}}}}},"-[0, 3, 5][enc.overload]":{"text":"-[0, 3, 5][enc.overload]","tree":{"type":"unary","op":"-","operand":{"type":"index","object":{"type":"list","items":[{"type":"int","value":0},{"type":"int","value":3},{"type":"int","value":5}]},"index":{"type":"name","path":["enc","overload"]}}}},"-armor.heavy":{"text":"-armor.heavy","tree":{"type":"unary","op":"-","operand":{"type":"name","path":["armor","heavy"]}}},"-flags.cost":{"text":"-flags.cost","tree":{"type":"unary","op":"-","operand":{"type":"name","path":["flags","cost"]}}},"-flags.dealt":{"text":"-flags.dealt","tree":{"type":"unary","op":"-","operand":{"type":"name","path":["flags","dealt"]}}},"-max(0, flags.cost - flags.credit)":{"text":"-max(0, flags.cost - flags.credit)","tree":{"type":"unary","op":"-","operand":{"type":"call","fn":"max","args":[{"type":"int","value":0},{"type":"binary","op":"-","left":{"type":"name","path":["flags","cost"]},"right":{"type":"name","path":["flags","credit"]}}]}}},"1 + (level >= 2 ? 1 : 0) + (level >= 5 ? 1 : 0) + (level >= 7 ? 1 : 0) + (level >= 10 ? 1 : 0)":{"text":"1 + (level >= 2 ? 1 : 0) + (level >= 5 ? 1 : 0) + (level >= 7 ? 1 : 0) + (level >= 10 ? 1 : 0)","tree":{"type":"binary","op":"+","left":{"type":"binary","op":"+","left":{"type":"binary","op":"+","left":{"type":"binary","op":"+","left":{"type":"int","value":1},"right":{"type":"conditional","test":{"type":"binary","op":">=","left":{"type":"name","path":["level"]},"right":{"type":"int","value":2}},"then":{"type":"int","value":1},"else":{"type":"int","value":0}}},"right":{"type":"conditional","test":{"type":"binary","op":">=","left":{"type":"name","path":["level"]},"right":{"type":"int","value":5}},"then":{"type":"int","value":1},"else":{"type":"int","value":0}}},"right":{"type":"conditional","test":{"type":"binary","op":">=","left":{"type":"name","path":["level"]},"right":{"type":"int","value":7}},"then":{"type":"int","value":1},"else":{"type":"int","value":0}}},"right":{"type":"conditional","test":{"type":"binary","op":">=","left":{"type":"name","path":["level"]},"right":{"type":"int","value":10}},"then":{"type":"int","value":1},"else":{"type":"int","value":0}}}},"1 + max(0, skills.drive.level)":{"text":"1 + max(0, skills.drive.level)","tree":{"type":"binary","op":"+","left":{"type":"int","value":1},"right":{"type":"call","fn":"max","args":[{"type":"int","value":0},{"type":"name","path":["skills","drive","level"]}]}}},"15 + ceil(level / 2)":{"text":"15 + ceil(level / 2)","tree":{"type":"binary","op":"+","left":{"type":"int","value":15},"right":{"type":"call","fn":"ceil","args":[{"type":"binary","op":"/","left":{"type":"name","path":["level"]},"right":{"type":"int","value":2}}]}}},"16 - level":{"text":"16 - level","tree":{"type":"binary","op":"-","left":{"type":"int","value":16},"right":{"type":"name","path":["level"]}}},"16 - level - max(attributes.dex.mod, attributes.int.mod)":{"text":"16 - level - max(attributes.dex.mod, attributes.int.mod)","tree":{"type":"binary","op":"-","left":{"type":"binary","op":"-","left":{"type":"int","value":16},"right":{"type":"name","path":["level"]}},"right":{"type":"call","fn":"max","args":[{"type":"name","path":["attributes","dex","mod"]},{"type":"name","path":["attributes","int","mod"]}]}}},"16 - level - max(attributes.str.mod, attributes.con.mod)":{"text":"16 - level - max(attributes.str.mod, attributes.con.mod)","tree":{"type":"binary","op":"-","left":{"type":"binary","op":"-","left":{"type":"int","value":16},"right":{"type":"name","path":["level"]}},"right":{"type":"call","fn":"max","args":[{"type":"name","path":["attributes","str","mod"]},{"type":"name","path":["attributes","con","mod"]}]}}},"16 - level - max(attributes.wis.mod, attributes.cha.mod)":{"text":"16 - level - max(attributes.wis.mod, attributes.cha.mod)","tree":{"type":"binary","op":"-","left":{"type":"binary","op":"-","left":{"type":"int","value":16},"right":{"type":"name","path":["level"]}},"right":{"type":"call","fn":"max","args":[{"type":"name","path":["attributes","wis","mod"]},{"type":"name","path":["attributes","cha","mod"]}]}}},"18 - field.value":{"text":"18 - field.value","tree":{"type":"binary","op":"-","left":{"type":"int","value":18},"right":{"type":"name","path":["field","value"]}}},"1d10":{"text":"1d10","tree":{"type":"dice","count":1,"sides":10,"modifiers":[]}},"1d10+2":{"text":"1d10 + 2","tree":{"type":"binary","op":"+","left":{"type":"dice","count":1,"sides":10,"modifiers":[]},"right":{"type":"int","value":2}}},"1d12":{"text":"1d12","tree":{"type":"dice","count":1,"sides":12,"modifiers":[]}},"1d2":{"text":"1d2","tree":{"type":"dice","count":1,"sides":2,"modifiers":[]}},"1d20":{"text":"1d20","tree":{"type":"dice","count":1,"sides":20,"modifiers":[]}},"1d4":{"text":"1d4","tree":{"type":"dice","count":1,"sides":4,"modifiers":[]}},"1d6":{"text":"1d6","tree":{"type":"dice","count":1,"sides":6,"modifiers":[]}},"1d8":{"text":"1d8","tree":{"type":"dice","count":1,"sides":8,"modifiers":[]}},"1d8+1":{"text":"1d8 + 1","tree":{"type":"binary","op":"+","left":{"type":"dice","count":1,"sides":8,"modifiers":[]},"right":{"type":"int","value":1}}},"2d6":{"text":"2d6","tree":{"type":"dice","count":2,"sides":6,"modifiers":[]}},"2d6kh2":{"text":"2d6kh2","tree":{"type":"dice","count":2,"sides":6,"modifiers":[{"type":"keepHighest","count":2}]}},"2d8":{"text":"2d8","tree":{"type":"dice","count":2,"sides":8,"modifiers":[]}},"3 + fieldOf('skills.{skill}.credit', flags.skill)":{"text":"3 + fieldOf('skills.{skill}.credit', flags.skill)","tree":{"type":"binary","op":"+","left":{"type":"int","value":3},"right":{"type":"call","fn":"fieldOf","args":[{"type":"string","value":"skills.{skill}.credit"},{"type":"name","path":["flags","skill"]}]}}},"3d10":{"text":"3d10","tree":{"type":"dice","count":3,"sides":10,"modifiers":[]}},"3d4":{"text":"3d4","tree":{"type":"dice","count":3,"sides":4,"modifiers":[]}},"3d6":{"text":"3d6","tree":{"type":"dice","count":3,"sides":6,"modifiers":[]}},"3d8":{"text":"3d8","tree":{"type":"dice","count":3,"sides":8,"modifiers":[]}},"4d12":{"text":"4d12","tree":{"type":"dice","count":4,"sides":12,"modifiers":[]}},"4d6":{"text":"4d6","tree":{"type":"dice","count":4,"sides":6,"modifiers":[]}},"[-2, -1, 0, 1, 2][indexOf(['squatter', 'slum', 'middle', 'fine', 'luxury'], lifestyle)]":{"text":"[-2, -1, 0, 1, 2][indexOf(['squatter', 'slum', 'middle', 'fine', 'luxury'], lifestyle)]","tree":{"type":"index","object":{"type":"list","items":[{"type":"unary","op":"-","operand":{"type":"int","value":2}},{"type":"unary","op":"-","operand":{"type":"int","value":1}},{"type":"int","value":0},{"type":"int","value":1},{"type":"int","value":2}]},"index":{"type":"call","fn":"indexOf","args":[{"type":"list","items":[{"type":"string","value":"squatter"},{"type":"string","value":"slum"},{"type":"string","value":"middle"},{"type":"string","value":"fine"},{"type":"string","value":"luxury"}]},{"type":"name","path":["lifestyle"]}]}}},"[1000, 5000, 10000, 15000, 20000, 25000, 35000, 45000, 60000, 80000][level - 1]":{"text":"[1000, 5000, 10000, 15000, 20000, 25000, 35000, 45000, 60000, 80000][level - 1]","tree":{"type":"index","object":{"type":"list","items":[{"type":"int","value":1000},{"type":"int","value":5000},{"type":"int","value":10000},{"type":"int","value":15000},{"type":"int","value":20000},{"type":"int","value":25000},{"type":"int","value":35000},{"type":"int","value":45000},{"type":"int","value":60000},{"type":"int","value":80000}]},"index":{"type":"binary","op":"-","left":{"type":"name","path":["level"]},"right":{"type":"int","value":1}}}},"[1d6, 1d8, 1d10, 1d12, 1d12 + 1][max(0, skills.punch.base)]":{"text":"[1d6, 1d8, 1d10, 1d12, 1d12 + 1][max(0, skills.punch.base)]","tree":{"type":"index","object":{"type":"list","items":[{"type":"dice","count":1,"sides":6,"modifiers":[]},{"type":"dice","count":1,"sides":8,"modifiers":[]},{"type":"dice","count":1,"sides":10,"modifiers":[]},{"type":"dice","count":1,"sides":12,"modifiers":[]},{"type":"binary","op":"+","left":{"type":"dice","count":1,"sides":12,"modifiers":[]},"right":{"type":"int","value":1}}]},"index":{"type":"call","fn":"max","args":[{"type":"int","value":0},{"type":"name","path":["skills","punch","base"]}]}}},"[5000, 10000, 15000, 20000, 30000, 40000, 60000, 80000, 100000, 200000][level - 1]":{"text":"[5000, 10000, 15000, 20000, 30000, 40000, 60000, 80000, 100000, 200000][level - 1]","tree":{"type":"index","object":{"type":"list","items":[{"type":"int","value":5000},{"type":"int","value":10000},{"type":"int","value":15000},{"type":"int","value":20000},{"type":"int","value":30000},{"type":"int","value":40000},{"type":"int","value":60000},{"type":"int","value":80000},{"type":"int","value":100000},{"type":"int","value":200000}]},"index":{"type":"binary","op":"-","left":{"type":"name","path":["level"]},"right":{"type":"int","value":1}}}},"[params.choice, steps.edge.picked, 'attribute']":{"text":"[params.choice, steps.edge.picked, 'attribute']","tree":{"type":"list","items":[{"type":"name","path":["params","choice"]},{"type":"name","path":["steps","edge","picked"]},{"type":"string","value":"attribute"}]}},"[params.choice]":{"text":"[params.choice]","tree":{"type":"list","items":[{"type":"name","path":["params","choice"]}]}},"[steps.background.item.growth1, steps.background.item.growth2,\n steps.background.item.growth3, steps.background.item.growth4,\n steps.background.item.growth5, steps.background.item.growth6]":{"text":"[steps.background.item.growth1, steps.background.item.growth2, steps.background.item.growth3, steps.background.item.growth4, steps.background.item.growth5, steps.background.item.growth6]","tree":{"type":"list","items":[{"type":"name","path":["steps","background","item","growth1"]},{"type":"name","path":["steps","background","item","growth2"]},{"type":"name","path":["steps","background","item","growth3"]},{"type":"name","path":["steps","background","item","growth4"]},{"type":"name","path":["steps","background","item","growth5"]},{"type":"name","path":["steps","background","item","growth6"]}]}},"[steps.background.item.learning1, steps.background.item.learning2,\n steps.background.item.learning3, steps.background.item.learning4,\n steps.background.item.learning5, steps.background.item.learning6,\n steps.background.item.learning7, steps.background.item.learning8]":{"text":"[steps.background.item.learning1, steps.background.item.learning2, steps.background.item.learning3, steps.background.item.learning4, steps.background.item.learning5, steps.background.item.learning6, steps.background.item.learning7, steps.background.item.learning8]","tree":{"type":"list","items":[{"type":"name","path":["steps","background","item","learning1"]},{"type":"name","path":["steps","background","item","learning2"]},{"type":"name","path":["steps","background","item","learning3"]},{"type":"name","path":["steps","background","item","learning4"]},{"type":"name","path":["steps","background","item","learning5"]},{"type":"name","path":["steps","background","item","learning6"]},{"type":"name","path":["steps","background","item","learning7"]},{"type":"name","path":["steps","background","item","learning8"]}]}},"[steps.str.total, steps.dex.total, steps.con.total, steps.int.total,\n steps.wis.total, steps.cha.total]":{"text":"[steps.str.total, steps.dex.total, steps.con.total, steps.int.total, steps.wis.total, steps.cha.total]","tree":{"type":"list","items":[{"type":"name","path":["steps","str","total"]},{"type":"name","path":["steps","dex","total"]},{"type":"name","path":["steps","con","total"]},{"type":"name","path":["steps","int","total"]},{"type":"name","path":["steps","wis","total"]},{"type":"name","path":["steps","cha","total"]}]}},"ac.melee.base + attributes.dex.mod":{"text":"ac.melee.base + attributes.dex.mod","tree":{"type":"binary","op":"+","left":{"type":"name","path":["ac","melee","base"]},"right":{"type":"name","path":["attributes","dex","mod"]}}},"ac.ranged.base + attributes.dex.mod":{"text":"ac.ranged.base + attributes.dex.mod","tree":{"type":"binary","op":"+","left":{"type":"name","path":["ac","ranged","base"]},"right":{"type":"name","path":["attributes","dex","mod"]}}},"advancement.attributeBoosts + 1":{"text":"advancement.attributeBoosts + 1","tree":{"type":"binary","op":"+","left":{"type":"name","path":["advancement","attributeBoosts"]},"right":{"type":"int","value":1}}},"armor.heavy > 0":{"text":"armor.heavy > 0","tree":{"type":"binary","op":">","left":{"type":"name","path":["armor","heavy"]},"right":{"type":"int","value":0}}},"arts.points":{"text":"arts.points","tree":{"type":"name","path":["arts","points"]}},"attributes.cha.base":{"text":"attributes.cha.base","tree":{"type":"name","path":["attributes","cha","base"]}},"attributes.cha.base >= 14 ? min(18, attributes.cha.base + 2) : 14":{"text":"attributes.cha.base >= 14 ? min(18, attributes.cha.base + 2) : 14","tree":{"type":"conditional","test":{"type":"binary","op":">=","left":{"type":"name","path":["attributes","cha","base"]},"right":{"type":"int","value":14}},"then":{"type":"call","fn":"min","args":[{"type":"int","value":18},{"type":"binary","op":"+","left":{"type":"name","path":["attributes","cha","base"]},"right":{"type":"int","value":2}}]},"else":{"type":"int","value":14}}},"attributes.cha.score >= 18 ? 2 : attributes.cha.score >= 14 ? 1\n : attributes.cha.score >= 8 ? 0 : attributes.cha.score >= 4 ? -1 : -2":{"text":"attributes.cha.score >= 18 ? 2 : attributes.cha.score >= 14 ? 1 : attributes.cha.score >= 8 ? 0 : attributes.cha.score >= 4 ? -1 : -2","tree":{"type":"conditional","test":{"type":"binary","op":">=","left":{"type":"name","path":["attributes","cha","score"]},"right":{"type":"int","value":18}},"then":{"type":"int","value":2},"else":{"type":"conditional","test":{"type":"binary","op":">=","left":{"type":"name","path":["attributes","cha","score"]},"right":{"type":"int","value":14}},"then":{"type":"int","value":1},"else":{"type":"conditional","test":{"type":"binary","op":">=","left":{"type":"name","path":["attributes","cha","score"]},"right":{"type":"int","value":8}},"then":{"type":"int","value":0},"else":{"type":"conditional","test":{"type":"binary","op":">=","left":{"type":"name","path":["attributes","cha","score"]},"right":{"type":"int","value":4}},"then":{"type":"unary","op":"-","operand":{"type":"int","value":1}},"else":{"type":"unary","op":"-","operand":{"type":"int","value":2}}}}}}},"attributes.con.base":{"text":"attributes.con.base","tree":{"type":"name","path":["attributes","con","base"]}},"attributes.con.mod + hp.dieBonus":{"text":"attributes.con.mod + hp.dieBonus","tree":{"type":"binary","op":"+","left":{"type":"name","path":["attributes","con","mod"]},"right":{"type":"name","path":["hp","dieBonus"]}}},"attributes.con.score":{"text":"attributes.con.score","tree":{"type":"name","path":["attributes","con","score"]}},"attributes.con.score >= 18 ? 2 : attributes.con.score >= 14 ? 1\n : attributes.con.score >= 8 ? 0 : attributes.con.score >= 4 ? -1 : -2":{"text":"attributes.con.score >= 18 ? 2 : attributes.con.score >= 14 ? 1 : attributes.con.score >= 8 ? 0 : attributes.con.score >= 4 ? -1 : -2","tree":{"type":"conditional","test":{"type":"binary","op":">=","left":{"type":"name","path":["attributes","con","score"]},"right":{"type":"int","value":18}},"then":{"type":"int","value":2},"else":{"type":"conditional","test":{"type":"binary","op":">=","left":{"type":"name","path":["attributes","con","score"]},"right":{"type":"int","value":14}},"then":{"type":"int","value":1},"else":{"type":"conditional","test":{"type":"binary","op":">=","left":{"type":"name","path":["attributes","con","score"]},"right":{"type":"int","value":8}},"then":{"type":"int","value":0},"else":{"type":"conditional","test":{"type":"binary","op":">=","left":{"type":"name","path":["attributes","con","score"]},"right":{"type":"int","value":4}},"then":{"type":"unary","op":"-","operand":{"type":"int","value":1}},"else":{"type":"unary","op":"-","operand":{"type":"int","value":2}}}}}}},"attributes.dex.base":{"text":"attributes.dex.base","tree":{"type":"name","path":["attributes","dex","base"]}},"attributes.dex.base >= 14 ? min(18, attributes.dex.base + 2) : 14":{"text":"attributes.dex.base >= 14 ? min(18, attributes.dex.base + 2) : 14","tree":{"type":"conditional","test":{"type":"binary","op":">=","left":{"type":"name","path":["attributes","dex","base"]},"right":{"type":"int","value":14}},"then":{"type":"call","fn":"min","args":[{"type":"int","value":18},{"type":"binary","op":"+","left":{"type":"name","path":["attributes","dex","base"]},"right":{"type":"int","value":2}}]},"else":{"type":"int","value":14}}},"attributes.dex.mod":{"text":"attributes.dex.mod","tree":{"type":"name","path":["attributes","dex","mod"]}},"attributes.dex.score >= 18 ? 2 : attributes.dex.score >= 14 ? 1\n : attributes.dex.score >= 8 ? 0 : attributes.dex.score >= 4 ? -1 : -2":{"text":"attributes.dex.score >= 18 ? 2 : attributes.dex.score >= 14 ? 1 : attributes.dex.score >= 8 ? 0 : attributes.dex.score >= 4 ? -1 : -2","tree":{"type":"conditional","test":{"type":"binary","op":">=","left":{"type":"name","path":["attributes","dex","score"]},"right":{"type":"int","value":18}},"then":{"type":"int","value":2},"else":{"type":"conditional","test":{"type":"binary","op":">=","left":{"type":"name","path":["attributes","dex","score"]},"right":{"type":"int","value":14}},"then":{"type":"int","value":1},"else":{"type":"conditional","test":{"type":"binary","op":">=","left":{"type":"name","path":["attributes","dex","score"]},"right":{"type":"int","value":8}},"then":{"type":"int","value":0},"else":{"type":"conditional","test":{"type":"binary","op":">=","left":{"type":"name","path":["attributes","dex","score"]},"right":{"type":"int","value":4}},"then":{"type":"unary","op":"-","operand":{"type":"int","value":1}},"else":{"type":"unary","op":"-","operand":{"type":"int","value":2}}}}}}},"attributes.int.base":{"text":"attributes.int.base","tree":{"type":"name","path":["attributes","int","base"]}},"attributes.int.score >= 18 ? 2 : attributes.int.score >= 14 ? 1\n : attributes.int.score >= 8 ? 0 : attributes.int.score >= 4 ? -1 : -2":{"text":"attributes.int.score >= 18 ? 2 : attributes.int.score >= 14 ? 1 : attributes.int.score >= 8 ? 0 : attributes.int.score >= 4 ? -1 : -2","tree":{"type":"conditional","test":{"type":"binary","op":">=","left":{"type":"name","path":["attributes","int","score"]},"right":{"type":"int","value":18}},"then":{"type":"int","value":2},"else":{"type":"conditional","test":{"type":"binary","op":">=","left":{"type":"name","path":["attributes","int","score"]},"right":{"type":"int","value":14}},"then":{"type":"int","value":1},"else":{"type":"conditional","test":{"type":"binary","op":">=","left":{"type":"name","path":["attributes","int","score"]},"right":{"type":"int","value":8}},"then":{"type":"int","value":0},"else":{"type":"conditional","test":{"type":"binary","op":">=","left":{"type":"name","path":["attributes","int","score"]},"right":{"type":"int","value":4}},"then":{"type":"unary","op":"-","operand":{"type":"int","value":1}},"else":{"type":"unary","op":"-","operand":{"type":"int","value":2}}}}}}},"attributes.modTotal <= -1 && !(@edges.prodigy in edges.taken)":{"text":"attributes.modTotal <= -1 && !(@edges.prodigy in edges.taken)","tree":{"type":"binary","op":"&&","left":{"type":"binary","op":"<=","left":{"type":"name","path":["attributes","modTotal"]},"right":{"type":"unary","op":"-","operand":{"type":"int","value":1}}},"right":{"type":"unary","op":"!","operand":{"type":"binary","op":"in","left":{"type":"ref","id":"edges.prodigy"},"right":{"type":"name","path":["edges","taken"]}}}}},"attributes.str.base":{"text":"attributes.str.base","tree":{"type":"name","path":["attributes","str","base"]}},"attributes.str.base >= 14 ? min(18, attributes.str.base + 2) : 14":{"text":"attributes.str.base >= 14 ? min(18, attributes.str.base + 2) : 14","tree":{"type":"conditional","test":{"type":"binary","op":">=","left":{"type":"name","path":["attributes","str","base"]},"right":{"type":"int","value":14}},"then":{"type":"call","fn":"min","args":[{"type":"int","value":18},{"type":"binary","op":"+","left":{"type":"name","path":["attributes","str","base"]},"right":{"type":"int","value":2}}]},"else":{"type":"int","value":14}}},"attributes.str.mod + attributes.dex.mod + attributes.con.mod + attributes.int.mod\n + attributes.wis.mod + attributes.cha.mod":{"text":"attributes.str.mod + attributes.dex.mod + attributes.con.mod + attributes.int.mod + attributes.wis.mod + attributes.cha.mod","tree":{"type":"binary","op":"+","left":{"type":"binary","op":"+","left":{"type":"binary","op":"+","left":{"type":"binary","op":"+","left":{"type":"binary","op":"+","left":{"type":"name","path":["attributes","str","mod"]},"right":{"type":"name","path":["attributes","dex","mod"]}},"right":{"type":"name","path":["attributes","con","mod"]}},"right":{"type":"name","path":["attributes","int","mod"]}},"right":{"type":"name","path":["attributes","wis","mod"]}},"right":{"type":"name","path":["attributes","cha","mod"]}}},"attributes.str.score":{"text":"attributes.str.score","tree":{"type":"name","path":["attributes","str","score"]}},"attributes.str.score >= 18 ? 2 : attributes.str.score >= 14 ? 1\n : attributes.str.score >= 8 ? 0 : attributes.str.score >= 4 ? -1 : -2":{"text":"attributes.str.score >= 18 ? 2 : attributes.str.score >= 14 ? 1 : attributes.str.score >= 8 ? 0 : attributes.str.score >= 4 ? -1 : -2","tree":{"type":"conditional","test":{"type":"binary","op":">=","left":{"type":"name","path":["attributes","str","score"]},"right":{"type":"int","value":18}},"then":{"type":"int","value":2},"else":{"type":"conditional","test":{"type":"binary","op":">=","left":{"type":"name","path":["attributes","str","score"]},"right":{"type":"int","value":14}},"then":{"type":"int","value":1},"else":{"type":"conditional","test":{"type":"binary","op":">=","left":{"type":"name","path":["attributes","str","score"]},"right":{"type":"int","value":8}},"then":{"type":"int","value":0},"else":{"type":"conditional","test":{"type":"binary","op":">=","left":{"type":"name","path":["attributes","str","score"]},"right":{"type":"int","value":4}},"then":{"type":"unary","op":"-","operand":{"type":"int","value":1}},"else":{"type":"unary","op":"-","operand":{"type":"int","value":2}}}}}}},"attributes.wis.base":{"text":"attributes.wis.base","tree":{"type":"name","path":["attributes","wis","base"]}},"attributes.wis.score":{"text":"attributes.wis.score","tree":{"type":"name","path":["attributes","wis","score"]}},"attributes.wis.score >= 18 ? 2 : attributes.wis.score >= 14 ? 1\n : attributes.wis.score >= 8 ? 0 : attributes.wis.score >= 4 ? -1 : -2":{"text":"attributes.wis.score >= 18 ? 2 : attributes.wis.score >= 14 ? 1 : attributes.wis.score >= 8 ? 0 : attributes.wis.score >= 4 ? -1 : -2","tree":{"type":"conditional","test":{"type":"binary","op":">=","left":{"type":"name","path":["attributes","wis","score"]},"right":{"type":"int","value":18}},"then":{"type":"int","value":2},"else":{"type":"conditional","test":{"type":"binary","op":">=","left":{"type":"name","path":["attributes","wis","score"]},"right":{"type":"int","value":14}},"then":{"type":"int","value":1},"else":{"type":"conditional","test":{"type":"binary","op":">=","left":{"type":"name","path":["attributes","wis","score"]},"right":{"type":"int","value":8}},"then":{"type":"int","value":0},"else":{"type":"conditional","test":{"type":"binary","op":">=","left":{"type":"name","path":["attributes","wis","score"]},"right":{"type":"int","value":4}},"then":{"type":"unary","op":"-","operand":{"type":"int","value":1}},"else":{"type":"unary","op":"-","operand":{"type":"int","value":2}}}}}}},"budget.drone > 0":{"text":"budget.drone > 0","tree":{"type":"binary","op":">","left":{"type":"name","path":["budget","drone"]},"right":{"type":"int","value":0}}},"budget.droneUsed <= budget.drone":{"text":"budget.droneUsed <= budget.drone","tree":{"type":"binary","op":"<=","left":{"type":"name","path":["budget","droneUsed"]},"right":{"type":"name","path":["budget","drone"]}}},"budget.vehicle > 0":{"text":"budget.vehicle > 0","tree":{"type":"binary","op":">","left":{"type":"name","path":["budget","vehicle"]},"right":{"type":"int","value":0}}},"budget.vehicle > budget.vehicleUsed || budget.drone > budget.droneUsed":{"text":"budget.vehicle > budget.vehicleUsed || budget.drone > budget.droneUsed","tree":{"type":"binary","op":"||","left":{"type":"binary","op":">","left":{"type":"name","path":["budget","vehicle"]},"right":{"type":"name","path":["budget","vehicleUsed"]}},"right":{"type":"binary","op":">","left":{"type":"name","path":["budget","drone"]},"right":{"type":"name","path":["budget","droneUsed"]}}}},"budget.vehicleUsed <= budget.vehicle":{"text":"budget.vehicleUsed <= budget.vehicle","tree":{"type":"binary","op":"<=","left":{"type":"name","path":["budget","vehicleUsed"]},"right":{"type":"name","path":["budget","vehicle"]}}},"campaign.alienation":{"text":"campaign.alienation","tree":{"type":"name","path":["campaign","alienation"]}},"campaign.alienation ? alienation.max : 1000":{"text":"campaign.alienation ? alienation.max : 1000","tree":{"type":"conditional","test":{"type":"name","path":["campaign","alienation"]},"then":{"type":"name","path":["alienation","max"]},"else":{"type":"int","value":1000}}},"ceil(countCopies(copy.type == 'program') * hacking.memory.perElement) + hacking.datafiles":{"text":"ceil(countCopies(copy.type == 'program') * hacking.memory.perElement) + hacking.datafiles","tree":{"type":"binary","op":"+","left":{"type":"call","fn":"ceil","args":[{"type":"binary","op":"*","left":{"type":"call","fn":"countCopies","args":[{"type":"binary","op":"==","left":{"type":"name","path":["copy","type"]},"right":{"type":"string","value":"program"}}]},"right":{"type":"name","path":["hacking","memory","perElement"]}}]},"right":{"type":"name","path":["hacking","datafiles"]}}},"ceil(level / 2)":{"text":"ceil(level / 2)","tree":{"type":"call","fn":"ceil","args":[{"type":"binary","op":"/","left":{"type":"name","path":["level"]},"right":{"type":"int","value":2}}]}},"ceil(sumCopies(max(1, copy.fields.strain), copy.type == 'cyberware'))":{"text":"ceil(sumCopies(max(1, copy.fields.strain), copy.type == 'cyberware'))","tree":{"type":"call","fn":"ceil","args":[{"type":"call","fn":"sumCopies","args":[{"type":"call","fn":"max","args":[{"type":"int","value":1},{"type":"name","path":["copy","fields","strain"]}]},{"type":"binary","op":"==","left":{"type":"name","path":["copy","type"]},"right":{"type":"string","value":"cyberware"}}]}]}},"character.creating":{"text":"character.creating","tree":{"type":"name","path":["character","creating"]}},"combat.attackBonus + max(attributes.int.mod, attributes.dex.mod)\n + max(skills.drive.level, skills.program.level)":{"text":"combat.attackBonus + max(attributes.int.mod, attributes.dex.mod) + max(skills.drive.level, skills.program.level)","tree":{"type":"binary","op":"+","left":{"type":"binary","op":"+","left":{"type":"name","path":["combat","attackBonus"]},"right":{"type":"call","fn":"max","args":[{"type":"name","path":["attributes","int","mod"]},{"type":"name","path":["attributes","dex","mod"]}]}},"right":{"type":"call","fn":"max","args":[{"type":"name","path":["skills","drive","level"]},{"type":"name","path":["skills","program","level"]}]}}},"combat.damageBonus != 0":{"text":"combat.damageBonus != 0","tree":{"type":"binary","op":"!=","left":{"type":"name","path":["combat","damageBonus"]},"right":{"type":"int","value":0}}},"combat.traumaBonus != 0":{"text":"combat.traumaBonus != 0","tree":{"type":"binary","op":"!=","left":{"type":"name","path":["combat","traumaBonus"]},"right":{"type":"int","value":0}}},"countCopies(copy.item == item.id) <= 1":{"text":"countCopies(copy.item == item.id) <= 1","tree":{"type":"binary","op":"<=","left":{"type":"call","fn":"countCopies","args":[{"type":"binary","op":"==","left":{"type":"name","path":["copy","item"]},"right":{"type":"name","path":["item","id"]}}]},"right":{"type":"int","value":1}}},"countCopies(copy.type == 'cyberware' && 'cyberears' in copy.tags) > 0":{"text":"countCopies(copy.type == 'cyberware' && 'cyberears' in copy.tags) > 0","tree":{"type":"binary","op":">","left":{"type":"call","fn":"countCopies","args":[{"type":"binary","op":"&&","left":{"type":"binary","op":"==","left":{"type":"name","path":["copy","type"]},"right":{"type":"string","value":"cyberware"}},"right":{"type":"binary","op":"in","left":{"type":"string","value":"cyberears"},"right":{"type":"name","path":["copy","tags"]}}}]},"right":{"type":"int","value":0}}},"countCopies(copy.type == 'cyberware' && 'cybereyes' in copy.tags) > 0":{"text":"countCopies(copy.type == 'cyberware' && 'cybereyes' in copy.tags) > 0","tree":{"type":"binary","op":">","left":{"type":"call","fn":"countCopies","args":[{"type":"binary","op":"&&","left":{"type":"binary","op":"==","left":{"type":"name","path":["copy","type"]},"right":{"type":"string","value":"cyberware"}},"right":{"type":"binary","op":"in","left":{"type":"string","value":"cybereyes"},"right":{"type":"name","path":["copy","tags"]}}}]},"right":{"type":"int","value":0}}},"countCopies(copy.type == 'cyberware' && copy.fields.strain > 0) == 0":{"text":"countCopies(copy.type == 'cyberware' && copy.fields.strain > 0) == 0","tree":{"type":"binary","op":"==","left":{"type":"call","fn":"countCopies","args":[{"type":"binary","op":"&&","left":{"type":"binary","op":"==","left":{"type":"name","path":["copy","type"]},"right":{"type":"string","value":"cyberware"}},"right":{"type":"binary","op":">","left":{"type":"name","path":["copy","fields","strain"]},"right":{"type":"int","value":0}}}]},"right":{"type":"int","value":0}}},"countCopies(copy.type == 'drone') > 0":{"text":"countCopies(copy.type == 'drone') > 0","tree":{"type":"binary","op":">","left":{"type":"call","fn":"countCopies","args":[{"type":"binary","op":"==","left":{"type":"name","path":["copy","type"]},"right":{"type":"string","value":"drone"}}]},"right":{"type":"int","value":0}}},"countCopies(copy.type == 'focus' && copy.state.level < copy.fields.maxLevel) > 0":{"text":"countCopies(copy.type == 'focus' && copy.state.level < copy.fields.maxLevel) > 0","tree":{"type":"binary","op":">","left":{"type":"call","fn":"countCopies","args":[{"type":"binary","op":"&&","left":{"type":"binary","op":"==","left":{"type":"name","path":["copy","type"]},"right":{"type":"string","value":"focus"}},"right":{"type":"binary","op":"<","left":{"type":"name","path":["copy","state","level"]},"right":{"type":"name","path":["copy","fields","maxLevel"]}}}]},"right":{"type":"int","value":0}}},"countCopies(copy.type == 'program' && copy.state.source == 'written')":{"text":"countCopies(copy.type == 'program' && copy.state.source == 'written')","tree":{"type":"call","fn":"countCopies","args":[{"type":"binary","op":"&&","left":{"type":"binary","op":"==","left":{"type":"name","path":["copy","type"]},"right":{"type":"string","value":"program"}},"right":{"type":"binary","op":"==","left":{"type":"name","path":["copy","state","source"]},"right":{"type":"string","value":"written"}}}]}},"countCopies(copy.type == 'spell' && copy.state.prepared)":{"text":"countCopies(copy.type == 'spell' && copy.state.prepared)","tree":{"type":"call","fn":"countCopies","args":[{"type":"binary","op":"&&","left":{"type":"binary","op":"==","left":{"type":"name","path":["copy","type"]},"right":{"type":"string","value":"spell"}},"right":{"type":"name","path":["copy","state","prepared"]}}]}},"cyber.wiredBudget > 0":{"text":"cyber.wiredBudget > 0","tree":{"type":"binary","op":">","left":{"type":"name","path":["cyber","wiredBudget"]},"right":{"type":"int","value":0}}},"cyber.wiredUsed <= cyber.wiredBudget":{"text":"cyber.wiredUsed <= cyber.wiredBudget","tree":{"type":"binary","op":"<=","left":{"type":"name","path":["cyber","wiredUsed"]},"right":{"type":"name","path":["cyber","wiredBudget"]}}},"enc.overload > 0":{"text":"enc.overload > 0","tree":{"type":"binary","op":">","left":{"type":"name","path":["enc","overload"]},"right":{"type":"int","value":0}}},"enc.readiedMax + 4":{"text":"enc.readiedMax + 4","tree":{"type":"binary","op":"+","left":{"type":"name","path":["enc","readiedMax"]},"right":{"type":"int","value":4}}},"enc.stowedMax + 8":{"text":"enc.stowedMax + 8","tree":{"type":"binary","op":"+","left":{"type":"name","path":["enc","stowedMax"]},"right":{"type":"int","value":8}}},"false":{"text":"false","tree":{"type":"bool","value":false}},"fieldOf('saves.{save}', params.save)":{"text":"fieldOf('saves.{save}', params.save)","tree":{"type":"call","fn":"fieldOf","args":[{"type":"string","value":"saves.{save}"},{"type":"name","path":["params","save"]}]}},"fieldOf('skills.{skill}.base', flags.skill)":{"text":"fieldOf('skills.{skill}.base', flags.skill)","tree":{"type":"call","fn":"fieldOf","args":[{"type":"string","value":"skills.{skill}.base"},{"type":"name","path":["flags","skill"]}]}},"fieldOf('skills.{skill}.base', params.skill)":{"text":"fieldOf('skills.{skill}.base', params.skill)","tree":{"type":"call","fn":"fieldOf","args":[{"type":"string","value":"skills.{skill}.base"},{"type":"name","path":["params","skill"]}]}},"fieldOf('skills.{skill}.credit', params.skill)":{"text":"fieldOf('skills.{skill}.credit', params.skill)","tree":{"type":"call","fn":"fieldOf","args":[{"type":"string","value":"skills.{skill}.credit"},{"type":"name","path":["params","skill"]}]}},"filterList(flags.learning, x != 'any')":{"text":"filterList(flags.learning, x != 'any')","tree":{"type":"call","fn":"filterList","args":[{"type":"name","path":["flags","learning"]},{"type":"binary","op":"!=","left":{"type":"name","path":["x"]},"right":{"type":"string","value":"any"}}]}},"filterList(flags.learning, x != 'any')[0]":{"text":"filterList(flags.learning, x != 'any')[0]","tree":{"type":"index","object":{"type":"call","fn":"filterList","args":[{"type":"name","path":["flags","learning"]},{"type":"binary","op":"!=","left":{"type":"name","path":["x"]},"right":{"type":"string","value":"any"}}]},"index":{"type":"int","value":0}}},"filterList(flags.learning, x != 'any')[1]":{"text":"filterList(flags.learning, x != 'any')[1]","tree":{"type":"index","object":{"type":"call","fn":"filterList","args":[{"type":"name","path":["flags","learning"]},{"type":"binary","op":"!=","left":{"type":"name","path":["x"]},"right":{"type":"string","value":"any"}}]},"index":{"type":"int","value":1}}},"filterList(keysOf('skill'),\n !(x in ['cast', 'summon']) && fieldOf('skills.{skill}.base', x) < 1)":{"text":"filterList(keysOf('skill'), !(x in ['cast', 'summon']) && fieldOf('skills.{skill}.base', x) < 1)","tree":{"type":"call","fn":"filterList","args":[{"type":"call","fn":"keysOf","args":[{"type":"string","value":"skill"}]},{"type":"binary","op":"&&","left":{"type":"unary","op":"!","operand":{"type":"binary","op":"in","left":{"type":"name","path":["x"]},"right":{"type":"list","items":[{"type":"string","value":"cast"},{"type":"string","value":"summon"}]}}},"right":{"type":"binary","op":"<","left":{"type":"call","fn":"fieldOf","args":[{"type":"string","value":"skills.{skill}.base"},{"type":"name","path":["x"]}]},"right":{"type":"int","value":1}}}]}},"filterList(keysOf('skill'),\n (params.code == x\n || (params.code == 'combat' && x in ['punch', 'shoot', 'stab'])\n || (params.code == 'punch-stab' && x in ['punch', 'stab'])\n || (params.code == 'noncombat'\n && !(x in ['punch', 'shoot', 'stab', 'cast', 'summon']))\n || (params.code == 'any' && !(x in ['cast', 'summon'])))\n && (!character.creating || fieldOf('skills.{skill}.base', x) < 1))":{"text":"filterList(keysOf('skill'), (params.code == x || params.code == 'combat' && x in ['punch', 'shoot', 'stab'] || params.code == 'punch-stab' && x in ['punch', 'stab'] || params.code == 'noncombat' && !(x in ['punch', 'shoot', 'stab', 'cast', 'summon']) || params.code == 'any' && !(x in ['cast', 'summon'])) && (!character.creating || fieldOf('skills.{skill}.base', x) < 1))","tree":{"type":"call","fn":"filterList","args":[{"type":"call","fn":"keysOf","args":[{"type":"string","value":"skill"}]},{"type":"binary","op":"&&","left":{"type":"binary","op":"||","left":{"type":"binary","op":"||","left":{"type":"binary","op":"||","left":{"type":"binary","op":"||","left":{"type":"binary","op":"==","left":{"type":"name","path":["params","code"]},"right":{"type":"name","path":["x"]}},"right":{"type":"binary","op":"&&","left":{"type":"binary","op":"==","left":{"type":"name","path":["params","code"]},"right":{"type":"string","value":"combat"}},"right":{"type":"binary","op":"in","left":{"type":"name","path":["x"]},"right":{"type":"list","items":[{"type":"string","value":"punch"},{"type":"string","value":"shoot"},{"type":"string","value":"stab"}]}}}},"right":{"type":"binary","op":"&&","left":{"type":"binary","op":"==","left":{"type":"name","path":["params","code"]},"right":{"type":"string","value":"punch-stab"}},"right":{"type":"binary","op":"in","left":{"type":"name","path":["x"]},"right":{"type":"list","items":[{"type":"string","value":"punch"},{"type":"string","value":"stab"}]}}}},"right":{"type":"binary","op":"&&","left":{"type":"binary","op":"==","left":{"type":"name","path":["params","code"]},"right":{"type":"string","value":"noncombat"}},"right":{"type":"unary","op":"!","operand":{"type":"binary","op":"in","left":{"type":"name","path":["x"]},"right":{"type":"list","items":[{"type":"string","value":"punch"},{"type":"string","value":"shoot"},{"type":"string","value":"stab"},{"type":"string","value":"cast"},{"type":"string","value":"summon"}]}}}}},"right":{"type":"binary","op":"&&","left":{"type":"binary","op":"==","left":{"type":"name","path":["params","code"]},"right":{"type":"string","value":"any"}},"right":{"type":"unary","op":"!","operand":{"type":"binary","op":"in","left":{"type":"name","path":["x"]},"right":{"type":"list","items":[{"type":"string","value":"cast"},{"type":"string","value":"summon"}]}}}}},"right":{"type":"binary","op":"||","left":{"type":"unary","op":"!","operand":{"type":"name","path":["character","creating"]}},"right":{"type":"binary","op":"<","left":{"type":"call","fn":"fieldOf","args":[{"type":"string","value":"skills.{skill}.base"},{"type":"name","path":["x"]}]},"right":{"type":"int","value":1}}}}]}},"flags.ac < 0 ? 'rolled' : flags.hit ? 'hit' : 'miss'":{"text":"flags.ac < 0 ? 'rolled' : flags.hit ? 'hit' : 'miss'","tree":{"type":"conditional","test":{"type":"binary","op":"<","left":{"type":"name","path":["flags","ac"]},"right":{"type":"int","value":0}},"then":{"type":"string","value":"rolled"},"else":{"type":"conditional","test":{"type":"name","path":["flags","hit"]},"then":{"type":"string","value":"hit"},"else":{"type":"string","value":"miss"}}}},"flags.ac < 0 || steps.hit.band == 'hit'":{"text":"flags.ac < 0 || steps.hit.band == 'hit'","tree":{"type":"binary","op":"||","left":{"type":"binary","op":"<","left":{"type":"name","path":["flags","ac"]},"right":{"type":"int","value":0}},"right":{"type":"binary","op":"==","left":{"type":"name","path":["steps","hit","band"]},"right":{"type":"string","value":"hit"}}}},"flags.allowed":{"text":"flags.allowed","tree":{"type":"name","path":["flags","allowed"]}},"flags.allowed ? 'improved' : 'refused'":{"text":"flags.allowed ? 'improved' : 'refused'","tree":{"type":"conditional","test":{"type":"name","path":["flags","allowed"]},"then":{"type":"string","value":"improved"},"else":{"type":"string","value":"refused"}}},"flags.amount":{"text":"flags.amount","tree":{"type":"name","path":["flags","amount"]}},"flags.attrMod":{"text":"flags.attrMod","tree":{"type":"name","path":["flags","attrMod"]}},"flags.attribute == '' ? 0 : fieldOf('attributes.{attribute}.mod', flags.attribute)":{"text":"flags.attribute == '' ? 0 : fieldOf('attributes.{attribute}.mod', flags.attribute)","tree":{"type":"conditional","test":{"type":"binary","op":"==","left":{"type":"name","path":["flags","attribute"]},"right":{"type":"string","value":""}},"then":{"type":"int","value":0},"else":{"type":"call","fn":"fieldOf","args":[{"type":"string","value":"attributes.{attribute}.mod"},{"type":"name","path":["flags","attribute"]}]}}},"flags.burst":{"text":"flags.burst","tree":{"type":"name","path":["flags","burst"]}},"flags.burst ? -3 : -1":{"text":"flags.burst ? -3 : -1","tree":{"type":"conditional","test":{"type":"name","path":["flags","burst"]},"then":{"type":"unary","op":"-","operand":{"type":"int","value":3}},"else":{"type":"unary","op":"-","operand":{"type":"int","value":1}}}},"flags.candidates":{"text":"flags.candidates","tree":{"type":"name","path":["flags","candidates"]}},"flags.candidates[0]":{"text":"flags.candidates[0]","tree":{"type":"index","object":{"type":"name","path":["flags","candidates"]},"index":{"type":"int","value":0}}},"flags.commit == 'day'":{"text":"flags.commit == 'day'","tree":{"type":"binary","op":"==","left":{"type":"name","path":["flags","commit"]},"right":{"type":"string","value":"day"}}},"flags.commit == 'scene'":{"text":"flags.commit == 'scene'","tree":{"type":"binary","op":"==","left":{"type":"name","path":["flags","commit"]},"right":{"type":"string","value":"scene"}}},"flags.dc < 0 ? 'rolled' : steps.check.band":{"text":"flags.dc < 0 ? 'rolled' : steps.check.band","tree":{"type":"conditional","test":{"type":"binary","op":"<","left":{"type":"name","path":["flags","dc"]},"right":{"type":"int","value":0}},"then":{"type":"string","value":"rolled"},"else":{"type":"name","path":["steps","check","band"]}}},"flags.dealt":{"text":"flags.dealt","tree":{"type":"name","path":["flags","dealt"]}},"flags.dealt > 0":{"text":"flags.dealt > 0","tree":{"type":"binary","op":">","left":{"type":"name","path":["flags","dealt"]},"right":{"type":"int","value":0}}},"flags.dice * flags.perDie":{"text":"flags.dice * flags.perDie","tree":{"type":"binary","op":"*","left":{"type":"name","path":["flags","dice"]},"right":{"type":"name","path":["flags","perDie"]}}},"flags.entry":{"text":"flags.entry","tree":{"type":"name","path":["flags","entry"]}},"flags.hit":{"text":"flags.hit","tree":{"type":"name","path":["flags","hit"]}},"flags.hit && has(item.traumaDie) && !flags.nonlethal":{"text":"flags.hit && has(item.traumaDie) && !flags.nonlethal","tree":{"type":"binary","op":"&&","left":{"type":"binary","op":"&&","left":{"type":"name","path":["flags","hit"]},"right":{"type":"call","fn":"has","args":[{"type":"name","path":["item","traumaDie"]}]}},"right":{"type":"unary","op":"!","operand":{"type":"name","path":["flags","nonlethal"]}}}},"flags.level":{"text":"flags.level","tree":{"type":"name","path":["flags","level"]}},"flags.level + 1":{"text":"flags.level + 1","tree":{"type":"binary","op":"+","left":{"type":"name","path":["flags","level"]},"right":{"type":"int","value":1}}},"flags.level + 2":{"text":"flags.level + 2","tree":{"type":"binary","op":"+","left":{"type":"name","path":["flags","level"]},"right":{"type":"int","value":2}}},"flags.level < 4":{"text":"flags.level < 4","tree":{"type":"binary","op":"<","left":{"type":"name","path":["flags","level"]},"right":{"type":"int","value":4}}},"flags.level >= 4 && flags.pool > 0":{"text":"flags.level >= 4 && flags.pool > 0","tree":{"type":"binary","op":"&&","left":{"type":"binary","op":">=","left":{"type":"name","path":["flags","level"]},"right":{"type":"int","value":4}},"right":{"type":"binary","op":">","left":{"type":"name","path":["flags","pool"]},"right":{"type":"int","value":0}}}},"flags.level >= 4 ? 0 : flags.pool":{"text":"flags.level >= 4 ? 0 : flags.pool","tree":{"type":"conditional","test":{"type":"binary","op":">=","left":{"type":"name","path":["flags","level"]},"right":{"type":"int","value":4}},"then":{"type":"int","value":0},"else":{"type":"name","path":["flags","pool"]}}},"flags.meleeHit":{"text":"flags.meleeHit","tree":{"type":"name","path":["flags","meleeHit"]}},"flags.meleeHit != 0":{"text":"flags.meleeHit != 0","tree":{"type":"binary","op":"!=","left":{"type":"name","path":["flags","meleeHit"]},"right":{"type":"int","value":0}}},"flags.mode == 'new'":{"text":"flags.mode == 'new'","tree":{"type":"binary","op":"==","left":{"type":"name","path":["flags","mode"]},"right":{"type":"string","value":"new"}}},"flags.mode == 'raise'":{"text":"flags.mode == 'raise'","tree":{"type":"binary","op":"==","left":{"type":"name","path":["flags","mode"]},"right":{"type":"string","value":"raise"}}},"flags.nonlethal ? ['damage.nonlethal'] : []":{"text":"flags.nonlethal ? ['damage.nonlethal'] : []","tree":{"type":"conditional","test":{"type":"name","path":["flags","nonlethal"]},"then":{"type":"list","items":[{"type":"string","value":"damage.nonlethal"}]},"else":{"type":"list","items":[]}}},"flags.perDie >= 0 ? (flags.dice)d6 : flags.perDie == -1 ? (flags.dice)d6min2\n : flags.perDie == -2 ? (flags.dice)d6min3 : flags.perDie == -3 ? (flags.dice)d6min4\n : (flags.dice)d6min5":{"text":"flags.perDie >= 0 ? (flags.dice)d6 : flags.perDie == -1 ? (flags.dice)d6min2 : flags.perDie == -2 ? (flags.dice)d6min3 : flags.perDie == -3 ? (flags.dice)d6min4 : (flags.dice)d6min5","tree":{"type":"conditional","test":{"type":"binary","op":">=","left":{"type":"name","path":["flags","perDie"]},"right":{"type":"int","value":0}},"then":{"type":"dice","count":{"type":"name","path":["flags","dice"]},"sides":6,"modifiers":[]},"else":{"type":"conditional","test":{"type":"binary","op":"==","left":{"type":"name","path":["flags","perDie"]},"right":{"type":"unary","op":"-","operand":{"type":"int","value":1}}},"then":{"type":"dice","count":{"type":"name","path":["flags","dice"]},"sides":6,"modifiers":[{"type":"minimum","target":2}]},"else":{"type":"conditional","test":{"type":"binary","op":"==","left":{"type":"name","path":["flags","perDie"]},"right":{"type":"unary","op":"-","operand":{"type":"int","value":2}}},"then":{"type":"dice","count":{"type":"name","path":["flags","dice"]},"sides":6,"modifiers":[{"type":"minimum","target":3}]},"else":{"type":"conditional","test":{"type":"binary","op":"==","left":{"type":"name","path":["flags","perDie"]},"right":{"type":"unary","op":"-","operand":{"type":"int","value":3}}},"then":{"type":"dice","count":{"type":"name","path":["flags","dice"]},"sides":6,"modifiers":[{"type":"minimum","target":4}]},"else":{"type":"dice","count":{"type":"name","path":["flags","dice"]},"sides":6,"modifiers":[{"type":"minimum","target":5}]}}}}}},"flags.points":{"text":"flags.points","tree":{"type":"name","path":["flags","points"]}},"flags.points && flags.level < 4 && flags.pool >= flags.level + 2":{"text":"flags.points && flags.level < 4 && flags.pool >= flags.level + 2","tree":{"type":"binary","op":"&&","left":{"type":"binary","op":"&&","left":{"type":"name","path":["flags","points"]},"right":{"type":"binary","op":"<","left":{"type":"name","path":["flags","level"]},"right":{"type":"int","value":4}}},"right":{"type":"binary","op":">=","left":{"type":"name","path":["flags","pool"]},"right":{"type":"binary","op":"+","left":{"type":"name","path":["flags","level"]},"right":{"type":"int","value":2}}}}},"flags.points ? 'points' : 'raised'":{"text":"flags.points ? 'points' : 'raised'","tree":{"type":"conditional","test":{"type":"name","path":["flags","points"]},"then":{"type":"string","value":"points"},"else":{"type":"string","value":"raised"}}},"flags.pool":{"text":"flags.pool","tree":{"type":"name","path":["flags","pool"]}},"flags.pool - flags.level - 2":{"text":"flags.pool - flags.level - 2","tree":{"type":"binary","op":"-","left":{"type":"binary","op":"-","left":{"type":"name","path":["flags","pool"]},"right":{"type":"name","path":["flags","level"]}},"right":{"type":"int","value":2}}},"flags.ranged ? 'attack.ranged' : 'attack.melee'":{"text":"flags.ranged ? 'attack.ranged' : 'attack.melee'","tree":{"type":"conditional","test":{"type":"name","path":["flags","ranged"]},"then":{"type":"string","value":"attack.ranged"},"else":{"type":"string","value":"attack.melee"}}},"flags.ranged ? 'damage.ranged' : 'damage.melee'":{"text":"flags.ranged ? 'damage.ranged' : 'damage.melee'","tree":{"type":"conditional","test":{"type":"name","path":["flags","ranged"]},"then":{"type":"string","value":"damage.ranged"},"else":{"type":"string","value":"damage.melee"}}},"flags.shock":{"text":"flags.shock","tree":{"type":"name","path":["flags","shock"]}},"flags.skill":{"text":"flags.skill","tree":{"type":"name","path":["flags","skill"]}},"flags.skill >= 0 ? flags.skill : -2":{"text":"flags.skill >= 0 ? flags.skill : -2","tree":{"type":"conditional","test":{"type":"binary","op":">=","left":{"type":"name","path":["flags","skill"]},"right":{"type":"int","value":0}},"then":{"type":"name","path":["flags","skill"]},"else":{"type":"unary","op":"-","operand":{"type":"int","value":2}}}},"flags.skillDamage":{"text":"flags.skillDamage","tree":{"type":"name","path":["flags","skillDamage"]}},"flags.skillDamage != 0":{"text":"flags.skillDamage != 0","tree":{"type":"binary","op":"!=","left":{"type":"name","path":["flags","skillDamage"]},"right":{"type":"int","value":0}}},"flags.target":{"text":"flags.target","tree":{"type":"name","path":["flags","target"]}},"flags.thrown ? max(skills.shoot.level, skills.stab.level, skills.exert.level)\n : fieldOf('skills.{skill}.level', item.skill)":{"text":"flags.thrown ? max(skills.shoot.level, skills.stab.level, skills.exert.level) : fieldOf('skills.{skill}.level', item.skill)","tree":{"type":"conditional","test":{"type":"name","path":["flags","thrown"]},"then":{"type":"call","fn":"max","args":[{"type":"name","path":["skills","shoot","level"]},{"type":"name","path":["skills","stab","level"]},{"type":"name","path":["skills","exert","level"]}]},"else":{"type":"call","fn":"fieldOf","args":[{"type":"string","value":"skills.{skill}.level"},{"type":"name","path":["item","skill"]}]}}},"flags.traumatic":{"text":"flags.traumatic","tree":{"type":"name","path":["flags","traumatic"]}},"flags.traumatic ? ['damage.traumatic'] : []":{"text":"flags.traumatic ? ['damage.traumatic'] : []","tree":{"type":"conditional","test":{"type":"name","path":["flags","traumatic"]},"then":{"type":"list","items":[{"type":"string","value":"damage.traumatic"}]},"else":{"type":"list","items":[]}}},"flags.underdog":{"text":"flags.underdog","tree":{"type":"name","path":["flags","underdog"]}},"floor(attributes.str.score / 2)":{"text":"floor(attributes.str.score / 2)","tree":{"type":"call","fn":"floor","args":[{"type":"binary","op":"/","left":{"type":"name","path":["attributes","str","score"]},"right":{"type":"int","value":2}}]}},"floor(level / 2)":{"text":"floor(level / 2)","tree":{"type":"call","fn":"floor","args":[{"type":"binary","op":"/","left":{"type":"name","path":["level"]},"right":{"type":"int","value":2}}]}},"floor(prior.rangeLong / 2)":{"text":"floor(prior.rangeLong / 2)","tree":{"type":"call","fn":"floor","args":[{"type":"binary","op":"/","left":{"type":"name","path":["prior","rangeLong"]},"right":{"type":"int","value":2}}]}},"floor(prior.rangeNormal / 2)":{"text":"floor(prior.rangeNormal / 2)","tree":{"type":"call","fn":"floor","args":[{"type":"binary","op":"/","left":{"type":"name","path":["prior","rangeNormal"]},"right":{"type":"int","value":2}}]}},"foci.taken <= foci.allowed":{"text":"foci.taken <= foci.allowed","tree":{"type":"binary","op":"<=","left":{"type":"name","path":["foci","taken"]},"right":{"type":"name","path":["foci","allowed"]}}},"hacking.memory.max":{"text":"hacking.memory.max","tree":{"type":"name","path":["hacking","memory","max"]}},"hacking.programming.max":{"text":"hacking.programming.max","tree":{"type":"name","path":["hacking","programming","max"]}},"hacking.programming.max > 0":{"text":"hacking.programming.max > 0","tree":{"type":"binary","op":">","left":{"type":"name","path":["hacking","programming","max"]},"right":{"type":"int","value":0}}},"has(item.baseAc)":{"text":"has(item.baseAc)","tree":{"type":"call","fn":"has","args":[{"type":"name","path":["item","baseAc"]}]}},"has(item.baseAc) && !self.damaged":{"text":"has(item.baseAc) && !self.damaged","tree":{"type":"binary","op":"&&","left":{"type":"call","fn":"has","args":[{"type":"name","path":["item","baseAc"]}]},"right":{"type":"unary","op":"!","operand":{"type":"name","path":["self","damaged"]}}}},"has(item.healDice)":{"text":"has(item.healDice)","tree":{"type":"call","fn":"has","args":[{"type":"name","path":["item","healDice"]}]}},"has(item.magazine)":{"text":"has(item.magazine)","tree":{"type":"call","fn":"has","args":[{"type":"name","path":["item","magazine"]}]}},"has(item.magazine) && self.loaded < item.magazine":{"text":"has(item.magazine) && self.loaded < item.magazine","tree":{"type":"binary","op":"&&","left":{"type":"call","fn":"has","args":[{"type":"name","path":["item","magazine"]}]},"right":{"type":"binary","op":"<","left":{"type":"name","path":["self","loaded"]},"right":{"type":"name","path":["item","magazine"]}}}},"has(item.magazine) ? item.magazine : 0":{"text":"has(item.magazine) ? item.magazine : 0","tree":{"type":"conditional","test":{"type":"call","fn":"has","args":[{"type":"name","path":["item","magazine"]}]},"then":{"type":"name","path":["item","magazine"]},"else":{"type":"int","value":0}}},"has(item.rangeNormal)":{"text":"has(item.rangeNormal)","tree":{"type":"call","fn":"has","args":[{"type":"name","path":["item","rangeNormal"]}]}},"has(item.rangeNormal) && (!('melee' in item.tags) || params.thrown)":{"text":"has(item.rangeNormal) && (!('melee' in item.tags) || params.thrown)","tree":{"type":"binary","op":"&&","left":{"type":"call","fn":"has","args":[{"type":"name","path":["item","rangeNormal"]}]},"right":{"type":"binary","op":"||","left":{"type":"unary","op":"!","operand":{"type":"binary","op":"in","left":{"type":"string","value":"melee"},"right":{"type":"name","path":["item","tags"]}}},"right":{"type":"name","path":["params","thrown"]}}}},"has(item.shockDamage) && item.shockDamage > 0 && !flags.ranged\n && (!has(item.shockAc) || flags.meleeAc < 0\n || min(flags.meleeAc, combat.shockAc) <= item.shockAc)\n ? max(0, item.shockDamage + flags.attrMod + item.shockBonus\n + combat.shockBonus + combat.damageBonus + flags.skillDamage)\n : 0":{"text":"has(item.shockDamage) && item.shockDamage > 0 && !flags.ranged && (!has(item.shockAc) || flags.meleeAc < 0 || min(flags.meleeAc, combat.shockAc) <= item.shockAc) ? max(0, item.shockDamage + flags.attrMod + item.shockBonus + combat.shockBonus + combat.damageBonus + flags.skillDamage) : 0","tree":{"type":"conditional","test":{"type":"binary","op":"&&","left":{"type":"binary","op":"&&","left":{"type":"binary","op":"&&","left":{"type":"call","fn":"has","args":[{"type":"name","path":["item","shockDamage"]}]},"right":{"type":"binary","op":">","left":{"type":"name","path":["item","shockDamage"]},"right":{"type":"int","value":0}}},"right":{"type":"unary","op":"!","operand":{"type":"name","path":["flags","ranged"]}}},"right":{"type":"binary","op":"||","left":{"type":"binary","op":"||","left":{"type":"unary","op":"!","operand":{"type":"call","fn":"has","args":[{"type":"name","path":["item","shockAc"]}]}},"right":{"type":"binary","op":"<","left":{"type":"name","path":["flags","meleeAc"]},"right":{"type":"int","value":0}}},"right":{"type":"binary","op":"<=","left":{"type":"call","fn":"min","args":[{"type":"name","path":["flags","meleeAc"]},{"type":"name","path":["combat","shockAc"]}]},"right":{"type":"name","path":["item","shockAc"]}}}},"then":{"type":"call","fn":"max","args":[{"type":"int","value":0},{"type":"binary","op":"+","left":{"type":"binary","op":"+","left":{"type":"binary","op":"+","left":{"type":"binary","op":"+","left":{"type":"binary","op":"+","left":{"type":"name","path":["item","shockDamage"]},"right":{"type":"name","path":["flags","attrMod"]}},"right":{"type":"name","path":["item","shockBonus"]}},"right":{"type":"name","path":["combat","shockBonus"]}},"right":{"type":"name","path":["combat","damageBonus"]}},"right":{"type":"name","path":["flags","skillDamage"]}}]},"else":{"type":"int","value":0}}},"has(item.triggerStrain) && !self.damaged && strain.total + item.triggerStrain <= strain.max":{"text":"has(item.triggerStrain) && !self.damaged && strain.total + item.triggerStrain <= strain.max","tree":{"type":"binary","op":"&&","left":{"type":"binary","op":"&&","left":{"type":"call","fn":"has","args":[{"type":"name","path":["item","triggerStrain"]}]},"right":{"type":"unary","op":"!","operand":{"type":"name","path":["self","damaged"]}}},"right":{"type":"binary","op":"<=","left":{"type":"binary","op":"+","left":{"type":"name","path":["strain","total"]},"right":{"type":"name","path":["item","triggerStrain"]}},"right":{"type":"name","path":["strain","max"]}}}},"has(params.attribute) && params.attribute in flags.attributes ? params.attribute\n : size(flags.attributes) == 0 ? ''\n : sortList(flags.attributes, -fieldOf('attributes.{attribute}.mod', x))[0]":{"text":"has(params.attribute) && params.attribute in flags.attributes ? params.attribute : size(flags.attributes) == 0 ? '' : sortList(flags.attributes, -fieldOf('attributes.{attribute}.mod', x))[0]","tree":{"type":"conditional","test":{"type":"binary","op":"&&","left":{"type":"call","fn":"has","args":[{"type":"name","path":["params","attribute"]}]},"right":{"type":"binary","op":"in","left":{"type":"name","path":["params","attribute"]},"right":{"type":"name","path":["flags","attributes"]}}},"then":{"type":"name","path":["params","attribute"]},"else":{"type":"conditional","test":{"type":"binary","op":"==","left":{"type":"call","fn":"size","args":[{"type":"name","path":["flags","attributes"]}]},"right":{"type":"int","value":0}},"then":{"type":"string","value":""},"else":{"type":"index","object":{"type":"call","fn":"sortList","args":[{"type":"name","path":["flags","attributes"]},{"type":"unary","op":"-","operand":{"type":"call","fn":"fieldOf","args":[{"type":"string","value":"attributes.{attribute}.mod"},{"type":"name","path":["x"]}]}}]},"index":{"type":"int","value":0}}}}},"has(params.difficulty) ? params.difficulty : -1":{"text":"has(params.difficulty) ? params.difficulty : -1","tree":{"type":"conditional","test":{"type":"call","fn":"has","args":[{"type":"name","path":["params","difficulty"]}]},"then":{"type":"name","path":["params","difficulty"]},"else":{"type":"unary","op":"-","operand":{"type":"int","value":1}}}},"has(params.healerSkill) ? params.healerSkill : 0":{"text":"has(params.healerSkill) ? params.healerSkill : 0","tree":{"type":"conditional","test":{"type":"call","fn":"has","args":[{"type":"name","path":["params","healerSkill"]}]},"then":{"type":"name","path":["params","healerSkill"]},"else":{"type":"int","value":0}}},"has(params.lethal) ? !params.lethal : 'nonlethal' in item.tags":{"text":"has(params.lethal) ? !params.lethal : 'nonlethal' in item.tags","tree":{"type":"conditional","test":{"type":"call","fn":"has","args":[{"type":"name","path":["params","lethal"]}]},"then":{"type":"unary","op":"!","operand":{"type":"name","path":["params","lethal"]}},"else":{"type":"binary","op":"in","left":{"type":"string","value":"nonlethal"},"right":{"type":"name","path":["item","tags"]}}}},"has(params.modifier)":{"text":"has(params.modifier)","tree":{"type":"call","fn":"has","args":[{"type":"name","path":["params","modifier"]}]}},"has(prior.enc) ? max(1, prior.enc - 1) : 0":{"text":"has(prior.enc) ? max(1, prior.enc - 1) : 0","tree":{"type":"conditional","test":{"type":"call","fn":"has","args":[{"type":"name","path":["prior","enc"]}]},"then":{"type":"call","fn":"max","args":[{"type":"int","value":1},{"type":"binary","op":"-","left":{"type":"name","path":["prior","enc"]},"right":{"type":"int","value":1}}]},"else":{"type":"int","value":0}}},"has(prior.enc) ? prior.enc + 1 : 0":{"text":"has(prior.enc) ? prior.enc + 1 : 0","tree":{"type":"conditional","test":{"type":"call","fn":"has","args":[{"type":"name","path":["prior","enc"]}]},"then":{"type":"binary","op":"+","left":{"type":"name","path":["prior","enc"]},"right":{"type":"int","value":1}},"else":{"type":"int","value":0}}},"has(steps.attribute)":{"text":"has(steps.attribute)","tree":{"type":"call","fn":"has","args":[{"type":"name","path":["steps","attribute"]}]}},"has(steps.edge.item.bonusSkill)":{"text":"has(steps.edge.item.bonusSkill)","tree":{"type":"call","fn":"has","args":[{"type":"name","path":["steps","edge","item","bonusSkill"]}]}},"has(steps.focus)":{"text":"has(steps.focus)","tree":{"type":"call","fn":"has","args":[{"type":"name","path":["steps","focus"]}]}},"has(steps.focus) && 'asks-attribute' in steps.focus.item.tags":{"text":"has(steps.focus) && 'asks-attribute' in steps.focus.item.tags","tree":{"type":"binary","op":"&&","left":{"type":"call","fn":"has","args":[{"type":"name","path":["steps","focus"]}]},"right":{"type":"binary","op":"in","left":{"type":"string","value":"asks-attribute"},"right":{"type":"name","path":["steps","focus","item","tags"]}}}},"has(steps.focus) && has(steps.focus.item.bonusSkill)":{"text":"has(steps.focus) && has(steps.focus.item.bonusSkill)","tree":{"type":"binary","op":"&&","left":{"type":"call","fn":"has","args":[{"type":"name","path":["steps","focus"]}]},"right":{"type":"call","fn":"has","args":[{"type":"name","path":["steps","focus","item","bonusSkill"]}]}}},"has(steps.focus) && has(steps.focus.item.bonusSkill) && steps.focus.item.bonusSkill == 'noncombat'":{"text":"has(steps.focus) && has(steps.focus.item.bonusSkill) && steps.focus.item.bonusSkill == 'noncombat'","tree":{"type":"binary","op":"&&","left":{"type":"binary","op":"&&","left":{"type":"call","fn":"has","args":[{"type":"name","path":["steps","focus"]}]},"right":{"type":"call","fn":"has","args":[{"type":"name","path":["steps","focus","item","bonusSkill"]}]}},"right":{"type":"binary","op":"==","left":{"type":"name","path":["steps","focus","item","bonusSkill"]},"right":{"type":"string","value":"noncombat"}}}},"has(steps.focus) && has(steps.focus.item.bonusSkill2)":{"text":"has(steps.focus) && has(steps.focus.item.bonusSkill2)","tree":{"type":"binary","op":"&&","left":{"type":"call","fn":"has","args":[{"type":"name","path":["steps","focus"]}]},"right":{"type":"call","fn":"has","args":[{"type":"name","path":["steps","focus","item","bonusSkill2"]}]}}},"has(steps.focus) && has(steps.focus.item.gearBudget)":{"text":"has(steps.focus) && has(steps.focus.item.gearBudget)","tree":{"type":"binary","op":"&&","left":{"type":"call","fn":"has","args":[{"type":"name","path":["steps","focus"]}]},"right":{"type":"call","fn":"has","args":[{"type":"name","path":["steps","focus","item","gearBudget"]}]}}},"has(steps.focus) && size(steps.focus.item.startingCyber) > 0\n && strain.total + steps.focus.item.startingCyberStrain <= strain.max && !magic.graced":{"text":"has(steps.focus) && size(steps.focus.item.startingCyber) > 0 && strain.total + steps.focus.item.startingCyberStrain <= strain.max && !magic.graced","tree":{"type":"binary","op":"&&","left":{"type":"binary","op":"&&","left":{"type":"binary","op":"&&","left":{"type":"call","fn":"has","args":[{"type":"name","path":["steps","focus"]}]},"right":{"type":"binary","op":">","left":{"type":"call","fn":"size","args":[{"type":"name","path":["steps","focus","item","startingCyber"]}]},"right":{"type":"int","value":0}}},"right":{"type":"binary","op":"<=","left":{"type":"binary","op":"+","left":{"type":"name","path":["strain","total"]},"right":{"type":"name","path":["steps","focus","item","startingCyberStrain"]}},"right":{"type":"name","path":["strain","max"]}}},"right":{"type":"unary","op":"!","operand":{"type":"name","path":["magic","graced"]}}}},"has(steps.heal)":{"text":"has(steps.heal)","tree":{"type":"call","fn":"has","args":[{"type":"name","path":["steps","heal"]}]}},"has(steps.mode) ? steps.mode.picked : 'new'":{"text":"has(steps.mode) ? steps.mode.picked : 'new'","tree":{"type":"conditional","test":{"type":"call","fn":"has","args":[{"type":"name","path":["steps","mode"]}]},"then":{"type":"name","path":["steps","mode","picked"]},"else":{"type":"string","value":"new"}}},"has(steps.raised) && has(steps.raised.item.levelTwoSkill)":{"text":"has(steps.raised) && has(steps.raised.item.levelTwoSkill)","tree":{"type":"binary","op":"&&","left":{"type":"call","fn":"has","args":[{"type":"name","path":["steps","raised"]}]},"right":{"type":"call","fn":"has","args":[{"type":"name","path":["steps","raised","item","levelTwoSkill"]}]}}},"has(steps.skill) ? steps.skill.picked : flags.candidates[0]":{"text":"has(steps.skill) ? steps.skill.picked : flags.candidates[0]","tree":{"type":"conditional","test":{"type":"call","fn":"has","args":[{"type":"name","path":["steps","skill"]}]},"then":{"type":"name","path":["steps","skill","picked"]},"else":{"type":"index","object":{"type":"name","path":["flags","candidates"]},"index":{"type":"int","value":0}}}},"has(steps.specialty)":{"text":"has(steps.specialty)","tree":{"type":"call","fn":"has","args":[{"type":"name","path":["steps","specialty"]}]}},"has(steps.trauma) && steps.trauma.band == 'traumatic'":{"text":"has(steps.trauma) && steps.trauma.band == 'traumatic'","tree":{"type":"binary","op":"&&","left":{"type":"call","fn":"has","args":[{"type":"name","path":["steps","trauma"]}]},"right":{"type":"binary","op":"==","left":{"type":"name","path":["steps","trauma","band"]},"right":{"type":"string","value":"traumatic"}}}},"has(steps.underdog) && steps.underdog.picked == 'take'":{"text":"has(steps.underdog) && steps.underdog.picked == 'take'","tree":{"type":"binary","op":"&&","left":{"type":"call","fn":"has","args":[{"type":"name","path":["steps","underdog"]}]},"right":{"type":"binary","op":"==","left":{"type":"name","path":["steps","underdog","picked"]},"right":{"type":"string","value":"take"}}}},"hasChoice('background')":{"text":"hasChoice('background')","tree":{"type":"call","fn":"hasChoice","args":[{"type":"string","value":"background"}]}},"hasChoice('edge')":{"text":"hasChoice('edge')","tree":{"type":"call","fn":"hasChoice","args":[{"type":"string","value":"edge"}]}},"hp.dieBonus != 0":{"text":"hp.dieBonus != 0","tree":{"type":"binary","op":"!=","left":{"type":"name","path":["hp","dieBonus"]},"right":{"type":"int","value":0}}},"hp.max":{"text":"hp.max","tree":{"type":"name","path":["hp","max"]}},"hp.rolled":{"text":"hp.rolled","tree":{"type":"name","path":["hp","rolled"]}},"item.accessCost":{"text":"item.accessCost","tree":{"type":"name","path":["item","accessCost"]}},"item.accessCost > 0":{"text":"item.accessCost > 0","tree":{"type":"binary","op":">","left":{"type":"name","path":["item","accessCost"]},"right":{"type":"int","value":0}}},"item.alienation":{"text":"item.alienation","tree":{"type":"name","path":["item","alienation"]}},"item.attackBonus":{"text":"item.attackBonus","tree":{"type":"name","path":["item","attackBonus"]}},"item.attackBonus != 0":{"text":"item.attackBonus != 0","tree":{"type":"binary","op":"!=","left":{"type":"name","path":["item","attackBonus"]},"right":{"type":"int","value":0}}},"item.attribute == 'str-dex' ? ['str', 'dex']\n : item.attribute == 'none' ? [] : [item.attribute]":{"text":"item.attribute == 'str-dex' ? ['str', 'dex'] : item.attribute == 'none' ? [] : [item.attribute]","tree":{"type":"conditional","test":{"type":"binary","op":"==","left":{"type":"name","path":["item","attribute"]},"right":{"type":"string","value":"str-dex"}},"then":{"type":"list","items":[{"type":"string","value":"str"},{"type":"string","value":"dex"}]},"else":{"type":"conditional","test":{"type":"binary","op":"==","left":{"type":"name","path":["item","attribute"]},"right":{"type":"string","value":"none"}},"then":{"type":"list","items":[]},"else":{"type":"list","items":[{"type":"name","path":["item","attribute"]}]}}}},"item.baseAc":{"text":"item.baseAc","tree":{"type":"name","path":["item","baseAc"]}},"item.bonusAccess":{"text":"item.bonusAccess","tree":{"type":"name","path":["item","bonusAccess"]}},"item.category":{"text":"item.category","tree":{"type":"name","path":["item","category"]}},"item.category in ['limb', 'sensory']":{"text":"item.category in ['limb', 'sensory']","tree":{"type":"binary","op":"in","left":{"type":"name","path":["item","category"]},"right":{"type":"list","items":[{"type":"string","value":"limb"},{"type":"string","value":"sensory"}]}}},"item.checkMod":{"text":"item.checkMod","tree":{"type":"name","path":["item","checkMod"]}},"item.checkMod != 0":{"text":"item.checkMod != 0","tree":{"type":"binary","op":"!=","left":{"type":"name","path":["item","checkMod"]},"right":{"type":"int","value":0}}},"item.cost":{"text":"item.cost","tree":{"type":"name","path":["item","cost"]}},"item.cost <= 1000 && !('restricted' in item.tags)":{"text":"item.cost <= 1000 && !('restricted' in item.tags)","tree":{"type":"binary","op":"&&","left":{"type":"binary","op":"<=","left":{"type":"name","path":["item","cost"]},"right":{"type":"int","value":1000}},"right":{"type":"unary","op":"!","operand":{"type":"binary","op":"in","left":{"type":"string","value":"restricted"},"right":{"type":"name","path":["item","tags"]}}}}},"item.cost <= arts.points - arts.spent && countCopies(copy.item == item.id) == 0\n && !('alacrity' in item.tags && countCopies('alacrity' in copy.tags) > 0)":{"text":"item.cost <= arts.points - arts.spent && countCopies(copy.item == item.id) == 0 && !('alacrity' in item.tags && countCopies('alacrity' in copy.tags) > 0)","tree":{"type":"binary","op":"&&","left":{"type":"binary","op":"&&","left":{"type":"binary","op":"<=","left":{"type":"name","path":["item","cost"]},"right":{"type":"binary","op":"-","left":{"type":"name","path":["arts","points"]},"right":{"type":"name","path":["arts","spent"]}}},"right":{"type":"binary","op":"==","left":{"type":"call","fn":"countCopies","args":[{"type":"binary","op":"==","left":{"type":"name","path":["copy","item"]},"right":{"type":"name","path":["item","id"]}}]},"right":{"type":"int","value":0}}},"right":{"type":"unary","op":"!","operand":{"type":"binary","op":"&&","left":{"type":"binary","op":"in","left":{"type":"string","value":"alacrity"},"right":{"type":"name","path":["item","tags"]}},"right":{"type":"binary","op":">","left":{"type":"call","fn":"countCopies","args":[{"type":"binary","op":"in","left":{"type":"string","value":"alacrity"},"right":{"type":"name","path":["copy","tags"]}}]},"right":{"type":"int","value":0}}}}}},"item.cost <= budget.drone - budget.droneUsed && !('restricted' in item.tags)\n && (!has(item.enc) || enc.stowed + item.enc <= enc.stowedMax)":{"text":"item.cost <= budget.drone - budget.droneUsed && !('restricted' in item.tags) && (!has(item.enc) || enc.stowed + item.enc <= enc.stowedMax)","tree":{"type":"binary","op":"&&","left":{"type":"binary","op":"&&","left":{"type":"binary","op":"<=","left":{"type":"name","path":["item","cost"]},"right":{"type":"binary","op":"-","left":{"type":"name","path":["budget","drone"]},"right":{"type":"name","path":["budget","droneUsed"]}}},"right":{"type":"unary","op":"!","operand":{"type":"binary","op":"in","left":{"type":"string","value":"restricted"},"right":{"type":"name","path":["item","tags"]}}}},"right":{"type":"binary","op":"||","left":{"type":"unary","op":"!","operand":{"type":"call","fn":"has","args":[{"type":"name","path":["item","enc"]}]}},"right":{"type":"binary","op":"<=","left":{"type":"binary","op":"+","left":{"type":"name","path":["enc","stowed"]},"right":{"type":"name","path":["item","enc"]}},"right":{"type":"name","path":["enc","stowedMax"]}}}}},"item.cost <= budget.vehicle - budget.vehicleUsed && !('restricted' in item.tags)":{"text":"item.cost <= budget.vehicle - budget.vehicleUsed && !('restricted' in item.tags)","tree":{"type":"binary","op":"&&","left":{"type":"binary","op":"<=","left":{"type":"name","path":["item","cost"]},"right":{"type":"binary","op":"-","left":{"type":"name","path":["budget","vehicle"]},"right":{"type":"name","path":["budget","vehicleUsed"]}}},"right":{"type":"unary","op":"!","operand":{"type":"binary","op":"in","left":{"type":"string","value":"restricted"},"right":{"type":"name","path":["item","tags"]}}}}},"item.cost <= cyber.wiredBudget - cyber.wiredUsed\n && strain.total + item.strain <= strain.max\n && countCopies(copy.item == item.id) == 0":{"text":"item.cost <= cyber.wiredBudget - cyber.wiredUsed && strain.total + item.strain <= strain.max && countCopies(copy.item == item.id) == 0","tree":{"type":"binary","op":"&&","left":{"type":"binary","op":"&&","left":{"type":"binary","op":"<=","left":{"type":"name","path":["item","cost"]},"right":{"type":"binary","op":"-","left":{"type":"name","path":["cyber","wiredBudget"]},"right":{"type":"name","path":["cyber","wiredUsed"]}}},"right":{"type":"binary","op":"<=","left":{"type":"binary","op":"+","left":{"type":"name","path":["strain","total"]},"right":{"type":"name","path":["item","strain"]}},"right":{"type":"name","path":["strain","max"]}}},"right":{"type":"binary","op":"==","left":{"type":"call","fn":"countCopies","args":[{"type":"binary","op":"==","left":{"type":"name","path":["copy","item"]},"right":{"type":"name","path":["item","id"]}}]},"right":{"type":"int","value":0}}}},"item.cpu":{"text":"item.cpu","tree":{"type":"name","path":["item","cpu"]}},"item.damage":{"text":"item.damage","tree":{"type":"name","path":["item","damage"]}},"item.damageBonus":{"text":"item.damageBonus","tree":{"type":"name","path":["item","damageBonus"]}},"item.damageBonus != 0":{"text":"item.damageBonus != 0","tree":{"type":"binary","op":"!=","left":{"type":"name","path":["item","damageBonus"]},"right":{"type":"int","value":0}}},"item.effort == 'either' ? (has(params.commit) ? params.commit : 'scene')\n : item.effort":{"text":"item.effort == 'either' ? (has(params.commit) ? params.commit : 'scene') : item.effort","tree":{"type":"conditional","test":{"type":"binary","op":"==","left":{"type":"name","path":["item","effort"]},"right":{"type":"string","value":"either"}},"then":{"type":"conditional","test":{"type":"call","fn":"has","args":[{"type":"name","path":["params","commit"]}]},"then":{"type":"name","path":["params","commit"]},"else":{"type":"string","value":"scene"}},"else":{"type":"name","path":["item","effort"]}}},"item.fittingsUsed <= item.fittings":{"text":"item.fittingsUsed <= item.fittings","tree":{"type":"binary","op":"<=","left":{"type":"name","path":["item","fittingsUsed"]},"right":{"type":"name","path":["item","fittings"]}}},"item.healDice":{"text":"item.healDice","tree":{"type":"name","path":["item","healDice"]}},"item.hp":{"text":"item.hp","tree":{"type":"name","path":["item","hp"]}},"item.id":{"text":"item.id","tree":{"type":"name","path":["item","id"]}},"item.id == @weapons.eye-flechette":{"text":"item.id == @weapons.eye-flechette","tree":{"type":"binary","op":"==","left":{"type":"name","path":["item","id"]},"right":{"type":"ref","id":"weapons.eye-flechette"}}},"item.kind":{"text":"item.kind","tree":{"type":"name","path":["item","kind"]}},"item.kind != 'shield'":{"text":"item.kind != 'shield'","tree":{"type":"binary","op":"!=","left":{"type":"name","path":["item","kind"]},"right":{"type":"string","value":"shield"}}},"item.kind == 'clothing'":{"text":"item.kind == 'clothing'","tree":{"type":"binary","op":"==","left":{"type":"name","path":["item","kind"]},"right":{"type":"string","value":"clothing"}}},"item.kind == 'subject' && item.subjectType in action.item.targets":{"text":"item.kind == 'subject' && item.subjectType in action.item.targets","tree":{"type":"binary","op":"&&","left":{"type":"binary","op":"==","left":{"type":"name","path":["item","kind"]},"right":{"type":"string","value":"subject"}},"right":{"type":"binary","op":"in","left":{"type":"name","path":["item","subjectType"]},"right":{"type":"name","path":["action","item","targets"]}}}},"item.kind == 'verb' && hacking.cpu > 0 && hacking.access.current >= item.accessCost":{"text":"item.kind == 'verb' && hacking.cpu > 0 && hacking.access.current >= item.accessCost","tree":{"type":"binary","op":"&&","left":{"type":"binary","op":"&&","left":{"type":"binary","op":"==","left":{"type":"name","path":["item","kind"]},"right":{"type":"string","value":"verb"}},"right":{"type":"binary","op":">","left":{"type":"name","path":["hacking","cpu"]},"right":{"type":"int","value":0}}},"right":{"type":"binary","op":">=","left":{"type":"name","path":["hacking","access","current"]},"right":{"type":"name","path":["item","accessCost"]}}}},"item.magazine":{"text":"item.magazine","tree":{"type":"name","path":["item","magazine"]}},"item.maxLevel":{"text":"item.maxLevel","tree":{"type":"name","path":["item","maxLevel"]}},"item.meleeAc":{"text":"item.meleeAc","tree":{"type":"name","path":["item","meleeAc"]}},"item.memory":{"text":"item.memory","tree":{"type":"name","path":["item","memory"]}},"item.powerUsed <= item.power && item.massUsed <= item.mass":{"text":"item.powerUsed <= item.power && item.massUsed <= item.mass","tree":{"type":"binary","op":"&&","left":{"type":"binary","op":"<=","left":{"type":"name","path":["item","powerUsed"]},"right":{"type":"name","path":["item","power"]}},"right":{"type":"binary","op":"<=","left":{"type":"name","path":["item","massUsed"]},"right":{"type":"name","path":["item","mass"]}}}},"item.rangedAc":{"text":"item.rangedAc","tree":{"type":"name","path":["item","rangedAc"]}},"item.shielding":{"text":"item.shielding","tree":{"type":"name","path":["item","shielding"]}},"item.size != 'small'":{"text":"item.size != 'small'","tree":{"type":"binary","op":"!=","left":{"type":"name","path":["item","size"]},"right":{"type":"string","value":"small"}}},"item.size == 'large'":{"text":"item.size == 'large'","tree":{"type":"binary","op":"==","left":{"type":"name","path":["item","size"]},"right":{"type":"string","value":"large"}}},"item.strain":{"text":"item.strain","tree":{"type":"name","path":["item","strain"]}},"item.strain > 0":{"text":"item.strain > 0","tree":{"type":"binary","op":">","left":{"type":"name","path":["item","strain"]},"right":{"type":"int","value":0}}},"item.strain >= 2":{"text":"item.strain >= 2","tree":{"type":"binary","op":">=","left":{"type":"name","path":["item","strain"]},"right":{"type":"int","value":2}}},"item.traumaDie":{"text":"item.traumaDie","tree":{"type":"name","path":["item","traumaDie"]}},"item.traumaDieBonus":{"text":"item.traumaDieBonus","tree":{"type":"name","path":["item","traumaDieBonus"]}},"item.traumaDieBonus != 0":{"text":"item.traumaDieBonus != 0","tree":{"type":"binary","op":"!=","left":{"type":"name","path":["item","traumaDieBonus"]},"right":{"type":"int","value":0}}},"item.traumaMod":{"text":"item.traumaMod","tree":{"type":"name","path":["item","traumaMod"]}},"item.traumaMod != 0 && !self.damaged":{"text":"item.traumaMod != 0 && !self.damaged","tree":{"type":"binary","op":"&&","left":{"type":"binary","op":"!=","left":{"type":"name","path":["item","traumaMod"]},"right":{"type":"int","value":0}},"right":{"type":"unary","op":"!","operand":{"type":"name","path":["self","damaged"]}}}},"item.triggerStrain":{"text":"item.triggerStrain","tree":{"type":"name","path":["item","triggerStrain"]}},"level":{"text":"level","tree":{"type":"name","path":["level"]}},"level + 1 == 5":{"text":"level + 1 == 5","tree":{"type":"binary","op":"==","left":{"type":"binary","op":"+","left":{"type":"name","path":["level"]},"right":{"type":"int","value":1}},"right":{"type":"int","value":5}}},"level + 2":{"text":"level + 2","tree":{"type":"binary","op":"+","left":{"type":"name","path":["level"]},"right":{"type":"int","value":2}}},"level - 1":{"text":"level - 1","tree":{"type":"binary","op":"-","left":{"type":"name","path":["level"]},"right":{"type":"int","value":1}}},"level >= 10 ? 0\n : (xp.track == 'fast' ? [0, 3, 6, 12, 18, 27, 39, 54, 72, 93]\n : [0, 6, 15, 24, 36, 51, 69, 87, 105, 139])[level]":{"text":"level >= 10 ? 0 : (xp.track == 'fast' ? [0, 3, 6, 12, 18, 27, 39, 54, 72, 93] : [0, 6, 15, 24, 36, 51, 69, 87, 105, 139])[level]","tree":{"type":"conditional","test":{"type":"binary","op":">=","left":{"type":"name","path":["level"]},"right":{"type":"int","value":10}},"then":{"type":"int","value":0},"else":{"type":"index","object":{"type":"conditional","test":{"type":"binary","op":"==","left":{"type":"name","path":["xp","track"]},"right":{"type":"string","value":"fast"}},"then":{"type":"list","items":[{"type":"int","value":0},{"type":"int","value":3},{"type":"int","value":6},{"type":"int","value":12},{"type":"int","value":18},{"type":"int","value":27},{"type":"int","value":39},{"type":"int","value":54},{"type":"int","value":72},{"type":"int","value":93}]},"else":{"type":"list","items":[{"type":"int","value":0},{"type":"int","value":6},{"type":"int","value":15},{"type":"int","value":24},{"type":"int","value":36},{"type":"int","value":51},{"type":"int","value":69},{"type":"int","value":87},{"type":"int","value":105},{"type":"int","value":139}]}},"index":{"type":"name","path":["level"]}}}},"level >= 5 ? 2 : 1":{"text":"level >= 5 ? 2 : 1","tree":{"type":"conditional","test":{"type":"binary","op":">=","left":{"type":"name","path":["level"]},"right":{"type":"int","value":5}},"then":{"type":"int","value":2},"else":{"type":"int","value":1}}},"level >= [1, 1, 3, 6, 9][flags.level + 1]\n && skillPoints.unspent + flags.credit >= flags.level + 2":{"text":"level >= [1, 1, 3, 6, 9][flags.level + 1] && skillPoints.unspent + flags.credit >= flags.level + 2","tree":{"type":"binary","op":"&&","left":{"type":"binary","op":">=","left":{"type":"name","path":["level"]},"right":{"type":"index","object":{"type":"list","items":[{"type":"int","value":1},{"type":"int","value":1},{"type":"int","value":3},{"type":"int","value":6},{"type":"int","value":9}]},"index":{"type":"binary","op":"+","left":{"type":"name","path":["flags","level"]},"right":{"type":"int","value":1}}}},"right":{"type":"binary","op":">=","left":{"type":"binary","op":"+","left":{"type":"name","path":["skillPoints","unspent"]},"right":{"type":"name","path":["flags","credit"]}},"right":{"type":"binary","op":"+","left":{"type":"name","path":["flags","level"]},"right":{"type":"int","value":2}}}}},"level >= item.minLevel && (!item.physicalOnly || self.form in ['physical-1', 'physical-2', 'physical-3'])":{"text":"level >= item.minLevel && (!item.physicalOnly || self.form in ['physical-1', 'physical-2', 'physical-3'])","tree":{"type":"binary","op":"&&","left":{"type":"binary","op":">=","left":{"type":"name","path":["level"]},"right":{"type":"name","path":["item","minLevel"]}},"right":{"type":"binary","op":"||","left":{"type":"unary","op":"!","operand":{"type":"name","path":["item","physicalOnly"]}},"right":{"type":"binary","op":"in","left":{"type":"name","path":["self","form"]},"right":{"type":"list","items":[{"type":"string","value":"physical-1"},{"type":"string","value":"physical-2"},{"type":"string","value":"physical-3"}]}}}}},"level >= slot":{"text":"level >= slot","tree":{"type":"binary","op":">=","left":{"type":"name","path":["level"]},"right":{"type":"name","path":["slot"]}}},"magic.cyberPenalty > 0":{"text":"magic.cyberPenalty > 0","tree":{"type":"binary","op":">","left":{"type":"name","path":["magic","cyberPenalty"]},"right":{"type":"int","value":0}}},"magic.graced":{"text":"magic.graced","tree":{"type":"name","path":["magic","graced"]}},"magic.graced ? max(0, [2, 3, 4, 6, 6, 7, 7, 9, 10, 11][level - 1]\n - (countCopies(copy.type == 'cyberware') > 0 ? magic.cyberPenalty : 0)) : 0":{"text":"magic.graced ? max(0, [2, 3, 4, 6, 6, 7, 7, 9, 10, 11][level - 1] - (countCopies(copy.type == 'cyberware') > 0 ? magic.cyberPenalty : 0)) : 0","tree":{"type":"conditional","test":{"type":"name","path":["magic","graced"]},"then":{"type":"call","fn":"max","args":[{"type":"int","value":0},{"type":"binary","op":"-","left":{"type":"index","object":{"type":"list","items":[{"type":"int","value":2},{"type":"int","value":3},{"type":"int","value":4},{"type":"int","value":6},{"type":"int","value":6},{"type":"int","value":7},{"type":"int","value":7},{"type":"int","value":9},{"type":"int","value":10},{"type":"int","value":11}]},"index":{"type":"binary","op":"-","left":{"type":"name","path":["level"]},"right":{"type":"int","value":1}}},"right":{"type":"conditional","test":{"type":"binary","op":">","left":{"type":"call","fn":"countCopies","args":[{"type":"binary","op":"==","left":{"type":"name","path":["copy","type"]},"right":{"type":"string","value":"cyberware"}}]},"right":{"type":"int","value":0}},"then":{"type":"name","path":["magic","cyberPenalty"]},"else":{"type":"int","value":0}}}]},"else":{"type":"int","value":0}}},"magic.mage":{"text":"magic.mage","tree":{"type":"name","path":["magic","mage"]}},"magic.mage && self.prepared":{"text":"magic.mage && self.prepared","tree":{"type":"binary","op":"&&","left":{"type":"name","path":["magic","mage"]},"right":{"type":"name","path":["self","prepared"]}}},"magic.mage ? max(0, ceil(level / 2) + skills.cast.level) : 0":{"text":"magic.mage ? max(0, ceil(level / 2) + skills.cast.level) : 0","tree":{"type":"conditional","test":{"type":"name","path":["magic","mage"]},"then":{"type":"call","fn":"max","args":[{"type":"int","value":0},{"type":"binary","op":"+","left":{"type":"call","fn":"ceil","args":[{"type":"binary","op":"/","left":{"type":"name","path":["level"]},"right":{"type":"int","value":2}}]},"right":{"type":"name","path":["skills","cast","level"]}}]},"else":{"type":"int","value":0}}},"magic.mage ? max(1, max(attributes.int.mod, attributes.wis.mod) + skills.cast.level\n - magic.cyberPenalty) : 0":{"text":"magic.mage ? max(1, max(attributes.int.mod, attributes.wis.mod) + skills.cast.level - magic.cyberPenalty) : 0","tree":{"type":"conditional","test":{"type":"name","path":["magic","mage"]},"then":{"type":"call","fn":"max","args":[{"type":"int","value":1},{"type":"binary","op":"-","left":{"type":"binary","op":"+","left":{"type":"call","fn":"max","args":[{"type":"name","path":["attributes","int","mod"]},{"type":"name","path":["attributes","wis","mod"]}]},"right":{"type":"name","path":["skills","cast","level"]}},"right":{"type":"name","path":["magic","cyberPenalty"]}}]},"else":{"type":"int","value":0}}},"magic.mage || magic.summoner || magic.graced":{"text":"magic.mage || magic.summoner || magic.graced","tree":{"type":"binary","op":"||","left":{"type":"binary","op":"||","left":{"type":"name","path":["magic","mage"]},"right":{"type":"name","path":["magic","summoner"]}},"right":{"type":"name","path":["magic","graced"]}}},"magic.summoner":{"text":"magic.summoner","tree":{"type":"name","path":["magic","summoner"]}},"magic.summoner ? max(1, max(attributes.con.mod, attributes.cha.mod) + skills.summon.level\n - magic.cyberPenalty) : 0":{"text":"magic.summoner ? max(1, max(attributes.con.mod, attributes.cha.mod) + skills.summon.level - magic.cyberPenalty) : 0","tree":{"type":"conditional","test":{"type":"name","path":["magic","summoner"]},"then":{"type":"call","fn":"max","args":[{"type":"int","value":1},{"type":"binary","op":"-","left":{"type":"binary","op":"+","left":{"type":"call","fn":"max","args":[{"type":"name","path":["attributes","con","mod"]},{"type":"name","path":["attributes","cha","mod"]}]},"right":{"type":"name","path":["skills","summon","level"]}},"right":{"type":"name","path":["magic","cyberPenalty"]}}]},"else":{"type":"int","value":0}}},"maintenance.max > 0 || maintenance.used > 0":{"text":"maintenance.max > 0 || maintenance.used > 0","tree":{"type":"binary","op":"||","left":{"type":"binary","op":">","left":{"type":"name","path":["maintenance","max"]},"right":{"type":"int","value":0}},"right":{"type":"binary","op":">","left":{"type":"name","path":["maintenance","used"]},"right":{"type":"int","value":0}}}},"max(-3, min(max(attributes.cha.modCap, attributes.cha.scoreMod),\n attributes.cha.scoreMod + attributes.cha.modBonus))":{"text":"max(-3, min(max(attributes.cha.modCap, attributes.cha.scoreMod), attributes.cha.scoreMod + attributes.cha.modBonus))","tree":{"type":"call","fn":"max","args":[{"type":"unary","op":"-","operand":{"type":"int","value":3}},{"type":"call","fn":"min","args":[{"type":"call","fn":"max","args":[{"type":"name","path":["attributes","cha","modCap"]},{"type":"name","path":["attributes","cha","scoreMod"]}]},{"type":"binary","op":"+","left":{"type":"name","path":["attributes","cha","scoreMod"]},"right":{"type":"name","path":["attributes","cha","modBonus"]}}]}]}},"max(-3, min(max(attributes.con.modCap, attributes.con.scoreMod),\n attributes.con.scoreMod + attributes.con.modBonus))":{"text":"max(-3, min(max(attributes.con.modCap, attributes.con.scoreMod), attributes.con.scoreMod + attributes.con.modBonus))","tree":{"type":"call","fn":"max","args":[{"type":"unary","op":"-","operand":{"type":"int","value":3}},{"type":"call","fn":"min","args":[{"type":"call","fn":"max","args":[{"type":"name","path":["attributes","con","modCap"]},{"type":"name","path":["attributes","con","scoreMod"]}]},{"type":"binary","op":"+","left":{"type":"name","path":["attributes","con","scoreMod"]},"right":{"type":"name","path":["attributes","con","modBonus"]}}]}]}},"max(-3, min(max(attributes.dex.modCap, attributes.dex.scoreMod),\n attributes.dex.scoreMod + attributes.dex.modBonus))":{"text":"max(-3, min(max(attributes.dex.modCap, attributes.dex.scoreMod), attributes.dex.scoreMod + attributes.dex.modBonus))","tree":{"type":"call","fn":"max","args":[{"type":"unary","op":"-","operand":{"type":"int","value":3}},{"type":"call","fn":"min","args":[{"type":"call","fn":"max","args":[{"type":"name","path":["attributes","dex","modCap"]},{"type":"name","path":["attributes","dex","scoreMod"]}]},{"type":"binary","op":"+","left":{"type":"name","path":["attributes","dex","scoreMod"]},"right":{"type":"name","path":["attributes","dex","modBonus"]}}]}]}},"max(-3, min(max(attributes.int.modCap, attributes.int.scoreMod),\n attributes.int.scoreMod + attributes.int.modBonus))":{"text":"max(-3, min(max(attributes.int.modCap, attributes.int.scoreMod), attributes.int.scoreMod + attributes.int.modBonus))","tree":{"type":"call","fn":"max","args":[{"type":"unary","op":"-","operand":{"type":"int","value":3}},{"type":"call","fn":"min","args":[{"type":"call","fn":"max","args":[{"type":"name","path":["attributes","int","modCap"]},{"type":"name","path":["attributes","int","scoreMod"]}]},{"type":"binary","op":"+","left":{"type":"name","path":["attributes","int","scoreMod"]},"right":{"type":"name","path":["attributes","int","modBonus"]}}]}]}},"max(-3, min(max(attributes.str.modCap, attributes.str.scoreMod),\n attributes.str.scoreMod + attributes.str.modBonus))":{"text":"max(-3, min(max(attributes.str.modCap, attributes.str.scoreMod), attributes.str.scoreMod + attributes.str.modBonus))","tree":{"type":"call","fn":"max","args":[{"type":"unary","op":"-","operand":{"type":"int","value":3}},{"type":"call","fn":"min","args":[{"type":"call","fn":"max","args":[{"type":"name","path":["attributes","str","modCap"]},{"type":"name","path":["attributes","str","scoreMod"]}]},{"type":"binary","op":"+","left":{"type":"name","path":["attributes","str","scoreMod"]},"right":{"type":"name","path":["attributes","str","modBonus"]}}]}]}},"max(-3, min(max(attributes.wis.modCap, attributes.wis.scoreMod),\n attributes.wis.scoreMod + attributes.wis.modBonus))":{"text":"max(-3, min(max(attributes.wis.modCap, attributes.wis.scoreMod), attributes.wis.scoreMod + attributes.wis.modBonus))","tree":{"type":"call","fn":"max","args":[{"type":"unary","op":"-","operand":{"type":"int","value":3}},{"type":"call","fn":"min","args":[{"type":"call","fn":"max","args":[{"type":"name","path":["attributes","wis","modCap"]},{"type":"name","path":["attributes","wis","scoreMod"]}]},{"type":"binary","op":"+","left":{"type":"name","path":["attributes","wis","scoreMod"]},"right":{"type":"name","path":["attributes","wis","modBonus"]}}]}]}},"max(0, 12 - attributes.con.score)":{"text":"max(0, 12 - attributes.con.score)","tree":{"type":"call","fn":"max","args":[{"type":"int","value":0},{"type":"binary","op":"-","left":{"type":"int","value":12},"right":{"type":"name","path":["attributes","con","score"]}}]}},"max(0, arts.bonusRolls.max)":{"text":"max(0, arts.bonusRolls.max)","tree":{"type":"call","fn":"max","args":[{"type":"int","value":0},{"type":"name","path":["arts","bonusRolls","max"]}]}},"max(0, attributes.int.mod + attributes.con.mod\n + 3 * min(5, max(0, skills.fix.level + maintenance.fixBonus))) * maintenance.multiplier":{"text":"max(0, attributes.int.mod + attributes.con.mod + 3 * min(5, max(0, skills.fix.level + maintenance.fixBonus))) * maintenance.multiplier","tree":{"type":"binary","op":"*","left":{"type":"call","fn":"max","args":[{"type":"int","value":0},{"type":"binary","op":"+","left":{"type":"binary","op":"+","left":{"type":"name","path":["attributes","int","mod"]},"right":{"type":"name","path":["attributes","con","mod"]}},"right":{"type":"binary","op":"*","left":{"type":"int","value":3},"right":{"type":"call","fn":"min","args":[{"type":"int","value":5},{"type":"call","fn":"max","args":[{"type":"int","value":0},{"type":"binary","op":"+","left":{"type":"name","path":["skills","fix","level"]},"right":{"type":"name","path":["maintenance","fixBonus"]}}]}]}}}]},"right":{"type":"name","path":["maintenance","multiplier"]}}},"max(0, attributes.int.mod + skills.program.level + hacking.deck.bonusAccess)":{"text":"max(0, attributes.int.mod + skills.program.level + hacking.deck.bonusAccess)","tree":{"type":"call","fn":"max","args":[{"type":"int","value":0},{"type":"binary","op":"+","left":{"type":"binary","op":"+","left":{"type":"name","path":["attributes","int","mod"]},"right":{"type":"name","path":["skills","program","level"]}},"right":{"type":"name","path":["hacking","deck","bonusAccess"]}}]}},"max(0, effort.mage.max - effort.mage.scene - effort.mage.day)":{"text":"max(0, effort.mage.max - effort.mage.scene - effort.mage.day)","tree":{"type":"call","fn":"max","args":[{"type":"int","value":0},{"type":"binary","op":"-","left":{"type":"binary","op":"-","left":{"type":"name","path":["effort","mage","max"]},"right":{"type":"name","path":["effort","mage","scene"]}},"right":{"type":"name","path":["effort","mage","day"]}}]}},"max(0, effort.summoner.max - effort.summoner.scene - effort.summoner.day)":{"text":"max(0, effort.summoner.max - effort.summoner.scene - effort.summoner.day)","tree":{"type":"call","fn":"max","args":[{"type":"int","value":0},{"type":"binary","op":"-","left":{"type":"binary","op":"-","left":{"type":"name","path":["effort","summoner","max"]},"right":{"type":"name","path":["effort","summoner","scene"]}},"right":{"type":"name","path":["effort","summoner","day"]}}]}},"max(0, flags.credit - flags.cost)":{"text":"max(0, flags.credit - flags.cost)","tree":{"type":"call","fn":"max","args":[{"type":"int","value":0},{"type":"binary","op":"-","left":{"type":"name","path":["flags","credit"]},"right":{"type":"name","path":["flags","cost"]}}]}},"max(0, hacking.access.max - hacking.access.spent)":{"text":"max(0, hacking.access.max - hacking.access.spent)","tree":{"type":"call","fn":"max","args":[{"type":"int","value":0},{"type":"binary","op":"-","left":{"type":"name","path":["hacking","access","max"]},"right":{"type":"name","path":["hacking","access","spent"]}}]}},"max(0, max(steps.damage.total, flags.shock))\n * (has(steps.trauma) && steps.trauma.band == 'traumatic' ? item.traumaRating : 1)":{"text":"max(0, max(steps.damage.total, flags.shock)) * (has(steps.trauma) && steps.trauma.band == 'traumatic' ? item.traumaRating : 1)","tree":{"type":"binary","op":"*","left":{"type":"call","fn":"max","args":[{"type":"int","value":0},{"type":"call","fn":"max","args":[{"type":"name","path":["steps","damage","total"]},{"type":"name","path":["flags","shock"]}]}]},"right":{"type":"conditional","test":{"type":"binary","op":"&&","left":{"type":"call","fn":"has","args":[{"type":"name","path":["steps","trauma"]}]},"right":{"type":"binary","op":"==","left":{"type":"name","path":["steps","trauma","band"]},"right":{"type":"string","value":"traumatic"}}},"then":{"type":"name","path":["item","traumaRating"]},"else":{"type":"int","value":1}}}},"max(0, prior.armor - 2)":{"text":"max(0, prior.armor - 2)","tree":{"type":"call","fn":"max","args":[{"type":"int","value":0},{"type":"binary","op":"-","left":{"type":"name","path":["prior","armor"]},"right":{"type":"int","value":2}}]}},"max(0, prior.cpu - 1)":{"text":"max(0, prior.cpu - 1)","tree":{"type":"call","fn":"max","args":[{"type":"int","value":0},{"type":"binary","op":"-","left":{"type":"name","path":["prior","cpu"]},"right":{"type":"int","value":1}}]}},"max(0, prior.enc - 1)":{"text":"max(0, prior.enc - 1)","tree":{"type":"call","fn":"max","args":[{"type":"int","value":0},{"type":"binary","op":"-","left":{"type":"name","path":["prior","enc"]},"right":{"type":"int","value":1}}]}},"max(0, prior.fittings - 1)":{"text":"max(0, prior.fittings - 1)","tree":{"type":"call","fn":"max","args":[{"type":"int","value":0},{"type":"binary","op":"-","left":{"type":"name","path":["prior","fittings"]},"right":{"type":"int","value":1}}]}},"max(0, prior.heavy - base.heavy)":{"text":"max(0, prior.heavy - base.heavy)","tree":{"type":"call","fn":"max","args":[{"type":"int","value":0},{"type":"binary","op":"-","left":{"type":"name","path":["prior","heavy"]},"right":{"type":"name","path":["base","heavy"]}}]}},"max(0, prior.mass - 2)":{"text":"max(0, prior.mass - 2)","tree":{"type":"call","fn":"max","args":[{"type":"int","value":0},{"type":"binary","op":"-","left":{"type":"name","path":["prior","mass"]},"right":{"type":"int","value":2}}]}},"max(0, prior.mass - ceil(prior.mass * 0.2))":{"text":"max(0, prior.mass - ceil(prior.mass * 0.2))","tree":{"type":"call","fn":"max","args":[{"type":"int","value":0},{"type":"binary","op":"-","left":{"type":"name","path":["prior","mass"]},"right":{"type":"call","fn":"ceil","args":[{"type":"binary","op":"*","left":{"type":"name","path":["prior","mass"]},"right":{"type":"decimal","value":0.2}}]}}]}},"max(0, prior.memory - 2)":{"text":"max(0, prior.memory - 2)","tree":{"type":"call","fn":"max","args":[{"type":"int","value":0},{"type":"binary","op":"-","left":{"type":"name","path":["prior","memory"]},"right":{"type":"int","value":2}}]}},"max(0, prior.move - 5)":{"text":"max(0, prior.move - 5)","tree":{"type":"call","fn":"max","args":[{"type":"int","value":0},{"type":"binary","op":"-","left":{"type":"name","path":["prior","move"]},"right":{"type":"int","value":5}}]}},"max(0, skills.program.level)":{"text":"max(0, skills.program.level)","tree":{"type":"call","fn":"max","args":[{"type":"int","value":0},{"type":"name","path":["skills","program","level"]}]}},"max(0, skills.punch.base)":{"text":"max(0, skills.punch.base)","tree":{"type":"call","fn":"max","args":[{"type":"int","value":0},{"type":"name","path":["skills","punch","base"]}]}},"max(0, skills.shoot.level)":{"text":"max(0, skills.shoot.level)","tree":{"type":"call","fn":"max","args":[{"type":"int","value":0},{"type":"name","path":["skills","shoot","level"]}]}},"max(0, skills.stab.level)":{"text":"max(0, skills.stab.level)","tree":{"type":"call","fn":"max","args":[{"type":"int","value":0},{"type":"name","path":["skills","stab","level"]}]}},"max(0, steps.heal.total)":{"text":"max(0, steps.heal.total)","tree":{"type":"call","fn":"max","args":[{"type":"int","value":0},{"type":"name","path":["steps","heal","total"]}]}},"max(0, strain.cyber - strain.cyberIgnored - strain.maintenanceRelief) + strain.otherPermanent":{"text":"max(0, strain.cyber - strain.cyberIgnored - strain.maintenanceRelief) + strain.otherPermanent","tree":{"type":"binary","op":"+","left":{"type":"call","fn":"max","args":[{"type":"int","value":0},{"type":"binary","op":"-","left":{"type":"binary","op":"-","left":{"type":"name","path":["strain","cyber"]},"right":{"type":"name","path":["strain","cyberIgnored"]}},"right":{"type":"name","path":["strain","maintenanceRelief"]}}]},"right":{"type":"name","path":["strain","otherPermanent"]}}},"max(1, prior.hp - ceil(base.hp * 0.2))":{"text":"max(1, prior.hp - ceil(base.hp * 0.2))","tree":{"type":"call","fn":"max","args":[{"type":"int","value":1},{"type":"binary","op":"-","left":{"type":"name","path":["prior","hp"]},"right":{"type":"call","fn":"ceil","args":[{"type":"binary","op":"*","left":{"type":"name","path":["base","hp"]},"right":{"type":"decimal","value":0.2}}]}}]}},"max(1, size(picksOf('powers')) - (self.ritual ? 1 : 0) - max(0, skills.summon.level))":{"text":"max(1, size(picksOf('powers')) - (self.ritual ? 1 : 0) - max(0, skills.summon.level))","tree":{"type":"call","fn":"max","args":[{"type":"int","value":1},{"type":"binary","op":"-","left":{"type":"binary","op":"-","left":{"type":"call","fn":"size","args":[{"type":"call","fn":"picksOf","args":[{"type":"string","value":"powers"}]}]},"right":{"type":"conditional","test":{"type":"name","path":["self","ritual"]},"then":{"type":"int","value":1},"else":{"type":"int","value":0}}},"right":{"type":"call","fn":"max","args":[{"type":"int","value":0},{"type":"name","path":["skills","summon","level"]}]}}]}},"max(1, skills.punch.level, skills.shoot.level, skills.stab.level)":{"text":"max(1, skills.punch.level, skills.shoot.level, skills.stab.level)","tree":{"type":"call","fn":"max","args":[{"type":"int","value":1},{"type":"name","path":["skills","punch","level"]},{"type":"name","path":["skills","shoot","level"]},{"type":"name","path":["skills","stab","level"]}]}},"max(1, steps.hp.total)":{"text":"max(1, steps.hp.total)","tree":{"type":"call","fn":"max","args":[{"type":"int","value":1},{"type":"name","path":["steps","hp","total"]}]}},"max(alienation.permanent, alienation.current)":{"text":"max(alienation.permanent, alienation.current)","tree":{"type":"call","fn":"max","args":[{"type":"name","path":["alienation","permanent"]},{"type":"name","path":["alienation","current"]}]}},"max(steps.hp.total, hp.rolled + 1)":{"text":"max(steps.hp.total, hp.rolled + 1)","tree":{"type":"call","fn":"max","args":[{"type":"name","path":["steps","hp","total"]},{"type":"binary","op":"+","left":{"type":"name","path":["hp","rolled"]},"right":{"type":"int","value":1}}]}},"maxCopies(copy.fields.shielding - copy.state.shieldingUsed,\n copy.type == 'cyberdeck' && copy.equipped)":{"text":"maxCopies(copy.fields.shielding - copy.state.shieldingUsed, copy.type == 'cyberdeck' && copy.equipped)","tree":{"type":"call","fn":"maxCopies","args":[{"type":"binary","op":"-","left":{"type":"name","path":["copy","fields","shielding"]},"right":{"type":"name","path":["copy","state","shieldingUsed"]}},{"type":"binary","op":"&&","left":{"type":"binary","op":"==","left":{"type":"name","path":["copy","type"]},"right":{"type":"string","value":"cyberdeck"}},"right":{"type":"name","path":["copy","equipped"]}}]}},"min(18, prior.ac + 2)":{"text":"min(18, prior.ac + 2)","tree":{"type":"call","fn":"min","args":[{"type":"int","value":18},{"type":"binary","op":"+","left":{"type":"name","path":["prior","ac"]},"right":{"type":"int","value":2}}]}},"min(2, max(0, max(ceil((enc.readied - enc.readiedMax) / 2),\n ceil((enc.stowed - enc.stowedMax) / 4))))":{"text":"min(2, max(0, max(ceil((enc.readied - enc.readiedMax) / 2), ceil((enc.stowed - enc.stowedMax) / 4))))","tree":{"type":"call","fn":"min","args":[{"type":"int","value":2},{"type":"call","fn":"max","args":[{"type":"int","value":0},{"type":"call","fn":"max","args":[{"type":"call","fn":"ceil","args":[{"type":"binary","op":"/","left":{"type":"binary","op":"-","left":{"type":"name","path":["enc","readied"]},"right":{"type":"name","path":["enc","readiedMax"]}},"right":{"type":"int","value":2}}]},{"type":"call","fn":"ceil","args":[{"type":"binary","op":"/","left":{"type":"binary","op":"-","left":{"type":"name","path":["enc","stowed"]},"right":{"type":"name","path":["enc","stowedMax"]}},"right":{"type":"int","value":4}}]}]}]}]}},"min(3 * level - self.bufferUsed, -incoming.amount)":{"text":"min(3 * level - self.bufferUsed, -incoming.amount)","tree":{"type":"call","fn":"min","args":[{"type":"binary","op":"-","left":{"type":"binary","op":"*","left":{"type":"int","value":3},"right":{"type":"name","path":["level"]}},"right":{"type":"name","path":["self","bufferUsed"]}},{"type":"unary","op":"-","operand":{"type":"name","path":["incoming","amount"]}}]}},"min(item.shielding - self.shieldingUsed, -incoming.amount)":{"text":"min(item.shielding - self.shieldingUsed, -incoming.amount)","tree":{"type":"call","fn":"min","args":[{"type":"binary","op":"-","left":{"type":"name","path":["item","shielding"]},"right":{"type":"name","path":["self","shieldingUsed"]}},{"type":"unary","op":"-","operand":{"type":"name","path":["incoming","amount"]}}]}},"min(item.soak - self.soakUsed, -incoming.amount)":{"text":"min(item.soak - self.soakUsed, -incoming.amount)","tree":{"type":"call","fn":"min","args":[{"type":"binary","op":"-","left":{"type":"name","path":["item","soak"]},"right":{"type":"name","path":["self","soakUsed"]}},{"type":"unary","op":"-","operand":{"type":"name","path":["incoming","amount"]}}]}},"minList(flags.totals, x) >= 14 ? 'none'\n : ['str', 'dex', 'con', 'int', 'wis', 'cha'][\n indexOf(flags.totals, minList(flags.totals, x))]":{"text":"minList(flags.totals, x) >= 14 ? 'none' : ['str', 'dex', 'con', 'int', 'wis', 'cha'][indexOf(flags.totals, minList(flags.totals, x))]","tree":{"type":"conditional","test":{"type":"binary","op":">=","left":{"type":"call","fn":"minList","args":[{"type":"name","path":["flags","totals"]},{"type":"name","path":["x"]}]},"right":{"type":"int","value":14}},"then":{"type":"string","value":"none"},"else":{"type":"index","object":{"type":"list","items":[{"type":"string","value":"str"},{"type":"string","value":"dex"},{"type":"string","value":"con"},{"type":"string","value":"int"},{"type":"string","value":"wis"},{"type":"string","value":"cha"}]},"index":{"type":"call","fn":"indexOf","args":[{"type":"name","path":["flags","totals"]},{"type":"call","fn":"minList","args":[{"type":"name","path":["flags","totals"]},{"type":"name","path":["x"]}]}]}}}},"options[0]":{"text":"options[0]","tree":{"type":"index","object":{"type":"name","path":["options"]},"index":{"type":"int","value":0}}},"params.burst && 'burst' in item.tags && self.loaded >= 3":{"text":"params.burst && 'burst' in item.tags && self.loaded >= 3","tree":{"type":"binary","op":"&&","left":{"type":"binary","op":"&&","left":{"type":"name","path":["params","burst"]},"right":{"type":"binary","op":"in","left":{"type":"string","value":"burst"},"right":{"type":"name","path":["item","tags"]}}},"right":{"type":"binary","op":">=","left":{"type":"name","path":["self","loaded"]},"right":{"type":"int","value":3}}}},"params.code == 'any-stat-1' ? 1 : 2":{"text":"params.code == 'any-stat-1' ? 1 : 2","tree":{"type":"conditional","test":{"type":"binary","op":"==","left":{"type":"name","path":["params","code"]},"right":{"type":"string","value":"any-stat-1"}},"then":{"type":"int","value":1},"else":{"type":"int","value":2}}},"params.code == 'physical-2' ? ['str', 'dex', 'con']\n : params.code == 'mental-2' ? ['int', 'wis', 'cha']\n : ['str', 'dex', 'con', 'int', 'wis', 'cha']":{"text":"params.code == 'physical-2' ? ['str', 'dex', 'con'] : params.code == 'mental-2' ? ['int', 'wis', 'cha'] : ['str', 'dex', 'con', 'int', 'wis', 'cha']","tree":{"type":"conditional","test":{"type":"binary","op":"==","left":{"type":"name","path":["params","code"]},"right":{"type":"string","value":"physical-2"}},"then":{"type":"list","items":[{"type":"string","value":"str"},{"type":"string","value":"dex"},{"type":"string","value":"con"}]},"else":{"type":"conditional","test":{"type":"binary","op":"==","left":{"type":"name","path":["params","code"]},"right":{"type":"string","value":"mental-2"}},"then":{"type":"list","items":[{"type":"string","value":"int"},{"type":"string","value":"wis"},{"type":"string","value":"cha"}]},"else":{"type":"list","items":[{"type":"string","value":"str"},{"type":"string","value":"dex"},{"type":"string","value":"con"},{"type":"string","value":"int"},{"type":"string","value":"wis"},{"type":"string","value":"cha"}]}}}},"params.crown":{"text":"params.crown","tree":{"type":"name","path":["params","crown"]}},"params.healerSkill":{"text":"params.healerSkill","tree":{"type":"name","path":["params","healerSkill"]}},"params.kind == 'drone'":{"text":"params.kind == 'drone'","tree":{"type":"binary","op":"==","left":{"type":"name","path":["params","kind"]},"right":{"type":"string","value":"drone"}}},"params.kind == 'vehicle'":{"text":"params.kind == 'vehicle'","tree":{"type":"binary","op":"==","left":{"type":"name","path":["params","kind"]},"right":{"type":"string","value":"vehicle"}}},"params.modifier":{"text":"params.modifier","tree":{"type":"name","path":["params","modifier"]}},"params.overcast":{"text":"params.overcast","tree":{"type":"name","path":["params","overcast"]}},"params.overcast ? 'overcast' : 'cast'":{"text":"params.overcast ? 'overcast' : 'cast'","tree":{"type":"conditional","test":{"type":"name","path":["params","overcast"]},"then":{"type":"string","value":"overcast"},"else":{"type":"string","value":"cast"}}},"params.overcast ? steps.overcasting.band : 'none'":{"text":"params.overcast ? steps.overcasting.band : 'none'","tree":{"type":"conditional","test":{"type":"name","path":["params","overcast"]},"then":{"type":"name","path":["steps","overcasting","band"]},"else":{"type":"string","value":"none"}}},"params.random":{"text":"params.random","tree":{"type":"name","path":["params","random"]}},"params.random ? 'roll' : 'pick'":{"text":"params.random ? 'roll' : 'pick'","tree":{"type":"conditional","test":{"type":"name","path":["params","random"]},"then":{"type":"string","value":"roll"},"else":{"type":"string","value":"pick"}}},"params.skill.id":{"text":"params.skill.id","tree":{"type":"name","path":["params","skill","id"]}},"params.skill.tags":{"text":"params.skill.tags","tree":{"type":"name","path":["params","skill","tags"]}},"params.wireless":{"text":"params.wireless","tree":{"type":"name","path":["params","wireless"]}},"picked.id":{"text":"picked.id","tree":{"type":"name","path":["picked","id"]}},"picked.id == 'acquaintances'":{"text":"picked.id == 'acquaintances'","tree":{"type":"binary","op":"==","left":{"type":"name","path":["picked","id"]},"right":{"type":"string","value":"acquaintances"}}},"picked.id == 'friend'":{"text":"picked.id == 'friend'","tree":{"type":"binary","op":"==","left":{"type":"name","path":["picked","id"]},"right":{"type":"string","value":"friend"}}},"picked.id == 'take'":{"text":"picked.id == 'take'","tree":{"type":"binary","op":"==","left":{"type":"name","path":["picked","id"]},"right":{"type":"string","value":"take"}}},"picks == 0":{"text":"picks == 0","tree":{"type":"binary","op":"==","left":{"type":"name","path":["picks"]},"right":{"type":"int","value":0}}},"prior.ac + 2":{"text":"prior.ac + 2","tree":{"type":"binary","op":"+","left":{"type":"name","path":["prior","ac"]},"right":{"type":"int","value":2}}},"prior.armor + 3":{"text":"prior.armor + 3","tree":{"type":"binary","op":"+","left":{"type":"name","path":["prior","armor"]},"right":{"type":"int","value":3}}},"prior.attackBonus + 1":{"text":"prior.attackBonus + 1","tree":{"type":"binary","op":"+","left":{"type":"name","path":["prior","attackBonus"]},"right":{"type":"int","value":1}}},"prior.attackBonus + floor(level / 3)":{"text":"prior.attackBonus + floor(level / 3)","tree":{"type":"binary","op":"+","left":{"type":"name","path":["prior","attackBonus"]},"right":{"type":"call","fn":"floor","args":[{"type":"binary","op":"/","left":{"type":"name","path":["level"]},"right":{"type":"int","value":3}}]}}},"prior.baseAc + 2":{"text":"prior.baseAc + 2","tree":{"type":"binary","op":"+","left":{"type":"name","path":["prior","baseAc"]},"right":{"type":"int","value":2}}},"prior.bonusAccess + 1":{"text":"prior.bonusAccess + 1","tree":{"type":"binary","op":"+","left":{"type":"name","path":["prior","bonusAccess"]},"right":{"type":"int","value":1}}},"prior.cost + 1000":{"text":"prior.cost + 1000","tree":{"type":"binary","op":"+","left":{"type":"name","path":["prior","cost"]},"right":{"type":"int","value":1000}}},"prior.cost + 10000":{"text":"prior.cost + 10000","tree":{"type":"binary","op":"+","left":{"type":"name","path":["prior","cost"]},"right":{"type":"int","value":10000}}},"prior.cost + 250":{"text":"prior.cost + 250","tree":{"type":"binary","op":"+","left":{"type":"name","path":["prior","cost"]},"right":{"type":"int","value":250}}},"prior.cost + 2500":{"text":"prior.cost + 2500","tree":{"type":"binary","op":"+","left":{"type":"name","path":["prior","cost"]},"right":{"type":"int","value":2500}}},"prior.cost + 500":{"text":"prior.cost + 500","tree":{"type":"binary","op":"+","left":{"type":"name","path":["prior","cost"]},"right":{"type":"int","value":500}}},"prior.cost + 5000":{"text":"prior.cost + 5000","tree":{"type":"binary","op":"+","left":{"type":"name","path":["prior","cost"]},"right":{"type":"int","value":5000}}},"prior.cost + 8000":{"text":"prior.cost + 8000","tree":{"type":"binary","op":"+","left":{"type":"name","path":["prior","cost"]},"right":{"type":"int","value":8000}}},"prior.cost + floor(base.cost * 0.1)":{"text":"prior.cost + floor(base.cost * 0.1)","tree":{"type":"binary","op":"+","left":{"type":"name","path":["prior","cost"]},"right":{"type":"call","fn":"floor","args":[{"type":"binary","op":"*","left":{"type":"name","path":["base","cost"]},"right":{"type":"decimal","value":0.1}}]}}},"prior.cost + floor(base.cost * 0.2)":{"text":"prior.cost + floor(base.cost * 0.2)","tree":{"type":"binary","op":"+","left":{"type":"name","path":["prior","cost"]},"right":{"type":"call","fn":"floor","args":[{"type":"binary","op":"*","left":{"type":"name","path":["base","cost"]},"right":{"type":"decimal","value":0.2}}]}}},"prior.cost + floor(base.cost * 0.25)":{"text":"prior.cost + floor(base.cost * 0.25)","tree":{"type":"binary","op":"+","left":{"type":"name","path":["prior","cost"]},"right":{"type":"call","fn":"floor","args":[{"type":"binary","op":"*","left":{"type":"name","path":["base","cost"]},"right":{"type":"decimal","value":0.25}}]}}},"prior.cost + floor(base.cost * 0.3)":{"text":"prior.cost + floor(base.cost * 0.3)","tree":{"type":"binary","op":"+","left":{"type":"name","path":["prior","cost"]},"right":{"type":"call","fn":"floor","args":[{"type":"binary","op":"*","left":{"type":"name","path":["base","cost"]},"right":{"type":"decimal","value":0.3}}]}}},"prior.cost + floor(base.cost * 0.5)":{"text":"prior.cost + floor(base.cost * 0.5)","tree":{"type":"binary","op":"+","left":{"type":"name","path":["prior","cost"]},"right":{"type":"call","fn":"floor","args":[{"type":"binary","op":"*","left":{"type":"name","path":["base","cost"]},"right":{"type":"decimal","value":0.5}}]}}},"prior.cpu + 1":{"text":"prior.cpu + 1","tree":{"type":"binary","op":"+","left":{"type":"name","path":["prior","cpu"]},"right":{"type":"int","value":1}}},"prior.crew + (item.size == 'small' ? 1 : item.size == 'medium' ? 2 : 4)":{"text":"prior.crew + (item.size == 'small' ? 1 : item.size == 'medium' ? 2 : 4)","tree":{"type":"binary","op":"+","left":{"type":"name","path":["prior","crew"]},"right":{"type":"conditional","test":{"type":"binary","op":"==","left":{"type":"name","path":["item","size"]},"right":{"type":"string","value":"small"}},"then":{"type":"int","value":1},"else":{"type":"conditional","test":{"type":"binary","op":"==","left":{"type":"name","path":["item","size"]},"right":{"type":"string","value":"medium"}},"then":{"type":"int","value":2},"else":{"type":"int","value":4}}}}},"prior.damageBonus + 1":{"text":"prior.damageBonus + 1","tree":{"type":"binary","op":"+","left":{"type":"name","path":["prior","damageBonus"]},"right":{"type":"int","value":1}}},"prior.damageBonus + 2":{"text":"prior.damageBonus + 2","tree":{"type":"binary","op":"+","left":{"type":"name","path":["prior","damageBonus"]},"right":{"type":"int","value":2}}},"prior.damageBonus + floor(level / 3)":{"text":"prior.damageBonus + floor(level / 3)","tree":{"type":"binary","op":"+","left":{"type":"name","path":["prior","damageBonus"]},"right":{"type":"call","fn":"floor","args":[{"type":"binary","op":"/","left":{"type":"name","path":["level"]},"right":{"type":"int","value":3}}]}}},"prior.damageBonus - 2":{"text":"prior.damageBonus - 2","tree":{"type":"binary","op":"-","left":{"type":"name","path":["prior","damageBonus"]},"right":{"type":"int","value":2}}},"prior.enc + 1":{"text":"prior.enc + 1","tree":{"type":"binary","op":"+","left":{"type":"name","path":["prior","enc"]},"right":{"type":"int","value":1}}},"prior.fittings + 1":{"text":"prior.fittings + 1","tree":{"type":"binary","op":"+","left":{"type":"name","path":["prior","fittings"]},"right":{"type":"int","value":1}}},"prior.fittingsUsed + 1":{"text":"prior.fittingsUsed + 1","tree":{"type":"binary","op":"+","left":{"type":"name","path":["prior","fittingsUsed"]},"right":{"type":"int","value":1}}},"prior.fittingsUsed + 2":{"text":"prior.fittingsUsed + 2","tree":{"type":"binary","op":"+","left":{"type":"name","path":["prior","fittingsUsed"]},"right":{"type":"int","value":2}}},"prior.hardpoints + 1":{"text":"prior.hardpoints + 1","tree":{"type":"binary","op":"+","left":{"type":"name","path":["prior","hardpoints"]},"right":{"type":"int","value":1}}},"prior.heavy + 1":{"text":"prior.heavy + 1","tree":{"type":"binary","op":"+","left":{"type":"name","path":["prior","heavy"]},"right":{"type":"int","value":1}}},"prior.hp + ceil(base.hp * 0.25)":{"text":"prior.hp + ceil(base.hp * 0.25)","tree":{"type":"binary","op":"+","left":{"type":"name","path":["prior","hp"]},"right":{"type":"call","fn":"ceil","args":[{"type":"binary","op":"*","left":{"type":"name","path":["base","hp"]},"right":{"type":"decimal","value":0.25}}]}}},"prior.hp + floor(base.hp * 0.25)":{"text":"prior.hp + floor(base.hp * 0.25)","tree":{"type":"binary","op":"+","left":{"type":"name","path":["prior","hp"]},"right":{"type":"call","fn":"floor","args":[{"type":"binary","op":"*","left":{"type":"name","path":["base","hp"]},"right":{"type":"decimal","value":0.25}}]}}},"prior.magazine * 2":{"text":"prior.magazine * 2","tree":{"type":"binary","op":"*","left":{"type":"name","path":["prior","magazine"]},"right":{"type":"int","value":2}}},"prior.mass + (item.size == 'small' ? 2 : item.size == 'medium' ? 3 : 4)":{"text":"prior.mass + (item.size == 'small' ? 2 : item.size == 'medium' ? 3 : 4)","tree":{"type":"binary","op":"+","left":{"type":"name","path":["prior","mass"]},"right":{"type":"conditional","test":{"type":"binary","op":"==","left":{"type":"name","path":["item","size"]},"right":{"type":"string","value":"small"}},"then":{"type":"int","value":2},"else":{"type":"conditional","test":{"type":"binary","op":"==","left":{"type":"name","path":["item","size"]},"right":{"type":"string","value":"medium"}},"then":{"type":"int","value":3},"else":{"type":"int","value":4}}}}},"prior.massUsed + 1":{"text":"prior.massUsed + 1","tree":{"type":"binary","op":"+","left":{"type":"name","path":["prior","massUsed"]},"right":{"type":"int","value":1}}},"prior.massUsed + 2":{"text":"prior.massUsed + 2","tree":{"type":"binary","op":"+","left":{"type":"name","path":["prior","massUsed"]},"right":{"type":"int","value":2}}},"prior.massUsed + 3":{"text":"prior.massUsed + 3","tree":{"type":"binary","op":"+","left":{"type":"name","path":["prior","massUsed"]},"right":{"type":"int","value":3}}},"prior.massUsed + 4":{"text":"prior.massUsed + 4","tree":{"type":"binary","op":"+","left":{"type":"name","path":["prior","massUsed"]},"right":{"type":"int","value":4}}},"prior.massUsed + 5":{"text":"prior.massUsed + 5","tree":{"type":"binary","op":"+","left":{"type":"name","path":["prior","massUsed"]},"right":{"type":"int","value":5}}},"prior.massUsed + 6":{"text":"prior.massUsed + 6","tree":{"type":"binary","op":"+","left":{"type":"name","path":["prior","massUsed"]},"right":{"type":"int","value":6}}},"prior.meleeAc + 1":{"text":"prior.meleeAc + 1","tree":{"type":"binary","op":"+","left":{"type":"name","path":["prior","meleeAc"]},"right":{"type":"int","value":1}}},"prior.meleeAc + 2":{"text":"prior.meleeAc + 2","tree":{"type":"binary","op":"+","left":{"type":"name","path":["prior","meleeAc"]},"right":{"type":"int","value":2}}},"prior.meleeAc - 2":{"text":"prior.meleeAc - 2","tree":{"type":"binary","op":"-","left":{"type":"name","path":["prior","meleeAc"]},"right":{"type":"int","value":2}}},"prior.memory + 4":{"text":"prior.memory + 4","tree":{"type":"binary","op":"+","left":{"type":"name","path":["prior","memory"]},"right":{"type":"int","value":4}}},"prior.move + 10":{"text":"prior.move + 10","tree":{"type":"binary","op":"+","left":{"type":"name","path":["prior","move"]},"right":{"type":"int","value":10}}},"prior.power + (item.size == 'small' ? 2 : item.size == 'medium' ? 3 : 4)":{"text":"prior.power + (item.size == 'small' ? 2 : item.size == 'medium' ? 3 : 4)","tree":{"type":"binary","op":"+","left":{"type":"name","path":["prior","power"]},"right":{"type":"conditional","test":{"type":"binary","op":"==","left":{"type":"name","path":["item","size"]},"right":{"type":"string","value":"small"}},"then":{"type":"int","value":2},"else":{"type":"conditional","test":{"type":"binary","op":"==","left":{"type":"name","path":["item","size"]},"right":{"type":"string","value":"medium"}},"then":{"type":"int","value":3},"else":{"type":"int","value":4}}}}},"prior.power + 2":{"text":"prior.power + 2","tree":{"type":"binary","op":"+","left":{"type":"name","path":["prior","power"]},"right":{"type":"int","value":2}}},"prior.power + 4":{"text":"prior.power + 4","tree":{"type":"binary","op":"+","left":{"type":"name","path":["prior","power"]},"right":{"type":"int","value":4}}},"prior.power + 8":{"text":"prior.power + 8","tree":{"type":"binary","op":"+","left":{"type":"name","path":["prior","power"]},"right":{"type":"int","value":8}}},"prior.powerUsed + 1":{"text":"prior.powerUsed + 1","tree":{"type":"binary","op":"+","left":{"type":"name","path":["prior","powerUsed"]},"right":{"type":"int","value":1}}},"prior.powerUsed + 2":{"text":"prior.powerUsed + 2","tree":{"type":"binary","op":"+","left":{"type":"name","path":["prior","powerUsed"]},"right":{"type":"int","value":2}}},"prior.rangedAc + 1":{"text":"prior.rangedAc + 1","tree":{"type":"binary","op":"+","left":{"type":"name","path":["prior","rangedAc"]},"right":{"type":"int","value":1}}},"prior.rangedAc + 2":{"text":"prior.rangedAc + 2","tree":{"type":"binary","op":"+","left":{"type":"name","path":["prior","rangedAc"]},"right":{"type":"int","value":2}}},"prior.rangedAc - 2":{"text":"prior.rangedAc - 2","tree":{"type":"binary","op":"-","left":{"type":"name","path":["prior","rangedAc"]},"right":{"type":"int","value":2}}},"prior.shielding + 5":{"text":"prior.shielding + 5","tree":{"type":"binary","op":"+","left":{"type":"name","path":["prior","shielding"]},"right":{"type":"int","value":5}}},"prior.shockBonus + 1":{"text":"prior.shockBonus + 1","tree":{"type":"binary","op":"+","left":{"type":"name","path":["prior","shockBonus"]},"right":{"type":"int","value":1}}},"prior.shockBonus + 2":{"text":"prior.shockBonus + 2","tree":{"type":"binary","op":"+","left":{"type":"name","path":["prior","shockBonus"]},"right":{"type":"int","value":2}}},"prior.shockBonus + floor(level / 3)":{"text":"prior.shockBonus + floor(level / 3)","tree":{"type":"binary","op":"+","left":{"type":"name","path":["prior","shockBonus"]},"right":{"type":"call","fn":"floor","args":[{"type":"binary","op":"/","left":{"type":"name","path":["level"]},"right":{"type":"int","value":3}}]}}},"prior.soak + 3":{"text":"prior.soak + 3","tree":{"type":"binary","op":"+","left":{"type":"name","path":["prior","soak"]},"right":{"type":"int","value":3}}},"prior.soak + 5":{"text":"prior.soak + 5","tree":{"type":"binary","op":"+","left":{"type":"name","path":["prior","soak"]},"right":{"type":"int","value":5}}},"prior.speed + 1":{"text":"prior.speed + 1","tree":{"type":"binary","op":"+","left":{"type":"name","path":["prior","speed"]},"right":{"type":"int","value":1}}},"prior.strain + 0.5":{"text":"prior.strain + 0.5","tree":{"type":"binary","op":"+","left":{"type":"name","path":["prior","strain"]},"right":{"type":"decimal","value":0.5}}},"prior.strain >= 2 ? prior.strain - 1 : prior.strain":{"text":"prior.strain >= 2 ? prior.strain - 1 : prior.strain","tree":{"type":"conditional","test":{"type":"binary","op":">=","left":{"type":"name","path":["prior","strain"]},"right":{"type":"int","value":2}},"then":{"type":"binary","op":"-","left":{"type":"name","path":["prior","strain"]},"right":{"type":"int","value":1}},"else":{"type":"name","path":["prior","strain"]}}},"prior.traumaMod + 1":{"text":"prior.traumaMod + 1","tree":{"type":"binary","op":"+","left":{"type":"name","path":["prior","traumaMod"]},"right":{"type":"int","value":1}}},"roll.kept[0] == 1":{"text":"roll.kept[0] == 1","tree":{"type":"binary","op":"==","left":{"type":"index","object":{"type":"name","path":["roll","kept"]},"index":{"type":"int","value":0}},"right":{"type":"int","value":1}}},"roll.kept[0] == 20 || roll.total >= flags.target":{"text":"roll.kept[0] == 20 || roll.total >= flags.target","tree":{"type":"binary","op":"||","left":{"type":"binary","op":"==","left":{"type":"index","object":{"type":"name","path":["roll","kept"]},"index":{"type":"int","value":0}},"right":{"type":"int","value":20}},"right":{"type":"binary","op":">=","left":{"type":"name","path":["roll","total"]},"right":{"type":"name","path":["flags","target"]}}}},"roll.total < 0":{"text":"roll.total < 0","tree":{"type":"binary","op":"<","left":{"type":"name","path":["roll","total"]},"right":{"type":"int","value":0}}},"roll.total <= 1":{"text":"roll.total <= 1","tree":{"type":"binary","op":"<=","left":{"type":"name","path":["roll","total"]},"right":{"type":"int","value":1}}},"roll.total <= 15":{"text":"roll.total <= 15","tree":{"type":"binary","op":"<=","left":{"type":"name","path":["roll","total"]},"right":{"type":"int","value":15}}},"roll.total <= 19":{"text":"roll.total <= 19","tree":{"type":"binary","op":"<=","left":{"type":"name","path":["roll","total"]},"right":{"type":"int","value":19}}},"roll.total <= 4":{"text":"roll.total <= 4","tree":{"type":"binary","op":"<=","left":{"type":"name","path":["roll","total"]},"right":{"type":"int","value":4}}},"roll.total <= 8":{"text":"roll.total <= 8","tree":{"type":"binary","op":"<=","left":{"type":"name","path":["roll","total"]},"right":{"type":"int","value":8}}},"roll.total == 0":{"text":"roll.total == 0","tree":{"type":"binary","op":"==","left":{"type":"name","path":["roll","total"]},"right":{"type":"int","value":0}}},"roll.total == 1":{"text":"roll.total == 1","tree":{"type":"binary","op":"==","left":{"type":"name","path":["roll","total"]},"right":{"type":"int","value":1}}},"roll.total == 10":{"text":"roll.total == 10","tree":{"type":"binary","op":"==","left":{"type":"name","path":["roll","total"]},"right":{"type":"int","value":10}}},"roll.total == 2":{"text":"roll.total == 2","tree":{"type":"binary","op":"==","left":{"type":"name","path":["roll","total"]},"right":{"type":"int","value":2}}},"roll.total == 3":{"text":"roll.total == 3","tree":{"type":"binary","op":"==","left":{"type":"name","path":["roll","total"]},"right":{"type":"int","value":3}}},"roll.total == 4":{"text":"roll.total == 4","tree":{"type":"binary","op":"==","left":{"type":"name","path":["roll","total"]},"right":{"type":"int","value":4}}},"roll.total == 5":{"text":"roll.total == 5","tree":{"type":"binary","op":"==","left":{"type":"name","path":["roll","total"]},"right":{"type":"int","value":5}}},"roll.total == 6":{"text":"roll.total == 6","tree":{"type":"binary","op":"==","left":{"type":"name","path":["roll","total"]},"right":{"type":"int","value":6}}},"roll.total == 7":{"text":"roll.total == 7","tree":{"type":"binary","op":"==","left":{"type":"name","path":["roll","total"]},"right":{"type":"int","value":7}}},"roll.total == 8":{"text":"roll.total == 8","tree":{"type":"binary","op":"==","left":{"type":"name","path":["roll","total"]},"right":{"type":"int","value":8}}},"roll.total == 9":{"text":"roll.total == 9","tree":{"type":"binary","op":"==","left":{"type":"name","path":["roll","total"]},"right":{"type":"int","value":9}}},"roll.total >= flags.ac":{"text":"roll.total >= flags.ac","tree":{"type":"binary","op":">=","left":{"type":"name","path":["roll","total"]},"right":{"type":"name","path":["flags","ac"]}}},"roll.total >= flags.dc":{"text":"roll.total >= flags.dc","tree":{"type":"binary","op":">=","left":{"type":"name","path":["roll","total"]},"right":{"type":"name","path":["flags","dc"]}}},"roll.total >= flags.traumaTarget":{"text":"roll.total >= flags.traumaTarget","tree":{"type":"binary","op":">=","left":{"type":"name","path":["roll","total"]},"right":{"type":"name","path":["flags","traumaTarget"]}}},"self.bond == 'friend' ? 0 : 1":{"text":"self.bond == 'friend' ? 0 : 1","tree":{"type":"conditional","test":{"type":"binary","op":"==","left":{"type":"name","path":["self","bond"]},"right":{"type":"string","value":"friend"}},"then":{"type":"int","value":0},"else":{"type":"int","value":1}}},"self.cost + (self.ritual ? 0 : params.earlier)":{"text":"self.cost + (self.ritual ? 0 : params.earlier)","tree":{"type":"binary","op":"+","left":{"type":"name","path":["self","cost"]},"right":{"type":"conditional","test":{"type":"name","path":["self","ritual"]},"then":{"type":"int","value":0},"else":{"type":"name","path":["params","earlier"]}}}},"self.equipped":{"text":"self.equipped","tree":{"type":"name","path":["self","equipped"]}},"self.equipped && cyber.plugJack >= (pick.value in ['drive', 'exert', 'perform', 'punch', 'shoot', 'sneak', 'stab'] ? 2 : 1)":{"text":"self.equipped && cyber.plugJack >= (pick.value in ['drive', 'exert', 'perform', 'punch', 'shoot', 'sneak', 'stab'] ? 2 : 1)","tree":{"type":"binary","op":"&&","left":{"type":"name","path":["self","equipped"]},"right":{"type":"binary","op":">=","left":{"type":"name","path":["cyber","plugJack"]},"right":{"type":"conditional","test":{"type":"binary","op":"in","left":{"type":"name","path":["pick","value"]},"right":{"type":"list","items":[{"type":"string","value":"drive"},{"type":"string","value":"exert"},{"type":"string","value":"perform"},{"type":"string","value":"punch"},{"type":"string","value":"shoot"},{"type":"string","value":"sneak"},{"type":"string","value":"stab"}]}},"then":{"type":"int","value":2},"else":{"type":"int","value":1}}}}},"self.equipped && cyber.plugJack >= (pick.value in ['drive', 'exert', 'perform', 'punch', 'shoot', 'sneak', 'stab'] ? 2 : 1) && cyber.plugWiring":{"text":"self.equipped && cyber.plugJack >= (pick.value in ['drive', 'exert', 'perform', 'punch', 'shoot', 'sneak', 'stab'] ? 2 : 1) && cyber.plugWiring","tree":{"type":"binary","op":"&&","left":{"type":"binary","op":"&&","left":{"type":"name","path":["self","equipped"]},"right":{"type":"binary","op":">=","left":{"type":"name","path":["cyber","plugJack"]},"right":{"type":"conditional","test":{"type":"binary","op":"in","left":{"type":"name","path":["pick","value"]},"right":{"type":"list","items":[{"type":"string","value":"drive"},{"type":"string","value":"exert"},{"type":"string","value":"perform"},{"type":"string","value":"punch"},{"type":"string","value":"shoot"},{"type":"string","value":"sneak"},{"type":"string","value":"stab"}]}},"then":{"type":"int","value":2},"else":{"type":"int","value":1}}}},"right":{"type":"name","path":["cyber","plugWiring"]}}},"self.equipped && item.kind != 'shield'":{"text":"self.equipped && item.kind != 'shield'","tree":{"type":"binary","op":"&&","left":{"type":"name","path":["self","equipped"]},"right":{"type":"binary","op":"!=","left":{"type":"name","path":["item","kind"]},"right":{"type":"string","value":"shield"}}}},"self.equipped && item.kind == 'shield'":{"text":"self.equipped && item.kind == 'shield'","tree":{"type":"binary","op":"&&","left":{"type":"name","path":["self","equipped"]},"right":{"type":"binary","op":"==","left":{"type":"name","path":["item","kind"]},"right":{"type":"string","value":"shield"}}}},"self.equipped && item.shielding > self.shieldingUsed && incoming.amount < 0":{"text":"self.equipped && item.shielding > self.shieldingUsed && incoming.amount < 0","tree":{"type":"binary","op":"&&","left":{"type":"binary","op":"&&","left":{"type":"name","path":["self","equipped"]},"right":{"type":"binary","op":">","left":{"type":"name","path":["item","shielding"]},"right":{"type":"name","path":["self","shieldingUsed"]}}},"right":{"type":"binary","op":"<","left":{"type":"name","path":["incoming","amount"]},"right":{"type":"int","value":0}}}},"self.equipped && item.soak > self.soakUsed && incoming.amount < 0\n && !('damage.cyberspace' in incoming.tags) && !('damage.direct' in incoming.tags)":{"text":"self.equipped && item.soak > self.soakUsed && incoming.amount < 0 && !('damage.cyberspace' in incoming.tags) && !('damage.direct' in incoming.tags)","tree":{"type":"binary","op":"&&","left":{"type":"binary","op":"&&","left":{"type":"binary","op":"&&","left":{"type":"binary","op":"&&","left":{"type":"name","path":["self","equipped"]},"right":{"type":"binary","op":">","left":{"type":"name","path":["item","soak"]},"right":{"type":"name","path":["self","soakUsed"]}}},"right":{"type":"binary","op":"<","left":{"type":"name","path":["incoming","amount"]},"right":{"type":"int","value":0}}},"right":{"type":"unary","op":"!","operand":{"type":"binary","op":"in","left":{"type":"string","value":"damage.cyberspace"},"right":{"type":"name","path":["incoming","tags"]}}}},"right":{"type":"unary","op":"!","operand":{"type":"binary","op":"in","left":{"type":"string","value":"damage.direct"},"right":{"type":"name","path":["incoming","tags"]}}}}},"self.equipped && item.traumaMod != 0":{"text":"self.equipped && item.traumaMod != 0","tree":{"type":"binary","op":"&&","left":{"type":"name","path":["self","equipped"]},"right":{"type":"binary","op":"!=","left":{"type":"name","path":["item","traumaMod"]},"right":{"type":"int","value":0}}}},"self.level < item.maxLevel":{"text":"self.level < item.maxLevel","tree":{"type":"binary","op":"<","left":{"type":"name","path":["self","level"]},"right":{"type":"name","path":["item","maxLevel"]}}},"self.level >= 2":{"text":"self.level >= 2","tree":{"type":"binary","op":">=","left":{"type":"name","path":["self","level"]},"right":{"type":"int","value":2}}},"self.level >= 2 ? 2 : 1":{"text":"self.level >= 2 ? 2 : 1","tree":{"type":"conditional","test":{"type":"binary","op":">=","left":{"type":"name","path":["self","level"]},"right":{"type":"int","value":2}},"then":{"type":"int","value":2},"else":{"type":"int","value":1}}},"self.prepared ? 0 : 1":{"text":"self.prepared ? 0 : 1","tree":{"type":"conditional","test":{"type":"name","path":["self","prepared"]},"then":{"type":"int","value":0},"else":{"type":"int","value":1}}},"self.quantity > 0":{"text":"self.quantity > 0","tree":{"type":"binary","op":">","left":{"type":"name","path":["self","quantity"]},"right":{"type":"int","value":0}}},"self.shieldingUsed > 0":{"text":"self.shieldingUsed > 0","tree":{"type":"binary","op":">","left":{"type":"name","path":["self","shieldingUsed"]},"right":{"type":"int","value":0}}},"self.soakUsed > 0":{"text":"self.soakUsed > 0","tree":{"type":"binary","op":">","left":{"type":"name","path":["self","soakUsed"]},"right":{"type":"int","value":0}}},"situational.bonusRoll != 'none' && arts.bonusRolls.used < arts.bonusRolls.max\n && (situational.bonusRoll == 'hit' || flags.hit)":{"text":"situational.bonusRoll != 'none' && arts.bonusRolls.used < arts.bonusRolls.max && (situational.bonusRoll == 'hit' || flags.hit)","tree":{"type":"binary","op":"&&","left":{"type":"binary","op":"&&","left":{"type":"binary","op":"!=","left":{"type":"name","path":["situational","bonusRoll"]},"right":{"type":"string","value":"none"}},"right":{"type":"binary","op":"<","left":{"type":"name","path":["arts","bonusRolls","used"]},"right":{"type":"name","path":["arts","bonusRolls","max"]}}},"right":{"type":"binary","op":"||","left":{"type":"binary","op":"==","left":{"type":"name","path":["situational","bonusRoll"]},"right":{"type":"string","value":"hit"}},"right":{"type":"name","path":["flags","hit"]}}}},"situational.bonusRoll == 'damage' && arts.bonusRolls.used < arts.bonusRolls.max":{"text":"situational.bonusRoll == 'damage' && arts.bonusRolls.used < arts.bonusRolls.max","tree":{"type":"binary","op":"&&","left":{"type":"binary","op":"==","left":{"type":"name","path":["situational","bonusRoll"]},"right":{"type":"string","value":"damage"}},"right":{"type":"binary","op":"<","left":{"type":"name","path":["arts","bonusRolls","used"]},"right":{"type":"name","path":["arts","bonusRolls","max"]}}}},"situational.bonusRoll == 'hit' && arts.bonusRolls.used < arts.bonusRolls.max":{"text":"situational.bonusRoll == 'hit' && arts.bonusRolls.used < arts.bonusRolls.max","tree":{"type":"binary","op":"&&","left":{"type":"binary","op":"==","left":{"type":"name","path":["situational","bonusRoll"]},"right":{"type":"string","value":"hit"}},"right":{"type":"binary","op":"<","left":{"type":"name","path":["arts","bonusRolls","used"]},"right":{"type":"name","path":["arts","bonusRolls","max"]}}}},"situational.versusMagic":{"text":"situational.versusMagic","tree":{"type":"name","path":["situational","versusMagic"]}},"size(flags.best) > 0 && flags.best[0] == 'cha' ? flags.amount : 0":{"text":"size(flags.best) > 0 && flags.best[0] == 'cha' ? flags.amount : 0","tree":{"type":"conditional","test":{"type":"binary","op":"&&","left":{"type":"binary","op":">","left":{"type":"call","fn":"size","args":[{"type":"name","path":["flags","best"]}]},"right":{"type":"int","value":0}},"right":{"type":"binary","op":"==","left":{"type":"index","object":{"type":"name","path":["flags","best"]},"index":{"type":"int","value":0}},"right":{"type":"string","value":"cha"}}},"then":{"type":"name","path":["flags","amount"]},"else":{"type":"int","value":0}}},"size(flags.best) > 0 && flags.best[0] == 'con' ? flags.amount : 0":{"text":"size(flags.best) > 0 && flags.best[0] == 'con' ? flags.amount : 0","tree":{"type":"conditional","test":{"type":"binary","op":"&&","left":{"type":"binary","op":">","left":{"type":"call","fn":"size","args":[{"type":"name","path":["flags","best"]}]},"right":{"type":"int","value":0}},"right":{"type":"binary","op":"==","left":{"type":"index","object":{"type":"name","path":["flags","best"]},"index":{"type":"int","value":0}},"right":{"type":"string","value":"con"}}},"then":{"type":"name","path":["flags","amount"]},"else":{"type":"int","value":0}}},"size(flags.best) > 0 && flags.best[0] == 'dex' ? flags.amount : 0":{"text":"size(flags.best) > 0 && flags.best[0] == 'dex' ? flags.amount : 0","tree":{"type":"conditional","test":{"type":"binary","op":"&&","left":{"type":"binary","op":">","left":{"type":"call","fn":"size","args":[{"type":"name","path":["flags","best"]}]},"right":{"type":"int","value":0}},"right":{"type":"binary","op":"==","left":{"type":"index","object":{"type":"name","path":["flags","best"]},"index":{"type":"int","value":0}},"right":{"type":"string","value":"dex"}}},"then":{"type":"name","path":["flags","amount"]},"else":{"type":"int","value":0}}},"size(flags.best) > 0 && flags.best[0] == 'int' ? flags.amount : 0":{"text":"size(flags.best) > 0 && flags.best[0] == 'int' ? flags.amount : 0","tree":{"type":"conditional","test":{"type":"binary","op":"&&","left":{"type":"binary","op":">","left":{"type":"call","fn":"size","args":[{"type":"name","path":["flags","best"]}]},"right":{"type":"int","value":0}},"right":{"type":"binary","op":"==","left":{"type":"index","object":{"type":"name","path":["flags","best"]},"index":{"type":"int","value":0}},"right":{"type":"string","value":"int"}}},"then":{"type":"name","path":["flags","amount"]},"else":{"type":"int","value":0}}},"size(flags.best) > 0 && flags.best[0] == 'str' ? flags.amount : 0":{"text":"size(flags.best) > 0 && flags.best[0] == 'str' ? flags.amount : 0","tree":{"type":"conditional","test":{"type":"binary","op":"&&","left":{"type":"binary","op":">","left":{"type":"call","fn":"size","args":[{"type":"name","path":["flags","best"]}]},"right":{"type":"int","value":0}},"right":{"type":"binary","op":"==","left":{"type":"index","object":{"type":"name","path":["flags","best"]},"index":{"type":"int","value":0}},"right":{"type":"string","value":"str"}}},"then":{"type":"name","path":["flags","amount"]},"else":{"type":"int","value":0}}},"size(flags.best) > 0 && flags.best[0] == 'wis' ? flags.amount : 0":{"text":"size(flags.best) > 0 && flags.best[0] == 'wis' ? flags.amount : 0","tree":{"type":"conditional","test":{"type":"binary","op":"&&","left":{"type":"binary","op":">","left":{"type":"call","fn":"size","args":[{"type":"name","path":["flags","best"]}]},"right":{"type":"int","value":0}},"right":{"type":"binary","op":"==","left":{"type":"index","object":{"type":"name","path":["flags","best"]},"index":{"type":"int","value":0}},"right":{"type":"string","value":"wis"}}},"then":{"type":"name","path":["flags","amount"]},"else":{"type":"int","value":0}}},"size(flags.candidates) == 0":{"text":"size(flags.candidates) == 0","tree":{"type":"binary","op":"==","left":{"type":"call","fn":"size","args":[{"type":"name","path":["flags","candidates"]}]},"right":{"type":"int","value":0}}},"size(flags.candidates) > 1":{"text":"size(flags.candidates) > 1","tree":{"type":"binary","op":">","left":{"type":"call","fn":"size","args":[{"type":"name","path":["flags","candidates"]}]},"right":{"type":"int","value":1}}},"size(participants.target) > 0 ? participants.target[0].ac.melee\n : has(params.targetAc) ? params.targetAc : -1":{"text":"size(participants.target) > 0 ? participants.target[0].ac.melee : has(params.targetAc) ? params.targetAc : -1","tree":{"type":"conditional","test":{"type":"binary","op":">","left":{"type":"call","fn":"size","args":[{"type":"name","path":["participants","target"]}]},"right":{"type":"int","value":0}},"then":{"type":"member","object":{"type":"member","object":{"type":"index","object":{"type":"name","path":["participants","target"]},"index":{"type":"int","value":0}},"name":"ac"},"name":"melee"},"else":{"type":"conditional","test":{"type":"call","fn":"has","args":[{"type":"name","path":["params","targetAc"]}]},"then":{"type":"name","path":["params","targetAc"]},"else":{"type":"unary","op":"-","operand":{"type":"int","value":1}}}}},"size(participants.target) > 0 ? participants.target[0].trauma.target\n : has(params.targetTrauma) ? params.targetTrauma : 6":{"text":"size(participants.target) > 0 ? participants.target[0].trauma.target : has(params.targetTrauma) ? params.targetTrauma : 6","tree":{"type":"conditional","test":{"type":"binary","op":">","left":{"type":"call","fn":"size","args":[{"type":"name","path":["participants","target"]}]},"right":{"type":"int","value":0}},"then":{"type":"member","object":{"type":"member","object":{"type":"index","object":{"type":"name","path":["participants","target"]},"index":{"type":"int","value":0}},"name":"trauma"},"name":"target"},"else":{"type":"conditional","test":{"type":"call","fn":"has","args":[{"type":"name","path":["params","targetTrauma"]}]},"then":{"type":"name","path":["params","targetTrauma"]},"else":{"type":"int","value":6}}}},"size(steps.edge.item.startingCyber) > 0\n && strain.total + steps.edge.item.startingCyberStrain <= strain.max && !magic.graced":{"text":"size(steps.edge.item.startingCyber) > 0 && strain.total + steps.edge.item.startingCyberStrain <= strain.max && !magic.graced","tree":{"type":"binary","op":"&&","left":{"type":"binary","op":"&&","left":{"type":"binary","op":">","left":{"type":"call","fn":"size","args":[{"type":"name","path":["steps","edge","item","startingCyber"]}]},"right":{"type":"int","value":0}},"right":{"type":"binary","op":"<=","left":{"type":"binary","op":"+","left":{"type":"name","path":["strain","total"]},"right":{"type":"name","path":["steps","edge","item","startingCyberStrain"]}},"right":{"type":"name","path":["strain","max"]}}},"right":{"type":"unary","op":"!","operand":{"type":"name","path":["magic","graced"]}}}},"size(steps.edge.item.startingItems) > 0 || steps.edge.item.friendContacts > 0":{"text":"size(steps.edge.item.startingItems) > 0 || steps.edge.item.friendContacts > 0","tree":{"type":"binary","op":"||","left":{"type":"binary","op":">","left":{"type":"call","fn":"size","args":[{"type":"name","path":["steps","edge","item","startingItems"]}]},"right":{"type":"int","value":0}},"right":{"type":"binary","op":">","left":{"type":"name","path":["steps","edge","item","friendContacts"]},"right":{"type":"int","value":0}}}},"skillPoints.perLevel":{"text":"skillPoints.perLevel","tree":{"type":"name","path":["skillPoints","perLevel"]}},"skillPoints.unspent >= advancement.attributeBoosts + 1\n && level >= [1, 1, 3, 6, 9][advancement.attributeBoosts]\n && fieldOf('attributes.{attribute}.base', params.attribute) < 18":{"text":"skillPoints.unspent >= advancement.attributeBoosts + 1 && level >= [1, 1, 3, 6, 9][advancement.attributeBoosts] && fieldOf('attributes.{attribute}.base', params.attribute) < 18","tree":{"type":"binary","op":"&&","left":{"type":"binary","op":"&&","left":{"type":"binary","op":">=","left":{"type":"name","path":["skillPoints","unspent"]},"right":{"type":"binary","op":"+","left":{"type":"name","path":["advancement","attributeBoosts"]},"right":{"type":"int","value":1}}},"right":{"type":"binary","op":">=","left":{"type":"name","path":["level"]},"right":{"type":"index","object":{"type":"list","items":[{"type":"int","value":1},{"type":"int","value":1},{"type":"int","value":3},{"type":"int","value":6},{"type":"int","value":9}]},"index":{"type":"name","path":["advancement","attributeBoosts"]}}}},"right":{"type":"binary","op":"<","left":{"type":"call","fn":"fieldOf","args":[{"type":"string","value":"attributes.{attribute}.base"},{"type":"name","path":["params","attribute"]}]},"right":{"type":"int","value":18}}}},"skills.administer.base":{"text":"skills.administer.base","tree":{"type":"name","path":["skills","administer","base"]}},"skills.administer.credit > 0":{"text":"skills.administer.credit > 0","tree":{"type":"binary","op":">","left":{"type":"name","path":["skills","administer","credit"]},"right":{"type":"int","value":0}}},"skills.cast.base":{"text":"skills.cast.base","tree":{"type":"name","path":["skills","cast","base"]}},"skills.cast.credit > 0":{"text":"skills.cast.credit > 0","tree":{"type":"binary","op":">","left":{"type":"name","path":["skills","cast","credit"]},"right":{"type":"int","value":0}}},"skills.connect.base":{"text":"skills.connect.base","tree":{"type":"name","path":["skills","connect","base"]}},"skills.connect.credit > 0":{"text":"skills.connect.credit > 0","tree":{"type":"binary","op":">","left":{"type":"name","path":["skills","connect","credit"]},"right":{"type":"int","value":0}}},"skills.drive.base":{"text":"skills.drive.base","tree":{"type":"name","path":["skills","drive","base"]}},"skills.drive.credit > 0":{"text":"skills.drive.credit > 0","tree":{"type":"binary","op":">","left":{"type":"name","path":["skills","drive","credit"]},"right":{"type":"int","value":0}}},"skills.exert.base":{"text":"skills.exert.base","tree":{"type":"name","path":["skills","exert","base"]}},"skills.exert.credit > 0":{"text":"skills.exert.credit > 0","tree":{"type":"binary","op":">","left":{"type":"name","path":["skills","exert","credit"]},"right":{"type":"int","value":0}}},"skills.fix.base":{"text":"skills.fix.base","tree":{"type":"name","path":["skills","fix","base"]}},"skills.fix.credit > 0":{"text":"skills.fix.credit > 0","tree":{"type":"binary","op":">","left":{"type":"name","path":["skills","fix","credit"]},"right":{"type":"int","value":0}}},"skills.heal.base":{"text":"skills.heal.base","tree":{"type":"name","path":["skills","heal","base"]}},"skills.heal.credit > 0":{"text":"skills.heal.credit > 0","tree":{"type":"binary","op":">","left":{"type":"name","path":["skills","heal","credit"]},"right":{"type":"int","value":0}}},"skills.know.base":{"text":"skills.know.base","tree":{"type":"name","path":["skills","know","base"]}},"skills.know.credit > 0":{"text":"skills.know.credit > 0","tree":{"type":"binary","op":">","left":{"type":"name","path":["skills","know","credit"]},"right":{"type":"int","value":0}}},"skills.lead.base":{"text":"skills.lead.base","tree":{"type":"name","path":["skills","lead","base"]}},"skills.lead.credit > 0":{"text":"skills.lead.credit > 0","tree":{"type":"binary","op":">","left":{"type":"name","path":["skills","lead","credit"]},"right":{"type":"int","value":0}}},"skills.notice.base":{"text":"skills.notice.base","tree":{"type":"name","path":["skills","notice","base"]}},"skills.notice.credit > 0":{"text":"skills.notice.credit > 0","tree":{"type":"binary","op":">","left":{"type":"name","path":["skills","notice","credit"]},"right":{"type":"int","value":0}}},"skills.perform.base":{"text":"skills.perform.base","tree":{"type":"name","path":["skills","perform","base"]}},"skills.perform.credit > 0":{"text":"skills.perform.credit > 0","tree":{"type":"binary","op":">","left":{"type":"name","path":["skills","perform","credit"]},"right":{"type":"int","value":0}}},"skills.program.base":{"text":"skills.program.base","tree":{"type":"name","path":["skills","program","base"]}},"skills.program.base >= 0 || hacking.memory.max > 0 || hacking.cpu > 0":{"text":"skills.program.base >= 0 || hacking.memory.max > 0 || hacking.cpu > 0","tree":{"type":"binary","op":"||","left":{"type":"binary","op":"||","left":{"type":"binary","op":">=","left":{"type":"name","path":["skills","program","base"]},"right":{"type":"int","value":0}},"right":{"type":"binary","op":">","left":{"type":"name","path":["hacking","memory","max"]},"right":{"type":"int","value":0}}},"right":{"type":"binary","op":">","left":{"type":"name","path":["hacking","cpu"]},"right":{"type":"int","value":0}}}},"skills.program.credit > 0":{"text":"skills.program.credit > 0","tree":{"type":"binary","op":">","left":{"type":"name","path":["skills","program","credit"]},"right":{"type":"int","value":0}}},"skills.program.level >= 1 ? 2 * skills.program.level : 0":{"text":"skills.program.level >= 1 ? 2 * skills.program.level : 0","tree":{"type":"conditional","test":{"type":"binary","op":">=","left":{"type":"name","path":["skills","program","level"]},"right":{"type":"int","value":1}},"then":{"type":"binary","op":"*","left":{"type":"int","value":2},"right":{"type":"name","path":["skills","program","level"]}},"else":{"type":"int","value":0}}},"skills.punch.base":{"text":"skills.punch.base","tree":{"type":"name","path":["skills","punch","base"]}},"skills.punch.credit > 0":{"text":"skills.punch.credit > 0","tree":{"type":"binary","op":">","left":{"type":"name","path":["skills","punch","credit"]},"right":{"type":"int","value":0}}},"skills.punch.level":{"text":"skills.punch.level","tree":{"type":"name","path":["skills","punch","level"]}},"skills.shoot.base":{"text":"skills.shoot.base","tree":{"type":"name","path":["skills","shoot","base"]}},"skills.shoot.credit > 0":{"text":"skills.shoot.credit > 0","tree":{"type":"binary","op":">","left":{"type":"name","path":["skills","shoot","credit"]},"right":{"type":"int","value":0}}},"skills.sneak.base":{"text":"skills.sneak.base","tree":{"type":"name","path":["skills","sneak","base"]}},"skills.sneak.credit > 0":{"text":"skills.sneak.credit > 0","tree":{"type":"binary","op":">","left":{"type":"name","path":["skills","sneak","credit"]},"right":{"type":"int","value":0}}},"skills.stab.base":{"text":"skills.stab.base","tree":{"type":"name","path":["skills","stab","base"]}},"skills.stab.credit > 0":{"text":"skills.stab.credit > 0","tree":{"type":"binary","op":">","left":{"type":"name","path":["skills","stab","credit"]},"right":{"type":"int","value":0}}},"skills.summon.base":{"text":"skills.summon.base","tree":{"type":"name","path":["skills","summon","base"]}},"skills.summon.credit > 0":{"text":"skills.summon.credit > 0","tree":{"type":"binary","op":">","left":{"type":"name","path":["skills","summon","credit"]},"right":{"type":"int","value":0}}},"skills.survive.base":{"text":"skills.survive.base","tree":{"type":"name","path":["skills","survive","base"]}},"skills.survive.credit > 0":{"text":"skills.survive.credit > 0","tree":{"type":"binary","op":">","left":{"type":"name","path":["skills","survive","credit"]},"right":{"type":"int","value":0}}},"skills.talk.base":{"text":"skills.talk.base","tree":{"type":"name","path":["skills","talk","base"]}},"skills.talk.credit > 0":{"text":"skills.talk.credit > 0","tree":{"type":"binary","op":">","left":{"type":"name","path":["skills","talk","credit"]},"right":{"type":"int","value":0}}},"skills.trade.base":{"text":"skills.trade.base","tree":{"type":"name","path":["skills","trade","base"]}},"skills.trade.credit > 0":{"text":"skills.trade.credit > 0","tree":{"type":"binary","op":">","left":{"type":"name","path":["skills","trade","credit"]},"right":{"type":"int","value":0}}},"skills.work.base":{"text":"skills.work.base","tree":{"type":"name","path":["skills","work","base"]}},"skills.work.credit > 0":{"text":"skills.work.credit > 0","tree":{"type":"binary","op":">","left":{"type":"name","path":["skills","work","credit"]},"right":{"type":"int","value":0}}},"slot < 5 || level >= 5":{"text":"slot < 5 || level >= 5","tree":{"type":"binary","op":"||","left":{"type":"binary","op":"<","left":{"type":"name","path":["slot"]},"right":{"type":"int","value":5}},"right":{"type":"binary","op":">=","left":{"type":"name","path":["level"]},"right":{"type":"int","value":5}}}},"soak.max > 0":{"text":"soak.max > 0","tree":{"type":"binary","op":">","left":{"type":"name","path":["soak","max"]},"right":{"type":"int","value":0}}},"sortList(filterList(flags.group,\n fieldOf('attributes.{attribute}.base', x) <= 18 - flags.amount),\n -fieldOf('attributes.{attribute}.base', x))":{"text":"sortList(filterList(flags.group, fieldOf('attributes.{attribute}.base', x) <= 18 - flags.amount), -fieldOf('attributes.{attribute}.base', x))","tree":{"type":"call","fn":"sortList","args":[{"type":"call","fn":"filterList","args":[{"type":"name","path":["flags","group"]},{"type":"binary","op":"<=","left":{"type":"call","fn":"fieldOf","args":[{"type":"string","value":"attributes.{attribute}.base"},{"type":"name","path":["x"]}]},"right":{"type":"binary","op":"-","left":{"type":"int","value":18},"right":{"type":"name","path":["flags","amount"]}}}]},{"type":"unary","op":"-","operand":{"type":"call","fn":"fieldOf","args":[{"type":"string","value":"attributes.{attribute}.base"},{"type":"name","path":["x"]}]}}]}},"spells.preparedMax":{"text":"spells.preparedMax","tree":{"type":"name","path":["spells","preparedMax"]}},"steps.add.added[0]":{"text":"steps.add.added[0]","tree":{"type":"index","object":{"type":"name","path":["steps","add","added"]},"index":{"type":"int","value":0}}},"steps.attribute.picked":{"text":"steps.attribute.picked","tree":{"type":"name","path":["steps","attribute","picked"]}},"steps.background.item.freeSkill":{"text":"steps.background.item.freeSkill","tree":{"type":"name","path":["steps","background","item","freeSkill"]}},"steps.cha.total < 14":{"text":"steps.cha.total < 14","tree":{"type":"binary","op":"<","left":{"type":"name","path":["steps","cha","total"]},"right":{"type":"int","value":14}}},"steps.check.total":{"text":"steps.check.total","tree":{"type":"name","path":["steps","check","total"]}},"steps.con.total < 14":{"text":"steps.con.total < 14","tree":{"type":"binary","op":"<","left":{"type":"name","path":["steps","con","total"]},"right":{"type":"int","value":14}}},"steps.dex.total < 14":{"text":"steps.dex.total < 14","tree":{"type":"binary","op":"<","left":{"type":"name","path":["steps","dex","total"]},"right":{"type":"int","value":14}}},"steps.edge.item.asksAttribute":{"text":"steps.edge.item.asksAttribute","tree":{"type":"name","path":["steps","edge","item","asksAttribute"]}},"steps.edge.item.bonusSkill":{"text":"steps.edge.item.bonusSkill","tree":{"type":"name","path":["steps","edge","item","bonusSkill"]}},"steps.edge.item.buysArts":{"text":"steps.edge.item.buysArts","tree":{"type":"name","path":["steps","edge","item","buysArts"]}},"steps.edge.item.cyberBudget > 0":{"text":"steps.edge.item.cyberBudget > 0","tree":{"type":"binary","op":">","left":{"type":"name","path":["steps","edge","item","cyberBudget"]},"right":{"type":"int","value":0}}},"steps.edge.item.extraFocus":{"text":"steps.edge.item.extraFocus","tree":{"type":"name","path":["steps","edge","item","extraFocus"]}},"steps.edge.item.friendContacts > 0":{"text":"steps.edge.item.friendContacts > 0","tree":{"type":"binary","op":">","left":{"type":"name","path":["steps","edge","item","friendContacts"]},"right":{"type":"int","value":0}}},"steps.edge.item.programElements":{"text":"steps.edge.item.programElements","tree":{"type":"name","path":["steps","edge","item","programElements"]}},"steps.edge.item.programElements > 0":{"text":"steps.edge.item.programElements > 0","tree":{"type":"binary","op":">","left":{"type":"name","path":["steps","edge","item","programElements"]},"right":{"type":"int","value":0}}},"steps.edge.item.spells":{"text":"steps.edge.item.spells","tree":{"type":"name","path":["steps","edge","item","spells"]}},"steps.edge.item.spells > 0":{"text":"steps.edge.item.spells > 0","tree":{"type":"binary","op":">","left":{"type":"name","path":["steps","edge","item","spells"]},"right":{"type":"int","value":0}}},"steps.edge.item.startingCyber":{"text":"steps.edge.item.startingCyber","tree":{"type":"name","path":["steps","edge","item","startingCyber"]}},"steps.edge.item.startingItems":{"text":"steps.edge.item.startingItems","tree":{"type":"name","path":["steps","edge","item","startingItems"]}},"steps.focus.item.bonusSkill == 'noncombat' ? steps.specialty.picked : steps.focus.item.bonusSkill":{"text":"steps.focus.item.bonusSkill == 'noncombat' ? steps.specialty.picked : steps.focus.item.bonusSkill","tree":{"type":"conditional","test":{"type":"binary","op":"==","left":{"type":"name","path":["steps","focus","item","bonusSkill"]},"right":{"type":"string","value":"noncombat"}},"then":{"type":"name","path":["steps","specialty","picked"]},"else":{"type":"name","path":["steps","focus","item","bonusSkill"]}}},"steps.focus.item.bonusSkill2":{"text":"steps.focus.item.bonusSkill2","tree":{"type":"name","path":["steps","focus","item","bonusSkill2"]}},"steps.focus.item.gearBudget":{"text":"steps.focus.item.gearBudget","tree":{"type":"name","path":["steps","focus","item","gearBudget"]}},"steps.focus.item.startingCyber":{"text":"steps.focus.item.startingCyber","tree":{"type":"name","path":["steps","focus","item","startingCyber"]}},"steps.focus.item.startingItems":{"text":"steps.focus.item.startingItems","tree":{"type":"name","path":["steps","focus","item","startingItems"]}},"steps.focus.picked":{"text":"steps.focus.picked","tree":{"type":"name","path":["steps","focus","picked"]}},"steps.freeItemKind.picked == 'armor'":{"text":"steps.freeItemKind.picked == 'armor'","tree":{"type":"binary","op":"==","left":{"type":"name","path":["steps","freeItemKind","picked"]},"right":{"type":"string","value":"armor"}}},"steps.freeItemKind.picked == 'cyberdeck'":{"text":"steps.freeItemKind.picked == 'cyberdeck'","tree":{"type":"binary","op":"==","left":{"type":"name","path":["steps","freeItemKind","picked"]},"right":{"type":"string","value":"cyberdeck"}}},"steps.freeItemKind.picked == 'drone'":{"text":"steps.freeItemKind.picked == 'drone'","tree":{"type":"binary","op":"==","left":{"type":"name","path":["steps","freeItemKind","picked"]},"right":{"type":"string","value":"drone"}}},"steps.freeItemKind.picked == 'gear'":{"text":"steps.freeItemKind.picked == 'gear'","tree":{"type":"binary","op":"==","left":{"type":"name","path":["steps","freeItemKind","picked"]},"right":{"type":"string","value":"gear"}}},"steps.freeItemKind.picked == 'weapon'":{"text":"steps.freeItemKind.picked == 'weapon'","tree":{"type":"binary","op":"==","left":{"type":"name","path":["steps","freeItemKind","picked"]},"right":{"type":"string","value":"weapon"}}},"steps.heal.total":{"text":"steps.heal.total","tree":{"type":"name","path":["steps","heal","total"]}},"steps.int.total < 14":{"text":"steps.int.total < 14","tree":{"type":"binary","op":"<","left":{"type":"name","path":["steps","int","total"]},"right":{"type":"int","value":14}}},"steps.method.picked == 'array'":{"text":"steps.method.picked == 'array'","tree":{"type":"binary","op":"==","left":{"type":"name","path":["steps","method","picked"]},"right":{"type":"string","value":"array"}}},"steps.method.picked == 'roll'":{"text":"steps.method.picked == 'roll'","tree":{"type":"binary","op":"==","left":{"type":"name","path":["steps","method","picked"]},"right":{"type":"string","value":"roll"}}},"steps.overcasting.band == 'mortal'":{"text":"steps.overcasting.band == 'mortal'","tree":{"type":"binary","op":"==","left":{"type":"name","path":["steps","overcasting","band"]},"right":{"type":"string","value":"mortal"}}},"steps.overcasting.band == 'unconscious' ? 4 : steps.overcasting.band == 'stunned' ? 2 : 1":{"text":"steps.overcasting.band == 'unconscious' ? 4 : steps.overcasting.band == 'stunned' ? 2 : 1","tree":{"type":"conditional","test":{"type":"binary","op":"==","left":{"type":"name","path":["steps","overcasting","band"]},"right":{"type":"string","value":"unconscious"}},"then":{"type":"int","value":4},"else":{"type":"conditional","test":{"type":"binary","op":"==","left":{"type":"name","path":["steps","overcasting","band"]},"right":{"type":"string","value":"stunned"}},"then":{"type":"int","value":2},"else":{"type":"int","value":1}}}},"steps.pick1.picked":{"text":"steps.pick1.picked","tree":{"type":"name","path":["steps","pick1","picked"]}},"steps.pick2.picked":{"text":"steps.pick2.picked","tree":{"type":"name","path":["steps","pick2","picked"]}},"steps.raised.item.levelTwoSkill":{"text":"steps.raised.item.levelTwoSkill","tree":{"type":"name","path":["steps","raised","item","levelTwoSkill"]}},"steps.roll.band":{"text":"steps.roll.band","tree":{"type":"name","path":["steps","roll","band"]}},"steps.roll.total":{"text":"steps.roll.total","tree":{"type":"name","path":["steps","roll","total"]}},"steps.save.band":{"text":"steps.save.band","tree":{"type":"name","path":["steps","save","band"]}},"steps.save.total":{"text":"steps.save.total","tree":{"type":"name","path":["steps","save","total"]}},"steps.skillMethod.picked == 'pick'":{"text":"steps.skillMethod.picked == 'pick'","tree":{"type":"binary","op":"==","left":{"type":"name","path":["steps","skillMethod","picked"]},"right":{"type":"string","value":"pick"}}},"steps.skillMethod.picked == 'roll'":{"text":"steps.skillMethod.picked == 'roll'","tree":{"type":"binary","op":"==","left":{"type":"name","path":["steps","skillMethod","picked"]},"right":{"type":"string","value":"roll"}}},"steps.skillMethod.picked == 'roll' && !(flags.entry in ['any-stat-1', 'physical-2', 'mental-2'])":{"text":"steps.skillMethod.picked == 'roll' && !(flags.entry in ['any-stat-1', 'physical-2', 'mental-2'])","tree":{"type":"binary","op":"&&","left":{"type":"binary","op":"==","left":{"type":"name","path":["steps","skillMethod","picked"]},"right":{"type":"string","value":"roll"}},"right":{"type":"unary","op":"!","operand":{"type":"binary","op":"in","left":{"type":"name","path":["flags","entry"]},"right":{"type":"list","items":[{"type":"string","value":"any-stat-1"},{"type":"string","value":"physical-2"},{"type":"string","value":"mental-2"}]}}}}},"steps.skillMethod.picked == 'roll' && flags.entry in ['any-stat-1', 'physical-2', 'mental-2']":{"text":"steps.skillMethod.picked == 'roll' && flags.entry in ['any-stat-1', 'physical-2', 'mental-2']","tree":{"type":"binary","op":"&&","left":{"type":"binary","op":"==","left":{"type":"name","path":["steps","skillMethod","picked"]},"right":{"type":"string","value":"roll"}},"right":{"type":"binary","op":"in","left":{"type":"name","path":["flags","entry"]},"right":{"type":"list","items":[{"type":"string","value":"any-stat-1"},{"type":"string","value":"physical-2"},{"type":"string","value":"mental-2"}]}}}},"steps.specialty.picked":{"text":"steps.specialty.picked","tree":{"type":"name","path":["steps","specialty","picked"]}},"steps.str.total < 14":{"text":"steps.str.total < 14","tree":{"type":"binary","op":"<","left":{"type":"name","path":["steps","str","total"]},"right":{"type":"int","value":14}}},"steps.substitute.picked == 'cha' ? 14 : steps.cha.total":{"text":"steps.substitute.picked == 'cha' ? 14 : steps.cha.total","tree":{"type":"conditional","test":{"type":"binary","op":"==","left":{"type":"name","path":["steps","substitute","picked"]},"right":{"type":"string","value":"cha"}},"then":{"type":"int","value":14},"else":{"type":"name","path":["steps","cha","total"]}}},"steps.substitute.picked == 'con' ? 14 : steps.con.total":{"text":"steps.substitute.picked == 'con' ? 14 : steps.con.total","tree":{"type":"conditional","test":{"type":"binary","op":"==","left":{"type":"name","path":["steps","substitute","picked"]},"right":{"type":"string","value":"con"}},"then":{"type":"int","value":14},"else":{"type":"name","path":["steps","con","total"]}}},"steps.substitute.picked == 'dex' ? 14 : steps.dex.total":{"text":"steps.substitute.picked == 'dex' ? 14 : steps.dex.total","tree":{"type":"conditional","test":{"type":"binary","op":"==","left":{"type":"name","path":["steps","substitute","picked"]},"right":{"type":"string","value":"dex"}},"then":{"type":"int","value":14},"else":{"type":"name","path":["steps","dex","total"]}}},"steps.substitute.picked == 'int' ? 14 : steps.int.total":{"text":"steps.substitute.picked == 'int' ? 14 : steps.int.total","tree":{"type":"conditional","test":{"type":"binary","op":"==","left":{"type":"name","path":["steps","substitute","picked"]},"right":{"type":"string","value":"int"}},"then":{"type":"int","value":14},"else":{"type":"name","path":["steps","int","total"]}}},"steps.substitute.picked == 'str' ? 14 : steps.str.total":{"text":"steps.substitute.picked == 'str' ? 14 : steps.str.total","tree":{"type":"conditional","test":{"type":"binary","op":"==","left":{"type":"name","path":["steps","substitute","picked"]},"right":{"type":"string","value":"str"}},"then":{"type":"int","value":14},"else":{"type":"name","path":["steps","str","total"]}}},"steps.substitute.picked == 'wis' ? 14 : steps.wis.total":{"text":"steps.substitute.picked == 'wis' ? 14 : steps.wis.total","tree":{"type":"conditional","test":{"type":"binary","op":"==","left":{"type":"name","path":["steps","substitute","picked"]},"right":{"type":"string","value":"wis"}},"then":{"type":"int","value":14},"else":{"type":"name","path":["steps","wis","total"]}}},"steps.table1.picked == 'growth' ? 1d6 : 1d8":{"text":"steps.table1.picked == 'growth' ? 1d6 : 1d8","tree":{"type":"conditional","test":{"type":"binary","op":"==","left":{"type":"name","path":["steps","table1","picked"]},"right":{"type":"string","value":"growth"}},"then":{"type":"dice","count":1,"sides":6,"modifiers":[]},"else":{"type":"dice","count":1,"sides":8,"modifiers":[]}}},"steps.table1.picked == 'growth' ? flags.growth[steps.roll1.total - 1]\n : flags.learning[steps.roll1.total - 1]":{"text":"steps.table1.picked == 'growth' ? flags.growth[steps.roll1.total - 1] : flags.learning[steps.roll1.total - 1]","tree":{"type":"conditional","test":{"type":"binary","op":"==","left":{"type":"name","path":["steps","table1","picked"]},"right":{"type":"string","value":"growth"}},"then":{"type":"index","object":{"type":"name","path":["flags","growth"]},"index":{"type":"binary","op":"-","left":{"type":"name","path":["steps","roll1","total"]},"right":{"type":"int","value":1}}},"else":{"type":"index","object":{"type":"name","path":["flags","learning"]},"index":{"type":"binary","op":"-","left":{"type":"name","path":["steps","roll1","total"]},"right":{"type":"int","value":1}}}}},"steps.table2.picked == 'growth' ? 1d6 : 1d8":{"text":"steps.table2.picked == 'growth' ? 1d6 : 1d8","tree":{"type":"conditional","test":{"type":"binary","op":"==","left":{"type":"name","path":["steps","table2","picked"]},"right":{"type":"string","value":"growth"}},"then":{"type":"dice","count":1,"sides":6,"modifiers":[]},"else":{"type":"dice","count":1,"sides":8,"modifiers":[]}}},"steps.table2.picked == 'growth' ? flags.growth[steps.roll2.total - 1]\n : flags.learning[steps.roll2.total - 1]":{"text":"steps.table2.picked == 'growth' ? flags.growth[steps.roll2.total - 1] : flags.learning[steps.roll2.total - 1]","tree":{"type":"conditional","test":{"type":"binary","op":"==","left":{"type":"name","path":["steps","table2","picked"]},"right":{"type":"string","value":"growth"}},"then":{"type":"index","object":{"type":"name","path":["flags","growth"]},"index":{"type":"binary","op":"-","left":{"type":"name","path":["steps","roll2","total"]},"right":{"type":"int","value":1}}},"else":{"type":"index","object":{"type":"name","path":["flags","learning"]},"index":{"type":"binary","op":"-","left":{"type":"name","path":["steps","roll2","total"]},"right":{"type":"int","value":1}}}}},"steps.table3.picked == 'growth' ? 1d6 : 1d8":{"text":"steps.table3.picked == 'growth' ? 1d6 : 1d8","tree":{"type":"conditional","test":{"type":"binary","op":"==","left":{"type":"name","path":["steps","table3","picked"]},"right":{"type":"string","value":"growth"}},"then":{"type":"dice","count":1,"sides":6,"modifiers":[]},"else":{"type":"dice","count":1,"sides":8,"modifiers":[]}}},"steps.table3.picked == 'growth' ? flags.growth[steps.roll3.total - 1]\n : flags.learning[steps.roll3.total - 1]":{"text":"steps.table3.picked == 'growth' ? flags.growth[steps.roll3.total - 1] : flags.learning[steps.roll3.total - 1]","tree":{"type":"conditional","test":{"type":"binary","op":"==","left":{"type":"name","path":["steps","table3","picked"]},"right":{"type":"string","value":"growth"}},"then":{"type":"index","object":{"type":"name","path":["flags","growth"]},"index":{"type":"binary","op":"-","left":{"type":"name","path":["steps","roll3","total"]},"right":{"type":"int","value":1}}},"else":{"type":"index","object":{"type":"name","path":["flags","learning"]},"index":{"type":"binary","op":"-","left":{"type":"name","path":["steps","roll3","total"]},"right":{"type":"int","value":1}}}}},"steps.wis.total < 14":{"text":"steps.wis.total < 14","tree":{"type":"binary","op":"<","left":{"type":"name","path":["steps","wis","total"]},"right":{"type":"int","value":14}}},"strain.constitution + lifestyle.strain":{"text":"strain.constitution + lifestyle.strain","tree":{"type":"binary","op":"+","left":{"type":"name","path":["strain","constitution"]},"right":{"type":"name","path":["lifestyle","strain"]}}},"strain.cyberIgnored > 0":{"text":"strain.cyberIgnored > 0","tree":{"type":"binary","op":">","left":{"type":"name","path":["strain","cyberIgnored"]},"right":{"type":"int","value":0}}},"strain.max":{"text":"strain.max","tree":{"type":"name","path":["strain","max"]}},"strain.permanent + strain.temporary":{"text":"strain.permanent + strain.temporary","tree":{"type":"binary","op":"+","left":{"type":"name","path":["strain","permanent"]},"right":{"type":"name","path":["strain","temporary"]}}},"strain.temporary > 0":{"text":"strain.temporary > 0","tree":{"type":"binary","op":">","left":{"type":"name","path":["strain","temporary"]},"right":{"type":"int","value":0}}},"strain.total + 1 <= strain.max":{"text":"strain.total + 1 <= strain.max","tree":{"type":"binary","op":"<=","left":{"type":"binary","op":"+","left":{"type":"name","path":["strain","total"]},"right":{"type":"int","value":1}},"right":{"type":"name","path":["strain","max"]}}},"sumCopies(ceil(copy.fields.strain\n * ((copy.fields.eyeMod && cyber.eyes) || (copy.fields.earMod && cyber.ears) ? 0.5 : 1))\n + (copy.fields.category == 'nerve' ? 2 : 0), copy.type == 'cyberware')":{"text":"sumCopies(ceil(copy.fields.strain * (copy.fields.eyeMod && cyber.eyes || copy.fields.earMod && cyber.ears ? 0.5 : 1)) + (copy.fields.category == 'nerve' ? 2 : 0), copy.type == 'cyberware')","tree":{"type":"call","fn":"sumCopies","args":[{"type":"binary","op":"+","left":{"type":"call","fn":"ceil","args":[{"type":"binary","op":"*","left":{"type":"name","path":["copy","fields","strain"]},"right":{"type":"conditional","test":{"type":"binary","op":"||","left":{"type":"binary","op":"&&","left":{"type":"name","path":["copy","fields","eyeMod"]},"right":{"type":"name","path":["cyber","eyes"]}},"right":{"type":"binary","op":"&&","left":{"type":"name","path":["copy","fields","earMod"]},"right":{"type":"name","path":["cyber","ears"]}}},"then":{"type":"decimal","value":0.5},"else":{"type":"int","value":1}}}]},"right":{"type":"conditional","test":{"type":"binary","op":"==","left":{"type":"name","path":["copy","fields","category"]},"right":{"type":"string","value":"nerve"}},"then":{"type":"int","value":2},"else":{"type":"int","value":0}}},{"type":"binary","op":"==","left":{"type":"name","path":["copy","type"]},"right":{"type":"string","value":"cyberware"}}]}},"sumCopies(copy.fields.cost, copy.type == 'art')":{"text":"sumCopies(copy.fields.cost, copy.type == 'art')","tree":{"type":"call","fn":"sumCopies","args":[{"type":"name","path":["copy","fields","cost"]},{"type":"binary","op":"==","left":{"type":"name","path":["copy","type"]},"right":{"type":"string","value":"art"}}]}},"sumCopies(copy.fields.cost, copy.type == 'cyberware' && copy.state.wired)":{"text":"sumCopies(copy.fields.cost, copy.type == 'cyberware' && copy.state.wired)","tree":{"type":"call","fn":"sumCopies","args":[{"type":"name","path":["copy","fields","cost"]},{"type":"binary","op":"&&","left":{"type":"binary","op":"==","left":{"type":"name","path":["copy","type"]},"right":{"type":"string","value":"cyberware"}},"right":{"type":"name","path":["copy","state","wired"]}}]}},"sumCopies(copy.fields.cost, copy.type == 'drone' && copy.state.focusGear)":{"text":"sumCopies(copy.fields.cost, copy.type == 'drone' && copy.state.focusGear)","tree":{"type":"call","fn":"sumCopies","args":[{"type":"name","path":["copy","fields","cost"]},{"type":"binary","op":"&&","left":{"type":"binary","op":"==","left":{"type":"name","path":["copy","type"]},"right":{"type":"string","value":"drone"}},"right":{"type":"name","path":["copy","state","focusGear"]}}]}},"sumCopies(copy.fields.cost, copy.type == 'vehicle' && copy.state.focusGear)":{"text":"sumCopies(copy.fields.cost, copy.type == 'vehicle' && copy.state.focusGear)","tree":{"type":"call","fn":"sumCopies","args":[{"type":"name","path":["copy","fields","cost"]},{"type":"binary","op":"&&","left":{"type":"binary","op":"==","left":{"type":"name","path":["copy","type"]},"right":{"type":"string","value":"vehicle"}},"right":{"type":"name","path":["copy","state","focusGear"]}}]}},"sumCopies(copy.fields.enc * copy.quantity,\n has(copy.fields.enc) && copy.equipped && !('worn' in copy.tags))":{"text":"sumCopies(copy.fields.enc * copy.quantity, has(copy.fields.enc) && copy.equipped && !('worn' in copy.tags))","tree":{"type":"call","fn":"sumCopies","args":[{"type":"binary","op":"*","left":{"type":"name","path":["copy","fields","enc"]},"right":{"type":"name","path":["copy","quantity"]}},{"type":"binary","op":"&&","left":{"type":"binary","op":"&&","left":{"type":"call","fn":"has","args":[{"type":"name","path":["copy","fields","enc"]}]},"right":{"type":"name","path":["copy","equipped"]}},"right":{"type":"unary","op":"!","operand":{"type":"binary","op":"in","left":{"type":"string","value":"worn"},"right":{"type":"name","path":["copy","tags"]}}}}]}},"sumCopies(copy.fields.enc * copy.quantity, has(copy.fields.enc) && !copy.equipped)":{"text":"sumCopies(copy.fields.enc * copy.quantity, has(copy.fields.enc) && !copy.equipped)","tree":{"type":"call","fn":"sumCopies","args":[{"type":"binary","op":"*","left":{"type":"name","path":["copy","fields","enc"]},"right":{"type":"name","path":["copy","quantity"]}},{"type":"binary","op":"&&","left":{"type":"call","fn":"has","args":[{"type":"name","path":["copy","fields","enc"]}]},"right":{"type":"unary","op":"!","operand":{"type":"name","path":["copy","equipped"]}}}]}},"sumCopies(copy.fields.heavy, copy.type == 'armor' && copy.equipped)":{"text":"sumCopies(copy.fields.heavy, copy.type == 'armor' && copy.equipped)","tree":{"type":"call","fn":"sumCopies","args":[{"type":"name","path":["copy","fields","heavy"]},{"type":"binary","op":"&&","left":{"type":"binary","op":"==","left":{"type":"name","path":["copy","type"]},"right":{"type":"string","value":"armor"}},"right":{"type":"name","path":["copy","equipped"]}}]}},"sumCopies(copy.fields.soak - copy.state.soakUsed, copy.type == 'armor' && copy.equipped)":{"text":"sumCopies(copy.fields.soak - copy.state.soakUsed, copy.type == 'armor' && copy.equipped)","tree":{"type":"call","fn":"sumCopies","args":[{"type":"binary","op":"-","left":{"type":"name","path":["copy","fields","soak"]},"right":{"type":"name","path":["copy","state","soakUsed"]}},{"type":"binary","op":"&&","left":{"type":"binary","op":"==","left":{"type":"name","path":["copy","type"]},"right":{"type":"string","value":"armor"}},"right":{"type":"name","path":["copy","equipped"]}}]}},"sumCopies(copy.fields.soak, copy.type == 'armor' && copy.equipped)":{"text":"sumCopies(copy.fields.soak, copy.type == 'armor' && copy.equipped)","tree":{"type":"call","fn":"sumCopies","args":[{"type":"name","path":["copy","fields","soak"]},{"type":"binary","op":"&&","left":{"type":"binary","op":"==","left":{"type":"name","path":["copy","type"]},"right":{"type":"string","value":"armor"}},"right":{"type":"name","path":["copy","equipped"]}}]}},"sumCopies(copy.fields.strain\n * ((copy.fields.eyeMod && cyber.eyes) || (copy.fields.earMod && cyber.ears) ? 0.5 : 1),\n copy.type == 'cyberware')":{"text":"sumCopies(copy.fields.strain * (copy.fields.eyeMod && cyber.eyes || copy.fields.earMod && cyber.ears ? 0.5 : 1), copy.type == 'cyberware')","tree":{"type":"call","fn":"sumCopies","args":[{"type":"binary","op":"*","left":{"type":"name","path":["copy","fields","strain"]},"right":{"type":"conditional","test":{"type":"binary","op":"||","left":{"type":"binary","op":"&&","left":{"type":"name","path":["copy","fields","eyeMod"]},"right":{"type":"name","path":["cyber","eyes"]}},"right":{"type":"binary","op":"&&","left":{"type":"name","path":["copy","fields","earMod"]},"right":{"type":"name","path":["cyber","ears"]}}},"then":{"type":"decimal","value":0.5},"else":{"type":"int","value":1}}},{"type":"binary","op":"==","left":{"type":"name","path":["copy","type"]},"right":{"type":"string","value":"cyberware"}}]}},"sumCopies(copy.state.level, copy.type == 'focus')":{"text":"sumCopies(copy.state.level, copy.type == 'focus')","tree":{"type":"call","fn":"sumCopies","args":[{"type":"name","path":["copy","state","level"]},{"type":"binary","op":"==","left":{"type":"name","path":["copy","type"]},"right":{"type":"string","value":"focus"}}]}},"underdog":{"text":"underdog","tree":{"type":"name","path":["underdog"]}},"x":{"text":"x","tree":{"type":"name","path":["x"]}}}};
2
+ export default {"manifest":{"id":"cwn-srd","version":"0.2.0","specVersion":"0.3.0","license":"CC0-1.0","notices":{"not-affiliated":"This pack is compatible with Cities Without Number, a game by Kevin Crawford published by Sine Nomine Publishing. It is built on the Cities Without Number System Reference Document, which its author dedicated to the public domain under CC0 1.0. It is unofficial: it is not affiliated with, approved or endorsed by Kevin Crawford or Sine Nomine Publishing."},"defaultLanguage":"en"},"rules":{"actions":[{"id":"level-up","tags":["advancement"],"available":"!character.creating && level < 10 && xp.current >= xp.next","params":{"random":{"type":"boolean","default":false}},"results":["raised"],"steps":[{"id":"raise","tags":["advancement.level"],"kind":"changes","changes":[{"type":"adjust","field":"level","by":1}]},{"id":"edge","kind":"action","when":"level + 1 == 5","use":"gain-edge","params":{"choice":"'edge-5'","random":"params.random"}},{"id":"focus","kind":"action","when":"(level + 1) in [2, 5, 7, 10]","use":"gain-focus","params":{"random":"params.random"}},{"id":"dice","kind":"branch","sheet":"proposed","cases":[{"when":true,"flags":{"perDie":"attributes.con.mod + hp.dieBonus","dice":"level"}}]},{"id":"hp","kind":"roll","tags":["hit-points"],"parts":[{"dice":"flags.perDie >= 0 ? (flags.dice)d6 : flags.perDie == -1 ? (flags.dice)d6min2\n : flags.perDie == -2 ? (flags.dice)d6min3 : flags.perDie == -3 ? (flags.dice)d6min4\n : (flags.dice)d6min5"},{"value":"flags.dice * flags.perDie"}]},{"id":"gains","kind":"changes","sheet":"proposed","changes":[{"type":"set","field":"hp.rolled","value":"max(steps.hp.total, hp.rolled + 1)"},{"type":"adjust","field":"skillPoints.unspent","by":"skillPoints.perLevel"}]},{"id":"picks","kind":"choice","options":{"pending":{}},"random":"params.random"},{"id":"done","kind":"outcome","result":"'raised'"}]},{"id":"improve-skill","tags":["advancement"],"available":"!character.creating && (skillPoints.unspent > 0 || maxList(keysOf('skill'), fieldOf('skills.{skill}.credit', x)) > 0)","params":{"skill":{"type":"enum","open":true,"values":["administer","connect","drive","exert","fix","heal","know","lead","notice","perform","program","punch","shoot","sneak","stab","survive","talk","trade","work","cast","summon"]}},"results":["improved","refused"],"steps":[{"id":"start","kind":"branch","cases":[{"when":true,"flags":{"level":"fieldOf('skills.{skill}.base', params.skill)","credit":"fieldOf('skills.{skill}.credit', params.skill)"}}]},{"id":"cost","kind":"branch","cases":[{"when":"flags.level < 4","flags":{"cost":"flags.level + 2","allowed":"level >= [1, 1, 3, 6, 9][flags.level + 1]\n && skillPoints.unspent + flags.credit >= flags.level + 2"}},{"when":true,"flags":{"cost":0,"allowed":false}}]},{"id":"buy","kind":"changes","when":"flags.allowed","changes":[{"type":"set","field":{"formula":"fieldId('skills.{skill}.base', params.skill)"},"value":"flags.level + 1"},{"type":"set","field":{"formula":"fieldId('skills.{skill}.credit', params.skill)"},"value":"max(0, flags.credit - flags.cost)"},{"type":"adjust","field":"skillPoints.unspent","by":"-max(0, flags.cost - flags.credit)"}]},{"id":"result","kind":"outcome","result":"flags.allowed ? 'improved' : 'refused'"}]},{"id":"improve-attribute","tags":["advancement"],"available":"!character.creating && !underdog && advancement.attributeBoosts < 5\n && skillPoints.unspent > advancement.attributeBoosts\n && level >= [1, 1, 3, 6, 9][advancement.attributeBoosts]","params":{"attribute":{"type":"enum","values":["str","dex","con","int","wis","cha"]}},"results":["improved","refused"],"steps":[{"id":"start","kind":"branch","cases":[{"when":true,"flags":{"cost":"advancement.attributeBoosts + 1","allowed":"skillPoints.unspent >= advancement.attributeBoosts + 1\n && level >= [1, 1, 3, 6, 9][advancement.attributeBoosts]\n && fieldOf('attributes.{attribute}.base', params.attribute) < 18"}}]},{"id":"buy","kind":"changes","when":"flags.allowed","changes":[{"type":"adjust","field":{"formula":"'attributes.' + params.attribute + '.base'"},"by":1},{"type":"adjust","field":"advancement.attributeBoosts","by":1},{"type":"adjust","field":"skillPoints.unspent","by":"-flags.cost"}]},{"id":"result","kind":"outcome","result":"flags.allowed ? 'improved' : 'refused'"}]},{"id":"gain-skill","listed":false,"tags":["building"],"params":{"code":{"type":"enum","open":true,"values":["administer","connect","drive","exert","fix","heal","know","lead","notice","perform","program","punch","shoot","sneak","stab","survive","talk","trade","work","cast","summon","combat","any","punch-stab","noncombat"]},"random":{"type":"boolean","default":false}},"results":["raised","points"],"steps":[{"id":"start","kind":"branch","sheet":"proposed","cases":[{"when":true,"flags":{"points":"!character.creating","candidates":"filterList(keysOf('skill'),\n (params.code == x\n || (params.code == 'combat' && x in ['punch', 'shoot', 'stab'])\n || (params.code == 'punch-stab' && x in ['punch', 'stab'])\n || (params.code == 'noncombat'\n && !(x in ['punch', 'shoot', 'stab', 'cast', 'summon']))\n || (params.code == 'any' && !(x in ['cast', 'summon'])))\n && (!character.creating || fieldOf('skills.{skill}.base', x) < 1))"}}]},{"id":"fallback","kind":"branch","sheet":"proposed","when":"size(flags.candidates) == 0","cases":[{"when":true,"flags":{"candidates":"filterList(keysOf('skill'),\n !(x in ['cast', 'summon']) && fieldOf('skills.{skill}.base', x) < 1)"}}]},{"id":"skill","kind":"choice","tags":["skill-pick"],"options":{"values":{"formula":"flags.candidates"}},"when":"size(flags.candidates) > 1","random":"params.random","recommend":"flags.candidates[0]"},{"id":"picked","kind":"branch","cases":[{"when":true,"flags":{"skill":"has(steps.skill) ? steps.skill.picked : flags.candidates[0]"}}]},{"id":"raise","kind":"changes","when":"!flags.points","changes":[{"type":"adjust","field":{"formula":"fieldId('skills.{skill}.base', flags.skill)"},"by":1}]},{"id":"pool","kind":"branch","sheet":"proposed","when":"flags.points","cases":[{"when":true,"flags":{"level":"fieldOf('skills.{skill}.base', flags.skill)","pool":"3 + fieldOf('skills.{skill}.credit', flags.skill)"}}]},{"id":"buy1","kind":"branch","when":"flags.points && flags.level < 4 && flags.pool >= flags.level + 2","cases":[{"when":true,"flags":{"pool":"flags.pool - flags.level - 2","level":"flags.level + 1"}}]},{"id":"buy2","kind":"branch","when":"flags.points && flags.level < 4 && flags.pool >= flags.level + 2","cases":[{"when":true,"flags":{"pool":"flags.pool - flags.level - 2","level":"flags.level + 1"}}]},{"id":"buy3","kind":"branch","when":"flags.points && flags.level < 4 && flags.pool >= flags.level + 2","cases":[{"when":true,"flags":{"pool":"flags.pool - flags.level - 2","level":"flags.level + 1"}}]},{"id":"spend","kind":"changes","when":"flags.points","changes":[{"type":"set","field":{"formula":"fieldId('skills.{skill}.base', flags.skill)"},"value":"flags.level"},{"type":"set","field":{"formula":"fieldId('skills.{skill}.credit', flags.skill)"},"value":"flags.level >= 4 ? 0 : flags.pool"},{"type":"adjust","when":"flags.level >= 4 && flags.pool > 0","field":"skillPoints.unspent","by":"flags.pool"}]},{"id":"done","kind":"outcome","result":"flags.points ? 'points' : 'raised'","data":{"skill":"flags.skill"}}]},{"id":"gain-attribute","listed":false,"tags":["building"],"params":{"code":{"type":"enum","values":["any-stat-1","physical-2","mental-2"]},"random":{"type":"boolean","default":false}},"results":["raised"],"steps":[{"id":"start","kind":"branch","sheet":"proposed","cases":[{"when":true,"flags":{"amount":"params.code == 'any-stat-1' ? 1 : 2","group":"params.code == 'physical-2' ? ['str', 'dex', 'con']\n : params.code == 'mental-2' ? ['int', 'wis', 'cha']\n : ['str', 'dex', 'con', 'int', 'wis', 'cha']"}}]},{"id":"best","kind":"branch","sheet":"proposed","cases":[{"when":true,"flags":{"best":"sortList(filterList(flags.group,\n fieldOf('attributes.{attribute}.base', x) <= 18 - flags.amount),\n -fieldOf('attributes.{attribute}.base', x))"}}]},{"id":"boost","kind":"allocate","sheet":"proposed","fields":{"type":"field","where":"'attribute-base' in item.tags\n && countList(flags.group, ('attr.' + x) in item.tags) > 0"},"budget":"flags.amount","spend":"upTo","limit":"18 - field.value","random":"params.random","recommend":{"attributes.str.base":"size(flags.best) > 0 && flags.best[0] == 'str' ? flags.amount : 0","attributes.dex.base":"size(flags.best) > 0 && flags.best[0] == 'dex' ? flags.amount : 0","attributes.con.base":"size(flags.best) > 0 && flags.best[0] == 'con' ? flags.amount : 0","attributes.int.base":"size(flags.best) > 0 && flags.best[0] == 'int' ? flags.amount : 0","attributes.wis.base":"size(flags.best) > 0 && flags.best[0] == 'wis' ? flags.amount : 0","attributes.cha.base":"size(flags.best) > 0 && flags.best[0] == 'cha' ? flags.amount : 0"}},{"id":"result","kind":"outcome","result":"'raised'"}]},{"id":"gain-focus","available":"foci.taken < foci.allowed","tags":["building","advancement"],"params":{"random":{"type":"boolean","default":false}},"results":["gained"],"steps":[{"id":"mode","kind":"choice","sheet":"proposed","when":"countCopies(copy.type == 'focus' && copy.state.level < copy.fields.maxLevel) > 0","options":[{"id":"new"},{"id":"raise"}],"recommend":"'new'","random":"params.random"},{"id":"picked","kind":"branch","cases":[{"when":true,"flags":{"mode":"has(steps.mode) ? steps.mode.picked : 'new'"}}]},{"id":"focus","kind":"choice","when":"flags.mode == 'new'","tags":["focus-pick"],"sheet":"proposed","options":{"content":{"type":"focus","where":"('repeatable' in item.tags || countCopies(copy.item == item.id) == 0)\n && !('brings-cyber' in item.tags\n && (magic.graced || countCopies('bars-cyber' in copy.tags) > 0))\n && !('bars-cyber' in item.tags && (underdog || magic.mage || magic.summoner\n || magic.graced || countCopies(copy.type == 'cyberware' && copy.fields.strain > 0) > 0))"}},"recommend":"options[0]","random":"params.random"},{"id":"raised","kind":"choice","when":"flags.mode == 'raise'","sheet":"proposed","options":{"copies":{"type":"focus","where":"self.level < item.maxLevel"}},"recommend":"options[0]","random":"params.random","changes":[{"type":"setState","entry":"picked","key":"level","value":2}]},{"id":"specialty","kind":"choice","when":"has(steps.focus) && has(steps.focus.item.bonusSkill) && steps.focus.item.bonusSkill == 'noncombat'","options":{"values":["administer","connect","drive","exert","fix","heal","know","lead","notice","perform","program","sneak","survive","talk","trade","work"]},"recommend":"options[0]","random":"params.random"},{"id":"attribute","kind":"choice","when":"has(steps.focus) && 'asks-attribute' in steps.focus.item.tags","options":{"values":["str","dex","con","int","wis","cha"]},"recommend":"options[0]","random":"params.random"},{"id":"add","kind":"changes","when":"has(steps.focus)","changes":[{"type":"addItem","when":"!has(steps.specialty) && !has(steps.attribute)","entry":{"item":"steps.focus.picked"}},{"type":"addItem","when":"has(steps.specialty)","entry":{"item":"steps.focus.picked","choices":{"skill":[{"option":{"formula":"steps.specialty.picked"}}]}}},{"type":"addItem","when":"has(steps.attribute)","entry":{"item":"steps.focus.picked","choices":{"attribute-1":[{"option":{"formula":"steps.attribute.picked"}}]}}},{"type":"addItem","forEach":"steps.focus.item.startingItems","entry":{"item":"x"}}]},{"id":"picks","kind":"choice","when":"has(steps.focus)","options":{"pending":{"entry":"steps.add.added[0]"}},"random":"params.random"},{"id":"cyber","kind":"changes","sheet":"proposed","when":"has(steps.focus) && size(steps.focus.item.startingCyber) > 0\n && strain.total + steps.focus.item.startingCyberStrain <= strain.max && !magic.graced","changes":[{"type":"addItem","forEach":"steps.focus.item.startingCyber","entry":{"item":"x"}}]},{"id":"bonus","kind":"action","when":"has(steps.focus) && has(steps.focus.item.bonusSkill)","use":"gain-skill","params":{"code":"steps.focus.item.bonusSkill == 'noncombat' ? steps.specialty.picked : steps.focus.item.bonusSkill","random":"params.random"}},{"id":"bonus2","kind":"action","when":"has(steps.focus) && has(steps.focus.item.bonusSkill2)","use":"gain-skill","params":{"code":"steps.focus.item.bonusSkill2","random":"params.random"}},{"id":"levelTwo","kind":"action","when":"has(steps.raised) && has(steps.raised.item.levelTwoSkill)","use":"gain-skill","params":{"code":"steps.raised.item.levelTwoSkill","random":"params.random"}},{"id":"gear","kind":"action","when":"has(steps.focus) && has(steps.focus.item.gearBudget)","use":"acquire-focus-gear","params":{"kind":"steps.focus.item.gearBudget","random":"params.random"}},{"id":"done","kind":"outcome","result":"'gained'"}]},{"id":"gain-edge","tags":["building"],"available":"size(picksOf('edge-1')) == 0 || size(picksOf('edge-2')) == 0\n || (level >= 5 && size(picksOf('edge-5')) == 0)\n || (underdog && size(picksOf('underdog-edge')) == 0)","params":{"choice":{"type":"enum","values":["edge-1","edge-2","edge-5","underdog-edge"]},"random":{"type":"boolean","default":false}},"results":["gained","closed"],"steps":[{"id":"closed","kind":"outcome","sheet":"proposed","when":"(params.choice == 'edge-5' && level < 5) || (params.choice == 'underdog-edge' && !underdog)\n || (params.choice == 'edge-1' && size(picksOf('edge-1')) > 0)\n || (params.choice == 'edge-2' && size(picksOf('edge-2')) > 0)\n || (params.choice == 'edge-5' && size(picksOf('edge-5')) > 0)\n || (params.choice == 'underdog-edge' && size(picksOf('underdog-edge')) > 0)","result":"'closed'"},{"id":"edge","kind":"choice","tags":["edge-pick"],"sheet":"proposed","options":{"content":{"type":"edge","where":"('repeatable' in item.tags || !(item.id in edges.taken))\n && (!item.magic || (campaign.magic && params.choice != 'underdog-edge'\n && params.choice != 'edge-5'))\n && !('not-underdog' in item.tags && (underdog || params.choice == 'underdog-edge'))\n && !('brings-cyber' in item.tags\n && (magic.graced || countCopies('bars-cyber' in copy.tags) > 0))"}},"recommend":"options[0]","random":"params.random","changes":[{"type":"choose","path":{"choice":"[params.choice]"},"option":"picked.id"}]},{"id":"attribute","kind":"choice","when":"steps.edge.item.asksAttribute","options":{"values":["str","dex","int","wis","cha"]},"recommend":"options[0]","random":"params.random","changes":[{"type":"choose","path":{"choice":"[params.choice, steps.edge.picked, 'attribute']"},"option":"picked.id"}]},{"id":"bonus","kind":"action","when":"has(steps.edge.item.bonusSkill)","use":"gain-skill","params":{"code":"steps.edge.item.bonusSkill","random":"params.random"}},{"id":"retro","kind":"changes","sheet":"proposed","when":"!character.creating && 'retroactive-points' in steps.edge.item.tags","changes":[{"type":"adjust","field":"skillPoints.unspent","by":"level - 1"}]},{"id":"items","kind":"changes","when":"size(steps.edge.item.startingItems) > 0 || steps.edge.item.friendContacts > 0","changes":[{"type":"addItem","forEach":"steps.edge.item.startingItems","entry":{"item":"x"}},{"type":"addItem","when":"steps.edge.item.friendContacts > 0","entry":{"item":"'contacts.contact'","state":{"bond":"'friend'"}}}]},{"id":"cyber","kind":"changes","sheet":"proposed","when":"size(steps.edge.item.startingCyber) > 0\n && strain.total + steps.edge.item.startingCyberStrain <= strain.max && !magic.graced","changes":[{"type":"addItem","forEach":"steps.edge.item.startingCyber","entry":{"item":"x"}}]},{"id":"programs","kind":"choice","when":"steps.edge.item.programElements > 0","sheet":"proposed","options":{"content":{"type":"program","where":"picks == 0"}},"repeat":{"max":"steps.edge.item.programElements","min":"steps.edge.item.programElements"},"random":"params.random","recommend":"options[0]","changes":[{"type":"addItem","entry":{"item":"picked.id","state":{"source":"'edge'"}}}]},{"id":"wired","kind":"action","when":"steps.edge.item.cyberBudget > 0","use":"acquire-wired-cyber","params":{"random":"params.random"}},{"id":"spells","kind":"choice","when":"steps.edge.item.spells > 0","sheet":"proposed","options":{"content":{"type":"spell","where":"picks == 0"}},"repeat":{"max":"steps.edge.item.spells","min":"steps.edge.item.spells"},"random":"params.random","recommend":"options[0]","changes":[{"type":"addItem","entry":{"item":"picked.id"}}]},{"id":"arts","kind":"choice","when":"steps.edge.item.buysArts","sheet":"proposed","options":{"content":{"type":"art","where":"item.cost <= arts.points - arts.spent && countCopies(copy.item == item.id) == 0\n && !('alacrity' in item.tags && countCopies('alacrity' in copy.tags) > 0)"}},"repeat":{"max":4},"random":"params.random","recommend":"options[0]","changes":[{"type":"addItem","entry":{"item":"picked.id"}}]},{"id":"focus","kind":"action","when":"steps.edge.item.extraFocus","use":"gain-focus","params":{"random":"params.random"}},{"id":"done","kind":"outcome","result":"'gained'"}]},{"id":"skill-check","tags":["check"],"params":{"skill":{"type":"id","of":"field","where":"'skill' in item.tags"},"attribute":{"type":"enum","values":["str","dex","con","int","wis","cha"]},"difficulty":{"type":"integer","optional":true},"modifier":{"type":"integer","optional":true}},"results":["success","failure","rolled"],"steps":[{"id":"start","kind":"branch","cases":[{"when":true,"flags":{"dc":"has(params.difficulty) ? params.difficulty : -1"}}]},{"id":"check","kind":"roll","tags":["skill-check",{"formula":"params.skill.tags"},{"formula":"'attr.' + params.attribute"}],"bands":"check","parts":[{"dice":"2d6kh2","tags":["skill-dice"]},{"field":"params.skill.id"},{"field":"'attributes.' + params.attribute + '.mod'"},{"value":"params.modifier","when":"has(params.modifier)"}]},{"id":"result","kind":"outcome","result":"flags.dc < 0 ? 'rolled' : steps.check.band","data":{"total":"steps.check.total"}}]},{"id":"saving-throw","tags":["save"],"params":{"save":{"type":"enum","values":["physical","evasion","mental","luck"]},"modifier":{"type":"integer","optional":true}},"results":["success","failure"],"steps":[{"id":"start","kind":"branch","cases":[{"when":true,"flags":{"target":"fieldOf('saves.{save}', params.save)"}}]},{"id":"save","kind":"roll","tags":["save",{"formula":"'save.' + params.save"}],"bands":"save","parts":[{"dice":"1d20"},{"value":"params.modifier","when":"has(params.modifier)"}]},{"id":"result","kind":"outcome","result":"steps.save.band","data":{"total":"steps.save.total","target":"flags.target"}}]},{"id":"initiative","tags":["initiative"],"results":["rolled"],"steps":[{"id":"roll","kind":"roll","tags":["initiative"],"parts":[{"dice":"1d8"},{"field":"'combat.initiative'"}]},{"id":"result","kind":"outcome","result":"'rolled'","data":{"total":"steps.roll.total"}}]},{"id":"end-scene","tags":["rest"],"results":["ended"],"steps":[{"id":"refresh","tags":["rest.scene"],"kind":"changes","changes":[{"type":"setState","copies":{"type":"armor","where":"self.soakUsed > 0"},"key":"soakUsed","value":0},{"type":"setState","copies":{"type":"cyberdeck","where":"self.shieldingUsed > 0"},"key":"shieldingUsed","value":0},{"type":"set","field":"effort.mage.scene","value":0},{"type":"set","field":"effort.summoner.scene","value":0}]},{"id":"result","kind":"outcome","result":"'ended'"}]},{"id":"rest","tags":["rest"],"results":["rested"],"steps":[{"id":"recover","tags":["rest.night"],"kind":"changes","changes":[{"type":"adjust","when":"!hp.frail","field":"hp.current","by":"level"},{"type":"adjust","when":"strain.temporary > 0","field":"strain.temporary","by":-1},{"type":"set","field":"effort.mage.day","value":0},{"type":"set","field":"effort.mage.scene","value":0},{"type":"set","field":"effort.summoner.day","value":0},{"type":"set","field":"effort.summoner.scene","value":0},{"type":"set","field":"hacking.access.spent","value":0},{"type":"set","field":"arts.bonusRolls.used","value":0}]},{"id":"result","kind":"outcome","result":"'rested'"}]},{"id":"first-aid","tags":["healing"],"available":"strain.total + 1 <= strain.max","params":{"healerSkill":{"type":"integer","min":-1,"max":4}},"results":["healed"],"steps":[{"id":"heal","kind":"roll","tags":["healing","first-aid"],"parts":[{"dice":"1d6"},{"value":"params.healerSkill"}]},{"id":"apply","kind":"changes","changes":[{"type":"adjust","field":"hp.current","by":"max(0, steps.heal.total)"},{"type":"adjust","field":"strain.temporary","by":1}]},{"id":"result","kind":"outcome","result":"'healed'","data":{"healed":"max(0, steps.heal.total)"}}]},{"id":"major-injury","tags":["injury"],"results":["rolled"],"params":{"modifier":{"type":"integer","optional":true}},"steps":[{"id":"roll","kind":"roll","tags":["major-injury"],"bands":"major-injury","parts":[{"dice":"1d12"},{"value":"params.modifier","when":"has(params.modifier)"}]},{"id":"result","kind":"outcome","result":"'rolled'","data":{"injury":"steps.roll.band"}}]},{"id":"create-character","tags":["creation"],"available":"character.creating","params":{"random":{"type":"boolean","default":false}},"results":["created"],"steps":[{"id":"method","kind":"choice","options":[{"id":"roll"},{"id":"array"}],"recommend":"'roll'"},{"id":"str","kind":"roll","tags":["creation"],"when":"steps.method.picked == 'roll'","parts":[{"dice":"3d6"}]},{"id":"dex","kind":"roll","tags":["creation"],"when":"steps.method.picked == 'roll'","parts":[{"dice":"3d6"}]},{"id":"con","kind":"roll","tags":["creation"],"when":"steps.method.picked == 'roll'","parts":[{"dice":"3d6"}]},{"id":"int","kind":"roll","tags":["creation"],"when":"steps.method.picked == 'roll'","parts":[{"dice":"3d6"}]},{"id":"wis","kind":"roll","tags":["creation"],"when":"steps.method.picked == 'roll'","parts":[{"dice":"3d6"}]},{"id":"cha","kind":"roll","tags":["creation"],"when":"steps.method.picked == 'roll'","parts":[{"dice":"3d6"}]},{"id":"rolled","kind":"branch","when":"steps.method.picked == 'roll'","cases":[{"when":true,"flags":{"totals":"[steps.str.total, steps.dex.total, steps.con.total, steps.int.total,\n steps.wis.total, steps.cha.total]"}}]},{"id":"substitute","kind":"choice","when":"steps.method.picked == 'roll'","options":[{"id":"none"},{"id":"str","when":"steps.str.total < 14"},{"id":"dex","when":"steps.dex.total < 14"},{"id":"con","when":"steps.con.total < 14"},{"id":"int","when":"steps.int.total < 14"},{"id":"wis","when":"steps.wis.total < 14"},{"id":"cha","when":"steps.cha.total < 14"}],"recommend":"minList(flags.totals, x) >= 14 ? 'none'\n : ['str', 'dex', 'con', 'int', 'wis', 'cha'][\n indexOf(flags.totals, minList(flags.totals, x))]"},{"id":"scores","kind":"changes","when":"steps.method.picked == 'roll'","changes":[{"type":"set","field":"attributes.str.base","value":"steps.substitute.picked == 'str' ? 14 : steps.str.total"},{"type":"set","field":"attributes.dex.base","value":"steps.substitute.picked == 'dex' ? 14 : steps.dex.total"},{"type":"set","field":"attributes.con.base","value":"steps.substitute.picked == 'con' ? 14 : steps.con.total"},{"type":"set","field":"attributes.int.base","value":"steps.substitute.picked == 'int' ? 14 : steps.int.total"},{"type":"set","field":"attributes.wis.base","value":"steps.substitute.picked == 'wis' ? 14 : steps.wis.total"},{"type":"set","field":"attributes.cha.base","value":"steps.substitute.picked == 'cha' ? 14 : steps.cha.total"}]},{"id":"array","kind":"allocate","when":"steps.method.picked == 'array'","fields":{"type":"field","where":"'attribute-base' in item.tags"},"values":[14,12,11,10,9,7],"random":"params.random","recommend":{"attributes.str.base":10,"attributes.dex.base":14,"attributes.con.base":12,"attributes.int.base":11,"attributes.wis.base":9,"attributes.cha.base":7}},{"id":"background","kind":"choice","options":{"content":{"type":"background"}},"recommend":"options[0]","random":"params.random","changes":[{"type":"choose","path":{"choice":["background"]},"option":"picked.id"}]},{"id":"freeSkill","kind":"action","use":"gain-skill","params":{"code":"steps.background.item.freeSkill","random":"params.random"}},{"id":"tables","kind":"branch","cases":[{"when":true,"flags":{"growth":"[steps.background.item.growth1, steps.background.item.growth2,\n steps.background.item.growth3, steps.background.item.growth4,\n steps.background.item.growth5, steps.background.item.growth6]","learning":"[steps.background.item.learning1, steps.background.item.learning2,\n steps.background.item.learning3, steps.background.item.learning4,\n steps.background.item.learning5, steps.background.item.learning6,\n steps.background.item.learning7, steps.background.item.learning8]"}}]},{"id":"skillMethod","kind":"choice","options":[{"id":"roll"},{"id":"pick"}],"recommend":"params.random ? 'roll' : 'pick'"},{"id":"table1","kind":"choice","when":"steps.skillMethod.picked == 'roll'","options":[{"id":"growth"},{"id":"learning"}],"recommend":"'learning'","random":"params.random"},{"id":"roll1","kind":"roll","tags":["creation"],"when":"steps.skillMethod.picked == 'roll'","parts":[{"dice":"steps.table1.picked == 'growth' ? 1d6 : 1d8"}]},{"id":"entry1","kind":"branch","when":"steps.skillMethod.picked == 'roll'","cases":[{"when":true,"flags":{"entry":"steps.table1.picked == 'growth' ? flags.growth[steps.roll1.total - 1]\n : flags.learning[steps.roll1.total - 1]"}}]},{"id":"skill1","kind":"action","when":"steps.skillMethod.picked == 'roll' && !(flags.entry in ['any-stat-1', 'physical-2', 'mental-2'])","use":"gain-skill","params":{"code":"flags.entry","random":"params.random"}},{"id":"stat1","kind":"action","when":"steps.skillMethod.picked == 'roll' && flags.entry in ['any-stat-1', 'physical-2', 'mental-2']","use":"gain-attribute","params":{"code":"flags.entry","random":"params.random"}},{"id":"table2","kind":"choice","when":"steps.skillMethod.picked == 'roll'","options":[{"id":"growth"},{"id":"learning"}],"recommend":"'learning'","random":"params.random"},{"id":"roll2","kind":"roll","tags":["creation"],"when":"steps.skillMethod.picked == 'roll'","parts":[{"dice":"steps.table2.picked == 'growth' ? 1d6 : 1d8"}]},{"id":"entry2","kind":"branch","when":"steps.skillMethod.picked == 'roll'","cases":[{"when":true,"flags":{"entry":"steps.table2.picked == 'growth' ? flags.growth[steps.roll2.total - 1]\n : flags.learning[steps.roll2.total - 1]"}}]},{"id":"skill2","kind":"action","when":"steps.skillMethod.picked == 'roll' && !(flags.entry in ['any-stat-1', 'physical-2', 'mental-2'])","use":"gain-skill","params":{"code":"flags.entry","random":"params.random"}},{"id":"stat2","kind":"action","when":"steps.skillMethod.picked == 'roll' && flags.entry in ['any-stat-1', 'physical-2', 'mental-2']","use":"gain-attribute","params":{"code":"flags.entry","random":"params.random"}},{"id":"table3","kind":"choice","when":"steps.skillMethod.picked == 'roll'","options":[{"id":"growth"},{"id":"learning"}],"recommend":"'learning'","random":"params.random"},{"id":"roll3","kind":"roll","tags":["creation"],"when":"steps.skillMethod.picked == 'roll'","parts":[{"dice":"steps.table3.picked == 'growth' ? 1d6 : 1d8"}]},{"id":"entry3","kind":"branch","when":"steps.skillMethod.picked == 'roll'","cases":[{"when":true,"flags":{"entry":"steps.table3.picked == 'growth' ? flags.growth[steps.roll3.total - 1]\n : flags.learning[steps.roll3.total - 1]"}}]},{"id":"skill3","kind":"action","when":"steps.skillMethod.picked == 'roll' && !(flags.entry in ['any-stat-1', 'physical-2', 'mental-2'])","use":"gain-skill","params":{"code":"flags.entry","random":"params.random"}},{"id":"stat3","kind":"action","when":"steps.skillMethod.picked == 'roll' && flags.entry in ['any-stat-1', 'physical-2', 'mental-2']","use":"gain-attribute","params":{"code":"flags.entry","random":"params.random"}},{"id":"pick1","kind":"choice","when":"steps.skillMethod.picked == 'pick'","options":{"values":{"formula":"filterList(flags.learning, x != 'any')"}},"recommend":"filterList(flags.learning, x != 'any')[0]","random":"params.random"},{"id":"learned1","kind":"action","when":"steps.skillMethod.picked == 'pick'","use":"gain-skill","params":{"code":"steps.pick1.picked","random":"params.random"}},{"id":"pick2","kind":"choice","when":"steps.skillMethod.picked == 'pick'","options":{"values":{"formula":"filterList(flags.learning, x != 'any')"}},"recommend":"filterList(flags.learning, x != 'any')[1]","random":"params.random"},{"id":"learned2","kind":"action","when":"steps.skillMethod.picked == 'pick'","use":"gain-skill","params":{"code":"steps.pick2.picked","random":"params.random"}},{"id":"edge1","kind":"action","use":"gain-edge","params":{"choice":"'edge-1'","random":"params.random"}},{"id":"edge2","kind":"action","use":"gain-edge","params":{"choice":"'edge-2'","random":"params.random"}},{"id":"focus","kind":"action","use":"gain-focus","params":{"random":"params.random"}},{"id":"modifiers","kind":"branch","sheet":"proposed","cases":[{"when":true,"flags":{"underdog":"attributes.modTotal <= -1 && !(@edges.prodigy in edges.taken)"}}]},{"id":"underdog","kind":"choice","when":"flags.underdog","options":[{"id":"take"},{"id":"decline"}],"recommend":"'take'","changes":[{"type":"set","when":"picked.id == 'take'","field":"underdog","value":true}]},{"id":"underdogEdge","kind":"action","when":"has(steps.underdog) && steps.underdog.picked == 'take'","use":"gain-edge","params":{"choice":"'underdog-edge'","random":"params.random"}},{"id":"hp","kind":"roll","tags":["creation","hit-points"],"sheet":"proposed","parts":[{"dice":"1d6"},{"field":"'attributes.con.mod'"},{"field":"'hp.dieBonus'"}]},{"id":"hpMax","kind":"changes","changes":[{"type":"set","field":"hp.rolled","value":"max(1, steps.hp.total)"}]},{"id":"freePick","kind":"action","use":"gain-skill","params":{"code":"'any'","random":"params.random"}},{"id":"contacts","kind":"choice","options":[{"id":"acquaintances"},{"id":"friend"}],"recommend":"'acquaintances'","random":"params.random","changes":[{"type":"addItem","when":"picked.id == 'acquaintances'","entry":{"item":"'contacts.contact'","state":{"bond":"'acquaintance'"}}},{"type":"addItem","when":"picked.id == 'acquaintances'","entry":{"item":"'contacts.contact'","state":{"bond":"'acquaintance'"}}},{"type":"addItem","when":"picked.id == 'friend'","entry":{"item":"'contacts.contact'","state":{"bond":"'friend'"}}}]},{"id":"freeItemKind","tags":["creation.item"],"kind":"choice","options":[{"id":"weapon"},{"id":"armor"},{"id":"gear"},{"id":"cyberdeck"},{"id":"drone"}],"recommend":"'weapon'","random":"params.random"},{"id":"freeWeapon","kind":"choice","when":"steps.freeItemKind.picked == 'weapon'","options":{"content":{"type":"weapon","where":"item.cost <= 1000 && !('restricted' in item.tags)"}},"recommend":"options[0]","random":"params.random","changes":[{"type":"addItem","entry":{"item":"picked.id"}}]},{"id":"freeArmor","kind":"choice","when":"steps.freeItemKind.picked == 'armor'","options":{"content":{"type":"armor","where":"item.cost <= 1000 && !('restricted' in item.tags)"}},"recommend":"options[0]","random":"params.random","changes":[{"type":"addItem","entry":{"item":"picked.id"}}]},{"id":"freeGear","kind":"choice","when":"steps.freeItemKind.picked == 'gear'","options":{"content":{"type":"gear","where":"item.cost <= 1000 && !('restricted' in item.tags)"}},"recommend":"options[0]","random":"params.random","changes":[{"type":"addItem","entry":{"item":"picked.id"}}]},{"id":"freeCyberdeck","kind":"choice","when":"steps.freeItemKind.picked == 'cyberdeck'","options":{"content":{"type":"cyberdeck","where":"item.cost <= 1000 && !('restricted' in item.tags)"}},"recommend":"options[0]","random":"params.random","changes":[{"type":"addItem","entry":{"item":"picked.id"}}]},{"id":"freeDrone","kind":"choice","when":"steps.freeItemKind.picked == 'drone'","options":{"content":{"type":"drone","where":"item.cost <= 1000 && !('restricted' in item.tags)"}},"recommend":"options[0]","random":"params.random","changes":[{"type":"addItem","entry":{"item":"picked.id"}}]},{"id":"gear","tags":["creation.gear"],"kind":"changes","changes":[{"type":"set","field":"money","value":500},{"type":"set","field":"lifestyle","value":"'middle'"}]},{"id":"finish","tags":["creation.finish"],"kind":"changes","sheet":"proposed","changes":[{"type":"set","field":"hp.current","value":"hp.max"},{"type":"finishCreation"}]},{"id":"done","kind":"outcome","result":"'created'"}]},{"id":"trigger-cyber","tags":["cyber"],"available":"has(item.triggerStrain) && !self.damaged && strain.total + item.triggerStrain <= strain.max","results":["triggered"],"steps":[{"id":"strain","kind":"changes","changes":[{"type":"adjust","field":"strain.temporary","by":"item.triggerStrain"}]},{"id":"result","kind":"outcome","result":"'triggered'"}]},{"id":"acquire-wired-cyber","listed":false,"tags":["building"],"params":{"random":{"type":"boolean","default":false}},"results":["acquired"],"steps":[{"id":"cyber","kind":"choice","sheet":"proposed","options":{"content":{"type":"cyberware","where":"item.cost <= cyber.wiredBudget - cyber.wiredUsed\n && strain.total + item.strain <= strain.max\n && countCopies(copy.item == item.id) == 0"}},"repeat":{"max":8},"recommend":"options[0]","random":"params.random","changes":[{"type":"addItem","entry":{"item":"picked.id","state":{"wired":true}}}]},{"id":"result","kind":"outcome","result":"'acquired'"}]},{"id":"use-drug","tags":["drug"],"available":"self.quantity > 0","params":{"healerSkill":{"type":"integer","optional":true}},"results":["applied"],"steps":[{"id":"heal","kind":"roll","when":"has(item.healDice)","tags":["healing"],"parts":[{"dice":"item.healDice"},{"value":"has(params.healerSkill) ? params.healerSkill : 0"}]},{"id":"take","kind":"changes","changes":[{"type":"adjustQuantity","entry":"self","by":-1},{"type":"adjust","when":"item.strain > 0","field":"strain.temporary","by":"item.strain"},{"type":"adjust","when":"has(steps.heal)","field":"hp.current","by":"steps.heal.total"}]},{"id":"result","kind":"outcome","result":"'applied'","data":{"healed":"has(steps.heal) ? steps.heal.total : 0"}}]},{"id":"acquire-focus-gear","tags":["building"],"available":"budget.vehicle > budget.vehicleUsed || budget.drone > budget.droneUsed","params":{"kind":{"type":"enum","values":["vehicle","drone"]},"random":{"type":"boolean","default":false}},"results":["acquired"],"steps":[{"id":"vehicle","kind":"choice","when":"params.kind == 'vehicle'","sheet":"proposed","options":{"content":{"type":"vehicle","where":"item.cost <= budget.vehicle - budget.vehicleUsed && !('restricted' in item.tags)"}},"prefer":"item.cost","random":"params.random","changes":[{"type":"addItem","entry":{"item":"picked.id","state":{"focusGear":true}}}]},{"id":"vehicles","kind":"choice","when":"params.kind == 'vehicle'","sheet":"proposed","options":{"content":{"type":"vehicle","where":"item.cost <= budget.vehicle - budget.vehicleUsed && !('restricted' in item.tags)"}},"repeat":{"max":5},"prefer":"item.cost","random":"params.random","changes":[{"type":"addItem","entry":{"item":"picked.id","state":{"focusGear":true}}}]},{"id":"drone","kind":"choice","when":"params.kind == 'drone'","sheet":"proposed","options":{"content":{"type":"drone","where":"item.cost <= budget.drone - budget.droneUsed && !('restricted' in item.tags)\n && (!has(item.enc) || enc.stowed + item.enc <= enc.stowedMax)"}},"prefer":"item.cost","random":"params.random","changes":[{"type":"addItem","entry":{"item":"picked.id","state":{"focusGear":true}}}]},{"id":"drones","kind":"choice","when":"params.kind == 'drone'","sheet":"proposed","options":{"content":{"type":"drone","where":"item.cost <= budget.drone - budget.droneUsed && !('restricted' in item.tags)\n && (!has(item.enc) || enc.stowed + item.enc <= enc.stowedMax)"}},"repeat":{"max":5},"prefer":"item.cost","random":"params.random","changes":[{"type":"addItem","entry":{"item":"picked.id","state":{"focusGear":true}}}]},{"id":"result","kind":"outcome","result":"'acquired'"}]},{"id":"run-program","tags":["hacking"],"available":"item.kind == 'verb' && hacking.cpu > 0 && hacking.access.current >= item.accessCost","params":{"difficulty":{"type":"integer","optional":true},"wireless":{"type":"boolean","default":false},"crown":{"type":"boolean","default":false},"modifier":{"type":"integer","optional":true}},"results":["success","failure","rolled"],"steps":[{"id":"subject","kind":"choice","options":{"copies":{"type":"program","where":"item.kind == 'subject' && item.subjectType in action.item.targets"}},"recommend":"options[0]"},{"id":"start","kind":"branch","cases":[{"when":true,"flags":{"dc":"has(params.difficulty) ? params.difficulty : -1"}}]},{"id":"check","kind":"roll","tags":["hacking","skill-check","skill.program","attr.int"],"bands":"check","parts":[{"dice":"2d6kh2","tags":["skill-dice"]},{"field":"'attributes.int.mod'"},{"field":"'skills.program.level'"},{"value":"item.checkMod","when":"item.checkMod != 0"},{"value":-2,"when":"params.wireless"},{"value":-1,"when":"params.crown"},{"value":"params.modifier","when":"has(params.modifier)"}]},{"id":"pay","kind":"changes","when":"item.accessCost > 0","changes":[{"type":"adjust","field":"hacking.access.spent","by":"item.accessCost"}]},{"id":"result","kind":"outcome","result":"flags.dc < 0 ? 'rolled' : steps.check.band","data":{"total":"steps.check.total"}}]},{"id":"cast-spell","tags":["magic","spell"],"available":"magic.mage && self.prepared","params":{"commit":{"type":"enum","values":["scene","day"],"optional":true},"overcast":{"type":"boolean","default":false}},"results":["cast","overcast"],"steps":[{"id":"start","kind":"branch","cases":[{"when":true,"flags":{"commit":"item.effort == 'either' ? (has(params.commit) ? params.commit : 'scene')\n : item.effort"}}]},{"id":"effort","kind":"changes","when":"!params.overcast && flags.commit != 'none'","changes":[{"type":"adjust","when":"flags.commit == 'scene'","field":"effort.mage.scene","by":1},{"type":"adjust","when":"flags.commit == 'day'","field":"effort.mage.day","by":1}]},{"id":"overcasting","kind":"roll","when":"params.overcast","tags":["overcast"],"bands":"overcast","parts":[{"dice":"1d20"},{"field":"'skills.cast.level'"},{"field":"'attributes.con.mod'"},{"value":-2,"when":"flags.commit == 'day'"}]},{"id":"strain","kind":"changes","when":"params.overcast","changes":[{"type":"adjust","when":"!(steps.overcasting.band in ['death', 'mortal'])","field":"strain.temporary","by":"steps.overcasting.band == 'unconscious' ? 4 : steps.overcasting.band == 'stunned' ? 2 : 1"},{"type":"set","when":"steps.overcasting.band == 'mortal'","field":"hp.current","value":0}]},{"id":"result","kind":"outcome","result":"params.overcast ? 'overcast' : 'cast'","data":{"consequence":"params.overcast ? steps.overcasting.band : 'none'"}}]},{"id":"summon-spirit","tags":["magic","summoning"],"available":"magic.summoner","params":{"earlier":{"type":"integer","default":0,"min":0}},"results":["summoned"],"steps":[{"id":"commit","kind":"changes","changes":[{"type":"adjust","field":"effort.summoner.day","by":"self.cost + (self.ritual ? 0 : params.earlier)"}]},{"id":"result","kind":"outcome","result":"'summoned'"}]},{"id":"attack","tags":["attack"],"available":"(self.equipped || 'standard' in item.tags || 'implant' in item.tags)\n && !('trap' in item.tags) && (!has(item.magazine) || self.loaded >= 1)","params":{"attribute":{"type":"enum","values":["str","dex","wis"],"optional":true},"thrown":{"type":"boolean","default":false},"burst":{"type":"boolean","default":false},"lethal":{"type":"boolean","optional":true},"targetAc":{"type":"integer","optional":true},"targetTrauma":{"type":"integer","optional":true},"modifier":{"type":"integer","optional":true}},"participants":{"target":{"max":1,"fields":{"ac.ranged":{"type":"integer"},"ac.melee":{"type":"integer"},"trauma.target":{"type":"integer","default":6}}}},"results":["hit","miss","rolled"],"steps":[{"id":"start","kind":"branch","cases":[{"when":true,"flags":{"ranged":"has(item.rangeNormal) && (!('melee' in item.tags) || params.thrown)","thrown":"'thrown' in item.tags\n || (params.thrown && has(item.rangeNormal) && 'melee' in item.tags)","attributes":"item.attribute == 'str-dex' ? ['str', 'dex']\n : item.attribute == 'none' ? [] : [item.attribute]","burst":"params.burst && 'burst' in item.tags && self.loaded >= 3","nonlethal":"has(params.lethal) ? !params.lethal : 'nonlethal' in item.tags"}}]},{"id":"pick","kind":"branch","cases":[{"when":true,"flags":{"attribute":"has(params.attribute) && params.attribute in flags.attributes ? params.attribute\n : size(flags.attributes) == 0 ? ''\n : sortList(flags.attributes, -fieldOf('attributes.{attribute}.mod', x))[0]","skill":"flags.thrown ? max(skills.shoot.level, skills.stab.level, skills.exert.level)\n : fieldOf('skills.{skill}.level', item.skill)","ac":"'grenade' in item.tags ? 10\n : size(participants.target) > 0\n ? (flags.ranged ? participants.target[0].ac.ranged\n : participants.target[0].ac.melee)\n : has(params.targetAc) ? params.targetAc : -1","meleeAc":"size(participants.target) > 0 ? participants.target[0].ac.melee\n : has(params.targetAc) ? params.targetAc : -1","traumaTarget":"size(participants.target) > 0 ? participants.target[0].trauma.target\n : has(params.targetTrauma) ? params.targetTrauma : 6"}}]},{"id":"mod","kind":"branch","cases":[{"when":true,"flags":{"attrMod":"flags.attribute == '' ? 0 : fieldOf('attributes.{attribute}.mod', flags.attribute)","skillDamage":"'unarmed' in item.tags ? 0\n : flags.thrown ? max(combat.meleeSkillDamage, combat.rangedSkillDamage)\n : flags.ranged ? combat.rangedSkillDamage : combat.meleeSkillDamage","meleeHit":"!('unarmed' in item.tags) && (!flags.ranged || flags.thrown)\n ? combat.meleeHitBonus : 0"}}]},{"id":"hit","kind":"roll","tags":["attack",{"formula":"flags.ranged ? 'attack.ranged' : 'attack.melee'"},{"formula":"'skill.' + item.skill"}],"bands":"hit","parts":[{"dice":"1d20"},{"field":"'combat.attackBonus'"},{"value":"flags.attrMod","tags":["attack.attribute"]},{"value":"flags.skill >= 0 ? flags.skill : -2","tags":["attack.skill"]},{"value":"item.attackBonus","when":"item.attackBonus != 0"},{"value":"flags.meleeHit","when":"flags.meleeHit != 0"},{"value":2,"when":"flags.burst","tags":["attack.burst"]},{"value":"params.modifier","when":"has(params.modifier)"}]},{"id":"landed","kind":"branch","cases":[{"when":true,"flags":{"hit":"flags.ac < 0 || steps.hit.band == 'hit'","shock":"has(item.shockDamage) && item.shockDamage > 0 && !flags.ranged\n && (!has(item.shockAc) || flags.meleeAc < 0\n || min(flags.meleeAc, combat.shockAc) <= item.shockAc)\n ? max(0, item.shockDamage + flags.attrMod + item.shockBonus\n + combat.shockBonus + combat.damageBonus + flags.skillDamage)\n : 0"}}]},{"id":"damage","kind":"roll","when":"flags.hit","tags":["damage",{"formula":"flags.ranged ? 'damage.ranged' : 'damage.melee'"},{"formula":"'skill.' + item.skill"}],"parts":[{"dice":"item.damage"},{"value":"flags.attrMod","tags":["damage.attribute"]},{"value":2,"when":"flags.burst","tags":["damage.burst"]},{"value":"item.damageBonus","when":"item.damageBonus != 0"},{"value":"flags.skillDamage","when":"flags.skillDamage != 0","tags":["damage.skill"]},{"field":"'combat.damageBonus'"},{"value":"skills.punch.level","when":"'unarmed' in item.tags && skills.punch.level > 0","tags":["damage.punch"]}]},{"id":"trauma","kind":"roll","when":"flags.hit && has(item.traumaDie) && !flags.nonlethal","tags":["trauma"],"bands":"trauma","parts":[{"dice":"item.traumaDie"},{"value":"item.traumaDieBonus","when":"item.traumaDieBonus != 0"},{"field":"'combat.traumaBonus'"}]},{"id":"total","kind":"branch","cases":[{"when":"flags.hit","flags":{"traumatic":"has(steps.trauma) && steps.trauma.band == 'traumatic'","dealt":"max(0, max(steps.damage.total, flags.shock))\n * (has(steps.trauma) && steps.trauma.band == 'traumatic' ? item.traumaRating : 1)"}},{"when":true,"flags":{"traumatic":false,"dealt":"flags.shock"}}]},{"id":"bonusRoll","kind":"changes","when":"situational.bonusRoll != 'none' && arts.bonusRolls.used < arts.bonusRolls.max\n && (situational.bonusRoll == 'hit' || flags.hit)","changes":[{"type":"adjust","field":"arts.bonusRolls.used","by":1}]},{"id":"ammo","kind":"changes","when":"has(item.magazine)","changes":[{"type":"adjustState","entry":"self","key":"loaded","by":"flags.burst ? -3 : -1"}]},{"id":"deal","kind":"changes","when":"flags.dealt > 0","to":"target","changes":[{"type":"adjust","field":"hp.current","by":"-flags.dealt","tags":["damage","damage.weapon",{"formula":"flags.nonlethal ? ['damage.nonlethal'] : []"},{"formula":"flags.traumatic ? ['damage.traumatic'] : []"}]}]},{"id":"result","kind":"outcome","result":"flags.ac < 0 ? 'rolled' : flags.hit ? 'hit' : 'miss'","data":{"damage":"flags.dealt","traumatic":"flags.traumatic","shock":"flags.shock"}}]},{"id":"reload","tags":["reload"],"available":"has(item.magazine) && self.loaded < item.magazine","results":["reloaded"],"steps":[{"id":"fill","kind":"changes","changes":[{"type":"setState","entry":"self","key":"loaded","value":"item.magazine"}]},{"id":"result","kind":"outcome","result":"'reloaded'"}]}],"fields":{"soak.max":{"type":"integer","formula":"sumCopies(copy.fields.soak, copy.type == 'armor' && copy.equipped)"},"soak.current":{"type":"integer","formula":"sumCopies(copy.fields.soak - copy.state.soakUsed, copy.type == 'armor' && copy.equipped)"},"armor.heavy":{"type":"integer","formula":"sumCopies(copy.fields.heavy, copy.type == 'armor' && copy.equipped)"},"attributes.str.base":{"type":"integer","input":true,"default":10,"min":3,"max":18,"tags":["attribute-base","attr.str"]},"attributes.dex.base":{"type":"integer","input":true,"default":10,"min":3,"max":18,"tags":["attribute-base","attr.dex"]},"attributes.con.base":{"type":"integer","input":true,"default":10,"min":3,"max":18,"tags":["attribute-base","attr.con"]},"attributes.int.base":{"type":"integer","input":true,"default":10,"min":3,"max":18,"tags":["attribute-base","attr.int"]},"attributes.wis.base":{"type":"integer","input":true,"default":10,"min":3,"max":18,"tags":["attribute-base","attr.wis"]},"attributes.cha.base":{"type":"integer","input":true,"default":10,"min":3,"max":18,"tags":["attribute-base","attr.cha"]},"attributes.str.score":{"type":"integer","formula":"attributes.str.base","tags":["attribute","attr.str"]},"attributes.dex.score":{"type":"integer","formula":"attributes.dex.base","tags":["attribute","attr.dex"]},"attributes.con.score":{"type":"integer","formula":"attributes.con.base","tags":["attribute","attr.con"]},"attributes.int.score":{"type":"integer","formula":"attributes.int.base","tags":["attribute","attr.int"]},"attributes.wis.score":{"type":"integer","formula":"attributes.wis.base","tags":["attribute","attr.wis"]},"attributes.cha.score":{"type":"integer","formula":"attributes.cha.base","tags":["attribute","attr.cha"]},"attributes.str.scoreMod":{"type":"integer","tags":["attribute-score-mod","attr.str"],"formula":"attributes.str.score >= 18 ? 2 : attributes.str.score >= 14 ? 1\n : attributes.str.score >= 8 ? 0 : attributes.str.score >= 4 ? -1 : -2"},"attributes.dex.scoreMod":{"type":"integer","tags":["attribute-score-mod","attr.dex"],"formula":"attributes.dex.score >= 18 ? 2 : attributes.dex.score >= 14 ? 1\n : attributes.dex.score >= 8 ? 0 : attributes.dex.score >= 4 ? -1 : -2"},"attributes.con.scoreMod":{"type":"integer","tags":["attribute-score-mod","attr.con"],"formula":"attributes.con.score >= 18 ? 2 : attributes.con.score >= 14 ? 1\n : attributes.con.score >= 8 ? 0 : attributes.con.score >= 4 ? -1 : -2"},"attributes.int.scoreMod":{"type":"integer","tags":["attribute-score-mod","attr.int"],"formula":"attributes.int.score >= 18 ? 2 : attributes.int.score >= 14 ? 1\n : attributes.int.score >= 8 ? 0 : attributes.int.score >= 4 ? -1 : -2"},"attributes.wis.scoreMod":{"type":"integer","tags":["attribute-score-mod","attr.wis"],"formula":"attributes.wis.score >= 18 ? 2 : attributes.wis.score >= 14 ? 1\n : attributes.wis.score >= 8 ? 0 : attributes.wis.score >= 4 ? -1 : -2"},"attributes.cha.scoreMod":{"type":"integer","tags":["attribute-score-mod","attr.cha"],"formula":"attributes.cha.score >= 18 ? 2 : attributes.cha.score >= 14 ? 1\n : attributes.cha.score >= 8 ? 0 : attributes.cha.score >= 4 ? -1 : -2"},"attributes.str.modBonus":{"type":"integer","formula":"0","tags":["attribute-mod-bonus","attr.str"]},"attributes.dex.modBonus":{"type":"integer","formula":"0","tags":["attribute-mod-bonus","attr.dex"]},"attributes.con.modBonus":{"type":"integer","formula":"0","tags":["attribute-mod-bonus","attr.con"]},"attributes.int.modBonus":{"type":"integer","formula":"0","tags":["attribute-mod-bonus","attr.int"]},"attributes.wis.modBonus":{"type":"integer","formula":"0","tags":["attribute-mod-bonus","attr.wis"]},"attributes.cha.modBonus":{"type":"integer","formula":"0","tags":["attribute-mod-bonus","attr.cha"]},"attributes.str.modCap":{"type":"integer","formula":"2","tags":["attribute-mod-cap","attr.str"]},"attributes.dex.modCap":{"type":"integer","formula":"2","tags":["attribute-mod-cap","attr.dex"]},"attributes.con.modCap":{"type":"integer","formula":"2","tags":["attribute-mod-cap","attr.con"]},"attributes.int.modCap":{"type":"integer","formula":"2","tags":["attribute-mod-cap","attr.int"]},"attributes.wis.modCap":{"type":"integer","formula":"2","tags":["attribute-mod-cap","attr.wis"]},"attributes.cha.modCap":{"type":"integer","formula":"2","tags":["attribute-mod-cap","attr.cha"]},"attributes.str.mod":{"type":"integer","tags":["attribute-mod","attr.str"],"formula":"max(-3, min(max(attributes.str.modCap, attributes.str.scoreMod),\n attributes.str.scoreMod + attributes.str.modBonus))"},"attributes.dex.mod":{"type":"integer","tags":["attribute-mod","attr.dex"],"formula":"max(-3, min(max(attributes.dex.modCap, attributes.dex.scoreMod),\n attributes.dex.scoreMod + attributes.dex.modBonus))"},"attributes.con.mod":{"type":"integer","tags":["attribute-mod","attr.con"],"formula":"max(-3, min(max(attributes.con.modCap, attributes.con.scoreMod),\n attributes.con.scoreMod + attributes.con.modBonus))"},"attributes.int.mod":{"type":"integer","tags":["attribute-mod","attr.int"],"formula":"max(-3, min(max(attributes.int.modCap, attributes.int.scoreMod),\n attributes.int.scoreMod + attributes.int.modBonus))"},"attributes.wis.mod":{"type":"integer","tags":["attribute-mod","attr.wis"],"formula":"max(-3, min(max(attributes.wis.modCap, attributes.wis.scoreMod),\n attributes.wis.scoreMod + attributes.wis.modBonus))"},"attributes.cha.mod":{"type":"integer","tags":["attribute-mod","attr.cha"],"formula":"max(-3, min(max(attributes.cha.modCap, attributes.cha.scoreMod),\n attributes.cha.scoreMod + attributes.cha.modBonus))"},"attributes.modTotal":{"type":"integer","formula":"sumList(['str', 'dex', 'con', 'int', 'wis', 'cha'],\n fieldOf('attributes.{attribute}.base', x) >= 18 ? 2\n : fieldOf('attributes.{attribute}.base', x) >= 14 ? 1\n : fieldOf('attributes.{attribute}.base', x) >= 8 ? 0\n : fieldOf('attributes.{attribute}.base', x) >= 4 ? -1 : -2)"},"campaign.magic":{"type":"boolean","input":true,"default":false},"campaign.alienation":{"type":"boolean","input":true,"default":false},"level":{"type":"integer","input":true,"default":1,"min":1,"max":10},"xp.current":{"type":"integer","input":true,"default":0,"min":0},"xp.track":{"type":"enum","values":["fast","slow"],"input":true,"default":"fast"},"xp.next":{"type":"integer","formula":"level >= 10 ? 0\n : (xp.track == 'fast' ? [0, 3, 6, 12, 18, 27, 39, 54, 72, 93]\n : [0, 6, 15, 24, 36, 51, 69, 87, 105, 139])[level]"},"hp.rolled":{"type":"integer","input":true,"default":1,"min":1},"hp.max":{"type":"integer","formula":"hp.rolled","min":1},"hp.current":{"type":"integer","input":true,"default":0,"min":0,"max":"hp.max"},"hp.frail":{"type":"boolean","input":true,"default":false},"saves.physical":{"type":"integer","tags":["save","save.physical"],"formula":"16 - level - max(attributes.str.mod, attributes.con.mod)"},"saves.evasion":{"type":"integer","tags":["save","save.evasion"],"formula":"16 - level - max(attributes.dex.mod, attributes.int.mod)"},"saves.mental":{"type":"integer","tags":["save","save.mental"],"formula":"16 - level - max(attributes.wis.mod, attributes.cha.mod)"},"saves.luck":{"type":"integer","tags":["save","save.luck"],"formula":"16 - level"},"combat.attackBonus":{"type":"integer","formula":"floor(level / 2)"},"combat.damageBonus":{"type":"integer","formula":"0"},"combat.traumaBonus":{"type":"integer","formula":"0"},"combat.initiative":{"type":"integer","formula":"attributes.dex.mod"},"combat.move":{"type":"integer","formula":"10"},"trauma.target":{"type":"integer","formula":"6"},"ac.ranged.base":{"type":"integer","formula":"10"},"ac.melee.base":{"type":"integer","formula":"10"},"ac.ranged":{"type":"integer","formula":"ac.ranged.base + attributes.dex.mod"},"ac.melee":{"type":"integer","formula":"ac.melee.base + attributes.dex.mod"},"money":{"type":"integer","input":true,"default":0,"min":0},"lifestyle":{"type":"enum","values":["squatter","slum","middle","fine","luxury"],"input":true,"default":"middle"},"lifestyle.strain":{"type":"integer","formula":"[-2, -1, 0, 1, 2][indexOf(['squatter', 'slum', 'middle', 'fine', 'luxury'], lifestyle)]"},"languages.extra":{"type":"integer","formula":"(skills.know.level >= 1 ? 2 : skills.know.level >= 0 ? 1 : 0)\n + (skills.connect.level >= 1 ? 2 : skills.connect.level >= 0 ? 1 : 0)"},"languages.known":{"type":"string","input":true,"default":""},"skillPoints.unspent":{"type":"integer","input":true,"default":0,"min":0},"advancement.attributeBoosts":{"type":"integer","input":true,"default":0,"min":0,"max":5},"underdog":{"type":"boolean","input":true,"default":false},"goal":{"type":"string","input":true,"default":""},"cyber.eyes":{"type":"boolean","formula":"countCopies(copy.type == 'cyberware' && 'cybereyes' in copy.tags) > 0"},"cyber.plugJack":{"type":"integer","formula":"0"},"cyber.plugWiring":{"type":"boolean","formula":"false"},"cyber.ears":{"type":"boolean","formula":"countCopies(copy.type == 'cyberware' && 'cyberears' in copy.tags) > 0"},"strain.cyber":{"type":"decimal","formula":"sumCopies(copy.fields.strain\n * ((copy.fields.eyeMod && cyber.eyes) || (copy.fields.earMod && cyber.ears) ? 0.5 : 1),\n copy.type == 'cyberware')"},"strain.cyberIgnored":{"type":"decimal","formula":"0"},"strain.maintenanceRelief":{"type":"integer","input":true,"default":0,"min":0,"max":2},"strain.otherPermanent":{"type":"decimal","input":true,"default":0,"min":0},"strain.permanent":{"type":"decimal","formula":"max(0, strain.cyber - strain.cyberIgnored - strain.maintenanceRelief) + strain.otherPermanent"},"strain.temporary":{"type":"integer","input":true,"default":0,"min":0},"strain.total":{"type":"decimal","formula":"strain.permanent + strain.temporary","limits":{"max":"strain.max"}},"strain.constitution":{"type":"integer","formula":"attributes.con.score"},"strain.max":{"type":"integer","formula":"strain.constitution + lifestyle.strain"},"cyber.wiredBudget":{"type":"integer","formula":"0"},"cyber.wiredUsed":{"type":"integer","formula":"sumCopies(copy.fields.cost, copy.type == 'cyberware' && copy.state.wired)"},"alienation.permanent":{"type":"integer","formula":"sumCopies(ceil(copy.fields.strain\n * ((copy.fields.eyeMod && cyber.eyes) || (copy.fields.earMod && cyber.ears) ? 0.5 : 1))\n + (copy.fields.category == 'nerve' ? 2 : 0), copy.type == 'cyberware')"},"alienation.current":{"type":"integer","input":true,"default":0,"min":0},"alienation.max":{"type":"integer","formula":"attributes.wis.score"},"alienation.total":{"type":"integer","formula":"max(alienation.permanent, alienation.current)","limits":{"max":"campaign.alienation ? alienation.max : 1000"}},"drones.attackBonus":{"type":"integer","formula":"combat.attackBonus + max(attributes.int.mod, attributes.dex.mod)\n + max(skills.drive.level, skills.program.level)"},"drones.commandable":{"type":"integer","formula":"1"},"edges.taken":{"type":"set","of":"edge"},"hp.dieBonus":{"type":"integer","formula":"0"},"skillPoints.perLevel":{"type":"integer","formula":"3"},"foci.allowed":{"type":"integer","formula":"1 + (level >= 2 ? 1 : 0) + (level >= 5 ? 1 : 0) + (level >= 7 ? 1 : 0) + (level >= 10 ? 1 : 0)"},"foci.taken":{"type":"integer","formula":"sumCopies(copy.state.level, copy.type == 'focus')"},"enc.readied":{"type":"integer","formula":"sumCopies(copy.fields.enc * copy.quantity,\n has(copy.fields.enc) && copy.equipped && !('worn' in copy.tags))","limits":{"max":"enc.readiedMax + 4"}},"enc.stowed":{"type":"integer","formula":"sumCopies(copy.fields.enc * copy.quantity, has(copy.fields.enc) && !copy.equipped)","limits":{"max":"enc.stowedMax + 8"}},"enc.readiedMax":{"type":"integer","formula":"floor(attributes.str.score / 2)"},"enc.stowedMax":{"type":"integer","formula":"attributes.str.score"},"enc.overload":{"type":"integer","formula":"min(2, max(0, max(ceil((enc.readied - enc.readiedMax) / 2),\n ceil((enc.stowed - enc.stowedMax) / 4))))"},"maintenance.multiplier":{"type":"integer","formula":"1"},"maintenance.fixBonus":{"type":"integer","formula":"0"},"maintenance.max":{"type":"integer","formula":"max(0, attributes.int.mod + attributes.con.mod\n + 3 * min(5, max(0, skills.fix.level + maintenance.fixBonus))) * maintenance.multiplier"},"maintenance.used":{"type":"integer","input":true,"default":0,"min":0},"budget.vehicle":{"type":"integer","formula":"0"},"budget.drone":{"type":"integer","formula":"0"},"budget.vehicleUsed":{"type":"integer","formula":"sumCopies(copy.fields.cost, copy.type == 'vehicle' && copy.state.focusGear)"},"budget.droneUsed":{"type":"integer","formula":"sumCopies(copy.fields.cost, copy.type == 'drone' && copy.state.focusGear)"},"hacking.deck.bonusAccess":{"type":"integer","formula":"0"},"hacking.memory.max":{"type":"integer","formula":"0"},"hacking.cpu":{"type":"integer","formula":"0"},"hacking.shielding.max":{"type":"integer","formula":"0"},"hacking.shielding.current":{"type":"integer","formula":"maxCopies(copy.fields.shielding - copy.state.shieldingUsed,\n copy.type == 'cyberdeck' && copy.equipped)"},"hacking.access.max":{"type":"integer","formula":"max(0, attributes.int.mod + skills.program.level + hacking.deck.bonusAccess)"},"hacking.access.spent":{"type":"integer","input":true,"default":0,"min":0},"hacking.access.current":{"type":"integer","formula":"max(0, hacking.access.max - hacking.access.spent)"},"hacking.datafiles":{"type":"integer","input":true,"default":0,"min":0},"hacking.memory.perElement":{"type":"decimal","formula":"1"},"hacking.memory.used":{"type":"integer","formula":"ceil(countCopies(copy.type == 'program') * hacking.memory.perElement) + hacking.datafiles","limits":{"max":"hacking.memory.max"}},"hacking.programming.max":{"type":"integer","formula":"skills.program.level >= 1 ? 2 * skills.program.level : 0"},"hacking.programming.used":{"type":"integer","formula":"countCopies(copy.type == 'program' && copy.state.source == 'written')","limits":{"max":"hacking.programming.max"}},"magic.mage":{"type":"boolean","formula":"false"},"magic.summoner":{"type":"boolean","formula":"false"},"magic.graced":{"type":"boolean","formula":"false"},"magic.cyberPenalty":{"type":"integer","formula":"ceil(sumCopies(max(1, copy.fields.strain), copy.type == 'cyberware'))"},"effort.mage.max":{"type":"integer","formula":"magic.mage ? max(1, max(attributes.int.mod, attributes.wis.mod) + skills.cast.level\n - magic.cyberPenalty) : 0"},"effort.mage.scene":{"type":"integer","input":true,"default":0,"min":0},"effort.mage.day":{"type":"integer","input":true,"default":0,"min":0},"effort.mage.current":{"type":"integer","formula":"max(0, effort.mage.max - effort.mage.scene - effort.mage.day)"},"spells.preparedMax":{"type":"integer","formula":"magic.mage ? max(0, ceil(level / 2) + skills.cast.level) : 0"},"spells.prepared":{"type":"integer","formula":"countCopies(copy.type == 'spell' && copy.state.prepared)","limits":{"max":"spells.preparedMax"}},"effort.summoner.max":{"type":"integer","formula":"magic.summoner ? max(1, max(attributes.con.mod, attributes.cha.mod) + skills.summon.level\n - magic.cyberPenalty) : 0"},"effort.summoner.scene":{"type":"integer","input":true,"default":0,"min":0},"effort.summoner.day":{"type":"integer","input":true,"default":0,"min":0},"effort.summoner.current":{"type":"integer","formula":"max(0, effort.summoner.max - effort.summoner.scene - effort.summoner.day)"},"arts.points":{"type":"integer","formula":"magic.graced ? max(0, [2, 3, 4, 6, 6, 7, 7, 9, 10, 11][level - 1]\n - (countCopies(copy.type == 'cyberware') > 0 ? magic.cyberPenalty : 0)) : 0"},"arts.spent":{"type":"integer","formula":"sumCopies(copy.fields.cost, copy.type == 'art')","limits":{"max":"arts.points"}},"arts.bonusRolls.max":{"type":"integer","formula":0},"arts.bonusRolls.used":{"type":"integer","input":true,"default":0,"min":0,"max":"max(0, arts.bonusRolls.max)"},"skills.administer.base":{"type":"integer","input":true,"default":-1,"min":-1,"max":4,"tags":["skill-base","skill.administer"]},"skills.connect.base":{"type":"integer","input":true,"default":-1,"min":-1,"max":4,"tags":["skill-base","skill.connect"]},"skills.drive.base":{"type":"integer","input":true,"default":-1,"min":-1,"max":4,"tags":["skill-base","skill.drive"]},"skills.exert.base":{"type":"integer","input":true,"default":-1,"min":-1,"max":4,"tags":["skill-base","skill.exert"]},"skills.fix.base":{"type":"integer","input":true,"default":-1,"min":-1,"max":4,"tags":["skill-base","skill.fix"]},"skills.heal.base":{"type":"integer","input":true,"default":-1,"min":-1,"max":4,"tags":["skill-base","skill.heal"]},"skills.know.base":{"type":"integer","input":true,"default":-1,"min":-1,"max":4,"tags":["skill-base","skill.know"]},"skills.lead.base":{"type":"integer","input":true,"default":-1,"min":-1,"max":4,"tags":["skill-base","skill.lead"]},"skills.notice.base":{"type":"integer","input":true,"default":-1,"min":-1,"max":4,"tags":["skill-base","skill.notice"]},"skills.perform.base":{"type":"integer","input":true,"default":-1,"min":-1,"max":4,"tags":["skill-base","skill.perform"]},"skills.program.base":{"type":"integer","input":true,"default":-1,"min":-1,"max":4,"tags":["skill-base","skill.program"]},"skills.punch.base":{"type":"integer","input":true,"default":-1,"min":-1,"max":4,"tags":["skill-base","skill.punch"]},"skills.shoot.base":{"type":"integer","input":true,"default":-1,"min":-1,"max":4,"tags":["skill-base","skill.shoot"]},"skills.sneak.base":{"type":"integer","input":true,"default":-1,"min":-1,"max":4,"tags":["skill-base","skill.sneak"]},"skills.stab.base":{"type":"integer","input":true,"default":-1,"min":-1,"max":4,"tags":["skill-base","skill.stab"]},"skills.survive.base":{"type":"integer","input":true,"default":-1,"min":-1,"max":4,"tags":["skill-base","skill.survive"]},"skills.talk.base":{"type":"integer","input":true,"default":-1,"min":-1,"max":4,"tags":["skill-base","skill.talk"]},"skills.trade.base":{"type":"integer","input":true,"default":-1,"min":-1,"max":4,"tags":["skill-base","skill.trade"]},"skills.work.base":{"type":"integer","input":true,"default":-1,"min":-1,"max":4,"tags":["skill-base","skill.work"]},"skills.cast.base":{"type":"integer","input":true,"default":-1,"min":-1,"max":4,"tags":["skill-base","skill.cast"]},"skills.summon.base":{"type":"integer","input":true,"default":-1,"min":-1,"max":4,"tags":["skill-base","skill.summon"]},"skills.administer.credit":{"type":"integer","input":true,"default":0,"min":0,"max":4},"skills.connect.credit":{"type":"integer","input":true,"default":0,"min":0,"max":4},"skills.drive.credit":{"type":"integer","input":true,"default":0,"min":0,"max":4},"skills.exert.credit":{"type":"integer","input":true,"default":0,"min":0,"max":4},"skills.fix.credit":{"type":"integer","input":true,"default":0,"min":0,"max":4},"skills.heal.credit":{"type":"integer","input":true,"default":0,"min":0,"max":4},"skills.know.credit":{"type":"integer","input":true,"default":0,"min":0,"max":4},"skills.lead.credit":{"type":"integer","input":true,"default":0,"min":0,"max":4},"skills.notice.credit":{"type":"integer","input":true,"default":0,"min":0,"max":4},"skills.perform.credit":{"type":"integer","input":true,"default":0,"min":0,"max":4},"skills.program.credit":{"type":"integer","input":true,"default":0,"min":0,"max":4},"skills.punch.credit":{"type":"integer","input":true,"default":0,"min":0,"max":4},"skills.shoot.credit":{"type":"integer","input":true,"default":0,"min":0,"max":4},"skills.sneak.credit":{"type":"integer","input":true,"default":0,"min":0,"max":4},"skills.stab.credit":{"type":"integer","input":true,"default":0,"min":0,"max":4},"skills.survive.credit":{"type":"integer","input":true,"default":0,"min":0,"max":4},"skills.talk.credit":{"type":"integer","input":true,"default":0,"min":0,"max":4},"skills.trade.credit":{"type":"integer","input":true,"default":0,"min":0,"max":4},"skills.work.credit":{"type":"integer","input":true,"default":0,"min":0,"max":4},"skills.cast.credit":{"type":"integer","input":true,"default":0,"min":0,"max":4},"skills.summon.credit":{"type":"integer","input":true,"default":0,"min":0,"max":4},"skills.administer.level":{"type":"integer","formula":"skills.administer.base","tags":["skill","skill.administer"]},"skills.connect.level":{"type":"integer","formula":"skills.connect.base","tags":["skill","skill.connect"]},"skills.drive.level":{"type":"integer","formula":"skills.drive.base","tags":["skill","skill.drive"]},"skills.exert.level":{"type":"integer","formula":"skills.exert.base","tags":["skill","skill.exert"]},"skills.fix.level":{"type":"integer","formula":"skills.fix.base","tags":["skill","skill.fix"]},"skills.heal.level":{"type":"integer","formula":"skills.heal.base","tags":["skill","skill.heal"]},"skills.know.level":{"type":"integer","formula":"skills.know.base","tags":["skill","skill.know"]},"skills.lead.level":{"type":"integer","formula":"skills.lead.base","tags":["skill","skill.lead"]},"skills.notice.level":{"type":"integer","formula":"skills.notice.base","tags":["skill","skill.notice"]},"skills.perform.level":{"type":"integer","formula":"skills.perform.base","tags":["skill","skill.perform"]},"skills.program.level":{"type":"integer","formula":"skills.program.base","tags":["skill","skill.program"]},"skills.punch.level":{"type":"integer","formula":"skills.punch.base","tags":["skill","skill.punch"]},"skills.shoot.level":{"type":"integer","formula":"skills.shoot.base","tags":["skill","skill.shoot"]},"skills.sneak.level":{"type":"integer","formula":"skills.sneak.base","tags":["skill","skill.sneak"]},"skills.stab.level":{"type":"integer","formula":"skills.stab.base","tags":["skill","skill.stab"]},"skills.survive.level":{"type":"integer","formula":"skills.survive.base","tags":["skill","skill.survive"]},"skills.talk.level":{"type":"integer","formula":"skills.talk.base","tags":["skill","skill.talk"]},"skills.trade.level":{"type":"integer","formula":"skills.trade.base","tags":["skill","skill.trade"]},"skills.work.level":{"type":"integer","formula":"skills.work.base","tags":["skill","skill.work"]},"skills.cast.level":{"type":"integer","formula":"skills.cast.base","tags":["skill","skill.cast"]},"skills.summon.level":{"type":"integer","formula":"skills.summon.base","tags":["skill","skill.summon"]},"skills.work.profession":{"type":"string","input":true,"default":""},"combat.shockAc":{"type":"integer","formula":"99"},"combat.shockBonus":{"type":"integer","formula":"0"},"combat.meleeSkillDamage":{"type":"integer","formula":"0"},"combat.rangedSkillDamage":{"type":"integer","formula":"0"},"combat.meleeHitBonus":{"type":"integer","formula":"0"}},"contentTypes":{"armor":{"carried":true,"equippable":true,"fields":{"cost":{"type":"integer","default":0,"min":0},"enc":{"type":"integer","min":0},"kind":{"type":"enum","values":["clothing","suit","shield"],"required":true},"rangedAc":{"type":"integer","required":true},"meleeAc":{"type":"integer","required":true},"soak":{"type":"integer","default":0,"min":0},"traumaMod":{"type":"integer","default":0},"heavy":{"type":"integer","default":0,"min":0},"obvious":{"type":"boolean","default":false}},"state":{"soakUsed":{"type":"integer","default":0,"min":0}},"effects":[{"id":"ranged-ac","target":"ac.ranged.base","op":"set","value":"item.rangedAc","when":"self.equipped && item.kind != 'shield'"},{"id":"melee-ac","target":"ac.melee.base","op":"set","value":"item.meleeAc","when":"self.equipped && item.kind != 'shield'"},{"id":"shield-ranged","target":"ac.ranged","op":"add","value":"item.rangedAc","when":"self.equipped && item.kind == 'shield'"},{"id":"shield-melee","target":"ac.melee","op":"add","value":"item.meleeAc","when":"self.equipped && item.kind == 'shield'"},{"id":"trauma","target":"trauma.target","op":"add","value":"item.traumaMod","when":"self.equipped && item.traumaMod != 0"},{"id":"soak","target":{"incoming":{"fields":["hp.current"],"tags":["damage"]}},"op":"add","value":"min(item.soak - self.soakUsed, -incoming.amount)","when":"self.equipped && item.soak > self.soakUsed && incoming.amount < 0\n && !('damage.cyberspace' in incoming.tags) && !('damage.direct' in incoming.tags)","then":[{"type":"adjustState","entry":"self","key":"soakUsed","by":"min(item.soak - self.soakUsed, -incoming.amount)"}]}]},"background":{"grantOnly":true,"copies":{"max":0},"fields":{"freeSkill":{"type":"enum","open":true,"required":true,"values":["administer","connect","drive","exert","fix","heal","know","lead","notice","perform","program","punch","shoot","sneak","stab","survive","talk","trade","work","combat"]},"growth1":{"type":"enum","open":true,"required":true,"values":["administer","connect","drive","exert","fix","heal","know","lead","notice","perform","program","punch","shoot","sneak","stab","survive","talk","trade","work","combat","any","any-stat-1","physical-2","mental-2"]},"growth2":{"type":"enum","open":true,"required":true,"values":["administer","connect","drive","exert","fix","heal","know","lead","notice","perform","program","punch","shoot","sneak","stab","survive","talk","trade","work","combat","any","any-stat-1","physical-2","mental-2"]},"growth3":{"type":"enum","open":true,"required":true,"values":["administer","connect","drive","exert","fix","heal","know","lead","notice","perform","program","punch","shoot","sneak","stab","survive","talk","trade","work","combat","any","any-stat-1","physical-2","mental-2"]},"growth4":{"type":"enum","open":true,"required":true,"values":["administer","connect","drive","exert","fix","heal","know","lead","notice","perform","program","punch","shoot","sneak","stab","survive","talk","trade","work","combat","any","any-stat-1","physical-2","mental-2"]},"growth5":{"type":"enum","open":true,"required":true,"values":["administer","connect","drive","exert","fix","heal","know","lead","notice","perform","program","punch","shoot","sneak","stab","survive","talk","trade","work","combat","any","any-stat-1","physical-2","mental-2"]},"growth6":{"type":"enum","open":true,"required":true,"values":["administer","connect","drive","exert","fix","heal","know","lead","notice","perform","program","punch","shoot","sneak","stab","survive","talk","trade","work","combat","any","any-stat-1","physical-2","mental-2"]},"learning1":{"type":"enum","open":true,"required":true,"values":["administer","connect","drive","exert","fix","heal","know","lead","notice","perform","program","punch","shoot","sneak","stab","survive","talk","trade","work","combat","any"]},"learning2":{"type":"enum","open":true,"required":true,"values":["administer","connect","drive","exert","fix","heal","know","lead","notice","perform","program","punch","shoot","sneak","stab","survive","talk","trade","work","combat","any"]},"learning3":{"type":"enum","open":true,"required":true,"values":["administer","connect","drive","exert","fix","heal","know","lead","notice","perform","program","punch","shoot","sneak","stab","survive","talk","trade","work","combat","any"]},"learning4":{"type":"enum","open":true,"required":true,"values":["administer","connect","drive","exert","fix","heal","know","lead","notice","perform","program","punch","shoot","sneak","stab","survive","talk","trade","work","combat","any"]},"learning5":{"type":"enum","open":true,"required":true,"values":["administer","connect","drive","exert","fix","heal","know","lead","notice","perform","program","punch","shoot","sneak","stab","survive","talk","trade","work","combat","any"]},"learning6":{"type":"enum","open":true,"required":true,"values":["administer","connect","drive","exert","fix","heal","know","lead","notice","perform","program","punch","shoot","sneak","stab","survive","talk","trade","work","combat","any"]},"learning7":{"type":"enum","open":true,"required":true,"values":["administer","connect","drive","exert","fix","heal","know","lead","notice","perform","program","punch","shoot","sneak","stab","survive","talk","trade","work","combat","any"]},"learning8":{"type":"enum","open":true,"required":true,"values":["administer","connect","drive","exert","fix","heal","know","lead","notice","perform","program","punch","shoot","sneak","stab","survive","talk","trade","work","combat","any"]}}},"contact":{"nameFrom":"label","state":{"label":{"type":"string","default":""},"bond":{"type":"enum","values":["acquaintance","friend"],"default":"acquaintance"},"about":{"type":"string","default":""}}},"cyberware":{"fields":{"cost":{"type":"integer","default":0,"min":0},"category":{"type":"enum","open":true,"values":["body","head","skin","limb","sensory","medical","nerve"],"required":true},"concealment":{"type":"enum","values":["medical","touch","sight"],"required":true},"strain":{"type":"decimal","default":0,"min":0},"eyeMod":{"type":"boolean","default":false},"earMod":{"type":"boolean","default":false},"triggerStrain":{"type":"integer","min":1},"baseAc":{"type":"integer"},"traumaMod":{"type":"integer","default":0}},"state":{"damaged":{"type":"boolean","default":false},"wired":{"type":"boolean","default":false}},"effects":[{"id":"ranged-ac","target":"ac.ranged.base","op":"set","value":"item.baseAc","when":"has(item.baseAc) && !self.damaged"},{"id":"melee-ac","target":"ac.melee.base","op":"set","value":"item.baseAc","when":"has(item.baseAc) && !self.damaged"},{"id":"trauma","target":"trauma.target","op":"add","value":"item.traumaMod","when":"item.traumaMod != 0 && !self.damaged"}],"actions":[{"use":"trigger-cyber"}]},"skillplug":{"carried":true,"equippable":true,"fields":{"cost":{"type":"integer","default":0,"min":0},"plugLevel":{"type":"integer","required":true,"min":0,"max":3}}},"syndrome":{"fields":{"alienation":{"type":"integer","required":true,"min":0}},"effects":[{"id":"allowance","target":"alienation.max","op":"add","value":"item.alienation"}]},"drone":{"carried":true,"equippable":true,"fields":{"cost":{"type":"integer","default":0,"min":0},"enc":{"type":"integer","min":0},"ac":{"type":"integer","required":true},"traumaTarget":{"type":"integer","required":true},"hp":{"type":"integer","required":true,"min":1},"fittings":{"type":"integer","default":0,"min":0},"fittingsUsed":{"type":"integer","default":0,"min":0},"move":{"type":"integer","required":true,"min":0},"moveKind":{"type":"enum","values":["ground","fly","swim"],"required":true,"open":true},"hardpoints":{"type":"integer","default":0,"min":0}},"state":{"hp":{"type":"integer","default":"item.hp","min":0,"max":"item.hp"},"focusGear":{"type":"boolean","default":false}}},"edge":{"grantOnly":true,"copies":{"max":0},"fields":{"bonusSkill":{"type":"enum","open":true,"values":["administer","connect","drive","exert","fix","heal","know","lead","notice","perform","program","punch","shoot","sneak","stab","survive","talk","trade","work","cast","summon","combat","any"]},"magic":{"type":"boolean","default":false},"startingItems":{"type":"set","of":"string","default":[]},"startingCyber":{"type":"set","of":"string","default":[]},"startingCyberStrain":{"type":"decimal","default":0,"min":0},"programElements":{"type":"integer","default":0,"min":0},"cyberBudget":{"type":"integer","default":0,"min":0},"spells":{"type":"integer","default":0,"min":0},"extraFocus":{"type":"boolean","default":false},"friendContacts":{"type":"integer","default":0,"min":0},"buysArts":{"type":"boolean","default":false},"asksAttribute":{"type":"boolean","default":false}},"effects":[{"id":"taken","target":"edges.taken","op":"grant","value":{"formula":"item.id"}}]},"focus":{"fields":{"maxLevel":{"type":"integer","default":2,"min":1,"max":2},"bonusSkill":{"type":"enum","open":true,"values":["administer","connect","drive","exert","fix","heal","know","lead","notice","perform","program","punch","shoot","sneak","stab","survive","talk","trade","work","combat","any","punch-stab","noncombat"]},"bonusSkill2":{"type":"enum","open":true,"values":["administer","connect","drive","exert","fix","heal","know","lead","notice","perform","program","punch","shoot","sneak","stab","survive","talk","trade","work"]},"levelTwoSkill":{"type":"enum","open":true,"values":["administer","connect","drive","exert","fix","heal","know","lead","notice","perform","program","punch","shoot","sneak","stab","survive","talk","trade","work"]},"startingItems":{"type":"set","of":"string","default":[]},"startingCyber":{"type":"set","of":"string","default":[]},"startingCyberStrain":{"type":"decimal","default":0,"min":0},"gearBudget":{"type":"enum","values":["vehicle","drone"]}},"state":{"level":{"type":"integer","default":1,"min":1,"max":"item.maxLevel"}}},"gear":{"carried":true,"equippable":true,"fields":{"cost":{"type":"integer","default":0,"min":0},"enc":{"type":"integer","min":0}}},"drug":{"carried":true,"fields":{"cost":{"type":"integer","default":0,"min":0},"enc":{"type":"integer","default":1,"min":0},"minHeal":{"type":"integer","min":0},"strain":{"type":"integer","default":0,"min":0},"healDice":{"type":"dice"}},"actions":[{"use":"use-drug"}]},"cyberdeck":{"carried":true,"equippable":true,"fields":{"cost":{"type":"integer","default":0,"min":0},"enc":{"type":"integer","min":0},"bonusAccess":{"type":"integer","default":0},"memory":{"type":"integer","default":0,"min":0},"shielding":{"type":"integer","default":0,"min":0},"cpu":{"type":"integer","default":0,"min":0}},"state":{"shieldingUsed":{"type":"integer","default":0,"min":0}},"effects":[{"id":"access","target":"hacking.deck.bonusAccess","op":"set","value":"item.bonusAccess"},{"id":"memory","target":"hacking.memory.max","op":"set","value":"item.memory"},{"id":"cpu","target":"hacking.cpu","op":"set","value":"item.cpu"},{"id":"shielding","target":"hacking.shielding.max","op":"set","value":"item.shielding"},{"id":"shield","target":{"incoming":{"fields":["hp.current"],"tags":["damage.cyberspace"]}},"op":"add","value":"min(item.shielding - self.shieldingUsed, -incoming.amount)","when":"self.equipped && item.shielding > self.shieldingUsed && incoming.amount < 0","then":[{"type":"adjustState","entry":"self","key":"shieldingUsed","by":"min(item.shielding - self.shieldingUsed, -incoming.amount)"}]}]},"program":{"carried":true,"fields":{"cost":{"type":"integer","default":0,"min":0},"kind":{"type":"enum","values":["verb","subject"],"required":true},"targets":{"type":"set","of":"string","default":[]},"accessCost":{"type":"integer","default":1,"min":0},"checkMod":{"type":"integer","default":0},"subjectType":{"type":"enum","values":["avatar","data","device","cyber","program"],"open":true}},"state":{"source":{"type":"enum","values":["bought","written","edge"],"default":"bought"}},"actions":[{"use":"run-program"}]},"spell":{"fields":{"effort":{"type":"enum","values":["day","scene","either","none"],"required":true},"duration":{"type":"enum","open":true,"values":["instant","scene","concentration","rounds"],"required":true}},"state":{"prepared":{"type":"boolean","default":false}},"actions":[{"use":"cast-spell"}]},"art":{"fields":{"cost":{"type":"integer","required":true,"min":1}}},"spirit":{"nameFrom":"label","fields":{"powerCount":{"type":"integer","default":0,"min":0}},"state":{"label":{"type":"string","default":""},"form":{"type":"enum","values":["spirit-1","spirit-2","spirit-3","physical-1","physical-2","physical-3"],"default":"spirit-1"},"ritual":{"type":"boolean","default":true}},"computed":{"cost":{"type":"integer","formula":"max(1, (item.id == @spirits.spirit ? size(picksOf('powers')) : item.powerCount)\n - (self.ritual ? 1 : 0) - max(0, skills.summon.level))"}},"actions":[{"use":"summon-spirit"}]},"spiritPower":{"grantOnly":true,"copies":{"max":0},"fields":{"minLevel":{"type":"integer","default":1,"min":1},"physicalOnly":{"type":"boolean","default":false}}},"vehicle":{"carried":true,"fields":{"cost":{"type":"integer","default":0,"min":0},"speed":{"type":"integer","required":true},"armor":{"type":"integer","default":0,"min":0},"traumaTarget":{"type":"integer","required":true},"ac":{"type":"integer","required":true},"hp":{"type":"integer","required":true,"min":1},"crew":{"type":"integer","required":true,"min":1},"power":{"type":"integer","required":true,"min":0},"mass":{"type":"integer","required":true,"min":0},"powerUsed":{"type":"integer","default":0,"min":0},"massUsed":{"type":"integer","default":0,"min":0},"size":{"type":"enum","values":["small","medium","large"],"required":true},"hardpoints":{"type":"integer","default":0,"min":0}},"state":{"hp":{"type":"integer","default":"item.hp","min":0,"max":"item.hp"},"focusGear":{"type":"boolean","default":false}}},"weapon":{"carried":true,"equippable":true,"fields":{"cost":{"type":"integer","default":0,"min":0},"enc":{"type":"integer","min":0},"damage":{"type":"dice","required":true},"skill":{"type":"enum","values":["shoot","stab","punch"],"required":true,"open":true},"attribute":{"type":"enum","values":["str","dex","str-dex","wis","none"],"required":true},"rangeNormal":{"type":"integer","min":0},"rangeLong":{"type":"integer","min":0},"magazine":{"type":"integer","min":1},"shockDamage":{"type":"integer","min":0},"shockAc":{"type":"integer","min":0},"traumaDie":{"type":"dice"},"traumaRating":{"type":"integer","min":1},"attackBonus":{"type":"integer","default":0},"damageBonus":{"type":"integer","default":0},"shockBonus":{"type":"integer","default":0},"traumaDieBonus":{"type":"integer","default":0}},"state":{"loaded":{"type":"integer","default":"has(item.magazine) ? item.magazine : 0","min":0,"max":"has(item.magazine) ? item.magazine : 0"}},"actions":[{"use":"attack"},{"use":"reload"}]}},"effects":[{"id":"heavy-armor","target":{"rolls":["skill.sneak","skill.exert"]},"op":"add","value":"-armor.heavy","when":"armor.heavy > 0","tags":["armor.heavy"]},{"id":"overload","target":"combat.move","op":"add","value":"-[0, 3, 5][enc.overload]","when":"enc.overload > 0"}],"families":{"attribute":["str","dex","con","int","wis","cha"],"growthRoll":[1,2,3,4,5,6],"learningRoll":[1,2,3,4,5,6,7,8],"save":["physical","evasion","mental","luck"],"skill":["administer","connect","drive","exert","fix","heal","know","lead","notice","perform","program","punch","shoot","sneak","stab","survive","talk","trade","work","cast","summon"]},"choices":[{"id":"background","from":{"type":"background"}},{"id":"edge","slots":[1,2,5],"unique":"edges","when":"slot < 5 || level >= 5","from":{"type":"edge"},"eligible":"(campaign.magic || !item.magic) && (slot < 5 || !item.magic)"},{"id":"underdog-edge","unique":"edges","when":"underdog","from":{"type":"edge"},"eligible":"!item.magic"}],"followUps":[{"id":"level-up","while":"!character.creating && level < 10 && xp.current >= xp.next","action":"level-up"},{"id":"gain-focus","while":"!character.creating && foci.taken < foci.allowed","action":"gain-focus"}],"constraints":[{"id":"underdog-modifiers","check":"!character.creating || !underdog || attributes.modTotal <= -1"},{"id":"underdog-boosts","check":"!underdog || advancement.attributeBoosts == 0"},{"id":"wired-budget","check":"cyber.wiredUsed <= cyber.wiredBudget"},{"id":"drone-fittings","copies":{"type":"drone"},"check":"item.fittingsUsed <= item.fittings"},{"id":"foci-allowed","check":"foci.taken <= foci.allowed"},{"id":"focus-once","copies":{"type":"focus","where":"!('repeatable' in item.tags)"},"check":"countCopies(copy.item == item.id) <= 1"},{"id":"vehicle-budget","check":"budget.vehicleUsed <= budget.vehicle"},{"id":"drone-budget","check":"budget.droneUsed <= budget.drone"},{"id":"creation-skill-cap","check":"!character.creating || maxList(keysOf('skill'), fieldOf('skills.{skill}.base', x)) <= 1"},{"id":"vehicle-power-mass","copies":{"type":"vehicle"},"check":"item.powerUsed <= item.power && item.massUsed <= item.mass"}],"settings":{"stacking":{"keys":{"skill-dice":"highestOnly"}}},"resultBands":{"check":[{"id":"success","when":"roll.total >= flags.dc","success":true},{"id":"failure","when":true}],"save":[{"id":"failure","when":"roll.kept[0] == 1"},{"id":"success","when":"roll.kept[0] == 20 || roll.total >= flags.target","success":true},{"id":"failure","when":true}],"major-injury":[{"id":"death","when":"roll.total <= 1"},{"id":"internal","when":"roll.total == 2"},{"id":"brain","when":"roll.total == 3"},{"id":"eye","when":"roll.total == 4"},{"id":"gut","when":"roll.total == 5"},{"id":"right-leg","when":"roll.total == 6"},{"id":"left-leg","when":"roll.total == 7"},{"id":"right-arm","when":"roll.total == 8"},{"id":"left-arm","when":"roll.total == 9"},{"id":"system","when":"roll.total == 10"},{"id":"flesh-wound","when":true}],"overcast":[{"id":"death","when":"roll.total <= 1"},{"id":"mortal","when":"roll.total <= 4"},{"id":"unconscious","when":"roll.total <= 8"},{"id":"stunned","when":"roll.total <= 15"},{"id":"dazed","when":"roll.total <= 19"},{"id":"strained","when":true}],"skill-level":[{"id":"untrained","when":"roll.total < 0"},{"id":"level-0","when":"roll.total == 0"},{"id":"level-1","when":"roll.total == 1"},{"id":"level-2","when":"roll.total == 2"},{"id":"level-3","when":"roll.total == 3"},{"id":"level-4","when":true}],"hit":[{"id":"hit","when":"roll.total >= flags.ac","success":true},{"id":"miss","when":true}],"trauma":[{"id":"traumatic","when":"roll.total >= flags.traumaTarget"},{"id":"none","when":true}]},"creation":[{"id":"guided","action":"create-character"},{"id":"random","action":"create-character","params":{"random":true},"random":true}],"display":{"groups":[{"id":"summary","priority":0,"visibility":"primary"},{"id":"attributes","priority":0,"members":{"type":"field","where":"'attribute' in item.tags"}},{"id":"skills","priority":0,"members":{"type":"field","where":"'skill' in item.tags"}},{"id":"saves","priority":1,"members":{"type":"field","where":"'save' in item.tags"}},{"id":"combat","priority":1},{"id":"strain","priority":1},{"id":"hacking","priority":2,"showWhen":"skills.program.base >= 0 || hacking.memory.max > 0 || hacking.cpu > 0"},{"id":"magic","priority":2,"showWhen":"magic.mage || magic.summoner || magic.graced"},{"id":"alienation","priority":2,"showWhen":"campaign.alienation"},{"id":"possessions","priority":2},{"id":"advancement","priority":3},{"id":"training","priority":3,"visibility":"background"},{"id":"campaign","priority":4,"visibility":"background"},{"id":"checks","kind":"actions","priority":0,"members":{"type":"action","where":"'check' in item.tags || 'save' in item.tags"}},{"id":"attacks","kind":"actions","priority":0,"members":{"type":"action","where":"'attack' in item.tags || 'reload' in item.tags"}},{"id":"combat-actions","kind":"actions","priority":1,"members":{"type":"action","where":"'initiative' in item.tags || 'healing' in item.tags || 'injury' in item.tags\n || 'drug' in item.tags || 'cyber' in item.tags"}},{"id":"hacking-actions","kind":"actions","priority":1,"members":{"type":"action","where":"'hacking' in item.tags"}},{"id":"magic-actions","kind":"actions","priority":1,"members":{"type":"action","where":"'magic' in item.tags"}},{"id":"rests","kind":"actions","priority":2,"members":{"type":"action","where":"'rest' in item.tags"}},{"id":"advancement-actions","kind":"actions","priority":3,"visibility":"background","members":{"type":"action","where":"'advancement' in item.tags"}},{"id":"creation","kind":"actions","priority":3,"visibility":"background","members":{"type":"action","where":"'creation' in item.tags || 'building' in item.tags"}},{"id":"background","kind":"content","priority":0,"showWhen":"hasChoice('background')","members":{"type":"background"}},{"id":"edges","kind":"content","priority":0,"showWhen":"hasChoice('edge')","members":{"type":"edge"}},{"id":"foci","kind":"content","priority":0,"members":{"type":"focus"}},{"id":"contacts","kind":"content","priority":1,"members":{"type":"contact"},"sortBy":"self.bond == 'friend' ? 0 : 1"},{"id":"weapons","kind":"content","priority":1,"members":{"type":"weapon"}},{"id":"armor","kind":"content","priority":1,"members":{"type":"armor"}},{"id":"cyberware","kind":"content","priority":1,"members":{"type":"cyberware"},"sectionBy":"item.category"},{"id":"skillplugs","kind":"content","priority":2,"members":{"type":"skillplug"}},{"id":"gear","kind":"content","priority":2,"members":{"type":"gear"}},{"id":"drugs","kind":"content","priority":2,"members":{"type":"drug"}},{"id":"cyberdecks","kind":"content","priority":2,"members":{"type":"cyberdeck"}},{"id":"programs","kind":"content","priority":2,"members":{"type":"program"},"sectionBy":"item.kind"},{"id":"drones","kind":"content","priority":2,"members":{"type":"drone"}},{"id":"vehicles","kind":"content","priority":2,"members":{"type":"vehicle"}},{"id":"spells","kind":"content","priority":2,"showWhen":"magic.mage","members":{"type":"spell"},"sortBy":"self.prepared ? 0 : 1"},{"id":"arts","kind":"content","priority":2,"showWhen":"magic.graced","members":{"type":"art"}},{"id":"spirits","kind":"content","priority":2,"showWhen":"magic.summoner","members":{"type":"spirit"}},{"id":"syndromes","kind":"content","priority":2,"showWhen":"campaign.alienation","members":{"type":"syndrome"}}],"fields":{"level":{"groups":["summary","advancement"],"priority":0},"hp.current":{"groups":["summary"],"priority":1,"input":{"widget":"number"},"with":[{"field":"hp.max","as":"max"}]},"strain.total":{"groups":["summary","strain"],"priority":2,"with":[{"field":"strain.max","as":"max"}]},"ac.ranged":{"groups":["summary","combat"],"priority":3},"ac.melee":{"groups":["summary","combat"],"priority":4},"combat.attackBonus":{"groups":["summary","combat"],"priority":5,"format":"signed"},"trauma.target":{"groups":["summary","combat"],"priority":6},"soak.current":{"groups":["summary","combat"],"priority":7,"showWhen":"soak.max > 0","with":[{"field":"soak.max","as":"max"}]},"attributes.str.score":{"priority":0,"with":[{"field":"attributes.str.mod","as":"modifier"}]},"attributes.dex.score":{"priority":0,"with":[{"field":"attributes.dex.mod","as":"modifier"}]},"attributes.con.score":{"priority":0,"with":[{"field":"attributes.con.mod","as":"modifier"}]},"attributes.int.score":{"priority":0,"with":[{"field":"attributes.int.mod","as":"modifier"}]},"attributes.wis.score":{"priority":0,"with":[{"field":"attributes.wis.mod","as":"modifier"}]},"attributes.cha.score":{"priority":0,"with":[{"field":"attributes.cha.mod","as":"modifier"}]},"attributes.str.mod":{"format":"signed","visibility":"background"},"attributes.dex.mod":{"format":"signed","visibility":"background"},"attributes.con.mod":{"format":"signed","visibility":"background"},"attributes.int.mod":{"format":"signed","visibility":"background"},"attributes.wis.mod":{"format":"signed","visibility":"background"},"attributes.cha.mod":{"format":"signed","visibility":"background"},"attributes.str.base":{"groups":["training"],"priority":0},"attributes.dex.base":{"groups":["training"],"priority":0},"attributes.con.base":{"groups":["training"],"priority":0},"attributes.int.base":{"groups":["training"],"priority":0},"attributes.wis.base":{"groups":["training"],"priority":0},"attributes.cha.base":{"groups":["training"],"priority":0},"attributes.str.scoreMod":{"hidden":true},"attributes.dex.scoreMod":{"hidden":true},"attributes.con.scoreMod":{"hidden":true},"attributes.int.scoreMod":{"hidden":true},"attributes.wis.scoreMod":{"hidden":true},"attributes.cha.scoreMod":{"hidden":true},"attributes.str.modBonus":{"hidden":true},"attributes.dex.modBonus":{"hidden":true},"attributes.con.modBonus":{"hidden":true},"attributes.int.modBonus":{"hidden":true},"attributes.wis.modBonus":{"hidden":true},"attributes.cha.modBonus":{"hidden":true},"attributes.str.modCap":{"hidden":true},"attributes.dex.modCap":{"hidden":true},"attributes.con.modCap":{"hidden":true},"attributes.int.modCap":{"hidden":true},"attributes.wis.modCap":{"hidden":true},"attributes.cha.modCap":{"hidden":true},"attributes.modTotal":{"groups":["training"],"priority":1,"format":"signed"},"skills.administer.level":{"format":{"bands":"skill-level"},"rolls":[{"action":"skill-check","params":{"skill":"skills.administer.level"}}],"showWhen":"!('administer' in ['cast', 'summon']) || campaign.magic || skills.administer.base >= 0"},"skills.connect.level":{"format":{"bands":"skill-level"},"rolls":[{"action":"skill-check","params":{"skill":"skills.connect.level"}}],"showWhen":"!('connect' in ['cast', 'summon']) || campaign.magic || skills.connect.base >= 0"},"skills.drive.level":{"format":{"bands":"skill-level"},"rolls":[{"action":"skill-check","params":{"skill":"skills.drive.level"}}],"showWhen":"!('drive' in ['cast', 'summon']) || campaign.magic || skills.drive.base >= 0"},"skills.exert.level":{"format":{"bands":"skill-level"},"rolls":[{"action":"skill-check","params":{"skill":"skills.exert.level"}}],"showWhen":"!('exert' in ['cast', 'summon']) || campaign.magic || skills.exert.base >= 0"},"skills.fix.level":{"format":{"bands":"skill-level"},"rolls":[{"action":"skill-check","params":{"skill":"skills.fix.level"}}],"showWhen":"!('fix' in ['cast', 'summon']) || campaign.magic || skills.fix.base >= 0"},"skills.heal.level":{"format":{"bands":"skill-level"},"rolls":[{"action":"skill-check","params":{"skill":"skills.heal.level"}}],"showWhen":"!('heal' in ['cast', 'summon']) || campaign.magic || skills.heal.base >= 0"},"skills.know.level":{"format":{"bands":"skill-level"},"rolls":[{"action":"skill-check","params":{"skill":"skills.know.level"}}],"showWhen":"!('know' in ['cast', 'summon']) || campaign.magic || skills.know.base >= 0"},"skills.lead.level":{"format":{"bands":"skill-level"},"rolls":[{"action":"skill-check","params":{"skill":"skills.lead.level"}}],"showWhen":"!('lead' in ['cast', 'summon']) || campaign.magic || skills.lead.base >= 0"},"skills.notice.level":{"format":{"bands":"skill-level"},"rolls":[{"action":"skill-check","params":{"skill":"skills.notice.level"}}],"showWhen":"!('notice' in ['cast', 'summon']) || campaign.magic || skills.notice.base >= 0"},"skills.perform.level":{"format":{"bands":"skill-level"},"rolls":[{"action":"skill-check","params":{"skill":"skills.perform.level"}}],"showWhen":"!('perform' in ['cast', 'summon']) || campaign.magic || skills.perform.base >= 0"},"skills.program.level":{"format":{"bands":"skill-level"},"rolls":[{"action":"skill-check","params":{"skill":"skills.program.level"}}],"showWhen":"!('program' in ['cast', 'summon']) || campaign.magic || skills.program.base >= 0"},"skills.punch.level":{"format":{"bands":"skill-level"},"rolls":[{"action":"skill-check","params":{"skill":"skills.punch.level"}}],"showWhen":"!('punch' in ['cast', 'summon']) || campaign.magic || skills.punch.base >= 0"},"skills.shoot.level":{"format":{"bands":"skill-level"},"rolls":[{"action":"skill-check","params":{"skill":"skills.shoot.level"}}],"showWhen":"!('shoot' in ['cast', 'summon']) || campaign.magic || skills.shoot.base >= 0"},"skills.sneak.level":{"format":{"bands":"skill-level"},"rolls":[{"action":"skill-check","params":{"skill":"skills.sneak.level"}}],"showWhen":"!('sneak' in ['cast', 'summon']) || campaign.magic || skills.sneak.base >= 0"},"skills.stab.level":{"format":{"bands":"skill-level"},"rolls":[{"action":"skill-check","params":{"skill":"skills.stab.level"}}],"showWhen":"!('stab' in ['cast', 'summon']) || campaign.magic || skills.stab.base >= 0"},"skills.survive.level":{"format":{"bands":"skill-level"},"rolls":[{"action":"skill-check","params":{"skill":"skills.survive.level"}}],"showWhen":"!('survive' in ['cast', 'summon']) || campaign.magic || skills.survive.base >= 0"},"skills.talk.level":{"format":{"bands":"skill-level"},"rolls":[{"action":"skill-check","params":{"skill":"skills.talk.level"}}],"showWhen":"!('talk' in ['cast', 'summon']) || campaign.magic || skills.talk.base >= 0"},"skills.trade.level":{"format":{"bands":"skill-level"},"rolls":[{"action":"skill-check","params":{"skill":"skills.trade.level"}}],"showWhen":"!('trade' in ['cast', 'summon']) || campaign.magic || skills.trade.base >= 0"},"skills.work.level":{"format":{"bands":"skill-level"},"rolls":[{"action":"skill-check","params":{"skill":"skills.work.level"}}],"showWhen":"!('work' in ['cast', 'summon']) || campaign.magic || skills.work.base >= 0"},"skills.cast.level":{"format":{"bands":"skill-level"},"rolls":[{"action":"skill-check","params":{"skill":"skills.cast.level"}}],"showWhen":"!('cast' in ['cast', 'summon']) || campaign.magic || skills.cast.base >= 0"},"skills.summon.level":{"format":{"bands":"skill-level"},"rolls":[{"action":"skill-check","params":{"skill":"skills.summon.level"}}],"showWhen":"!('summon' in ['cast', 'summon']) || campaign.magic || skills.summon.base >= 0"},"skills.administer.base":{"groups":["training"],"priority":2,"format":{"bands":"skill-level"},"showWhen":"!('administer' in ['cast', 'summon']) || campaign.magic || skills.administer.base >= 0"},"skills.connect.base":{"groups":["training"],"priority":2,"format":{"bands":"skill-level"},"showWhen":"!('connect' in ['cast', 'summon']) || campaign.magic || skills.connect.base >= 0"},"skills.drive.base":{"groups":["training"],"priority":2,"format":{"bands":"skill-level"},"showWhen":"!('drive' in ['cast', 'summon']) || campaign.magic || skills.drive.base >= 0"},"skills.exert.base":{"groups":["training"],"priority":2,"format":{"bands":"skill-level"},"showWhen":"!('exert' in ['cast', 'summon']) || campaign.magic || skills.exert.base >= 0"},"skills.fix.base":{"groups":["training"],"priority":2,"format":{"bands":"skill-level"},"showWhen":"!('fix' in ['cast', 'summon']) || campaign.magic || skills.fix.base >= 0"},"skills.heal.base":{"groups":["training"],"priority":2,"format":{"bands":"skill-level"},"showWhen":"!('heal' in ['cast', 'summon']) || campaign.magic || skills.heal.base >= 0"},"skills.know.base":{"groups":["training"],"priority":2,"format":{"bands":"skill-level"},"showWhen":"!('know' in ['cast', 'summon']) || campaign.magic || skills.know.base >= 0"},"skills.lead.base":{"groups":["training"],"priority":2,"format":{"bands":"skill-level"},"showWhen":"!('lead' in ['cast', 'summon']) || campaign.magic || skills.lead.base >= 0"},"skills.notice.base":{"groups":["training"],"priority":2,"format":{"bands":"skill-level"},"showWhen":"!('notice' in ['cast', 'summon']) || campaign.magic || skills.notice.base >= 0"},"skills.perform.base":{"groups":["training"],"priority":2,"format":{"bands":"skill-level"},"showWhen":"!('perform' in ['cast', 'summon']) || campaign.magic || skills.perform.base >= 0"},"skills.program.base":{"groups":["training"],"priority":2,"format":{"bands":"skill-level"},"showWhen":"!('program' in ['cast', 'summon']) || campaign.magic || skills.program.base >= 0"},"skills.punch.base":{"groups":["training"],"priority":2,"format":{"bands":"skill-level"},"showWhen":"!('punch' in ['cast', 'summon']) || campaign.magic || skills.punch.base >= 0"},"skills.shoot.base":{"groups":["training"],"priority":2,"format":{"bands":"skill-level"},"showWhen":"!('shoot' in ['cast', 'summon']) || campaign.magic || skills.shoot.base >= 0"},"skills.sneak.base":{"groups":["training"],"priority":2,"format":{"bands":"skill-level"},"showWhen":"!('sneak' in ['cast', 'summon']) || campaign.magic || skills.sneak.base >= 0"},"skills.stab.base":{"groups":["training"],"priority":2,"format":{"bands":"skill-level"},"showWhen":"!('stab' in ['cast', 'summon']) || campaign.magic || skills.stab.base >= 0"},"skills.survive.base":{"groups":["training"],"priority":2,"format":{"bands":"skill-level"},"showWhen":"!('survive' in ['cast', 'summon']) || campaign.magic || skills.survive.base >= 0"},"skills.talk.base":{"groups":["training"],"priority":2,"format":{"bands":"skill-level"},"showWhen":"!('talk' in ['cast', 'summon']) || campaign.magic || skills.talk.base >= 0"},"skills.trade.base":{"groups":["training"],"priority":2,"format":{"bands":"skill-level"},"showWhen":"!('trade' in ['cast', 'summon']) || campaign.magic || skills.trade.base >= 0"},"skills.work.base":{"groups":["training"],"priority":2,"format":{"bands":"skill-level"},"showWhen":"!('work' in ['cast', 'summon']) || campaign.magic || skills.work.base >= 0"},"skills.cast.base":{"groups":["training"],"priority":2,"format":{"bands":"skill-level"},"showWhen":"!('cast' in ['cast', 'summon']) || campaign.magic || skills.cast.base >= 0"},"skills.summon.base":{"groups":["training"],"priority":2,"format":{"bands":"skill-level"},"showWhen":"!('summon' in ['cast', 'summon']) || campaign.magic || skills.summon.base >= 0"},"skills.administer.credit":{"groups":["training"],"priority":3,"showWhen":"skills.administer.credit > 0"},"skills.connect.credit":{"groups":["training"],"priority":3,"showWhen":"skills.connect.credit > 0"},"skills.drive.credit":{"groups":["training"],"priority":3,"showWhen":"skills.drive.credit > 0"},"skills.exert.credit":{"groups":["training"],"priority":3,"showWhen":"skills.exert.credit > 0"},"skills.fix.credit":{"groups":["training"],"priority":3,"showWhen":"skills.fix.credit > 0"},"skills.heal.credit":{"groups":["training"],"priority":3,"showWhen":"skills.heal.credit > 0"},"skills.know.credit":{"groups":["training"],"priority":3,"showWhen":"skills.know.credit > 0"},"skills.lead.credit":{"groups":["training"],"priority":3,"showWhen":"skills.lead.credit > 0"},"skills.notice.credit":{"groups":["training"],"priority":3,"showWhen":"skills.notice.credit > 0"},"skills.perform.credit":{"groups":["training"],"priority":3,"showWhen":"skills.perform.credit > 0"},"skills.program.credit":{"groups":["training"],"priority":3,"showWhen":"skills.program.credit > 0"},"skills.punch.credit":{"groups":["training"],"priority":3,"showWhen":"skills.punch.credit > 0"},"skills.shoot.credit":{"groups":["training"],"priority":3,"showWhen":"skills.shoot.credit > 0"},"skills.sneak.credit":{"groups":["training"],"priority":3,"showWhen":"skills.sneak.credit > 0"},"skills.stab.credit":{"groups":["training"],"priority":3,"showWhen":"skills.stab.credit > 0"},"skills.survive.credit":{"groups":["training"],"priority":3,"showWhen":"skills.survive.credit > 0"},"skills.talk.credit":{"groups":["training"],"priority":3,"showWhen":"skills.talk.credit > 0"},"skills.trade.credit":{"groups":["training"],"priority":3,"showWhen":"skills.trade.credit > 0"},"skills.work.credit":{"groups":["training"],"priority":3,"showWhen":"skills.work.credit > 0"},"skills.cast.credit":{"groups":["training"],"priority":3,"showWhen":"skills.cast.credit > 0"},"skills.summon.credit":{"groups":["training"],"priority":3,"showWhen":"skills.summon.credit > 0"},"skills.work.profession":{"groups":["skills"],"priority":99},"saves.physical":{"rolls":[{"action":"saving-throw","params":{"save":"physical"}}]},"saves.evasion":{"rolls":[{"action":"saving-throw","params":{"save":"evasion"}}]},"saves.mental":{"rolls":[{"action":"saving-throw","params":{"save":"mental"}}]},"saves.luck":{"rolls":[{"action":"saving-throw","params":{"save":"luck"}}]},"combat.initiative":{"groups":["combat"],"priority":7,"format":"signed","rolls":[{"action":"initiative"}]},"combat.damageBonus":{"groups":["combat"],"priority":8,"format":"signed","showWhen":"combat.damageBonus != 0"},"combat.traumaBonus":{"groups":["combat"],"priority":9,"format":"signed","showWhen":"combat.traumaBonus != 0"},"combat.move":{"groups":["combat"],"priority":10,"unit":"m"},"ac.ranged.base":{"groups":["combat"],"priority":11,"visibility":"background"},"ac.melee.base":{"groups":["combat"],"priority":12,"visibility":"background"},"soak.max":{"groups":["combat"],"priority":13,"visibility":"background"},"armor.heavy":{"groups":["combat"],"priority":14,"showWhen":"armor.heavy > 0"},"hp.max":{"groups":["combat"],"priority":15,"visibility":"background"},"hp.rolled":{"groups":["combat"],"priority":16,"visibility":"background"},"hp.frail":{"groups":["combat"],"priority":17},"hp.dieBonus":{"groups":["training"],"priority":4,"showWhen":"hp.dieBonus != 0"},"combat.shockAc":{"hidden":true},"combat.shockBonus":{"hidden":true},"combat.meleeSkillDamage":{"hidden":true},"combat.rangedSkillDamage":{"hidden":true},"combat.meleeHitBonus":{"hidden":true},"drones.attackBonus":{"groups":["combat"],"priority":18,"format":"signed","showWhen":"countCopies(copy.type == 'drone') > 0"},"drones.commandable":{"groups":["combat"],"priority":19,"showWhen":"countCopies(copy.type == 'drone') > 0"},"strain.temporary":{"groups":["strain"],"priority":3},"strain.permanent":{"groups":["strain"],"priority":4},"strain.max":{"groups":["strain"],"priority":5,"visibility":"background"},"strain.cyber":{"groups":["strain"],"priority":6,"visibility":"background"},"strain.cyberIgnored":{"groups":["strain"],"priority":7,"showWhen":"strain.cyberIgnored > 0"},"strain.maintenanceRelief":{"groups":["strain"],"priority":8,"visibility":"background"},"strain.otherPermanent":{"groups":["strain"],"priority":9,"visibility":"background"},"strain.constitution":{"hidden":true},"lifestyle.strain":{"hidden":true},"cyber.eyes":{"hidden":true},"cyber.ears":{"hidden":true},"cyber.plugJack":{"hidden":true},"cyber.plugWiring":{"hidden":true},"cyber.wiredBudget":{"groups":["training"],"priority":10,"showWhen":"cyber.wiredBudget > 0"},"cyber.wiredUsed":{"groups":["training"],"priority":11,"showWhen":"cyber.wiredBudget > 0"},"alienation.total":{"groups":["alienation"],"priority":0,"with":[{"field":"alienation.max","as":"max"}]},"alienation.current":{"groups":["alienation"],"priority":1},"alienation.permanent":{"groups":["alienation"],"priority":2},"alienation.max":{"groups":["alienation"],"priority":3,"visibility":"background"},"hacking.access.current":{"groups":["hacking"],"priority":0,"with":[{"field":"hacking.access.max","as":"max"}]},"hacking.access.spent":{"groups":["hacking"],"priority":1,"visibility":"background"},"hacking.cpu":{"groups":["hacking"],"priority":2},"hacking.memory.used":{"groups":["hacking"],"priority":3,"with":[{"field":"hacking.memory.max","as":"max"}]},"hacking.shielding.current":{"groups":["hacking"],"priority":4,"with":[{"field":"hacking.shielding.max","as":"max"}]},"hacking.datafiles":{"groups":["hacking"],"priority":5},"hacking.programming.used":{"groups":["hacking"],"priority":6,"showWhen":"hacking.programming.max > 0","with":[{"field":"hacking.programming.max","as":"max"}]},"hacking.deck.bonusAccess":{"groups":["hacking"],"priority":7,"visibility":"background"},"hacking.memory.perElement":{"hidden":true},"effort.mage.current":{"groups":["magic"],"priority":0,"showWhen":"magic.mage","with":[{"field":"effort.mage.max","as":"max"}]},"effort.mage.scene":{"groups":["magic"],"priority":1,"showWhen":"magic.mage"},"effort.mage.day":{"groups":["magic"],"priority":2,"showWhen":"magic.mage"},"spells.prepared":{"groups":["magic"],"priority":3,"showWhen":"magic.mage","with":[{"field":"spells.preparedMax","as":"max"}]},"effort.summoner.current":{"groups":["magic"],"priority":4,"showWhen":"magic.summoner","with":[{"field":"effort.summoner.max","as":"max"}]},"effort.summoner.scene":{"groups":["magic"],"priority":5,"showWhen":"magic.summoner"},"effort.summoner.day":{"groups":["magic"],"priority":6,"showWhen":"magic.summoner"},"arts.spent":{"groups":["magic"],"priority":7,"showWhen":"magic.graced","with":[{"field":"arts.points","as":"max"}]},"magic.cyberPenalty":{"groups":["magic"],"priority":8,"showWhen":"magic.cyberPenalty > 0"},"arts.bonusRolls.used":{"groups":["magic"],"priority":9,"showWhen":"arts.bonusRolls.max > 0","with":[{"field":"arts.bonusRolls.max","as":"max"}]},"arts.bonusRolls.max":{"groups":["magic"],"priority":9,"visibility":"background","showWhen":"arts.bonusRolls.max > 0"},"magic.mage":{"hidden":true},"magic.summoner":{"hidden":true},"magic.graced":{"hidden":true},"money":{"groups":["summary","possessions"],"priority":8},"lifestyle":{"groups":["possessions"],"priority":1},"enc.readied":{"groups":["possessions"],"priority":2,"with":[{"field":"enc.readiedMax","as":"max"}]},"enc.stowed":{"groups":["possessions"],"priority":3,"with":[{"field":"enc.stowedMax","as":"max"}]},"enc.overload":{"groups":["possessions"],"priority":4,"showWhen":"enc.overload > 0"},"budget.vehicle":{"groups":["possessions"],"priority":5,"showWhen":"budget.vehicle > 0","with":[{"field":"budget.vehicleUsed","as":"detail"}]},"budget.drone":{"groups":["possessions"],"priority":6,"showWhen":"budget.drone > 0","with":[{"field":"budget.droneUsed","as":"detail"}]},"maintenance.used":{"groups":["possessions"],"priority":7,"showWhen":"maintenance.max > 0 || maintenance.used > 0","with":[{"field":"maintenance.max","as":"max"}]},"maintenance.multiplier":{"hidden":true},"maintenance.fixBonus":{"hidden":true},"languages.extra":{"groups":["possessions"],"priority":8},"languages.known":{"groups":["possessions"],"priority":9},"goal":{"groups":["possessions"],"priority":10},"xp.current":{"groups":["advancement"],"priority":1,"with":[{"field":"xp.next","as":"max"}]},"xp.track":{"groups":["advancement"],"priority":2,"visibility":"background"},"skillPoints.unspent":{"groups":["advancement"],"priority":3},"foci.taken":{"groups":["advancement"],"priority":4,"with":[{"field":"foci.allowed","as":"max"}]},"advancement.attributeBoosts":{"groups":["advancement"],"priority":5,"visibility":"background"},"underdog":{"groups":["advancement"],"priority":6,"visibility":"background"},"skillPoints.perLevel":{"groups":["training"],"priority":5},"edges.taken":{"hidden":true},"campaign.magic":{"groups":["campaign"],"priority":0},"campaign.alienation":{"groups":["campaign"],"priority":1}},"types":{"background":{"quantity":{"hidden":true}},"focus":{"quantity":{"hidden":true},"state":{"level":{"priority":0,"input":{"widget":"dots"}}}},"contact":{"quantity":{"hidden":true},"state":{"bond":{"priority":0},"about":{"priority":1}}},"weapon":{"state":{"loaded":{"priority":0,"showWhen":"has(item.magazine)"}},"fields":{"damage":{"format":"dice"},"traumaDie":{"format":"dice"},"rangeNormal":{"unit":"m"},"rangeLong":{"unit":"m"}}},"armor":{"state":{"soakUsed":{"priority":0,"showWhen":"self.soakUsed > 0"}}},"cyberware":{"quantity":{"hidden":true},"state":{"damaged":{"priority":0},"wired":{"priority":1,"visibility":"background"}}},"cyberdeck":{"state":{"shieldingUsed":{"priority":0,"showWhen":"self.shieldingUsed > 0"}}},"program":{"quantity":{"hidden":true},"state":{"source":{"priority":0,"visibility":"background"}}},"drone":{"state":{"hp":{"priority":0},"focusGear":{"priority":1,"visibility":"background"}},"fields":{"move":{"unit":"m"}}},"vehicle":{"state":{"hp":{"priority":0},"focusGear":{"priority":1,"visibility":"background"}}},"spell":{"quantity":{"hidden":true},"state":{"prepared":{"priority":0}}},"art":{"quantity":{"hidden":true}},"spirit":{"quantity":{"hidden":true},"fields":{"powerCount":{"hidden":true}},"state":{"form":{"priority":0},"ritual":{"priority":1}}},"syndrome":{"quantity":{"hidden":true}}}},"situational":[{"id":"bonusRoll","type":"enum","values":["none","hit","damage"],"default":"none","rolls":["attack","damage"]},{"id":"versusMagic","type":"boolean","default":false,"rolls":["save"]}],"tags":["attribute","attribute-base","attribute-score-mod","attribute-mod","attribute-mod-bonus","attribute-mod-cap","attr.str","attr.dex","attr.con","attr.int","attr.wis","attr.cha","skill-base","skill.administer","skill.connect","skill.drive","skill.exert","skill.fix","skill.heal","skill.know","skill.lead","skill.notice","skill.perform","skill.program","skill.punch","skill.shoot","skill.sneak","skill.stab","skill.survive","skill.talk","skill.trade","skill.work","skill.cast","skill.summon","save.physical","save.evasion","save.mental","save.luck","check","skill-check","skill-dice","attack.melee","attack.ranged","attack.attribute","attack.skill","attack.burst","damage.melee","damage.ranged","damage.attribute","damage.burst","damage.punch","damage.skill","trauma","initiative","hit-points","healing","first-aid","major-injury","overcast","creation","creation.item","creation.gear","creation.finish","building","advancement","advancement.level","skill-pick","focus-pick","edge-pick","reload","drug","cyber","hacking","magic","spell","summoning","rest","rest.night","rest.scene","injury","armor.heavy","damage.weapon","damage.nonlethal","damage.traumatic","damage.cyberspace","damage.direct","standard","repeatable","asks-attribute","brings-cyber","bars-cyber","not-underdog","retroactive-points","restricted","worn","vr-crown","firearm","melee","unarmed","thrown","grenade","heavy","implant","burst","suppress","braced","quick-reload","two-handed","nonlethal","anti-vehicle","launcher","indirect","trap","special","vehicle-mounted","body-blades","blade","cranial-jack","gunlink","cybereyes","cyberears","dermal-armor","self-terminating","portable","flying","armored","armored-heavy","alacrity"],"standardCopies":[{"type":"weapon","where":"'standard' in item.tags"}]},"content":[{"id":"armor-accessories.absorption-plates","type":"template","appliesTo":{"type":"armor","where":"item.kind == 'clothing'"},"fields":{"rangedAc":"prior.rangedAc + 2","meleeAc":"prior.meleeAc + 2","soak":"prior.soak + 3","enc":"prior.enc + 1","heavy":"prior.heavy + 1","obvious":true,"cost":"prior.cost + 500"}},{"id":"armor-accessories.joint-reinforcement","type":"template","appliesTo":{"type":"armor","where":"item.kind == 'clothing'"},"fields":{"rangedAc":"prior.rangedAc + 1","meleeAc":"prior.meleeAc + 1","heavy":"prior.heavy + 1","cost":"prior.cost + 250"}},{"id":"armor-mods.absorption-pads","type":"template","appliesTo":{"type":"armor","where":"item.kind != 'shield'"},"fields":{"soak":"prior.soak + 5"}},{"id":"armor-mods.active-response","type":"template","appliesTo":{"type":"armor","where":"item.kind != 'shield'"},"fields":{"traumaMod":"prior.traumaMod + 1"}},{"id":"armor-mods.biostabilizing","type":"template","appliesTo":{"type":"armor","where":"item.kind != 'shield'"}},{"id":"armor-mods.customized","type":"template","appliesTo":{"type":"armor","where":"item.kind != 'shield'"},"fields":{"rangedAc":"prior.rangedAc + 1","meleeAc":"prior.meleeAc + 1"}},{"id":"armor-mods.discreet-design","type":"template","appliesTo":{"type":"armor","where":"item.kind != 'shield'"},"fields":{"rangedAc":"prior.rangedAc - 2","meleeAc":"prior.meleeAc - 2","obvious":false}},{"id":"armor-mods.flexible","type":"template","appliesTo":{"type":"armor","where":"item.kind != 'shield'"},"fields":{"heavy":"max(0, prior.heavy - base.heavy)"}},{"id":"armor-mods.quickchange","type":"template","appliesTo":{"type":"armor","where":"item.kind != 'shield'"}},{"id":"armor-mods.sealed","type":"template","appliesTo":{"type":"armor","where":"item.kind != 'shield'"}},{"id":"armor-mods.tailored-rig","type":"template","appliesTo":{"type":"armor","where":"item.kind != 'shield'"},"effects":[{"target":"enc.readiedMax","op":"add","value":1,"when":"self.equipped"},{"target":"enc.stowedMax","op":"add","value":2,"when":"self.equipped"}]},{"id":"armor-mods.trauma-dampers","type":"template","appliesTo":{"type":"armor","where":"item.kind != 'shield'"},"fields":{"soak":"prior.soak + 5"}},{"id":"armor-mods.whisperlight","type":"template","appliesTo":{"type":"armor","where":"item.kind != 'shield'"},"fields":{"enc":"max(0, prior.enc - 1)"}},{"id":"armor.armored-clothing","type":"armor","fields":{"cost":1000,"enc":2,"kind":"clothing","rangedAc":16,"meleeAc":14,"soak":5,"traumaMod":1}},{"id":"armor.heavy-armored-suit","type":"armor","tags":["restricted"],"fields":{"cost":20000,"enc":3,"kind":"suit","rangedAc":20,"meleeAc":18,"soak":15,"traumaMod":3,"heavy":1,"obvious":true}},{"id":"armor.impact-jacket","type":"armor","fields":{"cost":1000,"enc":1,"kind":"clothing","rangedAc":12,"meleeAc":14,"soak":8,"traumaMod":1,"obvious":true}},{"id":"armor.light-armored-suit","type":"armor","tags":["restricted"],"fields":{"cost":5000,"enc":2,"kind":"suit","rangedAc":16,"meleeAc":13,"soak":5,"traumaMod":2,"obvious":true}},{"id":"armor.medium-armored-suit","type":"armor","tags":["restricted"],"fields":{"cost":10000,"enc":3,"kind":"suit","rangedAc":18,"meleeAc":14,"soak":10,"traumaMod":2,"obvious":true}},{"id":"armor.ordinary-clothing","type":"armor","fields":{"cost":25,"enc":0,"kind":"clothing","rangedAc":10,"meleeAc":10}},{"id":"armor.plated-longcoat","type":"armor","fields":{"cost":2000,"enc":3,"kind":"clothing","rangedAc":17,"meleeAc":15,"soak":5,"traumaMod":1,"heavy":1,"obvious":true}},{"id":"armor.reinforced-clothing","type":"armor","fields":{"cost":100,"enc":0,"kind":"clothing","rangedAc":13,"meleeAc":10,"soak":2}},{"id":"armor.reinforced-longcoat","type":"armor","fields":{"cost":500,"enc":1,"kind":"clothing","rangedAc":15,"meleeAc":13,"soak":5,"traumaMod":1}},{"id":"armor.riot-shield","type":"armor","fields":{"cost":1000,"enc":2,"kind":"shield","rangedAc":2,"meleeAc":4,"obvious":true}},{"id":"armor.street-leathers","type":"armor","fields":{"cost":250,"enc":0,"kind":"clothing","rangedAc":13,"meleeAc":12,"soak":3}},{"id":"armor.war-harness","type":"armor","fields":{"cost":200,"enc":1,"kind":"clothing","rangedAc":13,"meleeAc":14,"soak":5,"obvious":true}},{"id":"arts.alacrity-basic","type":"art","tags":["alacrity"],"fields":{"cost":2}},{"id":"arts.alacrity-improved","type":"art","tags":["alacrity"],"fields":{"cost":3}},{"id":"arts.alacrity-sublime","type":"art","tags":["alacrity"],"fields":{"cost":4}},{"id":"arts.arcane-senses","type":"art","fields":{"cost":1}},{"id":"arts.arcane-skill","type":"art","fields":{"cost":1}},{"id":"arts.blades-of-will","type":"art","fields":{"cost":1}},{"id":"arts.brazen-thews","type":"art","fields":{"cost":1},"effects":[{"target":"attributes.str.modBonus","op":"add","value":1},{"target":"attributes.str.modCap","op":"atLeast","value":3}]},{"id":"arts.faultless-grace","type":"art","fields":{"cost":1},"effects":[{"target":"attributes.dex.modBonus","op":"add","value":1},{"target":"attributes.dex.modCap","op":"atLeast","value":3}]},{"id":"arts.flying-steps","type":"art","fields":{"cost":1}},{"id":"arts.hand-of-doom","type":"art","fields":{"cost":1},"keepsTemplates":[{"template":"weapon-mods.hand-of-doom","copies":{"type":"weapon","where":"'unarmed' in item.tags"}}]},{"id":"arts.hundred-faces","type":"art","fields":{"cost":2}},{"id":"arts.inexhaustible-vigor","type":"art","fields":{"cost":1},"effects":[{"target":"attributes.con.modBonus","op":"add","value":1},{"target":"attributes.con.modCap","op":"atLeast","value":3}]},{"id":"arts.martial-instinct","type":"art","fields":{"cost":1},"effects":[{"target":"arts.bonusRolls.max","op":"set","value":"max(1, skills.punch.level, skills.shoot.level, skills.stab.level)"},{"target":{"rolls":["attack"]},"op":"rollModifier","value":{"kind":"advantage","of":"roll"},"when":"situational.bonusRoll == 'hit' && arts.bonusRolls.used < arts.bonusRolls.max"},{"target":{"rolls":["damage"]},"op":"rollModifier","value":{"kind":"advantage","of":"roll"},"when":"situational.bonusRoll == 'damage' && arts.bonusRolls.used < arts.bonusRolls.max"}]},{"id":"arts.occult-pavis","type":"art","fields":{"cost":2},"effects":[{"target":{"rolls":["save"]},"op":"rollModifier","value":{"kind":"advantage"},"when":"situational.versusMagic"}]},{"id":"arts.personal-void","type":"art","fields":{"cost":1}},{"id":"arts.refulgent-vitality","type":"art","fields":{"cost":1}},{"id":"arts.skin-of-steel","type":"art","fields":{"cost":2},"effects":[{"target":"ac.ranged.base","op":"set","value":"15 + ceil(level / 2)"},{"target":"ac.melee.base","op":"set","value":"15 + ceil(level / 2)"},{"target":"trauma.target","op":"add","value":"level >= 5 ? 2 : 1"}]},{"id":"arts.sorcerous-sight","type":"art","fields":{"cost":1}},{"id":"arts.spiritbane","type":"art","fields":{"cost":1}},{"id":"backgrounds.bum","type":"background","fields":{"freeSkill":"survive","growth1":"any-stat-1","growth2":"physical-2","growth3":"physical-2","growth4":"mental-2","growth5":"survive","growth6":"any","learning1":"combat","learning2":"survive","learning3":"connect","learning4":"sneak","learning5":"notice","learning6":"talk","learning7":"fix","learning8":"trade"}},{"id":"backgrounds.bureaucrat","type":"background","fields":{"freeSkill":"administer","growth1":"any-stat-1","growth2":"mental-2","growth3":"mental-2","growth4":"mental-2","growth5":"administer","growth6":"any","learning1":"administer","learning2":"know","learning3":"talk","learning4":"program","learning5":"lead","learning6":"trade","learning7":"notice","learning8":"any"}},{"id":"backgrounds.clergy","type":"background","fields":{"freeSkill":"lead","growth1":"any-stat-1","growth2":"mental-2","growth3":"mental-2","growth4":"mental-2","growth5":"connect","growth6":"any","learning1":"lead","learning2":"talk","learning3":"connect","learning4":"perform","learning5":"know","learning6":"heal","learning7":"notice","learning8":"any"}},{"id":"backgrounds.coder","type":"background","fields":{"freeSkill":"program","growth1":"any-stat-1","growth2":"mental-2","growth3":"mental-2","growth4":"mental-2","growth5":"program","growth6":"any","learning1":"program","learning2":"administer","learning3":"fix","learning4":"talk","learning5":"connect","learning6":"know","learning7":"notice","learning8":"any"}},{"id":"backgrounds.corp-security","type":"background","fields":{"freeSkill":"combat","growth1":"any-stat-1","growth2":"physical-2","growth3":"physical-2","growth4":"physical-2","growth5":"combat","growth6":"any","learning1":"combat","learning2":"administer","learning3":"connect","learning4":"notice","learning5":"exert","learning6":"heal","learning7":"sneak","learning8":"lead"}},{"id":"backgrounds.corper","type":"background","fields":{"freeSkill":"work","growth1":"any-stat-1","growth2":"any-stat-1","growth3":"physical-2","growth4":"mental-2","growth5":"any","growth6":"any","learning1":"work","learning2":"talk","learning3":"connect","learning4":"combat","learning5":"notice","learning6":"sneak","learning7":"fix","learning8":"any"}},{"id":"backgrounds.criminal","type":"background","fields":{"freeSkill":"sneak","growth1":"any-stat-1","growth2":"any-stat-1","growth3":"physical-2","growth4":"mental-2","growth5":"sneak","growth6":"any","learning1":"combat","learning2":"sneak","learning3":"notice","learning4":"connect","learning5":"talk","learning6":"survive","learning7":"exert","learning8":"lead"}},{"id":"backgrounds.doctor","type":"background","fields":{"freeSkill":"heal","growth1":"any-stat-1","growth2":"physical-2","growth3":"mental-2","growth4":"mental-2","growth5":"heal","growth6":"any","learning1":"heal","learning2":"notice","learning3":"know","learning4":"talk","learning5":"administer","learning6":"connect","learning7":"fix","learning8":"any"}},{"id":"backgrounds.drone-jockey","type":"background","fields":{"freeSkill":"drive","growth1":"any-stat-1","growth2":"physical-2","growth3":"physical-2","growth4":"mental-2","growth5":"drive","growth6":"any","learning1":"drive","learning2":"fix","learning3":"shoot","learning4":"notice","learning5":"sneak","learning6":"exert","learning7":"program","learning8":"any"}},{"id":"backgrounds.ganger","type":"background","fields":{"freeSkill":"combat","growth1":"any-stat-1","growth2":"physical-2","growth3":"physical-2","growth4":"mental-2","growth5":"combat","growth6":"any","learning1":"combat","learning2":"connect","learning3":"survive","learning4":"notice","learning5":"sneak","learning6":"talk","learning7":"fix","learning8":"any"}},{"id":"backgrounds.laborer","type":"background","fields":{"freeSkill":"exert","growth1":"any-stat-1","growth2":"physical-2","growth3":"physical-2","growth4":"physical-2","growth5":"exert","growth6":"any","learning1":"exert","learning2":"work","learning3":"sneak","learning4":"trade","learning5":"survive","learning6":"fix","learning7":"combat","learning8":"any"}},{"id":"backgrounds.law-enforcement","type":"background","fields":{"freeSkill":"administer","growth1":"any-stat-1","growth2":"physical-2","growth3":"physical-2","growth4":"mental-2","growth5":"administer","growth6":"any","learning1":"administer","learning2":"combat","learning3":"notice","learning4":"sneak","learning5":"talk","learning6":"connect","learning7":"heal","learning8":"any"}},{"id":"backgrounds.manager","type":"background","fields":{"freeSkill":"administer","growth1":"any-stat-1","growth2":"mental-2","growth3":"mental-2","growth4":"mental-2","growth5":"administer","growth6":"any","learning1":"administer","learning2":"talk","learning3":"trade","learning4":"connect","learning5":"notice","learning6":"lead","learning7":"program","learning8":"any"}},{"id":"backgrounds.outlander","type":"background","fields":{"freeSkill":"survive","growth1":"any-stat-1","growth2":"mental-2","growth3":"physical-2","growth4":"physical-2","growth5":"survive","growth6":"any","learning1":"survive","learning2":"drive","learning3":"fix","learning4":"trade","learning5":"sneak","learning6":"connect","learning7":"combat","learning8":"any"}},{"id":"backgrounds.performer","type":"background","fields":{"freeSkill":"perform","growth1":"any-stat-1","growth2":"any-stat-1","growth3":"mental-2","growth4":"physical-2","growth5":"perform","growth6":"any","learning1":"perform","learning2":"lead","learning3":"connect","learning4":"talk","learning5":"trade","learning6":"sneak","learning7":"combat","learning8":"any"}},{"id":"backgrounds.soldier","type":"background","fields":{"freeSkill":"combat","growth1":"any-stat-1","growth2":"mental-2","growth3":"physical-2","growth4":"physical-2","growth5":"combat","growth6":"any","learning1":"combat","learning2":"exert","learning3":"lead","learning4":"notice","learning5":"survive","learning6":"heal","learning7":"administer","learning8":"any"}},{"id":"backgrounds.spy","type":"background","fields":{"freeSkill":"sneak","growth1":"any-stat-1","growth2":"any-stat-1","growth3":"mental-2","growth4":"physical-2","growth5":"sneak","growth6":"any","learning1":"sneak","learning2":"notice","learning3":"talk","learning4":"connect","learning5":"program","learning6":"exert","learning7":"combat","learning8":"any"}},{"id":"backgrounds.streetwalker","type":"background","fields":{"freeSkill":"talk","growth1":"any-stat-1","growth2":"any-stat-1","growth3":"physical-2","growth4":"mental-2","growth5":"talk","growth6":"any","learning1":"talk","learning2":"perform","learning3":"connect","learning4":"trade","learning5":"sneak","learning6":"notice","learning7":"heal","learning8":"any"}},{"id":"backgrounds.technician","type":"background","fields":{"freeSkill":"fix","growth1":"any-stat-1","growth2":"physical-2","growth3":"mental-2","growth4":"mental-2","growth5":"fix","growth6":"any","learning1":"fix","learning2":"program","learning3":"exert","learning4":"trade","learning5":"notice","learning6":"connect","learning7":"drive","learning8":"any"}},{"id":"backgrounds.trader","type":"background","fields":{"freeSkill":"trade","growth1":"any-stat-1","growth2":"mental-2","growth3":"mental-2","growth4":"physical-2","growth5":"trade","growth6":"any","learning1":"trade","learning2":"notice","learning3":"connect","learning4":"fix","learning5":"talk","learning6":"administer","learning7":"combat","learning8":"any"}},{"id":"contacts.contact","type":"contact"},{"id":"cyberdeck-mods.bespoke-code-optimization","type":"template","appliesTo":{"type":"cyberdeck"},"fields":{"cost":"prior.cost + floor(base.cost * 0.2)"}},{"id":"cyberdeck-mods.buffer-circuits","type":"template","appliesTo":{"type":"cyberdeck"},"fields":{"shielding":"prior.shielding + 5","cost":"prior.cost + floor(base.cost * 0.2)"}},{"id":"cyberdeck-mods.cpu-overclocking","type":"template","appliesTo":{"type":"cyberdeck"},"fields":{"cpu":"prior.cpu + 1","cost":"prior.cost + floor(base.cost * 0.3)"}},{"id":"cyberdeck-mods.memory-expansion","type":"template","appliesTo":{"type":"cyberdeck"},"fields":{"memory":"prior.memory + 4","cost":"prior.cost + floor(base.cost * 0.2)"}},{"id":"cyberdeck-mods.polymorphic-intrusion-algorithms","type":"template","appliesTo":{"type":"cyberdeck"},"fields":{"bonusAccess":"prior.bonusAccess + 1","cpu":"max(0, prior.cpu - 1)","cost":"prior.cost + floor(base.cost * 0.1)"}},{"id":"cyberdeck-mods.skeletal-case","type":"template","appliesTo":{"type":"cyberdeck"},"fields":{"enc":"max(0, prior.enc - 1)","memory":"max(0, prior.memory - 2)","cost":"prior.cost + floor(base.cost * 0.1)"}},{"id":"cyberdeck-mods.thermal-exhaust-case","type":"template","appliesTo":{"type":"cyberdeck"},"fields":{"enc":"prior.enc + 1","cpu":"prior.cpu + 1","cost":"prior.cost + floor(base.cost * 0.3)"}},{"id":"cyberdecks.beowulf","type":"cyberdeck","fields":{"cost":60000,"enc":1,"bonusAccess":2,"memory":13,"shielding":10,"cpu":4}},{"id":"cyberdecks.icepick","type":"cyberdeck","fields":{"cost":15000,"enc":1,"bonusAccess":2,"memory":10,"shielding":10,"cpu":3}},{"id":"cyberdecks.scrap-deck","type":"cyberdeck","fields":{"cost":500,"enc":1,"bonusAccess":1,"memory":8,"shielding":5,"cpu":2}},{"id":"cyberdecks.synapse","type":"cyberdeck","fields":{"cost":30000,"enc":1,"bonusAccess":2,"memory":11,"shielding":5,"cpu":4}},{"id":"cyberdecks.taifu","type":"cyberdeck","fields":{"cost":250000,"enc":1,"bonusAccess":3,"memory":13,"shielding":15,"cpu":6}},{"id":"cyberdecks.tanto","type":"cyberdeck","fields":{"cost":5000,"enc":1,"bonusAccess":1,"memory":10,"shielding":10,"cpu":3}},{"id":"cyberdecks.tizona","type":"cyberdeck","fields":{"cost":100000,"enc":1,"bonusAccess":3,"memory":11,"shielding":10,"cpu":5}},{"id":"cyberware-complications.bad-connection","type":"template","appliesTo":{"type":"cyberware"}},{"id":"cyberware-complications.blatant","type":"template","appliesTo":{"type":"cyberware"}},{"id":"cyberware-complications.complicated","type":"template","appliesTo":{"type":"cyberware"}},{"id":"cyberware-complications.debilitating","type":"template","appliesTo":{"type":"cyberware"}},{"id":"cyberware-complications.exhausting","type":"template","appliesTo":{"type":"cyberware"}},{"id":"cyberware-complications.fussy","type":"template","appliesTo":{"type":"cyberware"}},{"id":"cyberware-complications.inefficient","type":"template","appliesTo":{"type":"cyberware"},"fields":{"strain":"prior.strain + 0.5"}},{"id":"cyberware-complications.loud","type":"template","appliesTo":{"type":"cyberware"}},{"id":"cyberware-complications.petty-annoyance","type":"template","appliesTo":{"type":"cyberware"}},{"id":"cyberware-complications.power-hungry","type":"template","appliesTo":{"type":"cyberware"}},{"id":"cyberware-complications.uncooperative","type":"template","appliesTo":{"type":"cyberware"}},{"id":"cyberware-complications.unreliable","type":"template","appliesTo":{"type":"cyberware"}},{"id":"cyberware-mods.biocapacitors","type":"template","appliesTo":{"type":"cyberware"},"fields":{"cost":"prior.cost + floor(base.cost * 0.3)"}},{"id":"cyberware-mods.durable-system","type":"template","appliesTo":{"type":"cyberware","where":"item.category in ['limb', 'sensory']"},"fields":{"cost":"prior.cost + floor(base.cost * 0.2)"}},{"id":"cyberware-mods.firewalled","type":"template","appliesTo":{"type":"cyberware"},"fields":{"cost":"prior.cost + floor(base.cost * 0.2)"}},{"id":"cyberware-mods.hardened-weave","type":"template","appliesTo":{"type":"cyberware","where":"has(item.baseAc)"},"fields":{"baseAc":"prior.baseAc + 2","cost":"prior.cost + floor(base.cost * 0.3)"}},{"id":"cyberware-mods.low-maintenance","type":"template","appliesTo":{"type":"cyberware"},"fields":{"cost":"prior.cost + floor(base.cost * 0.1)"}},{"id":"cyberware-mods.monoblade","type":"template","appliesTo":{"type":"cyberware","where":"'blade' in item.tags"},"fields":{"cost":"prior.cost + floor(base.cost * 0.2)"}},{"id":"cyberware-mods.profile-adjustment","type":"template","appliesTo":{"type":"cyberware"},"fields":{"cost":"prior.cost + floor(base.cost * 0.2)"}},{"id":"cyberware-mods.quick-detach","type":"template","appliesTo":{"type":"cyberware"},"fields":{"cost":"prior.cost + floor(base.cost * 0.3)"}},{"id":"cyberware-mods.tailored-interface","type":"template","appliesTo":{"type":"cyberware","where":"item.strain >= 2"},"fields":{"strain":"prior.strain >= 2 ? prior.strain - 1 : prior.strain","cost":"prior.cost + floor(base.cost * 0.3)"}},{"id":"cyberware-mods.targeting-processor","type":"template","appliesTo":{"type":"cyberware"},"fields":{"cost":"prior.cost + floor(base.cost * 0.3)"}},{"id":"cyberware.active-sense-processor","type":"cyberware","fields":{"cost":50000,"category":"sensory","concealment":"medical","strain":1},"effects":[{"target":{"rolls":["skill.notice"]},"op":"add","value":1,"when":"'attr.wis' in roll.tags && attributes.wis.mod < 2"}]},{"id":"cyberware.aesthetic-augmentation-suite","type":"cyberware","fields":{"cost":50000,"category":"body","concealment":"sight","strain":2},"effects":[{"target":"attributes.cha.score","op":"atLeast","value":"attributes.cha.base >= 14 ? min(18, attributes.cha.base + 2) : 14"}]},{"id":"cyberware.assisted-glide-system","type":"cyberware","fields":{"cost":50000,"category":"body","concealment":"touch","strain":2}},{"id":"cyberware.banshee-module","type":"cyberware","fields":{"cost":30000,"category":"body","concealment":"medical","strain":1}},{"id":"cyberware.body-blades-i","type":"cyberware","tags":["blade"],"fields":{"cost":10000,"category":"limb","concealment":"medical","strain":1},"keepsTemplates":[{"template":"weapon-mods.body-blades-1","copies":{"type":"weapon","where":"'unarmed' in item.tags"},"when":"!self.damaged"}]},{"id":"cyberware.body-blades-ii","type":"cyberware","tags":["blade"],"fields":{"cost":25000,"category":"limb","concealment":"sight","strain":2},"keepsTemplates":[{"template":"weapon-mods.body-blades-2","copies":{"type":"weapon","where":"'unarmed' in item.tags"},"when":"!self.damaged"}]},{"id":"cyberware.coordination-augment-i","type":"cyberware","fields":{"cost":50000,"category":"nerve","concealment":"medical","strain":2},"effects":[{"target":"attributes.dex.score","op":"atLeast","value":"attributes.dex.base >= 14 ? min(18, attributes.dex.base + 2) : 14"}]},{"id":"cyberware.coordination-augment-ii","type":"cyberware","fields":{"cost":200000,"category":"nerve","concealment":"touch","strain":3},"effects":[{"target":"attributes.dex.score","op":"atLeast","value":18},{"target":"combat.move","op":"add","value":10}]},{"id":"cyberware.courier-memory","type":"cyberware","fields":{"cost":10000,"category":"head","concealment":"medical","strain":0.25}},{"id":"cyberware.cranial-jack","type":"cyberware","tags":["cranial-jack"],"fields":{"cost":1000,"category":"head","concealment":"touch","strain":0.25},"effects":[{"target":"hacking.cpu","op":"atLeast","value":1}]},{"id":"cyberware.cyberears","type":"cyberware","tags":["cyberears"],"fields":{"cost":10000,"category":"sensory","concealment":"touch","strain":0.25}},{"id":"cyberware.cybereyes","type":"cyberware","tags":["cybereyes"],"fields":{"cost":10000,"category":"sensory","concealment":"sight","strain":0.25}},{"id":"cyberware.cyberlimb","type":"cyberware","fields":{"cost":10000,"category":"limb","concealment":"touch","strain":0.5}},{"id":"cyberware.cybernetic-infrastructure-baseline","type":"cyberware","fields":{"cost":20000,"category":"body","concealment":"medical"},"effects":[{"target":"strain.cyberIgnored","op":"add","value":"max(0, 12 - attributes.con.score)"}]},{"id":"cyberware.deadman-circuit","type":"cyberware","fields":{"cost":10000,"category":"body","concealment":"sight","strain":0.25}},{"id":"cyberware.dermal-armor-i","type":"cyberware","tags":["dermal-armor"],"fields":{"cost":40000,"category":"skin","concealment":"medical","strain":1,"baseAc":16,"traumaMod":1}},{"id":"cyberware.dermal-armor-ii","type":"cyberware","tags":["dermal-armor"],"fields":{"cost":80000,"category":"skin","concealment":"touch","strain":2,"baseAc":18,"traumaMod":1}},{"id":"cyberware.dermal-armor-iii","type":"cyberware","tags":["dermal-armor"],"fields":{"cost":200000,"category":"skin","concealment":"sight","strain":3,"baseAc":20,"traumaMod":2}},{"id":"cyberware.dermal-armor-trauma-shielding","type":"cyberware","fields":{"cost":100000,"category":"body","concealment":"medical","strain":1,"traumaMod":1}},{"id":"cyberware.discretion-insurance-unit","type":"cyberware","fields":{"cost":10000,"category":"head","concealment":"medical","strain":0.5}},{"id":"cyberware.ear-mod-filter","type":"cyberware","fields":{"cost":10000,"category":"sensory","concealment":"medical","strain":0.5,"earMod":true}},{"id":"cyberware.ear-mod-positional-detection","type":"cyberware","fields":{"cost":15000,"category":"sensory","concealment":"medical","strain":0.5,"earMod":true}},{"id":"cyberware.ear-mod-sonar","type":"cyberware","fields":{"cost":20000,"category":"sensory","concealment":"medical","strain":0.5,"earMod":true}},{"id":"cyberware.ear-mod-tracer","type":"cyberware","fields":{"cost":10000,"category":"sensory","concealment":"medical","strain":0.5,"earMod":true}},{"id":"cyberware.emergency-stabilization-factor","type":"cyberware","fields":{"cost":30000,"category":"body","concealment":"medical","strain":1}},{"id":"cyberware.enhanced-reflexes-i","type":"cyberware","fields":{"cost":100000,"category":"nerve","concealment":"medical","strain":2}},{"id":"cyberware.enhanced-reflexes-ii","type":"cyberware","fields":{"cost":250000,"category":"nerve","concealment":"medical","strain":3,"triggerStrain":1}},{"id":"cyberware.enhanced-reflexes-iii","type":"cyberware","fields":{"cost":750000,"category":"nerve","concealment":"touch","strain":4,"triggerStrain":1}},{"id":"cyberware.eye-mod-dazzler","type":"cyberware","fields":{"cost":15000,"category":"head","concealment":"medical","strain":0.5,"eyeMod":true,"triggerStrain":1}},{"id":"cyberware.eye-mod-flechette-launcher","type":"cyberware","fields":{"cost":20000,"category":"head","concealment":"medical","strain":0.5,"eyeMod":true},"standardCopies":[{"type":"weapon","where":"item.id == @weapons.eye-flechette"}]},{"id":"cyberware.eye-mod-impostor","type":"cyberware","fields":{"cost":10000,"category":"sensory","concealment":"medical","strain":1,"eyeMod":true}},{"id":"cyberware.eye-mod-infrared-vision","type":"cyberware","fields":{"cost":5000,"category":"sensory","concealment":"medical","strain":0.5,"eyeMod":true}},{"id":"cyberware.eye-mod-low-light-vision","type":"cyberware","fields":{"cost":5000,"category":"sensory","concealment":"medical","strain":0.5,"eyeMod":true}},{"id":"cyberware.eye-mod-tactical-view","type":"cyberware","fields":{"cost":10000,"category":"sensory","concealment":"medical","strain":0.5,"eyeMod":true}},{"id":"cyberware.eye-mod-zoom","type":"cyberware","fields":{"cost":10000,"category":"sensory","concealment":"medical","strain":0.5,"eyeMod":true}},{"id":"cyberware.fleshmod","type":"cyberware","fields":{"cost":20000,"category":"body","concealment":"medical","strain":1}},{"id":"cyberware.full-body-conversion","type":"cyberware","fields":{"cost":6000000,"category":"body","concealment":"sight","traumaMod":6},"effects":[{"target":"strain.constitution","op":"atLeast","value":20}]},{"id":"cyberware.funes-complex","type":"cyberware","fields":{"cost":40000,"category":"head","concealment":"medical","strain":1}},{"id":"cyberware.gunlink","type":"cyberware","tags":["gunlink"],"fields":{"cost":25000,"category":"sensory","concealment":"touch","strain":1}},{"id":"cyberware.headcomm","type":"cyberware","fields":{"cost":1000,"category":"sensory","concealment":"medical","strain":0.25}},{"id":"cyberware.hemosynthetic-filter-system","type":"cyberware","fields":{"cost":25000,"category":"body","concealment":"medical","strain":1}},{"id":"cyberware.holdout-cavity","type":"cyberware","fields":{"cost":10000,"category":"body","concealment":"medical","strain":1}},{"id":"cyberware.iron-hand-aegis","type":"cyberware","fields":{"cost":40000,"category":"limb","concealment":"touch","strain":1}},{"id":"cyberware.limbgun","type":"cyberware","fields":{"cost":30000,"category":"limb","concealment":"touch","strain":1}},{"id":"cyberware.medical-support-readout","type":"cyberware","fields":{"cost":10000,"category":"body","concealment":"medical","strain":0.25}},{"id":"cyberware.medusa-implant","type":"cyberware","fields":{"cost":20000,"category":"head","concealment":"sight","strain":0.5}},{"id":"cyberware.muscle-fiber-replacement-i","type":"cyberware","fields":{"cost":50000,"category":"limb","concealment":"touch","strain":1},"effects":[{"target":"attributes.str.score","op":"atLeast","value":"attributes.str.base >= 14 ? min(18, attributes.str.base + 2) : 14"}]},{"id":"cyberware.muscle-fiber-replacement-ii","type":"cyberware","fields":{"cost":200000,"category":"limb","concealment":"sight","strain":2},"effects":[{"target":"attributes.str.score","op":"atLeast","value":18}]},{"id":"cyberware.neolimb","type":"cyberware","fields":{"cost":25000,"category":"limb","concealment":"sight","strain":1},"effects":[{"target":"enc.readiedMax","op":"add","value":2}]},{"id":"cyberware.neural-buffer","type":"cyberware","fields":{"cost":40000,"category":"head","concealment":"medical","strain":1},"state":{"bufferUsed":{"type":"integer","default":0,"min":0}},"effects":[{"target":{"incoming":{"fields":["hp.current"],"tags":["damage.cyberspace"]}},"op":"add","value":"min(3 * level - self.bufferUsed, -incoming.amount)","when":"!self.damaged && 3 * level > self.bufferUsed && incoming.amount < 0","then":[{"type":"adjustState","entry":"self","key":"bufferUsed","by":"min(3 * level - self.bufferUsed, -incoming.amount)"}]}]},{"id":"cyberware.omnihand","type":"cyberware","fields":{"cost":10000,"category":"limb","concealment":"touch","strain":0.25}},{"id":"cyberware.poseidon-implants","type":"cyberware","fields":{"cost":30000,"category":"skin","concealment":"touch","strain":1}},{"id":"cyberware.prosthetic-cyber-i","type":"cyberware","fields":{"cost":5000,"category":"medical","concealment":"sight","strain":1}},{"id":"cyberware.prosthetic-cyber-ii","type":"cyberware","fields":{"cost":15000,"category":"medical","concealment":"medical","strain":0.25}},{"id":"cyberware.reaction-booster-i","type":"cyberware","fields":{"cost":50000,"category":"nerve","concealment":"medical","strain":1},"effects":[{"target":"combat.initiative","op":"add","value":2}]},{"id":"cyberware.reaction-booster-ii","type":"cyberware","fields":{"cost":100000,"category":"nerve","concealment":"medical","strain":2},"effects":[{"target":"combat.initiative","op":"add","value":2}]},{"id":"cyberware.recovery-support-unit","type":"cyberware","fields":{"cost":30000,"category":"body","concealment":"medical","strain":1}},{"id":"cyberware.redundant-systems","type":"cyberware","fields":{"cost":15000,"category":"body","concealment":"medical","strain":1}},{"id":"cyberware.regulated-anagathic-substrate","type":"cyberware","fields":{"cost":200000,"category":"medical","concealment":"medical","strain":1}},{"id":"cyberware.remote-control-unit","type":"cyberware","fields":{"cost":10000,"category":"nerve","concealment":"touch","strain":2,"triggerStrain":1},"effects":[{"target":"drones.commandable","op":"atLeast","value":"1 + max(0, skills.drive.level)"}]},{"id":"cyberware.retribution-shield","type":"cyberware","fields":{"cost":50000,"category":"body","concealment":"touch","strain":1,"triggerStrain":1}},{"id":"cyberware.sealed-systems-implant","type":"cyberware","fields":{"cost":15000,"category":"skin","concealment":"medical","strain":1}},{"id":"cyberware.sensory-recorder","type":"cyberware","fields":{"cost":10000,"category":"sensory","concealment":"medical","strain":0.5}},{"id":"cyberware.sharkskin-electrodes","type":"cyberware","fields":{"cost":20000,"category":"skin","concealment":"touch","strain":1}},{"id":"cyberware.shock-fists","type":"cyberware","fields":{"cost":10000,"category":"limb","concealment":"touch","strain":1,"triggerStrain":1}},{"id":"cyberware.skillplug-jack-i","type":"cyberware","fields":{"cost":10000,"category":"head","concealment":"touch","strain":0.25},"effects":[{"target":"cyber.plugJack","op":"atLeast","value":1}]},{"id":"cyberware.skillplug-jack-ii","type":"cyberware","fields":{"cost":25000,"category":"head","concealment":"touch","strain":0.5},"effects":[{"target":"cyber.plugJack","op":"atLeast","value":2}]},{"id":"cyberware.skillplug-wiring","type":"cyberware","fields":{"cost":50000,"category":"nerve","concealment":"medical","strain":1},"effects":[{"target":"cyber.plugWiring","op":"set","value":true}]},{"id":"cyberware.skinmod","type":"cyberware","fields":{"cost":250,"category":"skin","concealment":"sight"}},{"id":"cyberware.skull-citadel","type":"cyberware","fields":{"cost":100000,"category":"head","concealment":"medical","strain":2}},{"id":"cyberware.skyborn-shielding","type":"cyberware","fields":{"cost":40000,"category":"skin","concealment":"sight","strain":2}},{"id":"cyberware.stick-pads","type":"cyberware","fields":{"cost":15000,"category":"limb","concealment":"touch","strain":0.5}},{"id":"cyberware.synthears","type":"cyberware","tags":["cyberears"],"fields":{"cost":25000,"category":"sensory","concealment":"medical","strain":0.25}},{"id":"cyberware.syntheyes","type":"cyberware","tags":["cybereyes"],"fields":{"cost":25000,"category":"sensory","concealment":"medical","strain":0.25}},{"id":"cyberware.synthlimb","type":"cyberware","fields":{"cost":25000,"category":"limb","concealment":"medical","strain":0.5}},{"id":"cyberware.therapeutic-control-dampers","type":"cyberware","fields":{"cost":25000,"category":"body","concealment":"medical","strain":1}},{"id":"cyberware.titan-gun-system","type":"cyberware","fields":{"cost":100000,"category":"body","concealment":"sight","strain":1}},{"id":"cyberware.trajectory-optimization-node","type":"cyberware","fields":{"cost":50000,"category":"nerve","concealment":"medical","strain":1}},{"id":"cyberware.viper-sting","type":"cyberware","fields":{"cost":25000,"category":"body","concealment":"medical","strain":0.5}},{"id":"cyberware.zombie-wires","type":"cyberware","fields":{"cost":60000,"category":"nerve","concealment":"medical","strain":2,"triggerStrain":2}},{"id":"drone-fittings.ablative-code-buffer","type":"template","appliesTo":{"type":"drone"},"fields":{"fittingsUsed":"prior.fittingsUsed + 1","cost":"prior.cost + floor(base.cost * 0.1)"}},{"id":"drone-fittings.altitude-boost-unit","type":"template","appliesTo":{"type":"drone"},"fields":{"fittingsUsed":"prior.fittingsUsed + 1","cost":"prior.cost + floor(base.cost * 0.1)"}},{"id":"drone-fittings.ammo-caddy","type":"template","appliesTo":{"type":"drone"},"fields":{"fittingsUsed":"prior.fittingsUsed + 1","cost":"prior.cost + floor(base.cost * 0.1)"}},{"id":"drone-fittings.ammo-supply","type":"template","appliesTo":{"type":"drone"},"fields":{"fittingsUsed":"prior.fittingsUsed + 1","cost":"prior.cost + floor(base.cost * 0.1)"}},{"id":"drone-fittings.assisted-boost-burner","type":"template","appliesTo":{"type":"drone"},"fields":{"fittingsUsed":"prior.fittingsUsed + 1","cost":"prior.cost + floor(base.cost * 0.1)"}},{"id":"drone-fittings.cargo-space","type":"template","appliesTo":{"type":"drone"},"fields":{"enc":"has(prior.enc) ? prior.enc + 1 : 0","fittingsUsed":"prior.fittingsUsed + 1","cost":"prior.cost + floor(base.cost * 0.2)"}},{"id":"drone-fittings.command-deck-follow","type":"template","appliesTo":{"type":"drone"},"fields":{"fittingsUsed":"prior.fittingsUsed + 1","cost":"prior.cost + floor(base.cost * 0.1)"}},{"id":"drone-fittings.command-deck-kill","type":"template","appliesTo":{"type":"drone"},"fields":{"fittingsUsed":"prior.fittingsUsed + 1","cost":"prior.cost + floor(base.cost * 0.25)"}},{"id":"drone-fittings.command-deck-patrol","type":"template","appliesTo":{"type":"drone"},"fields":{"fittingsUsed":"prior.fittingsUsed + 1","cost":"prior.cost + floor(base.cost * 0.1)"}},{"id":"drone-fittings.command-deck-watch","type":"template","appliesTo":{"type":"drone"},"fields":{"fittingsUsed":"prior.fittingsUsed + 1","cost":"prior.cost + floor(base.cost * 0.1)"}},{"id":"drone-fittings.emergency-evac-litter","type":"template","appliesTo":{"type":"drone"},"fields":{"fittingsUsed":"prior.fittingsUsed + 1","cost":"prior.cost + floor(base.cost * 0.25)"}},{"id":"drone-fittings.emissions-shielding","type":"template","appliesTo":{"type":"drone"},"fields":{"fittingsUsed":"prior.fittingsUsed + 1","cost":"prior.cost + floor(base.cost * 0.2)"}},{"id":"drone-fittings.enhanced-structure","type":"template","appliesTo":{"type":"drone"},"fields":{"hp":"prior.hp + ceil(base.hp * 0.25)","fittingsUsed":"prior.fittingsUsed + 1","cost":"prior.cost + floor(base.cost * 0.25)"}},{"id":"drone-fittings.extended-range","type":"template","appliesTo":{"type":"drone"},"fields":{"fittingsUsed":"prior.fittingsUsed + 1","cost":"prior.cost + floor(base.cost * 0.25)"}},{"id":"drone-fittings.glider-grips","type":"template","appliesTo":{"type":"drone"},"fields":{"fittingsUsed":"prior.fittingsUsed + 1","cost":"prior.cost + floor(base.cost * 0.2)"}},{"id":"drone-fittings.improved-armor","type":"template","appliesTo":{"type":"drone"},"fields":{"ac":"min(18, prior.ac + 2)","enc":"has(prior.enc) ? prior.enc + 1 : 0","fittingsUsed":"prior.fittingsUsed + 1","cost":"prior.cost + floor(base.cost * 0.25)"}},{"id":"drone-fittings.improved-targeting-logic","type":"template","appliesTo":{"type":"drone"},"fields":{"fittingsUsed":"prior.fittingsUsed + 1","cost":"prior.cost + floor(base.cost * 0.2)"}},{"id":"drone-fittings.laser-comms","type":"template","appliesTo":{"type":"drone"},"fields":{"fittingsUsed":"prior.fittingsUsed + 1","cost":"prior.cost + floor(base.cost * 0.1)"}},{"id":"drone-fittings.manipulator-tendrils","type":"template","appliesTo":{"type":"drone"},"fields":{"fittingsUsed":"prior.fittingsUsed + 1","cost":"prior.cost + floor(base.cost * 0.2)"}},{"id":"drone-fittings.memory-banks","type":"template","appliesTo":{"type":"drone"},"fields":{"fittingsUsed":"prior.fittingsUsed + 1","cost":"prior.cost + floor(base.cost * 0.1)"}},{"id":"drone-fittings.no-touch-web","type":"template","appliesTo":{"type":"drone"},"fields":{"fittingsUsed":"prior.fittingsUsed + 1","cost":"prior.cost + floor(base.cost * 0.1)"}},{"id":"drone-fittings.sleep-mode","type":"template","appliesTo":{"type":"drone"},"fields":{"fittingsUsed":"prior.fittingsUsed + 1","cost":"prior.cost + floor(base.cost * 0.1)"}},{"id":"drone-fittings.stealth-package","type":"template","appliesTo":{"type":"drone"},"fields":{"fittingsUsed":"prior.fittingsUsed + 1","cost":"prior.cost + floor(base.cost * 0.25)"}},{"id":"drone-fittings.suicide-charge","type":"template","appliesTo":{"type":"drone"},"fields":{"fittingsUsed":"prior.fittingsUsed + 1","cost":"prior.cost + floor(base.cost * 0.25)"}},{"id":"drone-fittings.telescopic-optics","type":"template","appliesTo":{"type":"drone"},"fields":{"fittingsUsed":"prior.fittingsUsed + 1","cost":"prior.cost + floor(base.cost * 0.2)"}},{"id":"drone-fittings.thermal-optics","type":"template","appliesTo":{"type":"drone"},"fields":{"fittingsUsed":"prior.fittingsUsed + 1","cost":"prior.cost + floor(base.cost * 0.2)"}},{"id":"drone-fittings.trauma-response-suite","type":"template","appliesTo":{"type":"drone"},"fields":{"fittingsUsed":"prior.fittingsUsed + 1","cost":"prior.cost + floor(base.cost * 0.25)"}},{"id":"drone-fittings.voice-broadcast","type":"template","appliesTo":{"type":"drone"},"fields":{"fittingsUsed":"prior.fittingsUsed + 1","cost":"prior.cost + floor(base.cost * 0.1)"}},{"id":"drone-fittings.wallcrawler","type":"template","appliesTo":{"type":"drone"},"fields":{"fittingsUsed":"prior.fittingsUsed + 1","cost":"prior.cost + floor(base.cost * 0.2)"}},{"id":"drone-fittings.weapon-hardpoint","type":"template","appliesTo":{"type":"drone"},"fields":{"hardpoints":"prior.hardpoints + 1","fittingsUsed":"prior.fittingsUsed + 2","cost":"prior.cost + floor(base.cost * 0.25)"}},{"id":"drone-mods.additional-fitting","type":"template","appliesTo":{"type":"drone"},"fields":{"fittings":"prior.fittings + 1","enc":"has(prior.enc) ? prior.enc + 1 : 0","cost":"prior.cost + floor(base.cost * 0.5)"}},{"id":"drone-mods.additional-hardpoint","type":"template","appliesTo":{"type":"drone"},"fields":{"hardpoints":"prior.hardpoints + 1","enc":"has(prior.enc) ? prior.enc + 1 : 0","cost":"prior.cost + floor(base.cost * 0.5)"}},{"id":"drone-mods.battery-swapping","type":"template","appliesTo":{"type":"drone","where":"'portable' in item.tags"},"fields":{"cost":"prior.cost + floor(base.cost * 0.1)"}},{"id":"drone-mods.boosted-engine","type":"template","appliesTo":{"type":"drone"},"fields":{"move":"prior.move + 10","cost":"prior.cost + floor(base.cost * 0.25)"}},{"id":"drone-mods.heavy-plating","type":"template","appliesTo":{"type":"drone"},"fields":{"ac":"prior.ac + 2","move":"max(0, prior.move - 5)","enc":"has(prior.enc) ? prior.enc + 1 : 0","cost":"prior.cost + floor(base.cost * 0.25)"}},{"id":"drone-mods.quick-launch","type":"template","appliesTo":{"type":"drone","where":"'portable' in item.tags"},"fields":{"cost":"prior.cost + floor(base.cost * 0.1)"}},{"id":"drone-mods.redundant-systems","type":"template","appliesTo":{"type":"drone"},"fields":{"hp":"prior.hp + ceil(base.hp * 0.25)","enc":"has(prior.enc) ? prior.enc + 1 : 0","cost":"prior.cost + floor(base.cost * 0.5)"}},{"id":"drone-mods.stripped-fittings","type":"template","appliesTo":{"type":"drone","where":"'portable' in item.tags"},"fields":{"fittings":"max(0, prior.fittings - 1)","enc":"has(prior.enc) ? max(1, prior.enc - 1) : 0","cost":"prior.cost + floor(base.cost * 0.1)"}},{"id":"drones.hummingbird","type":"drone","tags":["portable"],"fields":{"cost":2000,"enc":3,"ac":15,"traumaTarget":6,"hp":5,"fittings":2,"move":10,"moveKind":"fly","hardpoints":0}},{"id":"drones.javelin","type":"drone","tags":["portable"],"fields":{"cost":10000,"enc":6,"ac":16,"traumaTarget":6,"hp":12,"fittings":5,"move":20,"moveKind":"fly","hardpoints":1}},{"id":"drones.kerberos","type":"drone","fields":{"cost":15000,"ac":18,"traumaTarget":8,"hp":25,"fittings":6,"move":20,"moveKind":"ground","hardpoints":3}},{"id":"drones.kraken","type":"drone","fields":{"cost":10000,"ac":16,"traumaTarget":8,"hp":20,"fittings":5,"move":15,"moveKind":"swim","hardpoints":2}},{"id":"drones.mouse","type":"drone","tags":["portable"],"fields":{"cost":500,"enc":1,"ac":13,"traumaTarget":6,"hp":1,"fittings":0,"move":5,"moveKind":"ground","hardpoints":0}},{"id":"drones.pitbull","type":"drone","tags":["portable"],"fields":{"cost":5000,"enc":5,"ac":15,"traumaTarget":8,"hp":15,"fittings":5,"move":20,"moveKind":"ground","hardpoints":1}},{"id":"drones.roach","type":"drone","tags":["portable"],"fields":{"cost":1000,"enc":3,"ac":13,"traumaTarget":6,"hp":8,"fittings":3,"move":10,"moveKind":"ground","hardpoints":0}},{"id":"drones.shrike","type":"drone","fields":{"cost":25000,"ac":18,"traumaTarget":8,"hp":20,"fittings":6,"move":30,"moveKind":"fly","hardpoints":2}},{"id":"drones.sunfish","type":"drone","tags":["portable"],"fields":{"cost":1000,"enc":3,"ac":15,"traumaTarget":6,"hp":8,"fittings":3,"move":10,"moveKind":"swim","hardpoints":0}},{"id":"drugs.avalanche","type":"drug","fields":{"cost":100,"minHeal":0}},{"id":"drugs.boneshaker","type":"drug","fields":{"cost":10,"strain":2}},{"id":"drugs.chokeout","type":"drug","fields":{"cost":50}},{"id":"drugs.control-delete","type":"drug","fields":{"cost":25}},{"id":"drugs.hellbender","type":"drug","fields":{"cost":100}},{"id":"drugs.lurch","type":"drug","fields":{"cost":25,"minHeal":0,"strain":1,"healDice":"1d10"}},{"id":"drugs.madeleine","type":"drug","fields":{"cost":100}},{"id":"drugs.medical-prescription","type":"drug","fields":{"cost":20}},{"id":"drugs.olympus","type":"drug","fields":{"cost":100,"minHeal":0,"strain":1}},{"id":"drugs.panacea","type":"drug","fields":{"cost":200,"minHeal":1}},{"id":"drugs.pillow","type":"drug","fields":{"cost":10,"minHeal":0}},{"id":"drugs.psycho","type":"drug","fields":{"cost":10}},{"id":"drugs.reset","type":"drug","tags":["restricted"],"fields":{"cost":1000}},{"id":"drugs.sand","type":"drug","fields":{"cost":2}},{"id":"drugs.trauma-patch","type":"drug","fields":{"cost":50}},{"id":"drugs.window","type":"drug","fields":{"cost":200,"minHeal":1}},{"id":"edges.educated","type":"edge","tags":["retroactive-points"],"fields":{"bonusSkill":"any"},"effects":[{"target":"skillPoints.perLevel","op":"add","value":1}]},{"id":"edges.face","type":"edge","fields":{"bonusSkill":"connect"}},{"id":"edges.focused","type":"edge","repeatable":true,"fields":{"extraFocus":true},"effects":[{"target":"foci.allowed","op":"add","value":1}]},{"id":"edges.ghost","type":"edge","fields":{"bonusSkill":"sneak"}},{"id":"edges.graced","type":"edge","fields":{"magic":true,"buysArts":true},"effects":[{"target":"magic.graced","op":"set","value":true}]},{"id":"edges.hacker","type":"edge","tags":["brings-cyber"],"fields":{"bonusSkill":"program","programElements":8,"startingItems":["cyberdecks.scrap-deck"],"startingCyber":["cyberware.cranial-jack"],"startingCyberStrain":0.25}},{"id":"edges.hard-to-kill","type":"edge","effects":[{"target":"hp.dieBonus","op":"add","value":2},{"target":"trauma.target","op":"add","value":1}]},{"id":"edges.killing-blow","type":"edge","fields":{"bonusSkill":"combat"},"effects":[{"target":"combat.damageBonus","op":"add","value":"ceil(level / 2)"},{"target":"combat.traumaBonus","op":"add","value":1}]},{"id":"edges.masterful-expertise","type":"edge"},{"id":"edges.on-target","type":"edge","fields":{"bonusSkill":"combat"},"effects":[{"target":"combat.attackBonus","op":"set","value":"level"}]},{"id":"edges.operators-fortune","type":"edge"},{"id":"edges.prodigy","type":"edge","tags":["not-underdog"],"fields":{"asksAttribute":true},"choices":[{"id":"attribute","from":{"values":["str","dex","int","wis","cha"]},"effects":[{"target":{"fields":{"where":"'attribute' in item.tags && ('attr.' + pick.value) in item.tags"}},"op":"atLeast","value":18},{"target":{"fields":{"where":"'attribute-score-mod' in item.tags && ('attr.' + pick.value) in item.tags"}},"op":"atLeast","value":3}]}],"prerequisites":[{"id":"not-underdog","when":"!underdog"}]},{"id":"edges.spellcaster","type":"edge","fields":{"magic":true,"bonusSkill":"cast","spells":4},"effects":[{"target":"magic.mage","op":"set","value":true}]},{"id":"edges.summoner","type":"edge","fields":{"magic":true,"bonusSkill":"summon"},"effects":[{"target":"magic.summoner","op":"set","value":true}]},{"id":"edges.veterans-luck","type":"edge"},{"id":"edges.voice-of-the-people","type":"edge","fields":{"friendContacts":1},"grants":[{"item":"foci.pop-idol","state":{"level":2}}]},{"id":"edges.wired","type":"edge","tags":["brings-cyber"],"fields":{"cyberBudget":200000},"effects":[{"target":"cyber.wiredBudget","op":"add","value":200000}]},{"id":"foci.ace-driver","type":"focus","fields":{"bonusSkill":"drive","levelTwoSkill":"fix","gearBudget":"vehicle"},"effects":[{"target":"budget.vehicle","op":"atLeast","value":"[5000, 10000, 15000, 20000, 30000, 40000, 60000, 80000, 100000, 200000][level - 1]"}]},{"id":"foci.alert","type":"focus","fields":{"bonusSkill":"notice"}},{"id":"foci.all-natural","type":"focus","tags":["asks-attribute","bars-cyber"],"fields":{"maxLevel":1,"bonusSkill":"any"},"prerequisites":[{"id":"no-cyber","when":"countCopies(copy.type == 'cyberware' && copy.fields.strain > 0) == 0"},{"id":"no-magic","when":"!magic.mage && !magic.summoner && !magic.graced"}],"choices":[{"id":"attribute","slots":[1,3,5,7,10],"when":"level >= slot","from":{"values":["str","dex","con","int","wis","cha"]},"effects":[{"target":{"fields":{"where":"'attribute-mod-bonus' in item.tags && ('attr.' + pick.value) in item.tags"}},"op":"add","value":1},{"target":{"fields":{"where":"'attribute-mod-cap' in item.tags && ('attr.' + pick.value) in item.tags"}},"op":"atLeast","value":3}]}]},{"id":"foci.armsmaster","type":"focus","fields":{"bonusSkill":"stab"},"effects":[{"target":"combat.meleeSkillDamage","op":"atLeast","value":"max(0, skills.stab.level)"},{"target":"combat.shockAc","op":"atMost","value":10,"when":"self.level >= 2"},{"target":"combat.meleeHitBonus","op":"add","value":1,"when":"self.level >= 2"}]},{"id":"foci.assassin","type":"focus","fields":{"bonusSkill":"sneak"}},{"id":"foci.authority","type":"focus","fields":{"bonusSkill":"lead"}},{"id":"foci.close-combatant","type":"focus","fields":{"bonusSkill":"combat"},"effects":[{"target":"combat.shockAc","op":"atMost","value":10,"when":"self.level >= 2"}]},{"id":"foci.cyberdoc","type":"focus","fields":{"bonusSkill":"fix","bonusSkill2":"heal","startingItems":["gear.kit-cyberdoc"]}},{"id":"foci.deadeye","type":"focus","fields":{"bonusSkill":"shoot"},"effects":[{"target":"combat.rangedSkillDamage","op":"atLeast","value":"max(0, skills.shoot.level)"}]},{"id":"foci.diplomat","type":"focus","fields":{"bonusSkill":"talk"}},{"id":"foci.drone-pilot","type":"focus","tags":["brings-cyber"],"fields":{"bonusSkill":"drive","bonusSkill2":"fix","gearBudget":"drone","startingCyber":["cyberware.remote-control-unit"],"startingCyberStrain":2},"effects":[{"target":"budget.drone","op":"atLeast","value":"[1000, 5000, 10000, 15000, 20000, 25000, 35000, 45000, 60000, 80000][level - 1]"},{"target":"drones.attackBonus","op":"add","value":2,"when":"self.level >= 2"}]},{"id":"foci.expert-programmer","type":"focus","fields":{"bonusSkill":"program"},"effects":[{"target":"hacking.programming.max","op":"add","value":"level + 2"},{"target":"hacking.memory.perElement","op":"set","value":0.5,"when":"self.level >= 2"},{"target":"hacking.cpu","op":"add","value":"max(0, skills.program.level)","when":"self.level >= 2"}]},{"id":"foci.healer","type":"focus","fields":{"bonusSkill":"heal"},"effects":[{"target":{"rolls":["skill.heal"]},"op":"rollModifier","value":{"kind":"poolDice","count":1},"stackKey":"skill-dice"}]},{"id":"foci.henchkeeper","type":"focus","fields":{"bonusSkill":"lead"}},{"id":"foci.many-faces","type":"focus","fields":{"maxLevel":1,"bonusSkill":"sneak"}},{"id":"foci.pop-idol","type":"focus","fields":{"bonusSkill":"perform"},"effects":[{"target":"attributes.cha.modBonus","op":"add","value":1,"when":"self.level >= 2"}]},{"id":"foci.roamer","type":"focus","fields":{"bonusSkill":"survive","bonusSkill2":"drive","gearBudget":"vehicle"},"effects":[{"target":"budget.vehicle","op":"atLeast","value":"[5000, 10000, 15000, 20000, 30000, 40000, 60000, 80000, 100000, 200000][level - 1]"}]},{"id":"foci.safe-haven","type":"focus","fields":{"bonusSkill":"sneak"}},{"id":"foci.shocking-assault","type":"focus","fields":{"bonusSkill":"punch-stab"},"effects":[{"target":"combat.shockAc","op":"atMost","value":10},{"target":"combat.shockBonus","op":"add","value":2,"when":"self.level >= 2"}]},{"id":"foci.snipers-eye","type":"focus","fields":{"bonusSkill":"shoot"}},{"id":"foci.specialist","type":"focus","tags":["repeatable"],"fields":{"bonusSkill":"noncombat"},"choices":[{"id":"skill","from":{"values":["administer","connect","drive","exert","fix","heal","know","lead","notice","perform","program","sneak","survive","talk","trade","work"]},"effects":[{"target":{"rolls":["skill-check"]},"op":"rollModifier","value":{"kind":"poolDice","count":"self.level >= 2 ? 2 : 1"},"when":"('skill.' + pick.value) in roll.tags","stackKey":"skill-dice"}]}]},{"id":"foci.tinker","type":"focus","fields":{"bonusSkill":"fix"},"effects":[{"target":"maintenance.multiplier","op":"set","value":2},{"target":"maintenance.fixBonus","op":"add","value":1,"when":"self.level >= 2"}]},{"id":"foci.unarmed-combatant","type":"focus","fields":{"bonusSkill":"punch"},"keepsTemplates":[{"template":"weapon-mods.unarmed-combatant","copies":{"type":"weapon","where":"'unarmed' in item.tags"}},{"template":"weapon-mods.unarmed-combatant-2","when":"self.level >= 2","copies":{"type":"weapon","where":"'unarmed' in item.tags"}}]},{"id":"foci.unique-gift","type":"focus","fields":{"maxLevel":1}},{"id":"foci.unregistered","type":"focus","fields":{"maxLevel":1}},{"id":"foci.whirlwind-assault","type":"focus","fields":{"bonusSkill":"punch-stab"}},{"id":"gear.active-hearing-protection","type":"gear","fields":{"cost":250,"enc":1}},{"id":"gear.ammunition","type":"gear","fields":{"cost":1}},{"id":"gear.anti-flash-goggles","type":"gear","fields":{"cost":100,"enc":1}},{"id":"gear.backpack","type":"gear","tags":["worn"],"fields":{"cost":25,"enc":1}},{"id":"gear.basic-smartphone","type":"gear","fields":{"cost":50}},{"id":"gear.binoculars","type":"gear","fields":{"cost":100,"enc":1}},{"id":"gear.bus-pass-monthly","type":"gear","fields":{"cost":50}},{"id":"gear.cheap-vr-crown","type":"gear","tags":["vr-crown"],"fields":{"cost":50,"enc":1}},{"id":"gear.climbing-kit","type":"gear","fields":{"cost":150,"enc":2}},{"id":"gear.empty-magazine","type":"gear","fields":{"cost":10,"enc":1}},{"id":"gear.fashionable-clothing","type":"gear","tags":["worn"],"fields":{"cost":500,"enc":1}},{"id":"gear.fashionable-smartphone","type":"gear","fields":{"cost":2000}},{"id":"gear.gas-mask","type":"gear","fields":{"cost":1000,"enc":1}},{"id":"gear.handheld-radio","type":"gear","fields":{"cost":50,"enc":1}},{"id":"gear.haute-couture-clothing","type":"gear","tags":["worn"],"fields":{"cost":10000,"enc":1}},{"id":"gear.ir-goggles","type":"gear","fields":{"cost":1000,"enc":1}},{"id":"gear.kit-basic-tools","type":"gear","fields":{"cost":100,"enc":2}},{"id":"gear.kit-cyberdoc","type":"gear","fields":{"cost":500,"enc":2}},{"id":"gear.kit-medkit","type":"gear","fields":{"cost":100,"enc":1}},{"id":"gear.kit-survival","type":"gear","fields":{"cost":100,"enc":2}},{"id":"gear.lockpicks","type":"gear","fields":{"cost":100,"enc":1}},{"id":"gear.maintenance-supplies","type":"gear","fields":{"cost":0,"enc":1}},{"id":"gear.manufacturers-installation-kit","type":"gear","fields":{"cost":10000,"enc":1}},{"id":"gear.military-ration","type":"gear","fields":{"cost":20,"enc":1}},{"id":"gear.ordinary-clothes","type":"gear","tags":["worn"],"fields":{"cost":25,"enc":1}},{"id":"gear.portable-video-camera","type":"gear","fields":{"cost":300,"enc":1}},{"id":"gear.smartphone-service-plan","type":"gear","fields":{"cost":10}},{"id":"gear.surgical-theater-tools-level-1","type":"gear","fields":{"cost":10000,"enc":10}},{"id":"gear.surgical-theater-tools-level-2","type":"gear","fields":{"cost":500000}},{"id":"gear.surgical-theater-tools-level-3","type":"gear","fields":{"cost":5000000}},{"id":"gear.ultralight-tab-radio","type":"gear","fields":{"cost":500,"enc":0}},{"id":"gear.wearable-light","type":"gear","tags":["worn"],"fields":{"cost":25,"enc":1}},{"id":"programs.subjects.avatar","type":"program","fields":{"cost":500,"kind":"subject","subjectType":"avatar"}},{"id":"programs.subjects.barrier","type":"program","fields":{"cost":1000,"kind":"subject","subjectType":"data"}},{"id":"programs.subjects.camera","type":"program","fields":{"cost":500,"kind":"subject","subjectType":"device"}},{"id":"programs.subjects.cyber","type":"program","fields":{"cost":1000,"kind":"subject","subjectType":"cyber"}},{"id":"programs.subjects.datafile","type":"program","fields":{"cost":500,"kind":"subject","subjectType":"data"}},{"id":"programs.subjects.door","type":"program","fields":{"cost":500,"kind":"subject","subjectType":"device"}},{"id":"programs.subjects.drone","type":"program","fields":{"cost":1000,"kind":"subject","subjectType":"device"}},{"id":"programs.subjects.machine","type":"program","fields":{"cost":500,"kind":"subject","subjectType":"device"}},{"id":"programs.subjects.program","type":"program","fields":{"cost":500,"kind":"subject","subjectType":"program"}},{"id":"programs.subjects.sensor","type":"program","fields":{"cost":500,"kind":"subject","subjectType":"device"}},{"id":"programs.subjects.transmission","type":"program","fields":{"cost":1000,"kind":"subject","subjectType":"data"}},{"id":"programs.subjects.turret","type":"program","fields":{"cost":1000,"kind":"subject","subjectType":"device"}},{"id":"programs.verbs.activate","type":"program","tags":["self-terminating"],"fields":{"cost":1000,"kind":"verb","targets":["device","cyber"],"accessCost":1,"checkMod":1}},{"id":"programs.verbs.analyze","type":"program","tags":["self-terminating"],"fields":{"cost":500,"kind":"verb","targets":["device","data"],"accessCost":0,"checkMod":1}},{"id":"programs.verbs.append","type":"program","tags":["self-terminating"],"fields":{"cost":500,"kind":"verb","targets":["data"],"accessCost":1}},{"id":"programs.verbs.blind","type":"program","fields":{"cost":2000,"kind":"verb","targets":["device","cyber"],"accessCost":1}},{"id":"programs.verbs.deactivate","type":"program","tags":["self-terminating"],"fields":{"cost":2000,"kind":"verb","targets":["device","cyber"],"accessCost":1,"checkMod":1}},{"id":"programs.verbs.decrypt","type":"program","tags":["self-terminating"],"fields":{"cost":1000,"kind":"verb","targets":["data"],"accessCost":1}},{"id":"programs.verbs.defend","type":"program","fields":{"cost":1000,"kind":"verb","targets":["device","cyber"],"accessCost":0}},{"id":"programs.verbs.delude","type":"program","fields":{"cost":5000,"kind":"verb","targets":["device"],"accessCost":1,"checkMod":-1}},{"id":"programs.verbs.erase","type":"program","tags":["self-terminating"],"fields":{"cost":500,"kind":"verb","targets":["data"],"accessCost":1,"checkMod":1}},{"id":"programs.verbs.frisk","type":"program","tags":["self-terminating"],"fields":{"cost":500,"kind":"verb","targets":["cyber"],"accessCost":0,"checkMod":1}},{"id":"programs.verbs.ghost","type":"program","fields":{"cost":2000,"kind":"verb","targets":["avatar"],"accessCost":1}},{"id":"programs.verbs.glitch","type":"program","fields":{"cost":1000,"kind":"verb","targets":["device","cyber"],"accessCost":0,"checkMod":2}},{"id":"programs.verbs.hijack","type":"program","fields":{"cost":5000,"kind":"verb","targets":["device"],"accessCost":1,"checkMod":-1}},{"id":"programs.verbs.kill","type":"program","tags":["self-terminating"],"fields":{"cost":5000,"kind":"verb","targets":["avatar"],"accessCost":1}},{"id":"programs.verbs.lock","type":"program","fields":{"cost":1000,"kind":"verb","targets":["device","data"],"accessCost":1,"checkMod":1}},{"id":"programs.verbs.paralyze","type":"program","fields":{"cost":2000,"kind":"verb","targets":["avatar"],"accessCost":1,"checkMod":-1}},{"id":"programs.verbs.replace","type":"program","tags":["self-terminating"],"fields":{"cost":1000,"kind":"verb","targets":["data"],"accessCost":1}},{"id":"programs.verbs.sabotage","type":"program","tags":["self-terminating"],"fields":{"cost":2000,"kind":"verb","targets":["device","cyber"],"accessCost":1,"checkMod":-1}},{"id":"programs.verbs.sense","type":"program","fields":{"cost":1000,"kind":"verb","targets":["device","cyber"],"accessCost":0}},{"id":"programs.verbs.siege","type":"program","fields":{"cost":2500,"kind":"verb","targets":["device"],"accessCost":1,"checkMod":-2}},{"id":"programs.verbs.silence","type":"program","fields":{"cost":1000,"kind":"verb","targets":["avatar"],"accessCost":1,"checkMod":1}},{"id":"programs.verbs.stun","type":"program","tags":["self-terminating"],"fields":{"cost":1000,"kind":"verb","targets":["avatar"],"accessCost":0,"checkMod":1}},{"id":"programs.verbs.terminate","type":"program","tags":["self-terminating"],"fields":{"cost":500,"kind":"verb","targets":["program"],"accessCost":1}},{"id":"programs.verbs.unlock","type":"program","tags":["self-terminating"],"fields":{"cost":500,"kind":"verb","targets":["device","data"],"accessCost":1,"checkMod":1}},{"id":"skillplugs.level-0","type":"skillplug","fields":{"cost":1000,"plugLevel":0},"choices":[{"id":"skill","from":{"values":["administer","connect","drive","exert","fix","heal","know","lead","notice","perform","program","punch","shoot","sneak","stab","survive","talk","trade","work"]},"effects":[{"target":{"fields":{"where":"'skill' in item.tags && ('skill.' + pick.value) in item.tags"}},"op":"atLeast","value":0,"when":"self.equipped && cyber.plugJack >= (pick.value in ['drive', 'exert', 'perform', 'punch', 'shoot', 'sneak', 'stab'] ? 2 : 1)"}]}]},{"id":"skillplugs.level-1","type":"skillplug","fields":{"cost":10000,"plugLevel":1},"choices":[{"id":"skill","from":{"values":["administer","connect","drive","exert","fix","heal","know","lead","notice","perform","program","punch","shoot","sneak","stab","survive","talk","trade","work"]},"effects":[{"target":{"fields":{"where":"'skill' in item.tags && ('skill.' + pick.value) in item.tags"}},"op":"atLeast","value":1,"when":"self.equipped && cyber.plugJack >= (pick.value in ['drive', 'exert', 'perform', 'punch', 'shoot', 'sneak', 'stab'] ? 2 : 1)"}]}]},{"id":"skillplugs.level-2","type":"skillplug","fields":{"cost":50000,"plugLevel":2},"choices":[{"id":"skill","from":{"values":["administer","connect","drive","exert","fix","heal","know","lead","notice","perform","program","punch","shoot","sneak","stab","survive","talk","trade","work"]},"effects":[{"target":{"fields":{"where":"'skill' in item.tags && ('skill.' + pick.value) in item.tags"}},"op":"atLeast","value":2,"when":"self.equipped && cyber.plugJack >= (pick.value in ['drive', 'exert', 'perform', 'punch', 'shoot', 'sneak', 'stab'] ? 2 : 1) && cyber.plugWiring"}]}]},{"id":"skillplugs.level-3","type":"skillplug","tags":["restricted"],"fields":{"cost":0,"plugLevel":3},"choices":[{"id":"skill","from":{"values":["administer","connect","drive","exert","fix","heal","know","lead","notice","perform","program","punch","shoot","sneak","stab","survive","talk","trade","work"]},"effects":[{"target":{"fields":{"where":"'skill' in item.tags && ('skill.' + pick.value) in item.tags"}},"op":"atLeast","value":3,"when":"self.equipped && cyber.plugJack >= (pick.value in ['drive', 'exert', 'perform', 'punch', 'shoot', 'sneak', 'stab'] ? 2 : 1) && cyber.plugWiring"}]}]},{"id":"spells.arson","type":"spell","fields":{"effort":"day","duration":"instant"}},{"id":"spells.blast","type":"spell","fields":{"effort":"day","duration":"instant"}},{"id":"spells.blastwave","type":"spell","fields":{"effort":"day","duration":"instant"}},{"id":"spells.bless","type":"spell","fields":{"effort":"scene","duration":"scene"}},{"id":"spells.cleanse-toxin","type":"spell","fields":{"effort":"day","duration":"instant"}},{"id":"spells.cloak","type":"spell","fields":{"effort":"day","duration":"scene"}},{"id":"spells.combat-precognition","type":"spell","fields":{"effort":"day","duration":"scene"}},{"id":"spells.compulsion","type":"spell","fields":{"effort":"scene","duration":"scene"}},{"id":"spells.curse","type":"spell","fields":{"effort":"scene","duration":"rounds"}},{"id":"spells.detect-target","type":"spell","fields":{"effort":"scene","duration":"scene"}},{"id":"spells.dispel","type":"spell","fields":{"effort":"day","duration":"instant"}},{"id":"spells.disrupt","type":"spell","fields":{"effort":"day","duration":"instant"}},{"id":"spells.emotion","type":"spell","fields":{"effort":"either","duration":"scene"}},{"id":"spells.far-senses","type":"spell","fields":{"effort":"day","duration":"concentration"}},{"id":"spells.glide","type":"spell","fields":{"effort":"scene","duration":"instant"}},{"id":"spells.haste","type":"spell","fields":{"effort":"day","duration":"scene"}},{"id":"spells.heal-injury","type":"spell","fields":{"effort":"day","duration":"instant"}},{"id":"spells.illumination","type":"spell","fields":{"effort":"none","duration":"scene"}},{"id":"spells.mirage","type":"spell","fields":{"effort":"scene","duration":"scene"}},{"id":"spells.muffle","type":"spell","fields":{"effort":"scene","duration":"scene"}},{"id":"spells.paralysis","type":"spell","fields":{"effort":"day","duration":"scene"}},{"id":"spells.psychic-interrogation","type":"spell","fields":{"effort":"day","duration":"instant"}},{"id":"spells.slow","type":"spell","fields":{"effort":"day","duration":"rounds"}},{"id":"spells.soul-link","type":"spell","fields":{"effort":"scene","duration":"scene"}},{"id":"spells.stun","type":"spell","fields":{"effort":"either","duration":"instant"}},{"id":"spells.stunwave","type":"spell","fields":{"effort":"day","duration":"instant"}},{"id":"spells.triage","type":"spell","fields":{"effort":"either","duration":"instant"}},{"id":"spirit-powers.airy-steps","type":"spiritPower"},{"id":"spirit-powers.artifice-wise","type":"spiritPower"},{"id":"spirit-powers.aura-of-destruction","type":"spiritPower"},{"id":"spirit-powers.curse","type":"spiritPower"},{"id":"spirit-powers.ensnare","type":"spiritPower","fields":{"physicalOnly":true}},{"id":"spirit-powers.favor","type":"spiritPower"},{"id":"spirit-powers.feral-pact","type":"spiritPower"},{"id":"spirit-powers.finned-swiftness","type":"spiritPower"},{"id":"spirit-powers.flesh-of-clay","type":"spiritPower"},{"id":"spirit-powers.ghostly-presence","type":"spiritPower"},{"id":"spirit-powers.hideous-talons","type":"spiritPower","fields":{"physicalOnly":true}},{"id":"spirit-powers.iron-eidolon","type":"spiritPower","fields":{"physicalOnly":true}},{"id":"spirit-powers.merciful-hands","type":"spiritPower"},{"id":"spirit-powers.mighty-form","type":"spiritPower","fields":{"physicalOnly":true}},{"id":"spirit-powers.mislead","type":"spiritPower"},{"id":"spirit-powers.misty-form","type":"spiritPower"},{"id":"spirit-powers.mortal-disguise","type":"spiritPower"},{"id":"spirit-powers.myrmidons-shield","type":"spiritPower"},{"id":"spirit-powers.namebearer","type":"spiritPower"},{"id":"spirit-powers.natural-immunity","type":"spiritPower"},{"id":"spirit-powers.poltergeist","type":"spiritPower"},{"id":"spirit-powers.skilled","type":"spiritPower"},{"id":"spirit-powers.spiderlegs","type":"spiritPower"},{"id":"spirit-powers.spirit-of-war","type":"spiritPower","fields":{"physicalOnly":true}},{"id":"spirit-powers.spirit-whispers","type":"spiritPower"},{"id":"spirit-powers.spirits-eye","type":"spiritPower"},{"id":"spirit-powers.swift-pursuit","type":"spiritPower"},{"id":"spirit-powers.violent-will","type":"spiritPower","fields":{"physicalOnly":true}},{"id":"spirits.spirit","type":"spirit","choices":[{"id":"powers","from":{"type":"spiritPower"},"pick":{"min":0,"max":31},"required":false,"eligible":"level >= item.minLevel && (!item.physicalOnly || self.form in ['physical-1', 'physical-2', 'physical-3'])"}]},{"id":"syndromes.brutal","type":"syndrome","fields":{"alienation":4}},{"id":"syndromes.candid","type":"syndrome","fields":{"alienation":3}},{"id":"syndromes.cold","type":"syndrome","fields":{"alienation":4}},{"id":"syndromes.distant","type":"syndrome","fields":{"alienation":3}},{"id":"syndromes.exultant","type":"syndrome","fields":{"alienation":3}},{"id":"syndromes.fearless","type":"syndrome","fields":{"alienation":4}},{"id":"syndromes.hypervigilant","type":"syndrome","fields":{"alienation":3}},{"id":"syndromes.murderous","type":"syndrome","fields":{"alienation":6}},{"id":"syndromes.ravenous","type":"syndrome","fields":{"alienation":4}},{"id":"syndromes.savage","type":"syndrome","fields":{"alienation":5}},{"id":"syndromes.secretive","type":"syndrome","fields":{"alienation":3}},{"id":"syndromes.stressed","type":"syndrome","fields":{"alienation":5}},{"id":"vehicle-fittings.advanced-sensors","type":"template","appliesTo":{"type":"vehicle"},"fields":{"powerUsed":"prior.powerUsed + 1","cost":"prior.cost + 8000"}},{"id":"vehicle-fittings.afterburners","type":"template","appliesTo":{"type":"vehicle"},"fields":{"powerUsed":"prior.powerUsed + 1","massUsed":"prior.massUsed + 2","cost":"prior.cost + 5000"}},{"id":"vehicle-fittings.armor-plating","type":"template","appliesTo":{"type":"vehicle"},"fields":{"armor":"prior.armor + 3","massUsed":"prior.massUsed + 3","cost":"prior.cost + 5000"}},{"id":"vehicle-fittings.cargo-space","type":"template","appliesTo":{"type":"vehicle"},"fields":{"massUsed":"prior.massUsed + 1"}},{"id":"vehicle-fittings.crash-pod","type":"template","appliesTo":{"type":"vehicle","where":"item.size != 'small'"},"fields":{"massUsed":"prior.massUsed + 2","cost":"prior.cost + 2500"}},{"id":"vehicle-fittings.ecm-emitter","type":"template","appliesTo":{"type":"vehicle","where":"item.size != 'small'"},"fields":{"powerUsed":"prior.powerUsed + 2","cost":"prior.cost + 10000"}},{"id":"vehicle-fittings.emissions-cloaking","type":"template","appliesTo":{"type":"vehicle"},"fields":{"powerUsed":"prior.powerUsed + 1","massUsed":"prior.massUsed + 2","cost":"prior.cost + 10000"}},{"id":"vehicle-fittings.extra-durability","type":"template","appliesTo":{"type":"vehicle","where":"item.size != 'small'"},"fields":{"hp":"prior.hp + ceil(base.hp * 0.25)","massUsed":"prior.massUsed + 4","cost":"prior.cost + 5000"}},{"id":"vehicle-fittings.extra-passengers","type":"template","appliesTo":{"type":"vehicle"},"fields":{"crew":"prior.crew + (item.size == 'small' ? 1 : item.size == 'medium' ? 2 : 4)","massUsed":"prior.massUsed + 2","cost":"prior.cost + 2500"}},{"id":"vehicle-fittings.field-portable","type":"template","appliesTo":{"type":"vehicle"},"fields":{"massUsed":"prior.massUsed + 2","cost":"prior.cost + 1000"}},{"id":"vehicle-fittings.ghost-driver","type":"template","appliesTo":{"type":"vehicle"},"fields":{"powerUsed":"prior.powerUsed + 1","massUsed":"prior.massUsed + 1","cost":"prior.cost + 2500"}},{"id":"vehicle-fittings.hardpoint-support","type":"template","appliesTo":{"type":"vehicle","where":"item.size != 'small'"},"fields":{"hardpoints":"prior.hardpoints + 1","powerUsed":"prior.powerUsed + 1","massUsed":"prior.massUsed + 1","cost":"prior.cost + 5000"}},{"id":"vehicle-fittings.jack-control-port","type":"template","appliesTo":{"type":"vehicle"},"fields":{"powerUsed":"prior.powerUsed + 2","cost":"prior.cost + 5000"}},{"id":"vehicle-fittings.limpet-mount-medium","type":"template","appliesTo":{"type":"vehicle","where":"item.size == 'large'"},"fields":{"massUsed":"prior.massUsed + 6","cost":"prior.cost + 10000"}},{"id":"vehicle-fittings.limpet-mount-small","type":"template","appliesTo":{"type":"vehicle","where":"item.size != 'small'"},"fields":{"massUsed":"prior.massUsed + 3","cost":"prior.cost + 5000"}},{"id":"vehicle-fittings.living-quarters","type":"template","appliesTo":{"type":"vehicle","where":"item.size == 'large'"},"fields":{"massUsed":"prior.massUsed + 4","cost":"prior.cost + 8000"}},{"id":"vehicle-fittings.medbay","type":"template","appliesTo":{"type":"vehicle","where":"item.size != 'small'"},"fields":{"powerUsed":"prior.powerUsed + 1","massUsed":"prior.massUsed + 2","cost":"prior.cost + 10000"}},{"id":"vehicle-fittings.offroad-package","type":"template","appliesTo":{"type":"vehicle","where":"item.size == 'large'"},"fields":{"powerUsed":"prior.powerUsed + 1","massUsed":"prior.massUsed + 3","cost":"prior.cost + 5000"}},{"id":"vehicle-fittings.power-system-large","type":"template","appliesTo":{"type":"vehicle","where":"item.size == 'large'"},"fields":{"power":"prior.power + 8","massUsed":"prior.massUsed + 5","cost":"prior.cost + 10000"}},{"id":"vehicle-fittings.power-system-medium","type":"template","appliesTo":{"type":"vehicle","where":"item.size != 'small'"},"fields":{"power":"prior.power + 4","massUsed":"prior.massUsed + 3","cost":"prior.cost + 5000"}},{"id":"vehicle-fittings.power-system-small","type":"template","appliesTo":{"type":"vehicle"},"fields":{"power":"prior.power + 2","massUsed":"prior.massUsed + 2","cost":"prior.cost + 1000"}},{"id":"vehicle-fittings.sealed-atmosphere","type":"template","appliesTo":{"type":"vehicle","where":"item.size != 'small'"},"fields":{"powerUsed":"prior.powerUsed + 1","massUsed":"prior.massUsed + 1","cost":"prior.cost + 5000"}},{"id":"vehicle-fittings.smugglers-hold","type":"template","appliesTo":{"type":"vehicle"},"fields":{"massUsed":"prior.massUsed + 1","cost":"prior.cost + 1000"}},{"id":"vehicle-fittings.targeting-board","type":"template","appliesTo":{"type":"vehicle","where":"item.size != 'small'"},"fields":{"powerUsed":"prior.powerUsed + 1","massUsed":"prior.massUsed + 1","cost":"prior.cost + 2500"}},{"id":"vehicle-fittings.tool-rack","type":"template","appliesTo":{"type":"vehicle","where":"item.size != 'small'"},"fields":{"massUsed":"prior.massUsed + 2","cost":"prior.cost + 2500"}},{"id":"vehicle-mods.augmented-armor","type":"template","appliesTo":{"type":"vehicle"},"fields":{"armor":"prior.armor + 3","cost":"prior.cost + floor(base.cost * 0.25)"}},{"id":"vehicle-mods.drone-hub","type":"template","appliesTo":{"type":"vehicle"},"fields":{"cost":"prior.cost + floor(base.cost * 0.1)"}},{"id":"vehicle-mods.extra-seating","type":"template","appliesTo":{"type":"vehicle"},"fields":{"crew":"prior.crew + (item.size == 'small' ? 1 : item.size == 'medium' ? 2 : 4)","cost":"prior.cost + floor(base.cost * 0.1)"}},{"id":"vehicle-mods.integrated-magazines","type":"template","appliesTo":{"type":"vehicle"},"fields":{"cost":"prior.cost + floor(base.cost * 0.1)"}},{"id":"vehicle-mods.personalized-controls","type":"template","appliesTo":{"type":"vehicle"},"fields":{"cost":"prior.cost + floor(base.cost * 0.2)"}},{"id":"vehicle-mods.power-system-upgrade","type":"template","appliesTo":{"type":"vehicle"},"fields":{"power":"prior.power + (item.size == 'small' ? 2 : item.size == 'medium' ? 3 : 4)","cost":"prior.cost + floor(base.cost * 0.25)"}},{"id":"vehicle-mods.q-cladding","type":"template","appliesTo":{"type":"vehicle"},"fields":{"cost":"prior.cost + floor(base.cost * 0.2)"}},{"id":"vehicle-mods.reactive-defenses","type":"template","appliesTo":{"type":"vehicle"},"fields":{"ac":"prior.ac + 2","armor":"max(0, prior.armor - 2)","cost":"prior.cost + floor(base.cost * 0.25)"}},{"id":"vehicle-mods.reinforced-chassis","type":"template","appliesTo":{"type":"vehicle"},"fields":{"hp":"prior.hp + floor(base.hp * 0.25)","mass":"max(0, prior.mass - 2)","cost":"prior.cost + floor(base.cost * 0.25)"}},{"id":"vehicle-mods.remote-sensors","type":"template","appliesTo":{"type":"vehicle"},"fields":{"cost":"prior.cost + floor(base.cost * 0.1)"}},{"id":"vehicle-mods.supplementary-tanks","type":"template","appliesTo":{"type":"vehicle"},"fields":{"cost":"prior.cost + floor(base.cost * 0.1)"}},{"id":"vehicle-mods.ultralight-components","type":"template","appliesTo":{"type":"vehicle"},"fields":{"mass":"prior.mass + (item.size == 'small' ? 2 : item.size == 'medium' ? 3 : 4)","hp":"max(1, prior.hp - ceil(base.hp * 0.2))","cost":"prior.cost + floor(base.cost * 0.2)"}},{"id":"vehicle-mods.upgraded-speed","type":"template","appliesTo":{"type":"vehicle"},"fields":{"speed":"prior.speed + 1","mass":"max(0, prior.mass - ceil(prior.mass * 0.2))","cost":"prior.cost + floor(base.cost * 0.25)"}},{"id":"vehicles.apc","type":"vehicle","tags":["restricted","armored"],"fields":{"cost":60000,"speed":-1,"traumaTarget":10,"ac":16,"hp":30,"crew":16,"power":5,"mass":14,"size":"large","hardpoints":1}},{"id":"vehicles.car","type":"vehicle","fields":{"cost":5000,"speed":0,"armor":6,"traumaTarget":12,"ac":11,"hp":30,"crew":5,"power":3,"mass":7,"size":"medium","hardpoints":1}},{"id":"vehicles.casra","type":"vehicle","tags":["restricted","flying"],"fields":{"cost":200000,"speed":2,"armor":10,"traumaTarget":10,"ac":18,"hp":35,"crew":2,"power":7,"mass":10,"size":"large","hardpoints":2}},{"id":"vehicles.dropcraft","type":"vehicle","tags":["restricted","flying"],"fields":{"cost":1000000,"speed":3,"armor":12,"traumaTarget":12,"ac":16,"hp":40,"crew":13,"power":8,"mass":12,"size":"large","hardpoints":2}},{"id":"vehicles.gev","type":"vehicle","tags":["restricted","armored"],"fields":{"cost":100000,"speed":1,"traumaTarget":10,"ac":16,"hp":30,"crew":3,"power":6,"mass":10,"size":"large","hardpoints":2}},{"id":"vehicles.helicopter","type":"vehicle","tags":["flying"],"fields":{"cost":50000,"speed":3,"armor":6,"traumaTarget":10,"ac":14,"hp":20,"crew":6,"power":4,"mass":9,"size":"medium","hardpoints":1}},{"id":"vehicles.micro-flyer","type":"vehicle","tags":["flying"],"fields":{"cost":3000,"speed":0,"traumaTarget":6,"ac":13,"hp":10,"crew":1,"power":1,"mass":4,"size":"small","hardpoints":0}},{"id":"vehicles.motorcycle","type":"vehicle","fields":{"cost":1000,"speed":1,"armor":4,"traumaTarget":10,"ac":13,"hp":10,"crew":1,"power":1,"mass":3,"size":"small","hardpoints":0}},{"id":"vehicles.tank","type":"vehicle","tags":["restricted","armored-heavy"],"fields":{"cost":500000,"speed":0,"traumaTarget":12,"ac":18,"hp":40,"crew":3,"power":8,"mass":15,"size":"large","hardpoints":3}},{"id":"vehicles.truck","type":"vehicle","fields":{"cost":7500,"speed":0,"armor":6,"traumaTarget":12,"ac":11,"hp":35,"crew":2,"power":3,"mass":14,"size":"large","hardpoints":1}},{"id":"weapon-mods.autotargeting","type":"template","appliesTo":{"type":"weapon","where":"'firearm' in item.tags"},"fields":{"attackBonus":"prior.attackBonus + 1"}},{"id":"weapon-mods.body-blades-1","type":"template","appliesTo":{"type":"weapon","where":"'unarmed' in item.tags"},"tags":["body-blades"],"removeTags":["unarmed","nonlethal"],"fields":{"damage":"1d8","skill":"stab","shockDamage":2,"shockAc":15,"traumaDie":"1d8","traumaRating":3}},{"id":"weapon-mods.body-blades-2","type":"template","appliesTo":{"type":"weapon","where":"'unarmed' in item.tags"},"tags":["body-blades"],"removeTags":["unarmed","nonlethal"],"fields":{"damage":"2d6","skill":"stab","shockDamage":4,"shockAc":15,"traumaDie":"1d10","traumaRating":3}},{"id":"weapon-mods.concealed","type":"template","appliesTo":{"type":"weapon"}},{"id":"weapon-mods.customized","type":"template","appliesTo":{"type":"weapon"},"fields":{"attackBonus":"prior.attackBonus + 1"}},{"id":"weapon-mods.extended-mag","type":"template","appliesTo":{"type":"weapon","where":"has(item.magazine)"},"fields":{"magazine":"prior.magazine * 2"}},{"id":"weapon-mods.hand-of-doom","type":"template","appliesTo":{"type":"weapon","where":"'unarmed' in item.tags"},"removeTags":["nonlethal"],"fields":{"damage":"1d10","shockDamage":2,"shockAc":15,"traumaDie":"1d8","traumaRating":3,"attackBonus":"prior.attackBonus + floor(level / 3)","damageBonus":"prior.damageBonus + floor(level / 3)","shockBonus":"prior.shockBonus + floor(level / 3)"}},{"id":"weapon-mods.heavy-sabot","type":"template","appliesTo":{"type":"weapon","where":"'firearm' in item.tags"},"tags":["anti-vehicle"]},{"id":"weapon-mods.integral-toxins","type":"template","appliesTo":{"type":"weapon","where":"'melee' in item.tags || 'thrown' in item.tags"},"fields":{"damageBonus":"prior.damageBonus + 2","shockBonus":"prior.shockBonus + 2"}},{"id":"weapon-mods.onboard-gunlink","type":"template","appliesTo":{"type":"weapon","where":"'firearm' in item.tags"}},{"id":"weapon-mods.predictive-guidance","type":"template","appliesTo":{"type":"weapon"},"fields":{"attackBonus":"prior.attackBonus + 1","damageBonus":"prior.damageBonus + 1","shockBonus":"prior.shockBonus + 1"}},{"id":"weapon-mods.reel-wires","type":"template","appliesTo":{"type":"weapon","where":"has(item.rangeNormal)"}},{"id":"weapon-mods.savage-impact","type":"template","appliesTo":{"type":"weapon","where":"'melee' in item.tags"},"fields":{"damageBonus":"prior.damageBonus + 1","shockBonus":"prior.shockBonus + 1"}},{"id":"weapon-mods.shock-burst","type":"template","appliesTo":{"type":"weapon"}},{"id":"weapon-mods.stun-rounds","type":"template","appliesTo":{"type":"weapon","where":"'firearm' in item.tags"},"tags":["nonlethal"],"fields":{"rangeNormal":"floor(prior.rangeNormal / 2)","rangeLong":"floor(prior.rangeLong / 2)","damageBonus":"prior.damageBonus - 2","traumaDie":null,"traumaRating":null}},{"id":"weapon-mods.thermal-charge","type":"template","appliesTo":{"type":"weapon","where":"'melee' in item.tags || 'thrown' in item.tags"},"fields":{"damageBonus":"prior.damageBonus + 2","shockBonus":"prior.shockBonus + 2"}},{"id":"weapon-mods.unarmed-combatant-2","type":"template","appliesTo":{"type":"weapon","where":"'unarmed' in item.tags"},"fields":{"traumaDie":"1d8"}},{"id":"weapon-mods.unarmed-combatant","type":"template","appliesTo":{"type":"weapon","where":"'unarmed' in item.tags"},"fields":{"damage":"[1d6, 1d8, 1d10, 1d12, 1d12 + 1][max(0, skills.punch.base)]","shockDamage":"max(0, skills.punch.base)","shockAc":15,"traumaDie":"1d6","traumaRating":2}},{"id":"weapons.advanced-big-sword","type":"weapon","tags":["melee","two-handed"],"fields":{"cost":2500,"enc":2,"damage":"2d8","skill":"stab","attribute":"str","shockDamage":4,"shockAc":15,"traumaDie":"1d8","traumaRating":3}},{"id":"weapons.advanced-bow","type":"weapon","tags":["firearm","quick-reload","two-handed"],"fields":{"cost":500,"enc":2,"damage":"1d8","skill":"shoot","attribute":"dex","rangeNormal":30,"rangeLong":200,"magazine":1,"traumaDie":"1d8+1","traumaRating":3}},{"id":"weapons.advanced-club","type":"weapon","tags":["melee","nonlethal"],"fields":{"cost":500,"enc":1,"damage":"1d8","skill":"stab","attribute":"str","shockDamage":2,"shockAc":18,"traumaDie":"1d8","traumaRating":3}},{"id":"weapons.advanced-knife","type":"weapon","tags":["melee"],"fields":{"cost":200,"enc":1,"damage":"1d6","skill":"stab","attribute":"str-dex","rangeNormal":10,"rangeLong":20,"shockDamage":2,"shockAc":15,"traumaDie":"1d8","traumaRating":3}},{"id":"weapons.advanced-sword","type":"weapon","tags":["melee"],"fields":{"cost":1000,"enc":1,"damage":"1d10","skill":"stab","attribute":"str-dex","shockDamage":3,"shockAc":15,"traumaDie":"1d8","traumaRating":3}},{"id":"weapons.anti-materiel-rifle","type":"weapon","tags":["heavy","braced","anti-vehicle","restricted","two-handed"],"fields":{"cost":8000,"enc":3,"damage":"3d8","skill":"shoot","attribute":"dex","rangeNormal":1000,"rangeLong":2000,"magazine":5,"traumaDie":"1d12","traumaRating":3}},{"id":"weapons.automatic-rifle","type":"weapon","tags":["firearm","suppress","restricted","two-handed"],"fields":{"cost":10000,"enc":4,"damage":"2d8","skill":"shoot","attribute":"dex","rangeNormal":200,"rangeLong":400,"magazine":10,"traumaDie":"1d10","traumaRating":3}},{"id":"weapons.big-club","type":"weapon","tags":["melee","nonlethal","two-handed"],"fields":{"cost":100,"enc":2,"damage":"1d10","skill":"stab","attribute":"str","shockDamage":2,"shockAc":18,"traumaDie":"1d8","traumaRating":3}},{"id":"weapons.big-sword","type":"weapon","tags":["melee","two-handed"],"fields":{"cost":500,"enc":2,"damage":"2d6","skill":"stab","attribute":"str","shockDamage":2,"shockAc":15,"traumaDie":"1d8","traumaRating":3}},{"id":"weapons.club","type":"weapon","tags":["melee","nonlethal"],"fields":{"cost":0,"enc":1,"damage":"1d4","skill":"stab","attribute":"str","rangeNormal":10,"rangeLong":20,"shockDamage":1,"shockAc":18,"traumaDie":"1d6","traumaRating":2}},{"id":"weapons.combat-rifle","type":"weapon","tags":["firearm","burst","restricted","two-handed"],"fields":{"cost":2500,"enc":2,"damage":"1d12","skill":"shoot","attribute":"dex","rangeNormal":100,"rangeLong":300,"magazine":30,"traumaDie":"1d8","traumaRating":3}},{"id":"weapons.combat-shotgun","type":"weapon","tags":["firearm","burst","restricted","two-handed"],"fields":{"cost":3000,"enc":2,"damage":"3d4","skill":"shoot","attribute":"dex","rangeNormal":10,"rangeLong":30,"magazine":12,"traumaDie":"1d10","traumaRating":3}},{"id":"weapons.demo-charge","type":"weapon","tags":["heavy","anti-vehicle","restricted","trap"],"fields":{"cost":1000,"enc":1,"damage":"3d10","skill":"shoot","attribute":"none","rangeNormal":20,"rangeLong":20,"traumaDie":"1d10","traumaRating":3}},{"id":"weapons.drone-cannon","type":"weapon","tags":["heavy","vehicle-mounted","anti-vehicle","restricted"],"fields":{"cost":5000,"damage":"2d8","skill":"shoot","attribute":"dex","rangeNormal":200,"rangeLong":1000,"magazine":10,"traumaDie":"1d10","traumaRating":3}},{"id":"weapons.eye-flechette","type":"weapon","tags":["firearm","implant"],"fields":{"damage":"1d6","skill":"shoot","attribute":"dex","rangeNormal":10,"rangeLong":10,"magazine":1,"traumaDie":"1d8","traumaRating":2}},{"id":"weapons.flash-grenade","type":"weapon","tags":["grenade","thrown","special"],"fields":{"cost":50,"enc":1,"damage":"0","skill":"shoot","attribute":"dex","rangeNormal":10,"rangeLong":30}},{"id":"weapons.frag-grenade","type":"weapon","tags":["grenade","thrown","restricted"],"fields":{"cost":100,"enc":1,"damage":"2d6","skill":"shoot","attribute":"dex","rangeNormal":10,"rangeLong":30,"traumaDie":"1d8","traumaRating":2}},{"id":"weapons.gas-grenade","type":"weapon","tags":["grenade","thrown","nonlethal"],"fields":{"cost":50,"enc":1,"damage":"1d10","skill":"shoot","attribute":"dex","rangeNormal":10,"rangeLong":30}},{"id":"weapons.grenade-launcher","type":"weapon","tags":["heavy","launcher","restricted"],"fields":{"cost":3000,"enc":1,"damage":"0","skill":"shoot","attribute":"dex","rangeNormal":150,"rangeLong":350,"magazine":3}},{"id":"weapons.headshot-pod","type":"weapon","tags":["heavy","vehicle-mounted","anti-vehicle","restricted"],"fields":{"cost":20000,"damage":"4d6","skill":"shoot","attribute":"dex","rangeNormal":1000,"rangeLong":2000,"magazine":1,"traumaDie":"1d20","traumaRating":4}},{"id":"weapons.heavy-machine-gun","type":"weapon","tags":["heavy","braced","suppress","anti-vehicle","restricted","two-handed"],"fields":{"cost":10000,"enc":3,"damage":"3d6","skill":"shoot","attribute":"dex","rangeNormal":500,"rangeLong":2000,"magazine":10,"traumaDie":"1d12","traumaRating":3}},{"id":"weapons.heavy-pistol","type":"weapon","tags":["firearm"],"fields":{"cost":200,"enc":1,"damage":"1d8","skill":"shoot","attribute":"dex","rangeNormal":10,"rangeLong":100,"magazine":8,"traumaDie":"1d6","traumaRating":3}},{"id":"weapons.knife","type":"weapon","tags":["melee"],"fields":{"cost":20,"enc":1,"damage":"1d4","skill":"stab","attribute":"str-dex","rangeNormal":10,"rangeLong":20,"shockDamage":1,"shockAc":15,"traumaDie":"1d6","traumaRating":3}},{"id":"weapons.land-mine-anti-personnel","type":"weapon","tags":["heavy","restricted","trap"],"fields":{"cost":150,"enc":1,"damage":"1d8","skill":"shoot","attribute":"none","traumaDie":"1d10","traumaRating":3}},{"id":"weapons.land-mine-anti-vehicle","type":"weapon","tags":["heavy","anti-vehicle","restricted","trap"],"fields":{"cost":1000,"enc":2,"damage":"3d8","skill":"shoot","attribute":"none","traumaDie":"1d20","traumaRating":3}},{"id":"weapons.light-pistol","type":"weapon","tags":["firearm"],"fields":{"cost":200,"enc":1,"damage":"1d6","skill":"shoot","attribute":"dex","rangeNormal":10,"rangeLong":80,"magazine":15,"traumaDie":"1d8","traumaRating":2}},{"id":"weapons.main-tank-gun","type":"weapon","tags":["heavy","vehicle-mounted","anti-vehicle","restricted"],"fields":{"cost":100000,"damage":"4d12","skill":"shoot","attribute":"dex","rangeNormal":1000,"rangeLong":3000,"magazine":1,"traumaDie":"1d20","traumaRating":4}},{"id":"weapons.mortar","type":"weapon","tags":["heavy","restricted","indirect"],"fields":{"cost":5000,"enc":3,"damage":"3d6","skill":"shoot","attribute":"wis","rangeNormal":1000,"rangeLong":2000,"magazine":1,"traumaDie":"1d12","traumaRating":3}},{"id":"weapons.mounted-autogun","type":"weapon","tags":["heavy","vehicle-mounted","suppress","anti-vehicle","restricted"],"fields":{"cost":15000,"damage":"3d8","skill":"shoot","attribute":"dex","rangeNormal":500,"rangeLong":2000,"magazine":10,"traumaDie":"1d12","traumaRating":2}},{"id":"weapons.rifle","type":"weapon","tags":["firearm","two-handed"],"fields":{"cost":1000,"enc":2,"damage":"1d10+2","skill":"shoot","attribute":"dex","rangeNormal":200,"rangeLong":400,"magazine":6,"traumaDie":"1d8","traumaRating":3}},{"id":"weapons.rocket-launcher","type":"weapon","tags":["heavy","anti-vehicle","restricted","two-handed"],"fields":{"cost":5000,"enc":2,"damage":"3d10","skill":"shoot","attribute":"dex","rangeNormal":2000,"rangeLong":4000,"traumaDie":"1d10","traumaRating":3}},{"id":"weapons.semi-auto-shotgun","type":"weapon","tags":["firearm","two-handed"],"fields":{"cost":1000,"enc":2,"damage":"3d4","skill":"shoot","attribute":"dex","rangeNormal":10,"rangeLong":30,"magazine":6,"traumaDie":"1d10","traumaRating":3}},{"id":"weapons.shotgun","type":"weapon","tags":["firearm","two-handed"],"fields":{"cost":200,"enc":2,"damage":"3d4","skill":"shoot","attribute":"dex","rangeNormal":10,"rangeLong":30,"magazine":2,"traumaDie":"1d10","traumaRating":3}},{"id":"weapons.shrieker-gun","type":"weapon","tags":["heavy","vehicle-mounted","suppress","nonlethal","restricted"],"fields":{"cost":10000,"damage":"2d6","skill":"shoot","attribute":"none","rangeNormal":100,"rangeLong":400}},{"id":"weapons.smoke-grenade","type":"weapon","tags":["grenade","thrown","special"],"fields":{"cost":25,"enc":1,"damage":"0","skill":"shoot","attribute":"dex","rangeNormal":10,"rangeLong":30}},{"id":"weapons.sniper-rifle","type":"weapon","tags":["firearm","quick-reload","braced","two-handed"],"fields":{"cost":3000,"enc":2,"damage":"2d8","skill":"shoot","attribute":"dex","rangeNormal":1000,"rangeLong":2000,"magazine":1,"traumaDie":"1d10","traumaRating":4}},{"id":"weapons.spear","type":"weapon","tags":["melee"],"fields":{"cost":50,"enc":1,"damage":"1d6","skill":"stab","attribute":"str-dex","rangeNormal":10,"rangeLong":20,"shockDamage":2,"shockAc":13,"traumaDie":"1d8","traumaRating":3}},{"id":"weapons.submachine-gun","type":"weapon","tags":["firearm","burst","restricted"],"fields":{"cost":2000,"enc":1,"damage":"1d8","skill":"shoot","attribute":"dex","rangeNormal":30,"rangeLong":100,"magazine":20,"traumaDie":"1d6","traumaRating":2}},{"id":"weapons.sword","type":"weapon","tags":["melee"],"fields":{"cost":200,"enc":1,"damage":"1d8","skill":"stab","attribute":"str-dex","shockDamage":2,"shockAc":13,"traumaDie":"1d8","traumaRating":2}},{"id":"weapons.taser-pistol","type":"weapon","tags":["firearm","nonlethal"],"fields":{"cost":500,"enc":1,"damage":"1d8","skill":"shoot","attribute":"dex","rangeNormal":10,"rangeLong":15,"magazine":2}},{"id":"weapons.unarmed","type":"weapon","tags":["standard","unarmed","melee","nonlethal"],"fields":{"damage":"1d2","skill":"punch","attribute":"str-dex","traumaDie":"1d6","traumaRating":1}}],"upgrades":[],"formulas":{"0":{"text":"0","tree":{"type":"int","value":0}},"1":{"text":"1","tree":{"type":"int","value":1}},"2":{"text":"2","tree":{"type":"int","value":2}},"3":{"text":"3","tree":{"type":"int","value":3}},"6":{"text":"6","tree":{"type":"int","value":6}},"10":{"text":"10","tree":{"type":"int","value":10}},"99":{"text":"99","tree":{"type":"int","value":99}},"!('administer' in ['cast', 'summon']) || campaign.magic || skills.administer.base >= 0":{"text":"!('administer' in ['cast', 'summon']) || campaign.magic || skills.administer.base >= 0","tree":{"type":"binary","op":"||","left":{"type":"binary","op":"||","left":{"type":"unary","op":"!","operand":{"type":"binary","op":"in","left":{"type":"string","value":"administer"},"right":{"type":"list","items":[{"type":"string","value":"cast"},{"type":"string","value":"summon"}]}}},"right":{"type":"name","path":["campaign","magic"]}},"right":{"type":"binary","op":">=","left":{"type":"name","path":["skills","administer","base"]},"right":{"type":"int","value":0}}}},"!('cast' in ['cast', 'summon']) || campaign.magic || skills.cast.base >= 0":{"text":"!('cast' in ['cast', 'summon']) || campaign.magic || skills.cast.base >= 0","tree":{"type":"binary","op":"||","left":{"type":"binary","op":"||","left":{"type":"unary","op":"!","operand":{"type":"binary","op":"in","left":{"type":"string","value":"cast"},"right":{"type":"list","items":[{"type":"string","value":"cast"},{"type":"string","value":"summon"}]}}},"right":{"type":"name","path":["campaign","magic"]}},"right":{"type":"binary","op":">=","left":{"type":"name","path":["skills","cast","base"]},"right":{"type":"int","value":0}}}},"!('connect' in ['cast', 'summon']) || campaign.magic || skills.connect.base >= 0":{"text":"!('connect' in ['cast', 'summon']) || campaign.magic || skills.connect.base >= 0","tree":{"type":"binary","op":"||","left":{"type":"binary","op":"||","left":{"type":"unary","op":"!","operand":{"type":"binary","op":"in","left":{"type":"string","value":"connect"},"right":{"type":"list","items":[{"type":"string","value":"cast"},{"type":"string","value":"summon"}]}}},"right":{"type":"name","path":["campaign","magic"]}},"right":{"type":"binary","op":">=","left":{"type":"name","path":["skills","connect","base"]},"right":{"type":"int","value":0}}}},"!('drive' in ['cast', 'summon']) || campaign.magic || skills.drive.base >= 0":{"text":"!('drive' in ['cast', 'summon']) || campaign.magic || skills.drive.base >= 0","tree":{"type":"binary","op":"||","left":{"type":"binary","op":"||","left":{"type":"unary","op":"!","operand":{"type":"binary","op":"in","left":{"type":"string","value":"drive"},"right":{"type":"list","items":[{"type":"string","value":"cast"},{"type":"string","value":"summon"}]}}},"right":{"type":"name","path":["campaign","magic"]}},"right":{"type":"binary","op":">=","left":{"type":"name","path":["skills","drive","base"]},"right":{"type":"int","value":0}}}},"!('exert' in ['cast', 'summon']) || campaign.magic || skills.exert.base >= 0":{"text":"!('exert' in ['cast', 'summon']) || campaign.magic || skills.exert.base >= 0","tree":{"type":"binary","op":"||","left":{"type":"binary","op":"||","left":{"type":"unary","op":"!","operand":{"type":"binary","op":"in","left":{"type":"string","value":"exert"},"right":{"type":"list","items":[{"type":"string","value":"cast"},{"type":"string","value":"summon"}]}}},"right":{"type":"name","path":["campaign","magic"]}},"right":{"type":"binary","op":">=","left":{"type":"name","path":["skills","exert","base"]},"right":{"type":"int","value":0}}}},"!('fix' in ['cast', 'summon']) || campaign.magic || skills.fix.base >= 0":{"text":"!('fix' in ['cast', 'summon']) || campaign.magic || skills.fix.base >= 0","tree":{"type":"binary","op":"||","left":{"type":"binary","op":"||","left":{"type":"unary","op":"!","operand":{"type":"binary","op":"in","left":{"type":"string","value":"fix"},"right":{"type":"list","items":[{"type":"string","value":"cast"},{"type":"string","value":"summon"}]}}},"right":{"type":"name","path":["campaign","magic"]}},"right":{"type":"binary","op":">=","left":{"type":"name","path":["skills","fix","base"]},"right":{"type":"int","value":0}}}},"!('heal' in ['cast', 'summon']) || campaign.magic || skills.heal.base >= 0":{"text":"!('heal' in ['cast', 'summon']) || campaign.magic || skills.heal.base >= 0","tree":{"type":"binary","op":"||","left":{"type":"binary","op":"||","left":{"type":"unary","op":"!","operand":{"type":"binary","op":"in","left":{"type":"string","value":"heal"},"right":{"type":"list","items":[{"type":"string","value":"cast"},{"type":"string","value":"summon"}]}}},"right":{"type":"name","path":["campaign","magic"]}},"right":{"type":"binary","op":">=","left":{"type":"name","path":["skills","heal","base"]},"right":{"type":"int","value":0}}}},"!('know' in ['cast', 'summon']) || campaign.magic || skills.know.base >= 0":{"text":"!('know' in ['cast', 'summon']) || campaign.magic || skills.know.base >= 0","tree":{"type":"binary","op":"||","left":{"type":"binary","op":"||","left":{"type":"unary","op":"!","operand":{"type":"binary","op":"in","left":{"type":"string","value":"know"},"right":{"type":"list","items":[{"type":"string","value":"cast"},{"type":"string","value":"summon"}]}}},"right":{"type":"name","path":["campaign","magic"]}},"right":{"type":"binary","op":">=","left":{"type":"name","path":["skills","know","base"]},"right":{"type":"int","value":0}}}},"!('lead' in ['cast', 'summon']) || campaign.magic || skills.lead.base >= 0":{"text":"!('lead' in ['cast', 'summon']) || campaign.magic || skills.lead.base >= 0","tree":{"type":"binary","op":"||","left":{"type":"binary","op":"||","left":{"type":"unary","op":"!","operand":{"type":"binary","op":"in","left":{"type":"string","value":"lead"},"right":{"type":"list","items":[{"type":"string","value":"cast"},{"type":"string","value":"summon"}]}}},"right":{"type":"name","path":["campaign","magic"]}},"right":{"type":"binary","op":">=","left":{"type":"name","path":["skills","lead","base"]},"right":{"type":"int","value":0}}}},"!('notice' in ['cast', 'summon']) || campaign.magic || skills.notice.base >= 0":{"text":"!('notice' in ['cast', 'summon']) || campaign.magic || skills.notice.base >= 0","tree":{"type":"binary","op":"||","left":{"type":"binary","op":"||","left":{"type":"unary","op":"!","operand":{"type":"binary","op":"in","left":{"type":"string","value":"notice"},"right":{"type":"list","items":[{"type":"string","value":"cast"},{"type":"string","value":"summon"}]}}},"right":{"type":"name","path":["campaign","magic"]}},"right":{"type":"binary","op":">=","left":{"type":"name","path":["skills","notice","base"]},"right":{"type":"int","value":0}}}},"!('perform' in ['cast', 'summon']) || campaign.magic || skills.perform.base >= 0":{"text":"!('perform' in ['cast', 'summon']) || campaign.magic || skills.perform.base >= 0","tree":{"type":"binary","op":"||","left":{"type":"binary","op":"||","left":{"type":"unary","op":"!","operand":{"type":"binary","op":"in","left":{"type":"string","value":"perform"},"right":{"type":"list","items":[{"type":"string","value":"cast"},{"type":"string","value":"summon"}]}}},"right":{"type":"name","path":["campaign","magic"]}},"right":{"type":"binary","op":">=","left":{"type":"name","path":["skills","perform","base"]},"right":{"type":"int","value":0}}}},"!('program' in ['cast', 'summon']) || campaign.magic || skills.program.base >= 0":{"text":"!('program' in ['cast', 'summon']) || campaign.magic || skills.program.base >= 0","tree":{"type":"binary","op":"||","left":{"type":"binary","op":"||","left":{"type":"unary","op":"!","operand":{"type":"binary","op":"in","left":{"type":"string","value":"program"},"right":{"type":"list","items":[{"type":"string","value":"cast"},{"type":"string","value":"summon"}]}}},"right":{"type":"name","path":["campaign","magic"]}},"right":{"type":"binary","op":">=","left":{"type":"name","path":["skills","program","base"]},"right":{"type":"int","value":0}}}},"!('punch' in ['cast', 'summon']) || campaign.magic || skills.punch.base >= 0":{"text":"!('punch' in ['cast', 'summon']) || campaign.magic || skills.punch.base >= 0","tree":{"type":"binary","op":"||","left":{"type":"binary","op":"||","left":{"type":"unary","op":"!","operand":{"type":"binary","op":"in","left":{"type":"string","value":"punch"},"right":{"type":"list","items":[{"type":"string","value":"cast"},{"type":"string","value":"summon"}]}}},"right":{"type":"name","path":["campaign","magic"]}},"right":{"type":"binary","op":">=","left":{"type":"name","path":["skills","punch","base"]},"right":{"type":"int","value":0}}}},"!('repeatable' in item.tags)":{"text":"!('repeatable' in item.tags)","tree":{"type":"unary","op":"!","operand":{"type":"binary","op":"in","left":{"type":"string","value":"repeatable"},"right":{"type":"name","path":["item","tags"]}}}},"!('shoot' in ['cast', 'summon']) || campaign.magic || skills.shoot.base >= 0":{"text":"!('shoot' in ['cast', 'summon']) || campaign.magic || skills.shoot.base >= 0","tree":{"type":"binary","op":"||","left":{"type":"binary","op":"||","left":{"type":"unary","op":"!","operand":{"type":"binary","op":"in","left":{"type":"string","value":"shoot"},"right":{"type":"list","items":[{"type":"string","value":"cast"},{"type":"string","value":"summon"}]}}},"right":{"type":"name","path":["campaign","magic"]}},"right":{"type":"binary","op":">=","left":{"type":"name","path":["skills","shoot","base"]},"right":{"type":"int","value":0}}}},"!('sneak' in ['cast', 'summon']) || campaign.magic || skills.sneak.base >= 0":{"text":"!('sneak' in ['cast', 'summon']) || campaign.magic || skills.sneak.base >= 0","tree":{"type":"binary","op":"||","left":{"type":"binary","op":"||","left":{"type":"unary","op":"!","operand":{"type":"binary","op":"in","left":{"type":"string","value":"sneak"},"right":{"type":"list","items":[{"type":"string","value":"cast"},{"type":"string","value":"summon"}]}}},"right":{"type":"name","path":["campaign","magic"]}},"right":{"type":"binary","op":">=","left":{"type":"name","path":["skills","sneak","base"]},"right":{"type":"int","value":0}}}},"!('stab' in ['cast', 'summon']) || campaign.magic || skills.stab.base >= 0":{"text":"!('stab' in ['cast', 'summon']) || campaign.magic || skills.stab.base >= 0","tree":{"type":"binary","op":"||","left":{"type":"binary","op":"||","left":{"type":"unary","op":"!","operand":{"type":"binary","op":"in","left":{"type":"string","value":"stab"},"right":{"type":"list","items":[{"type":"string","value":"cast"},{"type":"string","value":"summon"}]}}},"right":{"type":"name","path":["campaign","magic"]}},"right":{"type":"binary","op":">=","left":{"type":"name","path":["skills","stab","base"]},"right":{"type":"int","value":0}}}},"!('summon' in ['cast', 'summon']) || campaign.magic || skills.summon.base >= 0":{"text":"!('summon' in ['cast', 'summon']) || campaign.magic || skills.summon.base >= 0","tree":{"type":"binary","op":"||","left":{"type":"binary","op":"||","left":{"type":"unary","op":"!","operand":{"type":"binary","op":"in","left":{"type":"string","value":"summon"},"right":{"type":"list","items":[{"type":"string","value":"cast"},{"type":"string","value":"summon"}]}}},"right":{"type":"name","path":["campaign","magic"]}},"right":{"type":"binary","op":">=","left":{"type":"name","path":["skills","summon","base"]},"right":{"type":"int","value":0}}}},"!('survive' in ['cast', 'summon']) || campaign.magic || skills.survive.base >= 0":{"text":"!('survive' in ['cast', 'summon']) || campaign.magic || skills.survive.base >= 0","tree":{"type":"binary","op":"||","left":{"type":"binary","op":"||","left":{"type":"unary","op":"!","operand":{"type":"binary","op":"in","left":{"type":"string","value":"survive"},"right":{"type":"list","items":[{"type":"string","value":"cast"},{"type":"string","value":"summon"}]}}},"right":{"type":"name","path":["campaign","magic"]}},"right":{"type":"binary","op":">=","left":{"type":"name","path":["skills","survive","base"]},"right":{"type":"int","value":0}}}},"!('talk' in ['cast', 'summon']) || campaign.magic || skills.talk.base >= 0":{"text":"!('talk' in ['cast', 'summon']) || campaign.magic || skills.talk.base >= 0","tree":{"type":"binary","op":"||","left":{"type":"binary","op":"||","left":{"type":"unary","op":"!","operand":{"type":"binary","op":"in","left":{"type":"string","value":"talk"},"right":{"type":"list","items":[{"type":"string","value":"cast"},{"type":"string","value":"summon"}]}}},"right":{"type":"name","path":["campaign","magic"]}},"right":{"type":"binary","op":">=","left":{"type":"name","path":["skills","talk","base"]},"right":{"type":"int","value":0}}}},"!('trade' in ['cast', 'summon']) || campaign.magic || skills.trade.base >= 0":{"text":"!('trade' in ['cast', 'summon']) || campaign.magic || skills.trade.base >= 0","tree":{"type":"binary","op":"||","left":{"type":"binary","op":"||","left":{"type":"unary","op":"!","operand":{"type":"binary","op":"in","left":{"type":"string","value":"trade"},"right":{"type":"list","items":[{"type":"string","value":"cast"},{"type":"string","value":"summon"}]}}},"right":{"type":"name","path":["campaign","magic"]}},"right":{"type":"binary","op":">=","left":{"type":"name","path":["skills","trade","base"]},"right":{"type":"int","value":0}}}},"!('unarmed' in item.tags) && (!flags.ranged || flags.thrown)\n ? combat.meleeHitBonus : 0":{"text":"!('unarmed' in item.tags) && (!flags.ranged || flags.thrown) ? combat.meleeHitBonus : 0","tree":{"type":"conditional","test":{"type":"binary","op":"&&","left":{"type":"unary","op":"!","operand":{"type":"binary","op":"in","left":{"type":"string","value":"unarmed"},"right":{"type":"name","path":["item","tags"]}}},"right":{"type":"binary","op":"||","left":{"type":"unary","op":"!","operand":{"type":"name","path":["flags","ranged"]}},"right":{"type":"name","path":["flags","thrown"]}}},"then":{"type":"name","path":["combat","meleeHitBonus"]},"else":{"type":"int","value":0}}},"!('work' in ['cast', 'summon']) || campaign.magic || skills.work.base >= 0":{"text":"!('work' in ['cast', 'summon']) || campaign.magic || skills.work.base >= 0","tree":{"type":"binary","op":"||","left":{"type":"binary","op":"||","left":{"type":"unary","op":"!","operand":{"type":"binary","op":"in","left":{"type":"string","value":"work"},"right":{"type":"list","items":[{"type":"string","value":"cast"},{"type":"string","value":"summon"}]}}},"right":{"type":"name","path":["campaign","magic"]}},"right":{"type":"binary","op":">=","left":{"type":"name","path":["skills","work","base"]},"right":{"type":"int","value":0}}}},"!(steps.overcasting.band in ['death', 'mortal'])":{"text":"!(steps.overcasting.band in ['death', 'mortal'])","tree":{"type":"unary","op":"!","operand":{"type":"binary","op":"in","left":{"type":"name","path":["steps","overcasting","band"]},"right":{"type":"list","items":[{"type":"string","value":"death"},{"type":"string","value":"mortal"}]}}}},"!character.creating":{"text":"!character.creating","tree":{"type":"unary","op":"!","operand":{"type":"name","path":["character","creating"]}}},"!character.creating && !underdog && advancement.attributeBoosts < 5\n && skillPoints.unspent > advancement.attributeBoosts\n && level >= [1, 1, 3, 6, 9][advancement.attributeBoosts]":{"text":"!character.creating && !underdog && advancement.attributeBoosts < 5 && skillPoints.unspent > advancement.attributeBoosts && level >= [1, 1, 3, 6, 9][advancement.attributeBoosts]","tree":{"type":"binary","op":"&&","left":{"type":"binary","op":"&&","left":{"type":"binary","op":"&&","left":{"type":"binary","op":"&&","left":{"type":"unary","op":"!","operand":{"type":"name","path":["character","creating"]}},"right":{"type":"unary","op":"!","operand":{"type":"name","path":["underdog"]}}},"right":{"type":"binary","op":"<","left":{"type":"name","path":["advancement","attributeBoosts"]},"right":{"type":"int","value":5}}},"right":{"type":"binary","op":">","left":{"type":"name","path":["skillPoints","unspent"]},"right":{"type":"name","path":["advancement","attributeBoosts"]}}},"right":{"type":"binary","op":">=","left":{"type":"name","path":["level"]},"right":{"type":"index","object":{"type":"list","items":[{"type":"int","value":1},{"type":"int","value":1},{"type":"int","value":3},{"type":"int","value":6},{"type":"int","value":9}]},"index":{"type":"name","path":["advancement","attributeBoosts"]}}}}},"!character.creating && 'retroactive-points' in steps.edge.item.tags":{"text":"!character.creating && 'retroactive-points' in steps.edge.item.tags","tree":{"type":"binary","op":"&&","left":{"type":"unary","op":"!","operand":{"type":"name","path":["character","creating"]}},"right":{"type":"binary","op":"in","left":{"type":"string","value":"retroactive-points"},"right":{"type":"name","path":["steps","edge","item","tags"]}}}},"!character.creating && (skillPoints.unspent > 0 || maxList(keysOf('skill'), fieldOf('skills.{skill}.credit', x)) > 0)":{"text":"!character.creating && (skillPoints.unspent > 0 || maxList(keysOf('skill'), fieldOf('skills.{skill}.credit', x)) > 0)","tree":{"type":"binary","op":"&&","left":{"type":"unary","op":"!","operand":{"type":"name","path":["character","creating"]}},"right":{"type":"binary","op":"||","left":{"type":"binary","op":">","left":{"type":"name","path":["skillPoints","unspent"]},"right":{"type":"int","value":0}},"right":{"type":"binary","op":">","left":{"type":"call","fn":"maxList","args":[{"type":"call","fn":"keysOf","args":[{"type":"string","value":"skill"}]},{"type":"call","fn":"fieldOf","args":[{"type":"string","value":"skills.{skill}.credit"},{"type":"name","path":["x"]}]}]},"right":{"type":"int","value":0}}}}},"!character.creating && foci.taken < foci.allowed":{"text":"!character.creating && foci.taken < foci.allowed","tree":{"type":"binary","op":"&&","left":{"type":"unary","op":"!","operand":{"type":"name","path":["character","creating"]}},"right":{"type":"binary","op":"<","left":{"type":"name","path":["foci","taken"]},"right":{"type":"name","path":["foci","allowed"]}}}},"!character.creating && level < 10 && xp.current >= xp.next":{"text":"!character.creating && level < 10 && xp.current >= xp.next","tree":{"type":"binary","op":"&&","left":{"type":"binary","op":"&&","left":{"type":"unary","op":"!","operand":{"type":"name","path":["character","creating"]}},"right":{"type":"binary","op":"<","left":{"type":"name","path":["level"]},"right":{"type":"int","value":10}}},"right":{"type":"binary","op":">=","left":{"type":"name","path":["xp","current"]},"right":{"type":"name","path":["xp","next"]}}}},"!character.creating || !underdog || attributes.modTotal <= -1":{"text":"!character.creating || !underdog || attributes.modTotal <= -1","tree":{"type":"binary","op":"||","left":{"type":"binary","op":"||","left":{"type":"unary","op":"!","operand":{"type":"name","path":["character","creating"]}},"right":{"type":"unary","op":"!","operand":{"type":"name","path":["underdog"]}}},"right":{"type":"binary","op":"<=","left":{"type":"name","path":["attributes","modTotal"]},"right":{"type":"unary","op":"-","operand":{"type":"int","value":1}}}}},"!character.creating || maxList(keysOf('skill'), fieldOf('skills.{skill}.base', x)) <= 1":{"text":"!character.creating || maxList(keysOf('skill'), fieldOf('skills.{skill}.base', x)) <= 1","tree":{"type":"binary","op":"||","left":{"type":"unary","op":"!","operand":{"type":"name","path":["character","creating"]}},"right":{"type":"binary","op":"<=","left":{"type":"call","fn":"maxList","args":[{"type":"call","fn":"keysOf","args":[{"type":"string","value":"skill"}]},{"type":"call","fn":"fieldOf","args":[{"type":"string","value":"skills.{skill}.base"},{"type":"name","path":["x"]}]}]},"right":{"type":"int","value":1}}}},"!flags.points":{"text":"!flags.points","tree":{"type":"unary","op":"!","operand":{"type":"name","path":["flags","points"]}}},"!has(steps.specialty) && !has(steps.attribute)":{"text":"!has(steps.specialty) && !has(steps.attribute)","tree":{"type":"binary","op":"&&","left":{"type":"unary","op":"!","operand":{"type":"call","fn":"has","args":[{"type":"name","path":["steps","specialty"]}]}},"right":{"type":"unary","op":"!","operand":{"type":"call","fn":"has","args":[{"type":"name","path":["steps","attribute"]}]}}}},"!hp.frail":{"text":"!hp.frail","tree":{"type":"unary","op":"!","operand":{"type":"name","path":["hp","frail"]}}},"!item.magic":{"text":"!item.magic","tree":{"type":"unary","op":"!","operand":{"type":"name","path":["item","magic"]}}},"!magic.mage && !magic.summoner && !magic.graced":{"text":"!magic.mage && !magic.summoner && !magic.graced","tree":{"type":"binary","op":"&&","left":{"type":"binary","op":"&&","left":{"type":"unary","op":"!","operand":{"type":"name","path":["magic","mage"]}},"right":{"type":"unary","op":"!","operand":{"type":"name","path":["magic","summoner"]}}},"right":{"type":"unary","op":"!","operand":{"type":"name","path":["magic","graced"]}}}},"!params.overcast && flags.commit != 'none'":{"text":"!params.overcast && flags.commit != 'none'","tree":{"type":"binary","op":"&&","left":{"type":"unary","op":"!","operand":{"type":"name","path":["params","overcast"]}},"right":{"type":"binary","op":"!=","left":{"type":"name","path":["flags","commit"]},"right":{"type":"string","value":"none"}}}},"!self.damaged":{"text":"!self.damaged","tree":{"type":"unary","op":"!","operand":{"type":"name","path":["self","damaged"]}}},"!self.damaged && 3 * level > self.bufferUsed && incoming.amount < 0":{"text":"!self.damaged && 3 * level > self.bufferUsed && incoming.amount < 0","tree":{"type":"binary","op":"&&","left":{"type":"binary","op":"&&","left":{"type":"unary","op":"!","operand":{"type":"name","path":["self","damaged"]}},"right":{"type":"binary","op":">","left":{"type":"binary","op":"*","left":{"type":"int","value":3},"right":{"type":"name","path":["level"]}},"right":{"type":"name","path":["self","bufferUsed"]}}},"right":{"type":"binary","op":"<","left":{"type":"name","path":["incoming","amount"]},"right":{"type":"int","value":0}}}},"!underdog":{"text":"!underdog","tree":{"type":"unary","op":"!","operand":{"type":"name","path":["underdog"]}}},"!underdog || advancement.attributeBoosts == 0":{"text":"!underdog || advancement.attributeBoosts == 0","tree":{"type":"binary","op":"||","left":{"type":"unary","op":"!","operand":{"type":"name","path":["underdog"]}},"right":{"type":"binary","op":"==","left":{"type":"name","path":["advancement","attributeBoosts"]},"right":{"type":"int","value":0}}}},"'acquaintance'":{"text":"'acquaintance'","tree":{"type":"string","value":"acquaintance"}},"'acquaintances'":{"text":"'acquaintances'","tree":{"type":"string","value":"acquaintances"}},"'acquired'":{"text":"'acquired'","tree":{"type":"string","value":"acquired"}},"'advancement' in item.tags":{"text":"'advancement' in item.tags","tree":{"type":"binary","op":"in","left":{"type":"string","value":"advancement"},"right":{"type":"name","path":["item","tags"]}}},"'any'":{"text":"'any'","tree":{"type":"string","value":"any"}},"'applied'":{"text":"'applied'","tree":{"type":"string","value":"applied"}},"'attack' in item.tags || 'reload' in item.tags":{"text":"'attack' in item.tags || 'reload' in item.tags","tree":{"type":"binary","op":"||","left":{"type":"binary","op":"in","left":{"type":"string","value":"attack"},"right":{"type":"name","path":["item","tags"]}},"right":{"type":"binary","op":"in","left":{"type":"string","value":"reload"},"right":{"type":"name","path":["item","tags"]}}}},"'attr.' + params.attribute":{"text":"'attr.' + params.attribute","tree":{"type":"binary","op":"+","left":{"type":"string","value":"attr."},"right":{"type":"name","path":["params","attribute"]}}},"'attr.wis' in roll.tags && attributes.wis.mod < 2":{"text":"'attr.wis' in roll.tags && attributes.wis.mod < 2","tree":{"type":"binary","op":"&&","left":{"type":"binary","op":"in","left":{"type":"string","value":"attr.wis"},"right":{"type":"name","path":["roll","tags"]}},"right":{"type":"binary","op":"<","left":{"type":"name","path":["attributes","wis","mod"]},"right":{"type":"int","value":2}}}},"'attribute' in item.tags":{"text":"'attribute' in item.tags","tree":{"type":"binary","op":"in","left":{"type":"string","value":"attribute"},"right":{"type":"name","path":["item","tags"]}}},"'attribute' in item.tags && ('attr.' + pick.value) in item.tags":{"text":"'attribute' in item.tags && 'attr.' + pick.value in item.tags","tree":{"type":"binary","op":"&&","left":{"type":"binary","op":"in","left":{"type":"string","value":"attribute"},"right":{"type":"name","path":["item","tags"]}},"right":{"type":"binary","op":"in","left":{"type":"binary","op":"+","left":{"type":"string","value":"attr."},"right":{"type":"name","path":["pick","value"]}},"right":{"type":"name","path":["item","tags"]}}}},"'attribute-base' in item.tags":{"text":"'attribute-base' in item.tags","tree":{"type":"binary","op":"in","left":{"type":"string","value":"attribute-base"},"right":{"type":"name","path":["item","tags"]}}},"'attribute-base' in item.tags\n && countList(flags.group, ('attr.' + x) in item.tags) > 0":{"text":"'attribute-base' in item.tags && countList(flags.group, 'attr.' + x in item.tags) > 0","tree":{"type":"binary","op":"&&","left":{"type":"binary","op":"in","left":{"type":"string","value":"attribute-base"},"right":{"type":"name","path":["item","tags"]}},"right":{"type":"binary","op":">","left":{"type":"call","fn":"countList","args":[{"type":"name","path":["flags","group"]},{"type":"binary","op":"in","left":{"type":"binary","op":"+","left":{"type":"string","value":"attr."},"right":{"type":"name","path":["x"]}},"right":{"type":"name","path":["item","tags"]}}]},"right":{"type":"int","value":0}}}},"'attribute-mod-bonus' in item.tags && ('attr.' + pick.value) in item.tags":{"text":"'attribute-mod-bonus' in item.tags && 'attr.' + pick.value in item.tags","tree":{"type":"binary","op":"&&","left":{"type":"binary","op":"in","left":{"type":"string","value":"attribute-mod-bonus"},"right":{"type":"name","path":["item","tags"]}},"right":{"type":"binary","op":"in","left":{"type":"binary","op":"+","left":{"type":"string","value":"attr."},"right":{"type":"name","path":["pick","value"]}},"right":{"type":"name","path":["item","tags"]}}}},"'attribute-mod-cap' in item.tags && ('attr.' + pick.value) in item.tags":{"text":"'attribute-mod-cap' in item.tags && 'attr.' + pick.value in item.tags","tree":{"type":"binary","op":"&&","left":{"type":"binary","op":"in","left":{"type":"string","value":"attribute-mod-cap"},"right":{"type":"name","path":["item","tags"]}},"right":{"type":"binary","op":"in","left":{"type":"binary","op":"+","left":{"type":"string","value":"attr."},"right":{"type":"name","path":["pick","value"]}},"right":{"type":"name","path":["item","tags"]}}}},"'attribute-score-mod' in item.tags && ('attr.' + pick.value) in item.tags":{"text":"'attribute-score-mod' in item.tags && 'attr.' + pick.value in item.tags","tree":{"type":"binary","op":"&&","left":{"type":"binary","op":"in","left":{"type":"string","value":"attribute-score-mod"},"right":{"type":"name","path":["item","tags"]}},"right":{"type":"binary","op":"in","left":{"type":"binary","op":"+","left":{"type":"string","value":"attr."},"right":{"type":"name","path":["pick","value"]}},"right":{"type":"name","path":["item","tags"]}}}},"'attributes.' + params.attribute + '.base'":{"text":"'attributes.' + params.attribute + '.base'","tree":{"type":"binary","op":"+","left":{"type":"binary","op":"+","left":{"type":"string","value":"attributes."},"right":{"type":"name","path":["params","attribute"]}},"right":{"type":"string","value":".base"}}},"'attributes.' + params.attribute + '.mod'":{"text":"'attributes.' + params.attribute + '.mod'","tree":{"type":"binary","op":"+","left":{"type":"binary","op":"+","left":{"type":"string","value":"attributes."},"right":{"type":"name","path":["params","attribute"]}},"right":{"type":"string","value":".mod"}}},"'attributes.con.mod'":{"text":"'attributes.con.mod'","tree":{"type":"string","value":"attributes.con.mod"}},"'attributes.int.mod'":{"text":"'attributes.int.mod'","tree":{"type":"string","value":"attributes.int.mod"}},"'blade' in item.tags":{"text":"'blade' in item.tags","tree":{"type":"binary","op":"in","left":{"type":"string","value":"blade"},"right":{"type":"name","path":["item","tags"]}}},"'check' in item.tags || 'save' in item.tags":{"text":"'check' in item.tags || 'save' in item.tags","tree":{"type":"binary","op":"||","left":{"type":"binary","op":"in","left":{"type":"string","value":"check"},"right":{"type":"name","path":["item","tags"]}},"right":{"type":"binary","op":"in","left":{"type":"string","value":"save"},"right":{"type":"name","path":["item","tags"]}}}},"'closed'":{"text":"'closed'","tree":{"type":"string","value":"closed"}},"'combat.attackBonus'":{"text":"'combat.attackBonus'","tree":{"type":"string","value":"combat.attackBonus"}},"'combat.damageBonus'":{"text":"'combat.damageBonus'","tree":{"type":"string","value":"combat.damageBonus"}},"'combat.initiative'":{"text":"'combat.initiative'","tree":{"type":"string","value":"combat.initiative"}},"'combat.traumaBonus'":{"text":"'combat.traumaBonus'","tree":{"type":"string","value":"combat.traumaBonus"}},"'contacts.contact'":{"text":"'contacts.contact'","tree":{"type":"string","value":"contacts.contact"}},"'created'":{"text":"'created'","tree":{"type":"string","value":"created"}},"'creation' in item.tags || 'building' in item.tags":{"text":"'creation' in item.tags || 'building' in item.tags","tree":{"type":"binary","op":"||","left":{"type":"binary","op":"in","left":{"type":"string","value":"creation"},"right":{"type":"name","path":["item","tags"]}},"right":{"type":"binary","op":"in","left":{"type":"string","value":"building"},"right":{"type":"name","path":["item","tags"]}}}},"'edge'":{"text":"'edge'","tree":{"type":"string","value":"edge"}},"'edge-1'":{"text":"'edge-1'","tree":{"type":"string","value":"edge-1"}},"'edge-2'":{"text":"'edge-2'","tree":{"type":"string","value":"edge-2"}},"'edge-5'":{"text":"'edge-5'","tree":{"type":"string","value":"edge-5"}},"'ended'":{"text":"'ended'","tree":{"type":"string","value":"ended"}},"'firearm' in item.tags":{"text":"'firearm' in item.tags","tree":{"type":"binary","op":"in","left":{"type":"string","value":"firearm"},"right":{"type":"name","path":["item","tags"]}}},"'friend'":{"text":"'friend'","tree":{"type":"string","value":"friend"}},"'gained'":{"text":"'gained'","tree":{"type":"string","value":"gained"}},"'grenade' in item.tags ? 10\n : size(participants.target) > 0\n ? (flags.ranged ? participants.target[0].ac.ranged\n : participants.target[0].ac.melee)\n : has(params.targetAc) ? params.targetAc : -1":{"text":"'grenade' in item.tags ? 10 : size(participants.target) > 0 ? (flags.ranged ? participants.target[0].ac.ranged : participants.target[0].ac.melee) : has(params.targetAc) ? params.targetAc : -1","tree":{"type":"conditional","test":{"type":"binary","op":"in","left":{"type":"string","value":"grenade"},"right":{"type":"name","path":["item","tags"]}},"then":{"type":"int","value":10},"else":{"type":"conditional","test":{"type":"binary","op":">","left":{"type":"call","fn":"size","args":[{"type":"name","path":["participants","target"]}]},"right":{"type":"int","value":0}},"then":{"type":"conditional","test":{"type":"name","path":["flags","ranged"]},"then":{"type":"member","object":{"type":"member","object":{"type":"index","object":{"type":"name","path":["participants","target"]},"index":{"type":"int","value":0}},"name":"ac"},"name":"ranged"},"else":{"type":"member","object":{"type":"member","object":{"type":"index","object":{"type":"name","path":["participants","target"]},"index":{"type":"int","value":0}},"name":"ac"},"name":"melee"}},"else":{"type":"conditional","test":{"type":"call","fn":"has","args":[{"type":"name","path":["params","targetAc"]}]},"then":{"type":"name","path":["params","targetAc"]},"else":{"type":"unary","op":"-","operand":{"type":"int","value":1}}}}}},"'hacking' in item.tags":{"text":"'hacking' in item.tags","tree":{"type":"binary","op":"in","left":{"type":"string","value":"hacking"},"right":{"type":"name","path":["item","tags"]}}},"'healed'":{"text":"'healed'","tree":{"type":"string","value":"healed"}},"'hp.dieBonus'":{"text":"'hp.dieBonus'","tree":{"type":"string","value":"hp.dieBonus"}},"'initiative' in item.tags || 'healing' in item.tags || 'injury' in item.tags\n || 'drug' in item.tags || 'cyber' in item.tags":{"text":"'initiative' in item.tags || 'healing' in item.tags || 'injury' in item.tags || 'drug' in item.tags || 'cyber' in item.tags","tree":{"type":"binary","op":"||","left":{"type":"binary","op":"||","left":{"type":"binary","op":"||","left":{"type":"binary","op":"||","left":{"type":"binary","op":"in","left":{"type":"string","value":"initiative"},"right":{"type":"name","path":["item","tags"]}},"right":{"type":"binary","op":"in","left":{"type":"string","value":"healing"},"right":{"type":"name","path":["item","tags"]}}},"right":{"type":"binary","op":"in","left":{"type":"string","value":"injury"},"right":{"type":"name","path":["item","tags"]}}},"right":{"type":"binary","op":"in","left":{"type":"string","value":"drug"},"right":{"type":"name","path":["item","tags"]}}},"right":{"type":"binary","op":"in","left":{"type":"string","value":"cyber"},"right":{"type":"name","path":["item","tags"]}}}},"'learning'":{"text":"'learning'","tree":{"type":"string","value":"learning"}},"'magic' in item.tags":{"text":"'magic' in item.tags","tree":{"type":"binary","op":"in","left":{"type":"string","value":"magic"},"right":{"type":"name","path":["item","tags"]}}},"'melee' in item.tags":{"text":"'melee' in item.tags","tree":{"type":"binary","op":"in","left":{"type":"string","value":"melee"},"right":{"type":"name","path":["item","tags"]}}},"'melee' in item.tags || 'thrown' in item.tags":{"text":"'melee' in item.tags || 'thrown' in item.tags","tree":{"type":"binary","op":"||","left":{"type":"binary","op":"in","left":{"type":"string","value":"melee"},"right":{"type":"name","path":["item","tags"]}},"right":{"type":"binary","op":"in","left":{"type":"string","value":"thrown"},"right":{"type":"name","path":["item","tags"]}}}},"'middle'":{"text":"'middle'","tree":{"type":"string","value":"middle"}},"'new'":{"text":"'new'","tree":{"type":"string","value":"new"}},"'portable' in item.tags":{"text":"'portable' in item.tags","tree":{"type":"binary","op":"in","left":{"type":"string","value":"portable"},"right":{"type":"name","path":["item","tags"]}}},"'raised'":{"text":"'raised'","tree":{"type":"string","value":"raised"}},"'reloaded'":{"text":"'reloaded'","tree":{"type":"string","value":"reloaded"}},"'rest' in item.tags":{"text":"'rest' in item.tags","tree":{"type":"binary","op":"in","left":{"type":"string","value":"rest"},"right":{"type":"name","path":["item","tags"]}}},"'rested'":{"text":"'rested'","tree":{"type":"string","value":"rested"}},"'roll'":{"text":"'roll'","tree":{"type":"string","value":"roll"}},"'rolled'":{"text":"'rolled'","tree":{"type":"string","value":"rolled"}},"'save' in item.tags":{"text":"'save' in item.tags","tree":{"type":"binary","op":"in","left":{"type":"string","value":"save"},"right":{"type":"name","path":["item","tags"]}}},"'save.' + params.save":{"text":"'save.' + params.save","tree":{"type":"binary","op":"+","left":{"type":"string","value":"save."},"right":{"type":"name","path":["params","save"]}}},"'skill' in item.tags":{"text":"'skill' in item.tags","tree":{"type":"binary","op":"in","left":{"type":"string","value":"skill"},"right":{"type":"name","path":["item","tags"]}}},"'skill' in item.tags && ('skill.' + pick.value) in item.tags":{"text":"'skill' in item.tags && 'skill.' + pick.value in item.tags","tree":{"type":"binary","op":"&&","left":{"type":"binary","op":"in","left":{"type":"string","value":"skill"},"right":{"type":"name","path":["item","tags"]}},"right":{"type":"binary","op":"in","left":{"type":"binary","op":"+","left":{"type":"string","value":"skill."},"right":{"type":"name","path":["pick","value"]}},"right":{"type":"name","path":["item","tags"]}}}},"'skill.' + item.skill":{"text":"'skill.' + item.skill","tree":{"type":"binary","op":"+","left":{"type":"string","value":"skill."},"right":{"type":"name","path":["item","skill"]}}},"'skills.cast.level'":{"text":"'skills.cast.level'","tree":{"type":"string","value":"skills.cast.level"}},"'skills.program.level'":{"text":"'skills.program.level'","tree":{"type":"string","value":"skills.program.level"}},"'standard' in item.tags":{"text":"'standard' in item.tags","tree":{"type":"binary","op":"in","left":{"type":"string","value":"standard"},"right":{"type":"name","path":["item","tags"]}}},"'summoned'":{"text":"'summoned'","tree":{"type":"string","value":"summoned"}},"'take'":{"text":"'take'","tree":{"type":"string","value":"take"}},"'thrown' in item.tags\n || (params.thrown && has(item.rangeNormal) && 'melee' in item.tags)":{"text":"'thrown' in item.tags || params.thrown && has(item.rangeNormal) && 'melee' in item.tags","tree":{"type":"binary","op":"||","left":{"type":"binary","op":"in","left":{"type":"string","value":"thrown"},"right":{"type":"name","path":["item","tags"]}},"right":{"type":"binary","op":"&&","left":{"type":"binary","op":"&&","left":{"type":"name","path":["params","thrown"]},"right":{"type":"call","fn":"has","args":[{"type":"name","path":["item","rangeNormal"]}]}},"right":{"type":"binary","op":"in","left":{"type":"string","value":"melee"},"right":{"type":"name","path":["item","tags"]}}}}},"'triggered'":{"text":"'triggered'","tree":{"type":"string","value":"triggered"}},"'unarmed' in item.tags":{"text":"'unarmed' in item.tags","tree":{"type":"binary","op":"in","left":{"type":"string","value":"unarmed"},"right":{"type":"name","path":["item","tags"]}}},"'unarmed' in item.tags && skills.punch.level > 0":{"text":"'unarmed' in item.tags && skills.punch.level > 0","tree":{"type":"binary","op":"&&","left":{"type":"binary","op":"in","left":{"type":"string","value":"unarmed"},"right":{"type":"name","path":["item","tags"]}},"right":{"type":"binary","op":">","left":{"type":"name","path":["skills","punch","level"]},"right":{"type":"int","value":0}}}},"'unarmed' in item.tags ? 0\n : flags.thrown ? max(combat.meleeSkillDamage, combat.rangedSkillDamage)\n : flags.ranged ? combat.rangedSkillDamage : combat.meleeSkillDamage":{"text":"'unarmed' in item.tags ? 0 : flags.thrown ? max(combat.meleeSkillDamage, combat.rangedSkillDamage) : flags.ranged ? combat.rangedSkillDamage : combat.meleeSkillDamage","tree":{"type":"conditional","test":{"type":"binary","op":"in","left":{"type":"string","value":"unarmed"},"right":{"type":"name","path":["item","tags"]}},"then":{"type":"int","value":0},"else":{"type":"conditional","test":{"type":"name","path":["flags","thrown"]},"then":{"type":"call","fn":"max","args":[{"type":"name","path":["combat","meleeSkillDamage"]},{"type":"name","path":["combat","rangedSkillDamage"]}]},"else":{"type":"conditional","test":{"type":"name","path":["flags","ranged"]},"then":{"type":"name","path":["combat","rangedSkillDamage"]},"else":{"type":"name","path":["combat","meleeSkillDamage"]}}}}},"'underdog-edge'":{"text":"'underdog-edge'","tree":{"type":"string","value":"underdog-edge"}},"'weapon'":{"text":"'weapon'","tree":{"type":"string","value":"weapon"}},"('repeatable' in item.tags || !(item.id in edges.taken))\n && (!item.magic || (campaign.magic && params.choice != 'underdog-edge'\n && params.choice != 'edge-5'))\n && !('not-underdog' in item.tags && (underdog || params.choice == 'underdog-edge'))\n && !('brings-cyber' in item.tags\n && (magic.graced || countCopies('bars-cyber' in copy.tags) > 0))":{"text":"('repeatable' in item.tags || !(item.id in edges.taken)) && (!item.magic || campaign.magic && params.choice != 'underdog-edge' && params.choice != 'edge-5') && !('not-underdog' in item.tags && (underdog || params.choice == 'underdog-edge')) && !('brings-cyber' in item.tags && (magic.graced || countCopies('bars-cyber' in copy.tags) > 0))","tree":{"type":"binary","op":"&&","left":{"type":"binary","op":"&&","left":{"type":"binary","op":"&&","left":{"type":"binary","op":"||","left":{"type":"binary","op":"in","left":{"type":"string","value":"repeatable"},"right":{"type":"name","path":["item","tags"]}},"right":{"type":"unary","op":"!","operand":{"type":"binary","op":"in","left":{"type":"name","path":["item","id"]},"right":{"type":"name","path":["edges","taken"]}}}},"right":{"type":"binary","op":"||","left":{"type":"unary","op":"!","operand":{"type":"name","path":["item","magic"]}},"right":{"type":"binary","op":"&&","left":{"type":"binary","op":"&&","left":{"type":"name","path":["campaign","magic"]},"right":{"type":"binary","op":"!=","left":{"type":"name","path":["params","choice"]},"right":{"type":"string","value":"underdog-edge"}}},"right":{"type":"binary","op":"!=","left":{"type":"name","path":["params","choice"]},"right":{"type":"string","value":"edge-5"}}}}},"right":{"type":"unary","op":"!","operand":{"type":"binary","op":"&&","left":{"type":"binary","op":"in","left":{"type":"string","value":"not-underdog"},"right":{"type":"name","path":["item","tags"]}},"right":{"type":"binary","op":"||","left":{"type":"name","path":["underdog"]},"right":{"type":"binary","op":"==","left":{"type":"name","path":["params","choice"]},"right":{"type":"string","value":"underdog-edge"}}}}}},"right":{"type":"unary","op":"!","operand":{"type":"binary","op":"&&","left":{"type":"binary","op":"in","left":{"type":"string","value":"brings-cyber"},"right":{"type":"name","path":["item","tags"]}},"right":{"type":"binary","op":"||","left":{"type":"name","path":["magic","graced"]},"right":{"type":"binary","op":">","left":{"type":"call","fn":"countCopies","args":[{"type":"binary","op":"in","left":{"type":"string","value":"bars-cyber"},"right":{"type":"name","path":["copy","tags"]}}]},"right":{"type":"int","value":0}}}}}}},"('repeatable' in item.tags || countCopies(copy.item == item.id) == 0)\n && !('brings-cyber' in item.tags\n && (magic.graced || countCopies('bars-cyber' in copy.tags) > 0))\n && !('bars-cyber' in item.tags && (underdog || magic.mage || magic.summoner\n || magic.graced || countCopies(copy.type == 'cyberware' && copy.fields.strain > 0) > 0))":{"text":"('repeatable' in item.tags || countCopies(copy.item == item.id) == 0) && !('brings-cyber' in item.tags && (magic.graced || countCopies('bars-cyber' in copy.tags) > 0)) && !('bars-cyber' in item.tags && (underdog || magic.mage || magic.summoner || magic.graced || countCopies(copy.type == 'cyberware' && copy.fields.strain > 0) > 0))","tree":{"type":"binary","op":"&&","left":{"type":"binary","op":"&&","left":{"type":"binary","op":"||","left":{"type":"binary","op":"in","left":{"type":"string","value":"repeatable"},"right":{"type":"name","path":["item","tags"]}},"right":{"type":"binary","op":"==","left":{"type":"call","fn":"countCopies","args":[{"type":"binary","op":"==","left":{"type":"name","path":["copy","item"]},"right":{"type":"name","path":["item","id"]}}]},"right":{"type":"int","value":0}}},"right":{"type":"unary","op":"!","operand":{"type":"binary","op":"&&","left":{"type":"binary","op":"in","left":{"type":"string","value":"brings-cyber"},"right":{"type":"name","path":["item","tags"]}},"right":{"type":"binary","op":"||","left":{"type":"name","path":["magic","graced"]},"right":{"type":"binary","op":">","left":{"type":"call","fn":"countCopies","args":[{"type":"binary","op":"in","left":{"type":"string","value":"bars-cyber"},"right":{"type":"name","path":["copy","tags"]}}]},"right":{"type":"int","value":0}}}}}},"right":{"type":"unary","op":"!","operand":{"type":"binary","op":"&&","left":{"type":"binary","op":"in","left":{"type":"string","value":"bars-cyber"},"right":{"type":"name","path":["item","tags"]}},"right":{"type":"binary","op":"||","left":{"type":"binary","op":"||","left":{"type":"binary","op":"||","left":{"type":"binary","op":"||","left":{"type":"name","path":["underdog"]},"right":{"type":"name","path":["magic","mage"]}},"right":{"type":"name","path":["magic","summoner"]}},"right":{"type":"name","path":["magic","graced"]}},"right":{"type":"binary","op":">","left":{"type":"call","fn":"countCopies","args":[{"type":"binary","op":"&&","left":{"type":"binary","op":"==","left":{"type":"name","path":["copy","type"]},"right":{"type":"string","value":"cyberware"}},"right":{"type":"binary","op":">","left":{"type":"name","path":["copy","fields","strain"]},"right":{"type":"int","value":0}}}]},"right":{"type":"int","value":0}}}}}}},"('skill.' + pick.value) in roll.tags":{"text":"'skill.' + pick.value in roll.tags","tree":{"type":"binary","op":"in","left":{"type":"binary","op":"+","left":{"type":"string","value":"skill."},"right":{"type":"name","path":["pick","value"]}},"right":{"type":"name","path":["roll","tags"]}}},"(campaign.magic || !item.magic) && (slot < 5 || !item.magic)":{"text":"(campaign.magic || !item.magic) && (slot < 5 || !item.magic)","tree":{"type":"binary","op":"&&","left":{"type":"binary","op":"||","left":{"type":"name","path":["campaign","magic"]},"right":{"type":"unary","op":"!","operand":{"type":"name","path":["item","magic"]}}},"right":{"type":"binary","op":"||","left":{"type":"binary","op":"<","left":{"type":"name","path":["slot"]},"right":{"type":"int","value":5}},"right":{"type":"unary","op":"!","operand":{"type":"name","path":["item","magic"]}}}}},"(level + 1) in [2, 5, 7, 10]":{"text":"level + 1 in [2, 5, 7, 10]","tree":{"type":"binary","op":"in","left":{"type":"binary","op":"+","left":{"type":"name","path":["level"]},"right":{"type":"int","value":1}},"right":{"type":"list","items":[{"type":"int","value":2},{"type":"int","value":5},{"type":"int","value":7},{"type":"int","value":10}]}}},"(params.choice == 'edge-5' && level < 5) || (params.choice == 'underdog-edge' && !underdog)\n || (params.choice == 'edge-1' && size(picksOf('edge-1')) > 0)\n || (params.choice == 'edge-2' && size(picksOf('edge-2')) > 0)\n || (params.choice == 'edge-5' && size(picksOf('edge-5')) > 0)\n || (params.choice == 'underdog-edge' && size(picksOf('underdog-edge')) > 0)":{"text":"params.choice == 'edge-5' && level < 5 || params.choice == 'underdog-edge' && !underdog || params.choice == 'edge-1' && size(picksOf('edge-1')) > 0 || params.choice == 'edge-2' && size(picksOf('edge-2')) > 0 || params.choice == 'edge-5' && size(picksOf('edge-5')) > 0 || params.choice == 'underdog-edge' && size(picksOf('underdog-edge')) > 0","tree":{"type":"binary","op":"||","left":{"type":"binary","op":"||","left":{"type":"binary","op":"||","left":{"type":"binary","op":"||","left":{"type":"binary","op":"||","left":{"type":"binary","op":"&&","left":{"type":"binary","op":"==","left":{"type":"name","path":["params","choice"]},"right":{"type":"string","value":"edge-5"}},"right":{"type":"binary","op":"<","left":{"type":"name","path":["level"]},"right":{"type":"int","value":5}}},"right":{"type":"binary","op":"&&","left":{"type":"binary","op":"==","left":{"type":"name","path":["params","choice"]},"right":{"type":"string","value":"underdog-edge"}},"right":{"type":"unary","op":"!","operand":{"type":"name","path":["underdog"]}}}},"right":{"type":"binary","op":"&&","left":{"type":"binary","op":"==","left":{"type":"name","path":["params","choice"]},"right":{"type":"string","value":"edge-1"}},"right":{"type":"binary","op":">","left":{"type":"call","fn":"size","args":[{"type":"call","fn":"picksOf","args":[{"type":"string","value":"edge-1"}]}]},"right":{"type":"int","value":0}}}},"right":{"type":"binary","op":"&&","left":{"type":"binary","op":"==","left":{"type":"name","path":["params","choice"]},"right":{"type":"string","value":"edge-2"}},"right":{"type":"binary","op":">","left":{"type":"call","fn":"size","args":[{"type":"call","fn":"picksOf","args":[{"type":"string","value":"edge-2"}]}]},"right":{"type":"int","value":0}}}},"right":{"type":"binary","op":"&&","left":{"type":"binary","op":"==","left":{"type":"name","path":["params","choice"]},"right":{"type":"string","value":"edge-5"}},"right":{"type":"binary","op":">","left":{"type":"call","fn":"size","args":[{"type":"call","fn":"picksOf","args":[{"type":"string","value":"edge-5"}]}]},"right":{"type":"int","value":0}}}},"right":{"type":"binary","op":"&&","left":{"type":"binary","op":"==","left":{"type":"name","path":["params","choice"]},"right":{"type":"string","value":"underdog-edge"}},"right":{"type":"binary","op":">","left":{"type":"call","fn":"size","args":[{"type":"call","fn":"picksOf","args":[{"type":"string","value":"underdog-edge"}]}]},"right":{"type":"int","value":0}}}}},"(self.equipped || 'standard' in item.tags || 'implant' in item.tags)\n && !('trap' in item.tags) && (!has(item.magazine) || self.loaded >= 1)":{"text":"(self.equipped || 'standard' in item.tags || 'implant' in item.tags) && !('trap' in item.tags) && (!has(item.magazine) || self.loaded >= 1)","tree":{"type":"binary","op":"&&","left":{"type":"binary","op":"&&","left":{"type":"binary","op":"||","left":{"type":"binary","op":"||","left":{"type":"name","path":["self","equipped"]},"right":{"type":"binary","op":"in","left":{"type":"string","value":"standard"},"right":{"type":"name","path":["item","tags"]}}},"right":{"type":"binary","op":"in","left":{"type":"string","value":"implant"},"right":{"type":"name","path":["item","tags"]}}},"right":{"type":"unary","op":"!","operand":{"type":"binary","op":"in","left":{"type":"string","value":"trap"},"right":{"type":"name","path":["item","tags"]}}}},"right":{"type":"binary","op":"||","left":{"type":"unary","op":"!","operand":{"type":"call","fn":"has","args":[{"type":"name","path":["item","magazine"]}]}},"right":{"type":"binary","op":">=","left":{"type":"name","path":["self","loaded"]},"right":{"type":"int","value":1}}}}},"(skills.know.level >= 1 ? 2 : skills.know.level >= 0 ? 1 : 0)\n + (skills.connect.level >= 1 ? 2 : skills.connect.level >= 0 ? 1 : 0)":{"text":"(skills.know.level >= 1 ? 2 : skills.know.level >= 0 ? 1 : 0) + (skills.connect.level >= 1 ? 2 : skills.connect.level >= 0 ? 1 : 0)","tree":{"type":"binary","op":"+","left":{"type":"conditional","test":{"type":"binary","op":">=","left":{"type":"name","path":["skills","know","level"]},"right":{"type":"int","value":1}},"then":{"type":"int","value":2},"else":{"type":"conditional","test":{"type":"binary","op":">=","left":{"type":"name","path":["skills","know","level"]},"right":{"type":"int","value":0}},"then":{"type":"int","value":1},"else":{"type":"int","value":0}}},"right":{"type":"conditional","test":{"type":"binary","op":">=","left":{"type":"name","path":["skills","connect","level"]},"right":{"type":"int","value":1}},"then":{"type":"int","value":2},"else":{"type":"conditional","test":{"type":"binary","op":">=","left":{"type":"name","path":["skills","connect","level"]},"right":{"type":"int","value":0}},"then":{"type":"int","value":1},"else":{"type":"int","value":0}}}}},"-[0, 3, 5][enc.overload]":{"text":"-[0, 3, 5][enc.overload]","tree":{"type":"unary","op":"-","operand":{"type":"index","object":{"type":"list","items":[{"type":"int","value":0},{"type":"int","value":3},{"type":"int","value":5}]},"index":{"type":"name","path":["enc","overload"]}}}},"-armor.heavy":{"text":"-armor.heavy","tree":{"type":"unary","op":"-","operand":{"type":"name","path":["armor","heavy"]}}},"-flags.cost":{"text":"-flags.cost","tree":{"type":"unary","op":"-","operand":{"type":"name","path":["flags","cost"]}}},"-flags.dealt":{"text":"-flags.dealt","tree":{"type":"unary","op":"-","operand":{"type":"name","path":["flags","dealt"]}}},"-max(0, flags.cost - flags.credit)":{"text":"-max(0, flags.cost - flags.credit)","tree":{"type":"unary","op":"-","operand":{"type":"call","fn":"max","args":[{"type":"int","value":0},{"type":"binary","op":"-","left":{"type":"name","path":["flags","cost"]},"right":{"type":"name","path":["flags","credit"]}}]}}},"1 + (level >= 2 ? 1 : 0) + (level >= 5 ? 1 : 0) + (level >= 7 ? 1 : 0) + (level >= 10 ? 1 : 0)":{"text":"1 + (level >= 2 ? 1 : 0) + (level >= 5 ? 1 : 0) + (level >= 7 ? 1 : 0) + (level >= 10 ? 1 : 0)","tree":{"type":"binary","op":"+","left":{"type":"binary","op":"+","left":{"type":"binary","op":"+","left":{"type":"binary","op":"+","left":{"type":"int","value":1},"right":{"type":"conditional","test":{"type":"binary","op":">=","left":{"type":"name","path":["level"]},"right":{"type":"int","value":2}},"then":{"type":"int","value":1},"else":{"type":"int","value":0}}},"right":{"type":"conditional","test":{"type":"binary","op":">=","left":{"type":"name","path":["level"]},"right":{"type":"int","value":5}},"then":{"type":"int","value":1},"else":{"type":"int","value":0}}},"right":{"type":"conditional","test":{"type":"binary","op":">=","left":{"type":"name","path":["level"]},"right":{"type":"int","value":7}},"then":{"type":"int","value":1},"else":{"type":"int","value":0}}},"right":{"type":"conditional","test":{"type":"binary","op":">=","left":{"type":"name","path":["level"]},"right":{"type":"int","value":10}},"then":{"type":"int","value":1},"else":{"type":"int","value":0}}}},"1 + max(0, skills.drive.level)":{"text":"1 + max(0, skills.drive.level)","tree":{"type":"binary","op":"+","left":{"type":"int","value":1},"right":{"type":"call","fn":"max","args":[{"type":"int","value":0},{"type":"name","path":["skills","drive","level"]}]}}},"15 + ceil(level / 2)":{"text":"15 + ceil(level / 2)","tree":{"type":"binary","op":"+","left":{"type":"int","value":15},"right":{"type":"call","fn":"ceil","args":[{"type":"binary","op":"/","left":{"type":"name","path":["level"]},"right":{"type":"int","value":2}}]}}},"16 - level":{"text":"16 - level","tree":{"type":"binary","op":"-","left":{"type":"int","value":16},"right":{"type":"name","path":["level"]}}},"16 - level - max(attributes.dex.mod, attributes.int.mod)":{"text":"16 - level - max(attributes.dex.mod, attributes.int.mod)","tree":{"type":"binary","op":"-","left":{"type":"binary","op":"-","left":{"type":"int","value":16},"right":{"type":"name","path":["level"]}},"right":{"type":"call","fn":"max","args":[{"type":"name","path":["attributes","dex","mod"]},{"type":"name","path":["attributes","int","mod"]}]}}},"16 - level - max(attributes.str.mod, attributes.con.mod)":{"text":"16 - level - max(attributes.str.mod, attributes.con.mod)","tree":{"type":"binary","op":"-","left":{"type":"binary","op":"-","left":{"type":"int","value":16},"right":{"type":"name","path":["level"]}},"right":{"type":"call","fn":"max","args":[{"type":"name","path":["attributes","str","mod"]},{"type":"name","path":["attributes","con","mod"]}]}}},"16 - level - max(attributes.wis.mod, attributes.cha.mod)":{"text":"16 - level - max(attributes.wis.mod, attributes.cha.mod)","tree":{"type":"binary","op":"-","left":{"type":"binary","op":"-","left":{"type":"int","value":16},"right":{"type":"name","path":["level"]}},"right":{"type":"call","fn":"max","args":[{"type":"name","path":["attributes","wis","mod"]},{"type":"name","path":["attributes","cha","mod"]}]}}},"18 - field.value":{"text":"18 - field.value","tree":{"type":"binary","op":"-","left":{"type":"int","value":18},"right":{"type":"name","path":["field","value"]}}},"1d10":{"text":"1d10","tree":{"type":"dice","count":1,"sides":10,"modifiers":[]}},"1d10+2":{"text":"1d10 + 2","tree":{"type":"binary","op":"+","left":{"type":"dice","count":1,"sides":10,"modifiers":[]},"right":{"type":"int","value":2}}},"1d12":{"text":"1d12","tree":{"type":"dice","count":1,"sides":12,"modifiers":[]}},"1d2":{"text":"1d2","tree":{"type":"dice","count":1,"sides":2,"modifiers":[]}},"1d20":{"text":"1d20","tree":{"type":"dice","count":1,"sides":20,"modifiers":[]}},"1d4":{"text":"1d4","tree":{"type":"dice","count":1,"sides":4,"modifiers":[]}},"1d6":{"text":"1d6","tree":{"type":"dice","count":1,"sides":6,"modifiers":[]}},"1d8":{"text":"1d8","tree":{"type":"dice","count":1,"sides":8,"modifiers":[]}},"1d8+1":{"text":"1d8 + 1","tree":{"type":"binary","op":"+","left":{"type":"dice","count":1,"sides":8,"modifiers":[]},"right":{"type":"int","value":1}}},"2d6":{"text":"2d6","tree":{"type":"dice","count":2,"sides":6,"modifiers":[]}},"2d6kh2":{"text":"2d6kh2","tree":{"type":"dice","count":2,"sides":6,"modifiers":[{"type":"keepHighest","count":2}]}},"2d8":{"text":"2d8","tree":{"type":"dice","count":2,"sides":8,"modifiers":[]}},"3 + fieldOf('skills.{skill}.credit', flags.skill)":{"text":"3 + fieldOf('skills.{skill}.credit', flags.skill)","tree":{"type":"binary","op":"+","left":{"type":"int","value":3},"right":{"type":"call","fn":"fieldOf","args":[{"type":"string","value":"skills.{skill}.credit"},{"type":"name","path":["flags","skill"]}]}}},"3d10":{"text":"3d10","tree":{"type":"dice","count":3,"sides":10,"modifiers":[]}},"3d4":{"text":"3d4","tree":{"type":"dice","count":3,"sides":4,"modifiers":[]}},"3d6":{"text":"3d6","tree":{"type":"dice","count":3,"sides":6,"modifiers":[]}},"3d8":{"text":"3d8","tree":{"type":"dice","count":3,"sides":8,"modifiers":[]}},"4d12":{"text":"4d12","tree":{"type":"dice","count":4,"sides":12,"modifiers":[]}},"4d6":{"text":"4d6","tree":{"type":"dice","count":4,"sides":6,"modifiers":[]}},"[-2, -1, 0, 1, 2][indexOf(['squatter', 'slum', 'middle', 'fine', 'luxury'], lifestyle)]":{"text":"[-2, -1, 0, 1, 2][indexOf(['squatter', 'slum', 'middle', 'fine', 'luxury'], lifestyle)]","tree":{"type":"index","object":{"type":"list","items":[{"type":"unary","op":"-","operand":{"type":"int","value":2}},{"type":"unary","op":"-","operand":{"type":"int","value":1}},{"type":"int","value":0},{"type":"int","value":1},{"type":"int","value":2}]},"index":{"type":"call","fn":"indexOf","args":[{"type":"list","items":[{"type":"string","value":"squatter"},{"type":"string","value":"slum"},{"type":"string","value":"middle"},{"type":"string","value":"fine"},{"type":"string","value":"luxury"}]},{"type":"name","path":["lifestyle"]}]}}},"[1000, 5000, 10000, 15000, 20000, 25000, 35000, 45000, 60000, 80000][level - 1]":{"text":"[1000, 5000, 10000, 15000, 20000, 25000, 35000, 45000, 60000, 80000][level - 1]","tree":{"type":"index","object":{"type":"list","items":[{"type":"int","value":1000},{"type":"int","value":5000},{"type":"int","value":10000},{"type":"int","value":15000},{"type":"int","value":20000},{"type":"int","value":25000},{"type":"int","value":35000},{"type":"int","value":45000},{"type":"int","value":60000},{"type":"int","value":80000}]},"index":{"type":"binary","op":"-","left":{"type":"name","path":["level"]},"right":{"type":"int","value":1}}}},"[1d6, 1d8, 1d10, 1d12, 1d12 + 1][max(0, skills.punch.base)]":{"text":"[1d6, 1d8, 1d10, 1d12, 1d12 + 1][max(0, skills.punch.base)]","tree":{"type":"index","object":{"type":"list","items":[{"type":"dice","count":1,"sides":6,"modifiers":[]},{"type":"dice","count":1,"sides":8,"modifiers":[]},{"type":"dice","count":1,"sides":10,"modifiers":[]},{"type":"dice","count":1,"sides":12,"modifiers":[]},{"type":"binary","op":"+","left":{"type":"dice","count":1,"sides":12,"modifiers":[]},"right":{"type":"int","value":1}}]},"index":{"type":"call","fn":"max","args":[{"type":"int","value":0},{"type":"name","path":["skills","punch","base"]}]}}},"[5000, 10000, 15000, 20000, 30000, 40000, 60000, 80000, 100000, 200000][level - 1]":{"text":"[5000, 10000, 15000, 20000, 30000, 40000, 60000, 80000, 100000, 200000][level - 1]","tree":{"type":"index","object":{"type":"list","items":[{"type":"int","value":5000},{"type":"int","value":10000},{"type":"int","value":15000},{"type":"int","value":20000},{"type":"int","value":30000},{"type":"int","value":40000},{"type":"int","value":60000},{"type":"int","value":80000},{"type":"int","value":100000},{"type":"int","value":200000}]},"index":{"type":"binary","op":"-","left":{"type":"name","path":["level"]},"right":{"type":"int","value":1}}}},"[params.choice, steps.edge.picked, 'attribute']":{"text":"[params.choice, steps.edge.picked, 'attribute']","tree":{"type":"list","items":[{"type":"name","path":["params","choice"]},{"type":"name","path":["steps","edge","picked"]},{"type":"string","value":"attribute"}]}},"[params.choice]":{"text":"[params.choice]","tree":{"type":"list","items":[{"type":"name","path":["params","choice"]}]}},"[steps.background.item.growth1, steps.background.item.growth2,\n steps.background.item.growth3, steps.background.item.growth4,\n steps.background.item.growth5, steps.background.item.growth6]":{"text":"[steps.background.item.growth1, steps.background.item.growth2, steps.background.item.growth3, steps.background.item.growth4, steps.background.item.growth5, steps.background.item.growth6]","tree":{"type":"list","items":[{"type":"name","path":["steps","background","item","growth1"]},{"type":"name","path":["steps","background","item","growth2"]},{"type":"name","path":["steps","background","item","growth3"]},{"type":"name","path":["steps","background","item","growth4"]},{"type":"name","path":["steps","background","item","growth5"]},{"type":"name","path":["steps","background","item","growth6"]}]}},"[steps.background.item.learning1, steps.background.item.learning2,\n steps.background.item.learning3, steps.background.item.learning4,\n steps.background.item.learning5, steps.background.item.learning6,\n steps.background.item.learning7, steps.background.item.learning8]":{"text":"[steps.background.item.learning1, steps.background.item.learning2, steps.background.item.learning3, steps.background.item.learning4, steps.background.item.learning5, steps.background.item.learning6, steps.background.item.learning7, steps.background.item.learning8]","tree":{"type":"list","items":[{"type":"name","path":["steps","background","item","learning1"]},{"type":"name","path":["steps","background","item","learning2"]},{"type":"name","path":["steps","background","item","learning3"]},{"type":"name","path":["steps","background","item","learning4"]},{"type":"name","path":["steps","background","item","learning5"]},{"type":"name","path":["steps","background","item","learning6"]},{"type":"name","path":["steps","background","item","learning7"]},{"type":"name","path":["steps","background","item","learning8"]}]}},"[steps.str.total, steps.dex.total, steps.con.total, steps.int.total,\n steps.wis.total, steps.cha.total]":{"text":"[steps.str.total, steps.dex.total, steps.con.total, steps.int.total, steps.wis.total, steps.cha.total]","tree":{"type":"list","items":[{"type":"name","path":["steps","str","total"]},{"type":"name","path":["steps","dex","total"]},{"type":"name","path":["steps","con","total"]},{"type":"name","path":["steps","int","total"]},{"type":"name","path":["steps","wis","total"]},{"type":"name","path":["steps","cha","total"]}]}},"ac.melee.base + attributes.dex.mod":{"text":"ac.melee.base + attributes.dex.mod","tree":{"type":"binary","op":"+","left":{"type":"name","path":["ac","melee","base"]},"right":{"type":"name","path":["attributes","dex","mod"]}}},"ac.ranged.base + attributes.dex.mod":{"text":"ac.ranged.base + attributes.dex.mod","tree":{"type":"binary","op":"+","left":{"type":"name","path":["ac","ranged","base"]},"right":{"type":"name","path":["attributes","dex","mod"]}}},"advancement.attributeBoosts + 1":{"text":"advancement.attributeBoosts + 1","tree":{"type":"binary","op":"+","left":{"type":"name","path":["advancement","attributeBoosts"]},"right":{"type":"int","value":1}}},"armor.heavy > 0":{"text":"armor.heavy > 0","tree":{"type":"binary","op":">","left":{"type":"name","path":["armor","heavy"]},"right":{"type":"int","value":0}}},"arts.bonusRolls.max > 0":{"text":"arts.bonusRolls.max > 0","tree":{"type":"binary","op":">","left":{"type":"name","path":["arts","bonusRolls","max"]},"right":{"type":"int","value":0}}},"arts.points":{"text":"arts.points","tree":{"type":"name","path":["arts","points"]}},"attributes.cha.base":{"text":"attributes.cha.base","tree":{"type":"name","path":["attributes","cha","base"]}},"attributes.cha.base >= 14 ? min(18, attributes.cha.base + 2) : 14":{"text":"attributes.cha.base >= 14 ? min(18, attributes.cha.base + 2) : 14","tree":{"type":"conditional","test":{"type":"binary","op":">=","left":{"type":"name","path":["attributes","cha","base"]},"right":{"type":"int","value":14}},"then":{"type":"call","fn":"min","args":[{"type":"int","value":18},{"type":"binary","op":"+","left":{"type":"name","path":["attributes","cha","base"]},"right":{"type":"int","value":2}}]},"else":{"type":"int","value":14}}},"attributes.cha.score >= 18 ? 2 : attributes.cha.score >= 14 ? 1\n : attributes.cha.score >= 8 ? 0 : attributes.cha.score >= 4 ? -1 : -2":{"text":"attributes.cha.score >= 18 ? 2 : attributes.cha.score >= 14 ? 1 : attributes.cha.score >= 8 ? 0 : attributes.cha.score >= 4 ? -1 : -2","tree":{"type":"conditional","test":{"type":"binary","op":">=","left":{"type":"name","path":["attributes","cha","score"]},"right":{"type":"int","value":18}},"then":{"type":"int","value":2},"else":{"type":"conditional","test":{"type":"binary","op":">=","left":{"type":"name","path":["attributes","cha","score"]},"right":{"type":"int","value":14}},"then":{"type":"int","value":1},"else":{"type":"conditional","test":{"type":"binary","op":">=","left":{"type":"name","path":["attributes","cha","score"]},"right":{"type":"int","value":8}},"then":{"type":"int","value":0},"else":{"type":"conditional","test":{"type":"binary","op":">=","left":{"type":"name","path":["attributes","cha","score"]},"right":{"type":"int","value":4}},"then":{"type":"unary","op":"-","operand":{"type":"int","value":1}},"else":{"type":"unary","op":"-","operand":{"type":"int","value":2}}}}}}},"attributes.con.base":{"text":"attributes.con.base","tree":{"type":"name","path":["attributes","con","base"]}},"attributes.con.mod + hp.dieBonus":{"text":"attributes.con.mod + hp.dieBonus","tree":{"type":"binary","op":"+","left":{"type":"name","path":["attributes","con","mod"]},"right":{"type":"name","path":["hp","dieBonus"]}}},"attributes.con.score":{"text":"attributes.con.score","tree":{"type":"name","path":["attributes","con","score"]}},"attributes.con.score >= 18 ? 2 : attributes.con.score >= 14 ? 1\n : attributes.con.score >= 8 ? 0 : attributes.con.score >= 4 ? -1 : -2":{"text":"attributes.con.score >= 18 ? 2 : attributes.con.score >= 14 ? 1 : attributes.con.score >= 8 ? 0 : attributes.con.score >= 4 ? -1 : -2","tree":{"type":"conditional","test":{"type":"binary","op":">=","left":{"type":"name","path":["attributes","con","score"]},"right":{"type":"int","value":18}},"then":{"type":"int","value":2},"else":{"type":"conditional","test":{"type":"binary","op":">=","left":{"type":"name","path":["attributes","con","score"]},"right":{"type":"int","value":14}},"then":{"type":"int","value":1},"else":{"type":"conditional","test":{"type":"binary","op":">=","left":{"type":"name","path":["attributes","con","score"]},"right":{"type":"int","value":8}},"then":{"type":"int","value":0},"else":{"type":"conditional","test":{"type":"binary","op":">=","left":{"type":"name","path":["attributes","con","score"]},"right":{"type":"int","value":4}},"then":{"type":"unary","op":"-","operand":{"type":"int","value":1}},"else":{"type":"unary","op":"-","operand":{"type":"int","value":2}}}}}}},"attributes.dex.base":{"text":"attributes.dex.base","tree":{"type":"name","path":["attributes","dex","base"]}},"attributes.dex.base >= 14 ? min(18, attributes.dex.base + 2) : 14":{"text":"attributes.dex.base >= 14 ? min(18, attributes.dex.base + 2) : 14","tree":{"type":"conditional","test":{"type":"binary","op":">=","left":{"type":"name","path":["attributes","dex","base"]},"right":{"type":"int","value":14}},"then":{"type":"call","fn":"min","args":[{"type":"int","value":18},{"type":"binary","op":"+","left":{"type":"name","path":["attributes","dex","base"]},"right":{"type":"int","value":2}}]},"else":{"type":"int","value":14}}},"attributes.dex.mod":{"text":"attributes.dex.mod","tree":{"type":"name","path":["attributes","dex","mod"]}},"attributes.dex.score >= 18 ? 2 : attributes.dex.score >= 14 ? 1\n : attributes.dex.score >= 8 ? 0 : attributes.dex.score >= 4 ? -1 : -2":{"text":"attributes.dex.score >= 18 ? 2 : attributes.dex.score >= 14 ? 1 : attributes.dex.score >= 8 ? 0 : attributes.dex.score >= 4 ? -1 : -2","tree":{"type":"conditional","test":{"type":"binary","op":">=","left":{"type":"name","path":["attributes","dex","score"]},"right":{"type":"int","value":18}},"then":{"type":"int","value":2},"else":{"type":"conditional","test":{"type":"binary","op":">=","left":{"type":"name","path":["attributes","dex","score"]},"right":{"type":"int","value":14}},"then":{"type":"int","value":1},"else":{"type":"conditional","test":{"type":"binary","op":">=","left":{"type":"name","path":["attributes","dex","score"]},"right":{"type":"int","value":8}},"then":{"type":"int","value":0},"else":{"type":"conditional","test":{"type":"binary","op":">=","left":{"type":"name","path":["attributes","dex","score"]},"right":{"type":"int","value":4}},"then":{"type":"unary","op":"-","operand":{"type":"int","value":1}},"else":{"type":"unary","op":"-","operand":{"type":"int","value":2}}}}}}},"attributes.int.base":{"text":"attributes.int.base","tree":{"type":"name","path":["attributes","int","base"]}},"attributes.int.score >= 18 ? 2 : attributes.int.score >= 14 ? 1\n : attributes.int.score >= 8 ? 0 : attributes.int.score >= 4 ? -1 : -2":{"text":"attributes.int.score >= 18 ? 2 : attributes.int.score >= 14 ? 1 : attributes.int.score >= 8 ? 0 : attributes.int.score >= 4 ? -1 : -2","tree":{"type":"conditional","test":{"type":"binary","op":">=","left":{"type":"name","path":["attributes","int","score"]},"right":{"type":"int","value":18}},"then":{"type":"int","value":2},"else":{"type":"conditional","test":{"type":"binary","op":">=","left":{"type":"name","path":["attributes","int","score"]},"right":{"type":"int","value":14}},"then":{"type":"int","value":1},"else":{"type":"conditional","test":{"type":"binary","op":">=","left":{"type":"name","path":["attributes","int","score"]},"right":{"type":"int","value":8}},"then":{"type":"int","value":0},"else":{"type":"conditional","test":{"type":"binary","op":">=","left":{"type":"name","path":["attributes","int","score"]},"right":{"type":"int","value":4}},"then":{"type":"unary","op":"-","operand":{"type":"int","value":1}},"else":{"type":"unary","op":"-","operand":{"type":"int","value":2}}}}}}},"attributes.modTotal <= -1 && !(@edges.prodigy in edges.taken)":{"text":"attributes.modTotal <= -1 && !(@edges.prodigy in edges.taken)","tree":{"type":"binary","op":"&&","left":{"type":"binary","op":"<=","left":{"type":"name","path":["attributes","modTotal"]},"right":{"type":"unary","op":"-","operand":{"type":"int","value":1}}},"right":{"type":"unary","op":"!","operand":{"type":"binary","op":"in","left":{"type":"ref","id":"edges.prodigy"},"right":{"type":"name","path":["edges","taken"]}}}}},"attributes.str.base":{"text":"attributes.str.base","tree":{"type":"name","path":["attributes","str","base"]}},"attributes.str.base >= 14 ? min(18, attributes.str.base + 2) : 14":{"text":"attributes.str.base >= 14 ? min(18, attributes.str.base + 2) : 14","tree":{"type":"conditional","test":{"type":"binary","op":">=","left":{"type":"name","path":["attributes","str","base"]},"right":{"type":"int","value":14}},"then":{"type":"call","fn":"min","args":[{"type":"int","value":18},{"type":"binary","op":"+","left":{"type":"name","path":["attributes","str","base"]},"right":{"type":"int","value":2}}]},"else":{"type":"int","value":14}}},"attributes.str.score":{"text":"attributes.str.score","tree":{"type":"name","path":["attributes","str","score"]}},"attributes.str.score >= 18 ? 2 : attributes.str.score >= 14 ? 1\n : attributes.str.score >= 8 ? 0 : attributes.str.score >= 4 ? -1 : -2":{"text":"attributes.str.score >= 18 ? 2 : attributes.str.score >= 14 ? 1 : attributes.str.score >= 8 ? 0 : attributes.str.score >= 4 ? -1 : -2","tree":{"type":"conditional","test":{"type":"binary","op":">=","left":{"type":"name","path":["attributes","str","score"]},"right":{"type":"int","value":18}},"then":{"type":"int","value":2},"else":{"type":"conditional","test":{"type":"binary","op":">=","left":{"type":"name","path":["attributes","str","score"]},"right":{"type":"int","value":14}},"then":{"type":"int","value":1},"else":{"type":"conditional","test":{"type":"binary","op":">=","left":{"type":"name","path":["attributes","str","score"]},"right":{"type":"int","value":8}},"then":{"type":"int","value":0},"else":{"type":"conditional","test":{"type":"binary","op":">=","left":{"type":"name","path":["attributes","str","score"]},"right":{"type":"int","value":4}},"then":{"type":"unary","op":"-","operand":{"type":"int","value":1}},"else":{"type":"unary","op":"-","operand":{"type":"int","value":2}}}}}}},"attributes.wis.base":{"text":"attributes.wis.base","tree":{"type":"name","path":["attributes","wis","base"]}},"attributes.wis.score":{"text":"attributes.wis.score","tree":{"type":"name","path":["attributes","wis","score"]}},"attributes.wis.score >= 18 ? 2 : attributes.wis.score >= 14 ? 1\n : attributes.wis.score >= 8 ? 0 : attributes.wis.score >= 4 ? -1 : -2":{"text":"attributes.wis.score >= 18 ? 2 : attributes.wis.score >= 14 ? 1 : attributes.wis.score >= 8 ? 0 : attributes.wis.score >= 4 ? -1 : -2","tree":{"type":"conditional","test":{"type":"binary","op":">=","left":{"type":"name","path":["attributes","wis","score"]},"right":{"type":"int","value":18}},"then":{"type":"int","value":2},"else":{"type":"conditional","test":{"type":"binary","op":">=","left":{"type":"name","path":["attributes","wis","score"]},"right":{"type":"int","value":14}},"then":{"type":"int","value":1},"else":{"type":"conditional","test":{"type":"binary","op":">=","left":{"type":"name","path":["attributes","wis","score"]},"right":{"type":"int","value":8}},"then":{"type":"int","value":0},"else":{"type":"conditional","test":{"type":"binary","op":">=","left":{"type":"name","path":["attributes","wis","score"]},"right":{"type":"int","value":4}},"then":{"type":"unary","op":"-","operand":{"type":"int","value":1}},"else":{"type":"unary","op":"-","operand":{"type":"int","value":2}}}}}}},"budget.drone > 0":{"text":"budget.drone > 0","tree":{"type":"binary","op":">","left":{"type":"name","path":["budget","drone"]},"right":{"type":"int","value":0}}},"budget.droneUsed <= budget.drone":{"text":"budget.droneUsed <= budget.drone","tree":{"type":"binary","op":"<=","left":{"type":"name","path":["budget","droneUsed"]},"right":{"type":"name","path":["budget","drone"]}}},"budget.vehicle > 0":{"text":"budget.vehicle > 0","tree":{"type":"binary","op":">","left":{"type":"name","path":["budget","vehicle"]},"right":{"type":"int","value":0}}},"budget.vehicle > budget.vehicleUsed || budget.drone > budget.droneUsed":{"text":"budget.vehicle > budget.vehicleUsed || budget.drone > budget.droneUsed","tree":{"type":"binary","op":"||","left":{"type":"binary","op":">","left":{"type":"name","path":["budget","vehicle"]},"right":{"type":"name","path":["budget","vehicleUsed"]}},"right":{"type":"binary","op":">","left":{"type":"name","path":["budget","drone"]},"right":{"type":"name","path":["budget","droneUsed"]}}}},"budget.vehicleUsed <= budget.vehicle":{"text":"budget.vehicleUsed <= budget.vehicle","tree":{"type":"binary","op":"<=","left":{"type":"name","path":["budget","vehicleUsed"]},"right":{"type":"name","path":["budget","vehicle"]}}},"campaign.alienation":{"text":"campaign.alienation","tree":{"type":"name","path":["campaign","alienation"]}},"campaign.alienation ? alienation.max : 1000":{"text":"campaign.alienation ? alienation.max : 1000","tree":{"type":"conditional","test":{"type":"name","path":["campaign","alienation"]},"then":{"type":"name","path":["alienation","max"]},"else":{"type":"int","value":1000}}},"ceil(countCopies(copy.type == 'program') * hacking.memory.perElement) + hacking.datafiles":{"text":"ceil(countCopies(copy.type == 'program') * hacking.memory.perElement) + hacking.datafiles","tree":{"type":"binary","op":"+","left":{"type":"call","fn":"ceil","args":[{"type":"binary","op":"*","left":{"type":"call","fn":"countCopies","args":[{"type":"binary","op":"==","left":{"type":"name","path":["copy","type"]},"right":{"type":"string","value":"program"}}]},"right":{"type":"name","path":["hacking","memory","perElement"]}}]},"right":{"type":"name","path":["hacking","datafiles"]}}},"ceil(level / 2)":{"text":"ceil(level / 2)","tree":{"type":"call","fn":"ceil","args":[{"type":"binary","op":"/","left":{"type":"name","path":["level"]},"right":{"type":"int","value":2}}]}},"ceil(sumCopies(max(1, copy.fields.strain), copy.type == 'cyberware'))":{"text":"ceil(sumCopies(max(1, copy.fields.strain), copy.type == 'cyberware'))","tree":{"type":"call","fn":"ceil","args":[{"type":"call","fn":"sumCopies","args":[{"type":"call","fn":"max","args":[{"type":"int","value":1},{"type":"name","path":["copy","fields","strain"]}]},{"type":"binary","op":"==","left":{"type":"name","path":["copy","type"]},"right":{"type":"string","value":"cyberware"}}]}]}},"character.creating":{"text":"character.creating","tree":{"type":"name","path":["character","creating"]}},"combat.attackBonus + max(attributes.int.mod, attributes.dex.mod)\n + max(skills.drive.level, skills.program.level)":{"text":"combat.attackBonus + max(attributes.int.mod, attributes.dex.mod) + max(skills.drive.level, skills.program.level)","tree":{"type":"binary","op":"+","left":{"type":"binary","op":"+","left":{"type":"name","path":["combat","attackBonus"]},"right":{"type":"call","fn":"max","args":[{"type":"name","path":["attributes","int","mod"]},{"type":"name","path":["attributes","dex","mod"]}]}},"right":{"type":"call","fn":"max","args":[{"type":"name","path":["skills","drive","level"]},{"type":"name","path":["skills","program","level"]}]}}},"combat.damageBonus != 0":{"text":"combat.damageBonus != 0","tree":{"type":"binary","op":"!=","left":{"type":"name","path":["combat","damageBonus"]},"right":{"type":"int","value":0}}},"combat.traumaBonus != 0":{"text":"combat.traumaBonus != 0","tree":{"type":"binary","op":"!=","left":{"type":"name","path":["combat","traumaBonus"]},"right":{"type":"int","value":0}}},"countCopies(copy.item == item.id) <= 1":{"text":"countCopies(copy.item == item.id) <= 1","tree":{"type":"binary","op":"<=","left":{"type":"call","fn":"countCopies","args":[{"type":"binary","op":"==","left":{"type":"name","path":["copy","item"]},"right":{"type":"name","path":["item","id"]}}]},"right":{"type":"int","value":1}}},"countCopies(copy.type == 'cyberware' && 'cyberears' in copy.tags) > 0":{"text":"countCopies(copy.type == 'cyberware' && 'cyberears' in copy.tags) > 0","tree":{"type":"binary","op":">","left":{"type":"call","fn":"countCopies","args":[{"type":"binary","op":"&&","left":{"type":"binary","op":"==","left":{"type":"name","path":["copy","type"]},"right":{"type":"string","value":"cyberware"}},"right":{"type":"binary","op":"in","left":{"type":"string","value":"cyberears"},"right":{"type":"name","path":["copy","tags"]}}}]},"right":{"type":"int","value":0}}},"countCopies(copy.type == 'cyberware' && 'cybereyes' in copy.tags) > 0":{"text":"countCopies(copy.type == 'cyberware' && 'cybereyes' in copy.tags) > 0","tree":{"type":"binary","op":">","left":{"type":"call","fn":"countCopies","args":[{"type":"binary","op":"&&","left":{"type":"binary","op":"==","left":{"type":"name","path":["copy","type"]},"right":{"type":"string","value":"cyberware"}},"right":{"type":"binary","op":"in","left":{"type":"string","value":"cybereyes"},"right":{"type":"name","path":["copy","tags"]}}}]},"right":{"type":"int","value":0}}},"countCopies(copy.type == 'cyberware' && copy.fields.strain > 0) == 0":{"text":"countCopies(copy.type == 'cyberware' && copy.fields.strain > 0) == 0","tree":{"type":"binary","op":"==","left":{"type":"call","fn":"countCopies","args":[{"type":"binary","op":"&&","left":{"type":"binary","op":"==","left":{"type":"name","path":["copy","type"]},"right":{"type":"string","value":"cyberware"}},"right":{"type":"binary","op":">","left":{"type":"name","path":["copy","fields","strain"]},"right":{"type":"int","value":0}}}]},"right":{"type":"int","value":0}}},"countCopies(copy.type == 'drone') > 0":{"text":"countCopies(copy.type == 'drone') > 0","tree":{"type":"binary","op":">","left":{"type":"call","fn":"countCopies","args":[{"type":"binary","op":"==","left":{"type":"name","path":["copy","type"]},"right":{"type":"string","value":"drone"}}]},"right":{"type":"int","value":0}}},"countCopies(copy.type == 'focus' && copy.state.level < copy.fields.maxLevel) > 0":{"text":"countCopies(copy.type == 'focus' && copy.state.level < copy.fields.maxLevel) > 0","tree":{"type":"binary","op":">","left":{"type":"call","fn":"countCopies","args":[{"type":"binary","op":"&&","left":{"type":"binary","op":"==","left":{"type":"name","path":["copy","type"]},"right":{"type":"string","value":"focus"}},"right":{"type":"binary","op":"<","left":{"type":"name","path":["copy","state","level"]},"right":{"type":"name","path":["copy","fields","maxLevel"]}}}]},"right":{"type":"int","value":0}}},"countCopies(copy.type == 'program' && copy.state.source == 'written')":{"text":"countCopies(copy.type == 'program' && copy.state.source == 'written')","tree":{"type":"call","fn":"countCopies","args":[{"type":"binary","op":"&&","left":{"type":"binary","op":"==","left":{"type":"name","path":["copy","type"]},"right":{"type":"string","value":"program"}},"right":{"type":"binary","op":"==","left":{"type":"name","path":["copy","state","source"]},"right":{"type":"string","value":"written"}}}]}},"countCopies(copy.type == 'spell' && copy.state.prepared)":{"text":"countCopies(copy.type == 'spell' && copy.state.prepared)","tree":{"type":"call","fn":"countCopies","args":[{"type":"binary","op":"&&","left":{"type":"binary","op":"==","left":{"type":"name","path":["copy","type"]},"right":{"type":"string","value":"spell"}},"right":{"type":"name","path":["copy","state","prepared"]}}]}},"cyber.wiredBudget > 0":{"text":"cyber.wiredBudget > 0","tree":{"type":"binary","op":">","left":{"type":"name","path":["cyber","wiredBudget"]},"right":{"type":"int","value":0}}},"cyber.wiredUsed <= cyber.wiredBudget":{"text":"cyber.wiredUsed <= cyber.wiredBudget","tree":{"type":"binary","op":"<=","left":{"type":"name","path":["cyber","wiredUsed"]},"right":{"type":"name","path":["cyber","wiredBudget"]}}},"enc.overload > 0":{"text":"enc.overload > 0","tree":{"type":"binary","op":">","left":{"type":"name","path":["enc","overload"]},"right":{"type":"int","value":0}}},"enc.readiedMax + 4":{"text":"enc.readiedMax + 4","tree":{"type":"binary","op":"+","left":{"type":"name","path":["enc","readiedMax"]},"right":{"type":"int","value":4}}},"enc.stowedMax + 8":{"text":"enc.stowedMax + 8","tree":{"type":"binary","op":"+","left":{"type":"name","path":["enc","stowedMax"]},"right":{"type":"int","value":8}}},"false":{"text":"false","tree":{"type":"bool","value":false}},"fieldId('skills.{skill}.base', flags.skill)":{"text":"fieldId('skills.{skill}.base', flags.skill)","tree":{"type":"call","fn":"fieldId","args":[{"type":"string","value":"skills.{skill}.base"},{"type":"name","path":["flags","skill"]}]}},"fieldId('skills.{skill}.base', params.skill)":{"text":"fieldId('skills.{skill}.base', params.skill)","tree":{"type":"call","fn":"fieldId","args":[{"type":"string","value":"skills.{skill}.base"},{"type":"name","path":["params","skill"]}]}},"fieldId('skills.{skill}.credit', flags.skill)":{"text":"fieldId('skills.{skill}.credit', flags.skill)","tree":{"type":"call","fn":"fieldId","args":[{"type":"string","value":"skills.{skill}.credit"},{"type":"name","path":["flags","skill"]}]}},"fieldId('skills.{skill}.credit', params.skill)":{"text":"fieldId('skills.{skill}.credit', params.skill)","tree":{"type":"call","fn":"fieldId","args":[{"type":"string","value":"skills.{skill}.credit"},{"type":"name","path":["params","skill"]}]}},"fieldOf('saves.{save}', params.save)":{"text":"fieldOf('saves.{save}', params.save)","tree":{"type":"call","fn":"fieldOf","args":[{"type":"string","value":"saves.{save}"},{"type":"name","path":["params","save"]}]}},"fieldOf('skills.{skill}.base', flags.skill)":{"text":"fieldOf('skills.{skill}.base', flags.skill)","tree":{"type":"call","fn":"fieldOf","args":[{"type":"string","value":"skills.{skill}.base"},{"type":"name","path":["flags","skill"]}]}},"fieldOf('skills.{skill}.base', params.skill)":{"text":"fieldOf('skills.{skill}.base', params.skill)","tree":{"type":"call","fn":"fieldOf","args":[{"type":"string","value":"skills.{skill}.base"},{"type":"name","path":["params","skill"]}]}},"fieldOf('skills.{skill}.credit', params.skill)":{"text":"fieldOf('skills.{skill}.credit', params.skill)","tree":{"type":"call","fn":"fieldOf","args":[{"type":"string","value":"skills.{skill}.credit"},{"type":"name","path":["params","skill"]}]}},"filterList(flags.learning, x != 'any')":{"text":"filterList(flags.learning, x != 'any')","tree":{"type":"call","fn":"filterList","args":[{"type":"name","path":["flags","learning"]},{"type":"binary","op":"!=","left":{"type":"name","path":["x"]},"right":{"type":"string","value":"any"}}]}},"filterList(flags.learning, x != 'any')[0]":{"text":"filterList(flags.learning, x != 'any')[0]","tree":{"type":"index","object":{"type":"call","fn":"filterList","args":[{"type":"name","path":["flags","learning"]},{"type":"binary","op":"!=","left":{"type":"name","path":["x"]},"right":{"type":"string","value":"any"}}]},"index":{"type":"int","value":0}}},"filterList(flags.learning, x != 'any')[1]":{"text":"filterList(flags.learning, x != 'any')[1]","tree":{"type":"index","object":{"type":"call","fn":"filterList","args":[{"type":"name","path":["flags","learning"]},{"type":"binary","op":"!=","left":{"type":"name","path":["x"]},"right":{"type":"string","value":"any"}}]},"index":{"type":"int","value":1}}},"filterList(keysOf('skill'),\n !(x in ['cast', 'summon']) && fieldOf('skills.{skill}.base', x) < 1)":{"text":"filterList(keysOf('skill'), !(x in ['cast', 'summon']) && fieldOf('skills.{skill}.base', x) < 1)","tree":{"type":"call","fn":"filterList","args":[{"type":"call","fn":"keysOf","args":[{"type":"string","value":"skill"}]},{"type":"binary","op":"&&","left":{"type":"unary","op":"!","operand":{"type":"binary","op":"in","left":{"type":"name","path":["x"]},"right":{"type":"list","items":[{"type":"string","value":"cast"},{"type":"string","value":"summon"}]}}},"right":{"type":"binary","op":"<","left":{"type":"call","fn":"fieldOf","args":[{"type":"string","value":"skills.{skill}.base"},{"type":"name","path":["x"]}]},"right":{"type":"int","value":1}}}]}},"filterList(keysOf('skill'),\n (params.code == x\n || (params.code == 'combat' && x in ['punch', 'shoot', 'stab'])\n || (params.code == 'punch-stab' && x in ['punch', 'stab'])\n || (params.code == 'noncombat'\n && !(x in ['punch', 'shoot', 'stab', 'cast', 'summon']))\n || (params.code == 'any' && !(x in ['cast', 'summon'])))\n && (!character.creating || fieldOf('skills.{skill}.base', x) < 1))":{"text":"filterList(keysOf('skill'), (params.code == x || params.code == 'combat' && x in ['punch', 'shoot', 'stab'] || params.code == 'punch-stab' && x in ['punch', 'stab'] || params.code == 'noncombat' && !(x in ['punch', 'shoot', 'stab', 'cast', 'summon']) || params.code == 'any' && !(x in ['cast', 'summon'])) && (!character.creating || fieldOf('skills.{skill}.base', x) < 1))","tree":{"type":"call","fn":"filterList","args":[{"type":"call","fn":"keysOf","args":[{"type":"string","value":"skill"}]},{"type":"binary","op":"&&","left":{"type":"binary","op":"||","left":{"type":"binary","op":"||","left":{"type":"binary","op":"||","left":{"type":"binary","op":"||","left":{"type":"binary","op":"==","left":{"type":"name","path":["params","code"]},"right":{"type":"name","path":["x"]}},"right":{"type":"binary","op":"&&","left":{"type":"binary","op":"==","left":{"type":"name","path":["params","code"]},"right":{"type":"string","value":"combat"}},"right":{"type":"binary","op":"in","left":{"type":"name","path":["x"]},"right":{"type":"list","items":[{"type":"string","value":"punch"},{"type":"string","value":"shoot"},{"type":"string","value":"stab"}]}}}},"right":{"type":"binary","op":"&&","left":{"type":"binary","op":"==","left":{"type":"name","path":["params","code"]},"right":{"type":"string","value":"punch-stab"}},"right":{"type":"binary","op":"in","left":{"type":"name","path":["x"]},"right":{"type":"list","items":[{"type":"string","value":"punch"},{"type":"string","value":"stab"}]}}}},"right":{"type":"binary","op":"&&","left":{"type":"binary","op":"==","left":{"type":"name","path":["params","code"]},"right":{"type":"string","value":"noncombat"}},"right":{"type":"unary","op":"!","operand":{"type":"binary","op":"in","left":{"type":"name","path":["x"]},"right":{"type":"list","items":[{"type":"string","value":"punch"},{"type":"string","value":"shoot"},{"type":"string","value":"stab"},{"type":"string","value":"cast"},{"type":"string","value":"summon"}]}}}}},"right":{"type":"binary","op":"&&","left":{"type":"binary","op":"==","left":{"type":"name","path":["params","code"]},"right":{"type":"string","value":"any"}},"right":{"type":"unary","op":"!","operand":{"type":"binary","op":"in","left":{"type":"name","path":["x"]},"right":{"type":"list","items":[{"type":"string","value":"cast"},{"type":"string","value":"summon"}]}}}}},"right":{"type":"binary","op":"||","left":{"type":"unary","op":"!","operand":{"type":"name","path":["character","creating"]}},"right":{"type":"binary","op":"<","left":{"type":"call","fn":"fieldOf","args":[{"type":"string","value":"skills.{skill}.base"},{"type":"name","path":["x"]}]},"right":{"type":"int","value":1}}}}]}},"flags.ac < 0 ? 'rolled' : flags.hit ? 'hit' : 'miss'":{"text":"flags.ac < 0 ? 'rolled' : flags.hit ? 'hit' : 'miss'","tree":{"type":"conditional","test":{"type":"binary","op":"<","left":{"type":"name","path":["flags","ac"]},"right":{"type":"int","value":0}},"then":{"type":"string","value":"rolled"},"else":{"type":"conditional","test":{"type":"name","path":["flags","hit"]},"then":{"type":"string","value":"hit"},"else":{"type":"string","value":"miss"}}}},"flags.ac < 0 || steps.hit.band == 'hit'":{"text":"flags.ac < 0 || steps.hit.band == 'hit'","tree":{"type":"binary","op":"||","left":{"type":"binary","op":"<","left":{"type":"name","path":["flags","ac"]},"right":{"type":"int","value":0}},"right":{"type":"binary","op":"==","left":{"type":"name","path":["steps","hit","band"]},"right":{"type":"string","value":"hit"}}}},"flags.allowed":{"text":"flags.allowed","tree":{"type":"name","path":["flags","allowed"]}},"flags.allowed ? 'improved' : 'refused'":{"text":"flags.allowed ? 'improved' : 'refused'","tree":{"type":"conditional","test":{"type":"name","path":["flags","allowed"]},"then":{"type":"string","value":"improved"},"else":{"type":"string","value":"refused"}}},"flags.amount":{"text":"flags.amount","tree":{"type":"name","path":["flags","amount"]}},"flags.attrMod":{"text":"flags.attrMod","tree":{"type":"name","path":["flags","attrMod"]}},"flags.attribute == '' ? 0 : fieldOf('attributes.{attribute}.mod', flags.attribute)":{"text":"flags.attribute == '' ? 0 : fieldOf('attributes.{attribute}.mod', flags.attribute)","tree":{"type":"conditional","test":{"type":"binary","op":"==","left":{"type":"name","path":["flags","attribute"]},"right":{"type":"string","value":""}},"then":{"type":"int","value":0},"else":{"type":"call","fn":"fieldOf","args":[{"type":"string","value":"attributes.{attribute}.mod"},{"type":"name","path":["flags","attribute"]}]}}},"flags.burst":{"text":"flags.burst","tree":{"type":"name","path":["flags","burst"]}},"flags.burst ? -3 : -1":{"text":"flags.burst ? -3 : -1","tree":{"type":"conditional","test":{"type":"name","path":["flags","burst"]},"then":{"type":"unary","op":"-","operand":{"type":"int","value":3}},"else":{"type":"unary","op":"-","operand":{"type":"int","value":1}}}},"flags.candidates":{"text":"flags.candidates","tree":{"type":"name","path":["flags","candidates"]}},"flags.candidates[0]":{"text":"flags.candidates[0]","tree":{"type":"index","object":{"type":"name","path":["flags","candidates"]},"index":{"type":"int","value":0}}},"flags.commit == 'day'":{"text":"flags.commit == 'day'","tree":{"type":"binary","op":"==","left":{"type":"name","path":["flags","commit"]},"right":{"type":"string","value":"day"}}},"flags.commit == 'scene'":{"text":"flags.commit == 'scene'","tree":{"type":"binary","op":"==","left":{"type":"name","path":["flags","commit"]},"right":{"type":"string","value":"scene"}}},"flags.dc < 0 ? 'rolled' : steps.check.band":{"text":"flags.dc < 0 ? 'rolled' : steps.check.band","tree":{"type":"conditional","test":{"type":"binary","op":"<","left":{"type":"name","path":["flags","dc"]},"right":{"type":"int","value":0}},"then":{"type":"string","value":"rolled"},"else":{"type":"name","path":["steps","check","band"]}}},"flags.dealt":{"text":"flags.dealt","tree":{"type":"name","path":["flags","dealt"]}},"flags.dealt > 0":{"text":"flags.dealt > 0","tree":{"type":"binary","op":">","left":{"type":"name","path":["flags","dealt"]},"right":{"type":"int","value":0}}},"flags.dice * flags.perDie":{"text":"flags.dice * flags.perDie","tree":{"type":"binary","op":"*","left":{"type":"name","path":["flags","dice"]},"right":{"type":"name","path":["flags","perDie"]}}},"flags.entry":{"text":"flags.entry","tree":{"type":"name","path":["flags","entry"]}},"flags.hit":{"text":"flags.hit","tree":{"type":"name","path":["flags","hit"]}},"flags.hit && has(item.traumaDie) && !flags.nonlethal":{"text":"flags.hit && has(item.traumaDie) && !flags.nonlethal","tree":{"type":"binary","op":"&&","left":{"type":"binary","op":"&&","left":{"type":"name","path":["flags","hit"]},"right":{"type":"call","fn":"has","args":[{"type":"name","path":["item","traumaDie"]}]}},"right":{"type":"unary","op":"!","operand":{"type":"name","path":["flags","nonlethal"]}}}},"flags.level":{"text":"flags.level","tree":{"type":"name","path":["flags","level"]}},"flags.level + 1":{"text":"flags.level + 1","tree":{"type":"binary","op":"+","left":{"type":"name","path":["flags","level"]},"right":{"type":"int","value":1}}},"flags.level + 2":{"text":"flags.level + 2","tree":{"type":"binary","op":"+","left":{"type":"name","path":["flags","level"]},"right":{"type":"int","value":2}}},"flags.level < 4":{"text":"flags.level < 4","tree":{"type":"binary","op":"<","left":{"type":"name","path":["flags","level"]},"right":{"type":"int","value":4}}},"flags.level >= 4 && flags.pool > 0":{"text":"flags.level >= 4 && flags.pool > 0","tree":{"type":"binary","op":"&&","left":{"type":"binary","op":">=","left":{"type":"name","path":["flags","level"]},"right":{"type":"int","value":4}},"right":{"type":"binary","op":">","left":{"type":"name","path":["flags","pool"]},"right":{"type":"int","value":0}}}},"flags.level >= 4 ? 0 : flags.pool":{"text":"flags.level >= 4 ? 0 : flags.pool","tree":{"type":"conditional","test":{"type":"binary","op":">=","left":{"type":"name","path":["flags","level"]},"right":{"type":"int","value":4}},"then":{"type":"int","value":0},"else":{"type":"name","path":["flags","pool"]}}},"flags.meleeHit":{"text":"flags.meleeHit","tree":{"type":"name","path":["flags","meleeHit"]}},"flags.meleeHit != 0":{"text":"flags.meleeHit != 0","tree":{"type":"binary","op":"!=","left":{"type":"name","path":["flags","meleeHit"]},"right":{"type":"int","value":0}}},"flags.mode == 'new'":{"text":"flags.mode == 'new'","tree":{"type":"binary","op":"==","left":{"type":"name","path":["flags","mode"]},"right":{"type":"string","value":"new"}}},"flags.mode == 'raise'":{"text":"flags.mode == 'raise'","tree":{"type":"binary","op":"==","left":{"type":"name","path":["flags","mode"]},"right":{"type":"string","value":"raise"}}},"flags.nonlethal ? ['damage.nonlethal'] : []":{"text":"flags.nonlethal ? ['damage.nonlethal'] : []","tree":{"type":"conditional","test":{"type":"name","path":["flags","nonlethal"]},"then":{"type":"list","items":[{"type":"string","value":"damage.nonlethal"}]},"else":{"type":"list","items":[]}}},"flags.perDie >= 0 ? (flags.dice)d6 : flags.perDie == -1 ? (flags.dice)d6min2\n : flags.perDie == -2 ? (flags.dice)d6min3 : flags.perDie == -3 ? (flags.dice)d6min4\n : (flags.dice)d6min5":{"text":"flags.perDie >= 0 ? (flags.dice)d6 : flags.perDie == -1 ? (flags.dice)d6min2 : flags.perDie == -2 ? (flags.dice)d6min3 : flags.perDie == -3 ? (flags.dice)d6min4 : (flags.dice)d6min5","tree":{"type":"conditional","test":{"type":"binary","op":">=","left":{"type":"name","path":["flags","perDie"]},"right":{"type":"int","value":0}},"then":{"type":"dice","count":{"type":"name","path":["flags","dice"]},"sides":6,"modifiers":[]},"else":{"type":"conditional","test":{"type":"binary","op":"==","left":{"type":"name","path":["flags","perDie"]},"right":{"type":"unary","op":"-","operand":{"type":"int","value":1}}},"then":{"type":"dice","count":{"type":"name","path":["flags","dice"]},"sides":6,"modifiers":[{"type":"minimum","target":2}]},"else":{"type":"conditional","test":{"type":"binary","op":"==","left":{"type":"name","path":["flags","perDie"]},"right":{"type":"unary","op":"-","operand":{"type":"int","value":2}}},"then":{"type":"dice","count":{"type":"name","path":["flags","dice"]},"sides":6,"modifiers":[{"type":"minimum","target":3}]},"else":{"type":"conditional","test":{"type":"binary","op":"==","left":{"type":"name","path":["flags","perDie"]},"right":{"type":"unary","op":"-","operand":{"type":"int","value":3}}},"then":{"type":"dice","count":{"type":"name","path":["flags","dice"]},"sides":6,"modifiers":[{"type":"minimum","target":4}]},"else":{"type":"dice","count":{"type":"name","path":["flags","dice"]},"sides":6,"modifiers":[{"type":"minimum","target":5}]}}}}}},"flags.points":{"text":"flags.points","tree":{"type":"name","path":["flags","points"]}},"flags.points && flags.level < 4 && flags.pool >= flags.level + 2":{"text":"flags.points && flags.level < 4 && flags.pool >= flags.level + 2","tree":{"type":"binary","op":"&&","left":{"type":"binary","op":"&&","left":{"type":"name","path":["flags","points"]},"right":{"type":"binary","op":"<","left":{"type":"name","path":["flags","level"]},"right":{"type":"int","value":4}}},"right":{"type":"binary","op":">=","left":{"type":"name","path":["flags","pool"]},"right":{"type":"binary","op":"+","left":{"type":"name","path":["flags","level"]},"right":{"type":"int","value":2}}}}},"flags.points ? 'points' : 'raised'":{"text":"flags.points ? 'points' : 'raised'","tree":{"type":"conditional","test":{"type":"name","path":["flags","points"]},"then":{"type":"string","value":"points"},"else":{"type":"string","value":"raised"}}},"flags.pool":{"text":"flags.pool","tree":{"type":"name","path":["flags","pool"]}},"flags.pool - flags.level - 2":{"text":"flags.pool - flags.level - 2","tree":{"type":"binary","op":"-","left":{"type":"binary","op":"-","left":{"type":"name","path":["flags","pool"]},"right":{"type":"name","path":["flags","level"]}},"right":{"type":"int","value":2}}},"flags.ranged ? 'attack.ranged' : 'attack.melee'":{"text":"flags.ranged ? 'attack.ranged' : 'attack.melee'","tree":{"type":"conditional","test":{"type":"name","path":["flags","ranged"]},"then":{"type":"string","value":"attack.ranged"},"else":{"type":"string","value":"attack.melee"}}},"flags.ranged ? 'damage.ranged' : 'damage.melee'":{"text":"flags.ranged ? 'damage.ranged' : 'damage.melee'","tree":{"type":"conditional","test":{"type":"name","path":["flags","ranged"]},"then":{"type":"string","value":"damage.ranged"},"else":{"type":"string","value":"damage.melee"}}},"flags.shock":{"text":"flags.shock","tree":{"type":"name","path":["flags","shock"]}},"flags.skill":{"text":"flags.skill","tree":{"type":"name","path":["flags","skill"]}},"flags.skill >= 0 ? flags.skill : -2":{"text":"flags.skill >= 0 ? flags.skill : -2","tree":{"type":"conditional","test":{"type":"binary","op":">=","left":{"type":"name","path":["flags","skill"]},"right":{"type":"int","value":0}},"then":{"type":"name","path":["flags","skill"]},"else":{"type":"unary","op":"-","operand":{"type":"int","value":2}}}},"flags.skillDamage":{"text":"flags.skillDamage","tree":{"type":"name","path":["flags","skillDamage"]}},"flags.skillDamage != 0":{"text":"flags.skillDamage != 0","tree":{"type":"binary","op":"!=","left":{"type":"name","path":["flags","skillDamage"]},"right":{"type":"int","value":0}}},"flags.target":{"text":"flags.target","tree":{"type":"name","path":["flags","target"]}},"flags.thrown ? max(skills.shoot.level, skills.stab.level, skills.exert.level)\n : fieldOf('skills.{skill}.level', item.skill)":{"text":"flags.thrown ? max(skills.shoot.level, skills.stab.level, skills.exert.level) : fieldOf('skills.{skill}.level', item.skill)","tree":{"type":"conditional","test":{"type":"name","path":["flags","thrown"]},"then":{"type":"call","fn":"max","args":[{"type":"name","path":["skills","shoot","level"]},{"type":"name","path":["skills","stab","level"]},{"type":"name","path":["skills","exert","level"]}]},"else":{"type":"call","fn":"fieldOf","args":[{"type":"string","value":"skills.{skill}.level"},{"type":"name","path":["item","skill"]}]}}},"flags.traumatic":{"text":"flags.traumatic","tree":{"type":"name","path":["flags","traumatic"]}},"flags.traumatic ? ['damage.traumatic'] : []":{"text":"flags.traumatic ? ['damage.traumatic'] : []","tree":{"type":"conditional","test":{"type":"name","path":["flags","traumatic"]},"then":{"type":"list","items":[{"type":"string","value":"damage.traumatic"}]},"else":{"type":"list","items":[]}}},"flags.underdog":{"text":"flags.underdog","tree":{"type":"name","path":["flags","underdog"]}},"floor(attributes.str.score / 2)":{"text":"floor(attributes.str.score / 2)","tree":{"type":"call","fn":"floor","args":[{"type":"binary","op":"/","left":{"type":"name","path":["attributes","str","score"]},"right":{"type":"int","value":2}}]}},"floor(level / 2)":{"text":"floor(level / 2)","tree":{"type":"call","fn":"floor","args":[{"type":"binary","op":"/","left":{"type":"name","path":["level"]},"right":{"type":"int","value":2}}]}},"floor(prior.rangeLong / 2)":{"text":"floor(prior.rangeLong / 2)","tree":{"type":"call","fn":"floor","args":[{"type":"binary","op":"/","left":{"type":"name","path":["prior","rangeLong"]},"right":{"type":"int","value":2}}]}},"floor(prior.rangeNormal / 2)":{"text":"floor(prior.rangeNormal / 2)","tree":{"type":"call","fn":"floor","args":[{"type":"binary","op":"/","left":{"type":"name","path":["prior","rangeNormal"]},"right":{"type":"int","value":2}}]}},"foci.taken < foci.allowed":{"text":"foci.taken < foci.allowed","tree":{"type":"binary","op":"<","left":{"type":"name","path":["foci","taken"]},"right":{"type":"name","path":["foci","allowed"]}}},"foci.taken <= foci.allowed":{"text":"foci.taken <= foci.allowed","tree":{"type":"binary","op":"<=","left":{"type":"name","path":["foci","taken"]},"right":{"type":"name","path":["foci","allowed"]}}},"hacking.memory.max":{"text":"hacking.memory.max","tree":{"type":"name","path":["hacking","memory","max"]}},"hacking.programming.max":{"text":"hacking.programming.max","tree":{"type":"name","path":["hacking","programming","max"]}},"hacking.programming.max > 0":{"text":"hacking.programming.max > 0","tree":{"type":"binary","op":">","left":{"type":"name","path":["hacking","programming","max"]},"right":{"type":"int","value":0}}},"has(item.baseAc)":{"text":"has(item.baseAc)","tree":{"type":"call","fn":"has","args":[{"type":"name","path":["item","baseAc"]}]}},"has(item.baseAc) && !self.damaged":{"text":"has(item.baseAc) && !self.damaged","tree":{"type":"binary","op":"&&","left":{"type":"call","fn":"has","args":[{"type":"name","path":["item","baseAc"]}]},"right":{"type":"unary","op":"!","operand":{"type":"name","path":["self","damaged"]}}}},"has(item.healDice)":{"text":"has(item.healDice)","tree":{"type":"call","fn":"has","args":[{"type":"name","path":["item","healDice"]}]}},"has(item.magazine)":{"text":"has(item.magazine)","tree":{"type":"call","fn":"has","args":[{"type":"name","path":["item","magazine"]}]}},"has(item.magazine) && self.loaded < item.magazine":{"text":"has(item.magazine) && self.loaded < item.magazine","tree":{"type":"binary","op":"&&","left":{"type":"call","fn":"has","args":[{"type":"name","path":["item","magazine"]}]},"right":{"type":"binary","op":"<","left":{"type":"name","path":["self","loaded"]},"right":{"type":"name","path":["item","magazine"]}}}},"has(item.magazine) ? item.magazine : 0":{"text":"has(item.magazine) ? item.magazine : 0","tree":{"type":"conditional","test":{"type":"call","fn":"has","args":[{"type":"name","path":["item","magazine"]}]},"then":{"type":"name","path":["item","magazine"]},"else":{"type":"int","value":0}}},"has(item.rangeNormal)":{"text":"has(item.rangeNormal)","tree":{"type":"call","fn":"has","args":[{"type":"name","path":["item","rangeNormal"]}]}},"has(item.rangeNormal) && (!('melee' in item.tags) || params.thrown)":{"text":"has(item.rangeNormal) && (!('melee' in item.tags) || params.thrown)","tree":{"type":"binary","op":"&&","left":{"type":"call","fn":"has","args":[{"type":"name","path":["item","rangeNormal"]}]},"right":{"type":"binary","op":"||","left":{"type":"unary","op":"!","operand":{"type":"binary","op":"in","left":{"type":"string","value":"melee"},"right":{"type":"name","path":["item","tags"]}}},"right":{"type":"name","path":["params","thrown"]}}}},"has(item.shockDamage) && item.shockDamage > 0 && !flags.ranged\n && (!has(item.shockAc) || flags.meleeAc < 0\n || min(flags.meleeAc, combat.shockAc) <= item.shockAc)\n ? max(0, item.shockDamage + flags.attrMod + item.shockBonus\n + combat.shockBonus + combat.damageBonus + flags.skillDamage)\n : 0":{"text":"has(item.shockDamage) && item.shockDamage > 0 && !flags.ranged && (!has(item.shockAc) || flags.meleeAc < 0 || min(flags.meleeAc, combat.shockAc) <= item.shockAc) ? max(0, item.shockDamage + flags.attrMod + item.shockBonus + combat.shockBonus + combat.damageBonus + flags.skillDamage) : 0","tree":{"type":"conditional","test":{"type":"binary","op":"&&","left":{"type":"binary","op":"&&","left":{"type":"binary","op":"&&","left":{"type":"call","fn":"has","args":[{"type":"name","path":["item","shockDamage"]}]},"right":{"type":"binary","op":">","left":{"type":"name","path":["item","shockDamage"]},"right":{"type":"int","value":0}}},"right":{"type":"unary","op":"!","operand":{"type":"name","path":["flags","ranged"]}}},"right":{"type":"binary","op":"||","left":{"type":"binary","op":"||","left":{"type":"unary","op":"!","operand":{"type":"call","fn":"has","args":[{"type":"name","path":["item","shockAc"]}]}},"right":{"type":"binary","op":"<","left":{"type":"name","path":["flags","meleeAc"]},"right":{"type":"int","value":0}}},"right":{"type":"binary","op":"<=","left":{"type":"call","fn":"min","args":[{"type":"name","path":["flags","meleeAc"]},{"type":"name","path":["combat","shockAc"]}]},"right":{"type":"name","path":["item","shockAc"]}}}},"then":{"type":"call","fn":"max","args":[{"type":"int","value":0},{"type":"binary","op":"+","left":{"type":"binary","op":"+","left":{"type":"binary","op":"+","left":{"type":"binary","op":"+","left":{"type":"binary","op":"+","left":{"type":"name","path":["item","shockDamage"]},"right":{"type":"name","path":["flags","attrMod"]}},"right":{"type":"name","path":["item","shockBonus"]}},"right":{"type":"name","path":["combat","shockBonus"]}},"right":{"type":"name","path":["combat","damageBonus"]}},"right":{"type":"name","path":["flags","skillDamage"]}}]},"else":{"type":"int","value":0}}},"has(item.triggerStrain) && !self.damaged && strain.total + item.triggerStrain <= strain.max":{"text":"has(item.triggerStrain) && !self.damaged && strain.total + item.triggerStrain <= strain.max","tree":{"type":"binary","op":"&&","left":{"type":"binary","op":"&&","left":{"type":"call","fn":"has","args":[{"type":"name","path":["item","triggerStrain"]}]},"right":{"type":"unary","op":"!","operand":{"type":"name","path":["self","damaged"]}}},"right":{"type":"binary","op":"<=","left":{"type":"binary","op":"+","left":{"type":"name","path":["strain","total"]},"right":{"type":"name","path":["item","triggerStrain"]}},"right":{"type":"name","path":["strain","max"]}}}},"has(params.attribute) && params.attribute in flags.attributes ? params.attribute\n : size(flags.attributes) == 0 ? ''\n : sortList(flags.attributes, -fieldOf('attributes.{attribute}.mod', x))[0]":{"text":"has(params.attribute) && params.attribute in flags.attributes ? params.attribute : size(flags.attributes) == 0 ? '' : sortList(flags.attributes, -fieldOf('attributes.{attribute}.mod', x))[0]","tree":{"type":"conditional","test":{"type":"binary","op":"&&","left":{"type":"call","fn":"has","args":[{"type":"name","path":["params","attribute"]}]},"right":{"type":"binary","op":"in","left":{"type":"name","path":["params","attribute"]},"right":{"type":"name","path":["flags","attributes"]}}},"then":{"type":"name","path":["params","attribute"]},"else":{"type":"conditional","test":{"type":"binary","op":"==","left":{"type":"call","fn":"size","args":[{"type":"name","path":["flags","attributes"]}]},"right":{"type":"int","value":0}},"then":{"type":"string","value":""},"else":{"type":"index","object":{"type":"call","fn":"sortList","args":[{"type":"name","path":["flags","attributes"]},{"type":"unary","op":"-","operand":{"type":"call","fn":"fieldOf","args":[{"type":"string","value":"attributes.{attribute}.mod"},{"type":"name","path":["x"]}]}}]},"index":{"type":"int","value":0}}}}},"has(params.difficulty) ? params.difficulty : -1":{"text":"has(params.difficulty) ? params.difficulty : -1","tree":{"type":"conditional","test":{"type":"call","fn":"has","args":[{"type":"name","path":["params","difficulty"]}]},"then":{"type":"name","path":["params","difficulty"]},"else":{"type":"unary","op":"-","operand":{"type":"int","value":1}}}},"has(params.healerSkill) ? params.healerSkill : 0":{"text":"has(params.healerSkill) ? params.healerSkill : 0","tree":{"type":"conditional","test":{"type":"call","fn":"has","args":[{"type":"name","path":["params","healerSkill"]}]},"then":{"type":"name","path":["params","healerSkill"]},"else":{"type":"int","value":0}}},"has(params.lethal) ? !params.lethal : 'nonlethal' in item.tags":{"text":"has(params.lethal) ? !params.lethal : 'nonlethal' in item.tags","tree":{"type":"conditional","test":{"type":"call","fn":"has","args":[{"type":"name","path":["params","lethal"]}]},"then":{"type":"unary","op":"!","operand":{"type":"name","path":["params","lethal"]}},"else":{"type":"binary","op":"in","left":{"type":"string","value":"nonlethal"},"right":{"type":"name","path":["item","tags"]}}}},"has(params.modifier)":{"text":"has(params.modifier)","tree":{"type":"call","fn":"has","args":[{"type":"name","path":["params","modifier"]}]}},"has(prior.enc) ? max(1, prior.enc - 1) : 0":{"text":"has(prior.enc) ? max(1, prior.enc - 1) : 0","tree":{"type":"conditional","test":{"type":"call","fn":"has","args":[{"type":"name","path":["prior","enc"]}]},"then":{"type":"call","fn":"max","args":[{"type":"int","value":1},{"type":"binary","op":"-","left":{"type":"name","path":["prior","enc"]},"right":{"type":"int","value":1}}]},"else":{"type":"int","value":0}}},"has(prior.enc) ? prior.enc + 1 : 0":{"text":"has(prior.enc) ? prior.enc + 1 : 0","tree":{"type":"conditional","test":{"type":"call","fn":"has","args":[{"type":"name","path":["prior","enc"]}]},"then":{"type":"binary","op":"+","left":{"type":"name","path":["prior","enc"]},"right":{"type":"int","value":1}},"else":{"type":"int","value":0}}},"has(steps.attribute)":{"text":"has(steps.attribute)","tree":{"type":"call","fn":"has","args":[{"type":"name","path":["steps","attribute"]}]}},"has(steps.edge.item.bonusSkill)":{"text":"has(steps.edge.item.bonusSkill)","tree":{"type":"call","fn":"has","args":[{"type":"name","path":["steps","edge","item","bonusSkill"]}]}},"has(steps.focus)":{"text":"has(steps.focus)","tree":{"type":"call","fn":"has","args":[{"type":"name","path":["steps","focus"]}]}},"has(steps.focus) && 'asks-attribute' in steps.focus.item.tags":{"text":"has(steps.focus) && 'asks-attribute' in steps.focus.item.tags","tree":{"type":"binary","op":"&&","left":{"type":"call","fn":"has","args":[{"type":"name","path":["steps","focus"]}]},"right":{"type":"binary","op":"in","left":{"type":"string","value":"asks-attribute"},"right":{"type":"name","path":["steps","focus","item","tags"]}}}},"has(steps.focus) && has(steps.focus.item.bonusSkill)":{"text":"has(steps.focus) && has(steps.focus.item.bonusSkill)","tree":{"type":"binary","op":"&&","left":{"type":"call","fn":"has","args":[{"type":"name","path":["steps","focus"]}]},"right":{"type":"call","fn":"has","args":[{"type":"name","path":["steps","focus","item","bonusSkill"]}]}}},"has(steps.focus) && has(steps.focus.item.bonusSkill) && steps.focus.item.bonusSkill == 'noncombat'":{"text":"has(steps.focus) && has(steps.focus.item.bonusSkill) && steps.focus.item.bonusSkill == 'noncombat'","tree":{"type":"binary","op":"&&","left":{"type":"binary","op":"&&","left":{"type":"call","fn":"has","args":[{"type":"name","path":["steps","focus"]}]},"right":{"type":"call","fn":"has","args":[{"type":"name","path":["steps","focus","item","bonusSkill"]}]}},"right":{"type":"binary","op":"==","left":{"type":"name","path":["steps","focus","item","bonusSkill"]},"right":{"type":"string","value":"noncombat"}}}},"has(steps.focus) && has(steps.focus.item.bonusSkill2)":{"text":"has(steps.focus) && has(steps.focus.item.bonusSkill2)","tree":{"type":"binary","op":"&&","left":{"type":"call","fn":"has","args":[{"type":"name","path":["steps","focus"]}]},"right":{"type":"call","fn":"has","args":[{"type":"name","path":["steps","focus","item","bonusSkill2"]}]}}},"has(steps.focus) && has(steps.focus.item.gearBudget)":{"text":"has(steps.focus) && has(steps.focus.item.gearBudget)","tree":{"type":"binary","op":"&&","left":{"type":"call","fn":"has","args":[{"type":"name","path":["steps","focus"]}]},"right":{"type":"call","fn":"has","args":[{"type":"name","path":["steps","focus","item","gearBudget"]}]}}},"has(steps.focus) && size(steps.focus.item.startingCyber) > 0\n && strain.total + steps.focus.item.startingCyberStrain <= strain.max && !magic.graced":{"text":"has(steps.focus) && size(steps.focus.item.startingCyber) > 0 && strain.total + steps.focus.item.startingCyberStrain <= strain.max && !magic.graced","tree":{"type":"binary","op":"&&","left":{"type":"binary","op":"&&","left":{"type":"binary","op":"&&","left":{"type":"call","fn":"has","args":[{"type":"name","path":["steps","focus"]}]},"right":{"type":"binary","op":">","left":{"type":"call","fn":"size","args":[{"type":"name","path":["steps","focus","item","startingCyber"]}]},"right":{"type":"int","value":0}}},"right":{"type":"binary","op":"<=","left":{"type":"binary","op":"+","left":{"type":"name","path":["strain","total"]},"right":{"type":"name","path":["steps","focus","item","startingCyberStrain"]}},"right":{"type":"name","path":["strain","max"]}}},"right":{"type":"unary","op":"!","operand":{"type":"name","path":["magic","graced"]}}}},"has(steps.heal)":{"text":"has(steps.heal)","tree":{"type":"call","fn":"has","args":[{"type":"name","path":["steps","heal"]}]}},"has(steps.heal) ? steps.heal.total : 0":{"text":"has(steps.heal) ? steps.heal.total : 0","tree":{"type":"conditional","test":{"type":"call","fn":"has","args":[{"type":"name","path":["steps","heal"]}]},"then":{"type":"name","path":["steps","heal","total"]},"else":{"type":"int","value":0}}},"has(steps.mode) ? steps.mode.picked : 'new'":{"text":"has(steps.mode) ? steps.mode.picked : 'new'","tree":{"type":"conditional","test":{"type":"call","fn":"has","args":[{"type":"name","path":["steps","mode"]}]},"then":{"type":"name","path":["steps","mode","picked"]},"else":{"type":"string","value":"new"}}},"has(steps.raised) && has(steps.raised.item.levelTwoSkill)":{"text":"has(steps.raised) && has(steps.raised.item.levelTwoSkill)","tree":{"type":"binary","op":"&&","left":{"type":"call","fn":"has","args":[{"type":"name","path":["steps","raised"]}]},"right":{"type":"call","fn":"has","args":[{"type":"name","path":["steps","raised","item","levelTwoSkill"]}]}}},"has(steps.skill) ? steps.skill.picked : flags.candidates[0]":{"text":"has(steps.skill) ? steps.skill.picked : flags.candidates[0]","tree":{"type":"conditional","test":{"type":"call","fn":"has","args":[{"type":"name","path":["steps","skill"]}]},"then":{"type":"name","path":["steps","skill","picked"]},"else":{"type":"index","object":{"type":"name","path":["flags","candidates"]},"index":{"type":"int","value":0}}}},"has(steps.specialty)":{"text":"has(steps.specialty)","tree":{"type":"call","fn":"has","args":[{"type":"name","path":["steps","specialty"]}]}},"has(steps.trauma) && steps.trauma.band == 'traumatic'":{"text":"has(steps.trauma) && steps.trauma.band == 'traumatic'","tree":{"type":"binary","op":"&&","left":{"type":"call","fn":"has","args":[{"type":"name","path":["steps","trauma"]}]},"right":{"type":"binary","op":"==","left":{"type":"name","path":["steps","trauma","band"]},"right":{"type":"string","value":"traumatic"}}}},"has(steps.underdog) && steps.underdog.picked == 'take'":{"text":"has(steps.underdog) && steps.underdog.picked == 'take'","tree":{"type":"binary","op":"&&","left":{"type":"call","fn":"has","args":[{"type":"name","path":["steps","underdog"]}]},"right":{"type":"binary","op":"==","left":{"type":"name","path":["steps","underdog","picked"]},"right":{"type":"string","value":"take"}}}},"hasChoice('background')":{"text":"hasChoice('background')","tree":{"type":"call","fn":"hasChoice","args":[{"type":"string","value":"background"}]}},"hasChoice('edge')":{"text":"hasChoice('edge')","tree":{"type":"call","fn":"hasChoice","args":[{"type":"string","value":"edge"}]}},"hp.dieBonus != 0":{"text":"hp.dieBonus != 0","tree":{"type":"binary","op":"!=","left":{"type":"name","path":["hp","dieBonus"]},"right":{"type":"int","value":0}}},"hp.max":{"text":"hp.max","tree":{"type":"name","path":["hp","max"]}},"hp.rolled":{"text":"hp.rolled","tree":{"type":"name","path":["hp","rolled"]}},"item.accessCost":{"text":"item.accessCost","tree":{"type":"name","path":["item","accessCost"]}},"item.accessCost > 0":{"text":"item.accessCost > 0","tree":{"type":"binary","op":">","left":{"type":"name","path":["item","accessCost"]},"right":{"type":"int","value":0}}},"item.alienation":{"text":"item.alienation","tree":{"type":"name","path":["item","alienation"]}},"item.attackBonus":{"text":"item.attackBonus","tree":{"type":"name","path":["item","attackBonus"]}},"item.attackBonus != 0":{"text":"item.attackBonus != 0","tree":{"type":"binary","op":"!=","left":{"type":"name","path":["item","attackBonus"]},"right":{"type":"int","value":0}}},"item.attribute == 'str-dex' ? ['str', 'dex']\n : item.attribute == 'none' ? [] : [item.attribute]":{"text":"item.attribute == 'str-dex' ? ['str', 'dex'] : item.attribute == 'none' ? [] : [item.attribute]","tree":{"type":"conditional","test":{"type":"binary","op":"==","left":{"type":"name","path":["item","attribute"]},"right":{"type":"string","value":"str-dex"}},"then":{"type":"list","items":[{"type":"string","value":"str"},{"type":"string","value":"dex"}]},"else":{"type":"conditional","test":{"type":"binary","op":"==","left":{"type":"name","path":["item","attribute"]},"right":{"type":"string","value":"none"}},"then":{"type":"list","items":[]},"else":{"type":"list","items":[{"type":"name","path":["item","attribute"]}]}}}},"item.baseAc":{"text":"item.baseAc","tree":{"type":"name","path":["item","baseAc"]}},"item.bonusAccess":{"text":"item.bonusAccess","tree":{"type":"name","path":["item","bonusAccess"]}},"item.category":{"text":"item.category","tree":{"type":"name","path":["item","category"]}},"item.category in ['limb', 'sensory']":{"text":"item.category in ['limb', 'sensory']","tree":{"type":"binary","op":"in","left":{"type":"name","path":["item","category"]},"right":{"type":"list","items":[{"type":"string","value":"limb"},{"type":"string","value":"sensory"}]}}},"item.checkMod":{"text":"item.checkMod","tree":{"type":"name","path":["item","checkMod"]}},"item.checkMod != 0":{"text":"item.checkMod != 0","tree":{"type":"binary","op":"!=","left":{"type":"name","path":["item","checkMod"]},"right":{"type":"int","value":0}}},"item.cost":{"text":"item.cost","tree":{"type":"name","path":["item","cost"]}},"item.cost <= 1000 && !('restricted' in item.tags)":{"text":"item.cost <= 1000 && !('restricted' in item.tags)","tree":{"type":"binary","op":"&&","left":{"type":"binary","op":"<=","left":{"type":"name","path":["item","cost"]},"right":{"type":"int","value":1000}},"right":{"type":"unary","op":"!","operand":{"type":"binary","op":"in","left":{"type":"string","value":"restricted"},"right":{"type":"name","path":["item","tags"]}}}}},"item.cost <= arts.points - arts.spent && countCopies(copy.item == item.id) == 0\n && !('alacrity' in item.tags && countCopies('alacrity' in copy.tags) > 0)":{"text":"item.cost <= arts.points - arts.spent && countCopies(copy.item == item.id) == 0 && !('alacrity' in item.tags && countCopies('alacrity' in copy.tags) > 0)","tree":{"type":"binary","op":"&&","left":{"type":"binary","op":"&&","left":{"type":"binary","op":"<=","left":{"type":"name","path":["item","cost"]},"right":{"type":"binary","op":"-","left":{"type":"name","path":["arts","points"]},"right":{"type":"name","path":["arts","spent"]}}},"right":{"type":"binary","op":"==","left":{"type":"call","fn":"countCopies","args":[{"type":"binary","op":"==","left":{"type":"name","path":["copy","item"]},"right":{"type":"name","path":["item","id"]}}]},"right":{"type":"int","value":0}}},"right":{"type":"unary","op":"!","operand":{"type":"binary","op":"&&","left":{"type":"binary","op":"in","left":{"type":"string","value":"alacrity"},"right":{"type":"name","path":["item","tags"]}},"right":{"type":"binary","op":">","left":{"type":"call","fn":"countCopies","args":[{"type":"binary","op":"in","left":{"type":"string","value":"alacrity"},"right":{"type":"name","path":["copy","tags"]}}]},"right":{"type":"int","value":0}}}}}},"item.cost <= budget.drone - budget.droneUsed && !('restricted' in item.tags)\n && (!has(item.enc) || enc.stowed + item.enc <= enc.stowedMax)":{"text":"item.cost <= budget.drone - budget.droneUsed && !('restricted' in item.tags) && (!has(item.enc) || enc.stowed + item.enc <= enc.stowedMax)","tree":{"type":"binary","op":"&&","left":{"type":"binary","op":"&&","left":{"type":"binary","op":"<=","left":{"type":"name","path":["item","cost"]},"right":{"type":"binary","op":"-","left":{"type":"name","path":["budget","drone"]},"right":{"type":"name","path":["budget","droneUsed"]}}},"right":{"type":"unary","op":"!","operand":{"type":"binary","op":"in","left":{"type":"string","value":"restricted"},"right":{"type":"name","path":["item","tags"]}}}},"right":{"type":"binary","op":"||","left":{"type":"unary","op":"!","operand":{"type":"call","fn":"has","args":[{"type":"name","path":["item","enc"]}]}},"right":{"type":"binary","op":"<=","left":{"type":"binary","op":"+","left":{"type":"name","path":["enc","stowed"]},"right":{"type":"name","path":["item","enc"]}},"right":{"type":"name","path":["enc","stowedMax"]}}}}},"item.cost <= budget.vehicle - budget.vehicleUsed && !('restricted' in item.tags)":{"text":"item.cost <= budget.vehicle - budget.vehicleUsed && !('restricted' in item.tags)","tree":{"type":"binary","op":"&&","left":{"type":"binary","op":"<=","left":{"type":"name","path":["item","cost"]},"right":{"type":"binary","op":"-","left":{"type":"name","path":["budget","vehicle"]},"right":{"type":"name","path":["budget","vehicleUsed"]}}},"right":{"type":"unary","op":"!","operand":{"type":"binary","op":"in","left":{"type":"string","value":"restricted"},"right":{"type":"name","path":["item","tags"]}}}}},"item.cost <= cyber.wiredBudget - cyber.wiredUsed\n && strain.total + item.strain <= strain.max\n && countCopies(copy.item == item.id) == 0":{"text":"item.cost <= cyber.wiredBudget - cyber.wiredUsed && strain.total + item.strain <= strain.max && countCopies(copy.item == item.id) == 0","tree":{"type":"binary","op":"&&","left":{"type":"binary","op":"&&","left":{"type":"binary","op":"<=","left":{"type":"name","path":["item","cost"]},"right":{"type":"binary","op":"-","left":{"type":"name","path":["cyber","wiredBudget"]},"right":{"type":"name","path":["cyber","wiredUsed"]}}},"right":{"type":"binary","op":"<=","left":{"type":"binary","op":"+","left":{"type":"name","path":["strain","total"]},"right":{"type":"name","path":["item","strain"]}},"right":{"type":"name","path":["strain","max"]}}},"right":{"type":"binary","op":"==","left":{"type":"call","fn":"countCopies","args":[{"type":"binary","op":"==","left":{"type":"name","path":["copy","item"]},"right":{"type":"name","path":["item","id"]}}]},"right":{"type":"int","value":0}}}},"item.cpu":{"text":"item.cpu","tree":{"type":"name","path":["item","cpu"]}},"item.damage":{"text":"item.damage","tree":{"type":"name","path":["item","damage"]}},"item.damageBonus":{"text":"item.damageBonus","tree":{"type":"name","path":["item","damageBonus"]}},"item.damageBonus != 0":{"text":"item.damageBonus != 0","tree":{"type":"binary","op":"!=","left":{"type":"name","path":["item","damageBonus"]},"right":{"type":"int","value":0}}},"item.effort == 'either' ? (has(params.commit) ? params.commit : 'scene')\n : item.effort":{"text":"item.effort == 'either' ? (has(params.commit) ? params.commit : 'scene') : item.effort","tree":{"type":"conditional","test":{"type":"binary","op":"==","left":{"type":"name","path":["item","effort"]},"right":{"type":"string","value":"either"}},"then":{"type":"conditional","test":{"type":"call","fn":"has","args":[{"type":"name","path":["params","commit"]}]},"then":{"type":"name","path":["params","commit"]},"else":{"type":"string","value":"scene"}},"else":{"type":"name","path":["item","effort"]}}},"item.fittingsUsed <= item.fittings":{"text":"item.fittingsUsed <= item.fittings","tree":{"type":"binary","op":"<=","left":{"type":"name","path":["item","fittingsUsed"]},"right":{"type":"name","path":["item","fittings"]}}},"item.healDice":{"text":"item.healDice","tree":{"type":"name","path":["item","healDice"]}},"item.hp":{"text":"item.hp","tree":{"type":"name","path":["item","hp"]}},"item.id":{"text":"item.id","tree":{"type":"name","path":["item","id"]}},"item.id == @weapons.eye-flechette":{"text":"item.id == @weapons.eye-flechette","tree":{"type":"binary","op":"==","left":{"type":"name","path":["item","id"]},"right":{"type":"ref","id":"weapons.eye-flechette"}}},"item.kind":{"text":"item.kind","tree":{"type":"name","path":["item","kind"]}},"item.kind != 'shield'":{"text":"item.kind != 'shield'","tree":{"type":"binary","op":"!=","left":{"type":"name","path":["item","kind"]},"right":{"type":"string","value":"shield"}}},"item.kind == 'clothing'":{"text":"item.kind == 'clothing'","tree":{"type":"binary","op":"==","left":{"type":"name","path":["item","kind"]},"right":{"type":"string","value":"clothing"}}},"item.kind == 'subject' && item.subjectType in action.item.targets":{"text":"item.kind == 'subject' && item.subjectType in action.item.targets","tree":{"type":"binary","op":"&&","left":{"type":"binary","op":"==","left":{"type":"name","path":["item","kind"]},"right":{"type":"string","value":"subject"}},"right":{"type":"binary","op":"in","left":{"type":"name","path":["item","subjectType"]},"right":{"type":"name","path":["action","item","targets"]}}}},"item.kind == 'verb' && hacking.cpu > 0 && hacking.access.current >= item.accessCost":{"text":"item.kind == 'verb' && hacking.cpu > 0 && hacking.access.current >= item.accessCost","tree":{"type":"binary","op":"&&","left":{"type":"binary","op":"&&","left":{"type":"binary","op":"==","left":{"type":"name","path":["item","kind"]},"right":{"type":"string","value":"verb"}},"right":{"type":"binary","op":">","left":{"type":"name","path":["hacking","cpu"]},"right":{"type":"int","value":0}}},"right":{"type":"binary","op":">=","left":{"type":"name","path":["hacking","access","current"]},"right":{"type":"name","path":["item","accessCost"]}}}},"item.magazine":{"text":"item.magazine","tree":{"type":"name","path":["item","magazine"]}},"item.maxLevel":{"text":"item.maxLevel","tree":{"type":"name","path":["item","maxLevel"]}},"item.meleeAc":{"text":"item.meleeAc","tree":{"type":"name","path":["item","meleeAc"]}},"item.memory":{"text":"item.memory","tree":{"type":"name","path":["item","memory"]}},"item.powerUsed <= item.power && item.massUsed <= item.mass":{"text":"item.powerUsed <= item.power && item.massUsed <= item.mass","tree":{"type":"binary","op":"&&","left":{"type":"binary","op":"<=","left":{"type":"name","path":["item","powerUsed"]},"right":{"type":"name","path":["item","power"]}},"right":{"type":"binary","op":"<=","left":{"type":"name","path":["item","massUsed"]},"right":{"type":"name","path":["item","mass"]}}}},"item.rangedAc":{"text":"item.rangedAc","tree":{"type":"name","path":["item","rangedAc"]}},"item.shielding":{"text":"item.shielding","tree":{"type":"name","path":["item","shielding"]}},"item.size != 'small'":{"text":"item.size != 'small'","tree":{"type":"binary","op":"!=","left":{"type":"name","path":["item","size"]},"right":{"type":"string","value":"small"}}},"item.size == 'large'":{"text":"item.size == 'large'","tree":{"type":"binary","op":"==","left":{"type":"name","path":["item","size"]},"right":{"type":"string","value":"large"}}},"item.strain":{"text":"item.strain","tree":{"type":"name","path":["item","strain"]}},"item.strain > 0":{"text":"item.strain > 0","tree":{"type":"binary","op":">","left":{"type":"name","path":["item","strain"]},"right":{"type":"int","value":0}}},"item.strain >= 2":{"text":"item.strain >= 2","tree":{"type":"binary","op":">=","left":{"type":"name","path":["item","strain"]},"right":{"type":"int","value":2}}},"item.traumaDie":{"text":"item.traumaDie","tree":{"type":"name","path":["item","traumaDie"]}},"item.traumaDieBonus":{"text":"item.traumaDieBonus","tree":{"type":"name","path":["item","traumaDieBonus"]}},"item.traumaDieBonus != 0":{"text":"item.traumaDieBonus != 0","tree":{"type":"binary","op":"!=","left":{"type":"name","path":["item","traumaDieBonus"]},"right":{"type":"int","value":0}}},"item.traumaMod":{"text":"item.traumaMod","tree":{"type":"name","path":["item","traumaMod"]}},"item.traumaMod != 0 && !self.damaged":{"text":"item.traumaMod != 0 && !self.damaged","tree":{"type":"binary","op":"&&","left":{"type":"binary","op":"!=","left":{"type":"name","path":["item","traumaMod"]},"right":{"type":"int","value":0}},"right":{"type":"unary","op":"!","operand":{"type":"name","path":["self","damaged"]}}}},"item.triggerStrain":{"text":"item.triggerStrain","tree":{"type":"name","path":["item","triggerStrain"]}},"level":{"text":"level","tree":{"type":"name","path":["level"]}},"level + 1 == 5":{"text":"level + 1 == 5","tree":{"type":"binary","op":"==","left":{"type":"binary","op":"+","left":{"type":"name","path":["level"]},"right":{"type":"int","value":1}},"right":{"type":"int","value":5}}},"level + 2":{"text":"level + 2","tree":{"type":"binary","op":"+","left":{"type":"name","path":["level"]},"right":{"type":"int","value":2}}},"level - 1":{"text":"level - 1","tree":{"type":"binary","op":"-","left":{"type":"name","path":["level"]},"right":{"type":"int","value":1}}},"level >= 10 ? 0\n : (xp.track == 'fast' ? [0, 3, 6, 12, 18, 27, 39, 54, 72, 93]\n : [0, 6, 15, 24, 36, 51, 69, 87, 105, 139])[level]":{"text":"level >= 10 ? 0 : (xp.track == 'fast' ? [0, 3, 6, 12, 18, 27, 39, 54, 72, 93] : [0, 6, 15, 24, 36, 51, 69, 87, 105, 139])[level]","tree":{"type":"conditional","test":{"type":"binary","op":">=","left":{"type":"name","path":["level"]},"right":{"type":"int","value":10}},"then":{"type":"int","value":0},"else":{"type":"index","object":{"type":"conditional","test":{"type":"binary","op":"==","left":{"type":"name","path":["xp","track"]},"right":{"type":"string","value":"fast"}},"then":{"type":"list","items":[{"type":"int","value":0},{"type":"int","value":3},{"type":"int","value":6},{"type":"int","value":12},{"type":"int","value":18},{"type":"int","value":27},{"type":"int","value":39},{"type":"int","value":54},{"type":"int","value":72},{"type":"int","value":93}]},"else":{"type":"list","items":[{"type":"int","value":0},{"type":"int","value":6},{"type":"int","value":15},{"type":"int","value":24},{"type":"int","value":36},{"type":"int","value":51},{"type":"int","value":69},{"type":"int","value":87},{"type":"int","value":105},{"type":"int","value":139}]}},"index":{"type":"name","path":["level"]}}}},"level >= 5 ? 2 : 1":{"text":"level >= 5 ? 2 : 1","tree":{"type":"conditional","test":{"type":"binary","op":">=","left":{"type":"name","path":["level"]},"right":{"type":"int","value":5}},"then":{"type":"int","value":2},"else":{"type":"int","value":1}}},"level >= [1, 1, 3, 6, 9][flags.level + 1]\n && skillPoints.unspent + flags.credit >= flags.level + 2":{"text":"level >= [1, 1, 3, 6, 9][flags.level + 1] && skillPoints.unspent + flags.credit >= flags.level + 2","tree":{"type":"binary","op":"&&","left":{"type":"binary","op":">=","left":{"type":"name","path":["level"]},"right":{"type":"index","object":{"type":"list","items":[{"type":"int","value":1},{"type":"int","value":1},{"type":"int","value":3},{"type":"int","value":6},{"type":"int","value":9}]},"index":{"type":"binary","op":"+","left":{"type":"name","path":["flags","level"]},"right":{"type":"int","value":1}}}},"right":{"type":"binary","op":">=","left":{"type":"binary","op":"+","left":{"type":"name","path":["skillPoints","unspent"]},"right":{"type":"name","path":["flags","credit"]}},"right":{"type":"binary","op":"+","left":{"type":"name","path":["flags","level"]},"right":{"type":"int","value":2}}}}},"level >= item.minLevel && (!item.physicalOnly || self.form in ['physical-1', 'physical-2', 'physical-3'])":{"text":"level >= item.minLevel && (!item.physicalOnly || self.form in ['physical-1', 'physical-2', 'physical-3'])","tree":{"type":"binary","op":"&&","left":{"type":"binary","op":">=","left":{"type":"name","path":["level"]},"right":{"type":"name","path":["item","minLevel"]}},"right":{"type":"binary","op":"||","left":{"type":"unary","op":"!","operand":{"type":"name","path":["item","physicalOnly"]}},"right":{"type":"binary","op":"in","left":{"type":"name","path":["self","form"]},"right":{"type":"list","items":[{"type":"string","value":"physical-1"},{"type":"string","value":"physical-2"},{"type":"string","value":"physical-3"}]}}}}},"level >= slot":{"text":"level >= slot","tree":{"type":"binary","op":">=","left":{"type":"name","path":["level"]},"right":{"type":"name","path":["slot"]}}},"magic.cyberPenalty > 0":{"text":"magic.cyberPenalty > 0","tree":{"type":"binary","op":">","left":{"type":"name","path":["magic","cyberPenalty"]},"right":{"type":"int","value":0}}},"magic.graced":{"text":"magic.graced","tree":{"type":"name","path":["magic","graced"]}},"magic.graced ? max(0, [2, 3, 4, 6, 6, 7, 7, 9, 10, 11][level - 1]\n - (countCopies(copy.type == 'cyberware') > 0 ? magic.cyberPenalty : 0)) : 0":{"text":"magic.graced ? max(0, [2, 3, 4, 6, 6, 7, 7, 9, 10, 11][level - 1] - (countCopies(copy.type == 'cyberware') > 0 ? magic.cyberPenalty : 0)) : 0","tree":{"type":"conditional","test":{"type":"name","path":["magic","graced"]},"then":{"type":"call","fn":"max","args":[{"type":"int","value":0},{"type":"binary","op":"-","left":{"type":"index","object":{"type":"list","items":[{"type":"int","value":2},{"type":"int","value":3},{"type":"int","value":4},{"type":"int","value":6},{"type":"int","value":6},{"type":"int","value":7},{"type":"int","value":7},{"type":"int","value":9},{"type":"int","value":10},{"type":"int","value":11}]},"index":{"type":"binary","op":"-","left":{"type":"name","path":["level"]},"right":{"type":"int","value":1}}},"right":{"type":"conditional","test":{"type":"binary","op":">","left":{"type":"call","fn":"countCopies","args":[{"type":"binary","op":"==","left":{"type":"name","path":["copy","type"]},"right":{"type":"string","value":"cyberware"}}]},"right":{"type":"int","value":0}},"then":{"type":"name","path":["magic","cyberPenalty"]},"else":{"type":"int","value":0}}}]},"else":{"type":"int","value":0}}},"magic.mage":{"text":"magic.mage","tree":{"type":"name","path":["magic","mage"]}},"magic.mage && self.prepared":{"text":"magic.mage && self.prepared","tree":{"type":"binary","op":"&&","left":{"type":"name","path":["magic","mage"]},"right":{"type":"name","path":["self","prepared"]}}},"magic.mage ? max(0, ceil(level / 2) + skills.cast.level) : 0":{"text":"magic.mage ? max(0, ceil(level / 2) + skills.cast.level) : 0","tree":{"type":"conditional","test":{"type":"name","path":["magic","mage"]},"then":{"type":"call","fn":"max","args":[{"type":"int","value":0},{"type":"binary","op":"+","left":{"type":"call","fn":"ceil","args":[{"type":"binary","op":"/","left":{"type":"name","path":["level"]},"right":{"type":"int","value":2}}]},"right":{"type":"name","path":["skills","cast","level"]}}]},"else":{"type":"int","value":0}}},"magic.mage ? max(1, max(attributes.int.mod, attributes.wis.mod) + skills.cast.level\n - magic.cyberPenalty) : 0":{"text":"magic.mage ? max(1, max(attributes.int.mod, attributes.wis.mod) + skills.cast.level - magic.cyberPenalty) : 0","tree":{"type":"conditional","test":{"type":"name","path":["magic","mage"]},"then":{"type":"call","fn":"max","args":[{"type":"int","value":1},{"type":"binary","op":"-","left":{"type":"binary","op":"+","left":{"type":"call","fn":"max","args":[{"type":"name","path":["attributes","int","mod"]},{"type":"name","path":["attributes","wis","mod"]}]},"right":{"type":"name","path":["skills","cast","level"]}},"right":{"type":"name","path":["magic","cyberPenalty"]}}]},"else":{"type":"int","value":0}}},"magic.mage || magic.summoner || magic.graced":{"text":"magic.mage || magic.summoner || magic.graced","tree":{"type":"binary","op":"||","left":{"type":"binary","op":"||","left":{"type":"name","path":["magic","mage"]},"right":{"type":"name","path":["magic","summoner"]}},"right":{"type":"name","path":["magic","graced"]}}},"magic.summoner":{"text":"magic.summoner","tree":{"type":"name","path":["magic","summoner"]}},"magic.summoner ? max(1, max(attributes.con.mod, attributes.cha.mod) + skills.summon.level\n - magic.cyberPenalty) : 0":{"text":"magic.summoner ? max(1, max(attributes.con.mod, attributes.cha.mod) + skills.summon.level - magic.cyberPenalty) : 0","tree":{"type":"conditional","test":{"type":"name","path":["magic","summoner"]},"then":{"type":"call","fn":"max","args":[{"type":"int","value":1},{"type":"binary","op":"-","left":{"type":"binary","op":"+","left":{"type":"call","fn":"max","args":[{"type":"name","path":["attributes","con","mod"]},{"type":"name","path":["attributes","cha","mod"]}]},"right":{"type":"name","path":["skills","summon","level"]}},"right":{"type":"name","path":["magic","cyberPenalty"]}}]},"else":{"type":"int","value":0}}},"maintenance.max > 0 || maintenance.used > 0":{"text":"maintenance.max > 0 || maintenance.used > 0","tree":{"type":"binary","op":"||","left":{"type":"binary","op":">","left":{"type":"name","path":["maintenance","max"]},"right":{"type":"int","value":0}},"right":{"type":"binary","op":">","left":{"type":"name","path":["maintenance","used"]},"right":{"type":"int","value":0}}}},"max(-3, min(max(attributes.cha.modCap, attributes.cha.scoreMod),\n attributes.cha.scoreMod + attributes.cha.modBonus))":{"text":"max(-3, min(max(attributes.cha.modCap, attributes.cha.scoreMod), attributes.cha.scoreMod + attributes.cha.modBonus))","tree":{"type":"call","fn":"max","args":[{"type":"unary","op":"-","operand":{"type":"int","value":3}},{"type":"call","fn":"min","args":[{"type":"call","fn":"max","args":[{"type":"name","path":["attributes","cha","modCap"]},{"type":"name","path":["attributes","cha","scoreMod"]}]},{"type":"binary","op":"+","left":{"type":"name","path":["attributes","cha","scoreMod"]},"right":{"type":"name","path":["attributes","cha","modBonus"]}}]}]}},"max(-3, min(max(attributes.con.modCap, attributes.con.scoreMod),\n attributes.con.scoreMod + attributes.con.modBonus))":{"text":"max(-3, min(max(attributes.con.modCap, attributes.con.scoreMod), attributes.con.scoreMod + attributes.con.modBonus))","tree":{"type":"call","fn":"max","args":[{"type":"unary","op":"-","operand":{"type":"int","value":3}},{"type":"call","fn":"min","args":[{"type":"call","fn":"max","args":[{"type":"name","path":["attributes","con","modCap"]},{"type":"name","path":["attributes","con","scoreMod"]}]},{"type":"binary","op":"+","left":{"type":"name","path":["attributes","con","scoreMod"]},"right":{"type":"name","path":["attributes","con","modBonus"]}}]}]}},"max(-3, min(max(attributes.dex.modCap, attributes.dex.scoreMod),\n attributes.dex.scoreMod + attributes.dex.modBonus))":{"text":"max(-3, min(max(attributes.dex.modCap, attributes.dex.scoreMod), attributes.dex.scoreMod + attributes.dex.modBonus))","tree":{"type":"call","fn":"max","args":[{"type":"unary","op":"-","operand":{"type":"int","value":3}},{"type":"call","fn":"min","args":[{"type":"call","fn":"max","args":[{"type":"name","path":["attributes","dex","modCap"]},{"type":"name","path":["attributes","dex","scoreMod"]}]},{"type":"binary","op":"+","left":{"type":"name","path":["attributes","dex","scoreMod"]},"right":{"type":"name","path":["attributes","dex","modBonus"]}}]}]}},"max(-3, min(max(attributes.int.modCap, attributes.int.scoreMod),\n attributes.int.scoreMod + attributes.int.modBonus))":{"text":"max(-3, min(max(attributes.int.modCap, attributes.int.scoreMod), attributes.int.scoreMod + attributes.int.modBonus))","tree":{"type":"call","fn":"max","args":[{"type":"unary","op":"-","operand":{"type":"int","value":3}},{"type":"call","fn":"min","args":[{"type":"call","fn":"max","args":[{"type":"name","path":["attributes","int","modCap"]},{"type":"name","path":["attributes","int","scoreMod"]}]},{"type":"binary","op":"+","left":{"type":"name","path":["attributes","int","scoreMod"]},"right":{"type":"name","path":["attributes","int","modBonus"]}}]}]}},"max(-3, min(max(attributes.str.modCap, attributes.str.scoreMod),\n attributes.str.scoreMod + attributes.str.modBonus))":{"text":"max(-3, min(max(attributes.str.modCap, attributes.str.scoreMod), attributes.str.scoreMod + attributes.str.modBonus))","tree":{"type":"call","fn":"max","args":[{"type":"unary","op":"-","operand":{"type":"int","value":3}},{"type":"call","fn":"min","args":[{"type":"call","fn":"max","args":[{"type":"name","path":["attributes","str","modCap"]},{"type":"name","path":["attributes","str","scoreMod"]}]},{"type":"binary","op":"+","left":{"type":"name","path":["attributes","str","scoreMod"]},"right":{"type":"name","path":["attributes","str","modBonus"]}}]}]}},"max(-3, min(max(attributes.wis.modCap, attributes.wis.scoreMod),\n attributes.wis.scoreMod + attributes.wis.modBonus))":{"text":"max(-3, min(max(attributes.wis.modCap, attributes.wis.scoreMod), attributes.wis.scoreMod + attributes.wis.modBonus))","tree":{"type":"call","fn":"max","args":[{"type":"unary","op":"-","operand":{"type":"int","value":3}},{"type":"call","fn":"min","args":[{"type":"call","fn":"max","args":[{"type":"name","path":["attributes","wis","modCap"]},{"type":"name","path":["attributes","wis","scoreMod"]}]},{"type":"binary","op":"+","left":{"type":"name","path":["attributes","wis","scoreMod"]},"right":{"type":"name","path":["attributes","wis","modBonus"]}}]}]}},"max(0, 12 - attributes.con.score)":{"text":"max(0, 12 - attributes.con.score)","tree":{"type":"call","fn":"max","args":[{"type":"int","value":0},{"type":"binary","op":"-","left":{"type":"int","value":12},"right":{"type":"name","path":["attributes","con","score"]}}]}},"max(0, arts.bonusRolls.max)":{"text":"max(0, arts.bonusRolls.max)","tree":{"type":"call","fn":"max","args":[{"type":"int","value":0},{"type":"name","path":["arts","bonusRolls","max"]}]}},"max(0, attributes.int.mod + attributes.con.mod\n + 3 * min(5, max(0, skills.fix.level + maintenance.fixBonus))) * maintenance.multiplier":{"text":"max(0, attributes.int.mod + attributes.con.mod + 3 * min(5, max(0, skills.fix.level + maintenance.fixBonus))) * maintenance.multiplier","tree":{"type":"binary","op":"*","left":{"type":"call","fn":"max","args":[{"type":"int","value":0},{"type":"binary","op":"+","left":{"type":"binary","op":"+","left":{"type":"name","path":["attributes","int","mod"]},"right":{"type":"name","path":["attributes","con","mod"]}},"right":{"type":"binary","op":"*","left":{"type":"int","value":3},"right":{"type":"call","fn":"min","args":[{"type":"int","value":5},{"type":"call","fn":"max","args":[{"type":"int","value":0},{"type":"binary","op":"+","left":{"type":"name","path":["skills","fix","level"]},"right":{"type":"name","path":["maintenance","fixBonus"]}}]}]}}}]},"right":{"type":"name","path":["maintenance","multiplier"]}}},"max(0, attributes.int.mod + skills.program.level + hacking.deck.bonusAccess)":{"text":"max(0, attributes.int.mod + skills.program.level + hacking.deck.bonusAccess)","tree":{"type":"call","fn":"max","args":[{"type":"int","value":0},{"type":"binary","op":"+","left":{"type":"binary","op":"+","left":{"type":"name","path":["attributes","int","mod"]},"right":{"type":"name","path":["skills","program","level"]}},"right":{"type":"name","path":["hacking","deck","bonusAccess"]}}]}},"max(0, effort.mage.max - effort.mage.scene - effort.mage.day)":{"text":"max(0, effort.mage.max - effort.mage.scene - effort.mage.day)","tree":{"type":"call","fn":"max","args":[{"type":"int","value":0},{"type":"binary","op":"-","left":{"type":"binary","op":"-","left":{"type":"name","path":["effort","mage","max"]},"right":{"type":"name","path":["effort","mage","scene"]}},"right":{"type":"name","path":["effort","mage","day"]}}]}},"max(0, effort.summoner.max - effort.summoner.scene - effort.summoner.day)":{"text":"max(0, effort.summoner.max - effort.summoner.scene - effort.summoner.day)","tree":{"type":"call","fn":"max","args":[{"type":"int","value":0},{"type":"binary","op":"-","left":{"type":"binary","op":"-","left":{"type":"name","path":["effort","summoner","max"]},"right":{"type":"name","path":["effort","summoner","scene"]}},"right":{"type":"name","path":["effort","summoner","day"]}}]}},"max(0, flags.credit - flags.cost)":{"text":"max(0, flags.credit - flags.cost)","tree":{"type":"call","fn":"max","args":[{"type":"int","value":0},{"type":"binary","op":"-","left":{"type":"name","path":["flags","credit"]},"right":{"type":"name","path":["flags","cost"]}}]}},"max(0, hacking.access.max - hacking.access.spent)":{"text":"max(0, hacking.access.max - hacking.access.spent)","tree":{"type":"call","fn":"max","args":[{"type":"int","value":0},{"type":"binary","op":"-","left":{"type":"name","path":["hacking","access","max"]},"right":{"type":"name","path":["hacking","access","spent"]}}]}},"max(0, max(steps.damage.total, flags.shock))\n * (has(steps.trauma) && steps.trauma.band == 'traumatic' ? item.traumaRating : 1)":{"text":"max(0, max(steps.damage.total, flags.shock)) * (has(steps.trauma) && steps.trauma.band == 'traumatic' ? item.traumaRating : 1)","tree":{"type":"binary","op":"*","left":{"type":"call","fn":"max","args":[{"type":"int","value":0},{"type":"call","fn":"max","args":[{"type":"name","path":["steps","damage","total"]},{"type":"name","path":["flags","shock"]}]}]},"right":{"type":"conditional","test":{"type":"binary","op":"&&","left":{"type":"call","fn":"has","args":[{"type":"name","path":["steps","trauma"]}]},"right":{"type":"binary","op":"==","left":{"type":"name","path":["steps","trauma","band"]},"right":{"type":"string","value":"traumatic"}}},"then":{"type":"name","path":["item","traumaRating"]},"else":{"type":"int","value":1}}}},"max(0, prior.armor - 2)":{"text":"max(0, prior.armor - 2)","tree":{"type":"call","fn":"max","args":[{"type":"int","value":0},{"type":"binary","op":"-","left":{"type":"name","path":["prior","armor"]},"right":{"type":"int","value":2}}]}},"max(0, prior.cpu - 1)":{"text":"max(0, prior.cpu - 1)","tree":{"type":"call","fn":"max","args":[{"type":"int","value":0},{"type":"binary","op":"-","left":{"type":"name","path":["prior","cpu"]},"right":{"type":"int","value":1}}]}},"max(0, prior.enc - 1)":{"text":"max(0, prior.enc - 1)","tree":{"type":"call","fn":"max","args":[{"type":"int","value":0},{"type":"binary","op":"-","left":{"type":"name","path":["prior","enc"]},"right":{"type":"int","value":1}}]}},"max(0, prior.fittings - 1)":{"text":"max(0, prior.fittings - 1)","tree":{"type":"call","fn":"max","args":[{"type":"int","value":0},{"type":"binary","op":"-","left":{"type":"name","path":["prior","fittings"]},"right":{"type":"int","value":1}}]}},"max(0, prior.heavy - base.heavy)":{"text":"max(0, prior.heavy - base.heavy)","tree":{"type":"call","fn":"max","args":[{"type":"int","value":0},{"type":"binary","op":"-","left":{"type":"name","path":["prior","heavy"]},"right":{"type":"name","path":["base","heavy"]}}]}},"max(0, prior.mass - 2)":{"text":"max(0, prior.mass - 2)","tree":{"type":"call","fn":"max","args":[{"type":"int","value":0},{"type":"binary","op":"-","left":{"type":"name","path":["prior","mass"]},"right":{"type":"int","value":2}}]}},"max(0, prior.mass - ceil(prior.mass * 0.2))":{"text":"max(0, prior.mass - ceil(prior.mass * 0.2))","tree":{"type":"call","fn":"max","args":[{"type":"int","value":0},{"type":"binary","op":"-","left":{"type":"name","path":["prior","mass"]},"right":{"type":"call","fn":"ceil","args":[{"type":"binary","op":"*","left":{"type":"name","path":["prior","mass"]},"right":{"type":"decimal","value":0.2}}]}}]}},"max(0, prior.memory - 2)":{"text":"max(0, prior.memory - 2)","tree":{"type":"call","fn":"max","args":[{"type":"int","value":0},{"type":"binary","op":"-","left":{"type":"name","path":["prior","memory"]},"right":{"type":"int","value":2}}]}},"max(0, prior.move - 5)":{"text":"max(0, prior.move - 5)","tree":{"type":"call","fn":"max","args":[{"type":"int","value":0},{"type":"binary","op":"-","left":{"type":"name","path":["prior","move"]},"right":{"type":"int","value":5}}]}},"max(0, skills.program.level)":{"text":"max(0, skills.program.level)","tree":{"type":"call","fn":"max","args":[{"type":"int","value":0},{"type":"name","path":["skills","program","level"]}]}},"max(0, skills.punch.base)":{"text":"max(0, skills.punch.base)","tree":{"type":"call","fn":"max","args":[{"type":"int","value":0},{"type":"name","path":["skills","punch","base"]}]}},"max(0, skills.shoot.level)":{"text":"max(0, skills.shoot.level)","tree":{"type":"call","fn":"max","args":[{"type":"int","value":0},{"type":"name","path":["skills","shoot","level"]}]}},"max(0, skills.stab.level)":{"text":"max(0, skills.stab.level)","tree":{"type":"call","fn":"max","args":[{"type":"int","value":0},{"type":"name","path":["skills","stab","level"]}]}},"max(0, steps.heal.total)":{"text":"max(0, steps.heal.total)","tree":{"type":"call","fn":"max","args":[{"type":"int","value":0},{"type":"name","path":["steps","heal","total"]}]}},"max(0, strain.cyber - strain.cyberIgnored - strain.maintenanceRelief) + strain.otherPermanent":{"text":"max(0, strain.cyber - strain.cyberIgnored - strain.maintenanceRelief) + strain.otherPermanent","tree":{"type":"binary","op":"+","left":{"type":"call","fn":"max","args":[{"type":"int","value":0},{"type":"binary","op":"-","left":{"type":"binary","op":"-","left":{"type":"name","path":["strain","cyber"]},"right":{"type":"name","path":["strain","cyberIgnored"]}},"right":{"type":"name","path":["strain","maintenanceRelief"]}}]},"right":{"type":"name","path":["strain","otherPermanent"]}}},"max(1, (item.id == @spirits.spirit ? size(picksOf('powers')) : item.powerCount)\n - (self.ritual ? 1 : 0) - max(0, skills.summon.level))":{"text":"max(1, (item.id == @spirits.spirit ? size(picksOf('powers')) : item.powerCount) - (self.ritual ? 1 : 0) - max(0, skills.summon.level))","tree":{"type":"call","fn":"max","args":[{"type":"int","value":1},{"type":"binary","op":"-","left":{"type":"binary","op":"-","left":{"type":"conditional","test":{"type":"binary","op":"==","left":{"type":"name","path":["item","id"]},"right":{"type":"ref","id":"spirits.spirit"}},"then":{"type":"call","fn":"size","args":[{"type":"call","fn":"picksOf","args":[{"type":"string","value":"powers"}]}]},"else":{"type":"name","path":["item","powerCount"]}},"right":{"type":"conditional","test":{"type":"name","path":["self","ritual"]},"then":{"type":"int","value":1},"else":{"type":"int","value":0}}},"right":{"type":"call","fn":"max","args":[{"type":"int","value":0},{"type":"name","path":["skills","summon","level"]}]}}]}},"max(1, prior.hp - ceil(base.hp * 0.2))":{"text":"max(1, prior.hp - ceil(base.hp * 0.2))","tree":{"type":"call","fn":"max","args":[{"type":"int","value":1},{"type":"binary","op":"-","left":{"type":"name","path":["prior","hp"]},"right":{"type":"call","fn":"ceil","args":[{"type":"binary","op":"*","left":{"type":"name","path":["base","hp"]},"right":{"type":"decimal","value":0.2}}]}}]}},"max(1, skills.punch.level, skills.shoot.level, skills.stab.level)":{"text":"max(1, skills.punch.level, skills.shoot.level, skills.stab.level)","tree":{"type":"call","fn":"max","args":[{"type":"int","value":1},{"type":"name","path":["skills","punch","level"]},{"type":"name","path":["skills","shoot","level"]},{"type":"name","path":["skills","stab","level"]}]}},"max(1, steps.hp.total)":{"text":"max(1, steps.hp.total)","tree":{"type":"call","fn":"max","args":[{"type":"int","value":1},{"type":"name","path":["steps","hp","total"]}]}},"max(alienation.permanent, alienation.current)":{"text":"max(alienation.permanent, alienation.current)","tree":{"type":"call","fn":"max","args":[{"type":"name","path":["alienation","permanent"]},{"type":"name","path":["alienation","current"]}]}},"max(steps.hp.total, hp.rolled + 1)":{"text":"max(steps.hp.total, hp.rolled + 1)","tree":{"type":"call","fn":"max","args":[{"type":"name","path":["steps","hp","total"]},{"type":"binary","op":"+","left":{"type":"name","path":["hp","rolled"]},"right":{"type":"int","value":1}}]}},"maxCopies(copy.fields.shielding - copy.state.shieldingUsed,\n copy.type == 'cyberdeck' && copy.equipped)":{"text":"maxCopies(copy.fields.shielding - copy.state.shieldingUsed, copy.type == 'cyberdeck' && copy.equipped)","tree":{"type":"call","fn":"maxCopies","args":[{"type":"binary","op":"-","left":{"type":"name","path":["copy","fields","shielding"]},"right":{"type":"name","path":["copy","state","shieldingUsed"]}},{"type":"binary","op":"&&","left":{"type":"binary","op":"==","left":{"type":"name","path":["copy","type"]},"right":{"type":"string","value":"cyberdeck"}},"right":{"type":"name","path":["copy","equipped"]}}]}},"min(18, prior.ac + 2)":{"text":"min(18, prior.ac + 2)","tree":{"type":"call","fn":"min","args":[{"type":"int","value":18},{"type":"binary","op":"+","left":{"type":"name","path":["prior","ac"]},"right":{"type":"int","value":2}}]}},"min(2, max(0, max(ceil((enc.readied - enc.readiedMax) / 2),\n ceil((enc.stowed - enc.stowedMax) / 4))))":{"text":"min(2, max(0, max(ceil((enc.readied - enc.readiedMax) / 2), ceil((enc.stowed - enc.stowedMax) / 4))))","tree":{"type":"call","fn":"min","args":[{"type":"int","value":2},{"type":"call","fn":"max","args":[{"type":"int","value":0},{"type":"call","fn":"max","args":[{"type":"call","fn":"ceil","args":[{"type":"binary","op":"/","left":{"type":"binary","op":"-","left":{"type":"name","path":["enc","readied"]},"right":{"type":"name","path":["enc","readiedMax"]}},"right":{"type":"int","value":2}}]},{"type":"call","fn":"ceil","args":[{"type":"binary","op":"/","left":{"type":"binary","op":"-","left":{"type":"name","path":["enc","stowed"]},"right":{"type":"name","path":["enc","stowedMax"]}},"right":{"type":"int","value":4}}]}]}]}]}},"min(3 * level - self.bufferUsed, -incoming.amount)":{"text":"min(3 * level - self.bufferUsed, -incoming.amount)","tree":{"type":"call","fn":"min","args":[{"type":"binary","op":"-","left":{"type":"binary","op":"*","left":{"type":"int","value":3},"right":{"type":"name","path":["level"]}},"right":{"type":"name","path":["self","bufferUsed"]}},{"type":"unary","op":"-","operand":{"type":"name","path":["incoming","amount"]}}]}},"min(item.shielding - self.shieldingUsed, -incoming.amount)":{"text":"min(item.shielding - self.shieldingUsed, -incoming.amount)","tree":{"type":"call","fn":"min","args":[{"type":"binary","op":"-","left":{"type":"name","path":["item","shielding"]},"right":{"type":"name","path":["self","shieldingUsed"]}},{"type":"unary","op":"-","operand":{"type":"name","path":["incoming","amount"]}}]}},"min(item.soak - self.soakUsed, -incoming.amount)":{"text":"min(item.soak - self.soakUsed, -incoming.amount)","tree":{"type":"call","fn":"min","args":[{"type":"binary","op":"-","left":{"type":"name","path":["item","soak"]},"right":{"type":"name","path":["self","soakUsed"]}},{"type":"unary","op":"-","operand":{"type":"name","path":["incoming","amount"]}}]}},"minList(flags.totals, x) >= 14 ? 'none'\n : ['str', 'dex', 'con', 'int', 'wis', 'cha'][\n indexOf(flags.totals, minList(flags.totals, x))]":{"text":"minList(flags.totals, x) >= 14 ? 'none' : ['str', 'dex', 'con', 'int', 'wis', 'cha'][indexOf(flags.totals, minList(flags.totals, x))]","tree":{"type":"conditional","test":{"type":"binary","op":">=","left":{"type":"call","fn":"minList","args":[{"type":"name","path":["flags","totals"]},{"type":"name","path":["x"]}]},"right":{"type":"int","value":14}},"then":{"type":"string","value":"none"},"else":{"type":"index","object":{"type":"list","items":[{"type":"string","value":"str"},{"type":"string","value":"dex"},{"type":"string","value":"con"},{"type":"string","value":"int"},{"type":"string","value":"wis"},{"type":"string","value":"cha"}]},"index":{"type":"call","fn":"indexOf","args":[{"type":"name","path":["flags","totals"]},{"type":"call","fn":"minList","args":[{"type":"name","path":["flags","totals"]},{"type":"name","path":["x"]}]}]}}}},"options[0]":{"text":"options[0]","tree":{"type":"index","object":{"type":"name","path":["options"]},"index":{"type":"int","value":0}}},"params.burst && 'burst' in item.tags && self.loaded >= 3":{"text":"params.burst && 'burst' in item.tags && self.loaded >= 3","tree":{"type":"binary","op":"&&","left":{"type":"binary","op":"&&","left":{"type":"name","path":["params","burst"]},"right":{"type":"binary","op":"in","left":{"type":"string","value":"burst"},"right":{"type":"name","path":["item","tags"]}}},"right":{"type":"binary","op":">=","left":{"type":"name","path":["self","loaded"]},"right":{"type":"int","value":3}}}},"params.code == 'any-stat-1' ? 1 : 2":{"text":"params.code == 'any-stat-1' ? 1 : 2","tree":{"type":"conditional","test":{"type":"binary","op":"==","left":{"type":"name","path":["params","code"]},"right":{"type":"string","value":"any-stat-1"}},"then":{"type":"int","value":1},"else":{"type":"int","value":2}}},"params.code == 'physical-2' ? ['str', 'dex', 'con']\n : params.code == 'mental-2' ? ['int', 'wis', 'cha']\n : ['str', 'dex', 'con', 'int', 'wis', 'cha']":{"text":"params.code == 'physical-2' ? ['str', 'dex', 'con'] : params.code == 'mental-2' ? ['int', 'wis', 'cha'] : ['str', 'dex', 'con', 'int', 'wis', 'cha']","tree":{"type":"conditional","test":{"type":"binary","op":"==","left":{"type":"name","path":["params","code"]},"right":{"type":"string","value":"physical-2"}},"then":{"type":"list","items":[{"type":"string","value":"str"},{"type":"string","value":"dex"},{"type":"string","value":"con"}]},"else":{"type":"conditional","test":{"type":"binary","op":"==","left":{"type":"name","path":["params","code"]},"right":{"type":"string","value":"mental-2"}},"then":{"type":"list","items":[{"type":"string","value":"int"},{"type":"string","value":"wis"},{"type":"string","value":"cha"}]},"else":{"type":"list","items":[{"type":"string","value":"str"},{"type":"string","value":"dex"},{"type":"string","value":"con"},{"type":"string","value":"int"},{"type":"string","value":"wis"},{"type":"string","value":"cha"}]}}}},"params.crown":{"text":"params.crown","tree":{"type":"name","path":["params","crown"]}},"params.healerSkill":{"text":"params.healerSkill","tree":{"type":"name","path":["params","healerSkill"]}},"params.kind == 'drone'":{"text":"params.kind == 'drone'","tree":{"type":"binary","op":"==","left":{"type":"name","path":["params","kind"]},"right":{"type":"string","value":"drone"}}},"params.kind == 'vehicle'":{"text":"params.kind == 'vehicle'","tree":{"type":"binary","op":"==","left":{"type":"name","path":["params","kind"]},"right":{"type":"string","value":"vehicle"}}},"params.modifier":{"text":"params.modifier","tree":{"type":"name","path":["params","modifier"]}},"params.overcast":{"text":"params.overcast","tree":{"type":"name","path":["params","overcast"]}},"params.overcast ? 'overcast' : 'cast'":{"text":"params.overcast ? 'overcast' : 'cast'","tree":{"type":"conditional","test":{"type":"name","path":["params","overcast"]},"then":{"type":"string","value":"overcast"},"else":{"type":"string","value":"cast"}}},"params.overcast ? steps.overcasting.band : 'none'":{"text":"params.overcast ? steps.overcasting.band : 'none'","tree":{"type":"conditional","test":{"type":"name","path":["params","overcast"]},"then":{"type":"name","path":["steps","overcasting","band"]},"else":{"type":"string","value":"none"}}},"params.random":{"text":"params.random","tree":{"type":"name","path":["params","random"]}},"params.random ? 'roll' : 'pick'":{"text":"params.random ? 'roll' : 'pick'","tree":{"type":"conditional","test":{"type":"name","path":["params","random"]},"then":{"type":"string","value":"roll"},"else":{"type":"string","value":"pick"}}},"params.skill.id":{"text":"params.skill.id","tree":{"type":"name","path":["params","skill","id"]}},"params.skill.tags":{"text":"params.skill.tags","tree":{"type":"name","path":["params","skill","tags"]}},"params.wireless":{"text":"params.wireless","tree":{"type":"name","path":["params","wireless"]}},"picked.id":{"text":"picked.id","tree":{"type":"name","path":["picked","id"]}},"picked.id == 'acquaintances'":{"text":"picked.id == 'acquaintances'","tree":{"type":"binary","op":"==","left":{"type":"name","path":["picked","id"]},"right":{"type":"string","value":"acquaintances"}}},"picked.id == 'friend'":{"text":"picked.id == 'friend'","tree":{"type":"binary","op":"==","left":{"type":"name","path":["picked","id"]},"right":{"type":"string","value":"friend"}}},"picked.id == 'take'":{"text":"picked.id == 'take'","tree":{"type":"binary","op":"==","left":{"type":"name","path":["picked","id"]},"right":{"type":"string","value":"take"}}},"picks == 0":{"text":"picks == 0","tree":{"type":"binary","op":"==","left":{"type":"name","path":["picks"]},"right":{"type":"int","value":0}}},"prior.ac + 2":{"text":"prior.ac + 2","tree":{"type":"binary","op":"+","left":{"type":"name","path":["prior","ac"]},"right":{"type":"int","value":2}}},"prior.armor + 3":{"text":"prior.armor + 3","tree":{"type":"binary","op":"+","left":{"type":"name","path":["prior","armor"]},"right":{"type":"int","value":3}}},"prior.attackBonus + 1":{"text":"prior.attackBonus + 1","tree":{"type":"binary","op":"+","left":{"type":"name","path":["prior","attackBonus"]},"right":{"type":"int","value":1}}},"prior.attackBonus + floor(level / 3)":{"text":"prior.attackBonus + floor(level / 3)","tree":{"type":"binary","op":"+","left":{"type":"name","path":["prior","attackBonus"]},"right":{"type":"call","fn":"floor","args":[{"type":"binary","op":"/","left":{"type":"name","path":["level"]},"right":{"type":"int","value":3}}]}}},"prior.baseAc + 2":{"text":"prior.baseAc + 2","tree":{"type":"binary","op":"+","left":{"type":"name","path":["prior","baseAc"]},"right":{"type":"int","value":2}}},"prior.bonusAccess + 1":{"text":"prior.bonusAccess + 1","tree":{"type":"binary","op":"+","left":{"type":"name","path":["prior","bonusAccess"]},"right":{"type":"int","value":1}}},"prior.cost + 1000":{"text":"prior.cost + 1000","tree":{"type":"binary","op":"+","left":{"type":"name","path":["prior","cost"]},"right":{"type":"int","value":1000}}},"prior.cost + 10000":{"text":"prior.cost + 10000","tree":{"type":"binary","op":"+","left":{"type":"name","path":["prior","cost"]},"right":{"type":"int","value":10000}}},"prior.cost + 250":{"text":"prior.cost + 250","tree":{"type":"binary","op":"+","left":{"type":"name","path":["prior","cost"]},"right":{"type":"int","value":250}}},"prior.cost + 2500":{"text":"prior.cost + 2500","tree":{"type":"binary","op":"+","left":{"type":"name","path":["prior","cost"]},"right":{"type":"int","value":2500}}},"prior.cost + 500":{"text":"prior.cost + 500","tree":{"type":"binary","op":"+","left":{"type":"name","path":["prior","cost"]},"right":{"type":"int","value":500}}},"prior.cost + 5000":{"text":"prior.cost + 5000","tree":{"type":"binary","op":"+","left":{"type":"name","path":["prior","cost"]},"right":{"type":"int","value":5000}}},"prior.cost + 8000":{"text":"prior.cost + 8000","tree":{"type":"binary","op":"+","left":{"type":"name","path":["prior","cost"]},"right":{"type":"int","value":8000}}},"prior.cost + floor(base.cost * 0.1)":{"text":"prior.cost + floor(base.cost * 0.1)","tree":{"type":"binary","op":"+","left":{"type":"name","path":["prior","cost"]},"right":{"type":"call","fn":"floor","args":[{"type":"binary","op":"*","left":{"type":"name","path":["base","cost"]},"right":{"type":"decimal","value":0.1}}]}}},"prior.cost + floor(base.cost * 0.2)":{"text":"prior.cost + floor(base.cost * 0.2)","tree":{"type":"binary","op":"+","left":{"type":"name","path":["prior","cost"]},"right":{"type":"call","fn":"floor","args":[{"type":"binary","op":"*","left":{"type":"name","path":["base","cost"]},"right":{"type":"decimal","value":0.2}}]}}},"prior.cost + floor(base.cost * 0.25)":{"text":"prior.cost + floor(base.cost * 0.25)","tree":{"type":"binary","op":"+","left":{"type":"name","path":["prior","cost"]},"right":{"type":"call","fn":"floor","args":[{"type":"binary","op":"*","left":{"type":"name","path":["base","cost"]},"right":{"type":"decimal","value":0.25}}]}}},"prior.cost + floor(base.cost * 0.3)":{"text":"prior.cost + floor(base.cost * 0.3)","tree":{"type":"binary","op":"+","left":{"type":"name","path":["prior","cost"]},"right":{"type":"call","fn":"floor","args":[{"type":"binary","op":"*","left":{"type":"name","path":["base","cost"]},"right":{"type":"decimal","value":0.3}}]}}},"prior.cost + floor(base.cost * 0.5)":{"text":"prior.cost + floor(base.cost * 0.5)","tree":{"type":"binary","op":"+","left":{"type":"name","path":["prior","cost"]},"right":{"type":"call","fn":"floor","args":[{"type":"binary","op":"*","left":{"type":"name","path":["base","cost"]},"right":{"type":"decimal","value":0.5}}]}}},"prior.cpu + 1":{"text":"prior.cpu + 1","tree":{"type":"binary","op":"+","left":{"type":"name","path":["prior","cpu"]},"right":{"type":"int","value":1}}},"prior.crew + (item.size == 'small' ? 1 : item.size == 'medium' ? 2 : 4)":{"text":"prior.crew + (item.size == 'small' ? 1 : item.size == 'medium' ? 2 : 4)","tree":{"type":"binary","op":"+","left":{"type":"name","path":["prior","crew"]},"right":{"type":"conditional","test":{"type":"binary","op":"==","left":{"type":"name","path":["item","size"]},"right":{"type":"string","value":"small"}},"then":{"type":"int","value":1},"else":{"type":"conditional","test":{"type":"binary","op":"==","left":{"type":"name","path":["item","size"]},"right":{"type":"string","value":"medium"}},"then":{"type":"int","value":2},"else":{"type":"int","value":4}}}}},"prior.damageBonus + 1":{"text":"prior.damageBonus + 1","tree":{"type":"binary","op":"+","left":{"type":"name","path":["prior","damageBonus"]},"right":{"type":"int","value":1}}},"prior.damageBonus + 2":{"text":"prior.damageBonus + 2","tree":{"type":"binary","op":"+","left":{"type":"name","path":["prior","damageBonus"]},"right":{"type":"int","value":2}}},"prior.damageBonus + floor(level / 3)":{"text":"prior.damageBonus + floor(level / 3)","tree":{"type":"binary","op":"+","left":{"type":"name","path":["prior","damageBonus"]},"right":{"type":"call","fn":"floor","args":[{"type":"binary","op":"/","left":{"type":"name","path":["level"]},"right":{"type":"int","value":3}}]}}},"prior.damageBonus - 2":{"text":"prior.damageBonus - 2","tree":{"type":"binary","op":"-","left":{"type":"name","path":["prior","damageBonus"]},"right":{"type":"int","value":2}}},"prior.enc + 1":{"text":"prior.enc + 1","tree":{"type":"binary","op":"+","left":{"type":"name","path":["prior","enc"]},"right":{"type":"int","value":1}}},"prior.fittings + 1":{"text":"prior.fittings + 1","tree":{"type":"binary","op":"+","left":{"type":"name","path":["prior","fittings"]},"right":{"type":"int","value":1}}},"prior.fittingsUsed + 1":{"text":"prior.fittingsUsed + 1","tree":{"type":"binary","op":"+","left":{"type":"name","path":["prior","fittingsUsed"]},"right":{"type":"int","value":1}}},"prior.fittingsUsed + 2":{"text":"prior.fittingsUsed + 2","tree":{"type":"binary","op":"+","left":{"type":"name","path":["prior","fittingsUsed"]},"right":{"type":"int","value":2}}},"prior.hardpoints + 1":{"text":"prior.hardpoints + 1","tree":{"type":"binary","op":"+","left":{"type":"name","path":["prior","hardpoints"]},"right":{"type":"int","value":1}}},"prior.heavy + 1":{"text":"prior.heavy + 1","tree":{"type":"binary","op":"+","left":{"type":"name","path":["prior","heavy"]},"right":{"type":"int","value":1}}},"prior.hp + ceil(base.hp * 0.25)":{"text":"prior.hp + ceil(base.hp * 0.25)","tree":{"type":"binary","op":"+","left":{"type":"name","path":["prior","hp"]},"right":{"type":"call","fn":"ceil","args":[{"type":"binary","op":"*","left":{"type":"name","path":["base","hp"]},"right":{"type":"decimal","value":0.25}}]}}},"prior.hp + floor(base.hp * 0.25)":{"text":"prior.hp + floor(base.hp * 0.25)","tree":{"type":"binary","op":"+","left":{"type":"name","path":["prior","hp"]},"right":{"type":"call","fn":"floor","args":[{"type":"binary","op":"*","left":{"type":"name","path":["base","hp"]},"right":{"type":"decimal","value":0.25}}]}}},"prior.magazine * 2":{"text":"prior.magazine * 2","tree":{"type":"binary","op":"*","left":{"type":"name","path":["prior","magazine"]},"right":{"type":"int","value":2}}},"prior.mass + (item.size == 'small' ? 2 : item.size == 'medium' ? 3 : 4)":{"text":"prior.mass + (item.size == 'small' ? 2 : item.size == 'medium' ? 3 : 4)","tree":{"type":"binary","op":"+","left":{"type":"name","path":["prior","mass"]},"right":{"type":"conditional","test":{"type":"binary","op":"==","left":{"type":"name","path":["item","size"]},"right":{"type":"string","value":"small"}},"then":{"type":"int","value":2},"else":{"type":"conditional","test":{"type":"binary","op":"==","left":{"type":"name","path":["item","size"]},"right":{"type":"string","value":"medium"}},"then":{"type":"int","value":3},"else":{"type":"int","value":4}}}}},"prior.massUsed + 1":{"text":"prior.massUsed + 1","tree":{"type":"binary","op":"+","left":{"type":"name","path":["prior","massUsed"]},"right":{"type":"int","value":1}}},"prior.massUsed + 2":{"text":"prior.massUsed + 2","tree":{"type":"binary","op":"+","left":{"type":"name","path":["prior","massUsed"]},"right":{"type":"int","value":2}}},"prior.massUsed + 3":{"text":"prior.massUsed + 3","tree":{"type":"binary","op":"+","left":{"type":"name","path":["prior","massUsed"]},"right":{"type":"int","value":3}}},"prior.massUsed + 4":{"text":"prior.massUsed + 4","tree":{"type":"binary","op":"+","left":{"type":"name","path":["prior","massUsed"]},"right":{"type":"int","value":4}}},"prior.massUsed + 5":{"text":"prior.massUsed + 5","tree":{"type":"binary","op":"+","left":{"type":"name","path":["prior","massUsed"]},"right":{"type":"int","value":5}}},"prior.massUsed + 6":{"text":"prior.massUsed + 6","tree":{"type":"binary","op":"+","left":{"type":"name","path":["prior","massUsed"]},"right":{"type":"int","value":6}}},"prior.meleeAc + 1":{"text":"prior.meleeAc + 1","tree":{"type":"binary","op":"+","left":{"type":"name","path":["prior","meleeAc"]},"right":{"type":"int","value":1}}},"prior.meleeAc + 2":{"text":"prior.meleeAc + 2","tree":{"type":"binary","op":"+","left":{"type":"name","path":["prior","meleeAc"]},"right":{"type":"int","value":2}}},"prior.meleeAc - 2":{"text":"prior.meleeAc - 2","tree":{"type":"binary","op":"-","left":{"type":"name","path":["prior","meleeAc"]},"right":{"type":"int","value":2}}},"prior.memory + 4":{"text":"prior.memory + 4","tree":{"type":"binary","op":"+","left":{"type":"name","path":["prior","memory"]},"right":{"type":"int","value":4}}},"prior.move + 10":{"text":"prior.move + 10","tree":{"type":"binary","op":"+","left":{"type":"name","path":["prior","move"]},"right":{"type":"int","value":10}}},"prior.power + (item.size == 'small' ? 2 : item.size == 'medium' ? 3 : 4)":{"text":"prior.power + (item.size == 'small' ? 2 : item.size == 'medium' ? 3 : 4)","tree":{"type":"binary","op":"+","left":{"type":"name","path":["prior","power"]},"right":{"type":"conditional","test":{"type":"binary","op":"==","left":{"type":"name","path":["item","size"]},"right":{"type":"string","value":"small"}},"then":{"type":"int","value":2},"else":{"type":"conditional","test":{"type":"binary","op":"==","left":{"type":"name","path":["item","size"]},"right":{"type":"string","value":"medium"}},"then":{"type":"int","value":3},"else":{"type":"int","value":4}}}}},"prior.power + 2":{"text":"prior.power + 2","tree":{"type":"binary","op":"+","left":{"type":"name","path":["prior","power"]},"right":{"type":"int","value":2}}},"prior.power + 4":{"text":"prior.power + 4","tree":{"type":"binary","op":"+","left":{"type":"name","path":["prior","power"]},"right":{"type":"int","value":4}}},"prior.power + 8":{"text":"prior.power + 8","tree":{"type":"binary","op":"+","left":{"type":"name","path":["prior","power"]},"right":{"type":"int","value":8}}},"prior.powerUsed + 1":{"text":"prior.powerUsed + 1","tree":{"type":"binary","op":"+","left":{"type":"name","path":["prior","powerUsed"]},"right":{"type":"int","value":1}}},"prior.powerUsed + 2":{"text":"prior.powerUsed + 2","tree":{"type":"binary","op":"+","left":{"type":"name","path":["prior","powerUsed"]},"right":{"type":"int","value":2}}},"prior.rangedAc + 1":{"text":"prior.rangedAc + 1","tree":{"type":"binary","op":"+","left":{"type":"name","path":["prior","rangedAc"]},"right":{"type":"int","value":1}}},"prior.rangedAc + 2":{"text":"prior.rangedAc + 2","tree":{"type":"binary","op":"+","left":{"type":"name","path":["prior","rangedAc"]},"right":{"type":"int","value":2}}},"prior.rangedAc - 2":{"text":"prior.rangedAc - 2","tree":{"type":"binary","op":"-","left":{"type":"name","path":["prior","rangedAc"]},"right":{"type":"int","value":2}}},"prior.shielding + 5":{"text":"prior.shielding + 5","tree":{"type":"binary","op":"+","left":{"type":"name","path":["prior","shielding"]},"right":{"type":"int","value":5}}},"prior.shockBonus + 1":{"text":"prior.shockBonus + 1","tree":{"type":"binary","op":"+","left":{"type":"name","path":["prior","shockBonus"]},"right":{"type":"int","value":1}}},"prior.shockBonus + 2":{"text":"prior.shockBonus + 2","tree":{"type":"binary","op":"+","left":{"type":"name","path":["prior","shockBonus"]},"right":{"type":"int","value":2}}},"prior.shockBonus + floor(level / 3)":{"text":"prior.shockBonus + floor(level / 3)","tree":{"type":"binary","op":"+","left":{"type":"name","path":["prior","shockBonus"]},"right":{"type":"call","fn":"floor","args":[{"type":"binary","op":"/","left":{"type":"name","path":["level"]},"right":{"type":"int","value":3}}]}}},"prior.soak + 3":{"text":"prior.soak + 3","tree":{"type":"binary","op":"+","left":{"type":"name","path":["prior","soak"]},"right":{"type":"int","value":3}}},"prior.soak + 5":{"text":"prior.soak + 5","tree":{"type":"binary","op":"+","left":{"type":"name","path":["prior","soak"]},"right":{"type":"int","value":5}}},"prior.speed + 1":{"text":"prior.speed + 1","tree":{"type":"binary","op":"+","left":{"type":"name","path":["prior","speed"]},"right":{"type":"int","value":1}}},"prior.strain + 0.5":{"text":"prior.strain + 0.5","tree":{"type":"binary","op":"+","left":{"type":"name","path":["prior","strain"]},"right":{"type":"decimal","value":0.5}}},"prior.strain >= 2 ? prior.strain - 1 : prior.strain":{"text":"prior.strain >= 2 ? prior.strain - 1 : prior.strain","tree":{"type":"conditional","test":{"type":"binary","op":">=","left":{"type":"name","path":["prior","strain"]},"right":{"type":"int","value":2}},"then":{"type":"binary","op":"-","left":{"type":"name","path":["prior","strain"]},"right":{"type":"int","value":1}},"else":{"type":"name","path":["prior","strain"]}}},"prior.traumaMod + 1":{"text":"prior.traumaMod + 1","tree":{"type":"binary","op":"+","left":{"type":"name","path":["prior","traumaMod"]},"right":{"type":"int","value":1}}},"roll.kept[0] == 1":{"text":"roll.kept[0] == 1","tree":{"type":"binary","op":"==","left":{"type":"index","object":{"type":"name","path":["roll","kept"]},"index":{"type":"int","value":0}},"right":{"type":"int","value":1}}},"roll.kept[0] == 20 || roll.total >= flags.target":{"text":"roll.kept[0] == 20 || roll.total >= flags.target","tree":{"type":"binary","op":"||","left":{"type":"binary","op":"==","left":{"type":"index","object":{"type":"name","path":["roll","kept"]},"index":{"type":"int","value":0}},"right":{"type":"int","value":20}},"right":{"type":"binary","op":">=","left":{"type":"name","path":["roll","total"]},"right":{"type":"name","path":["flags","target"]}}}},"roll.total < 0":{"text":"roll.total < 0","tree":{"type":"binary","op":"<","left":{"type":"name","path":["roll","total"]},"right":{"type":"int","value":0}}},"roll.total <= 1":{"text":"roll.total <= 1","tree":{"type":"binary","op":"<=","left":{"type":"name","path":["roll","total"]},"right":{"type":"int","value":1}}},"roll.total <= 15":{"text":"roll.total <= 15","tree":{"type":"binary","op":"<=","left":{"type":"name","path":["roll","total"]},"right":{"type":"int","value":15}}},"roll.total <= 19":{"text":"roll.total <= 19","tree":{"type":"binary","op":"<=","left":{"type":"name","path":["roll","total"]},"right":{"type":"int","value":19}}},"roll.total <= 4":{"text":"roll.total <= 4","tree":{"type":"binary","op":"<=","left":{"type":"name","path":["roll","total"]},"right":{"type":"int","value":4}}},"roll.total <= 8":{"text":"roll.total <= 8","tree":{"type":"binary","op":"<=","left":{"type":"name","path":["roll","total"]},"right":{"type":"int","value":8}}},"roll.total == 0":{"text":"roll.total == 0","tree":{"type":"binary","op":"==","left":{"type":"name","path":["roll","total"]},"right":{"type":"int","value":0}}},"roll.total == 1":{"text":"roll.total == 1","tree":{"type":"binary","op":"==","left":{"type":"name","path":["roll","total"]},"right":{"type":"int","value":1}}},"roll.total == 10":{"text":"roll.total == 10","tree":{"type":"binary","op":"==","left":{"type":"name","path":["roll","total"]},"right":{"type":"int","value":10}}},"roll.total == 2":{"text":"roll.total == 2","tree":{"type":"binary","op":"==","left":{"type":"name","path":["roll","total"]},"right":{"type":"int","value":2}}},"roll.total == 3":{"text":"roll.total == 3","tree":{"type":"binary","op":"==","left":{"type":"name","path":["roll","total"]},"right":{"type":"int","value":3}}},"roll.total == 4":{"text":"roll.total == 4","tree":{"type":"binary","op":"==","left":{"type":"name","path":["roll","total"]},"right":{"type":"int","value":4}}},"roll.total == 5":{"text":"roll.total == 5","tree":{"type":"binary","op":"==","left":{"type":"name","path":["roll","total"]},"right":{"type":"int","value":5}}},"roll.total == 6":{"text":"roll.total == 6","tree":{"type":"binary","op":"==","left":{"type":"name","path":["roll","total"]},"right":{"type":"int","value":6}}},"roll.total == 7":{"text":"roll.total == 7","tree":{"type":"binary","op":"==","left":{"type":"name","path":["roll","total"]},"right":{"type":"int","value":7}}},"roll.total == 8":{"text":"roll.total == 8","tree":{"type":"binary","op":"==","left":{"type":"name","path":["roll","total"]},"right":{"type":"int","value":8}}},"roll.total == 9":{"text":"roll.total == 9","tree":{"type":"binary","op":"==","left":{"type":"name","path":["roll","total"]},"right":{"type":"int","value":9}}},"roll.total >= flags.ac":{"text":"roll.total >= flags.ac","tree":{"type":"binary","op":">=","left":{"type":"name","path":["roll","total"]},"right":{"type":"name","path":["flags","ac"]}}},"roll.total >= flags.dc":{"text":"roll.total >= flags.dc","tree":{"type":"binary","op":">=","left":{"type":"name","path":["roll","total"]},"right":{"type":"name","path":["flags","dc"]}}},"roll.total >= flags.traumaTarget":{"text":"roll.total >= flags.traumaTarget","tree":{"type":"binary","op":">=","left":{"type":"name","path":["roll","total"]},"right":{"type":"name","path":["flags","traumaTarget"]}}},"self.bond == 'friend' ? 0 : 1":{"text":"self.bond == 'friend' ? 0 : 1","tree":{"type":"conditional","test":{"type":"binary","op":"==","left":{"type":"name","path":["self","bond"]},"right":{"type":"string","value":"friend"}},"then":{"type":"int","value":0},"else":{"type":"int","value":1}}},"self.cost + (self.ritual ? 0 : params.earlier)":{"text":"self.cost + (self.ritual ? 0 : params.earlier)","tree":{"type":"binary","op":"+","left":{"type":"name","path":["self","cost"]},"right":{"type":"conditional","test":{"type":"name","path":["self","ritual"]},"then":{"type":"int","value":0},"else":{"type":"name","path":["params","earlier"]}}}},"self.equipped":{"text":"self.equipped","tree":{"type":"name","path":["self","equipped"]}},"self.equipped && cyber.plugJack >= (pick.value in ['drive', 'exert', 'perform', 'punch', 'shoot', 'sneak', 'stab'] ? 2 : 1)":{"text":"self.equipped && cyber.plugJack >= (pick.value in ['drive', 'exert', 'perform', 'punch', 'shoot', 'sneak', 'stab'] ? 2 : 1)","tree":{"type":"binary","op":"&&","left":{"type":"name","path":["self","equipped"]},"right":{"type":"binary","op":">=","left":{"type":"name","path":["cyber","plugJack"]},"right":{"type":"conditional","test":{"type":"binary","op":"in","left":{"type":"name","path":["pick","value"]},"right":{"type":"list","items":[{"type":"string","value":"drive"},{"type":"string","value":"exert"},{"type":"string","value":"perform"},{"type":"string","value":"punch"},{"type":"string","value":"shoot"},{"type":"string","value":"sneak"},{"type":"string","value":"stab"}]}},"then":{"type":"int","value":2},"else":{"type":"int","value":1}}}}},"self.equipped && cyber.plugJack >= (pick.value in ['drive', 'exert', 'perform', 'punch', 'shoot', 'sneak', 'stab'] ? 2 : 1) && cyber.plugWiring":{"text":"self.equipped && cyber.plugJack >= (pick.value in ['drive', 'exert', 'perform', 'punch', 'shoot', 'sneak', 'stab'] ? 2 : 1) && cyber.plugWiring","tree":{"type":"binary","op":"&&","left":{"type":"binary","op":"&&","left":{"type":"name","path":["self","equipped"]},"right":{"type":"binary","op":">=","left":{"type":"name","path":["cyber","plugJack"]},"right":{"type":"conditional","test":{"type":"binary","op":"in","left":{"type":"name","path":["pick","value"]},"right":{"type":"list","items":[{"type":"string","value":"drive"},{"type":"string","value":"exert"},{"type":"string","value":"perform"},{"type":"string","value":"punch"},{"type":"string","value":"shoot"},{"type":"string","value":"sneak"},{"type":"string","value":"stab"}]}},"then":{"type":"int","value":2},"else":{"type":"int","value":1}}}},"right":{"type":"name","path":["cyber","plugWiring"]}}},"self.equipped && item.kind != 'shield'":{"text":"self.equipped && item.kind != 'shield'","tree":{"type":"binary","op":"&&","left":{"type":"name","path":["self","equipped"]},"right":{"type":"binary","op":"!=","left":{"type":"name","path":["item","kind"]},"right":{"type":"string","value":"shield"}}}},"self.equipped && item.kind == 'shield'":{"text":"self.equipped && item.kind == 'shield'","tree":{"type":"binary","op":"&&","left":{"type":"name","path":["self","equipped"]},"right":{"type":"binary","op":"==","left":{"type":"name","path":["item","kind"]},"right":{"type":"string","value":"shield"}}}},"self.equipped && item.shielding > self.shieldingUsed && incoming.amount < 0":{"text":"self.equipped && item.shielding > self.shieldingUsed && incoming.amount < 0","tree":{"type":"binary","op":"&&","left":{"type":"binary","op":"&&","left":{"type":"name","path":["self","equipped"]},"right":{"type":"binary","op":">","left":{"type":"name","path":["item","shielding"]},"right":{"type":"name","path":["self","shieldingUsed"]}}},"right":{"type":"binary","op":"<","left":{"type":"name","path":["incoming","amount"]},"right":{"type":"int","value":0}}}},"self.equipped && item.soak > self.soakUsed && incoming.amount < 0\n && !('damage.cyberspace' in incoming.tags) && !('damage.direct' in incoming.tags)":{"text":"self.equipped && item.soak > self.soakUsed && incoming.amount < 0 && !('damage.cyberspace' in incoming.tags) && !('damage.direct' in incoming.tags)","tree":{"type":"binary","op":"&&","left":{"type":"binary","op":"&&","left":{"type":"binary","op":"&&","left":{"type":"binary","op":"&&","left":{"type":"name","path":["self","equipped"]},"right":{"type":"binary","op":">","left":{"type":"name","path":["item","soak"]},"right":{"type":"name","path":["self","soakUsed"]}}},"right":{"type":"binary","op":"<","left":{"type":"name","path":["incoming","amount"]},"right":{"type":"int","value":0}}},"right":{"type":"unary","op":"!","operand":{"type":"binary","op":"in","left":{"type":"string","value":"damage.cyberspace"},"right":{"type":"name","path":["incoming","tags"]}}}},"right":{"type":"unary","op":"!","operand":{"type":"binary","op":"in","left":{"type":"string","value":"damage.direct"},"right":{"type":"name","path":["incoming","tags"]}}}}},"self.equipped && item.traumaMod != 0":{"text":"self.equipped && item.traumaMod != 0","tree":{"type":"binary","op":"&&","left":{"type":"name","path":["self","equipped"]},"right":{"type":"binary","op":"!=","left":{"type":"name","path":["item","traumaMod"]},"right":{"type":"int","value":0}}}},"self.level < item.maxLevel":{"text":"self.level < item.maxLevel","tree":{"type":"binary","op":"<","left":{"type":"name","path":["self","level"]},"right":{"type":"name","path":["item","maxLevel"]}}},"self.level >= 2":{"text":"self.level >= 2","tree":{"type":"binary","op":">=","left":{"type":"name","path":["self","level"]},"right":{"type":"int","value":2}}},"self.level >= 2 ? 2 : 1":{"text":"self.level >= 2 ? 2 : 1","tree":{"type":"conditional","test":{"type":"binary","op":">=","left":{"type":"name","path":["self","level"]},"right":{"type":"int","value":2}},"then":{"type":"int","value":2},"else":{"type":"int","value":1}}},"self.prepared ? 0 : 1":{"text":"self.prepared ? 0 : 1","tree":{"type":"conditional","test":{"type":"name","path":["self","prepared"]},"then":{"type":"int","value":0},"else":{"type":"int","value":1}}},"self.quantity > 0":{"text":"self.quantity > 0","tree":{"type":"binary","op":">","left":{"type":"name","path":["self","quantity"]},"right":{"type":"int","value":0}}},"self.shieldingUsed > 0":{"text":"self.shieldingUsed > 0","tree":{"type":"binary","op":">","left":{"type":"name","path":["self","shieldingUsed"]},"right":{"type":"int","value":0}}},"self.soakUsed > 0":{"text":"self.soakUsed > 0","tree":{"type":"binary","op":">","left":{"type":"name","path":["self","soakUsed"]},"right":{"type":"int","value":0}}},"situational.bonusRoll != 'none' && arts.bonusRolls.used < arts.bonusRolls.max\n && (situational.bonusRoll == 'hit' || flags.hit)":{"text":"situational.bonusRoll != 'none' && arts.bonusRolls.used < arts.bonusRolls.max && (situational.bonusRoll == 'hit' || flags.hit)","tree":{"type":"binary","op":"&&","left":{"type":"binary","op":"&&","left":{"type":"binary","op":"!=","left":{"type":"name","path":["situational","bonusRoll"]},"right":{"type":"string","value":"none"}},"right":{"type":"binary","op":"<","left":{"type":"name","path":["arts","bonusRolls","used"]},"right":{"type":"name","path":["arts","bonusRolls","max"]}}},"right":{"type":"binary","op":"||","left":{"type":"binary","op":"==","left":{"type":"name","path":["situational","bonusRoll"]},"right":{"type":"string","value":"hit"}},"right":{"type":"name","path":["flags","hit"]}}}},"situational.bonusRoll == 'damage' && arts.bonusRolls.used < arts.bonusRolls.max":{"text":"situational.bonusRoll == 'damage' && arts.bonusRolls.used < arts.bonusRolls.max","tree":{"type":"binary","op":"&&","left":{"type":"binary","op":"==","left":{"type":"name","path":["situational","bonusRoll"]},"right":{"type":"string","value":"damage"}},"right":{"type":"binary","op":"<","left":{"type":"name","path":["arts","bonusRolls","used"]},"right":{"type":"name","path":["arts","bonusRolls","max"]}}}},"situational.bonusRoll == 'hit' && arts.bonusRolls.used < arts.bonusRolls.max":{"text":"situational.bonusRoll == 'hit' && arts.bonusRolls.used < arts.bonusRolls.max","tree":{"type":"binary","op":"&&","left":{"type":"binary","op":"==","left":{"type":"name","path":["situational","bonusRoll"]},"right":{"type":"string","value":"hit"}},"right":{"type":"binary","op":"<","left":{"type":"name","path":["arts","bonusRolls","used"]},"right":{"type":"name","path":["arts","bonusRolls","max"]}}}},"situational.versusMagic":{"text":"situational.versusMagic","tree":{"type":"name","path":["situational","versusMagic"]}},"size(flags.best) > 0 && flags.best[0] == 'cha' ? flags.amount : 0":{"text":"size(flags.best) > 0 && flags.best[0] == 'cha' ? flags.amount : 0","tree":{"type":"conditional","test":{"type":"binary","op":"&&","left":{"type":"binary","op":">","left":{"type":"call","fn":"size","args":[{"type":"name","path":["flags","best"]}]},"right":{"type":"int","value":0}},"right":{"type":"binary","op":"==","left":{"type":"index","object":{"type":"name","path":["flags","best"]},"index":{"type":"int","value":0}},"right":{"type":"string","value":"cha"}}},"then":{"type":"name","path":["flags","amount"]},"else":{"type":"int","value":0}}},"size(flags.best) > 0 && flags.best[0] == 'con' ? flags.amount : 0":{"text":"size(flags.best) > 0 && flags.best[0] == 'con' ? flags.amount : 0","tree":{"type":"conditional","test":{"type":"binary","op":"&&","left":{"type":"binary","op":">","left":{"type":"call","fn":"size","args":[{"type":"name","path":["flags","best"]}]},"right":{"type":"int","value":0}},"right":{"type":"binary","op":"==","left":{"type":"index","object":{"type":"name","path":["flags","best"]},"index":{"type":"int","value":0}},"right":{"type":"string","value":"con"}}},"then":{"type":"name","path":["flags","amount"]},"else":{"type":"int","value":0}}},"size(flags.best) > 0 && flags.best[0] == 'dex' ? flags.amount : 0":{"text":"size(flags.best) > 0 && flags.best[0] == 'dex' ? flags.amount : 0","tree":{"type":"conditional","test":{"type":"binary","op":"&&","left":{"type":"binary","op":">","left":{"type":"call","fn":"size","args":[{"type":"name","path":["flags","best"]}]},"right":{"type":"int","value":0}},"right":{"type":"binary","op":"==","left":{"type":"index","object":{"type":"name","path":["flags","best"]},"index":{"type":"int","value":0}},"right":{"type":"string","value":"dex"}}},"then":{"type":"name","path":["flags","amount"]},"else":{"type":"int","value":0}}},"size(flags.best) > 0 && flags.best[0] == 'int' ? flags.amount : 0":{"text":"size(flags.best) > 0 && flags.best[0] == 'int' ? flags.amount : 0","tree":{"type":"conditional","test":{"type":"binary","op":"&&","left":{"type":"binary","op":">","left":{"type":"call","fn":"size","args":[{"type":"name","path":["flags","best"]}]},"right":{"type":"int","value":0}},"right":{"type":"binary","op":"==","left":{"type":"index","object":{"type":"name","path":["flags","best"]},"index":{"type":"int","value":0}},"right":{"type":"string","value":"int"}}},"then":{"type":"name","path":["flags","amount"]},"else":{"type":"int","value":0}}},"size(flags.best) > 0 && flags.best[0] == 'str' ? flags.amount : 0":{"text":"size(flags.best) > 0 && flags.best[0] == 'str' ? flags.amount : 0","tree":{"type":"conditional","test":{"type":"binary","op":"&&","left":{"type":"binary","op":">","left":{"type":"call","fn":"size","args":[{"type":"name","path":["flags","best"]}]},"right":{"type":"int","value":0}},"right":{"type":"binary","op":"==","left":{"type":"index","object":{"type":"name","path":["flags","best"]},"index":{"type":"int","value":0}},"right":{"type":"string","value":"str"}}},"then":{"type":"name","path":["flags","amount"]},"else":{"type":"int","value":0}}},"size(flags.best) > 0 && flags.best[0] == 'wis' ? flags.amount : 0":{"text":"size(flags.best) > 0 && flags.best[0] == 'wis' ? flags.amount : 0","tree":{"type":"conditional","test":{"type":"binary","op":"&&","left":{"type":"binary","op":">","left":{"type":"call","fn":"size","args":[{"type":"name","path":["flags","best"]}]},"right":{"type":"int","value":0}},"right":{"type":"binary","op":"==","left":{"type":"index","object":{"type":"name","path":["flags","best"]},"index":{"type":"int","value":0}},"right":{"type":"string","value":"wis"}}},"then":{"type":"name","path":["flags","amount"]},"else":{"type":"int","value":0}}},"size(flags.candidates) == 0":{"text":"size(flags.candidates) == 0","tree":{"type":"binary","op":"==","left":{"type":"call","fn":"size","args":[{"type":"name","path":["flags","candidates"]}]},"right":{"type":"int","value":0}}},"size(flags.candidates) > 1":{"text":"size(flags.candidates) > 1","tree":{"type":"binary","op":">","left":{"type":"call","fn":"size","args":[{"type":"name","path":["flags","candidates"]}]},"right":{"type":"int","value":1}}},"size(participants.target) > 0 ? participants.target[0].ac.melee\n : has(params.targetAc) ? params.targetAc : -1":{"text":"size(participants.target) > 0 ? participants.target[0].ac.melee : has(params.targetAc) ? params.targetAc : -1","tree":{"type":"conditional","test":{"type":"binary","op":">","left":{"type":"call","fn":"size","args":[{"type":"name","path":["participants","target"]}]},"right":{"type":"int","value":0}},"then":{"type":"member","object":{"type":"member","object":{"type":"index","object":{"type":"name","path":["participants","target"]},"index":{"type":"int","value":0}},"name":"ac"},"name":"melee"},"else":{"type":"conditional","test":{"type":"call","fn":"has","args":[{"type":"name","path":["params","targetAc"]}]},"then":{"type":"name","path":["params","targetAc"]},"else":{"type":"unary","op":"-","operand":{"type":"int","value":1}}}}},"size(participants.target) > 0 ? participants.target[0].trauma.target\n : has(params.targetTrauma) ? params.targetTrauma : 6":{"text":"size(participants.target) > 0 ? participants.target[0].trauma.target : has(params.targetTrauma) ? params.targetTrauma : 6","tree":{"type":"conditional","test":{"type":"binary","op":">","left":{"type":"call","fn":"size","args":[{"type":"name","path":["participants","target"]}]},"right":{"type":"int","value":0}},"then":{"type":"member","object":{"type":"member","object":{"type":"index","object":{"type":"name","path":["participants","target"]},"index":{"type":"int","value":0}},"name":"trauma"},"name":"target"},"else":{"type":"conditional","test":{"type":"call","fn":"has","args":[{"type":"name","path":["params","targetTrauma"]}]},"then":{"type":"name","path":["params","targetTrauma"]},"else":{"type":"int","value":6}}}},"size(picksOf('edge-1')) == 0 || size(picksOf('edge-2')) == 0\n || (level >= 5 && size(picksOf('edge-5')) == 0)\n || (underdog && size(picksOf('underdog-edge')) == 0)":{"text":"size(picksOf('edge-1')) == 0 || size(picksOf('edge-2')) == 0 || level >= 5 && size(picksOf('edge-5')) == 0 || underdog && size(picksOf('underdog-edge')) == 0","tree":{"type":"binary","op":"||","left":{"type":"binary","op":"||","left":{"type":"binary","op":"||","left":{"type":"binary","op":"==","left":{"type":"call","fn":"size","args":[{"type":"call","fn":"picksOf","args":[{"type":"string","value":"edge-1"}]}]},"right":{"type":"int","value":0}},"right":{"type":"binary","op":"==","left":{"type":"call","fn":"size","args":[{"type":"call","fn":"picksOf","args":[{"type":"string","value":"edge-2"}]}]},"right":{"type":"int","value":0}}},"right":{"type":"binary","op":"&&","left":{"type":"binary","op":">=","left":{"type":"name","path":["level"]},"right":{"type":"int","value":5}},"right":{"type":"binary","op":"==","left":{"type":"call","fn":"size","args":[{"type":"call","fn":"picksOf","args":[{"type":"string","value":"edge-5"}]}]},"right":{"type":"int","value":0}}}},"right":{"type":"binary","op":"&&","left":{"type":"name","path":["underdog"]},"right":{"type":"binary","op":"==","left":{"type":"call","fn":"size","args":[{"type":"call","fn":"picksOf","args":[{"type":"string","value":"underdog-edge"}]}]},"right":{"type":"int","value":0}}}}},"size(steps.edge.item.startingCyber) > 0\n && strain.total + steps.edge.item.startingCyberStrain <= strain.max && !magic.graced":{"text":"size(steps.edge.item.startingCyber) > 0 && strain.total + steps.edge.item.startingCyberStrain <= strain.max && !magic.graced","tree":{"type":"binary","op":"&&","left":{"type":"binary","op":"&&","left":{"type":"binary","op":">","left":{"type":"call","fn":"size","args":[{"type":"name","path":["steps","edge","item","startingCyber"]}]},"right":{"type":"int","value":0}},"right":{"type":"binary","op":"<=","left":{"type":"binary","op":"+","left":{"type":"name","path":["strain","total"]},"right":{"type":"name","path":["steps","edge","item","startingCyberStrain"]}},"right":{"type":"name","path":["strain","max"]}}},"right":{"type":"unary","op":"!","operand":{"type":"name","path":["magic","graced"]}}}},"size(steps.edge.item.startingItems) > 0 || steps.edge.item.friendContacts > 0":{"text":"size(steps.edge.item.startingItems) > 0 || steps.edge.item.friendContacts > 0","tree":{"type":"binary","op":"||","left":{"type":"binary","op":">","left":{"type":"call","fn":"size","args":[{"type":"name","path":["steps","edge","item","startingItems"]}]},"right":{"type":"int","value":0}},"right":{"type":"binary","op":">","left":{"type":"name","path":["steps","edge","item","friendContacts"]},"right":{"type":"int","value":0}}}},"skillPoints.perLevel":{"text":"skillPoints.perLevel","tree":{"type":"name","path":["skillPoints","perLevel"]}},"skillPoints.unspent >= advancement.attributeBoosts + 1\n && level >= [1, 1, 3, 6, 9][advancement.attributeBoosts]\n && fieldOf('attributes.{attribute}.base', params.attribute) < 18":{"text":"skillPoints.unspent >= advancement.attributeBoosts + 1 && level >= [1, 1, 3, 6, 9][advancement.attributeBoosts] && fieldOf('attributes.{attribute}.base', params.attribute) < 18","tree":{"type":"binary","op":"&&","left":{"type":"binary","op":"&&","left":{"type":"binary","op":">=","left":{"type":"name","path":["skillPoints","unspent"]},"right":{"type":"binary","op":"+","left":{"type":"name","path":["advancement","attributeBoosts"]},"right":{"type":"int","value":1}}},"right":{"type":"binary","op":">=","left":{"type":"name","path":["level"]},"right":{"type":"index","object":{"type":"list","items":[{"type":"int","value":1},{"type":"int","value":1},{"type":"int","value":3},{"type":"int","value":6},{"type":"int","value":9}]},"index":{"type":"name","path":["advancement","attributeBoosts"]}}}},"right":{"type":"binary","op":"<","left":{"type":"call","fn":"fieldOf","args":[{"type":"string","value":"attributes.{attribute}.base"},{"type":"name","path":["params","attribute"]}]},"right":{"type":"int","value":18}}}},"skills.administer.base":{"text":"skills.administer.base","tree":{"type":"name","path":["skills","administer","base"]}},"skills.administer.credit > 0":{"text":"skills.administer.credit > 0","tree":{"type":"binary","op":">","left":{"type":"name","path":["skills","administer","credit"]},"right":{"type":"int","value":0}}},"skills.cast.base":{"text":"skills.cast.base","tree":{"type":"name","path":["skills","cast","base"]}},"skills.cast.credit > 0":{"text":"skills.cast.credit > 0","tree":{"type":"binary","op":">","left":{"type":"name","path":["skills","cast","credit"]},"right":{"type":"int","value":0}}},"skills.connect.base":{"text":"skills.connect.base","tree":{"type":"name","path":["skills","connect","base"]}},"skills.connect.credit > 0":{"text":"skills.connect.credit > 0","tree":{"type":"binary","op":">","left":{"type":"name","path":["skills","connect","credit"]},"right":{"type":"int","value":0}}},"skills.drive.base":{"text":"skills.drive.base","tree":{"type":"name","path":["skills","drive","base"]}},"skills.drive.credit > 0":{"text":"skills.drive.credit > 0","tree":{"type":"binary","op":">","left":{"type":"name","path":["skills","drive","credit"]},"right":{"type":"int","value":0}}},"skills.exert.base":{"text":"skills.exert.base","tree":{"type":"name","path":["skills","exert","base"]}},"skills.exert.credit > 0":{"text":"skills.exert.credit > 0","tree":{"type":"binary","op":">","left":{"type":"name","path":["skills","exert","credit"]},"right":{"type":"int","value":0}}},"skills.fix.base":{"text":"skills.fix.base","tree":{"type":"name","path":["skills","fix","base"]}},"skills.fix.credit > 0":{"text":"skills.fix.credit > 0","tree":{"type":"binary","op":">","left":{"type":"name","path":["skills","fix","credit"]},"right":{"type":"int","value":0}}},"skills.heal.base":{"text":"skills.heal.base","tree":{"type":"name","path":["skills","heal","base"]}},"skills.heal.credit > 0":{"text":"skills.heal.credit > 0","tree":{"type":"binary","op":">","left":{"type":"name","path":["skills","heal","credit"]},"right":{"type":"int","value":0}}},"skills.know.base":{"text":"skills.know.base","tree":{"type":"name","path":["skills","know","base"]}},"skills.know.credit > 0":{"text":"skills.know.credit > 0","tree":{"type":"binary","op":">","left":{"type":"name","path":["skills","know","credit"]},"right":{"type":"int","value":0}}},"skills.lead.base":{"text":"skills.lead.base","tree":{"type":"name","path":["skills","lead","base"]}},"skills.lead.credit > 0":{"text":"skills.lead.credit > 0","tree":{"type":"binary","op":">","left":{"type":"name","path":["skills","lead","credit"]},"right":{"type":"int","value":0}}},"skills.notice.base":{"text":"skills.notice.base","tree":{"type":"name","path":["skills","notice","base"]}},"skills.notice.credit > 0":{"text":"skills.notice.credit > 0","tree":{"type":"binary","op":">","left":{"type":"name","path":["skills","notice","credit"]},"right":{"type":"int","value":0}}},"skills.perform.base":{"text":"skills.perform.base","tree":{"type":"name","path":["skills","perform","base"]}},"skills.perform.credit > 0":{"text":"skills.perform.credit > 0","tree":{"type":"binary","op":">","left":{"type":"name","path":["skills","perform","credit"]},"right":{"type":"int","value":0}}},"skills.program.base":{"text":"skills.program.base","tree":{"type":"name","path":["skills","program","base"]}},"skills.program.base >= 0 || hacking.memory.max > 0 || hacking.cpu > 0":{"text":"skills.program.base >= 0 || hacking.memory.max > 0 || hacking.cpu > 0","tree":{"type":"binary","op":"||","left":{"type":"binary","op":"||","left":{"type":"binary","op":">=","left":{"type":"name","path":["skills","program","base"]},"right":{"type":"int","value":0}},"right":{"type":"binary","op":">","left":{"type":"name","path":["hacking","memory","max"]},"right":{"type":"int","value":0}}},"right":{"type":"binary","op":">","left":{"type":"name","path":["hacking","cpu"]},"right":{"type":"int","value":0}}}},"skills.program.credit > 0":{"text":"skills.program.credit > 0","tree":{"type":"binary","op":">","left":{"type":"name","path":["skills","program","credit"]},"right":{"type":"int","value":0}}},"skills.program.level >= 1 ? 2 * skills.program.level : 0":{"text":"skills.program.level >= 1 ? 2 * skills.program.level : 0","tree":{"type":"conditional","test":{"type":"binary","op":">=","left":{"type":"name","path":["skills","program","level"]},"right":{"type":"int","value":1}},"then":{"type":"binary","op":"*","left":{"type":"int","value":2},"right":{"type":"name","path":["skills","program","level"]}},"else":{"type":"int","value":0}}},"skills.punch.base":{"text":"skills.punch.base","tree":{"type":"name","path":["skills","punch","base"]}},"skills.punch.credit > 0":{"text":"skills.punch.credit > 0","tree":{"type":"binary","op":">","left":{"type":"name","path":["skills","punch","credit"]},"right":{"type":"int","value":0}}},"skills.punch.level":{"text":"skills.punch.level","tree":{"type":"name","path":["skills","punch","level"]}},"skills.shoot.base":{"text":"skills.shoot.base","tree":{"type":"name","path":["skills","shoot","base"]}},"skills.shoot.credit > 0":{"text":"skills.shoot.credit > 0","tree":{"type":"binary","op":">","left":{"type":"name","path":["skills","shoot","credit"]},"right":{"type":"int","value":0}}},"skills.sneak.base":{"text":"skills.sneak.base","tree":{"type":"name","path":["skills","sneak","base"]}},"skills.sneak.credit > 0":{"text":"skills.sneak.credit > 0","tree":{"type":"binary","op":">","left":{"type":"name","path":["skills","sneak","credit"]},"right":{"type":"int","value":0}}},"skills.stab.base":{"text":"skills.stab.base","tree":{"type":"name","path":["skills","stab","base"]}},"skills.stab.credit > 0":{"text":"skills.stab.credit > 0","tree":{"type":"binary","op":">","left":{"type":"name","path":["skills","stab","credit"]},"right":{"type":"int","value":0}}},"skills.summon.base":{"text":"skills.summon.base","tree":{"type":"name","path":["skills","summon","base"]}},"skills.summon.credit > 0":{"text":"skills.summon.credit > 0","tree":{"type":"binary","op":">","left":{"type":"name","path":["skills","summon","credit"]},"right":{"type":"int","value":0}}},"skills.survive.base":{"text":"skills.survive.base","tree":{"type":"name","path":["skills","survive","base"]}},"skills.survive.credit > 0":{"text":"skills.survive.credit > 0","tree":{"type":"binary","op":">","left":{"type":"name","path":["skills","survive","credit"]},"right":{"type":"int","value":0}}},"skills.talk.base":{"text":"skills.talk.base","tree":{"type":"name","path":["skills","talk","base"]}},"skills.talk.credit > 0":{"text":"skills.talk.credit > 0","tree":{"type":"binary","op":">","left":{"type":"name","path":["skills","talk","credit"]},"right":{"type":"int","value":0}}},"skills.trade.base":{"text":"skills.trade.base","tree":{"type":"name","path":["skills","trade","base"]}},"skills.trade.credit > 0":{"text":"skills.trade.credit > 0","tree":{"type":"binary","op":">","left":{"type":"name","path":["skills","trade","credit"]},"right":{"type":"int","value":0}}},"skills.work.base":{"text":"skills.work.base","tree":{"type":"name","path":["skills","work","base"]}},"skills.work.credit > 0":{"text":"skills.work.credit > 0","tree":{"type":"binary","op":">","left":{"type":"name","path":["skills","work","credit"]},"right":{"type":"int","value":0}}},"slot < 5 || level >= 5":{"text":"slot < 5 || level >= 5","tree":{"type":"binary","op":"||","left":{"type":"binary","op":"<","left":{"type":"name","path":["slot"]},"right":{"type":"int","value":5}},"right":{"type":"binary","op":">=","left":{"type":"name","path":["level"]},"right":{"type":"int","value":5}}}},"soak.max > 0":{"text":"soak.max > 0","tree":{"type":"binary","op":">","left":{"type":"name","path":["soak","max"]},"right":{"type":"int","value":0}}},"sortList(filterList(flags.group,\n fieldOf('attributes.{attribute}.base', x) <= 18 - flags.amount),\n -fieldOf('attributes.{attribute}.base', x))":{"text":"sortList(filterList(flags.group, fieldOf('attributes.{attribute}.base', x) <= 18 - flags.amount), -fieldOf('attributes.{attribute}.base', x))","tree":{"type":"call","fn":"sortList","args":[{"type":"call","fn":"filterList","args":[{"type":"name","path":["flags","group"]},{"type":"binary","op":"<=","left":{"type":"call","fn":"fieldOf","args":[{"type":"string","value":"attributes.{attribute}.base"},{"type":"name","path":["x"]}]},"right":{"type":"binary","op":"-","left":{"type":"int","value":18},"right":{"type":"name","path":["flags","amount"]}}}]},{"type":"unary","op":"-","operand":{"type":"call","fn":"fieldOf","args":[{"type":"string","value":"attributes.{attribute}.base"},{"type":"name","path":["x"]}]}}]}},"spells.preparedMax":{"text":"spells.preparedMax","tree":{"type":"name","path":["spells","preparedMax"]}},"steps.add.added[0]":{"text":"steps.add.added[0]","tree":{"type":"index","object":{"type":"name","path":["steps","add","added"]},"index":{"type":"int","value":0}}},"steps.attribute.picked":{"text":"steps.attribute.picked","tree":{"type":"name","path":["steps","attribute","picked"]}},"steps.background.item.freeSkill":{"text":"steps.background.item.freeSkill","tree":{"type":"name","path":["steps","background","item","freeSkill"]}},"steps.cha.total < 14":{"text":"steps.cha.total < 14","tree":{"type":"binary","op":"<","left":{"type":"name","path":["steps","cha","total"]},"right":{"type":"int","value":14}}},"steps.check.total":{"text":"steps.check.total","tree":{"type":"name","path":["steps","check","total"]}},"steps.con.total < 14":{"text":"steps.con.total < 14","tree":{"type":"binary","op":"<","left":{"type":"name","path":["steps","con","total"]},"right":{"type":"int","value":14}}},"steps.dex.total < 14":{"text":"steps.dex.total < 14","tree":{"type":"binary","op":"<","left":{"type":"name","path":["steps","dex","total"]},"right":{"type":"int","value":14}}},"steps.edge.item.asksAttribute":{"text":"steps.edge.item.asksAttribute","tree":{"type":"name","path":["steps","edge","item","asksAttribute"]}},"steps.edge.item.bonusSkill":{"text":"steps.edge.item.bonusSkill","tree":{"type":"name","path":["steps","edge","item","bonusSkill"]}},"steps.edge.item.buysArts":{"text":"steps.edge.item.buysArts","tree":{"type":"name","path":["steps","edge","item","buysArts"]}},"steps.edge.item.cyberBudget > 0":{"text":"steps.edge.item.cyberBudget > 0","tree":{"type":"binary","op":">","left":{"type":"name","path":["steps","edge","item","cyberBudget"]},"right":{"type":"int","value":0}}},"steps.edge.item.extraFocus":{"text":"steps.edge.item.extraFocus","tree":{"type":"name","path":["steps","edge","item","extraFocus"]}},"steps.edge.item.friendContacts > 0":{"text":"steps.edge.item.friendContacts > 0","tree":{"type":"binary","op":">","left":{"type":"name","path":["steps","edge","item","friendContacts"]},"right":{"type":"int","value":0}}},"steps.edge.item.programElements":{"text":"steps.edge.item.programElements","tree":{"type":"name","path":["steps","edge","item","programElements"]}},"steps.edge.item.programElements > 0":{"text":"steps.edge.item.programElements > 0","tree":{"type":"binary","op":">","left":{"type":"name","path":["steps","edge","item","programElements"]},"right":{"type":"int","value":0}}},"steps.edge.item.spells":{"text":"steps.edge.item.spells","tree":{"type":"name","path":["steps","edge","item","spells"]}},"steps.edge.item.spells > 0":{"text":"steps.edge.item.spells > 0","tree":{"type":"binary","op":">","left":{"type":"name","path":["steps","edge","item","spells"]},"right":{"type":"int","value":0}}},"steps.edge.item.startingCyber":{"text":"steps.edge.item.startingCyber","tree":{"type":"name","path":["steps","edge","item","startingCyber"]}},"steps.edge.item.startingItems":{"text":"steps.edge.item.startingItems","tree":{"type":"name","path":["steps","edge","item","startingItems"]}},"steps.focus.item.bonusSkill == 'noncombat' ? steps.specialty.picked : steps.focus.item.bonusSkill":{"text":"steps.focus.item.bonusSkill == 'noncombat' ? steps.specialty.picked : steps.focus.item.bonusSkill","tree":{"type":"conditional","test":{"type":"binary","op":"==","left":{"type":"name","path":["steps","focus","item","bonusSkill"]},"right":{"type":"string","value":"noncombat"}},"then":{"type":"name","path":["steps","specialty","picked"]},"else":{"type":"name","path":["steps","focus","item","bonusSkill"]}}},"steps.focus.item.bonusSkill2":{"text":"steps.focus.item.bonusSkill2","tree":{"type":"name","path":["steps","focus","item","bonusSkill2"]}},"steps.focus.item.gearBudget":{"text":"steps.focus.item.gearBudget","tree":{"type":"name","path":["steps","focus","item","gearBudget"]}},"steps.focus.item.startingCyber":{"text":"steps.focus.item.startingCyber","tree":{"type":"name","path":["steps","focus","item","startingCyber"]}},"steps.focus.item.startingItems":{"text":"steps.focus.item.startingItems","tree":{"type":"name","path":["steps","focus","item","startingItems"]}},"steps.focus.picked":{"text":"steps.focus.picked","tree":{"type":"name","path":["steps","focus","picked"]}},"steps.freeItemKind.picked == 'armor'":{"text":"steps.freeItemKind.picked == 'armor'","tree":{"type":"binary","op":"==","left":{"type":"name","path":["steps","freeItemKind","picked"]},"right":{"type":"string","value":"armor"}}},"steps.freeItemKind.picked == 'cyberdeck'":{"text":"steps.freeItemKind.picked == 'cyberdeck'","tree":{"type":"binary","op":"==","left":{"type":"name","path":["steps","freeItemKind","picked"]},"right":{"type":"string","value":"cyberdeck"}}},"steps.freeItemKind.picked == 'drone'":{"text":"steps.freeItemKind.picked == 'drone'","tree":{"type":"binary","op":"==","left":{"type":"name","path":["steps","freeItemKind","picked"]},"right":{"type":"string","value":"drone"}}},"steps.freeItemKind.picked == 'gear'":{"text":"steps.freeItemKind.picked == 'gear'","tree":{"type":"binary","op":"==","left":{"type":"name","path":["steps","freeItemKind","picked"]},"right":{"type":"string","value":"gear"}}},"steps.freeItemKind.picked == 'weapon'":{"text":"steps.freeItemKind.picked == 'weapon'","tree":{"type":"binary","op":"==","left":{"type":"name","path":["steps","freeItemKind","picked"]},"right":{"type":"string","value":"weapon"}}},"steps.heal.total":{"text":"steps.heal.total","tree":{"type":"name","path":["steps","heal","total"]}},"steps.int.total < 14":{"text":"steps.int.total < 14","tree":{"type":"binary","op":"<","left":{"type":"name","path":["steps","int","total"]},"right":{"type":"int","value":14}}},"steps.method.picked == 'array'":{"text":"steps.method.picked == 'array'","tree":{"type":"binary","op":"==","left":{"type":"name","path":["steps","method","picked"]},"right":{"type":"string","value":"array"}}},"steps.method.picked == 'roll'":{"text":"steps.method.picked == 'roll'","tree":{"type":"binary","op":"==","left":{"type":"name","path":["steps","method","picked"]},"right":{"type":"string","value":"roll"}}},"steps.overcasting.band == 'mortal'":{"text":"steps.overcasting.band == 'mortal'","tree":{"type":"binary","op":"==","left":{"type":"name","path":["steps","overcasting","band"]},"right":{"type":"string","value":"mortal"}}},"steps.overcasting.band == 'unconscious' ? 4 : steps.overcasting.band == 'stunned' ? 2 : 1":{"text":"steps.overcasting.band == 'unconscious' ? 4 : steps.overcasting.band == 'stunned' ? 2 : 1","tree":{"type":"conditional","test":{"type":"binary","op":"==","left":{"type":"name","path":["steps","overcasting","band"]},"right":{"type":"string","value":"unconscious"}},"then":{"type":"int","value":4},"else":{"type":"conditional","test":{"type":"binary","op":"==","left":{"type":"name","path":["steps","overcasting","band"]},"right":{"type":"string","value":"stunned"}},"then":{"type":"int","value":2},"else":{"type":"int","value":1}}}},"steps.pick1.picked":{"text":"steps.pick1.picked","tree":{"type":"name","path":["steps","pick1","picked"]}},"steps.pick2.picked":{"text":"steps.pick2.picked","tree":{"type":"name","path":["steps","pick2","picked"]}},"steps.raised.item.levelTwoSkill":{"text":"steps.raised.item.levelTwoSkill","tree":{"type":"name","path":["steps","raised","item","levelTwoSkill"]}},"steps.roll.band":{"text":"steps.roll.band","tree":{"type":"name","path":["steps","roll","band"]}},"steps.roll.total":{"text":"steps.roll.total","tree":{"type":"name","path":["steps","roll","total"]}},"steps.save.band":{"text":"steps.save.band","tree":{"type":"name","path":["steps","save","band"]}},"steps.save.total":{"text":"steps.save.total","tree":{"type":"name","path":["steps","save","total"]}},"steps.skillMethod.picked == 'pick'":{"text":"steps.skillMethod.picked == 'pick'","tree":{"type":"binary","op":"==","left":{"type":"name","path":["steps","skillMethod","picked"]},"right":{"type":"string","value":"pick"}}},"steps.skillMethod.picked == 'roll'":{"text":"steps.skillMethod.picked == 'roll'","tree":{"type":"binary","op":"==","left":{"type":"name","path":["steps","skillMethod","picked"]},"right":{"type":"string","value":"roll"}}},"steps.skillMethod.picked == 'roll' && !(flags.entry in ['any-stat-1', 'physical-2', 'mental-2'])":{"text":"steps.skillMethod.picked == 'roll' && !(flags.entry in ['any-stat-1', 'physical-2', 'mental-2'])","tree":{"type":"binary","op":"&&","left":{"type":"binary","op":"==","left":{"type":"name","path":["steps","skillMethod","picked"]},"right":{"type":"string","value":"roll"}},"right":{"type":"unary","op":"!","operand":{"type":"binary","op":"in","left":{"type":"name","path":["flags","entry"]},"right":{"type":"list","items":[{"type":"string","value":"any-stat-1"},{"type":"string","value":"physical-2"},{"type":"string","value":"mental-2"}]}}}}},"steps.skillMethod.picked == 'roll' && flags.entry in ['any-stat-1', 'physical-2', 'mental-2']":{"text":"steps.skillMethod.picked == 'roll' && flags.entry in ['any-stat-1', 'physical-2', 'mental-2']","tree":{"type":"binary","op":"&&","left":{"type":"binary","op":"==","left":{"type":"name","path":["steps","skillMethod","picked"]},"right":{"type":"string","value":"roll"}},"right":{"type":"binary","op":"in","left":{"type":"name","path":["flags","entry"]},"right":{"type":"list","items":[{"type":"string","value":"any-stat-1"},{"type":"string","value":"physical-2"},{"type":"string","value":"mental-2"}]}}}},"steps.specialty.picked":{"text":"steps.specialty.picked","tree":{"type":"name","path":["steps","specialty","picked"]}},"steps.str.total < 14":{"text":"steps.str.total < 14","tree":{"type":"binary","op":"<","left":{"type":"name","path":["steps","str","total"]},"right":{"type":"int","value":14}}},"steps.substitute.picked == 'cha' ? 14 : steps.cha.total":{"text":"steps.substitute.picked == 'cha' ? 14 : steps.cha.total","tree":{"type":"conditional","test":{"type":"binary","op":"==","left":{"type":"name","path":["steps","substitute","picked"]},"right":{"type":"string","value":"cha"}},"then":{"type":"int","value":14},"else":{"type":"name","path":["steps","cha","total"]}}},"steps.substitute.picked == 'con' ? 14 : steps.con.total":{"text":"steps.substitute.picked == 'con' ? 14 : steps.con.total","tree":{"type":"conditional","test":{"type":"binary","op":"==","left":{"type":"name","path":["steps","substitute","picked"]},"right":{"type":"string","value":"con"}},"then":{"type":"int","value":14},"else":{"type":"name","path":["steps","con","total"]}}},"steps.substitute.picked == 'dex' ? 14 : steps.dex.total":{"text":"steps.substitute.picked == 'dex' ? 14 : steps.dex.total","tree":{"type":"conditional","test":{"type":"binary","op":"==","left":{"type":"name","path":["steps","substitute","picked"]},"right":{"type":"string","value":"dex"}},"then":{"type":"int","value":14},"else":{"type":"name","path":["steps","dex","total"]}}},"steps.substitute.picked == 'int' ? 14 : steps.int.total":{"text":"steps.substitute.picked == 'int' ? 14 : steps.int.total","tree":{"type":"conditional","test":{"type":"binary","op":"==","left":{"type":"name","path":["steps","substitute","picked"]},"right":{"type":"string","value":"int"}},"then":{"type":"int","value":14},"else":{"type":"name","path":["steps","int","total"]}}},"steps.substitute.picked == 'str' ? 14 : steps.str.total":{"text":"steps.substitute.picked == 'str' ? 14 : steps.str.total","tree":{"type":"conditional","test":{"type":"binary","op":"==","left":{"type":"name","path":["steps","substitute","picked"]},"right":{"type":"string","value":"str"}},"then":{"type":"int","value":14},"else":{"type":"name","path":["steps","str","total"]}}},"steps.substitute.picked == 'wis' ? 14 : steps.wis.total":{"text":"steps.substitute.picked == 'wis' ? 14 : steps.wis.total","tree":{"type":"conditional","test":{"type":"binary","op":"==","left":{"type":"name","path":["steps","substitute","picked"]},"right":{"type":"string","value":"wis"}},"then":{"type":"int","value":14},"else":{"type":"name","path":["steps","wis","total"]}}},"steps.table1.picked == 'growth' ? 1d6 : 1d8":{"text":"steps.table1.picked == 'growth' ? 1d6 : 1d8","tree":{"type":"conditional","test":{"type":"binary","op":"==","left":{"type":"name","path":["steps","table1","picked"]},"right":{"type":"string","value":"growth"}},"then":{"type":"dice","count":1,"sides":6,"modifiers":[]},"else":{"type":"dice","count":1,"sides":8,"modifiers":[]}}},"steps.table1.picked == 'growth' ? flags.growth[steps.roll1.total - 1]\n : flags.learning[steps.roll1.total - 1]":{"text":"steps.table1.picked == 'growth' ? flags.growth[steps.roll1.total - 1] : flags.learning[steps.roll1.total - 1]","tree":{"type":"conditional","test":{"type":"binary","op":"==","left":{"type":"name","path":["steps","table1","picked"]},"right":{"type":"string","value":"growth"}},"then":{"type":"index","object":{"type":"name","path":["flags","growth"]},"index":{"type":"binary","op":"-","left":{"type":"name","path":["steps","roll1","total"]},"right":{"type":"int","value":1}}},"else":{"type":"index","object":{"type":"name","path":["flags","learning"]},"index":{"type":"binary","op":"-","left":{"type":"name","path":["steps","roll1","total"]},"right":{"type":"int","value":1}}}}},"steps.table2.picked == 'growth' ? 1d6 : 1d8":{"text":"steps.table2.picked == 'growth' ? 1d6 : 1d8","tree":{"type":"conditional","test":{"type":"binary","op":"==","left":{"type":"name","path":["steps","table2","picked"]},"right":{"type":"string","value":"growth"}},"then":{"type":"dice","count":1,"sides":6,"modifiers":[]},"else":{"type":"dice","count":1,"sides":8,"modifiers":[]}}},"steps.table2.picked == 'growth' ? flags.growth[steps.roll2.total - 1]\n : flags.learning[steps.roll2.total - 1]":{"text":"steps.table2.picked == 'growth' ? flags.growth[steps.roll2.total - 1] : flags.learning[steps.roll2.total - 1]","tree":{"type":"conditional","test":{"type":"binary","op":"==","left":{"type":"name","path":["steps","table2","picked"]},"right":{"type":"string","value":"growth"}},"then":{"type":"index","object":{"type":"name","path":["flags","growth"]},"index":{"type":"binary","op":"-","left":{"type":"name","path":["steps","roll2","total"]},"right":{"type":"int","value":1}}},"else":{"type":"index","object":{"type":"name","path":["flags","learning"]},"index":{"type":"binary","op":"-","left":{"type":"name","path":["steps","roll2","total"]},"right":{"type":"int","value":1}}}}},"steps.table3.picked == 'growth' ? 1d6 : 1d8":{"text":"steps.table3.picked == 'growth' ? 1d6 : 1d8","tree":{"type":"conditional","test":{"type":"binary","op":"==","left":{"type":"name","path":["steps","table3","picked"]},"right":{"type":"string","value":"growth"}},"then":{"type":"dice","count":1,"sides":6,"modifiers":[]},"else":{"type":"dice","count":1,"sides":8,"modifiers":[]}}},"steps.table3.picked == 'growth' ? flags.growth[steps.roll3.total - 1]\n : flags.learning[steps.roll3.total - 1]":{"text":"steps.table3.picked == 'growth' ? flags.growth[steps.roll3.total - 1] : flags.learning[steps.roll3.total - 1]","tree":{"type":"conditional","test":{"type":"binary","op":"==","left":{"type":"name","path":["steps","table3","picked"]},"right":{"type":"string","value":"growth"}},"then":{"type":"index","object":{"type":"name","path":["flags","growth"]},"index":{"type":"binary","op":"-","left":{"type":"name","path":["steps","roll3","total"]},"right":{"type":"int","value":1}}},"else":{"type":"index","object":{"type":"name","path":["flags","learning"]},"index":{"type":"binary","op":"-","left":{"type":"name","path":["steps","roll3","total"]},"right":{"type":"int","value":1}}}}},"steps.wis.total < 14":{"text":"steps.wis.total < 14","tree":{"type":"binary","op":"<","left":{"type":"name","path":["steps","wis","total"]},"right":{"type":"int","value":14}}},"strain.constitution + lifestyle.strain":{"text":"strain.constitution + lifestyle.strain","tree":{"type":"binary","op":"+","left":{"type":"name","path":["strain","constitution"]},"right":{"type":"name","path":["lifestyle","strain"]}}},"strain.cyberIgnored > 0":{"text":"strain.cyberIgnored > 0","tree":{"type":"binary","op":">","left":{"type":"name","path":["strain","cyberIgnored"]},"right":{"type":"int","value":0}}},"strain.max":{"text":"strain.max","tree":{"type":"name","path":["strain","max"]}},"strain.permanent + strain.temporary":{"text":"strain.permanent + strain.temporary","tree":{"type":"binary","op":"+","left":{"type":"name","path":["strain","permanent"]},"right":{"type":"name","path":["strain","temporary"]}}},"strain.temporary > 0":{"text":"strain.temporary > 0","tree":{"type":"binary","op":">","left":{"type":"name","path":["strain","temporary"]},"right":{"type":"int","value":0}}},"strain.total + 1 <= strain.max":{"text":"strain.total + 1 <= strain.max","tree":{"type":"binary","op":"<=","left":{"type":"binary","op":"+","left":{"type":"name","path":["strain","total"]},"right":{"type":"int","value":1}},"right":{"type":"name","path":["strain","max"]}}},"sumCopies(ceil(copy.fields.strain\n * ((copy.fields.eyeMod && cyber.eyes) || (copy.fields.earMod && cyber.ears) ? 0.5 : 1))\n + (copy.fields.category == 'nerve' ? 2 : 0), copy.type == 'cyberware')":{"text":"sumCopies(ceil(copy.fields.strain * (copy.fields.eyeMod && cyber.eyes || copy.fields.earMod && cyber.ears ? 0.5 : 1)) + (copy.fields.category == 'nerve' ? 2 : 0), copy.type == 'cyberware')","tree":{"type":"call","fn":"sumCopies","args":[{"type":"binary","op":"+","left":{"type":"call","fn":"ceil","args":[{"type":"binary","op":"*","left":{"type":"name","path":["copy","fields","strain"]},"right":{"type":"conditional","test":{"type":"binary","op":"||","left":{"type":"binary","op":"&&","left":{"type":"name","path":["copy","fields","eyeMod"]},"right":{"type":"name","path":["cyber","eyes"]}},"right":{"type":"binary","op":"&&","left":{"type":"name","path":["copy","fields","earMod"]},"right":{"type":"name","path":["cyber","ears"]}}},"then":{"type":"decimal","value":0.5},"else":{"type":"int","value":1}}}]},"right":{"type":"conditional","test":{"type":"binary","op":"==","left":{"type":"name","path":["copy","fields","category"]},"right":{"type":"string","value":"nerve"}},"then":{"type":"int","value":2},"else":{"type":"int","value":0}}},{"type":"binary","op":"==","left":{"type":"name","path":["copy","type"]},"right":{"type":"string","value":"cyberware"}}]}},"sumCopies(copy.fields.cost, copy.type == 'art')":{"text":"sumCopies(copy.fields.cost, copy.type == 'art')","tree":{"type":"call","fn":"sumCopies","args":[{"type":"name","path":["copy","fields","cost"]},{"type":"binary","op":"==","left":{"type":"name","path":["copy","type"]},"right":{"type":"string","value":"art"}}]}},"sumCopies(copy.fields.cost, copy.type == 'cyberware' && copy.state.wired)":{"text":"sumCopies(copy.fields.cost, copy.type == 'cyberware' && copy.state.wired)","tree":{"type":"call","fn":"sumCopies","args":[{"type":"name","path":["copy","fields","cost"]},{"type":"binary","op":"&&","left":{"type":"binary","op":"==","left":{"type":"name","path":["copy","type"]},"right":{"type":"string","value":"cyberware"}},"right":{"type":"name","path":["copy","state","wired"]}}]}},"sumCopies(copy.fields.cost, copy.type == 'drone' && copy.state.focusGear)":{"text":"sumCopies(copy.fields.cost, copy.type == 'drone' && copy.state.focusGear)","tree":{"type":"call","fn":"sumCopies","args":[{"type":"name","path":["copy","fields","cost"]},{"type":"binary","op":"&&","left":{"type":"binary","op":"==","left":{"type":"name","path":["copy","type"]},"right":{"type":"string","value":"drone"}},"right":{"type":"name","path":["copy","state","focusGear"]}}]}},"sumCopies(copy.fields.cost, copy.type == 'vehicle' && copy.state.focusGear)":{"text":"sumCopies(copy.fields.cost, copy.type == 'vehicle' && copy.state.focusGear)","tree":{"type":"call","fn":"sumCopies","args":[{"type":"name","path":["copy","fields","cost"]},{"type":"binary","op":"&&","left":{"type":"binary","op":"==","left":{"type":"name","path":["copy","type"]},"right":{"type":"string","value":"vehicle"}},"right":{"type":"name","path":["copy","state","focusGear"]}}]}},"sumCopies(copy.fields.enc * copy.quantity,\n has(copy.fields.enc) && copy.equipped && !('worn' in copy.tags))":{"text":"sumCopies(copy.fields.enc * copy.quantity, has(copy.fields.enc) && copy.equipped && !('worn' in copy.tags))","tree":{"type":"call","fn":"sumCopies","args":[{"type":"binary","op":"*","left":{"type":"name","path":["copy","fields","enc"]},"right":{"type":"name","path":["copy","quantity"]}},{"type":"binary","op":"&&","left":{"type":"binary","op":"&&","left":{"type":"call","fn":"has","args":[{"type":"name","path":["copy","fields","enc"]}]},"right":{"type":"name","path":["copy","equipped"]}},"right":{"type":"unary","op":"!","operand":{"type":"binary","op":"in","left":{"type":"string","value":"worn"},"right":{"type":"name","path":["copy","tags"]}}}}]}},"sumCopies(copy.fields.enc * copy.quantity, has(copy.fields.enc) && !copy.equipped)":{"text":"sumCopies(copy.fields.enc * copy.quantity, has(copy.fields.enc) && !copy.equipped)","tree":{"type":"call","fn":"sumCopies","args":[{"type":"binary","op":"*","left":{"type":"name","path":["copy","fields","enc"]},"right":{"type":"name","path":["copy","quantity"]}},{"type":"binary","op":"&&","left":{"type":"call","fn":"has","args":[{"type":"name","path":["copy","fields","enc"]}]},"right":{"type":"unary","op":"!","operand":{"type":"name","path":["copy","equipped"]}}}]}},"sumCopies(copy.fields.heavy, copy.type == 'armor' && copy.equipped)":{"text":"sumCopies(copy.fields.heavy, copy.type == 'armor' && copy.equipped)","tree":{"type":"call","fn":"sumCopies","args":[{"type":"name","path":["copy","fields","heavy"]},{"type":"binary","op":"&&","left":{"type":"binary","op":"==","left":{"type":"name","path":["copy","type"]},"right":{"type":"string","value":"armor"}},"right":{"type":"name","path":["copy","equipped"]}}]}},"sumCopies(copy.fields.soak - copy.state.soakUsed, copy.type == 'armor' && copy.equipped)":{"text":"sumCopies(copy.fields.soak - copy.state.soakUsed, copy.type == 'armor' && copy.equipped)","tree":{"type":"call","fn":"sumCopies","args":[{"type":"binary","op":"-","left":{"type":"name","path":["copy","fields","soak"]},"right":{"type":"name","path":["copy","state","soakUsed"]}},{"type":"binary","op":"&&","left":{"type":"binary","op":"==","left":{"type":"name","path":["copy","type"]},"right":{"type":"string","value":"armor"}},"right":{"type":"name","path":["copy","equipped"]}}]}},"sumCopies(copy.fields.soak, copy.type == 'armor' && copy.equipped)":{"text":"sumCopies(copy.fields.soak, copy.type == 'armor' && copy.equipped)","tree":{"type":"call","fn":"sumCopies","args":[{"type":"name","path":["copy","fields","soak"]},{"type":"binary","op":"&&","left":{"type":"binary","op":"==","left":{"type":"name","path":["copy","type"]},"right":{"type":"string","value":"armor"}},"right":{"type":"name","path":["copy","equipped"]}}]}},"sumCopies(copy.fields.strain\n * ((copy.fields.eyeMod && cyber.eyes) || (copy.fields.earMod && cyber.ears) ? 0.5 : 1),\n copy.type == 'cyberware')":{"text":"sumCopies(copy.fields.strain * (copy.fields.eyeMod && cyber.eyes || copy.fields.earMod && cyber.ears ? 0.5 : 1), copy.type == 'cyberware')","tree":{"type":"call","fn":"sumCopies","args":[{"type":"binary","op":"*","left":{"type":"name","path":["copy","fields","strain"]},"right":{"type":"conditional","test":{"type":"binary","op":"||","left":{"type":"binary","op":"&&","left":{"type":"name","path":["copy","fields","eyeMod"]},"right":{"type":"name","path":["cyber","eyes"]}},"right":{"type":"binary","op":"&&","left":{"type":"name","path":["copy","fields","earMod"]},"right":{"type":"name","path":["cyber","ears"]}}},"then":{"type":"decimal","value":0.5},"else":{"type":"int","value":1}}},{"type":"binary","op":"==","left":{"type":"name","path":["copy","type"]},"right":{"type":"string","value":"cyberware"}}]}},"sumCopies(copy.state.level, copy.type == 'focus')":{"text":"sumCopies(copy.state.level, copy.type == 'focus')","tree":{"type":"call","fn":"sumCopies","args":[{"type":"name","path":["copy","state","level"]},{"type":"binary","op":"==","left":{"type":"name","path":["copy","type"]},"right":{"type":"string","value":"focus"}}]}},"sumList(['str', 'dex', 'con', 'int', 'wis', 'cha'],\n fieldOf('attributes.{attribute}.base', x) >= 18 ? 2\n : fieldOf('attributes.{attribute}.base', x) >= 14 ? 1\n : fieldOf('attributes.{attribute}.base', x) >= 8 ? 0\n : fieldOf('attributes.{attribute}.base', x) >= 4 ? -1 : -2)":{"text":"sumList(['str', 'dex', 'con', 'int', 'wis', 'cha'], fieldOf('attributes.{attribute}.base', x) >= 18 ? 2 : fieldOf('attributes.{attribute}.base', x) >= 14 ? 1 : fieldOf('attributes.{attribute}.base', x) >= 8 ? 0 : fieldOf('attributes.{attribute}.base', x) >= 4 ? -1 : -2)","tree":{"type":"call","fn":"sumList","args":[{"type":"list","items":[{"type":"string","value":"str"},{"type":"string","value":"dex"},{"type":"string","value":"con"},{"type":"string","value":"int"},{"type":"string","value":"wis"},{"type":"string","value":"cha"}]},{"type":"conditional","test":{"type":"binary","op":">=","left":{"type":"call","fn":"fieldOf","args":[{"type":"string","value":"attributes.{attribute}.base"},{"type":"name","path":["x"]}]},"right":{"type":"int","value":18}},"then":{"type":"int","value":2},"else":{"type":"conditional","test":{"type":"binary","op":">=","left":{"type":"call","fn":"fieldOf","args":[{"type":"string","value":"attributes.{attribute}.base"},{"type":"name","path":["x"]}]},"right":{"type":"int","value":14}},"then":{"type":"int","value":1},"else":{"type":"conditional","test":{"type":"binary","op":">=","left":{"type":"call","fn":"fieldOf","args":[{"type":"string","value":"attributes.{attribute}.base"},{"type":"name","path":["x"]}]},"right":{"type":"int","value":8}},"then":{"type":"int","value":0},"else":{"type":"conditional","test":{"type":"binary","op":">=","left":{"type":"call","fn":"fieldOf","args":[{"type":"string","value":"attributes.{attribute}.base"},{"type":"name","path":["x"]}]},"right":{"type":"int","value":4}},"then":{"type":"unary","op":"-","operand":{"type":"int","value":1}},"else":{"type":"unary","op":"-","operand":{"type":"int","value":2}}}}}}]}},"underdog":{"text":"underdog","tree":{"type":"name","path":["underdog"]}},"x":{"text":"x","tree":{"type":"name","path":["x"]}}}};