November
02
2019

ORK 2.27.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 the new access handler (allows you to interject some of ORK’s functionality, see the how-to for details), allows using game events in status values and status effects, adds short names, custom text codes, the new object HUD, component and game object managers, updates to animations 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 have been changes in all parts of the framework, especially value checks (e.g. used in variable conditions or status requirements) could potentially cause issues. 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

  • Access Handler
    The access handler is used to funnel some of ORK’s functionality through overridable functions. This allows you to interject custom functionality when e.g. creating a combatant, adding an item to an inventory and many other things. You can create custom access handlers by extending the ‘AccessHandler’ classes and overriding the functions you want to replace.
  • Value Checks
    All value checks (e.g. ‘Is Equal’, ‘Is Less’, etc.) have been updated with advanced settings. All now support new checks (e.g. ‘Is Less Equal’) and float value selections (e.g. using formulas). This is available throughout the framework, e.g. in status requirements.
  • Short Names
    ‘Short Name’ setting available in all data with language content definitions. Define a separate, shorter name – the name is used if no short name is defined. Short names can be added to UI and dialogues using text codes. E.g. have a status value named ‘Health Points’ with a short name ‘HP’.
  • Text Codes
    ‘Short Name’ text codes available throughout the framework. Beside the standard text codes that can be added via the text editor, there are also new text codes availables in HUDs and menu screens – generally wherever you can add a text code for a name of something.
  • Custom Text Codes
    ‘Text Codes’ sub-section available in the ‘Menus’ section. Define custom text codes that can be used in other texts and dialogues. Combatants and scene objects can overrule these text codes if they’re used on speaker actors in dialogues.
  • Combatants, Scene Objects, Scene Object Types: Custom Text Codes
    ‘Custom Text Codes’ settings available. Combatants, scene objects, scene object types and scene object components can define custom text codes which will overrule the default custom text codes defined in ‘Menus > Text Codes’. Dialogues using a speaker will use the actor’s text codes.
  • HUDs: Object
    ‘Object’ HUD type available. Similar to individual ‘Combatant’ HUDs, an ‘Object’ HUD can be added to game objects to be displayed at the object’s position in your scenes. Can e.g. be used to add quest marker HUDs to NPCs or information labels to objects in your scenes.
  • Component: Object HUD
    ‘Object HUD’ component available. Adds an ‘Object’ type HUD to a game object, optionally based on variable and quest conditions.
  • Component: Component Manager
    ‘Component Manager’ component available. The component manager can be used to enable/disable other components based on variable and quest conditions. E.g. use this to manage multiple components that should be available using the same conditions, like an ‘Event Interaction’ and an ‘Object HUD’ component.
  • Component: Game Object Manager
    ‘Game Object Manager’ component available. The game object manager can be used to enable/disable game objects based on variable and quest conditions. E.g. use this if a game object should be enabled after receiving a new quest in the scene.
  • Float Values
    ‘Delta Time’ float value type available in all advanced float value selections. Uses the current frame’s delta time as value.
  • Quest Conditions
    ‘Quest Type Status Condition’ settings available in all quest conditions. Optionally check if any quest of a defined quest type is inactive, active, finished, failed or not yet added.
  • Mouse/Touch Controls
    ‘Timeout (s)’ setting available in all mouse/touch control settings throughout the framework. Any click/touch during the timeout will not be recognized.
  • Game Controls: Player Controls, Camera Controls
    ‘SC Block Control’ settings available. Blocking player or camera controls during scene changes is now optional. By default enabled (blocked).
  • Game Settings
    ‘Access Type’ setting available. Defines the used access handler.
  • Formulas: Is Enemy
    ‘Is Enemy’ node available. Checks if user and target are enemies.
  • Formulas: Status Value
    ‘From All’ setting available when using ‘Selected’ status origin. Optionally use the status value from all combatants stored in the used selected data.
  • Animations: Mecanim
    ‘Duration Type’ settings available. Define how a Mecanim animation’s duration will be determined. Either by a ‘Fixed’ time or by defining the ‘Animation Clip’ name, which searches for the clip’s duration in the animator controller when playing the animation. The duration is used when using ‘Wait’ options in animation nodes in the event system.
  • Status Values: Change Game Events
    ‘Change Game Events’ settings available. Optionally use game events when a status value changes. Can be limited to certain change values and status requirements. Combatants can optionally define additional game events or replace the status value change events completely.
  • Status Values: Count To Value
    ‘Delay (s)’ setting available when using ‘Count To Value’. Optionally delay the visual change of the status value before counting to the new value.
  • Status Effects: Effect End
    ‘In Battle’ and ‘In Field’ settings available for end after ‘Time’. Reducing the status effect’s time can now be enabled or disabled for the combatant being in battle or in the field.
  • Status Effects: Game Events
    ‘Game Events’ settings available. Optionally use game events on certain effect states, e.g. when applying or removing the effect.
  • Status Effects: Status Conditions
    ‘Initial Use’ setting available for set on ‘Time’. The first use happens when the status effect is applied. If disabled, the first use happens after the defined time.
  • Status Effects: Status Conditions
    ‘Only Once’ setting available for set on ‘Time’. The status value change will only happen once (if enabled).
  • Status Effects: Prefabs
    ‘Auto Destroy’ settings available. Optionally automatically destroy the spawned prefab after a defined amount of time instead of destroying it when the status effect is removed.
  • Status Effect Changes
    ‘Remove Type’ setting avaialble when removing status effect types. Either remove all, a random, the first (oldest) or last (newest) effect of the selected status effect type.
  • Status Effect Changes
    ‘Switch User/Target’ setting available. Optionally switch user and target, i.e. the user will become the target and the target become the user. E.g. an ‘Attack Status Effect’ would apply the effect to the user instead of the target.
  • Abilities, Items: Status Changes
    ‘Game Event’ settings available in user/target changes. Optionally use a game event when calculating the outcome of an ability/item or the change is blocked. This can be used to expand action calculations with custom mechanics and is performed regardless of the action being animated (using battle events) during battle or used from a menu.
  • Abilities: Use Costs: Status Changes
    ‘Exceed Use Cost’ setting available. Use costs can optionally exceed the available value of a status value. E.g. if the user has 100 MP and the ability costs 120 MP it can still be used.
  • Abilities: Hit Chance
    ‘Miss Game Event’ settings available. Optionally use a game event when a target was missed.
  • Abilities: Steal Settings
    ‘From Inventory’ settings available for ‘Item Stealing’ and ‘Money Stealing’ settings. Determines if the stolen item/money will be removed from the target’s inventory (also requires it to be in the inventory).
  • Passive Abilities: Status Effects
    ‘Use Ability Variables’ setting available for status effect changes. Optionally use ability variables instead of global variables in variable conditions. Using object variables of the combatant will not be affected by this setting.
  • Weapons, Armors
    ‘Set Attack Attributes’ settings available. Optionally have weapons and armors set attack attributes of abilities/items that allow using effect attributes. This is the same functionality as already avaialble for status effects. If both an equipment and a status effect sets the same attack attribute, the effect’s attribute is prioritized.
  • Weapons, Armors: Status Effects
    ‘Use Equipment Variables’ setting available for status effect changes. Optionally use equipment variables instead of global variables in variable conditions. Using object variables of the combatant will not be affected by this setting.
  • Crafting Recipes: Game Events
    ‘Wait’ settings available for fail, ingredient, outcome and critical outcome game events. Optionally wait for the event to continue before progressing (e.g. starting to craft after the ingredient event).
  • Crafting Recipes
    ‘Pre-Crafting Game Event’ settings available. Optionally use a game event before starting crafting (and consuming the ingredients). Additional requirement checks can be used after the event to prevent crafting, otherwise the crafting starts after the event is finished.
  • Combatants: Game Events: Custom Events
    ‘Custom Events’ settings available. Optionally override all or only specific custom events defined in ‘Battle System > Battle Settings’. Custom events can be used in other events using a ‘Custom Combatant Event’ node and are identified via a defined key.
  • Combatants: Game Events: Status Value Change Events
    ‘Status Value Change Events’ settings available. Optionally use game events when a status value changes. Either define additional change events to those already defined by status values or replace them completely.
  • Combatants: Status Settings
    ‘Can Level Up’ settings available. Optionally prevent combatants from leveling up (or leveling up their classes) by disabling these settings.
  • Battle Settings: Default Events
    ‘Init Events’ and ‘Spawn Events’ settings available. Define the default init/spawn game events for all combatants. Each combatant can individually override these events.
  • Battle Settings: Default Events: Custom Events
    ‘Custom Events’ settings available. Custom events can be used in other events using a ‘Custom Combatant Event’ node and are identified via a defined key.
  • Active Time Battles
    ‘Separate Ticks’ setting available. Determines if increasing the timebar and starting actions happens in the same tick (intervall), i.e. if the timebar fills only every 2nd tick. By default enabled (previous behaviour).
  • Battle Texts
    ‘Steal Item Nothing Info’ and ‘Steal Money Nothing Info’ settings available. Defines battle info texts that will be displayed if there is no item or money to steal from the target (i.e. target doesn’t allow stealing item/money).
  • Battle End: Loot Dialogues
    You can now set up multiple loot dialogues for different battle outcomes, e.g. having a different dialogue for victory and defeat.
  • Battle End: Loot Dialogues
    ‘Inventory Notification’ settings available. Showing notifications and console lines when adding loot to the inventory is now optional.
  • Battle End: Loot Dialogues: Layout Screen
    ‘Custom Loot Notification’ settings available. Optionally show and define custom loot. Custom loot can be displayed based on variable conditions and have quantity stored in global float variables. You can define content information (name, description, icon) and postraits for the custom loot.
  • Battle End: Loot Dialogues: Layout Screen
    ‘Display Index’ and ‘Wait’ settings avaialble in the indivdiual notifications. Defines the order in which the notifications (loot, combatant, custom loot) are displayed and if the notification should wait until it’s closed before showing the next notification.
  • Battle End: Loot Dialogues: Layout Screen
    ‘Count To Quantity’ settings available in ‘Loot Notifications’. Optionally count to the loot’s quantity over time, counting starts at 1.
  • Battle End: Loot Dialogues: Layout Screen
    ‘Background Image’ settings available. Optionally add background images (using GUI boxes outside the used layouts) when displaying the outcome, loot and combatant notifications.
  • Battle Menus
    ‘Display At Combatant’ settings available. Optionally display the battle menu at the user combatant’s game object.
  • Battle Menus: Switch Menu User
    ‘Switch Menu User’ battle menu item available. Changes the current battle menu user to the next or previous available combatant. Same functionality as the ‘Switch Menu User’ settings in ‘Base/Control > Game Controls’, i.e. only useful in ‘Active Time’ and ‘Real Time’ battles.
  • Battle AI: Selected Data Action
    ‘Selected Data Action’ node available in ‘Action’ nodes. Uses an action stored in selected data, e.g. an ability or item.
  • Battle AI: Grid Move
    ‘Can Use Check Only’ setting available. Optionally only check if the grid move action is useable instead of using it.
  • Menu Screens
    ‘Open Menu User’ setting available. The user of an already opened menu screen is used as the menu screen’s user (if available).
  • Menu Screens: Inventory Exchange
    ‘Tabs in Box 1’ and ‘Tabs in Box 2’ settings available when using ‘Tabs’ type display. Displaying the item type tabs is now optional for item box 1 and 2. By defaullt enabled for both.
  • Editor: Add Buttons
    Buttons to add new settings (e.g. adding new HUD elements) will now also be displayed after the last settings, i.e. you on longer have to scroll back up in case there’s a lot of settings.
  • Event System: Custom Combatant Event
    ‘Custom Combatant Event’ node available in ‘Event’ nodes. Uses custom events of a combatant that match the defined key. Can e.g. be used to animate combatants at the start or end of a battle.
  • Event System: Change Effect Duration
    ‘Change Effect Duration’ node available in ‘Combatant > Status’ nodes. Changes the duration of status effects applied to a combatant.
  • Event System: Remove Quest
    You can now also remove all quests of a defined type or all quests.
  • Event System: Select Selected Data
    ‘Select Selected Data’ node available in ‘Event > Selected Data’ nodes. Uses the first, last, a random or all content from another selected data as selected data.
  • Event System: Store Selected Data Content
    ‘Store Selected Data Content’ node available in ‘Event > Selected Data’ nodes. Stores content information of selected data (e.g. combatants, abilities, items) into a string game variable. Which information is stored can be defined using text codes, e.g. name (%n) or description (%d).
  • Event System: Mecanim Animation
    ‘Wait’ and ‘Duration’ settings available in ‘Mecanim Animation’ nodes. Optionally wait for the animation to finish before executing the next step, requires the duration to be either defined by a ‘Fixed’ time or by defining the ‘Animation Clip’ name, which searches for the clip’s duration in the animator controller when playing the animation.
  • Event System: Change Position, Change Camera Position, Rotate To, Change Nav Mesh Target, Nav Mesh Warp, Position Force Rigidbody, Explosion Rigidbody
    ‘Ignore Scale’ setting available when using ‘Local Space’. Optionally ignore the scale when using positions in local space. By default disabled.
  • Event System: Check Equip Status Value
    ‘Check Equip Status Value’ node available in ‘Combatant > Equipment’ nodes. Checks a status value bonus of equipment currently stored in selected data.
  • Event System: Store Equip Status Value
    ‘Store Equip Status Value’ node available in ‘Combatant > Equipment’ nodes. Stores a status value bonus of equipment currently stored in selected data into a float game variable.
  • Event System: Change Selected Target
    ‘Change Selected Target’ node available in ‘Battle > Combatant’ nodes. Changes the group/individual target of a combatant.
  • Event System: Combatant Animation, Legacy Animation, Mecanim Animation, Death Animation, Revive Animation
    ‘Normalized Time’ setting available when waiting for an animation to finish. Defines for which amount of the animation’s time the event should wait, 0 being no wait time and 1 being full wait time. E.g. 0.5 would wait for half of the animation.
  • Event System: Combatant Animation, Legacy Animation, Mecanim Animation, Death Animation, Revive Animation
    ‘Store Duration’ settings available. Optionally store the duration of the played animation into a float game variable.
  • Event System: Spawn Prefab
    ‘Set Scale’ settings available when enabling ‘Use Center’. Optionally set the scale of the spawned prefab when spawning it at the center of all used game objects.
  • Event System: Clear Battle Gains
    ‘Clear Loot’, ‘Clear Experience’ and ‘Clear Normal SV’ settings available. Removing the different battle gains is now optional, e.g. allow you to only remove experience from the battle gains. All are enabled by default.
  • Event System: Change Experience Rewards
    ‘Change Experience Rewards’ node available in ‘Battle > Gains’ nodes. Changes the already collected experience rewards of the battle’s gains. E.g. multiplying them by 0.5.
  • Event System: Change Normal SV Rewards
    ‘Change Normal SV Rewards’ node available in ‘Battle > Gains’ nodes. Changes the already collected ‘Normal’ status value rewards of the battle’s gains. E.g. multiplying them by 0.5.
  • Battle Events: Event Settings
    ‘Allow Dead User’ setting available. Optionally continue the battle event if the user is dead.
  • Flying Texts: Positions
    ‘Ignore Scale’ setting available when using ‘Local Space’. Optionally ignore the scale when using positions in local space. By default disabled.
  • Scripting: Battle Menu
    The selected targets of a battle menu are now available via ‘combatant.Battle.BattleMenu.TargetHighlight.SelectedTargets’, ‘combatant’ being the combatant you want to access.

