February
10
2020

ORK 2.28.0 is here with new features, changes and fixes!

Head to the download page and grab the latest version or buy a copy in the Unity Asset Store!

This update adds support for Unity 2019.3, a newish look to the ORK editor, selected data available similar to game variables (i.e. global and per object selected data), new combatant and item despawners, updates to grid battles and many other new features, changes and fixes.

This version is available for Unity 5.6Unity 2017 and Unity 2018/2019. Please note that ORK’s update policy changed – you can learn more about it here.

If you’re enjoying the updates, tutorials and support I provide, please consider supporting me on patron.com – every little bit helps!

Warning: There has been a change to data serialization (to improve performance). While your data should be compatible with the changes, there is no 100% guarantee that it is – proceed with caution and make a backup of your project!

New

  • Unity 2019.3
    ORK Framework is now compatible with Unity 2019.3 – use the ORK for Unity 2018/2019 version. Requires the ‘Unity UI’ package installed in your project.
  • Editor
    Update to the look of certain parts of the ORK editor and component inspectors.
  • Selected Data
    Selected data is now available similar to variables, i.e. you can use ‘Local’, ‘Global’ and ‘Object/Object ID’ bound selected data.
  • Formulas, Battle AI, Event System
    ‘Data Origin’ settings available for all selected data/key settings. Defines the origin of the selected data. Default is ‘Local’ origin.
  • Component: Combatant Despawner
    ‘Combatant Despawner’ component available. Manages despawning of (non player group) combatants in the scene based on distance to player and/or time. Despawning based on distance also allows respawning the combatants when they’re back within range.
  • Flying Texts
    New text codes available to add additional content information. You can now add the name, short name and description of the content and the content’s type. The content depends on the flying text, e.g. for status values, it’s the status value itself, for miss or block texts, it’s the used ability or item (or blocked for a specific status value, the status value).
  • Flying Texts
    You can now use certain text formatting text codes to change the text/shadow color, font size and font style of the flying text. It only uses one of each and will be used for the whole flying text.
  • Flying Texts
    You can now use most content and variable text codes. Content text codes are limited to non-icon text codes (e.g. name, short name), variables text codes to global game variables.
  • Mount Settings
    ‘After Mount’ setting available when using ‘Set Scale’ optionally set the scale after mounting a game object to set the scale based on the parent object’s scale.
  • Player Controls: Button
    ‘Play Fall Animation’ and ‘Play Land Animation’ settings available. Optionally play falling and landing animations if the player is falling down (i.e. the ‘Character Controller’ not being grounded).
  • Control Maps: Action Settings
    ‘Use Group Target’ and ‘Use Individual Target’ settings available. Using group/individual targets is now optional. By default enabled.
  • Control Maps: Action Settings
    ‘Prioritize Raycast’ setting available when using group or individual targets. Optionally prioritize raycast targeting (for abilities/items that use it) instead of using the group/individual target.
  • Game Settings: Statistics
    ‘Total Battle Gains’ and ‘Single Battle Gains’ settings available. Optionally collect statistics for items gained in battles.
  • Text Codes
    New text codes available for total and single battle gains statistics.
  • Formulas: Check Equipment
    ‘Check Equipment’ node available in ‘Combatant’ nodes. Checks a combatant’s equipment part if a defined weapon/armor is equipped, the part is unequipped or equipped with something stored in selected data.
  • Formulas: Equipment Fork
    ‘Equipment Fork’ node available in ‘Combatant’ nodes. Like the ‘Check Equipment’ node, but allows defining multiple equipment conditions (for a single equipment part).
  • Shops
    ‘Quantity’ and ‘Price’ values have been replaced by advanced float value selections. You can e.g. use formulas or variables to define quantity and price of items. Previous settings will be updated automatically.
  • Abilities, Items: Target Settings: Raycast
    ‘Clamp To Use Range’ setting available when using ‘None’ target range and raycast targeting. Clamps the raycasted position to the use range of the ability/item. If disabled, the cursor prefab’s position will not be updated and the ability/item isn’t useable if the cursor is out of use range. By default enabled.
  • Abilities, Items: Target Changes
    ‘Is Enemy’ setting available. You can now set up multiple target changes (with status value/effect changes) and have them only be used on enemies or allies (or both). E.g. set up an ability that targets all combatants, damaging enemies and healing allies. Also available for ‘Critical Target Changes’ in abilities.
  • Abilities, Items: Value Changes: Formula
    ‘Use Minimum Value’ and ‘Use Maximum Value’ settings avaialble when using a formula. Optionally limit the formula result to a minimum or maximum value. This will be done before using attributes or efficiency calculations.
  • Abilities, Weapons, Armors: Description
    ‘%’ text code available to show the current level of the ability/equipment in the description.
  • Inventory Settings: Drop Item Settings
    ‘Despawn’ settings available. Optionally despawn drops from inventories and battle loot drops after a defined amount of time.
  • Combatant Requirements: Combatant, Death
    ‘Non Battle’ combatant scope available. Uses the non-battle group members of the combatant’s group.
  • Target Settings
    ‘Auto 1 Single Target’ and ‘Auto 1 Group Target’ settings available. Optionally skip the target selection of a ‘Single’ or ‘Group’ target range action if only one target choice is avaialble. Selecting the action will automatically accept the target without any further selection/confirmation.
  • Grid Battles: Cell Connections
    You can manage connections between cells in the scene’s grid editor. Use this to e.g. block movement on a cell from a direction or connect far away cells. Connections are per cell, i.e. you can allow movement from cell A to B, but block movement from B to A.
  • Grid Battles
    Performance improvements for certain grid operations, mostly creating the move range and line renderer cell highlights.
  • Grid Cells: Cell Events
    ‘Move From’ start type available. Used for stating a grid cell event when moving form a cell. You need to use it in a ‘Grid Cell Event’ node in your grid move battle event before moving to the next cell.
  • Battle Grid Settings: Move Command: Info Text
    ‘Only Available Cells’ setting available. Optionally only show the info text box for cells that are available to move to.
  • Battle Systems: Grid Settings
    ‘Can Cancel’ setting available when using ‘First Action’ or ‘Always’ player auto grid move (all battle system types). Canceling out of the auto grid move is now optional. By default enabled.
  • Phase Battles: Player Combatant Selection
    ‘Allow Back’ setting available when not using ‘Auto Select’. Allowing the player to cancel out of a selected combatant is now optional. By default enabled (allowing going back to the combatant selection).
  • Battle Texts, Abilities, Items: Battle Info Texts
    New text codes available to add additional content information. You can now add the name, short name, description and icon of the action’s content and type (e.g. ability, ability type) to the battle info texts.
  • Battle Menus: User Highlight
    ‘In Target Selection’ setting available. Defines if the user highlight is shown during target selections. By default enabled (current behaviour).
  • Battle Range Templates: Grid Shape
    ‘Object Variable Conditions’ settings available. Optionally check object variables on a grid cell to determine if the cell will be available.
  • Menu Settings: New UI
    ‘Sorting Layer’ setting available. Defines the sorting layer of the canvas.
  • Main Menu: Options Button
    ‘Change Value’ setting available for ‘Float’ input type (‘Custom’ option type). Define the change value per input.
  • Save Game Menu: Save Settings
    ‘HUD Toggle States’ setting available. Optionally save the toggle states of HUDs with save games. By default disabled.
  • Menu Screens: Ability, Inventory
    New text codes available to display the reuse time of abilities and items.
  • Menu Screens: Combatant
    ‘Non Battle’ combatant scope available. Uses the non-battle group members of the combatant’s group.
  • HUDs: Combatant, Turn Order, Latest Turn
    Performance improvements for all combatant related HUDs. The HUDs now only update when actually displayed content has changed, reducing HUD recalculations drastically.
  • HUDs: Combatant, Turn Order, Latest Turn: Shortcut
    ‘Hide Empty Slots’ settings available. Optionally hide empty shortcut slots instead of displaying them with an empty layout. Slots can either keep their positions or move up to replace empty slots. Using ‘Position’ cell mode will always keep slot positions.
  • HUDs: Combatant, Object
    ‘Invert Range Check’ setting available when using a range limit. Optionally check for the game object being out of range instead of within the defined range of the player.
  • HUDs: Combatant, Object
    ‘Distance To Camera’ setting available when using a range limit. Optionally check the distance to the camera instead of the player.
  • HUDs: Turn Order
    ‘Add Selecting Combatant’ setting available. Adding the currently selecting combatant at the top of the list is now optional.
  • HUDs: Turn Order
    ‘Start Index Offset’ setting available. Optionally define which combatant will be the first in the list by skipping a defined number of combatants. Can e.g. be used in combination with ‘Limit List Length’ to split the turn order into multiple parts.
  • Event System: Function Nodes
    ‘Selected Data’ settings available. Optionally use an instance of a class stored in selected data for calling a function or changing/checking fields and properties.
  • Event System: Select Equipment
    ‘From Game Object’ settings available. Optionally select equipment from a game object (i.e. an equipment’s prefab spawned by an equipment viewer).
  • Event System: Add Temporary Cell Event
    ‘Add Temporary Cell Event’ node available in ‘Battle > Grid’ nodes. Add a temporary grid cell event to a grid cell. Can be automatically removed after a defined number of turns or time. Grid cell events can be identified via a defined ‘event key’ to check or remove them via the event system.
  • Event System: Has Temporary Cell Event
    ‘Has Temporary Cell Event’ node available in ‘Battle > Grid’ nodes. Checks if a defined (via event key) or any temporary grid cell event is available on a grid cell.
  • Event System: Remove Temporary Cell Event
    ‘Remove Temporary Cell Event’ node available in ‘Battle > Grid’ nodes. Removes a defined (via event key) or all temporary grid cell events from a grid cell.
  • Event System: New Game
    ‘New Game’ node available in ‘Game > Game’ nodes. Starts a new game if the game isn’t yet running.
  • Event System: Statistics Nodes
    New ‘Statistic’ selections available for the total and single battle gains statistics.
  • Event System: Change Shortcut
    ‘Use Selected Data’ settings available. Optionally use a shortcut stored in selected data.
  • Event System: Check Shortcut
    ‘Use Selected Data’ settings available. Optionally check for a shortcut stored in selected data.
  • Event System: Drop Items
    ‘Despawn Drops’ settings available. Optionally despawn the dropped items after a defined amount of time. Despawned drops will be removed forever.
  • Event System: Check Equipment, Equipment Fork
    ‘Use Selected Data’ node available. Optionally check for equipment stored in selected data instead of a defined weapon or armor.
  • Event System: Value Input Dialogue
    ‘Change Value’ setting available for ‘Float’ input type. Define the change value per input.
  • Event System: Change Fields
    ‘Increase Size’ setting available when setting an array element. Optionally increase the size of an array (or list) field/property if the defined array index exceeds the array’s size.
  • Event System: Change Selected Data Name
    ‘Variable Settings’ available. Optionally replace used variable text codes with variables from a selected origin instead of replacing the text codes with the (global) variable value at the time the name is used.
  • Event System: Call Global Event
    ‘Set Starting Object’ setting available. Optionally use a starting object for the global event. Otherwise the calling event’s event object will be used.
  • Event System, Battle AI, Formulas: Selected Data Nodes
    ‘Non Battle’ combatant scope available. Uses the non-battle group members of the combatant’s group.
  • Game Starter
    ‘Use Asset Bundle’ setting available. Optionally load a project asset from an asset bundle.
  • Item Collectors
    ‘Despawn After Time’ settings available for ‘Single’ and ‘Random’ types using ‘Spawn Prefab’. Optionally despawn the item collector after a defined amount of time.
  • Battle Grids: Editor
    ‘Connections’ mode available in the ‘Grid Setup’ of grid/cell inspectors. Allows editing the cell connections.
  • Battle Grids
    Rotating the whole battle grid (either before or after generating the grid) is now supported.
  • Add Combatant
    ‘Remember Combatant’ settings available in ‘Add Combatant’ components. Optionally remember a combatant’ status and position when changing scenes (and also optionally save it with save games).
  • Scripting
    Several new event handlers are available throughout the framework. E.g. in various combatant status functionality and save games.

