Saibot393 / LocknKey

A Foundry VTT module to handle locking and unlocking of doors and other objects
MIT License
10 stars 7 forks source link

Request feature: Fallout 2d20 system rolling for lock picking. #104

Open OvanLRU opened 3 months ago

OvanLRU commented 3 months ago

Rolling for lock picking for the 2d20 system Fallout.

Saibot393 commented 3 months ago

The basics of the 2d20 Fallout system are already supported, the formula for lock picking for example would look like this: 2d20cs>=(@actor.system.attributes.per.value + @skills.Lockpick.system.value), i plan on adding other features like crits and buying additional dice latter when i have a bit more time

Soundwavesghost commented 1 month ago

I put the 2d20cs>=(@actor.system.attributes.per.value + @skills.Lockpick.system.value) in the thing and set it to use the Bobby Pin item and then set the Bobby Pin item to use the same 2d20cs>=(@actor.system.attributes.per.value + @skills.Lockpick.system.value) but nothing seems to happen. Tried resetting all my settings to default and when put back in it doesn't seem to report anything checking error log now....

<html>
<body>
<!--StartFragment--><div aria-expanded="true" tabindex="-1" style="box-sizing: border-box; min-width: 0px; min-height: 0px; outline-width: 0px; flex: 0 0 auto; color: rgb(25, 29, 23); font-family: monospace; font-size: 12px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; white-space: normal; background-color: rgb(252, 235, 235); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;"><span class="source-code" style="box-sizing: border-box; min-width: 0px; min-height: 0px; font-family: var(--source-code-font-family); white-space: pre-wrap; font-size: var(--source-code-font-size) !important; line-height: 1.2;"><span class="console-message-anchor" style="box-sizing: border-box; min-width: 0px; min-height: 0px; float: right; text-align: right; max-width: 100%; margin-left: 4px;"><button class="devtools-link text-button link-style" jslog="Link; context: script-location; track: click" role="link" tabindex="-1" title="http://99.115.42.25:30000/scripts/foundry-esm.js:64299" style="box-sizing: border-box; min-width: 0px; min-height: 0px; font: inherit; margin: 0px; height: unset; border: none; border-radius: 2px; padding: 0px !important; color: var(--sys-color-primary); background: none; flex: 0 0 auto; white-space: nowrap; text-decoration: underline; outline-offset: 2px; outline: none; cursor: pointer; max-width: 100%; overflow: hidden; text-overflow: ellipsis; word-break: break-all;"><br class="Apple-interchange-newline">foundry-esm.js:64299</button> </span><span class="console-message-text" style="box-sizing: border-box; min-width: 0px; min-height: 0px; color: var(--override-error-text-color) !important;">Uncaught (in promise) <span class="object-value-error source-code" style="box-sizing: border-box; min-width: 0px; min-height: 0px; font-family: var(--source-code-font-family); white-space: pre-wrap; font-size: var(--source-code-font-size) !important; line-height: 1.2;"><div style="box-sizing: border-box; min-width: 0px; min-height: 0px;">SyntaxError: Expected "[", [%*/], [+\-], [^ (){}[\]$+\-*/,], end of input, or whitespace but "(" found. (at <button class="devtools-link text-button link-style" jslog="Link; context: script-location; track: click" role="link" tabindex="-1" title="http://99.115.42.25:30000/scripts/foundry-esm.js:64299:22" style="box-sizing: border-box; min-width: 0px; min-height: 0px; font: inherit; margin: 0px; height: unset; border: none; border-radius: 2px; padding: 0px !important; color: var(--sys-color-primary); background: none; flex: 0 0 auto; white-space: nowrap; text-decoration: underline; outline-offset: 2px; outline: none; cursor: pointer; max-width: 100%; overflow: hidden; text-overflow: ellipsis; word-break: break-all;">foundry-esm.js:64299:22</button>)
<span style="box-sizing: border-box; min-width: 0px; min-height: 0px;">    at new peg$SyntaxError (<button class="devtools-link text-button link-style" jslog="Link; context: script-location; track: click" role="link" tabindex="-1" title="http://99.115.42.25:30000/scripts/foundry-esm.js:64299:22" style="box-sizing: border-box; min-width: 0px; min-height: 0px; font: inherit; margin: 0px; height: unset; border: none; border-radius: 2px; padding: 0px !important; color: var(--sys-color-primary); background: none; flex: 0 0 auto; white-space: nowrap; text-decoration: underline; outline-offset: 2px; outline: none; cursor: pointer; max-width: 100%; overflow: hidden; text-overflow: ellipsis; word-break: break-all;">foundry-esm.js:64299:22</button>)
</span><span style="box-sizing: border-box; min-width: 0px; min-height: 0px;">    at peg$buildStructuredError (<button class="devtools-link text-button link-style" jslog="Link; context: script-location; track: click" role="link" tabindex="-1" title="http://99.115.42.25:30000/scripts/foundry-esm.js:64674:14" style="box-sizing: border-box; min-width: 0px; min-height: 0px; font: inherit; margin: 0px; height: unset; border: none; border-radius: 2px; padding: 0px !important; color: var(--sys-color-primary); background: none; flex: 0 0 auto; white-space: nowrap; text-decoration: underline; outline-offset: 2px; outline: none; cursor: pointer; max-width: 100%; overflow: hidden; text-overflow: ellipsis; word-break: break-all;">foundry-esm.js:64674:14</button>)
</span><span style="box-sizing: border-box; min-width: 0px; min-height: 0px;">    at Object.peg$parse [as parse] (<button class="devtools-link text-button link-style" jslog="Link; context: script-location; track: click" role="link" tabindex="-1" title="http://99.115.42.25:30000/scripts/foundry-esm.js:65650:13" style="box-sizing: border-box; min-width: 0px; min-height: 0px; font: inherit; margin: 0px; height: unset; border: none; border-radius: 2px; padding: 0px !important; color: var(--sys-color-primary); background: none; flex: 0 0 auto; white-space: nowrap; text-decoration: underline; outline-offset: 2px; outline: none; cursor: pointer; max-width: 100%; overflow: hidden; text-overflow: ellipsis; word-break: break-all;">foundry-esm.js:65650:13</button>)
</span><span style="box-sizing: border-box; min-width: 0px; min-height: 0px;">    at Roll.parse (<button class="devtools-link text-button link-style" jslog="Link; context: script-location; track: click" role="link" tabindex="-1" title="http://99.115.42.25:30000/scripts/foundry-esm.js:63875:45" style="box-sizing: border-box; min-width: 0px; min-height: 0px; font: inherit; margin: 0px; height: unset; border: none; border-radius: 2px; padding: 0px !important; color: var(--sys-color-primary); background: none; flex: 0 0 auto; white-space: nowrap; text-decoration: underline; outline-offset: 2px; outline: none; cursor: pointer; max-width: 100%; overflow: hidden; text-overflow: ellipsis; word-break: break-all;">foundry-esm.js:63875:45</button>)
</span><span style="box-sizing: border-box; min-width: 0px; min-height: 0px;">    at new Roll (<button class="devtools-link text-button link-style" jslog="Link; context: script-location; track: click" role="link" tabindex="-1" title="http://99.115.42.25:30000/scripts/foundry-esm.js:63222:37" style="box-sizing: border-box; min-width: 0px; min-height: 0px; font: inherit; margin: 0px; height: unset; border: none; border-radius: 2px; padding: 0px !important; color: var(--sys-color-primary); background: none; flex: 0 0 auto; white-space: nowrap; text-decoration: underline; outline-offset: 2px; outline: none; cursor: pointer; max-width: 100%; overflow: hidden; text-overflow: ellipsis; word-break: break-all;">foundry-esm.js:63222:37</button>)
</span><span style="box-sizing: border-box; min-width: 0px; min-height: 0px;">    at LnKutils.createroll (<button class="devtools-link text-button link-style" jslog="Link; context: script-location; track: click" role="link" tabindex="-1" title="http://99.115.42.25:30000/modules/LocknKey/scripts/utils/LnKutils.js:920:15" style="box-sizing: border-box; min-width: 0px; min-height: 0px; font: inherit; margin: 0px; height: unset; border: none; border-radius: 2px; padding: 0px !important; color: var(--sys-color-primary); background: none; flex: 0 0 auto; white-space: nowrap; text-decoration: underline; outline-offset: 2px; outline: none; cursor: pointer; max-width: 100%; overflow: hidden; text-overflow: ellipsis; word-break: break-all;">LnKutils.js:920:15</button>)
</span><span style="box-sizing: border-box; min-width: 0px; min-height: 0px;">    at KeyManager.onatemptedcircumventLock (<button class="devtools-link text-button link-style" jslog="Link; context: script-location; track: click" role="link" tabindex="-1" title="http://99.115.42.25:30000/modules/LocknKey/scripts/KeyManager.js:243:24" style="box-sizing: border-box; min-width: 0px; min-height: 0px; font: inherit; margin: 0px; height: unset; border: none; border-radius: 2px; padding: 0px !important; color: var(--sys-color-primary); background: none; flex: 0 0 auto; white-space: nowrap; text-decoration: underline; outline-offset: 2px; outline: none; cursor: pointer; max-width: 100%; overflow: hidden; text-overflow: ellipsis; word-break: break-all;">KeyManager.js:243:24</button>)</span></div></span></span></span></div><div class="" role="group" style="box-sizing: border-box; min-width: 0px; min-height: 0px; flex: 0 0 auto; color: rgb(25, 29, 23); font-family: monospace; font-size: 12px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; white-space: normal; background-color: rgb(252, 235, 235); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;"><span class="monospace stack-preview-container width-constrained" style="display: inline-block; --monospace-font-size: 12px; --monospace-font-family: monospace; --source-code-font-size: 12px; --source-code-font-family: monospace; width: 472.891px; box-sizing: border-box; min-width: 0px; min-height: 0px; font-family: var(--monospace-font-family); font-size: var(--monospace-font-size) !important;">
  | peg$SyntaxError | @ | foundry-esm.js:64299
