ORK Framework Logo - RPG Editor for Unity
  • Features
  • Showcase
  • Guide
    • Documentation
    • Tutorials
    • API
  • ORK 2
    • Tutorials
    • Plugins
    • API
  • Support
  • Forum
  • Get ORK

Getting Started

  • Introduction
  • First Steps
  • Game Starters
  • Components Overview
  • Player/Camera Controls
  • Game Over

Editor

  • Editor Overview
  • Base/Control Section
  • Game Section
  • UI Section
  • Templates Section
  • Status Section
  • Inventory Section
  • Combatants Section
  • Battles Section

Features

  • Animations
  • Areas & Teleports
  • Combatant Triggers
  • Control Maps
  • Difficulties
  • Factions
  • Formations
  • Formula Nodes
  • Logs
  • Loot
  • Move AI
  • Quests
  • Research Trees
  • Schematic Nodes
  • Shortcut Slots

Status System

  • Status Values
  • Status Effects
  • Attack/Defence Modifiers
  • Abilities
  • Combatants
  • Classes
  • Status Bonuses
  • Status Conditions

Inventory System

  • Inventory System Overview
  • Currencies
  • Items
  • Equipment
  • AI Behaviours/Rulesets
  • Crafting Recipes
  • Shops

Battle System

  • Battle Systems
  • Adding Battles to Scenes
  • Calculating Action Results
  • Battle Menus
  • Battle AI
  • Battle AI Nodes
  • Battle Ranges
  • Battle Camera
  • Target Selection
  • Battle Spots
  • Battle Texts
  • Battle End & Loot Dialogues
  • Action Combos
  • Damage Types
  • Cursor Prefab Components
  • Grid Battles
  • Adding Battle Grids to Scenes
  • Battle Grid Highlights
  • Battle Grid Formations

UI System

  • UI System Overview
  • Start Menu
  • Menu Screens
  • Notifications
  • Combatant Selections
  • Quantity Selections
  • Text Display Settings
  • Cursor Settings
  • Console (In-Game)
  • Menu Requirements
  • HUDs: Content Providers
  • HUDs: Conditions
  • HUDs: Click Actions
  • HUDs: Text Content
  • HUDs: Value Bar Content
  • HUDs: Status Values
  • HUDs: Status Effects
  • HUDs: Attack Modifiers
  • HUDs: Defence Modifiers
  • HUDs: Shortcuts
  • HUDs: Abilities
  • HUDs: Equipment
  • HUDs: Class Slots
  • HUDs: AI Behaviours
  • HUDs: AI Rulesets
  • HUDs: Quests
  • Timebar HUD

Scripting

  • Scripting Overview
  • Access Handler
  • Code Extensions
  • Combatant Scripting
  • Custom Nodes
  • Custom Component Save Data
  • Home
  • Guide
  • Documentation
  • Scripting
  • Access Handler

Access Handler

Table of Contents
  • Access Handler
  • Action Access Handler
  • Battle Access Handler
  • Combatant Access Handler
  • Group Access Handler
  • Inventory Access Handler

The Access Handler is used to funnel some of ORK’s functionality through overridable functions.

This allows you to inject custom functionality, like creating a combatant, adding an item to an inventory or using a battle action. A custom access handler can e.g. be used to collect analytics data, use client/server communication or redirect ORK’s functionality to custom systems.

You can create custom handlers by extending the AccessHandler classes and overriding the functions you want to replace. The available functions are divided into different sub-handlers for actions, battles, combatants, groups and inventories. Each sub-handler contains the overridable functions for their thematic topic, e.g. the inventory access handler manages inventory changes like adding or removing an item.

The access handler mainly handles functionality that is caused by the player and will be extended in future updates. If there’s a functionality you need to be funneled through the access handler, be sure to let me know, e.g. in the support forum.

 

You can download a custom access handler for you to build upon, details about the different classes and their use below:

Download Custom Access Handler

Access Handler #

The AccessHandler class holds the sub-handlers for actions, combatants, groups and inventories. To add a custom access handler, create a new class extending the AccessHandler class.

The constructor needs to create instances of the sub-handlers, either using the default handlers or your custom handlers. The sub-handlers contain the overridable functions.

The EditorSettingInfo attribute added to the class is used to have the access handler available in the Access Type setting in Game > Game Settings > ORK Game Settings and allows you to change to this access handler. Define the (unique) name and (optional) help text of your custom access handler.

using UnityEngine;
using System.Collections.Generic;
using GamingIsLove.Makinom;

namespace GamingIsLove.ORKFramework
{
    // Defines the name and help text of this access handler.
    [EditorSettingInfo("Custom", "This is a custom access handler.")]
    // The access handler holds the sub-handlers with their overridable functions.
    // See the API for details: http://api.orkframework.com/class_gaming_is_love_1_1_o_r_k_framework_1_1_access_handler.html
    public class CustomAccessHandler : AccessHandler
    {
        // The constructor needs to create the instances of the sub-handlers for actions, combatants, groups and inventory.
        public CustomAccessHandler()
        {
            this.actionAccess = new CustomActionAccessHandler();
            this.battleAccess = new CustomBattleAccessHandler();
            this.combatantAccess = new CustomCombatantAccessHandler();
            this.groupAccess = new CustomGroupAccessHandler();
            this.inventoryAccess = new CustomInventoryAccessHandler();
        }
    }
}

This example is included in the download above.

Action Access Handler #

The ActionAccessHandler class is responsible for using actions and shortcuts, as well as spending experience (e.g. on abilities). To add a custom action access handler, create a new class extending the ActionAccessHandler class.

