New Features/Changes:
- Added initial implementation of ranged weapons (with settings for range, projectile speed, and consumption types for unlimited use, single use, and requiring ammo items by ID or tag)
- Added "Weapon" setting to the Item Editor for indicating that an equippable item should behave as a weapon (with options for "Melee" and "Ranged" and an attack animation override)
- Added ability to preview objects on attach points in the Voxel Editor (via buttons on main toolbar and next to attach point list on the Model Properties panel)
- Added button to the Voxel Editor toolbar for toggling the visibility of objects currently attached to the model's attach points
- Added ability to specify that an object attached to a model's attach point in the Voxel Editor should also be automatically attached in-game
- Added ability to define mesh type overrides for voxel groups in the Voxel Editor (e.g. to force a group to use the classic mesh type when the base type is set to Marching Cubes)
- Added button to the Model Tools panel for adding selected voxels to a group as an alternative to using the "G" shortcut key
- Added "Display Choices" scripting function that presents a set of choices to the player in a dialogue box and returns the resulting choice for storing/evaluating
- Added optional second parameter to the "Display Message" scripting function for specifying a speaker entity (e.g. display_message("Hello, I'm the player!", player))
- Added shortcut key ("Y") for toggling the "Random Rotation" option on and off when using the Map Editor's placement tool
- Added shortcut key ("U") for toggling the "Auto-Connect Navigation" option on and off when using the Map Editor's placement tool
- Added "Run Script" option to the "Interaction by Player" and "Next to Player" NPC behavior settings on the Entity Properties panel in the Map Editor
- Added "On Death" option to the NPC behavior settings in the Map Editor for triggering a script after the NPC is killed
- Added initial implementation of menu-driven combat (available as a new battle type named "Menu-Driven Turn-Based" in the Combat Editor)
- Added battle settings to the Combat Editor for defining scripts to trigger based on the battle's outcome (i.e. victory or defeat)
- Added ability to adjust the Bauxite code's font size in the Script Editor and Quick Script Builder using Ctrl + Scroll Wheel
- Added ability to resize the Quick Script Builder by clicking and dragging the sides or corners of the dialog box
- Added "Array" as an option for the Variable Expression Builder dialog for easily setting up an array from a list of values
- Added "Variable" as left and right operand options for the Conditional Expression Builder dialog and as an option for the Variable Expression Builder dialog
- Added "Recent" tab for quickly accessing recently opened files (alongside the "Game Explorer" and "Favorites" tabs)
- Added button to the Game Explorer and Favorites toolbar for quickly accessing the Game Configuration dialog (as an alternative to double-clicking the Game Explorer list item)
- Added option to the Editor Settings dialog for choosing which file tab to show by default upon startup of the application (Game Explorer, Favorites, or Recent)
- Added ability to change the data type of existing custom properties on the Model Properties and Entity Properties panels (by clicking icon that displays the current type)
- Added ability to change the data type of existing properties on the Global Properties tab of the Game Configuration dialog (by clicking icon or text that displays the current type)
- Added ability to set custom images (normal and hover) for the management screen's close button from the properties panel of the Screen Editor
- Added ability to specify a custom widget to use for a character's equipment on the Model Properties tab (to override the built-in "equipment" widget)
- Added buttons to the properties panel of the Screen Editor for hiding/showing the inventory and equipment toolbar buttons on the management screen
- Added informational area to source code section's header in the Script Editor to display item info or function's signature and help button based on the cursor's current location or selection
- Added ability to auto-fill parameter hints for scripting functions in the in-game debug console by entering a function name then pressing the Tab key
- Added informational popup that displays when attempting to rename a platform waypoint to a name that already exists
- Added background panel to tool buttons (zoom in/out, etc.) in the Script Editor viewport to match the style of other editor panels
- Added shortcut key (F8 or 8) to the Voxel Editor for switching to the "Create Attach Point" tool (for adding attach point locations to a model)
- Updated type dropdown of "Custom Properties" section on the Model Properties and Entity Properties panels to include icons for each data type (i.e. String, Number, and Boolean)
- Updated script syntax to support coordinate x/y/z values on the left side of assignments when the coordinate is stored in a local variable (e.g. $my_coord.x += 1)
- Updated "contains" scripting syntax to support references to character inventories other than the primary player character (e.g. if party.member["Sarah"].inventory contains "ITEM_0001" then)
- Updated "contains" scripting syntax to support strings (for example, to check if a string contains one or more occurrences of another string)
- Updated "Display Message" visual script node to include a field for specifying an optional speaker entity to speak the message
- Updated vehicle functionality to trigger the vehicle's "attack" animation and face towards the target when attacking from a vehicle
- Updated "Predefined Animation Names" dialog in the Voxel Editor to include "attack" for object models (triggered when fighting from an object used as a vehicle)
- Updated platform waypoint list on the Entity Properties panel to allow renaming or removal of the platform's "Default" waypoint
- Updated Variable Expression Builder dialog to ensure that the currently selected type in the list is visible when first opening the dialog
- Updated consumable item functionality to store the consumed item's ID into a local variable ($item_id) for its assigned script to reference
- Updated maximum value for item cost in the Item Editor to 1 billion instead of the previous limit of 1 million
- Updated "Recent Items" section (shown in the center of applicable editors when no files are opened) to include an hourglass icon next to the header text
- Updated "Remove Item" scripting function to also consider items in the character's equipment slots instead of only storage slots
- Updated "Give Item" and "Remove Item" scripting functions to support an optional third parameter to specify the target character (defaults to current player character)
- Changed "Give Item" and "Remove Item" scripting functions to affect the active party member during turn-based battles instead of always the primary player character
- Updated "Equip Item" scripting function to now require the target character to first have the item before equipping it
- Updated "Equip Item" and "Unequip Item" scripting functions to also equip/unequip the item into/from equipment slots in applicable widgets
- Changed "self" keyword in widget button scripts to reference the button element itself instead of the parent widget ($widget variable can be used to get the parent widget)
- Changed wording of default mesh type on the Model Tools panel in the Voxel Editor from "Default" to "Classic"
- Changed ordering of "Add to Favorites" button on the Game Explorer toolbar to be positioned before the "Delete Resource" button
- Moved "Management Screen Widgets" setting from the Game Configuration dialog to the management screen's properties panel in the Screen Editor
Bug Fixes:
- Fixed issue with "Override Animation" scripting function not working properly in some cases when triggered for the same animation multiple times in a row
- Fixed issue where references to properties of widget elements (i.e. text, image, script, item) was not being accepted as valid syntax when the element was stored in a variable
- Fixed issue where the "Passable" character property was not being considered when using keyboard controls to move (preventing the player from moving through NPCs set as passable)
- Fixed issue where the "Custom Properties" list in the Voxel Editor was not being refreshed when opening an object or character
- Fixed issue where properties for entities in the "Custom Properties" list could lose their values after being renamed more than once
- Fixed issue where using Ctrl+D to duplicate a frame in the Voxel Editor was sometimes handled by the most recently opened model tab instead of the currently visible one
- Fixed issue where the player character's attachments were not being updated in "3D Model" widget elements when objects were attached/detached via a script
- Fixed issue where the camera type would revert to "Standard" after choosing "First-Person" and then returning to the Game Configuration dialog
- Fixed issue where changing a character's health in the Voxel Editor was not being propagated to characters already placed into a map
- Fixed issue where a waypoint could be added to a platform tile at a coordinate with a waypoint already defined
- Fixed issue where a widget wouldn't be hidden when returning to the game if it was hidden via the "Hide Widget" function while the management screen was open
- Fixed issue where the pause menu wouldn't open (or the inventory/item container widget wouldn't close) when ESC was pressed with the management screen disabled
- Fixed issue where cursor image wasn't displaying the item count when picking up an item stack from an equipment slot
- Fixed issue where the Item Editor would sometimes display translation IDs instead of the translated item names when localization was enabled
- Fixed issue with "For Loop" and "Assign Value" visual script nodes where a variable name was being accepted as valid in some cases where it shouldn't be
- Fixed issue with "Add Tile" scripting function incorrectly allowing tiles of the wrong dimensions to be added to a map
- Fixed issue where the player would start strafing in first-person mode when holding the turn left/right key and then letting go of the forward key or running into an obstacle
- Fixed issue where player's movement direction wasn't changing in first-person mode when holding down the forward key and then using mouselook to change the view direction while walking
- Fixed several inventory/equipment widget issues when using the management screen for a party member during turn-based combat
- Fixed several debug console error messages for the "Equip Item" and "Unequip Item" functions to properly show the required data type when an incorrect type was used
- Fixed some in-game crashes that could occur when modifying a widget's text label or when a widget was refreshed after a property's value had changed
- Fixed console error that could occur when toggling the "Stackable" property for a newly created item in the Item Editor
- Fixed item related errors that would sometimes display in the console when exiting to the Game Manager
Documentation:
- Added initial version of built-in docs for the new "Display Choices" scripting function
- Updated built-in docs for "Script Syntax" to include additional "For Loop" example showing how to iterate over an entire array
- Updated built-in docs for "Scripting Reference" to add some missing optional parameters and a note about optional parameters being marked with an asterisk
- Updated built-in docs for "Entity" to include note about the "player" keyword returning the active or most recently active party member during turn-based battles
- Updated built-in docs for "Entity" to include note about using "player" as a party member ID to get the primary player character (i.e. party.member["player"])
- Updated built-in docs for "Button" to include note about "self" keyword referencing the button element and the $widget variable referencing the parent widget
- Updated built-in docs for "Display Message" to include info about the optional "speaker" parameter and to fix a formatting issue with the "Visual Demo" header
- Updated built-in docs for "Equipment Slot" to correct some info about tag requirements for items equipped to equipment slots