Changes

  • Event System
    Increased performance of events that are started outside of the regular event system, e.g. init game events of items and equipment (i.e. not from event interactions, battle events, etc.).
  • Event System: Change Equip Status Value
    The ‘Operator’ setting now supports more advanced operations, e.g. multiply, divide or power of.
  • Data Serialization
    Improved performance of saving and loading data (both editor and in-game). Depending on the use case, data saving and loading is faster by 20-30% (e.g. what amount of which data, like combatants, you have in your project).
  • Editor
    Improved the data load time when opening the editor by up to 50%.
  • Player Controls: Button
    The move speed now takes analog input (e.g. from controllers) into account.
  • Combatants: Auto Attacks
    ‘Interval’ now supports advanced float value selections. E.g. use a formula to determine the interval (uses the auto attack ability as selected data via the ‘action’ key).
  • Combatants: Movement Settings
    ‘Use Position Change’ is now enabled by default for new combatants.
  • Active Time Battles
    Blocking active time will also prevent new actions from starting. Previously, if a battle menu was opened while active time was blocked, the selected action would be performed. You can block/unblock active time using a ‘Block Active Time’ node in the event system.
  • Turn Based Battles: Dynamic Combat
    Improved compatibility of using ‘Dynamic Combat’ with multiple actions per turn of a combatant.
  • Battle End
    Player death now takes priority over enemy death, i.e. if all remaining player and enemy combatants die at the same time/turn, it will be counted as a defeat instead of a victory.
  • Event Interactions: Actor Settings
    Actors that allow selecting a game object from the scene now show their name (if it’s set in the actor’s settings).

