ORK 3.20.0 is here with 79 new features, changes and fixes (and more in the also included Makinom 2.19.0)!
This update adds a new options menu feature (including input rebinding and graphics options), new custom settings and custom targeting features to extend functionality, updates for abilities, items, status effects, combatant groups and many other new features, changes and fixes.
Please note!
ORK 3.20 marks the first and only paid upgrade in ORK 3’s lifecycle, an upgrade from any ORK version costs $50.
The regular (non-upgrade) price for ORK 3 is now $150, but a 50% release discount is available for the first 2 weeks.
See the details and how to upgrade here.
Download the latest version of ORK Framework here.
If you’re enjoying the updates, tutorials and support I provide, please consider leaving a review in the Unity Asset Store and supporting me on patron.com – every little bit helps!
New
- Option Categories: ‘Option Categories’ sub-section available in ‘UI > Option Categories’. Set up categories and their options (e.g. volume, graphics, input rebinding, etc.) and if the options of the category are saved in save games or an options file. The general settings define where the options file is saved and the default options menu.
- Global Custom Settings: ‘Global Custom Settings’ sub-section available in ‘Base/Control’ section. Global custom settings are an easy way to add custom systems to the project by extending from the ‘BaseGlobalCustomSettingsType’ class. Their data can be saved/loaded with save games and functionality called via schematics (‘Use Global Custom Settings’ node). See the built-in ‘DebugGlobalCustomSettingsType’ class for an example implementation.
- Formulas: Status Origin: ‘Player Battle’ and ‘Player Field’ status origin types available. You can now use specifically the battle or field player combatant in formula nodes. Previously you could only use the ‘Player’ (still available), i.e. based on the game being in battle or the field using one or the other. Please note that battle and field player are only different when using a non-battle player setup.
- Status Values: Change Schematics: ‘Is Critical’ and ‘Is Blocked’ settings available. Optionally consider using a change schematic based on the change being a critical hit or blocked. This information is also available as local bool variables ‘critical’ and ‘blocked’ in the schematic. ‘Is Critical’ defaults to ‘Ignore’ and ‘Is Blocked’ to ‘No’ to preserve the previous behaviour.
- Status Developments: Level Limit: ‘Level Limit’ settings available. Optionally limit the maximum level of a combatant until defined conditions are valid. A status development can have multiple level limits.
- Target Selections: Custom Targeting: ‘Custom Targeting’ settings available. Add custom targeting settings to target selection templates, abilities or items. Custom targeting can be used to sort or filter the available targets and set the used target of an action. This is supported by single and group target range and when using raycast targeting, but it’s not used during player target selection (only when the system selects a target, e.g. auto targeting or by non-player combatants). Custom targeting is used after auto target conditions (i.e. only if auto target isn’t used or didn’t find a target). You can implement your own settings by extending from the ‘BaseCustomTargetType’ settings.
- Target Selections: Custom Targeting: Attack Modifier Value Sorted: ‘Attack Modifier Value Sorted’ custom target type available. The targets are sorted by a defined attack modifier’s value. Single targeting uses the target with the lowest/highest value.
- Target Selections: Custom Targeting: Defence Modifier Value Sorted: ‘Defence Modifier Value Sorted’ custom target type available. The targets are sorted by a defined defence modifier’s value. Single targeting uses the target with the lowest/highest value.
- Target Selections: Custom Targeting: Distance Sorted (Position): ‘Distance Sorted (Position)’ custom target type available. The targets are sorted by the distance to a defined position. Single targeting uses the nearest/farthest target.
- Target Selections: Custom Targeting: Distance Sorted (User): ‘Distance Sorted (User)’ custom target type available. The targets are sorted by the distance to the user. Single targeting uses the nearest/farthest target.
- Target Selections: Custom Targeting: Grid Distance Sorted (User): ‘Grid Distance Sorted (User)’ custom target type available. The targets are sorted by the grid distance to the user. Single targeting uses the nearest/farthest target.
- Target Selections: Custom Targeting: Status Value Sorted: ‘Status Value Sorted’ custom target type available. The targets are sorted by a defined status value. Single targeting uses the target with the lowest/highest value.
- Target Selections: Custom Targeting: Variable Sorted: ‘Variable Sorted’ custom target type available. The targets are sorted by a defined object variable value. Single targeting uses the target with the lowest/highest value.
- Battle Range Templates: Grid Shape: Line of Sight: ‘Ignore First In Line’ settings available when using ‘LOS Allied Combatants’ or ‘LOS Enemy Combatants’. Optionally ignore the first combatant in a line for line of sight blocking, i.e. the first combatant in line can be targeted, but combatants behind it can’t.
- Equipment, Classes: Custom Settings: ‘Custom Settings’ available. Add custom settings and functionality by extending from the ‘BaseCustomSettingsType’ class. Their data are saved/loaded with save games as part of their equipment/class and functionality called via schematics (‘Use Custom Settings’ node). See the built-in ‘DebugCustomSettingsType’ class for an example implementation.
- Abilities, Items, Status Effects, Combatants: Custom Settings: ‘Custom Settings’ available. Add custom settings and functionality by extending from the ‘BaseCustomSettingsType’ class. Their data are saved/loaded with save games as part of their parent content (e.g. ability or item) and functionality called via status changes or schematics (‘Use Custom Settings’ node). See the built-in ‘DebugCustomSettingsType’ class for an example implementation.
- Abilities, Items: Target Changes: ‘Is Main Target’ setting available. Optionally only use target changes if the target is a main target, i.e. not coming from affect range. Can check for being a main target, being an affected target or ignoring this condition. E.g. use this to set up different status changes for targets coming from affect range.
- Abilities, Items: Status Changes: Use Custom Settings: ‘Use Custom Settings’ status change type available. Uses custom settings of the ability/item, the user or target. Forwards the user, target, variables and selected data used for the calculation to the ‘Use’ function.
- Abilities, Items: Status Changes: Use Global Custom Settings: ‘Use Global Custom Settings’ status change type available. Uses defined global custom settings. Forwards the user, target, variables and selected data used for the calculation to the ‘Use’ function.
- Status Effect Changes: ‘Add Count’ setting available when adding a random status effect type. Defines the number of times a random status effect of the selected status effect type will be added.
- Status Effect Changes: ‘Remove Count’ setting available when removing a status effect type (random, first or last). Defines the number of times a status effect of the selected status effect type will be removed.
- Status Effects: Stack Settings: ‘Reapply On Remove’ setting available for ‘Single Instance’ stacks. Optionally cause reapply on the remaining stack if the stack count is reduced. E.g. use this to update status changes based on the stack count.
- Status Effects: Status Changes: Status Value: ‘Reapply Difference’ setting available. Optionally only change the status value using the difference between the already performed change and the new change value when reapplying.
- Status Effects: Status Changes: Use Custom Settings: ‘Use Custom Settings’ status change type available. Uses custom settings of the status effect, the user or target. Forwards the user, target, variables and selected data of the status effect to the ‘Use’ function.
- Status Effects: Status Changes: Use Global Custom Settings: ‘Use Global Custom Settings’ status change type available. Uses defined global custom settings. Forwards the user, target, variables and selected data of the status effect to the ‘Use’ function.
- Status Effect Types: Wrap Status Effect Name: ‘Wrap Status Effect Name’ settings available. Optionally wrap the name of status effects of a status effect type with text. E.g. use this to add a text color to all names of status effects of an effect type.
- Status Effect Types: Wrap Status Effect Short Name: ‘Wrap Status Effect Short Name’ settings available. Optionally wrap the short name of status effects of a status effect type with text. E.g. use this to add a text color to all names of status effects of an effect type.
- Battle Texts, Status Effects, Status Effect Types: ‘Immune Flying Text’ settings available. Optionally show a flying text when a status effect fails to be applied due to immunity.
- Battle AIs: Variable Sort Targets: ‘Variable Sort Targets’ node available in ‘Target’ nodes. Sort the found targets based on a defined variable’s value. Uses object variables on the combatants for sorting.
- Battle AIs: Selected Data Contains: ‘Selected Data Contains’ node available in ‘Selected Data’ nodes. Checks if data stored in a selected data list contains something stored in another selected data list.
- Console Settings, Status Effects, Status Effect Types: ‘Immune Effect Text’ settings available. Optionally show a console text when a status effect fails to be applied due to immunity.
- Combatant Groups: Combatants: ‘Chance’ setting available. Defines the chance that the combatant is used by the group.
- Combatant Groups: Combatants: ‘Use Chance Selection’ setting available when using ‘Use Random Combatant’. Uses the ‘Chance’ setting of the combatant to determine which combatant will be used. E.g. combatant 0 has 35% chance, combatant 1 has 50% chance, combatant 2 has 15% chance. i.e. combatant 0 is used for 0-35 chance range, combatant 1 for 35-85 and combatant 2 for 85-100.
- Combatant Groups: Group Battle Gains: ‘Loot’ settings available. Optionally use loot to add battle gains to the group.
- Loot: ‘Use Loot Table’ setting available. Define if ‘All’, ‘First’ or ‘Random’ loot tables are used. This replaces the ‘Use First Found Table’ setting, previous settings will be updated automatically.
- Loot: Loot Tables: ‘Draw Type’ and ‘Draw Count’ setting available. Define the number of times items from the loot table are used (‘Draw Count’), getting either ‘All’ items, ‘Random’ items or ‘Pool’ items (random item, can’t get the same multiple times). ‘Draw Type’ replaces the ‘Get Random’ setting, previous settings will be updated automatically.
- Loot: Loot Tables: Conditions: ‘Check Looter’ setting available when using ‘Combatant’ local origin. Optionally use the looter’s variables and selected data in the checks instead of the combatant dropping the loot.
- Loot: Items: ‘Use Replacement’ settings available. Optionally replace an item in a loot table with an item found in another loot table. Can use ‘Auto’ replacement if the player already has the item in the inventory or check for defined conditions.
- Research Trees: Research Items: Status Effect: ‘Status Effect’ research item type available. Changes a status effect on the user when researched.
- Research Trees: Research Items: Status Change: ‘Status Change’ research item type available. Performs defined status changes on the user when researched.
- HUDs: Tooltip: Tooltip Checks: ‘Shortcut Item Type’ tooltip type available. Checks if a tooltip is from a shortcut (item, equipment, currency, etc.) of a defined item type.
- Start Menu: Options (Category): ‘Options (Category)’ option type available. Calls an options category menu, either the default options menu or a custom setup.
- Menu Screens: Options (Category): ‘Options (Category)’ menu part available. Displays an options menu for option categories defined in ‘UI > Option Categories’. Can either use the default options menu or a custom setup.
- Menu Screens: Combatant Settings: ‘Other Player Group’ settings available. Optionally use a different player group than the active player group as menu users.
- Menu Screens: Button List: Use Global Custom Settings: ‘Use Global Custom Settings’ type available. Uses defined global custom settings. Forwards the menu screen’s user as user and target to the ‘Use’ function.
- Menu Screens: Button List: Options Menu: ‘Options Menu’ type available. Calls an options category menu, either the default options menu or a custom setup.
- Menu Screens, Shop Layouts: Combatant: ‘Filter Settings’ available in ‘Combatant’ menu part (menu screens) and ‘User Info Box’ (shop layouts) settings. Optionally filter a list of displayed combatants by defined conditions, e.g. combatant status or variable conditions.
- Battle Menus: Options: Status Changes: Use Global Custom Settings: ‘Use Global Custom Settings’ status change type available. Uses defined global custom settings. Forwards the combatant as user and target to the ‘Use’ function (no variables or selected data are forwarded).
- Schematics: Use Custom Settings: ‘Use Custom Settings’ node available in ‘Value > Selected Data’ nodes. Calls the custom setting’s ‘Use’ function of content stored in selected data. Forwards the schematic’s local variables and selected data to the ‘Use’ function.
- Schematics: Use Global Custom Settings: ‘Use Global Custom Settings’ node available in ‘Game > Game’ nodes. Calls a defined global custom setting’s ‘Use’ function. Forwards the schematic’s local variables and selected data to the ‘Use’ function.
- Schematics: Call Options Menu: ‘Call Options Menu’ node available in ‘UI > Menu’ nodes. Opens an options category menu, either the default options menu or a custom setup.
- Schematics: Level Down: ‘Level Down’ node available in ‘Combatant > Status’ nodes. Decreases the level or class level of a combatant or it’s group.
- Schematics: Can Selected Data Upgrade Level: ‘Can Selected Data Upgrade Level’ node available in ‘Value > Selected Data’ nodes. Checks if a combatant can upgrade the level of something stored in selected data. E.g. Checks if the cost for an ability or equipment level upgrade are valid. Please note that this only uses the level upgrade system, not the experience level up system.
- Schematics: Set Combatant Name: ‘Reset Name Count’ setting available. Optionally reset the combatant’s name count coming from the ‘Enemy Count’ setting of the battle system.
- Schematics: Set Player Group: ‘Set Player Group’ node available in ‘Group > Player Group’ nodes. Uses a combatant’s group as a player group of a defined group ID. The previous group of the group ID will be removed and replaced with the new group. When changing the active group, the old group will be removed from the scene and the new group will be spawned at the position of the old player.
- Unity UI: ORK HUD Status Text Content Component: ‘Inventory Container’ type available. Displays a combatant’s inventory container information.
- Unity UI: ORK HUD Status Text Content Component: Combatant Information: New text codes available to display the combatant’s index in it’s group and battle group.
- Unity UI: ORK HUD Value Bar Content Component: ‘Inventory Container’ type available. Displays a combatant’s inventory container occupied slots.
- Unity UI: HUD Combatant List Content Component: ‘HUD Combatant List’ content component available. Lists combatants of a group, e.g. the active player group, a defined player group ID or of the HUD user’s group.
- Unity UI: HUD Click Component: Menu Screen: ‘Back To Current Menu’ settings available. Optionally return to the currently open menu screen when the called menu screen is closed.
- Unity UI: HUD Player Combatant Content Provider Component: ‘Player Type’ setting available when not using a member. Define if the current, battle or field player is used. Defaults to current player (previous behavoiur).
- Unity UI: HUD Condition: Status Preview Equipable: ‘Status Preview Equipable’ condition type available. Checks if the HUD user is a combatant with a status preview for an equipment (requires a combatant).
- Battle Grid Components: ‘Keep Game Objects’ setting available when using ‘Keep Old Cells’ during grid generation. If enabled, the old cell game objects will be reused instead of creating new game objects and copying the old settings. E.g. use this option if you added other components to your grid cells. The cells will still be placed at new positions.
Changes
- Status Values: Change Schematics: Change schematics are now also performed by blocked status value changes (status value change blocks, e.g. status effects).
- Loot: ‘Use Loot Table’ setting replaces ‘Use First Found Table’ setting.
- Loot: ‘Draw Type’ setting replaces ‘Get Random’ setting.
- Target Selections: Raycast targeting now supports using the auto target conditions.
- Battles: Groups only select a new battle leader if the leader’s death settings destroy the prefab. If the prefab is kept (even if e.g. destroyed by the death schematic), no new battle leader will be searched.
- Battle Texts, Status Effects, Status Effect Types: The ‘Miss Flying Text’ no longer shows for status effects not being applied due to immunity, only for missing the hit chance. Use the ‘Immune Flying Text’ instead.
- Menu Screens: All player groups are now considered as player group, i.e. using ‘Allow Non-Player’ setting isn’t needed when displaying for not active player groups.
- Menu Screens: Group: Drag and drop in ‘Change’ and ‘Change Reserve’ actions now supports removing a battle group/reserve member when not dropping on another combatant.
- Console Settings, Status Effects, Status Effect Types: The ‘Miss Effect Text’ no longer shows for status effects not being applied due to immunity, only for missing the hit chance. Use the ‘Immune Effect Text’ instead.
- Game Controls: Player Controls: Button: ‘Vertical Axis’ and ‘Horizontal Axis’ settings have been replaced by new input settings. The new settings allow either using a single input key as axis or 2 input keys for positive and negative axis input separately.
- Game Controls: Player Controls: Top Down 2D: ‘Vertical Axis’ and ‘Horizontal Axis’ settings have been replaced by new input settings. The new settings allow either using a single input key as axis or 2 input keys for positive and negative axis input separately.
- Game Controls: Camera Controls: Top Down Border: ‘Horizontal Panning Key’ and ‘Vertical Panning Key’ settings have been replaced by new input settings. The new settings allow either using a single input key as axis or 2 input keys for positive and negative axis input separately.
- Game Controls: Camera Controls: First Person: ‘Vertical Axis’ and ‘Horizontal Axis’ settings have been replaced by new input settings. The new settings allow either using a single input key as axis or 2 input keys for positive and negative axis input separately.
- Raycast Targeting: Position: Input Key Settings: ‘Vertical Axis’ and ‘Horizontal Axis’ settings have been replaced by new input settings. The new settings allow either using a single input key as axis or 2 input keys for positive and negative axis input separately.
- Battle Grid Settings: Grid Cell Selection: ‘Vertical Axis’ and ‘Horizontal Axis’ settings have been replaced by new input settings. The new settings allow either using a single input key as axis or 2 input keys for positive and negative axis input separately.
Fixes
- Shops: Fixed an issue where equipment didn’t show status previews when selected.