1. 09 Apr, 2021 1 commit
    • Leon Arnott's avatar
      Fixed two more bugs. · 2044cf5b7eb3
      Leon Arnott authored
       * Fixed a bug where custom macros stored in story-wide variables wouldn't be preserved when reloading the page in the browser (restoring the game state using session storage) and would instead become erroneous data.
       * Fixed a bug where (input-box:) crashed upon the first inputted character if you didn't supply the optional bound variable.
      
      Closes #219. Closes #220.
      2044cf5b7eb3
  2. 07 Apr, 2021 1 commit
    • Leon Arnott's avatar
      Fixed two more bugs. · 5d1c80c5f9c9
      Leon Arnott authored
       * Fixed a long-standing bug where combined changers weren't being properly copied, and adding more changers to them would mutate variables that were storing that changer.
       * Fixed a bug where, upon supplying a label string to (meter:), any updates to the meter would cause that label to gain any styles, such as (border:) borders, that had been given to the meter itself.
      5d1c80c5f9c9
  3. 03 Apr, 2021 1 commit
    • Leon Arnott's avatar
      Fixed two more bugs. · 0502b84201d2
      Leon Arnott authored
      * Fixed a bug where custom macros couldn't call other custom macros if the other macro's (output:) or (output-hook:) was inside a nested hook, such as an (if:) hook.
      * Fixed a bug where (icon-restart:) didn't restart the story when clicked.
      0502b84201d2
  4. 29 Mar, 2021 1 commit
    • Leon Arnott's avatar
      Fixed two bugs. · 04586875cfa9
      Leon Arnott authored
       * Fixed a long-standing bug where line breaks couldn't be used as whitespace around operators.
       * Fixed a bug where bind and 2bind wouldn't work properly when the bound variable was a data structure name (such as "bind $list's 1st").
      04586875cfa9
  5. 26 Mar, 2021 1 commit
  6. 20 Mar, 2021 1 commit
  7. 12 Jan, 2021 1 commit
    • Leon Arnott's avatar
      Fixed a bug where the effects of (enchant:) were temporarily suppressed... · fba54515c656
      Leon Arnott authored
      Fixed a bug where the effects of (enchant:) were temporarily suppressed whenever a (dialog:), (prompt:) or `(confirm:)` was run at roughly the same time.
      
      This isn't the fix I wanted to make (instead I'd rather it only call updateEnchantments() when it explicitly needs to), but it'll have to do for now.
      
      Also fixed a bug where the Styles panel of The Harlowe Toolbar didn't preview animations correctly.
      
      Closes #203.
      fba54515c656
  8. 06 Jan, 2021 1 commit
  9. 04 Jan, 2021 2 commits
    • Leon Arnott's avatar
      Added tag v3.2.0 for changeset 0105ea458331 · a0cfe7899f6c
      Leon Arnott authored
      a0cfe7899f6c
    • Leon Arnott's avatar
      Fixed several post-release bugs. · 94a33b89e02b
      Leon Arnott authored
       * Fixed a bug where, when a transition finished, if the browser experienced lag due to a large number of other elements being present, the transitioning element's visibility could become hidden briefly before Harlowe removed the transition CSS from it.
       * Fixed a bug where (set:), (put:), (move:) and (unpack:) would produce objects with invalid TwineScript_Print() methods outside of Debug Mode, thus polluting the browser console with errors.
       * Fixed a bug where Debug Mode's Enchantments panels' headers were being drawn incorrectly.
       * Greatly improved the performance of Debug Mode's panels, reducing lag caused by a large number of entries being added to a panel at once.
      
      Closes #201.
      94a33b89e02b
  10. 31 Dec, 2020 1 commit
  11. 15 Dec, 2020 2 commits
  12. 14 Dec, 2020 1 commit
    • Leon Arnott's avatar
      Normalised the meaning of spread datatypes inside arrays and string patterns,... · 2a5ad37f5cbb
      Leon Arnott authored
      Normalised the meaning of spread datatypes inside arrays and string patterns, fixing an ambiguity where spread string datatypes (like ...whitespace) referred to both strings of multiple whitespace and arrays of multiple strings of whitespace.
      
      Also:
       * Updated the logo, and left it unoptimised due to the previous version not rendering correctly in Chrome.
       * Fixed a bug where the 'anycase' datatype wasn't permitted in (p:) macros.
       * Fixed a bug in the previous commit where (icon-restart:)'s name wasn't recognised.
       * A few panels in The Harlowe Toolbar now support generating (enchant:?passage) calls.
      2a5ad37f5cbb
  13. 13 Dec, 2020 1 commit
  14. 12 Dec, 2020 1 commit
    • Leon Arnott's avatar
      Renamed (reload:) and (icon-reload:) to (restart:) and (icon-restart:),... · 7b92f6378bb8
      Leon Arnott authored
      Renamed (reload:) and (icon-reload:) to (restart:) and (icon-restart:), keeping (reload:) as an alias.
      
      Also:
       * Fixed some minor things in The Harlowe Toolbar, as well as added a minimise button to the whole thing.
       * Columns and aligners no longer have title text in Debug Mode, due to it being kind of confusing.
       * Trying out the notion that <tw-transition-container>s should never get "inline-block" at all, instead just "inline" or "block". I checked the original commit for this (a38a93a77b97), and I don't believe it was ultimately correct.
       * Fixed another Chrome opacity bug with transitions.
       * Fixed a CSS bug with <tw-dialog-links>, caused by Chrome not supporting justify-content:end.
       * Added a TwineScript_is() method to basic commands, allowing them to be considered equal by `is` in most situations where that matters.
      7b92f6378bb8
  15. 11 Dec, 2020 1 commit
  16. 09 Dec, 2020 1 commit
    • Leon Arnott's avatar
      Added (after:), a shorthand form of (event:) similar to that in Chapbook. · 34c6fe2af64e
      Leon Arnott authored
      Notable about this macro design, unlike its (event:) form, is that it contains an optional "skip" parameter similar to that for (t8n-skip:).
      
      Also:
       * Fixed a bug in the previous commit (which should've included <tw-story> as its exception).
       * Fiddled with various parts of the documentation.
       * Tweaked (palette:) to produce less dark link text whenever the produced normal text colour is rather dark.
      34c6fe2af64e
  17. 08 Dec, 2020 1 commit
    • Leon Arnott's avatar
      Fixed (source:) not producing an error when given custom macro commands. · ce60520ec347
      Leon Arnott authored
      Also:
       * Tweaked some more documentation articles.
       * Fixed the CSS for (button:) links.
       * Updated introduction.md with a 3.2.0 introduction.
       * Found myself forced to make the childrenProbablyInline() check in transitionIn() and transitionOut() occur in a timeout, so that section expression execution could be performed, and thus changers like (box:) could provide the <tw-transition-container> with the correct display property. Also decided, to ensure .enchantment-button works correctly, that childrenProbablyInline() should actually call upon getComputedStyle() when appraising hard-to-judge elements, instead of just using the .style.display property.
      ce60520ec347
  18. 05 Dec, 2020 1 commit
    • Leon Arnott's avatar
      IAdded (hooks-named:), as well as the debugging macros (assert:) and (assert-exists:). · e40ece040a6a
      Leon Arnott authored
      (assert-exists:) is designed as something of a compromise over adding a non-nullable hook selector, pleading that such a selector proved too complicated to add in terms of concatenation with nullable selectors, making various non-error-propagating methods suddenly able to propagate errors, etc. When I added this, (assert:) naturally had to follow.
      
      I MAY change (hooks-named:) to just (hooks:), or perhaps add some aliases for it.
      
      Closes #32. Closes #196.
      
      Also:
       * Fixed a bug where (meter:) wouldn't work properly with fractional variables.
       * Added some more block elements to usuallyBlockElements in Utils.
      e40ece040a6a
  19. 03 Dec, 2020 1 commit
    • Leon Arnott's avatar
      Added (animate:), a command to re-apply a transition to an already existing hook. · e35e035aca69
      Leon Arnott authored
      This was added simply because I noticed people could use (t8n:) and (rerun:) to accomplish this, and I wanted this little hack to have a proper idiom. As it is, it isn't too useful due to
      the current suite of transitions involve the hook slowly appearing (with "rumble" and "shudder" notable exceptions), but maybe a few more could be added.
      
      As it is, I added one more transition: "blur", which uses the new CSS filters to make a hook appear from a blur.
      
      Also fixed Utils.childrenProbablyInline() a bit more.
      e35e035aca69
  20. 01 Dec, 2020 1 commit
    • Leon Arnott's avatar
      Fixed, in a somewhat forceful fashion, bugs where (button:) links (plus a lot... · e918daa6aa26
      Leon Arnott authored
      Fixed, in a somewhat forceful fashion, bugs where (button:) links (plus a lot of other block elements) would be forced into inline flow during some transitions, due to <tw-transition-container> being given 'display:inline-block'.
      
      This COULD cause some issues with some other transitioning elements (not to mention custom story structures), but it seems to be working as intended at present.
      
      Also:
      
       * Fixed the border of (input-box:) elements, such that (border:) can alter it correctly.
       * Made it so that various 3.2.0 commands that should not have changers attached will now correctly error when that happens.
       * Fixed the sizing of "button" links in (dialog:) dialogs.
      e918daa6aa26
  21. 30 Nov, 2020 1 commit
  22. 29 Nov, 2020 1 commit
    • Leon Arnott's avatar
      Added (stripes:), a variant of (gradient:) which creates a striped background... · e848ddef76a5
      Leon Arnott authored
      Added (stripes:), a variant of (gradient:) which creates a striped background (for use with (background:)) when given a given stripe width, angle, and colours.
      
      As of now, the adjusted "stops" data value on (stripes:)'s gradients may seem ugly, but it leaves the possibility open for someday adding (repeating-gradient:), which would use the same {pixels,colour} names.
      
      Also fixed a long-standing bug where, due to a precedence conflict, writing something like `$a's stops's (1)` would cause a Javascript error.
      e848ddef76a5
  23. 26 Nov, 2020 1 commit
  24. 25 Nov, 2020 2 commits
    • Leon Arnott's avatar
      Altered the syntax highlighting to add a dotted line indicating when changers... · d1b0b20b62cd
      Leon Arnott authored
      Altered the syntax highlighting to add a dotted line indicating when changers and variables will attach to hooks, eliminating whitespace.
      
      This is by no means perfect, but is still, in my mind, better than having no visual indication whatsoever. This also brings along two tooltips related to changer attachment.
      
      Also added some syntax highlighting colours for a few common operators.
      d1b0b20b62cd
    • Leon Arnott's avatar
      Added (button:), a styling changer for links, as well as added an optional... · d2716f3f6368
      Leon Arnott authored
      Added (button:), a styling changer for links, as well as added an optional "unavailable" text string argument to (link-storylet:).
      
      Having a drop-in styling option for links that makes them more closely resemble other contemporary IF engines' links has been something I've gradually accepted as desirable. That being said, getting this working with every kind of "link" in this engine has forced me to use a CSS class name (a namespace I'm loathe to use unnecessarily).
      
      I feel a bit more positive about (link-storylet:) now that the optional argument and the aformentioned changer are available.
      
      Also fixed a bug where (align:) would override (box:)'s width with its max-width.
      d2716f3f6368
  25. 22 Nov, 2020 1 commit
    • Leon Arnott's avatar
      Added a (meter:) command macro, used for creating a videogame bar-graph meter... · 7dffab3fe719
      Leon Arnott authored
      Added a (meter:) command macro, used for creating a videogame bar-graph meter that's bound to a numeric variable.
      
      I'm rather satisfied with this implementation of meters. The only concern right now is that it's the only "interface" macro in the documentation.
      
      Also fixed a bug with (enchant:) where errors produced by the given lambda wouldn't be reported.
      7dffab3fe719
  26. 19 Nov, 2020 1 commit
    • Leon Arnott's avatar
      Added a "itself + value" and "variable + value" input interface to the Var... · 98e0788c9907
      Leon Arnott authored
      Added a "itself + value" and "variable + value" input interface to the Var panel of The Harlowe Toolbar.
      
      This essentially "completes" the Var panel, as it allows variables to not just be created, but updated, too. Still a few tweaks are left to be made, though.
      
      Also tweaked the "fidget" (text-style:) animation.
      98e0788c9907
  27. 15 Nov, 2020 1 commit
  28. 14 Nov, 2020 1 commit
    • Leon Arnott's avatar
      Added (link-storylet:). Also, link changers now accept an optional changer as... · 86ae1865d162
      Leon Arnott authored
      Added (link-storylet:). Also, link changers now accept an optional changer as their second argument, which is used to style the link and not the hook.
      
      After normalising the behaviour of the (link:) family of changers and other changers combined with them, I'd been stressing out about how to make (link:) links alterable with changers. This solution, the most direct one available, is a little uncomfortable to me because of how much further it differs from the command links' behaviour (as in, (link-goto:)). However, since those already have significant syntactic differences due to being commands rather than changers, I wonder if this divergence of usage might also assist in understanding how unalike they are.
      
      I don't feel very optimistic about (link-storylet:)'s behaviour when no storylet matches the given condition - just printing nothing - and might rework its arguments to make it easier to control what exactly it prints in any situation.
      86ae1865d162
  29. 09 Nov, 2020 1 commit
  30. 08 Nov, 2020 1 commit
    • Leon Arnott's avatar
      Added column headers to the Debug Mode table panels, and added "Urgency" and... · 1f92a3d6dd16
      Leon Arnott authored
      Added column headers to the Debug Mode table panels, and added "Urgency" and "Exclusivity" columns to the Storylet panel.
      
      Also:
       * Altered the pseudo-element CSS for (click:), (mouseover:) and (mouseout:) to work correctly with the (box:) macro.
       * Markup that's inside the verbatim markup will no longer be syntax-highlighted as if it was outside it.
       * Fixed a few documentation mistakes.
      1f92a3d6dd16
  31. 04 Nov, 2020 1 commit
    • Leon Arnott's avatar
      Added (urgency:) and (exclusivity:) metadata macros, which affect the... · d5c3f19208db
      Leon Arnott authored
      Added (urgency:) and (exclusivity:) metadata macros, which affect the (open-storylets:) array's contents when they are used in an open storylet.
      
      I plan to add a command macro or two to provide slightly easier consumption of the storylet array than just (open-storylets:), and an increase in accessibility will mean convenience macros like these will be helpful.
      d5c3f19208db
  32. 02 Nov, 2020 2 commits
  33. 30 Oct, 2020 1 commit
    • Leon Arnott's avatar
      Added two interface macros, (icon-counter:) and (checkbox:), as well as a changer, (opacity:). · 0defb9d609c6
      Leon Arnott authored
      (icon-counter:) is designed as a built-in solution to putting UI displays in the sidebar, which authors have tended to do over the years. Being a mere display element instead of a clickable icon, it doesn't have the same default opacity as the other icons. (opacity:) had to be added in order to make the default opacity of sidebar icons alterable, if one wanted to bring them all into line with each other.
      
      (checkbox:) has been a long-time obvious addition to bring in from SugarCube. It also makes me want to add (checkbox-fullscreen:), as a counterpart to the link form of fullscreen activation.
      
      Also fixed a 2bind-related bug with (input-box:).
      0defb9d609c6
  34. 27 Oct, 2020 1 commit
    • Leon Arnott's avatar
      Added (str-nth:). Also, the icons produced by the icon command macros can now... · b2aa5e6ccc3b
      Leon Arnott authored
      Added (str-nth:). Also, the icons produced by the icon command macros can now have optional text labels added.
      
      These optional text labels are a string argument alongside the optional Unicode glyph string. They are differentiated solely by length, which results in a somewhat unusual type signature for these macros, but one which isn't too bothersome.
      
      The naming of (str-nth:) compared to (nth:) is also something that's a little unfortunate, but I don't think (str-nth:) is quite as useful on the whole as (nth:) is, so I assume it'll be fine given there's not as much chance of confusing the latter for the former.
      b2aa5e6ccc3b
  35. 26 Oct, 2020 1 commit
    • Leon Arnott's avatar
      Added two value macros, (plural:) and (trunc:). · 45cc28361d53
      Leon Arnott authored
      Adding some extra string and number utilities has been on my mind for awhile, but I've been less inclined to them until now due to the dry nature of implementing them. More will come soon, I believe.
      45cc28361d53
  36. 24 Oct, 2020 1 commit