etriebe / combat-estimate

MIT License
4 stars 1 forks source link

Referential Legendary Action not Working #11

Closed VoltCruelerz closed 2 years ago

VoltCruelerz commented 2 years ago

While #10 is resolved in the sense that it's no longer drawing a blank on the popup, it still seems to not be calculating the legendary action in a meaningful way.

Here is the json of the creature in question (which is not the one found on D&D Beyond):

{
  "name": "Gelatinous Titan",
  "type": "npc",
  "img": "tokens/Gelatinous%20Titan%20Token.png",
  "data": {
    "abilities": {
      "str": {
        "value": 18,
        "proficient": 0,
        "bonuses": {
          "check": 0,
          "save": ""
        },
        "mod": 5
      },
      "dex": {
        "value": 7,
        "proficient": 0,
        "bonuses": {
          "check": 0,
          "save": ""
        },
        "mod": -2
      },
      "con": {
        "value": 28,
        "proficient": 1,
        "bonuses": {
          "check": 0,
          "save": ""
        },
        "mod": 9
      },
      "int": {
        "value": 1,
        "proficient": 0,
        "bonuses": {
          "check": 0,
          "save": ""
        },
        "mod": -5
      },
      "wis": {
        "value": 6,
        "proficient": 1,
        "bonuses": {
          "check": 0,
          "save": ""
        },
        "mod": -2
      },
      "cha": {
        "value": 1,
        "proficient": 0,
        "bonuses": {
          "check": 0,
          "save": ""
        },
        "mod": -5
      }
    },
    "attributes": {
      "ac": {
        "flat": null,
        "calc": "default",
        "formula": null,
        "min": 0,
        "value": null
      },
      "hp": {
        "value": 8,
        "min": 0,
        "max": 273,
        "temp": null,
        "tempmax": null,
        "formula": "14d10 + 126"
      },
      "init": {
        "value": 0,
        "bonus": 0,
        "mod": 0,
        "total": -2,
        "prof": 0
      },
      "movement": {
        "burrow": null,
        "climb": null,
        "fly": null,
        "swim": null,
        "walk": 15,
        "units": "ft",
        "hover": false
      },
      "attunement": {
        "max": 3
      },
      "senses": {
        "darkvision": 0,
        "blindsight": 360,
        "tremorsense": 0,
        "truesight": 0,
        "units": "ft",
        "special": ""
      },
      "spellcasting": "str",
      "prof": 4,
      "spelldc": 8
    },
    "details": {
      "biography": {
        "value": "<div class=\"rd__b  rd__b--1\"><div class=\"rd__b  rd__b--2\"><p>Gelatinous cubes scour dungeon passages in silent, predictable patterns, leaving perfectly clean paths in their wake. They consume living tissue while leaving bones and other materials undissolved.</p><p>A gelatinous cube is all but transparent, making it hard to spot until it attacks. A cube that is well fed can be easier to spot, since its victims' bones, coins, and other objects can be seen suspended inside the creature.</p><div class=\"rd__b  rd__b--3\"><span class=\"rd__h rd__h--3\" data-title-index=\"45\"> <span class=\"entry-title-inner\">Oozes.</span></span> <p>Oozes thrive in the dark, shunning areas of bright light and extreme temperatures. They flow through the damp underground, feeding on any creature or object that can be dissolved, slinking along the ground, dripping from walls and ceilings, spreading across the edges of underground pools, and squeezing through cracks.</p><div class=\"rd__spc-inline-post\"></div><p>The first warning an adventurer receives of an ooze's presence is often the searing pain of its acidic touch. Oozes are drawn to movement and warmth. Organic material nourishes them, and when prey is scarce they feed on grime, fungus, and offal. Veteran explorers know that an immaculately clean passageway is a likely sign that an ooze lairs nearby.</p><div class=\"rd__b  rd__b--3\"><span class=\"rd__h rd__h--3\" data-title-index=\"46\"> <span class=\"entry-title-inner\">Slow Death.</span></span> <p> An ooze kills its prey slowly. Some varieties, such as black puddings and gelatinous cubes, engulf creatures to prevent escape. The only upside of this torturous death is that a victim's comrades can come to the rescue before it is too late.</p><div class=\"rd__spc-inline-post\"></div><p>Since not every ooze digests every type of substance, some have coins, metal gear, bones, and other debris suspended within their quivering bodies. A slain ooze can be a rich source of treasure for its killers.</p><p>Whether this is true or not, the Faceless Lord is one of the few beings that can control oozes and imbue them with a modicum of intelligence. Most of the time, oozes have no sense of tactics or self-preservation. They are direct and predictable, attacking and eating without cunning. Under the control of Juiblex, they exhibit glimmers of sentience and malevolent intent.</p></div><div class=\"rd__b  rd__b--3\"><span class=\"rd__h rd__h--3\" data-title-index=\"47\"> <span class=\"entry-title-inner\">Unwitting Servants.</span></span> <p> Although an ooze lacks the intelligence to ally itself with other creatures, others that understand an ooze's need to feed might lure it into a location where it can be of use to them. Clever monsters keep oozes around to defend passageways or consume refuse. Likewise, an ooze can be enticed into a pit trap, where its captors feed it often enough to prevent it from coming after them. Crafty creatures place torches and flaming braziers in strategic areas to dissuade an ooze from leaving a particular tunnel or room.</p><div class=\"rd__spc-inline-post\"></div></div><div class=\"rd__b  rd__b--3\"><span class=\"rd__h rd__h--3\" data-title-index=\"48\"> <span class=\"entry-title-inner\">Spawn of Juiblex.</span></span> <p> According to the Demonomicon of Iggwilv and other sources, oozes are scattered fragments or offspring of the demon lord Juiblex.</p><div class=\"rd__spc-inline-post\"></div></div><div class=\"rd__b  rd__b--3\"><span class=\"rd__h rd__h--3\" data-title-index=\"49\"> <span class=\"entry-title-inner\">Ooze Nature.</span></span> <p> An ooze doesn't require sleep.</p><div class=\"rd__spc-inline-post\"></div></div></div></div></div>",
        "public": ""
      },
      "alignment": "unaligned",
      "race": "",
      "type": {
        "value": "ooze",
        "subtype": "",
        "swarm": null,
        "custom": ""
      },
      "environment": "Underdark",
      "cr": 13,
      "spellLevel": 5,
      "xp": {
        "value": 7200
      },
      "source": "MM",
      "class": {},
      "gender": "",
      "age": "",
      "height": "",
      "weight": "",
      "eyes": "",
      "skin": "",
      "hair": "",
      "notes1name": "",
      "notes2name": "",
      "notes3name": "",
      "notes4name": ""
    },
    "traits": {
      "size": "grg",
      "di": {
        "value": [
          "acid"
        ],
        "custom": ""
      },
      "dr": {
        "value": [],
        "custom": ""
      },
      "dv": {
        "value": [],
        "custom": ""
      },
      "ci": {
        "value": [
          "blinded",
          "charmed",
          "deafened",
          "exhaustion",
          "frightened",
          "prone"
        ],
        "custom": ""
      },
      "languages": {
        "value": [],
        "custom": ""
      }
    },
    "currency": {
      "pp": 0,
      "gp": 0,
      "ep": 0,
      "sp": 0,
      "cp": 0
    },
    "skills": {
      "acr": {
        "value": 0,
        "ability": "dex",
        "bonuses": {
          "check": 0,
          "passive": ""
        }
      },
      "ani": {
        "value": 0,
        "ability": "wis",
        "bonuses": {
          "check": 0,
          "passive": ""
        }
      },
      "arc": {
        "value": 0,
        "ability": "int",
        "bonuses": {
          "check": 0,
          "passive": ""
        }
      },
      "ath": {
        "value": 0,
        "ability": "str",
        "bonuses": {
          "check": 0,
          "passive": ""
        }
      },
      "dec": {
        "value": 0,
        "ability": "cha",
        "bonuses": {
          "check": 0,
          "passive": ""
        }
      },
      "his": {
        "value": 0,
        "ability": "int",
        "bonuses": {
          "check": 0,
          "passive": ""
        }
      },
      "ins": {
        "value": 0,
        "ability": "wis",
        "bonuses": {
          "check": 0,
          "passive": ""
        }
      },
      "itm": {
        "value": 0,
        "ability": "cha",
        "bonuses": {
          "check": 0,
          "passive": ""
        }
      },
      "inv": {
        "value": 0,
        "ability": "int",
        "bonuses": {
          "check": 0,
          "passive": ""
        }
      },
      "med": {
        "value": 0,
        "ability": "wis",
        "bonuses": {
          "check": 0,
          "passive": ""
        }
      },
      "nat": {
        "value": 0,
        "ability": "int",
        "bonuses": {
          "check": 0,
          "passive": ""
        }
      },
      "prc": {
        "value": 0,
        "ability": "wis",
        "bonuses": {
          "check": 0,
          "passive": ""
        }
      },
      "prf": {
        "value": 0,
        "ability": "cha",
        "bonuses": {
          "check": 0,
          "passive": ""
        }
      },
      "per": {
        "value": 0,
        "ability": "cha",
        "bonuses": {
          "check": 0,
          "passive": ""
        }
      },
      "rel": {
        "value": 0,
        "ability": "int",
        "bonuses": {
          "check": 0,
          "passive": ""
        }
      },
      "slt": {
        "value": 0,
        "ability": "dex",
        "bonuses": {
          "check": 0,
          "passive": ""
        }
      },
      "ste": {
        "value": 0,
        "ability": "dex",
        "bonuses": {
          "check": 0,
          "passive": ""
        }
      },
      "sur": {
        "value": 0,
        "ability": "wis",
        "bonuses": {
          "check": 0,
          "passive": ""
        }
      }
    },
    "spells": {
      "spell1": {
        "value": 4,
        "override": null,
        "max": 0
      },
      "spell2": {
        "value": 3,
        "override": null,
        "max": 0
      },
      "spell3": {
        "value": 2,
        "override": null,
        "max": 0
      },
      "spell4": {
        "value": 0,
        "override": null,
        "max": 0
      },
      "spell5": {
        "value": 0,
        "override": null,
        "max": 0
      },
      "spell6": {
        "value": 0,
        "override": null,
        "max": 0
      },
      "spell7": {
        "value": 0,
        "override": null,
        "max": 0
      },
      "spell8": {
        "value": 0,
        "override": null,
        "max": 0
      },
      "spell9": {
        "value": 0,
        "override": null,
        "max": 0
      },
      "pact": {
        "value": 0,
        "override": null
      },
      "spell0": {
        "value": 0,
        "max": 0
      }
    },
    "bonuses": {
      "mwak": {
        "attack": "",
        "damage": ""
      },
      "rwak": {
        "attack": "",
        "damage": ""
      },
      "msak": {
        "attack": "",
        "damage": ""
      },
      "rsak": {
        "attack": "",
        "damage": ""
      },
      "abilities": {
        "check": "",
        "save": "",
        "skill": ""
      },
      "spell": {
        "dc": ""
      }
    },
    "resources": {
      "legact": {
        "value": 3,
        "max": 3
      },
      "legres": {
        "value": 2,
        "max": 3
      },
      "lair": {
        "value": true,
        "initiative": 20
      }
    }
  },
  "token": {
    "name": "Gelatinous Titan",
    "img": "tokens/Gelatinous%20Titan%20Token.png",
    "displayName": 0,
    "actorLink": true,
    "width": 16,
    "height": 16,
    "scale": 1,
    "mirrorX": false,
    "mirrorY": false,
    "lockRotation": false,
    "rotation": 0,
    "alpha": 1,
    "vision": true,
    "dimSight": 0,
    "brightSight": 60,
    "sightAngle": 0,
    "light": {
      "alpha": 0.5,
      "angle": 0,
      "bright": 0,
      "coloration": 1,
      "dim": 0,
      "gradual": true,
      "luminosity": 0.5,
      "saturation": 0,
      "contrast": 0,
      "shadows": 0,
      "animation": {
        "speed": 5,
        "intensity": 5,
        "reverse": false
      },
      "darkness": {
        "min": 0,
        "max": 1
      },
      "color": null
    },
    "disposition": -1,
    "displayBars": 40,
    "bar1": {
      "attribute": "attributes.hp"
    },
    "bar2": {
      "attribute": ""
    },
    "flags": {
      "token-hud-wildcard": {
        "default": ""
      },
      "perfect-vision": {
        "visionRules": "default",
        "monoVisionColor": "",
        "sightLimit": null,
        "light": {}
      },
      "core": {}
    },
    "randomImg": false,
    "tint": null,
    "elevation": 0,
    "actorData": {},
    "effects": []
  },
  "items": [
    {
      "_id": "CP7zEgScJcs3ReUK",
      "name": "Pseudopod",
      "type": "weapon",
      "img": "icons/creatures/slimes/slime-movement-dripping-pseudopods-green.webp",
      "data": {
        "description": {
          "value": "<div class=\"rd__b  rd__b--3\">\n<p><em>Melee Weapon Attack:</em> [[/r 1d20+9]] (+9) to hit, reach 5 ft., one creature. <em>Hit:</em> 10 ([[/r 3d6]]) acid damage.</p>\n<div class=\"rd__spc-inline-post\"> </div>\n</div>",
          "chat": "",
          "unidentified": ""
        },
        "source": "MM",
        "quantity": 1,
        "weight": 0,
        "price": 0,
        "attunement": 0,
        "equipped": true,
        "rarity": "",
        "identified": true,
        "activation": {
          "type": "action",
          "cost": 1,
          "condition": ""
        },
        "duration": {
          "value": null,
          "units": ""
        },
        "target": {
          "value": null,
          "width": null,
          "units": "",
          "type": ""
        },
        "range": {
          "value": 5,
          "long": 0,
          "units": "ft"
        },
        "uses": {
          "value": null,
          "max": "",
          "per": ""
        },
        "consume": {
          "type": "",
          "target": "",
          "amount": null
        },
        "ability": "str",
        "actionType": "mwak",
        "attackBonus": "0",
        "chatFlavor": "",
        "critical": {
          "threshold": null,
          "damage": ""
        },
        "damage": {
          "parts": [
            [
              "3d6",
              "acid"
            ]
          ],
          "versatile": ""
        },
        "formula": "",
        "save": {
          "ability": "",
          "dc": null,
          "scaling": "spell"
        },
        "armor": {
          "value": 10
        },
        "hp": {
          "value": 0,
          "max": 0,
          "dt": null,
          "conditions": ""
        },
        "weaponType": "natural",
        "baseItem": "",
        "properties": {
          "ada": false,
          "amm": false,
          "fin": false,
          "fir": false,
          "foc": false,
          "hvy": false,
          "lgt": false,
          "lod": false,
          "mgc": false,
          "rch": false,
          "rel": false,
          "ret": false,
          "sil": false,
          "spc": false,
          "thr": false,
          "two": false,
          "ver": false
        },
        "proficient": true,
        "cptooltipmode": [
          "hid",
          "hid"
        ]
      },
      "effects": [],
      "folder": null,
      "sort": 0,
      "permission": {
        "default": 0,
        "YzZjZDc3YWI5MmI4": 3
      },
      "flags": {
        "betterRolls5e": {
          "quickDamage": {
            "context": {
              "0": ""
            },
            "value": {
              "0": true
            },
            "altValue": {
              "0": true
            }
          },
          "quickOther": {
            "context": "",
            "value": true,
            "altValue": true
          },
          "quickDesc": {
            "value": true,
            "altValue": true
          },
          "quickAttack": {
            "value": true,
            "altValue": true
          },
          "quickProperties": {
            "value": true,
            "altValue": true
          },
          "quickVersatile": {
            "value": false,
            "altValue": false
          },
          "quickFlavor": {
            "value": true,
            "altValue": true
          },
          "quickCharges": {
            "value": {
              "quantity": false
            },
            "altValue": {
              "quantity": false
            }
          }
        },
        "magicitems": {
          "enabled": false,
          "equipped": false,
          "attuned": false,
          "charges": "0",
          "chargeType": "c1",
          "destroy": false,
          "destroyFlavorText": "reaches 0 charges: it crumbles into ashes and is destroyed.",
          "rechargeable": false,
          "recharge": "0",
          "rechargeType": "t1",
          "rechargeUnit": "r1",
          "sorting": "l"
        },
        "rest-recovery": {
          "data": {
            "recovery": {
              "enabled": false
            }
          }
        },
        "midi-qol": {
          "effectActivation": false
        },
        "midiProperties": {
          "nodam": false,
          "fulldam": false,
          "halfdam": false,
          "rollOther": false,
          "critOther": false,
          "magicdam": false,
          "magiceffect": false,
          "concentration": false,
          "toggleEffect": false
        }
      }
    },
    {
      "_id": "5zOEuhLe4C5F3Jpr",
      "name": "Engulf",
      "type": "feat",
      "img": "icons/magic/water/pseudopod-swirl-blue.webp",
      "data": {
        "description": {
          "value": "<div class=\"rd__b  rd__b--3\">\n<p>The cube moves up to its speed. While doing so, it can enter Large or smaller creatures' spaces. Whenever the cube enters a creature's space, the creature must make a DC 17 Dexterity saving throw.</p>\n<div class=\"rd__spc-inline-post\"> </div>\n<p>On a successful save, the creature can choose to be pushed 5 feet back or to the side of the cube. A creature that chooses not to be pushed suffers the consequences of a failed saving throw.</p>\n<p>On a failed save, the cube enters the creature's space, and the creature takes 10 ([[/r 3d6]]) acid damage and is engulfed. The Gelatinous Titan can't breathe, is @condition[restrained], and takes 21 ([[/r 6d6]]) acid damage at the start of each of the cube's turns. When the cube moves, the Gelatinous Titan moves with it.</p>\n<p>An Gelatinous Titan can try to escape by taking an action to make a DC 17 Strength check. On a success, the creature escapes and enters a space of its choice within 5 feet of the cube.</p>\n</div>",
          "chat": "",
          "unidentified": ""
        },
        "source": "MM",
        "activation": {
          "type": "action",
          "cost": 1,
          "condition": ""
        },
        "duration": {
          "value": null,
          "units": ""
        },
        "target": {
          "value": null,
          "width": null,
          "units": "",
          "type": ""
        },
        "range": {
          "value": null,
          "long": null,
          "units": ""
        },
        "uses": {
          "value": 0,
          "max": "0",
          "per": ""
        },
        "consume": {
          "type": "",
          "target": "",
          "amount": null
        },
        "ability": "",
        "actionType": "other",
        "attackBonus": null,
        "chatFlavor": "",
        "critical": {
          "threshold": null,
          "damage": ""
        },
        "damage": {
          "parts": [
            [
              "3d6",
              "acid"
            ],
            [
              "6d6",
              "acid"
            ]
          ],
          "versatile": ""
        },
        "formula": "",
        "save": {
          "ability": "dex",
          "dc": 16,
          "scaling": "spell"
        },
        "requirements": "",
        "recharge": {
          "value": null,
          "charged": false
        },
        "cptooltipmode": [
          "hid",
          "hid"
        ]
      },
      "effects": [],
      "folder": null,
      "sort": 0,
      "permission": {
        "default": 0,
        "YzZjZDc3YWI5MmI4": 3
      },
      "flags": {
        "betterRolls5e": {
          "quickOther": {
            "context": "",
            "value": true,
            "altValue": true
          },
          "quickDesc": {
            "value": true,
            "altValue": true
          },
          "quickSave": {
            "value": true,
            "altValue": true
          },
          "quickProperties": {
            "value": true,
            "altValue": true
          },
          "quickFlavor": {
            "value": true,
            "altValue": true
          },
          "quickDamage": {
            "context": {
              "0": "",
              "1": "turn start"
            },
            "value": {
              "0": true,
              "1": true
            },
            "altValue": {
              "0": true,
              "1": true
            }
          }
        },
        "magicitems": {
          "enabled": false,
          "equipped": false,
          "attuned": false,
          "charges": "0",
          "chargeType": "c1",
          "destroy": false,
          "destroyFlavorText": "reaches 0 charges: it crumbles into ashes and is destroyed.",
          "rechargeable": false,
          "recharge": "0",
          "rechargeType": "t1",
          "rechargeUnit": "r1",
          "sorting": "l"
        }
      }
    },
    {
      "_id": "4xKAePgFqi8Ti0qU",
      "name": "Ooze Cube",
      "type": "feat",
      "img": "icons/magic/water/barrier-ice-water-cube.webp",
      "data": {
        "description": {
          "value": "<div class=\"rd__b  rd__b--3\"><p>The cube takes up its entire space. Other creatures can enter the space, but a creature that does so is subjected to the cube's Engulf and has disadvantage on the saving throw.</p><div class=\"rd__spc-inline-post\"></div><p>Creatures inside the cube can be seen but have total cover.</p><p>A creature within 5 feet of the cube can take an action to pull a creature or object out of the cube. Doing so requires a successful DC 16 Strength check, and the creature making the attempt takes 42 ([[/r 12d6]]) acid damage.</p><p>The cube can hold only one Large creature or up to four Medium or smaller creatures inside it at a time.</p></div>",
          "chat": "",
          "unidentified": ""
        },
        "source": "MM",
        "activation": {
          "type": "",
          "cost": 0,
          "condition": ""
        },
        "duration": {
          "value": null,
          "units": ""
        },
        "target": {
          "value": null,
          "width": null,
          "units": "",
          "type": ""
        },
        "range": {
          "value": null,
          "long": null,
          "units": ""
        },
        "uses": {
          "value": 0,
          "max": "0",
          "per": null
        },
        "consume": {
          "type": null,
          "target": null,
          "amount": null
        },
        "ability": "",
        "actionType": "other",
        "attackBonus": null,
        "chatFlavor": "",
        "critical": {
          "threshold": null,
          "damage": ""
        },
        "damage": {
          "parts": [],
          "versatile": ""
        },
        "formula": "",
        "save": {
          "ability": "",
          "dc": null,
          "scaling": "flat"
        },
        "requirements": "",
        "recharge": {
          "value": null,
          "charged": false
        }
      },
      "effects": [],
      "folder": null,
      "sort": 0,
      "permission": {
        "default": 0,
        "YzZjZDc3YWI5MmI4": 3
      },
      "flags": {}
    },
    {
      "_id": "7xrwzUJ5PxmmJr9B",
      "name": "Transparent",
      "type": "feat",
      "img": "icons/magic/control/silhouette-hold-change-blue.webp",
      "data": {
        "description": {
          "value": "<div class=\"rd__b  rd__b--3\"><p>Even when the cube is in plain sight, it takes a successful DC 19 Wisdom (Perception) check to spot a cube that has neither moved nor attacked. A creature that tries to enter the cube's space while unaware of the cube is surprised by the cube.</p><div class=\"rd__spc-inline-post\"></div></div>",
          "chat": "",
          "unidentified": ""
        },
        "source": "MM",
        "activation": {
          "type": "",
          "cost": 0,
          "condition": ""
        },
        "duration": {
          "value": null,
          "units": ""
        },
        "target": {
          "value": null,
          "width": null,
          "units": "",
          "type": ""
        },
        "range": {
          "value": null,
          "long": null,
          "units": ""
        },
        "uses": {
          "value": 0,
          "max": "0",
          "per": null
        },
        "consume": {
          "type": null,
          "target": null,
          "amount": null
        },
        "ability": "",
        "actionType": "other",
        "attackBonus": null,
        "chatFlavor": "",
        "critical": {
          "threshold": null,
          "damage": ""
        },
        "damage": {
          "parts": [],
          "versatile": ""
        },
        "formula": "",
        "save": {
          "ability": "",
          "dc": null,
          "scaling": "flat"
        },
        "requirements": "",
        "recharge": {
          "value": null,
          "charged": false
        }
      },
      "effects": [],
      "folder": null,
      "sort": 0,
      "permission": {
        "default": 0,
        "YzZjZDc3YWI5MmI4": 3
      },
      "flags": {}
    },
    {
      "_id": "Vr5tyOaYPCJvrgip",
      "name": "Topple",
      "type": "feat",
      "img": "modules/taring-kyburn/icons/skills/Engineerskill_23.png",
      "data": {
        "description": {
          "value": "<p>The Gelatinous Titan topples over, immediately moving up to its side length (<strong>80 feet</strong>) without provoking opportunity attacks.</p>\n<p>If it lands on the ground, any creatures caught beneath it must succeed on a <strong>DC 17 Strength</strong> saving throw or be knocked prone. On a success, a creature can use its reaction to immediately move up to its speed out of the way. On a failure, a creature takes 3d8 bludgeoning damage and is <strong>Engulfed</strong>.</p>\n<p>The enormous movement causes a tremendous wave of water to rush throughout the system. Anyone in the water must succeed on a <strong>DC 17 Strength</strong> save or be shoved <strong>20 feet</strong> backward and take <strong>3d8</strong> bludgeoning damage, half on success.</p>",
          "chat": "",
          "unidentified": ""
        },
        "source": "",
        "activation": {
          "type": "action",
          "cost": 1,
          "condition": ""
        },
        "duration": {
          "value": null,
          "units": ""
        },
        "target": {
          "value": null,
          "width": null,
          "units": "",
          "type": ""
        },
        "range": {
          "value": null,
          "long": null,
          "units": ""
        },
        "uses": {
          "value": null,
          "max": "",
          "per": ""
        },
        "consume": {
          "type": "",
          "target": "",
          "amount": null
        },
        "ability": "",
        "actionType": "save",
        "attackBonus": 0,
        "chatFlavor": "",
        "critical": {
          "threshold": null,
          "damage": ""
        },
        "damage": {
          "parts": [
            [
              "3d8",
              "bludgeoning"
            ]
          ],
          "versatile": ""
        },
        "formula": "",
        "save": {
          "ability": "str",
          "dc": null,
          "scaling": "spell"
        },
        "requirements": "",
        "recharge": {
          "value": 6,
          "charged": false
        },
        "cptooltipmode": [
          "hid",
          "hid"
        ]
      },
      "effects": [],
      "folder": null,
      "sort": 0,
      "permission": {
        "default": 0,
        "YzZjZDc3YWI5MmI4": 3
      },
      "flags": {
        "magicitems": {
          "enabled": false,
          "equipped": false,
          "attuned": false,
          "charges": "0",
          "chargeType": "c1",
          "destroy": false,
          "destroyFlavorText": "reaches 0 charges: it crumbles into ashes and is destroyed.",
          "rechargeable": false,
          "recharge": "0",
          "rechargeType": "t1",
          "rechargeUnit": "r1",
          "sorting": "l"
        },
        "betterRolls5e": {
          "quickDesc": {
            "value": true,
            "altValue": true
          },
          "quickProperties": {
            "value": true,
            "altValue": true
          },
          "quickOther": {
            "value": true,
            "altValue": true,
            "context": ""
          },
          "quickFlavor": {
            "value": true,
            "altValue": true
          },
          "quickSave": {
            "value": true,
            "altValue": true
          },
          "quickDamage": {
            "context": {
              "0": ""
            },
            "value": {
              "0": true
            },
            "altValue": {
              "0": true
            }
          },
          "quickCharges": {
            "value": {
              "charge": true
            },
            "altValue": {
              "charge": true
            }
          }
        }
      }
    },
    {
      "_id": "ETJvLtBMafy0M9ke",
      "name": "Melf's Acid Arrow",
      "type": "spell",
      "img": "modules/owlmarble-magic/icons/evocation.png",
      "data": {
        "description": {
          "value": "<p>A shimmering green arrow streaks toward a target within range and bursts in a spray of acid. Make a ranged spell attack against the target. On a hit, the target takes [[/r 4d4]] acid damage immediately and [[/r 2d4]] acid damage at the end of its next turn. On a miss, the arrow splashes the target with acid for half as much of the initial damage and no damage at the end of its next turn.</p><strong>Higher Levels</strong><p>When you cast this spell using a spell slot of 3rd level or higher, the damage (both initial and later) increases by 1d4 for each slot level above 2nd.</p>",
          "chat": "",
          "unidentified": ""
        },
        "source": "PHB - 259",
        "activation": {
          "type": "action",
          "cost": 1,
          "condition": ""
        },
        "duration": {
          "value": null,
          "units": "inst"
        },
        "target": {
          "value": null,
          "width": null,
          "units": "any",
          "type": "space"
        },
        "range": {
          "value": 90,
          "long": 0,
          "units": "ft"
        },
        "uses": {
          "value": 0,
          "max": "0",
          "per": ""
        },
        "consume": {
          "type": "",
          "target": "",
          "amount": null
        },
        "ability": "",
        "actionType": "rsak",
        "attackBonus": "0",
        "chatFlavor": "",
        "critical": {
          "threshold": null,
          "damage": ""
        },
        "damage": {
          "parts": [
            [
              "4d4",
              "acid"
            ],
            [
              "2d4",
              "acid"
            ]
          ],
          "versatile": "",
          "value": ""
        },
        "formula": "",
        "save": {
          "ability": "",
          "dc": null,
          "scaling": "spell",
          "value": ""
        },
        "level": 2,
        "school": "evo",
        "components": {
          "value": "",
          "vocal": true,
          "somatic": true,
          "material": true,
          "ritual": false,
          "concentration": false
        },
        "materials": {
          "value": "powdered rhubarb leaf and an adder's stomach",
          "consumed": false,
          "cost": 0,
          "supply": 0
        },
        "preparation": {
          "mode": "atwill",
          "prepared": true
        },
        "scaling": {
          "mode": "level",
          "formula": "1d4"
        },
        "classes": [
          "Wizard"
        ],
        "attunement": null
      },
      "effects": [],
      "folder": null,
      "sort": 0,
      "permission": {
        "default": 0,
        "YzZjZDc3YWI5MmI4": 3
      },
      "flags": {
        "exportSource": {
          "world": "none",
          "system": "dnd5e",
          "coreVersion": "0.8.8",
          "systemVersion": "1.3.6"
        },
        "core": {
          "sourceId": "Compendium.owlmarble-magic.spells.QoM18E2hZcFL24Bo"
        },
        "betterRolls5e": {
          "quickDamage": {
            "context": {
              "0": "",
              "1": ""
            },
            "value": {
              "0": true,
              "1": true
            },
            "altValue": {
              "0": true,
              "1": true
            }
          },
          "quickOther": {
            "context": "",
            "value": true,
            "altValue": true
          },
          "quickDesc": {
            "value": true,
            "altValue": true
          },
          "quickAttack": {
            "value": true,
            "altValue": true
          },
          "quickProperties": {
            "value": true,
            "altValue": true
          },
          "quickVersatile": {
            "value": false,
            "altValue": false
          },
          "quickFlavor": {
            "value": true,
            "altValue": true
          }
        }
      }
    },
    {
      "_id": "gf2dGPbzWIkutIXW",
      "name": "Acid Splash",
      "type": "spell",
      "img": "modules/owlmarble-magic/icons/conjuration.png",
      "data": {
        "description": {
          "value": "<p>You hurl a bubble of acid. Choose one creature you can see within range, or choose two creatures you can see within range that are within 5 feet of each other. A target must succeed on a Dexterity saving throw or take [[/r 1d6]] acid damage.</p><p>This spell's damage increases by [[/r 1d6]] when you reach 5th level ([[/r 2d6]]), 11th level ([[/r 3d6]]), and 17th level ([[/r 4d6]]).</p>",
          "chat": "",
          "unidentified": ""
        },
        "source": "PHB - 211",
        "activation": {
          "type": "action",
          "cost": 1,
          "condition": ""
        },
        "duration": {
          "value": null,
          "units": "inst"
        },
        "target": {
          "value": 1,
          "width": null,
          "units": "",
          "type": "creature"
        },
        "range": {
          "value": 60,
          "long": 0,
          "units": "ft"
        },
        "uses": {
          "value": 0,
          "max": 0,
          "per": ""
        },
        "consume": {
          "type": "",
          "target": null,
          "amount": null
        },
        "ability": "",
        "actionType": "save",
        "attackBonus": 0,
        "chatFlavor": "",
        "critical": {
          "threshold": null,
          "damage": null
        },
        "damage": {
          "parts": [
            [
              "1d6",
              "acid"
            ]
          ],
          "versatile": "",
          "value": ""
        },
        "formula": "",
        "save": {
          "ability": "dex",
          "dc": 0,
          "scaling": "spell"
        },
        "level": 0,
        "school": "con",
        "components": {
          "value": "",
          "vocal": true,
          "somatic": true,
          "material": false,
          "ritual": false,
          "concentration": false
        },
        "materials": {
          "value": "",
          "consumed": false,
          "cost": 0,
          "supply": 0
        },
        "preparation": {
          "mode": "prepared",
          "prepared": true
        },
        "scaling": {
          "mode": "cantrip",
          "formula": ""
        },
        "classes": [
          "Sorcerer",
          "Wizard",
          "Artificer"
        ],
        "attunement": null
      },
      "effects": [],
      "folder": null,
      "sort": 0,
      "permission": {
        "default": 0,
        "YzZjZDc3YWI5MmI4": 3
      },
      "flags": {
        "exportSource": {
          "world": "none",
          "system": "dnd5e",
          "coreVersion": "0.8.8",
          "systemVersion": "1.3.6"
        },
        "core": {
          "sourceId": "Compendium.owlmarble-magic.spells.wUXkwgExHWl2O7kF"
        }
      }
    },
    {
      "_id": "t87wrguozJRZZ9bp",
      "name": "Acid Rain",
      "type": "spell",
      "img": "modules/owlmarble-magic/icons/conjuration.png",
      "data": {
        "description": {
          "value": "<p>You create a shower of caustic acidic rain upon everything in a 40-foot cube centered on a point you can see within range, dealing 3d8 acid damage.  A creature can make a Constitution saving throw to take half damage instead.</p><p><strong>Higher Levels</strong>: For each spell level this is cast at above 3rd, increase the size of the cube by 5 feet.</p>",
          "chat": "",
          "unidentified": ""
        },
        "source": "OMM - 3",
        "activation": {
          "type": "action",
          "cost": 1,
          "condition": ""
        },
        "duration": {
          "value": null,
          "units": "inst"
        },
        "target": {
          "value": 40,
          "width": null,
          "units": "ft",
          "type": "cube"
        },
        "range": {
          "value": 120,
          "long": 0,
          "units": "ft"
        },
        "uses": {
          "value": 0,
          "max": "0",
          "per": ""
        },
        "consume": {
          "type": "",
          "target": "",
          "amount": null
        },
        "ability": "",
        "actionType": "save",
        "attackBonus": 0,
        "chatFlavor": "",
        "critical": {
          "threshold": null,
          "damage": null
        },
        "damage": {
          "parts": [
            [
              "3d8",
              "acid"
            ]
          ],
          "versatile": "",
          "value": ""
        },
        "formula": "",
        "save": {
          "ability": "con",
          "dc": 0,
          "scaling": "spell"
        },
        "level": 3,
        "school": "con",
        "components": {
          "value": "",
          "vocal": true,
          "somatic": true,
          "material": true,
          "ritual": false,
          "concentration": false
        },
        "materials": {
          "value": "a flask of vinegar",
          "consumed": false,
          "cost": 0,
          "supply": 0
        },
        "preparation": {
          "mode": "atwill",
          "prepared": true
        },
        "scaling": {
          "mode": "level",
          "formula": ""
        },
        "classes": [
          "Druid",
          "Sorcerer",
          "Wizard"
        ],
        "attunement": null
      },
      "effects": [],
      "folder": null,
      "sort": 0,
      "permission": {
        "default": 0,
        "YzZjZDc3YWI5MmI4": 3
      },
      "flags": {
        "exportSource": {
          "world": "none",
          "system": "dnd5e",
          "coreVersion": "0.8.8",
          "systemVersion": "1.3.6"
        },
        "core": {
          "sourceId": "Compendium.owlmarble-magic.spells.irRfPBRIQbQX3d2f"
        },
        "betterRolls5e": {
          "quickDamage": {
            "context": {
              "0": ""
            },
            "value": {
              "0": true
            },
            "altValue": {
              "0": true
            }
          },
          "quickOther": {
            "context": "",
            "value": true,
            "altValue": true
          },
          "quickDesc": {
            "value": true,
            "altValue": true
          },
          "quickSave": {
            "value": true,
            "altValue": true
          },
          "quickProperties": {
            "value": true,
            "altValue": true
          },
          "quickVersatile": {
            "value": false,
            "altValue": false
          },
          "quickTemplate": {
            "value": true,
            "altValue": true
          },
          "quickFlavor": {
            "value": true,
            "altValue": true
          }
        }
      }
    },
    {
      "_id": "Pa0SkEIRzw7loWik",
      "name": "Tasha's Caustic Brew",
      "type": "spell",
      "img": "modules/owlmarble-magic/icons/evocation.png",
      "data": {
        "description": {
          "value": "<p>A stream of acid emanates from you in a line 30 feet long and 5 feet wide in a direction you choose. Each creature in the line must succeed on a Dexterity saving throw or be covered in acid for the spell's duration or until a creature uses its action to scrape or wash the acid off itself or another creature. A creature covered in the acid takes [[/r 2d4]] acid damage at start of each of its turns.</p><strong>Higher Levels</strong><p>When you cast this spell using a spell slot of 2nd level or higher, the damage increases by [[/r 2d4]] for each slot level above 1st.</p>",
          "chat": "",
          "unidentified": ""
        },
        "source": "TCE - 115",
        "activation": {
          "type": "action",
          "cost": 1,
          "condition": ""
        },
        "duration": {
          "value": 1,
          "units": "minute"
        },
        "target": {
          "value": 30,
          "width": null,
          "units": "ft",
          "type": "line"
        },
        "range": {
          "value": null,
          "long": null,
          "units": "self"
        },
        "uses": {
          "value": 0,
          "max": "0",
          "per": ""
        },
        "consume": {
          "type": "",
          "target": "",
          "amount": null
        },
        "ability": "",
        "actionType": "save",
        "attackBonus": 0,
        "chatFlavor": "",
        "critical": {
          "threshold": null,
          "damage": null
        },
        "damage": {
          "parts": [
            [
              "2d4",
              "acid"
            ]
          ],
          "versatile": "",
          "value": ""
        },
        "formula": "",
        "save": {
          "ability": "dex",
          "dc": 0,
          "scaling": "spell"
        },
        "level": 1,
        "school": "evo",
        "components": {
          "value": "",
          "vocal": true,
          "somatic": true,
          "material": true,
          "ritual": false,
          "concentration": true
        },
        "materials": {
          "value": "a bit of rotten food",
          "consumed": false,
          "cost": 0,
          "supply": 0
        },
        "preparation": {
          "mode": "atwill",
          "prepared": true
        },
        "scaling": {
          "mode": "level",
          "formula": "2d4"
        },
        "classes": [
          "Artificer",
          "Sorcerer",
          "Wizard"
        ],
        "attunement": null
      },
      "effects": [],
      "folder": null,
      "sort": 0,
      "permission": {
        "default": 0,
        "YzZjZDc3YWI5MmI4": 3
      },
      "flags": {
        "exportSource": {
          "world": "none",
          "system": "dnd5e",
          "coreVersion": "0.8.8",
          "systemVersion": "1.3.6"
        },
        "core": {
          "sourceId": "Compendium.owlmarble-magic.spells.nwabdQm5Kv8Nhadu"
        },
        "betterRolls5e": {
          "quickDamage": {
            "context": {
              "0": ""
            },
            "value": {
              "0": true
            },
            "altValue": {
              "0": true
            }
          },
          "quickOther": {
            "context": "",
            "value": true,
            "altValue": true
          },
          "quickDesc": {
            "value": true,
            "altValue": true
          },
          "quickSave": {
            "value": true,
            "altValue": true
          },
          "quickProperties": {
            "value": true,
            "altValue": true
          },
          "quickVersatile": {
            "value": false,
            "altValue": false
          },
          "quickTemplate": {
            "value": true,
            "altValue": true
          },
          "quickFlavor": {
            "value": true,
            "altValue": true
          }
        }
      }
    },
    {
      "_id": "nQYuUlq0TQ6lLql9",
      "name": "Wall of Ooze",
      "type": "feat",
      "img": "modules/taring-kyburn/icons/skills/Skill_371.png",
      "data": {
        "description": {
          "value": "<p>The Gelatinous Titan creates a labyrinth of ooze walls composed of 10 panels that must originate with the Titan or another panel. Each panel has 10 hit points and is 10x10x1 feet.</p>\n<p>The panels are transparent. If a creature moves through a wall, it must succeed on a DC 17 Strength saving throw or become stuck, as if Engulfed by the titan (3d6 acid now, 6d6 later). On a success, the creature expends 5 extra feet of movement and is not stuck.</p>\n<p>The walls last for 1 minute or until this ability is used again.</p>\n<p>For the duration, the walls count as the Titan's space for the purpose of originating effects such as <strong>Pseudopod </strong>and <strong>Acid Arrow</strong>.</p>",
          "chat": "",
          "unidentified": ""
        },
        "source": "",
        "activation": {
          "type": "lair",
          "cost": 1,
          "condition": ""
        },
        "duration": {
          "value": null,
          "units": ""
        },
        "target": {
          "value": null,
          "width": null,
          "units": "",
          "type": ""
        },
        "range": {
          "value": null,
          "long": null,
          "units": ""
        },
        "uses": {
          "value": null,
          "max": "",
          "per": ""
        },
        "consume": {
          "type": "",
          "target": "",
          "amount": null
        },
        "ability": null,
        "actionType": "",
        "attackBonus": 0,
        "chatFlavor": "",
        "critical": {
          "threshold": null,
          "damage": ""
        },
        "damage": {
          "parts": [],
          "versatile": ""
        },
        "formula": "",
        "save": {
          "ability": "",
          "dc": null,
          "scaling": "spell"
        },
        "requirements": "",
        "recharge": {
          "value": null,
          "charged": false
        },
        "cptooltipmode": [
          "hid",
          "hid"
        ]
      },
      "effects": [],
      "folder": null,
      "sort": 0,
      "permission": {
        "default": 0,
        "YzZjZDc3YWI5MmI4": 3
      },
      "flags": {
        "magicitems": {
          "enabled": false,
          "equipped": false,
          "attuned": false,
          "charges": "0",
          "chargeType": "c1",
          "destroy": false,
          "destroyFlavorText": "reaches 0 charges: it crumbles into ashes and is destroyed.",
          "rechargeable": false,
          "recharge": "0",
          "rechargeType": "t1",
          "rechargeUnit": "r1",
          "sorting": "l"
        },
        "betterRolls5e": {
          "quickDesc": {
            "value": true,
            "altValue": true
          },
          "quickProperties": {
            "value": true,
            "altValue": true
          },
          "quickOther": {
            "value": true,
            "altValue": true
          },
          "quickFlavor": {
            "value": true,
            "altValue": true
          }
        }
      }
    },
    {
      "_id": "pwPKimpEYyzTpF07",
      "name": "Multiattack",
      "type": "feat",
      "img": "icons/skills/melee/blade-tips-triple-steel.webp",
      "data": {
        "description": {
          "value": "<p>The Gelatinous Titan can make 3 Pseudopod attacks. It can replace these to cast spells without components or concentration:</p>\n<ul>\n<li>1 Attack: @Compendium[owlmarble-magic.spells.nwabdQm5Kv8Nhadu]{Tasha's Caustic Brew}</li>\n<li>2 Attacks: @Compendium[owlmarble-magic.spells.QoM18E2hZcFL24Bo]{Melf's Acid Arrow}</li>\n<li>3 Attacks: @Compendium[owlmarble-magic.spells.irRfPBRIQbQX3d2f]{Acid Rain}</li>\n</ul>",
          "chat": "",
          "unidentified": ""
        },
        "source": "",
        "activation": {
          "type": "action",
          "cost": 1,
          "condition": ""
        },
        "duration": {
          "value": null,
          "units": ""
        },
        "target": {
          "value": null,
          "width": null,
          "units": "",
          "type": ""
        },
        "range": {
          "value": null,
          "long": null,
          "units": ""
        },
        "uses": {
          "value": 0,
          "max": "0",
          "per": ""
        },
        "consume": {
          "type": "",
          "target": "",
          "amount": null
        },
        "ability": null,
        "actionType": "",
        "attackBonus": 0,
        "chatFlavor": "",
        "critical": {
          "threshold": null,
          "damage": ""
        },
        "damage": {
          "parts": [],
          "versatile": ""
        },
        "formula": "",
        "save": {
          "ability": "",
          "dc": null,
          "scaling": "spell"
        },
        "requirements": "",
        "recharge": {
          "value": null,
          "charged": false
        },
        "attunement": null,
        "cptooltipmode": [
          "hid",
          "hid"
        ]
      },
      "effects": [],
      "folder": null,
      "sort": 0,
      "permission": {
        "default": 0,
        "YzZjZDc3YWI5MmI4": 3
      },
      "flags": {
        "core": {
          "sourceId": "Compendium.dnd5e.monsterfeatures.EqoLg8T8EHvhJgKE"
        },
        "magicitems": {
          "enabled": false,
          "equipped": false,
          "attuned": false,
          "charges": "0",
          "chargeType": "c1",
          "destroy": false,
          "destroyFlavorText": "reaches 0 charges: it crumbles into ashes and is destroyed.",
          "rechargeable": false,
          "recharge": "0",
          "rechargeType": "t1",
          "rechargeUnit": "r1",
          "sorting": "l"
        },
        "betterRolls5e": {
          "quickDesc": {
            "value": true,
            "altValue": true
          },
          "quickProperties": {
            "value": true,
            "altValue": true
          },
          "quickOther": {
            "value": true,
            "altValue": true
          },
          "quickFlavor": {
            "value": true,
            "altValue": true
          }
        }
      }
    },
    {
      "_id": "KLt2GjgSfZ46TjqJ",
      "name": "Pseudopod",
      "type": "feat",
      "img": "modules/taring-kyburn/icons/skills/green_28.jpg",
      "data": {
        "description": {
          "value": "<p>The Gelatinous Titan makes a pseudopod attack.</p>",
          "chat": "",
          "unidentified": ""
        },
        "source": "",
        "activation": {
          "type": "legendary",
          "cost": 1,
          "condition": ""
        },
        "duration": {
          "value": null,
          "units": "inst"
        },
        "target": {
          "value": null,
          "width": null,
          "units": "",
          "type": ""
        },
        "range": {
          "value": 5,
          "long": null,
          "units": "ft"
        },
        "uses": {
          "value": null,
          "max": "",
          "per": ""
        },
        "consume": {
          "type": "",
          "target": "",
          "amount": null
        },
        "ability": "",
        "actionType": "",
        "attackBonus": "0",
        "chatFlavor": "",
        "critical": {
          "threshold": null,
          "damage": ""
        },
        "damage": {
          "parts": [],
          "versatile": ""
        },
        "formula": "",
        "save": {
          "ability": "",
          "dc": null,
          "scaling": "spell"
        },
        "requirements": "",
        "recharge": {
          "value": null,
          "charged": false
        },
        "cptooltipmode": [
          "hid",
          "hid"
        ]
      },
      "effects": [],
      "folder": null,
      "sort": 0,
      "permission": {
        "default": 0,
        "YzZjZDc3YWI5MmI4": 3
      },
      "flags": {
        "magicitems": {
          "enabled": false,
          "equipped": false,
          "attuned": false,
          "charges": "0",
          "chargeType": "c1",
          "destroy": false,
          "destroyFlavorText": "reaches 0 charges: it crumbles into ashes and is destroyed.",
          "rechargeable": false,
          "recharge": "0",
          "rechargeType": "t1",
          "rechargeUnit": "r1",
          "sorting": "l"
        },
        "betterRolls5e": {
          "quickDesc": {
            "value": true,
            "altValue": true
          },
          "quickProperties": {
            "value": true,
            "altValue": true
          },
          "quickOther": {
            "value": true,
            "altValue": true,
            "context": ""
          },
          "quickFlavor": {
            "value": true,
            "altValue": true
          },
          "quickAttack": {
            "value": true,
            "altValue": true
          }
        },
        "rest-recovery": {
          "data": {
            "recovery": {
              "enabled": false
            }
          }
        },
        "journal-backlinks": {
          "references": {}
        }
      }
    },
    {
      "_id": "l5Bjg9glAItTwyD6",
      "name": "Titan Movement",
      "type": "feat",
      "img": "modules/taring-kyburn/icons/skills/57_run.png",
      "data": {
        "description": {
          "value": "<p>Each 5 degrees of rotation consumes 5 feet of movement for the cube.</p>",
          "chat": "",
          "unidentified": ""
        },
        "source": "",
        "activation": {
          "type": "",
          "cost": 0,
          "condition": ""
        },
        "duration": {
          "value": null,
          "units": ""
        },
        "target": {
          "value": null,
          "width": null,
          "units": "",
          "type": ""
        },
        "range": {
          "value": null,
          "long": null,
          "units": ""
        },
        "uses": {
          "value": null,
          "max": "",
          "per": null
        },
        "consume": {
          "type": "",
          "target": null,
          "amount": null
        },
        "ability": null,
        "actionType": "",
        "attackBonus": 0,
        "chatFlavor": "",
        "critical": {
          "threshold": null,
          "damage": ""
        },
        "damage": {
          "parts": [],
          "versatile": ""
        },
        "formula": "",
        "save": {
          "ability": "",
          "dc": null,
          "scaling": "spell"
        },
        "requirements": "",
        "recharge": {
          "value": null,
          "charged": false
        },
        "cptooltipmode": [
          "hid",
          "hid"
        ]
      },
      "effects": [],
      "folder": null,
      "sort": 0,
      "permission": {
        "default": 0,
        "YzZjZDc3YWI5MmI4": 3
      },
      "flags": {
        "magicitems": {
          "enabled": false,
          "equipped": false,
          "attuned": false,
          "charges": "0",
          "chargeType": "c1",
          "destroy": false,
          "destroyFlavorText": "reaches 0 charges: it crumbles into ashes and is destroyed.",
          "rechargeable": false,
          "recharge": "0",
          "rechargeType": "t1",
          "rechargeUnit": "r1",
          "sorting": "l"
        },
        "betterRolls5e": {
          "quickDesc": {
            "value": true,
            "altValue": true
          },
          "quickProperties": {
            "value": true,
            "altValue": true
          },
          "quickOther": {
            "value": true,
            "altValue": true
          },
          "quickFlavor": {
            "value": true,
            "altValue": true
          }
        }
      }
    }
  ],
  "effects": [],
  "flags": {
    "srd5e": {
      "page": "bestiary.html",
      "source": "MM",
      "hash": "gelatinous%20cube_mm"
    },
    "tidy5e-sheet": {},
    "journal-backlinks": {
      "referencedBy": {
        "JournalEntry": [
          "3VFm154YcqiviPlW",
          "0EUct3sI3cU2HMce",
          "6pDdaHoMNdShYKpX"
        ],
        "Item": [
          "uTBYv1s6O1oR7C5u"
        ]
      },
      "references": {}
    },
    "core": {
      "sourceId": "Actor.ve5utgNjMJgjpFys"
    },
    "exportSource": {
      "world": "the-chainbreaker",
      "system": "dnd5e",
      "coreVersion": "9.269",
      "systemVersion": "1.6.1"
    }
  }
}
etriebe commented 2 years ago

Awesome! I'll take a look tonight! Thanks for attaching the broken actor. 😀

etriebe commented 2 years ago

OK, this is happening because the legendary action itself is referencing another action... I previously had logic that could handle this but cleaned it up to just reference anything that is listed as a Legendary Action and assume that action was the action to execute. That's one way for you to fix this without any change on my side.

I'll look into adding this referential logic back in, but it will be more error prone than the above model. Basically I'm relying on correctly parsing the attack text correctly to see and then making a match with an existing item. It would be fairly simple in this case but I could foresee slight misspellings or references being slightly off, which would cause this to miss. For example, I had seen on some characters, "Actor makes a sword attack" and then the sword is named "Lightbringer". So it's quite difficult to make that inference in that case.

But I'll add this as a fall back if I find that there is nothing interesting in the attack for the first pass! This will always be a best-case type scenario. :)

etriebe commented 2 years ago

Resolved in release 1.0.13

https://github.com/etriebe/combat-estimate/releases/tag/1.0.13