Fixes

  • Grid Battles, Battle Menus
    Fixed an issue where using ‘Player Auto Grid Move’ (in the different battle system types) didn’t return to the battle menu (or combatant selection in phase battles without auto called battle menu) when canceling the move command.
  • Grid Battles, Control Maps
    Fixed an issue where a ‘None’ target range ability/item didn’t use the affect range when using ‘Cursor Over’ control map targeting.
  • Battle Menus: Target Selection
    Fixed an issue where a target being killed/removed during target selection didn’t update the list of targets.
  • Battle End: Layout Screen: Outcome Notification
    Fixed an issue where clicking on the ok button (using ‘Show Ok Button’) didn’t accept the loot dialogue.
  • Mouse/Touch Controls
    Fixed an issue where the cursor being over a click blocking GUI box didn’t prevent mouse/touch interaction for modes other than ‘Start’.
  • Editor: Event System
    Fixed an issue where adding actor text codes using the text area buttons didn’t add a ‘.’ after ‘#actor’, leading to wrong text codes.
  • Editor: Grid Cell Types
    Fixed an issue where adding a new cell caused an error in the editor.
  • Editor: Formulas
    Testing a formula in the editor could cause an error when a used combatant had an equipment using an ‘Init Game Event’.
  • Status Effects: Game Events
    ‘Only Once’ setting when using use on ‘Time’ was inverted, causing the event to only be used once if the setting was disabled.
  • Asset Bundles
    Fixed an issue where using ‘Load From Memory’ didn’t work.
  • Battle End Events
    Fixed an issue where returning to the previous scene after a teleport battle spawned the battle leader instead of the field leader (e.g. when using a non-battle player).
  • Move AI
    Fixed an issue where using ‘Follow Leader’ with ‘Next In Line’ enabled didn’t follow a non-battle player.
  • Target Settings: Group/Individual Targets: Raycast Targeting
    Fixed an issue where ‘Remove No Target’ didn’t remove the target if nothing was hit by the raycast.
  • Abilities, Items: Reuse/Delay Time
    Using an ability or item without animating it didn’t set the reuse or delay time.
  • GUI Boxes: Open Box Behaviour
    Fixed an issue where scaling from 0 messed up the bounds of the name box when using the legacy GUI.
  • Menu Screens: Description
    Fixed an issue where the description of the first GUI box was shown when opening the menu screen, even if a different GUI box was focused.