Skip to content

Releases: exodrifter/unity-rumor

5.0.0

01 Mar 13:28
Compare
Choose a tag to compare

In addition to some new features, the syntax of Rumor has been made more consistent in this update.

If you find Rumor useful, consider supporting continued development of this framework by becoming a patron.

Added

  • Added support for automatically advancing the dialog.
  • Added GetVars to RumorScope as a way for getting all of the variables.
  • Added Choosing, Waiting, and Pausing flags to see what kind of yield is currently active.
  • Added serialization support for Rumor.
  • Added ability to set a timeout and default jump on choose. For example, choose in 2 seconds or jump foobar.
  • Added call command, which moves execution to the specified label and returns back after execution of the label is completed. This is the same behaviour that it had in Rumor 3.X.

Changed

  • Choices may now be empty.
  • The Label and Text properties on AddChoiceNode are now public.
  • Changed jump to work to move execution to the specified label and not return back after execution of the label is completed. This is the same behaviour that it had in Rumor 3.X.
  • choose and pause now require the {} block syntax when specifying an amount of time.
  • choice no longer uses > to prefix every line; instead, it works similar to : and + commands.

Fixed

  • Injecting nodes clears the current yield and continues execution instead of getting stuck.

Removed

  • Exodrifter.Rumor.Engine.Util is now internal instead of public.

4.0.0

12 Feb 23:51
Compare
Choose a tag to compare

Rumor has been completely rehauled in this release. It now features...

  • Simplified syntax
  • Simplified engine API (it no longer requires the use of a coroutine)
  • Stronger type checking

...among many other changes which will soon be described in detail on the wiki.

Some features have been lost in the rehaul. Specifically:

  • You can no longer bind any function you want; they can only use the types bool double and string (this will likely never be re-added).
  • You can no longer serialize the state (this will be fixed in a future release).

3.0.1

07 Nov 01:51
Compare
Choose a tag to compare

Just a few bugfixes in this release.

If you find Rumor useful, consider supporting continued development of this framework by becoming a patron.

Fixed

  • Fix true and false always being treated as variables when they should be a boolean literal
  • Fix scope serialization not working when .NET 4.x runtime is selected

3.0.0

30 Sep 03:21
Compare
Choose a tag to compare

This update fixes a lot of bugs involving compilation and script execution. In particular, the == operator is much more strict. Only comparisons between objects of the same type are allowed with the notable exception of int and float, which can be compared to each other.

If you find Rumor useful, consider supporting continued development of this framework by becoming a patron.

Changed

  • == now only works when comparing values of the same type, with the notable
    exception of Int and Floats which can be compared to each other.

Fixed

  • Fix compilation error when comment directly follows a statement expecting a
    block
  • Fix pauses not ending if a choice has been picked
  • Better parsing errors
  • Allow function and variable names to start with keywords
  • Fix math operator precedence
  • null + null returns null instead of throwing InvalidOperationException
  • Fix comparing any non-empty string with another, different non-empty string
    with == would always return true instead of false
  • Fix >= and <= not working due to comparing the wrapper type instead of
    the wrapped values
  • Fix using ! on a non-null object would throw an exception
  • clear choices and clear dialog compile instead of throwing a compilation
    error

2.0.1

15 Apr 23:56
Compare
Choose a tag to compare

This update fixes a compilation error and speeds up the compiler.

If you find Rumor useful, consider supporting continued development of this framework by becoming a patron.

Changed

  • Compiler performance improvements

Fixed

  • Fix elif and else compilation errors

Compiler Rewrite

15 Jan 17:03
445a11e
Compare
Choose a tag to compare

This update contains a complete rewrite of the Rumor compiler.

If you find Rumor useful, consider supporting continued development of this framework by becoming a patron.

Added

  • You can now add the enum argument cant_skip to the end of a pause statement
    to ignore advances until the pause ends
  • You can now add the enum argument no_wait to the end of an add or say
    statement to auto advance the dialog
  • Variable substitution with { and } in strings is now supported

Changed

  • The compiler no longer uses a tokenizer except when parsing expressions
  • Compiler errors are more specific and descriptive
  • The Exodrifter.Rumor.Lang namespace has been renamed to
    Exodrifter.Rumor.Language
  • All unit tests and examples are wrapped in a UNITY_EDITOR ifdef to make
    it easier to use this repository as a submodule in non-unity project
  • Bindings are no longer stored in Rumor; instead, it is now stored in
    Bindings
  • Rumor.Run has been renamed to Rumor.Start in order to match the language
    used in C# Thread.Start and Unity's StartCoroutine method to improve
    consistency

Bugfixes

23 Dec 16:06
2e38700
Compare
Choose a tag to compare

This update fixes a bug with conditional statements and makes an compiler error message more helpful.

If you find Rumor useful, consider supporting continued development of this framework by becoming a patron.

Changed

  • More descriptive error for tokens after string

Fixed

  • If conditional statements no longer require a following else or elif
    statement

Bugfixes

23 Dec 06:15
9df696e
Compare
Choose a tag to compare

This update fixes a few bugs reported this evening. A new full Unity scene example was added as well.

If you find Rumor useful, consider supporting continued development of this framework by becoming a patron.

Added

  • Full Unity scene example

Fixed

  • Fix +=, -=, *=, /= operators not working
  • Fix exception when script execution finishes in some cases

More Events and Bugfixes

19 Dec 23:04
Compare
Choose a tag to compare

This update fixes a few bugs related to the performance changes made in the last update. A few new events were added as well.

If you find Rumor useful, consider supporting continued development of this framework by becoming a patron.

Added

  • Added OnAddChoice and OnRemoveChoice events to RumorState

Fixed

  • Fix unit test failures caused by Tokenize performance optimization code
  • Fix Rumor bindings no longer attempting to convert arguments

Performance Improvements and Bugfixes

19 Dec 19:58
Compare
Choose a tag to compare

This update improves performance of Rumor significantly. Many bugs have also been fixed.

If you find Rumor useful, consider supporting continued development of this framework by becoming a patron.

Changed

  • Rumor.CallBinding no longer calls DynamicInvoke and is much faster
  • Tokenize step of compilation is much faster

Fixed

  • Fix Rumor.Choosing throwing an error if Rumor has not been started
  • Fix scope not being initialized when passed as null when constructing Rumor
  • Fix Add statements behaving like Say statements
  • Fix null pointer exception in Equals expression
  • Fix incorrect equality checking
  • Fix improper deserialization of values caused by wrapper types (Json.NET will
    wrap object values in its own type, JValue, which causes logic to fail)
  • Rumor no longer clears the scope when starting
  • Null ObjectValues are now treated the same as an uninitialized (null)
    variable