New Features/Changes:
- Added initial (experimental) implementation of enemy spawns (configured in the Combat Editor then assigned to a group from the Map Properties panel in the Map Editor)
- Added initial (experimental) implementation of pushable functionality (enabled for objects via the "Pushable" toggle button in the Map Editor, with a setting for push speed)
- Added "Climb (One-Way)" navigation option to the right-click context menu when connecting climbable tiles in the Map Editor (to restrict characters to one direction)
- Added "Forced/Automatic Climbing" setting for climbable tiles, which will force characters to continue climbing in their current direction when reaching that tile
- Added animation override setting for climbable tiles to the Entity Properties panel in the Map Editor (will override the character's default "climb" animation)
- Added ability to adjust the scale of objects and characters in the Map Editor from the Entity Properties panel
- Added ability to raise and lower the placement grid level in the Map Editor in half tile width increments using Alt + Scroll Wheel
- Added ability to create/edit 16x16 and 32x32 item images in the Item Editor (via the "plus" and "pencil" buttons next to the "Image" dropdown in the "Item Overview" area)
- Added "Key Bindings" section to the Game Configuration dialog for defining custom key bindings that will perform in-game actions (either run a script or toggle the display of a widget)
- Added ability to import from PNG image files into the Voxel Editor via the "Import from External Format" toolbar button (with a setting for X/Y pixel offset)
- Added Voxel Editor settings for default state of the grid lines, voxel outlines, surface edges, ambient occlusion, and ground when opening models in the editor
- Added ability to the Voxel Editor to select all voxels in the model's current frame by pressing the key combination Ctrl + A
- Added ability to the Voxel Editor to cut the voxels currently selected to the clipboard by pressing the key combination Ctrl + X
- Added "Default Scale" setting to the Model Properties panel in the Voxel Editor which will be automatically applied when an object or character is added to a map
- Added built-in "spawn" animation type for entities that are added to the scene via "Add Tile", "Add Object", "Add Character", or enemy spawn
- Added ability to define custom death animations based on which weapon item killed a character(e.g. look for animation named "death_ITEM_0001" if killed with the item having ID "ITEM_0001")
- Added "Allow Mouse Look" gameplay setting to the Game Configuration dialog to allow disabling of mouse look when using the first-person camera type
- Added "Limit Mouse Look" gameplay setting to the Game Configuration dialog to restrict the range of mouse looking (with settings for the maximum horizontal and vertical offset)
- Added "Always Show Tooltip" setting to the Entity Properties panel in the Map Editor to indicate that the entity's tooltip should always display instead of only on mouse hover
- Added "Quick Play" section to the Editor Settings dialog with an option for toggling availability of visual navigation debug paths (now disabled by default for performance)
- Added "Save Data" scripting function for saving custom data with optional password parameter for encryption (e.g. save_data($my_var, "my_file", "password"))
- Added "Load Data" scripting function for loading custom data with optional password parameter when loading encrypted files (e.g. $my_var = load_data("my_file", "password"))
- Added "Save Game" and "Load Game" scripting functions for calling the built-in save/load functionality (via the syntax "save_game()" and "load_game()")
- Added "Change Player" scripting function for swapping out the player character for another character (see documentation for usage details)
- Added "codex" data type to the Bauxite language for storing a set of key/value pairs, where the key is a unique string and its value is any valid data type (e.g. $x = codex["id": "ITEM_0001", "count": 5])
- Added support to the Bauxite language for referencing an objects attached to entities' attach points (e.g. player.attachment["right_hand"] will be the object on the player's "right_hand" attach point)
- Added random noise support to the Bauxite language (functions "get_noise_2d(x, y)" and "get_noise_3d(x, y, z)" will return a value between -1 and 1 for given position)
- Added ability to seeds for random number generation and noise generation by assigning integer values to "global.random_seed" and "global.noise_seed"
- Added debug console warning when attempting to use a non-numeric value for the index of an array in an assignment statement (e.g. $my_array["x"] = "value")
- Added informational message to the debug console when using the "exec" command to indicate that the script has been successfully triggered
- Added "Apply and Save" button when editing Bauxite code in the Script Editor that will apply changes and save the editor in one step
- Added ability to press the ESC key while editing a script's source code in the Script Editor to cancel out of editing mode
- Added 16x16 base feminine and masculine characters to the Asset Library (originally created as part of the monthly Patreon assets)
- Updated "Add Tile", "Add Object", and "Add Character" scripting functions to return the newly added entity (e.g. to store in a variable: $new_tile = add_tile("grass", coord[0, 0, 0]))
- Updated "Put Player" and "Put Entity" scripting functions to also support a coordinate or tile entity reference for the destination tile
- Updated ranged weapon functionality in first-person mode to rotate the camera towards the target enemy if attacking from an angle
- Updated weapon functionality to trigger attack animations for attached weapon objects if they have one that matches that of the animation name triggered for the character
- Updated scripting to not throw an error when referencing a data file that doesn't exist (instead, null is returned and the script will proceed)
- Updated filename validation when creating new assets to prevent creation of files with the same name but having different case
- Updated data file functionality to now require ".json" extension when referencing custom data files from a script (i.e. data["myfile.json"])
- Updated "Justin" character in the Asset Library to include several new animations ("push", "throw", "shoot", and "slide")
- Updated "Sarah" character in the Asset Library to include hand attach points and several new animations ("climb", "interact", "attack", and "death")
- Updated speed of walk animations for space ranger characters in the Asset Library to match the speed of the new 16x16 base characters
- Updated purple slime and red slime characters in the Asset Library to include spawn animations and made the purple slime's color more vibrant
- Updated speed of walk animations for the purple slime and red slime characters in the Asset Library to achieve two bounces per tile instead of one
- Updated Patreon credits in the About dialog to include levels for each patron based on the number of months pledged at each tier
- Changed "Copy" and "Paste" buttons on the Model Tools panel to be icons only, added new button for "Cut" as well as tooltip text with shortcut key for each function
- Changed ambient occlusion in the Voxel Editor to be disabled by default when opening models (default state can now be adjusted in the Editor Settings)
- Changed wording of source code headers in the Script Editor, Map Editor, and Quick Script Builder from "Source Code" to "Bauxite Code"
- Removed debugging text from the message that displays when the player has triggered a random encounter upon entering a tile
Bug Fixes:
- Fixed issue with the "Set Entity Script" function not working properly if no trigger type was explicitly specified when assigning a script to a tile
- Fixed issue where using the "Unlimited Use" consumption type for weapons was preventing ranged weapons from working properly
- Fixed issue with ranged weapons sometimes not working in first-person mode when the character's attack animation included a "projectile" attach point
- Fixed issue with custom attack animations not working properly when configured for melee weapons (i.e. anything other than the default of "attack")
- Fixed issue that occurred when using the "Wait" function in a character's "On Death" script where the rest of the script would fail to execute
- Fixed issue with starting the player character on a climbable tile when using the "Load Map" function (character would behave as if on a normal tile)
- Fixed issue where some tile scripts were not triggering properly when climbing, mounting, or dismounting climbable tiles
- Fixed issue where the climb up/down controls were not showing/hiding in certain cases when using the mouse to move the player character
- Fixed issue with positioning of characters on climbable tiles not working properly in some cases when using "climb" attach points
- Fixed issue with "Move Character" function not working for NPCs when required to climb up/down a climbable tile adjacent to their current tile
- Fixed issue with quick slot bar interfering with mouse input when it's disabled in Game Configuration (e.g. when attempting to rotate the camera with the mouse)
- Fixed issue that would occur when choosing the "Use Global Script" option for a tool item then saving the Item Editor without selecting a script
- Fixed issue where the "Use ID string only" checkbox was sometimes not displaying in the Entity Expression Builder when initializing the dialog from an ID string
- Fixed issue with string values not being enclosed in quotes when contained within an array and the containing array is printed or displayed
- Fixed issue with not being able to use references to values by index in arithmetic operations (e.g. $x = $my_array[0] + 1)
- Fixed issue where using an assignment statement to set a value by key within data loaded from a JSON file was not properly changing the value (e.g. $my_data["key"] = "value")
- Fixed issue where the subsequent frame of a model would incorrectly display when a "Ping Pong" or "Ping Pong Once" animation had the same start frame and end frame
- Fixed issue where "Load Game" and "Continue" would incorrectly display on the Option/Pause menus if the game had been previously saved and then "Saving" was disabled
- Fixed issue with "Add Item To Container" function not properly returning the number of items that were successfully added to the container
- Fixed issue with "Add Item To Container" function not working properly for containers that were initially empty (unless they had been opened once by the player)
- Fixed issue that would occur when following a scripting function with an assignment expression that stored a value returned from a function into a variable
- Fixed issue where item icon popups weren't displaying when enabled and calling "Give Item" as part of an assignment statement (e.g. $count = give_item("ITEM_0001", 5))
- Fixed issue where capturing an image in the Map Editor would result in an image format error in the console and the target image file would be empty
- Fixed issue where the positions of marker icons were not being updated when changing the initial frame of an entity in the Map Editor
- Fixed issue with invalid sound effect assigned to the "dungeon_gate" sample model's animations causing a debug console error to display when the animation was triggered
Documentation:
- Added initial version of built-in docs for the "Apply Lighting Preset" and "Change Player" scripting functions
- Updated "Global Event Scripts" built-in docs to include info for "Character's Health Changes", "Character Enters a Tile", "Character Stops on a Tile", and "Character Exits a Tile"
- Updated "Climbing" built-in docs to include info for one-way climbing, forced/automatic climbing, and climb animation override
- Updated "Put Player" and "Put Entity" built-in docs to reflect that the target tile can now be an entity reference or coordinate
- Updated "Map Editor" built-in docs to include info about using Alt + Scroll Wheel to raise and lower the placement grid level in half tile width increments
- Updated "Map Editor" built-in docs to include info about holding ~/` to hide all visual indicators or Shift + ~/` to toggle all of them off
- Updated "Tile" built-in docs to include info about most recent properties (type, model, frame, animations, terrain type, attach points, and waypoints)
- Updated "Object" and "Character" built-in docs to include a list of all properties that can be accessed from scripts
- Updated "Game Controls" built-in docs to include info about pressing F12 to take an in-game screenshot and where they are stored
- Updated "Pre-Defined Animation Names" built-in docs to include info about latest types ("climb" for characters, "move" and "attack" for vehicles, and "spawn" for all entities)
- Updated "Scripting Reference" built-in docs to include signatures for latest scripting functions