Changes

  • Combatants: Game Event Settings
    ‘Init Game Event’ and ‘Spawn Game Event’ settings can now be defined for player, ally and enemies separately. Also, default events can be defined in ‘Battle System > Battle Settings’.
  • Item Selections
    ‘Quantity’ and ‘Chance’ settings now support advanced float value selections. This is available in all item selections in the ORK editor, e.g. crafting recipes, loot tables, quest rewards, etc.
  • Item Selections
    Using a formula in ‘Chance’ will have the item available as selected data via the key ‘action’. This is e.g. available in loot tables and crafting recipes.
  • Menu Screens: Button List
    Using a ‘Menu Screen’ item without a combatant selection will now use the current menu screen’s user as the called screen’s user.
  • Editor: Events
    The event editor now remembers the last path used to save an event as long as the editor is kept open. Saving another event will open the save file dialog at the last used path.
  • Editor: Abilities
    The ‘Steal Settings’ have been moved to the ‘Ability Settings’.
  • Editor: Combatants
    The ‘Steal Settings’ have been moved from the ‘Battle Settings’ to ‘Invetory & Equipment’.
  • Editor: Battle Grids
    Painting on grids now uses the raycast settings of the ‘Battle Grid Component’.
  • Event System
    The ‘Random Selected Data’ node has been replaced by the ‘Select Selected Data’ node. Nodes in your saved events will be updated automatically.
  • Event System
    The ‘Store Selected Data Name’ node has been replaced by the ‘Store Selected Data Content’ node. Nodes in your saved events will be updated automatically.
  • Status Effects
    Reapplying a status effect will now change the effect’s user to the new combatant who caused the status effect to apply to the target.
  • Camera Events
    Changing the player will now end the active camera event.

