Inspired by Ren'Py, Rakugo is a project aiming to provide a way to make narrative-based games on Godot easily. Simplify your project, if it is a visual novel, point and click, RPG, interactive text game or many other styles and blends of styles.
Full Changelog: https://github.com/rakugoteam/Rakugo-Dialogue-System/compare/2.1.1...2.2
like the title says, you can do that now
"it is a "really" good one"
You can use assignment operators like: =, +=, -=, *=, /= to assign a value to a variable. Example:
gd.bugs -= 1
We would like to handle expressions for the v2.3 (example: damage = dps + boost + 1)
The big update of this version ! You can now use variables inside any strings, for say, ask, menu, ... and for variables ! Example:
player.life_str = "You have <player.life> life points left"
A very important thing: string is replaced with a value when you use/read it, not on assignment. Example:
player.life = 10
player.life_str = "You have <player.life> life points left"
player.life = 5
narrator "<player.life_str>"
The narrator will say: "You have 5 life points left".
Also,
Rakugo.get_variable("<player.life_str>")
will return same string: "You have 5 life points left".
We took advantage of this to let you a new Rakugo method
replace_variables(text:String)
. Example:Rakugo.replace_variables("You have <player.life> life points left")
, will return: "You have 5 life points left".
Some time ago Rakugo wasn't working on itch.io with firefox for html5 export, because we use multi-threading feature. it wasn't handled on this website. It is now resolved !
You can see my old post here https://itch.io/post/5713938, and the main one https://itch.io/t/2025776/experimental-sharedarraybuffer-support.
So you have just one thing to remember when you export now, is to not forget to add your .*rk files ! https://rakugoteam.github.io/rakugo-docs/2.1/export/
18 changed files with 445 additions and 141 deletions : https://github.com/rakugoteam/Rakugo-Dialogue-System/compare/2.1...2.1.1
- Now ask is same as the one in the documention
[var_name] = ? [character_tag] [question] [default_answer]
- Plus you can respect or not the number of space arround the '=' and '?'
answer = ? "question"
is correctanswer=?"question"
is also correct- But you should respect spaces between tag, question, and default answer
answer=?tag "question" "default answer"
is correctanswer=?tag"question""default answer"
is not
Now Rakugo is threads safe, and signals are called correctly. So you will not have errors in the last godot version (4.1).
- update project.godot to 4.1
- and other things...
- update project name, addon name and version
- add icon to the godot project
- and other things...
Full Changelog: https://github.com/rakugoteam/Rakugo-Dialogue-System/compare/2.0.2...2.1
user can comment line, like in gdscript, if it starts by a '#'
After call of Rakugo.load_game(...), when it finish send a signal game_loaded. Also, user can use it to know when Rakugo variables are availables, and by exemple restore their scene state at a good moment.
Now, user can indents his code like he wants, and forgets spaces at end of line.
Compatibility: Godot version 3.X.X
Full Changelog: https://github.com/rakugoteam/Rakugo-Dialogue-System/compare/1.2...1.2.1
Compatibility: Godot version 4.X.X
Full Changelog: https://github.com/rakugoteam/Rakugo-Dialogue-System/compare/2.0.1...2.0.2
Compatibility: Godot version 4.X.X
Full Changelog: https://github.com/rakugoteam/Rakugo-Dialogue-System/compare/2.0...2.0.1
Rename - signal sg_parser_unhandled_regex to sg_custom_regex - Rakugo method parser_add_regex_at_runtime() to add_custom_regex()
Compatibility: Godot version 4.X.X
121 changed files with 5,546 additions and 5,407 deletions : https://github.com/rakugoteam/Rakugo/compare/1.2...2.0
Rakugo is now updated for Godot version 4 🥳 !!!
47 changed files with 1,967 additions and 494 deletions : https://github.com/rakugoteam/Rakugo/compare/1.1.1...1.2
Now when a variable is set, signals are emitted : variable_changed(var_name, value) or character_variable_changed(character_tag, var_name, value)
character_exists()
by has_character()
by @Jeremi360 in https://github.com/rakugoteam/Rakugo/pull/170
character_exists() will be removed and replace by has_character(). Send a warning when character_exists() is used.
Now when you parse a script and a line can not be read, it send an error.
Add parameter error_str in signal execute_script_finished. If is empty no error, else contain error string. It can be used to show it. Already used with push_error, so do not do it again !
Add Rakugo.stop_last_script() and not Rakugo.stop_script() or Rakugo.stop_script(script_name). The last one need refactor before implement it. The second one is not enough explicit we think. So we add first one because in our current philosophy we have : one thread at a time. We need refactor to handles multiples threads at same time. Work for 1.3.
Rakugo.has_variable can now handle character variable like get_variable
Rakugo.save_game(), now save name of current executed script, plus last line read. So with Rakugo.load_game(), now parse last executed script. Rakugo.resume_loaded_script(), run last executed script.
We split load in 2 funcs. So you can call Rakugo.load_game(), to loads variables as usual and load your scenes with them. And after everything is ready, call Rakugo.execute_last_script().
Autoload Rakugo.gd instead of Rakugo.tscn Remove Rakugo.tscn Maybe you need to disable/enable the plugin Rakugo
54 changed files with 670 additions and 744 deletions : https://github.com/rakugoteam/Rakugo/compare/1.1...1.1.1
execute_script_start(script_name)
to Rakugo #142 by @theludovyc
Now when script is launch, Rakugo send a signal execute_script_start, with script_name in parameter.character_exists(char_tag)
and character_has_variable(var_name)
funcs in https://github.com/rakugoteam/Rakugo/commit/e5918ee70bac34382d39d4faacbba43cc2f49217 by @Jeremi360
These funcs return false or true if a Raguko has this character or variable.7 changed files with 194 additions and 167 deletions : https://github.com/rakugoteam/Rakugo/compare/1.0...1.1