Check the API to see all functions that can be overridden and what they’re used for.

using UnityEngine;
using System.Collections.Generic;
using GamingIsLove.Makinom;

namespace GamingIsLove.ORKFramework
{
    // The action access handler is responsible for using actions and shortcuts, as well as spending experience (e.g. on abilities).
    // See the API for details: http://api.orkframework.com/class_gaming_is_love_1_1_o_r_k_framework_1_1_action_access_handler.html
    public class CustomActionAccessHandler : ActionAccessHandler
    {
        public CustomActionAccessHandler()
        {

        }

        public override void AddActionToCombatant(Combatant user, BaseAction action, bool newTurn)
        {
            base.AddActionToCombatant(user, action, newTurn);
        }
    }
}

This example is included in the download above.

Battle Access Handler #

The BattleAccessHandler class is responsible for battle loot and flying texts. To add a custom battle access handler, create a new class extending the BattleAccessHandler class.

Check the API to see all functions that can be overridden and what they’re used for.

using UnityEngine;
using System.Collections.Generic;
using GamingIsLove.Makinom;

namespace GamingIsLove.ORKFramework
{
    // The battle access handler is responsible for battle loot and flying texts.
    // See the API for details: http://api.orkframework.com/class_gaming_is_love_1_1_o_r_k_framework_1_1_battle_access_handler.html
    public class CustomBattleAccessHandler : BattleAccessHandler
    {
        public CustomBattleAccessHandler()
        {

        }

        public override void AddLoot(IShortcut item)
        {
            base.AddLoot(item);
        }
    }
}

This example is included in the download above.

Combatant Access Handler #

The CombatantAccessHandler class is responsible for everything combatant related, e.g. changing status values, adding status effects, learning abilities or changing equipment. To add a combatant access handler, create a new class extending the CombatantAccessHandler class.

Check the API to see all functions that can be overridden and what they’re used for.

using UnityEngine;
using System.Collections.Generic;
using GamingIsLove.Makinom;

namespace GamingIsLove.ORKFramework
{
    // The combatant access handler is responsible for everything combatant related, from status changes to learning abilities or changing equipment.
    // See the API for details: http://api.orkframework.com/class_gaming_is_love_1_1_o_r_k_framework_1_1_combatant_access_handler.html
    public class CustomCombatantAccessHandler : CombatantAccessHandler
    {
        public CustomCombatantAccessHandler()
        {

        }

        public override Combatant CreateInstance(CombatantSetting setting, Group group, bool showNotification, bool showConsole)
        {
            return base.CreateInstance(setting, group, showNotification, showConsole);
        }
    }
}

This example is included in the download above.

Group Access Handler #

The GroupAccessHandler class is responsible for changes in combatant groups, e.g. joining or leaving a group. To add a custom group access handler, create a new class extending the GroupAccessHandler class.

Check the API to see all functions that can be overridden and what they’re used for.

using UnityEngine;
using System.Collections.Generic;
using GamingIsLove.Makinom;

namespace GamingIsLove.ORKFramework
{
    // The group access handler is responsible for changes in combatant groups, e.g. joining or leaving a group.
    // See the API for details: http://api.orkframework.com/class_gaming_is_love_1_1_o_r_k_framework_1_1_group_access_handler.html
    public class CustomGroupAccessHandler : GroupAccessHandler
    {
        public CustomGroupAccessHandler()
        {

        }

        public override void Join(Group group, Combatant combatant, bool showNotification, bool showConsole)
        {
            base.Join(group, combatant, showNotification, showConsole);
        }
    }
}

This example is included in the download above.

Inventory Access Handler #

The InventoryAccessHandler class is responsible for inventory changes, e.g. adding or removing an item. To add a custom inventory access handler, create a new class extending the InventoryAccessHandler class.

Check the API to see all functions that can be overridden and what they’re used for.

using UnityEngine;
using System.Collections.Generic;
using GamingIsLove.Makinom;

namespace GamingIsLove.ORKFramework
{
    // The inventory access handler is responsible for inventory changes, e.g. adding or removing an item.
    // See the API for details: http://api.orkframework.com/class_gaming_is_love_1_1_o_r_k_framework_1_1_inventory_access_handler.html
    public class CustomInventoryAccessHandler : InventoryAccessHandler
    {
        public CustomInventoryAccessHandler()
        {

        }

        public override void UseCraftingRecipe(Combatant combatant, CraftingRecipe recipe, NotifyBool notify)
        {
            base.UseCraftingRecipe(combatant, recipe, notify);
        }
    }
}

This example is included in the download above.

Scripting
Share This Article :
  • Facebook
  • Twitter
  • LinkedIn
  • Pinterest
Updated on June 23, 2022
Table of Contents
  • Access Handler
  • Action Access Handler
  • Battle Access Handler
  • Combatant Access Handler
  • Group Access Handler
  • Inventory Access Handler
Sitemap
  • Features
  • Showcase
  • Guide
    • Documentation
    • Tutorials
    • API
  • ORK 2 Hub
    • Tutorials
    • Plugins
    • API
  • Support
  • Forum
  • Get ORK
  • Contact
  • Blog
  • Makinom
  • gamingislove.com
Categories
  • News (59)
  • ORK 2 (137)
    • Tutorial (137)
      • Game tutorial (50)
      • Gameplay (32)
      • How-to (55)
  • Release (129)
Search

© 2015 Gaming is Love e.U.

Disclosure: This site may contain affiliate links, which means I may receive a commission if you click a link and purchase something that I have recommended. While clicking these links won’t cost you any money, they will help me fund my development projects while recommending great assets!