InventoryManager

 

Current version: InventoryManager2.0.2 (JS)


Everything you see here is available with the Unity Asset Package, including the models, animations, particles and textures.

This demo-player is my most current release. Comments can be left here:

http://theantranch.com/forum/viewforum.php?f=25



Current functionality includes:


  1. An item editor window to add items and edit their attributes in edit-time (see demo below).

  2.    - Easy Unity-friendly creation and organization of inventory items.

  3.    - No parsing text files from external sources.

  4.    - No saving or restoring to and from XML.

  5. Decentralized Loot Generation

  6.    - LootableObject based loot tables that are both fully editable and prefabbable.

•    - Multiple loot tables per object for organization and clarity.

  1.    - No need for one long & annoying set of centralized loot tables.

  2.    - Single LootableItems for ease & simplicity of single object looting.

  3. Hooks for animations on LootableObjects and LootableItems.

  4. Instantiation of objects back into the game world when removed from the inventory.

  5.    - This requires a game object prefeb.

  6.    - These items can contain LootableItem components for easy in-game recovery by re-looting.

• Developer ready "Use Item" methods for using consumable items (potions, etc.).

• Accounting for stat bouses on the player from items when items are equipped or removed.

• Optional Destruction and optional Fade-out of lootable objects when empty.

  1.    - Complete control over fade and fade delay.

  2. Easy manipulation of Multiple Bags.

  3.    - Swappable Bags, even when full.

  4.    - Replaceable Bags, if space permits, for easy replacement of older Bags with newer ones.

• Generally cleaner and quicker than 1.0.

• More things that I can't think of at the moment...


There will be a full set of tutorial videos on setting up and working with the system.

The code will be available in both JS and C#.

The code will be annotated and understandable.


In addition to the code, included with the demo-project is a set of temp icons, a chest model with optional animated lid, a gold-pile, sprites, textures, a particle system and several other items as well. Everything you see in the live trial is included in the download.


Features in the pipe include stores/vendors, money, stacking, drop target over-lays and more.


In the future, there will be a companion "quest" system that interfaces with the items in the inventory.



The Inventory Item Editor:



























The Interface:

The 'ESC' key acts as a "cancel" key.

    If dragging and item/icon, the 'ESC' key will first cancel the current drag.

    If not, it will close windows according to a cascade list, starting with the message window.


"B" opens the Bags window.

"I" opens Inventory window.

C" opens the Character window.


All items/icons are draggable once looted.

    If the user drags but doesn't place the item/icon at the end of the drag, it will be held on the cursor.

    Dragging an item/icon over another slot in the current open bag (Inventory) will move its location.

        If that slot is full, it will swap items onto the cursor.

    Dragging an item/icon over a bag will place it into that bag if possible.

       If that bag is full, item/icon will be rejected and held on the cursor.

    Dragging an item/icon over a slot in the character window will equip it, if possible.

        If that slot type is correct, but full, it will swap items onto the cursor.

        If the slot type is incorrect, it will seek an appropriate empty slot.

            If that slot is full, the item/icon will be rejected and held on the cursor.

                To swap item/icons in a full slot, you must drag or click the correct slot.

    Dragging a bag from the Inventory onto an empty slot in the Bags window will Equip the bag.

        The Inventory capacity will be increased by the size of that new bag.

    Dragging a bag from the Bags window over another bag in the Bags window will swap them.

        The "old" bag will be held on the cursor.

        This allows changing locations of bags within the Bags window.

    Dragging a bag from the Inventory onto an equipped bag will place it into that bag if possible.

        This is the same behaviour of any inventory item/icon.

        To equip a bag, you must drag over an empty slot or Rt. Click a full bag slot (See Below...).

    Dragging an item outside of a window will do nothing until actively clicked.

        Clicking (Left Click) outside of a window while holding an icon will prompt a removal message.


Clicking (Left Click) will select or activate items.

    In the game-world, this will activate a Lootable Object or Lootable Item.

    In the Inventory or Character window it will activate the item/icon, if possible.


Right Clicking:

    In the Inventory window this will attempt to equip the item on the character.

        If there are two slots of the same type, and one is full, it will seek the empty slot.

        If all slots are full, it will swap the item/icon that is equipped back into the inventory.

    In the Character window this will attempt to UnEquip the item and place it in the Inventory.

        If the inventory is full, the item/icon will remain in the same slot.

    In the Bags window:

        If the cursor is "empty" and over a bag, that bag will be returned to the Inventory if possible.

            The bag must be empty to be "UnEquipped" from the Bags window.

            A bag with any contents will be rejected and will stay in that slot.

        If the cursor is holding a non-container item/icon, Rt. Clicking will bring that bag into focus.

            This allows viewing or detailed placement of the icon being carried into that bag.

        If the cursor is holding a container item/icon, it will attempt to "replace" the bag.

            The system attempts to move all of the contents of the old bag into the new one.

            If the incoming bag contains any items, it will be rejected.

            If successful, the old bag is swapped to the cursor.

                It can now be placed in a bag, the open Inventory window, or removed.




 

This demo of Inventory Manager uses the Default Unity GUISkin, Default Unity Font and Sample Icons (included).

This system's Look and Feel are fully customizable using either GUISkins from Unity or the Developer's own artwork