-- | -- | -- | --
  | peg$buildStructuredError | @ | foundry-esm.js:64674
  | peg$parse | @ | foundry-esm.js:65650
  | parse | @ | foundry-esm.js:63875
  | Roll | @ | foundry-esm.js:63222
  | createroll | @ | LnKutils.js:920
  | onatemptedcircumventLock | @ | KeyManager.js:243
  | await in onatemptedcircumventLock |   |  
  | onatemptedLockuse | @ | KeyManager.js:124
  | PickHoveredLock | @ | KeyManager.js:729
  | onDown | @ | LnKSettings.js:611
  | _executeKeybind | @ | foundry.js:2462
  | _processKeyboardContext | @ | foundry.js:2503
  | _handleKeyboardEvent | @ | foundry.js:2561
  | (anonymous) | @ | foundry.js:2175

</span></div><!--EndFragment-->
</body>
</html>
Saibot393 commented 1 month ago

A foundry update seems to have changed something about the way rolls/roll formulas work. I will investigate

Saibot393 commented 1 month ago

Btw., which Foundry version are you using?

Saibot393 commented 1 month ago

Ok, from what i can gather, this is an already known Foundry core bug, as reported by FoundryVTT staff. This sadly is something i can not really do anything about at the moment, sorry.

Soundwavesghost commented 1 month ago

Dang. Thanks for looking at least!