Fixes

  • Move AI: Enemy Detection
    ‘Detect On Damage’ was used even if ‘Use Detection’ was disabled.
  • Menu Screens: Inventory Exchange
    The ‘All Type Button’ caused transfering all items.
  • Console
    Fixed an issue where the ‘Join Group Text’ wasn’t added when a combatant joined the active player group.
  • Combatants: Animations
    Fixed an issue where animations didn’t switch from field to battle animations when starting a battle.
  • Event System: Random Select Data
    Fixed an issue where the ‘Random Select Data’ node could result in an error when using a data without any content.
  • Event System: Change Nav Mesh Target
    Fixed an issue where having ‘To Object’ enabled before enabling ‘Stop’ caused an error when the event was executed in-game.
  • GUI Boxes
    Fixed an issue where tooltips and drags where possible when the cursor was within the padding of the content box.
  • GUI Boxes: New UI
    Fixed an issue where clicking on choices in unfocused GUI boxes while the focus was locked (e.g. in confirmation dialogues in menu screens) was still clicking the button.
  • Abilities, Items: Raycast Targeting
    Fixed an issue where player input required using ‘Mouse/Touch Control’ instead of also allowing only ‘Use Input Keys’.
  • Abilities, Items: Raycast Targeting
    Fixed an issue where raycasting without player input didn’t use the mouse position if ‘Use Mouse Position’ was enabled in the ‘AI/Auto Target Settings’.
  • Group/Individual Targets
    Fixed an issue where using abilities or items only used the selected group/individual targets instead of a group of combatants.
  • Editor: Game Controls: Player Controls
    Fixed an issue where disabling ‘Use Combatant Speed’ didn’t show a speed setting.