Releases: inkle/ink
Version 0.7.2
- New constructor for InkList to make it easy to construct a new list from a particular origin at runtime.
- Compiler checks weaves for weave point (gather/choice) naming collisions.
Version 0.7.1
In rough order of coolness, from "um?" to "yawn":
- Ability to pass arguments to knots (or functions) from the game.
- Exposed list functionality to game so that you can work with
InkListItem
objects that the engine uses internally. - Multi-line sequence elements can now contain weaves (with choices) - previously they could only contain simple content.
- Made
!=
operator work on strings. - ink-engine-runtime.csproj converted to a PCL (Portable Class Library) (thanks @iainmerrick!)
- Unity integration: Auto-generated InkLibrary.asset has been split up into InkLibrary and InkSettings.
- Fixes for calling ink functions from game code
- Fix for native functions that take arguments that need to have references resolved
- Fix for compiler crash when there's an empty thread
- Fix for thread IDs not being correct, especially for very first created thread - affected save/load of game state.
- Fix for crash when assigning a list from another list, where neither have origins
- More miscellaneous compiler fixes
Version 0.7.0 - Lists!
This version brings support for a brand new powerful ink feature - Lists - see the documentation.
Unity users: What should you download?
If you're using Unity, the UnityInkIntegration package is all you need!
Version 0.6.4
- The ink runtime engine is no longer compiled directly into inklecate (the ink compiler), and is instead a separate DLL. This required some tweaks to the structure of how the Unity plugin is structured slightly, though hopefully shouldn't affect anything noticeably!
- Big optimisation for when you do a large contentless calculation after a line of content (ending in a newline).
- Force choices to always come after content - this was possible to get around previously with threads.
Version 0.6.3
Various bug fixes, including several from @Stratege, and one to fix left/right glue matching.
Version 0.6.2
This version fixes the issue with getting tags: #209
Version 0.6.1
- Ability to divert elsewhere immediately after a tunnel return
->-> like.this
. See #199. - Optimisation and improvements for how runtime code gets generated, mainly to flatten down containers into their parents, aka "inlining".
- You can now get the
sourcePath
from aChoice
, which tells you exactly where in the story it was generated.
Unity users: What should you download?
If you're using Unity, the UnityInkIntegration package is all you need!
Version 0.6.0
-
Tags! As described in #122:
Allows you to include metadata in your story. It can be used statically, so that you can grab data from your story without actually running it, or in the content itself, so that you can add markers on a line-by-line basis. For example, you can include this at the top of your story, and then grab them as a list of strings using the
story.globalTags
property
# title: My Great Story
# author: Joe
Or on a knot, which you can get using story.TagsForContentAtPath("myKnot")
:
== myKnot ==
# tag at the top of the knot
Your usual content
Or on a line by line basis, which you can get after calling story.Continue()
using story.currentTags
:
A line in my story. # audio: a_line.wav
or:
Joe: This is great! # smiling
or:
A line in my story. #loc:12345 // localisation code for other languages
- BREAKING CHANGE: ink no longer steps directly into a knot when no other content is defined above it. Although this seemed like useful behaviour, it's extremely confusing if you simply add a variable and then are confused at why your ink no longer works.
- Allow
CONST
values to be redefined, so long as they're given the same value. Useful for putting the same value in multiple files to reduce dependencies and make them visible to the writer. - Throw an error if you try to set a variable from the game that hasn't been declared in ink.
Version 0.5.1
- When diverting to specific knots repeatedly from game code, the visit count now gets updated correctly, so long as your knot has fully completed with an
-> END
. If it hasn't, you can also now callmyStory.state.ForceEnd()
to mark the flow complete. Thanks for the report @AdamNashGames! - A call to
-> DONE
now ensures that flow actually stops, rather than marking it "safe to exit". (oops!) RANDOM(min, max)
andSEED_RANDOM(intSeed)
now available! Random's min and max bounds are inclusive, e.g.I rolled a {RANDOM(1,6)}.
.- Warning for using
else:
rather than- else:
. - Show error when passing
-> myVar
as a divert target rather than justmyVar
. (Slightly confusing)
Unity users: What should you download?
If you're using Unity, the UnityInkIntegration package is all you need!
Version 0.5
- API to evaluate a function in ink from C#:
EvaluateFunction(...)
. - API to check whether an ink function exists from C#:
FunctionExists(...)
- Fix to threads that wasn't cloning temporary variables by simply copying references, causing subtle bugs (thanks @cduquesne)
- Fix for type coercion (thanks @cduquesne)
- Fix for float parsing in non-English locales (or at least, those that use a comma natively rather than a dot) - wow, you're on a roll, thanks again @cduquesne!
Unity users: What should you download?
If you're using Unity, the UnityInkIntegration package is all you need!