ORK 2.26.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 a new percent-based status development, conditional use/affect ranges for abilities and items, move animation for GUI layouts, combatant links (see this gameplay tutorial for an example use case) and many other new features – see details below.
This version is available for Unity 5.6, Unity 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 have been changes in the inventory and combatant/group abilities background system. This includes changes in how some of the functionality can be accessed via scripting. While save games (i.e. saved inventory and abilities) should be compatible with the changes, there is no 100% guarantee that they are – proceed with caution!
New
- Combatant Links
Combatants can now create a connection to another combatant, e.g. to set it to be protected by another combatant. A combatant can keep multiple links by using keys to identify them. Combatant links can be set via the event system and accessed via selected data (‘Select Combatant’ nodes). - Status Requirement: Active Player Group
‘Active Player Group’ requirement selection available. Checks if the combatant is in the active player group (i.e. player controlled). - Game Controls, GUI Boxes: Menu Controls
‘Accept Left Click’, ‘Accept Middle Click’ and ‘Accept Right Click’ settings available. Define which mouse buttons can be used to accept a choice when clicking on it. GUI boxes can override the default controls defined in the game controls. - Game Controls: Interactions
‘In Children’ and ‘From Root’ settings available in the ‘Click Interaction’ settings. Defines if interactions are searched in child objects (by default enabled) and from the root game object (by default disabled) of the clicked game object. - Formulas: Grid Distance
‘Grid Distance’ node available in ‘Position’ nodes. Uses the grid distance between user and target is used to change the formula’s value. - Formulas: Combatant Count
‘Combatant Count’ node available in ‘Combatant’ nodes. The number of combatants in the scene is used. The found combatants can be filtered by different settings, e.g. being enemy of a user or status requirements. - Formulas: Store Combatant Count
‘Store Combatant Count’ node available in ‘Variable’ nodes. Stores the number of combatants in the scene into a float variable. The found combatants can be filtered by different settings, e.g. being enemy of a user or status requirements. - Formulas: Check Difficulty
‘Check Difficulty’ node available in ‘Base’ nodes. Checks the game’s difficulty. - Formulas: Is Grid Cell Diagonal
‘Is Grid Cell Diagonal’ node available in ‘Position’ nodes. Checks if user and target are diagonal to each other (‘Square’ grids only). - Status Developments
‘Percent Points’ settings available. The percent points are used by ‘Percent’ type status value developments and the base for the value distribution. You can use more than 100% of the points. - Status Developments
‘Percent’ development type available. Uses a defined percent of the percent points of the current level. E.g. 20% of 100 points will set the status value to 20. - Status Developments, Ability Trees, Research Trees: Learn Costs
‘Needed’ setting available. Optionally only require/consume one of the defined costs. - Status Developments, Ability Trees, Research Trees: Learn Costs
‘Consume’ setting available. Optionally not consume a cost, but still require it. - Status Effects: Status Conditions
‘Rounding’ setting available. Optionally round the final change value before it is used. - Abilities: Use Costs
‘Use Count’ settings available. Abilities can optionally be used a defined number of times. The use count can be automatically reset (e.g. on battle start) and reset/changed using the event system. Each use reduces the use count by 1. - Abilities, Items: Use Range
‘Conditional Use Range’ settings available. Optionally use a different use range based on status requirements and variable conditions. - Abilities, Items: Affect Range
‘Conditional Affect Range’ settings available. Optionally use a different affect range based on status requirements and variable conditions. - Abilities, Items: Value Changes
‘Rounding’ setting available. Defines how the final change value (after applying attributes, efficiency, etc.) is rounded. Defaults to ‘None’ (no rounding). - Equipment Parts
‘Contribute’ setting available. Determines if a weapon or armor equipped on the equipment part will contribute to the wearer’s status. I.e. if bonuses, status effects or equipment abilities will be available to the wearer. Disable this setting to e.g. create a 2nd set of equipment that can be swapped using the event system. - Weapons, Armors
‘Equipment Part Set’ settings available. You can now define multiple sets of equipment parts a weapon/armor can be equipped on. E.g. a 2handed weapon occupying left and right hand requires a different part set when using secondary equipment parts for weapon switching. - Crafting Recipes
‘Fail Game Event’ setting available. Optionally use a game event when crafting failed, uses the crafting combatant as starting object. - Crafting Recipes: Outcomes, Critical Outcomes
‘Game Event’ setting available. Optionally use a game event after crafting items, the created items are available as selected data via the ‘action’ key and uses the crafting combatant as starting object. - Combatants: Experience Rewards
‘For Killer’ setting available. Optionally add experience rewards for the (player) combatant who killed the combatant instead of the whole player group (or battle group). - Battle Menus: Equipment
‘Only Contributing’ setting available in ‘Equipment’ battle menu items. Defines if only equipment parts that contribute to the wearer’s stats will be displayed. - Battle End
‘Experience For Killer’ setting available. Optionally only give the experience to the (player) combatant who killed an enemy combatant instead of distributing it to the whole group or battle group. - Battle AIs: Store Combatant Count
‘Store Combatant Count’ node available in ‘Variable’ nodes. Stores the number of combatants in the scene into a float variable. The found combatants can be filtered by different settings, e.g. being enemy of the user or status requirements. - Battle AIs: Is Grid Cell Diagonal
‘Is Grid Cell Diagonal’ node available in ‘Position’ nodes. Checks if user and target are diagonal to each other (‘Square’ grids only). - Battle Range Templates: Range Settings
‘Combatant Trigger’ settings available. Optionally use combatants that are within the user’s ‘Combatant Trigger’ components. - Grid Battles: Examine Grid
New text codes available in ‘Info Text’ and ‘Cell Info Text’ settings. Display the action cost of a cell with the ‘%a2’ (format 0.00), ‘%a1’ (format 0.0) and ‘%a’ (format 0) text codes. - Menu Settings: Drag/Drop
‘In Children’ and ‘From Root’ settings available in the ‘Raycast Settings’. Defines if drop interactions are searched in child objects (by default enabled) and from the root game object (by default disabled) of the game object something was dropped on. - Notifications
‘GUI Layout’ settings available. Notifications can optionally use GUI layouts to place multiple notifications. - GUI Layouts: Move Settings
‘Move Settings’ available. Optionally move GUI boxes to their new positions instead of setting them directly. - HUDs: Turn Order
‘Allow Preview’ setting available. Optionally use status previews when calculating the turn order. This also takes ‘Turn Base Order Changes’ into account. - HUDs: Tooltip
‘Is Passive Ability’ and ‘Has Ability Use Count’ settings available in ‘Tooltip’ HUD element display conditions. Optionally only display a HUD element if the tooltip represents a passive ability or an ability using use count or not. - HUDs: Tooltip
New text codes available in ‘Information’ type HUD elements. Display the reuse time of abilities and items using ‘%r’ (0), ‘%r1’ (0.0) and ‘%r2’ (0.00). - HUDs: Combatant: Equipment
‘Only Contributing’ setting available in ‘Equipment’ HUD elements. Defines if only equipment parts that contribute to the wearer’s stats will be displayed. - Menu Screens: Equipment
‘Only Contributing’ setting available in ‘Equipment’ menu parts. Defines if only equipment parts that contribute to the wearer’s stats will be displayed. - Menu Screens: Group: Action Menu
‘Game Event’ action available. Starts a game event using a selected member of the battle group as starting object. - Menu Screens: Group: Action Menu
‘Use Whole Group’ setting available for ‘Screen’ and ‘Game Event’ actions. Optionally shows all group members instead of only the battle group when selecting the action menu item. - Menu Screens: Inventory Exchange
‘Transfer All’ settings available. Optionally add a button to the item type box and/or the item boxes to transfer all currently displayed items to the other item box. - Menu Screens, Battle Menus
‘Added’ sort type available for abilities, items, equipment, AI behaviours/rulesets and crafting recipes. Optionally sort the displayed content by when they where added to the combatant/inventory. - Shortcut Settings
‘Display Requirements’ settings available in ‘Content Text’ settings. Optionally only display a content text when defined requirements and variable conditions are valid. - Text Display Settings: Use Cost Display
‘Use Count Text’ settings available. Defines how an ability’s use count is displayed in the use cost text. - Event System
‘Close All Dialogues’ setting available in all event types (except move events). Optionally closes all GUI boxes opened by the event when the event ends. By default disabled. - Event System: String Values: Game Variable
String/text fields using the ‘Game Variable’ value type can now select the variable origin. Previously this only allowed global variables. - Event System: Switch Equipment
‘Switch Equipment’ node available in ‘Combatant > Equipment’ nodes. Switches (exchanges) equipment between defined equipment parts of a combatant. - Event System: Select Combatant Trigger
‘Select Combatant Trigger’ node available in ‘Combatant > Trigger’ nodes. Uses combatants that are currently within a combatant trigger as selected data. - Event System: Block Notifications
‘Block Notifications’ node available in ‘UI > Dialogue’ nodes. Blocks or unblocks new notifications (e.g. inventory notifications) from being added. - Event System: Are Notifications Blocked
‘Are Notifications Blocked’ node available in ‘UI > Dialogue’ nodes. Checks if adding new notifications is blocked. - Event System: Block Console
‘Block Console’ node available in ‘UI > Dialogue’ nodes. Blocks or unblocks adding new lines to the console or a combatant’s console. - Event System: Is Console Blocked
‘Is Console Blocked’ node available in ‘UI > Dialogue’ nodes. Checks if adding new lines to the console or a combatant’s console is blocked. - Event System: Function To Variable, Field To Variable
‘Failed’ next slot available. The ‘Failed’ slot will be used if no variable was set (e.g. due to the function call failing). Old settings will be updated to link both ‘Success’ and ‘Failed’ slots to the old setting’s ‘Next’ slot. - Event System: Transform To Variable, Variable To Transform
‘Use Local’ setting available for ‘Position’ and ‘Rotation’ values. Optionally use the local position or local rotation when storing or setting a value. - Event System: Join Active Group, Initialize To Level
‘Learn Abilities’ setting available. Learning the combatant’s abilities when first initializing it is now optional. - Event System: Random Selected Data
‘Random Selected Data’ node available in ‘Event > Selected Data’ nodes. Stores a random content from selected data to another. E.g. select a random combatant from a list of combatants. - Event System: Phase Selecting User
‘Phase Selecting User’ node available in ‘Battle > Battle’ nodes. Changes a running ‘Phase’ battle’s currently selecting user to a defined combatant. Only used during ‘Phase’ battles and if the defined combatant is a member of the player group. - Event System: Store Combatant Count
‘Store Combatant Count’ node available in ‘Value > Variable’ nodes. Stores the number of combatants in the scene into a float variable. The found combatants can be filtered by different settings, e.g. being enemy of a user or status requirements. - Event System: Change Ability Use Count
‘Change Ability Use Count’ node available in ‘Combatant > Ability’ nodes. Changes or resets the use count of a combatant’s abilities (or abilities stored in selected data. - Event System: Check Ability Use Count
‘Check Ability Use Count’ node available in ‘Combatant > Ability’ nodes. Checks the use count of abilities stored in selected data. - Event System: Add Experience Reward
‘For Combatant’ setting available. Optionally add the experience reward only for a defined combatant. - Event System: Is Grid Cell Diagonal
‘Is Grid Cell Diagonal’ node available in ‘Battle > Grid’ nodes. Checks if two grid cells are diagonal to each other (‘Square’ grids only). - Event System: Link Combatants
‘Link Combatants’ node available in ‘Combatant > Combatant’ nodes. Changes a combatant’s link to other combatants. - Event System: Is Linked Combatant
‘Is Linked Combatant’ node available in ‘Combatant > Combatant’ nodes. Checks if a combatant is linked to another combatant. - Event System: Linked Combatant Count
‘Linked Combatant Count’ node available in ‘Combatant > Combatant’ nodes. Checks the number of linked combatants of a combatant. - Event System, Formulas, Battle AIs: Select Combatant
‘Linked’ combatant origin selection available. Uses the linked combatants of a combatant as selected data.
Changes
- Scripting: Inventory, Combatant/Group Abilities
Changes to the background systems managing inventory (e.g. items, weapons, armors, crafting recipes, etc.) and abilities of combatants and groups. This includes changes in how some of the functionality can be accessed via scripting. - Legacy GUI
Performance improvements when using the ‘Legacy GUI’ GUI system. GUI boxes will now only display choices that are visible (e.g. due to the scroll view), which limits the FPS impact of huge choice lists (e.g. inventory menu with a lot of items). - Notifications
Notification queueing settings have been replaced with a more advanced selection. You can now use ‘Add’ (immediately showing while previous notifications are shown), ‘Replace’ (immediately showing, closing previous notifications) and ‘Queue’ (showing notifications in sequence). - Event System: Close All Dialogues
The ‘Close All Dialogues’ node will now also execute when the event is stopped (e.g. due to ‘Stop On Destroy’). - Event System: Function Nodes
You can now use advanced value selection fields for ‘String’, ‘Int’, ‘Float’, ‘Vector 2’ and ‘Vector 3’ field/parameter types. Field/property access now also allows accessing indexes of arrays. - Event System: Change Equipment
‘From Inventory’ setting is now also available when using selected data. This will take the equipment stored in the inventory from the combatant’s inventory (if available). - Battle AIs
The ‘Battle AI’ node now displays the selected battle AI’s name. - Main Menu
Leaving ‘New Game Scene’ empty will now start the start event in the main menu’s scene. - Weapons, Armors: Equipment Abilities
The equipment that adds the ability to a combatant is now available in battle events and formulas used by the ability as selected data via the ‘equipment’ selected key. - Editor: Weapons, Armors
Added a warning to remind the user to add new equipment to enable it in the combatant’s class (or the combatant itself) to be equipable. - Editor: Animations
Added a warning to Mecanim animations to define a duration to be able to use ‘Wait’ options in events. - Abilities, Items, Status Effects: Status Value Changes
‘Use Effect Attributes’ has been changed to a selection field. Attack attributes from status effects can now be used to add new attributes to a value change, replace defined attributes or both. - Combatants, Grid Settings: Limit Height Movement
The height limit values are now float value selection fields, supporting formulas, variables and other sources. E.g. base a combatant’s height movement limitation on status values by using a formula. - Combatants: Animations
Animations are now only updated if a status effect or equipment that uses own animation settings is added/equipped or removed/unequipped. - Status Effects: Block All Actions
Applying a status effect that blocks all actions will now end the target’s turn if it’s currently choosing actions. - HUDs: Tooltip
Tooltips for abilities in ability trees will now show the (optionally) overridden name or description.
Fixes
- Interaction Controller
Disabling an interaction while it is within the trigger of an ‘Interaction Controller’ component could cause the interaction to be interactable after moving away and reenabling the interaction. - Battle Grids
Fixed an issue where any battle grid smaller than 4×4 froze the game on battle start. - Legacy GUI
Fixed an issue where the text in dialogues and menus (only content text, e.g. not in choices) was displayed stronger than it should. - Quests
Fixed an issue where finishing or removing active quests didn’t reduce the active quest count. - Quests
Fixed an issue where removed quests/tasks could still be finished by auto finish requirements. - GUI Boxes
Hidden GUI boxes (e.g. in the battle menu when not using a target menu) no longer use open/close box behaviours, which could lead to e.g. the target selection feeling delayed/slow. - Menu Screens: Research
Fixed an issue where repeated opening and closing of a research menu could lead to performance impacts in the UI. - HUDs: Information
Fixed an issue where using ‘Update By Inventory’ or ‘Update By Variables’ could get stuck on old values when loading a save game or starting a new game. - HUDs: New UI
Scroll bars where not interactable in some HUDs when using the new UI. - HUDs: Combatant: Shortcut
Fixed an issue where using a ‘Click Count’ above 1 didn’t work. - Battle System: Active Time, Turn Based, Phase
Fixed an issue where having status effects with ‘Auto Attack’ or ‘Attack Allies’ could cause the battle to not progress any further in certain conditions. - Interactions
Fixed a potential issue with click interactions. - Camera Events
Overlapping camera events using ‘Reset Position’ could result in resetting to wrong positions. - Event System: Is Move AI Target
Fixed an issue where the check only succeeded when fleeing was enabled for the user’s move AI. - Grid Battles: Active Time Battles
Fixed an issue where the grid move command didn’t end the user’s turn or reduced the timebar (depending on the setup).