New Features/Changes:
- Added initial implementation of subfolder support for resources (all types except maps, folders must be created outside of the editor until a future update)
- Added new functionality to the "Loot Drops" section of the Combat Editor allowing multiple items per loot drop (with a chance for each and a fixed or random amount)
- Added ability to generate loot for the selected loot drop in the Combat Editor to easily test out the randomly generated results
- Added ability to assign multiple loot drops to an enemy in the Combat Editor with a percentage chance for each loot drop
- Added initial version of "Character Stats" section to the Stats Editor, which includes a list of the built-in stats and Bauxite examples
- Added ability to define custom stats for characters in the Stats Editor (player.stat["my_stat"] will access the stat with ID "my_stat")
- Added ability to define maximum values for both custom stats and any applicable built-in stats in the Stats Editor
- Added ability to increase custom stats when characters level up by specifying increase values in the "Leveling" section of the Stats Editor
- Added "next_level" and "next_xp" stats for getting a character's next level and XP required for that level (e.g. player.stat["next_level"] and player.stat["next_xp"])
- Added ability to define custom equipment slot configurations in the Stats Editor (to use a custom one, set the desired slot configuration as default)
- Added "Status Effects" section to the Stats Editor with initial options for "Stat Buff" and "Stat Debuff" (for future functionality, more options coming soon)
- Added "Currency" section to the Stats Editor with initial options for changing the base currency name/image and adding custom currencies for future functionality
- Added currency option to the Item Editor for specifying the associated currency for the item's cost (for future shop item slot functionality)
- Added "Tool Item Changes" global event script that's triggered when the player's active tool changes ($item_id variable will have the tool item's ID, or null if none)
- Added ability to set a projectile model override for ranged weapons in the Item Editor to use instead of the weapon/ammo's model (e.g. for unlimited use guns)
- Added ability to pack an image into a widget so it can be used in other projects without needing the source image file (via button next to image dropdown)
- Added ability to change the colors of progress bars in the Widget Editor (filled color, background color, and border colors)
- Added Fog of War setting in the Game Configuration's gameplay section for making the fog permanent (i.e. revealed areas won't stay revealed)
- Updated lighting preset functionality to store the map's background color so it will change along with the lighting (e.g. to have a darker color at night)
- Updated "New Resource" dialog to properly check for invalid characters in the resource name, specifically the following characters: \ / : * ? " < > |
- Updated "Predefined Animation Names" dialog in the Map Editor to include "spawn" for tiles and objects and "revive" for characters
- Updated slot ID dropdown on "Element Properties" panel for equipment slots to allow selection of slots from custom equipment slot configurations
- Updated default inventory widget to include an icon and text label that displays the player's currency amount (i.e. player.stat["currency"])
- Updated "Set Entity Script" scripting function to support tool item triggers by using the item's ID as the trigger (e.g. set_entity_script(self, "my_script", "ITEM_0001"))
- Updated "Set Character Name" scripting function to allow entity references (i.e. player) in addition to entity IDs
- Updated maximum timer value of enemy spawns in the Combat Editor to allow up to 3,600 seconds (i.e. how often an enemy can potentially spawn)
- Updated Combat Editor to have "Loot Drops", "Random Encounters", and "Enemy Spawns" sections expanded by default
- Updated Combat Editor and Stats Editor to create backups of the "combat.json" and "stats.json" files when saving
- Updated line of sight logic for ranged weapons to catch some cases that were being missed, allowing the player to shoot through wall tiles in certain scenarios
- Updated tactical turn-based combat to refresh the current player character's movement area if their "move_range" stat is updated during their turn
- Updated Steam rich presence logic to support the Quest Editor so its name is displayed as the current rich presence status while in the editor
- Updated Patreon credits in the About dialog to reflect the up-to-date levels for each patron based on the number of months pledged at each tier
- Removed placeholder encounter message that was displayed before the battle whenever the player triggered a random encounter
- Removed unnecessary "under construction" message from the Stats Editor (RPG in a Box will always be expanding and improving throughout!)
Bug Fixes:
- Fixed issue where an NPC/enemy's "On Death" script was not being triggered when killed via the "Damage Entity" scripting function
- Fixed issue where enemies that had respawned from a real-time enemy spawn or via "Revive Character" would no longer be attackable in some cases
- Fixed issue with ranged weapons not working properly when an object model wasn't assigned to the weapon or ammo item
- Fixed issue where the "speed" stat bonus for weapons was not being properly removed when the weapon was unequipped
- Fixed issue with objects using the multi-directional billboard sprite option not working properly in-game (i.e. not displaying as multi-directional)
- Fixed issue where the "Remove surfaces along grid boundaries" setting in the Voxel Editor was being applied to all voxels instead of only the transparent ones
- Fixed issue with "Continue" and "Load Game" options not properly showing on the Main Menu and Pause Menu when a save file existed
- Fixed issue with fog of war where tiles underneath the player would be incorrectly hidden in some cases (e.g. starting on a bridge with a river tile underneath)
- Fixed issue where using the "clear" array function would not work properly to remove all entities from a group (e.g. group["my_group"].clear())
- Fixed issue where the $item_id local variable was null instead of containing the item's ID when using an item from a quick slot
- Fixed issue where "initiator" built-in variable was null when calling a script from a dialogue (also affected item icon popups when giving an item during dialogue)
- Fixed issue where item tooltips were not being hidden when using ESC to close the inventory (when the management screen was disabled)
- Fixed issue where clicking the "X" button to close a widget could cause the player to start moving if the mouse button was over a walkable tile
- Fixed issue with custom interaction cursor not displaying when set for an attackable enemy and the player had a weapon equipped
- Fixed issue where the cursor image was not being updated when the "Request Entity" scripting function was called
- Fixed issue where the cursor image was not being updated after an entity was selected via the "Request Entity" scripting function
- Fixed issue where sound/music files failed to import if the project folder was missing the "sounds"/"music" subfolders
- Fixed issue where the event details were incorrectly displaying for random encounters and enemy spawns after closing and reopening a project
- Fixed issue with random encounters in the Combat Editor allowing more than a total of 100% for the possible battles defined for an encounter
- Fixed issue with some UI components not being updated properly when selecting random encounters and enemy spawns in the Combat Editor
- Fixed issue with some UI components in the Quest Editor and Combat Editor not using the Godot editor theme when selected
- Fixed issue with some options for the "Default Editor Tab" setting not working properly (Quest Editor, Combat Editor, Stats Editor, and Documentation)
- Fixed "invalid operands" error that would display in the external console window if the first map loaded in a game had "Use Day/Night Cycle" disabled
- Documentation: Added initial version of built-in docs for "Stats Editor" (including a list of all character stats currently available)
Documentation:
- Added initial version of built-in docs for "Codex" data type (including some scripting examples)
- Updated "Predefined Animation Names" built-in docs to include new "revive" animation (triggered when "Revive Character" function is used)
- Updated "Predefined Animation Names" built-in docs to include info about the "push" and "pull" animations for characters
- Updated "Shop Item Slot" built-in docs to include info about changing the cost of an item in a shop item slot
- Updated "Item Editor" built-in docs to include info about $item_id variable with the item's ID being available from a usable item's script