The narrat RPG demo (the one with a basic dungeon crawler and turn-based combat) was using pretty old syntax and hacks to work. For example, it had buttons defined in every screen for every possible enemy and player class.
Now that narrat has more advanced scripting features, it was time to update this demo to make better use of the tools available, so I cleaned it up to be a better example of how to do advanced scripting, and replacing usage of buttons with sprites
- The demo now dynamically creates sprites for enemies and the player instead of predefined buttons in every possible screen
- There are new
rooms.yamlcontaining data about those things to help the game scripts dynamically generate content based on what is added to those files. They get loaded into variables using the
- The game script has been split in a few files to be more readable
- The game now has a
load_spriteutility function which takes an object with info about a sprite and generates a sprite based on it. This might be moved as a command in the engine in the future, but it shows how easy it is to use narrat functions to create new utility tools
- Added a new
empty_spritescommand to the engine which deletes all sprites on a layer, as it was needed for this demo.
You can see the changes in this PR to get an idea of the difference.