Difference between revisions of "Item"

From Dragon Age Toolset Wiki
Jump to: navigation, search
(imported from extranet)
 
(changed "mmushrooms" to "mushrooms")
 
(45 intermediate revisions by 11 users not shown)
Line 1: Line 1:
An item is a game object that can be picked up or equipped by a creature. Dragon Age will have many items. As the player gains levels he or she will encounter progressively more powerful items. Through the use of material types (unique models and/or color variation) we will scale our items so that we have a greater range of item diversity than in our previous games.
+
{| style="float:right;"
 +
|-
 +
| {{Resource palette}}
 +
|-
 +
| {{Infobox items}}
 +
|}
  
Items are grouped into types called "Base Item Types".  The item's base type determines how it can be used and what its basic properties are.
+
An item is a game object that can be picked up or equipped by a creature. Armor, as well as mushrooms.
  
Some examples of base item types are:
+
== Overview ==
* Sword
+
* Bow
+
* Arrows
+
* Helmet
+
* Potion
+
  
Weapon and armour items get their basic ratings from their base item type. This is further modified by the material type of the item (i.e., high steel sword vs. low steel sword) and other item properties on them.
+
Items for the Single player campaign are all stored in the Toolset's [[Resource palette]], under the Item Category. They are as such files describing what an Item is and what it looks like, but they do not tell who or where it is in the game. It is sort of independent resource in that way. Any other Resource however can make use of it as they want.
 +
 
 +
Items, as with any other Resource follow a [[Naming conventions#Resource Naming Convention|Naming convention]], to make it easier to navigate the [[Resource palette]].
  
 
Unlike in Neverwinter Nights, items can't be placed on the floor. They can only be stored in an inventory of some kind.
 
Unlike in Neverwinter Nights, items can't be placed on the floor. They can only be stored in an inventory of some kind.
  
==== Item Attributes ====
+
Items are stored in *.UTI File format.
  
Item's attributes are determined in part by their base type and can be customized further in the toolset. They can be further modified in the game by applying item properties.
+
=== Basic Resource Integration ===
 +
{| border="3" cellpadding="5" cellspacing="0" align"left"
 +
|- style="background-color:white;" align="center"
 +
| style="border-right:3px solid black; background-color:#EFDF9A" width="60pt" |Other
 +
| style="border-right:3px solid black; background-color:#CFCFA0" width="100pt"|Apply Rules
 +
| style="border-right:3px solid black; background-color:#E0B080" width="90pt"|[[MSH|MSH Modelmesh]]
 +
| style="border-right:3px solid black; background-color:#E0B080" width="90pt"|[[MAO|MAO Material]]
 +
| style="border-right:3px solid black; background-color:#E0C0C0" width="90pt"|Heraldry Texture
 +
| style="border-right:3px solid black; background-color:#C0C0E0" width="60pt"|Basestats
 +
| style="background-color:#C0C0E0" width="60pt" |[[TNT|TNT (Tint)]]
 +
|- align="center"
 +
| style="border-right:3px solid black; background-color:#EFDF9A" rowspan="4" |Other
 +
| style="border-right:3px solid black; background-color:#CFCFA0" rowspan="4" |[[BITM_base.xls]] [[2DA|(2DA)]]
 +
| style="border-right:3px solid black; background-color:#E0B080" colspan="2" |[[Model|MMH (Model)]]
 +
| style="border-right:3px solid black; background-color:#E0C0C0" rowspan="2" |[[Heraldry.xls]] [[2DA|(2DA)]]
 +
| style="background-color:#C0C0E0" rowspan="2" colspan="2" |[[Materialtypes.xls|Materialrules]] [[2DA|(2DA)]]
 +
|- align="center"
 +
| style="border-right:3px solid black; background-color:#E0B080" colspan="2" |[[ItemVariations.xls]] [[2DA|(2DA)]]
 +
|- align="center"
 +
| style="border-right:3px solid black; background-color:#E0B080" colspan="2" |[[2DA base.xls|(M)2DA_base.XLS]] [[2DA|(2DA)]]
 +
| style="border-right:3px solid black; background-color:#E0C0C0" rowspan="2" |[[BITM_base.xls]] [[2DA|(2DA)]]
 +
| style="background-color:#C0C0E0" colspan="2" rowspan="2" |[[Materialtypes.xls]] [[2DA|(2DA)]]
 +
|- align="center"
 +
| style="border-right:3px solid black; background-color:#E0B080" colspan="2" |[[BITM_base.xls]] [[2DA|(2DA)]]
 +
|- align="center" style="background-color:#FFFFE0"
 +
| style="border-right:0px" |Other
 +
| style="border-right:0px" |BaseItemType
 +
| style="border-right:0px" colspan="2" |Itemvariation
 +
| style="border-right:0px" |Heraldry
 +
| colspan="2" |MaterialType
 +
|- align="center"
 +
| colspan="7" style="border-top:0px; border-bottom:2px solid black; background-color:#FFFFE0" |'''↑↓Item↑↓'''
 +
|- align="center"
 +
| colspan="7" |Game / Toolset
 +
|}
  
==== Appearance ====
+
This is a basic scheme, of the dependencies an Item creates, the Resources needed and how they are distributed. Each entry is directly connected to the next, from a modders point of view, who want to know which page is of interest. From the Item Resource, it spreads out into many smaller Resources the Item may depend on. Not all Items require a Model. It must not be exact at all Angles, and many other Properties go along with it. See below for a closeup description.
  
An item's appearance will be determined by their base type and an appearance field.  A base item 2da and an item appearances 2da controls the different appearances for each base type.  The number of appearance variations for each base type will vary.  Visual effect item properties can be applied later to further modify the appearance of the item (flame effects, etc…)
+
== Item Types ==
  
==== Icons ====
+
Items are grouped into types called "Base Item Types".  The item's base type determines how it can be used and what its basic properties are. Weapon and armour items get their basic ratings from their base item type.  This is further modified by the material type of the item (i.e., high steel sword vs. low steel sword) and other item properties on them.
  
Each item's icon has a width and height. This size corresponds roughly to the size of the item in the world, so small potions will have a small icon and large suits of armour will take up more space.
+
You can edit or create new Items with the Toolsets Object Inspector Editor. This will yield their Properties.
  
We don't track the weight of items because of the shared party inventory.  Some items will have properties on them that will require the creature to have certain minimum attributes to equip them though.  This will simulate particularly heavy armour or weapons.
+
=== Properties ===
  
==== Stacks ====
+
{{inspector start}}
 +
{{inspector section|General}}
 +
{{inspector row|Activated Ability| Action happening on a specific event related to the item (hit with weapon, being hit on armor, etc.)}}
 +
{{inspector row|Base Item Type| The inventory type of the item. Also gives the base appearance type for the item. As defined in [[BITM base.xls]] }}
 +
{{inspector row|Comments| General information about the item }}
 +
{{inspector row|Crafting Recipe Type| The type of recipe this is. As defined in "recipes.gda" 2DA. }}
 +
{{inspector row|Description| Description (as seen in game?) }}
 +
{{inspector row|DescriptionRequiresReTranslation| A flag used for [[localization]]. }}
 +
{{inspector row|Heraldry| Allows Heraldry when defined in [[BITM base.xls]] (Shields can). Variations as defined in "[[heraldry.xls]]" 2DA. }}
 +
{{inspector row|Icon| Icon for display in game. Only names beginning with ico_ to be used }}
 +
{{inspector row|Inventory Subgroup| (speculation) sorts items within inventory. See [http://social.bioware.com/wiki/datoolset/index.php/Inventory#Inventory_Subgroup_Codes Inventory Page] for examples {{undocumented}} }}
 +
{{inspector row|Item Variation| An appearance variation based on the base item type. As defined in the appropriate Variations 2DA. See [[ItemVariations.xls]] }}
 +
{{inspector row|MaterialProgression| {{undocumented}} }}
 +
{{inspector row|MaterialType| Material Variation, and can give the Item additional properties. As defined in materialtypes 2DA}}
 +
{{inspector row|Name| Name of the Item.  (as it appears in Game?) }}
 +
{{inspector row|NameRequiresReTranslation| A flag used for [[localization]]. }}
 +
{{inspector row|Resource Name| A unique string identifier the toolset and the game both use to refer to this resource}}
 +
{{inspector row|Tag| A non-unique string identifier used mostly by scripts and other resources to refer to this resource. }}
 +
{{inspector row|Tint Override| {{undocumented}} }}
  
Each item can have a stack size on them. This means that the item actually represents a pile of identical items. Stacks can be split into new items or merged to destroy old ones. Only items that have identical types and properties can be merged into stacks.
+
{{inspector section|Attributes}}
 +
{{inspector row|Body Tint| Affects the appearance of item wearer. Typically used to customize the Dog's warpaint. }}
 +
{{inspector row|Body Tint Mask| Affects the appearance of item wearer. Typically used to customize the Dog's warpaint. }}
 +
{{inspector row|Cost| Base money value of the item in coppers - see below.}}
 +
{{inspector row|Damaged| A damaged item cannot be equipped or used (but strangely it can be sold at the normal price) }}
 +
{{inspector row|Item Properties| Allows selecting one or more item properties for the item. Item Properties are any special power, effects, or stat variations beyond the basic item attributes. Properties also includes restrictions by class, race, etc. See [[Item properties]] for more information. }}
 +
{{inspector row|OnHit Effect| {{undocumented}} }}
 +
{{inspector row|OnHit Power| {{undocumented}} }}
 +
{{inspector row|Plot Item| A plot item can not be destroyed, sold or removed from inventory by the player once the player has acquired it. Plot items can only be removed via scripts written by the designer. Plot items cannot be equipped.}}
 +
{{inspector row|Script| Event script assigned to the resource - see below}}
 +
{{inspector row|Unique| {{undocumented}} }}
 +
{{inspector row|Variable 2da| 2da file containing a variable table. Only the values in the table can be set and retrieved by scripting. }}
 +
{{inspector row|Variables| Opens the variable table for editing, allows the initial values of the variables to be defined. See below. }}
  
==== Cost ====
+
{{inspector section|Model Appearance (R/O)}}
 +
{{inspector row|Model Appearance| Shows the Model how it appears on a specific wearer, ie Human. Helps distinguish Models worn by multiple races? }}
 +
{{inspector row|Model Gender| Same as above ,but switches Gender. (Only for display?) }}
 +
{{inspector end}}
  
An item's cost will be set in a field by either the toolset or the scripting language. There won't be any automatic cost calculation done.
+
=== Appearance ===
  
==== Plot Items ====
+
An item's appearance will be determined by their base type and an appearance field. Most Items are in some way visible in Game. "Base Item Type" is merely a category of [[Model|Models]] with the default displaying first. Whereas "Item Variation" determines the [[Model]] file itself, while also paying attention to the Gender and Race of the wearer.
  
Some items will be flagged as "plot" items.  This means the item is important to some plot in the game and should be treated differently.  When the player picks up one of these items they will appear on a special plot page in their inventory.  Plot items can’t be sold in stores or destroyed through normal game-play. 
+
Visual effect item properties can be applied later to further modify the appearance of the item (flame effects, etc…)
  
==== Indestructible items ====
+
=== Item Script ===
  
These are items that are needed for the plot, but can still be used or equipped by the player. The use of this flag is very restricted and should be used only no other solution will work. Items with this flag can not be destroyed, sold or given to another character to equip.
+
The purpose of the item event script (if any) is not clear. Events involving items (acquire, lose, equip, unequip, etc…) are received by the event script for the creature or placeable owning the item, but are not received by the item script.
  
==== Item Scripts ====
+
=== Activated Ability ===
  
Items will have AI scripts associated with them like any other game object (the script is attached to the item). They will receive and process events in much the same way (acquire, lose, equip, unequip, etc…)
+
Item Abilities are activated abilities on items (for example, a potion with the activated ability Healing is a Potion of Healing). An item can only have one item ability. This item ability is assigned in the toolset. They are not item properties.
  
==== Item Equipping ====
+
Item abilities cannot be placed on equippable items. Item abilities are activated by right-clicking or double-clicking the item or from using the item from the quickbar.
  
All base item types are limited by attribute Strength (except wands which are Magic limited). An item cannot be equipped unless its base item attribute requirements are met. The reasons why an item cannot be equipped will be clearly indicated by the GUI.
+
=== Variables ===
Almost all items can be equipped and unequipped by a player during combat. The only exception is armor. Armor cannot be equipped or unequipped if the character is within sight of an enemy creature.
+
  
==== Dropping Items ====
+
{{variable table start}}
 +
{{variable table row|APP_ITEM_MOTIVATION | int |0| }}
 +
{{variable table row|ITEM_CODEX_FLAG | int |-1| when != -1, this will be the codex plot flag to set for this item when acquired. The plot name is the tag of the item}}
 +
{{variable table row|ITEM_COUNTER_1 to 2 | int |0| }}
 +
{{variable table row|ITEM_CRUST | int |0| }}
 +
{{variable table row|ITEM_DO_ONCE_A and B | int |0| }}
 +
{{variable table row|ITEM_SEND_ACQUIRED_EVENT | int |0| When true, [[EVENT_TYPE_CAMPAIGN_ITEM_ACQUIRED]] is sent to the module's event script when the item is acquired. Unlike plot items, campaign items can be equipped. However, any special behaviour must be scripted. See the [[Usable campaign items tutorial]].}}
 +
{{variable table row|ITEM_SET | int |-1| Certain items will give a bonus when equipped with other members of the same set (as identified by this integer).}}
 +
{{variable table row|ITEM_SPECIALIZATION_FLAG| int|0|For items that unlock a class specialisation this must match an ID from Achievements.xls, ITEM_SEND_ACQUIRED_EVENT must also be set.}}
 +
{{variable table row|ITEM_SEND_LOST_EVENT| int| 0 | When true, [[EVENT_TYPE_CAMPAIGN_ITEM_LOST]] is sent to the module's event script when the item is removed from the player's party (but not when a party member equips the item) }}
 +
{{variable table row|PROJECTILE_OVERRIDE|int|0|Used to change the default projectile for Mage Staves, values must match an ID from [[PRJ_base.xls|PRJ_base.xls]] (typically 125-129).}}
 +
{{variable table row|ITEM_RUNE_ENABLED|int|0|When true, items may have a number of rune slots, dependant on the relevant RuneCount values in [[BITM_base.xls#BITM_base_worksheet|BITM_base.xls]] and [[Materialtypes.xls#materialtypes|Materialtypes.xls]] }}
 +
{{variable table end}}
  
* Players will not be allowed to drop items into the world or into containers
+
== Tools ==
* If a creature dies the items are dropped into a bodybag
+
  
==== Item Scaling ====
+
Once created, item can be given as inventory to creatures and placeables.  Once placed, both the creature/placeable and the item must be exported in order to be viewed in the game.  Exporting happens automatically or can be done manually by the designer during testing.
  
 +
== Item Scaling ==
 +
<!-- this can only be years old -->
 
The item system needs to be very robust, allowing for a wide diversity of item types, item appearances within a type, and rules scaling. Material types are the primary mechanism for item scaling... i.e., we won't randomize the type of item in many cases (flaming sword) but we will randomize its material type (low steel flaming sword vs. high steel flaming sword)
 
The item system needs to be very robust, allowing for a wide diversity of item types, item appearances within a type, and rules scaling. Material types are the primary mechanism for item scaling... i.e., we won't randomize the type of item in many cases (flaming sword) but we will randomize its material type (low steel flaming sword vs. high steel flaming sword)
  
==== Activated Items ====
+
As the player gains levels he or she will encounter progressively more powerful items. Through the use of material types (unique models and/or color variation) we will scale our items so that we have a greater range of item diversity than in our previous games.
  
Each item can have a single default action. This is entered by picking an ability of type "Item Ability" from the abilities table which defines its icon, script, description and targetting behaviour. Items that can be used go into a special equip slot. All other item types (weapons, armor, et cetera) cannot have a custom item use.
+
== Item Cost ==
The number of uses for this ability will be decided by the script which will destroy the item when appropriate.
+
The cost of an item in-game depends on several factors:
* there are no uses per day type items. All items only have "number of uses".
+
  
==== Descriptions ====
+
* Base Cost
 +
* Material
 +
* Item Properties
  
Item descriptions will be primarily autogenerated with stat information.
+
The copper value is given by
There will also be a text description but few items will have descriptions written for them. A subset list of all the items (the really powerful ones, crafting items, and plot items) will be the only ones with descriptions.
+
<pre>
 +
Item Cost = (Base Cost * Material Multiplier) + SUM(Item Property Base Cost * Item Property Power Level)
 +
</pre>
 +
where
  
==== Further Details ====
+
* Base Cost is the value you can edit in the Object Inspector
 +
* Material Multiplier is defined in materialtypes.xls
 +
* Item Properties Base Cost is defined in itmprps.xls
  
* Equippable Items
+
The Buy Price we actually see in-game depends on the merchant:
** Melee Weapons
+
<pre>
*** Some weapons are one handed, can be used with a shield
+
Buy Price = Item Cost * Merchant Mark Up
*** Some weapons are two handed
+
</pre>
*** Daggers and Longswords can be dual wielded
+
For example, if a longsword has a base cost of 1000 copper, but the material is Red Steel (multiplier x 12) with damage power +2 (item property base cost 2500 copper),
** Ranged Weapons
+
*** Can use special ammunition, if you have it. Otherwise they can fire a "default" ammo type.
+
** Shields
+
** Paperdoll items (i.e., helmets, gloves, et cetera)
+
* Unequipped items
+
** There are a large variety of items that cannot be equipped on the ingame avatar. Some of these can be placed on the quickbar (i.e., potions) if they have activated item abilities
+
* Items can be upgraded (i.e., adding fire damage to a sword).
+
* Items can be crafted from other item parts
+
* Items can have Item properties
+
  
==== Tools ====
+
Item cost = (1000 * 12) + (2500 * 2) = 12000 + 5000 = 17000 copper.
  
Items are created in the Designer Toolset using the Object Inspector Editor.  Once created, item can be given as inventory to creatures and placeables.  Once placed, both the creature/placeable and the item must be exported in order to be viewed in the game.  Exporting happens automatically or can be done manually by the designer during testing.
+
If the Merchant Mark Up is 110, the Buy Price in game will be 18700 copper.
  
 +
The toolset does not recommend a value for Base Cost. As far as I can see, the Base Cost of official items is determined by the Item Variation, e.g. Heavy Armour, Longsword 4. So, for reasonable game balance, there's no harm in copying the Base Cost of an official item with the same variation.
  
=== Inventory slots ===
+
[[Category:Items]]
 
+
{|
+
|-
+
! Slot ||  Item type ||  Visible on avatar?
+
|-
+
|  Right Hand ||  Weapons ||  Yes
+
|-
+
|  Left Hand ||  Weapons, Shields ||  Yes
+
|-
+
|  Head ||  Helmet ||  Yes
+
|-
+
|  Chest ||  Armor, Clothing ||  Yes
+
|-
+
|  Waist || Belt, Girdle ||  No
+
|-
+
|  Quick Items ||  Useable Items ||  No
+
|-
+
|  Right Fingers || Ring ||  No
+
|-
+
|  Left Fingers || Ring ||  No
+
|-
+
|  Feet || Boots ||  Yes 
+
|-
+
|  Neck || Amulets ||  No 
+
|-
+
|  Hands ||  Gloves ||  Yes
+
|-
+
|  Inventory - Normal ||  Backpack Items ||  No
+
|-
+
|  Inventory - Plot ||  Plot Items ||  No
+
|}
+
 
+
== Item Properties ==
+
 
+
An item property is a modifier on an item similar to an effect.  These modifiers affect either the item itself or the item's wielder.
+
 
+
Item properties (i.e., fire damage) are assignable in the toolset and via scripting
+
* Scripting functions to add properties
+
* Scripting functions to remove properties
+
* Toolset can add/remove properties
+
* Item Abilities are not item properties
+
 
+
MAKE is an item property. Because Dragon Age is a low magical world we cannot flood the player with magical items. However item progression is important to a RPG. We have decided to use an item progression system whereby items get better depending on the materials and processes used in their construction. In Dragon Age each weapon, armor, and shield progresses through several levels of quality. The highest quality items are more powerful and harder to obtain. These quality levels are called makes (they used to be called material types).
+
 
+
As MAKE improves, it:
+
*increases the base statistics for a particular item (attack rating, damage and armor penetration for weapons, armor rating for armor, defense rating for shields).
+
*changes the physical appearance of an item. Generally this change should be a model change though for expansion purposes we may also insert additional makes that are merely color changes.
+
*Determines the number of upgrade/enchantment slots that are available on the item
+
 
+
The values in the 2DA MaterialTypes.2da influence the initial damage, attack bonus, armor penetration, defense and armor of an item. There are several upgrade stages for each equipped item. All items follow the same progression, but the labels used to refer to this progression changes based on the item type. The item's progression dictates the number of enchantment rune upgrades it can support.
+
 
+
Each base item type has its own list of material types, with different numbers. However many base items do share material types, so we can group them into Melee Weapons, Ranged Weapons, Wands, Armor, Shields, Helmets, etc.
+
 
+
The item properties allowed to be assigned to an item are based on the item's base types (i.e., a longsword has different properties allowable than a suit of armor)
+
 
+
When an item is equipped or un-equipped, a call-back function is run for each property on it. These usually apply or remove some package of effects with the duration type "Equipped". These are used to create items that grant bonuses when used.
+
 
+
== Item Abilities ==
+
 
+
Item Abilities are activated abilities on items (for example, a potion with the activated ability Healing is a Potion of Healing). An item can only have one item ability. This item ability is assigned in the toolset.
+
They are not item properties.
+
 
+
=== Detailed Description ===
+
 
+
Item abilities cannot be placed on equippable items.
+
 
+
Item abilities are activated by right-clicking or double-clicking the item or from using the item from the quickbar
+
 
+
== Variables ==
+
 
+
{|
+
|-
+
|APP_ITEM_MOTIVATION || int ||
+
|-
+
|ITEM_CODEX_FLAG || int ||
+
|-
+
|ITEM_COUNTER_1 to 3 || int ||
+
|-
+
|ITEM_CRUST || int ||
+
|-
+
|ITEM_DO_ONCE_A and B || int ||
+
|-
+
|ITEM_SEND_ACQUIRED_EVENT || int || when true, EVENT_TYPE_CAMPAIGN_ITEM_ACQUIRED is sent to the module's event script when the item is aquired.
+
|-
+
|ITEM_SET || int || Certain items will give a bonus when equipped with other members of the same set (as identified by this integer).
+
|}
+
== Properties ==
+
 
+
{{inspector start}}
+
{{inspector section|General}}
+
{{inspector row|Activated Ability| Action happening on a specific event related to the item (hit with weapon, being hit on armor, etc.)}}
+
{{inspector row|Base Item Type| The inventory type of the item. Also gives the base appearance type for the item. }}
+
{{inspector row|Comments| General information about the item }}
+
{{inspector row|Crafting Recipe Type| The type of recipe this is. From recipes 2da. }}
+
{{inspector row|Description|  }}
+
{{inspector row|DescriptionRequiresReTranslation|  }}
+
{{inspector row|Heraldry|  }}
+
{{inspector row|Icon|  }}
+
{{inspector row|Item Variation| An appearance variation based on the base item type. }}
+
{{inspector row|MaterialProgression|  }}
+
{{inspector row|MaterialType|  }}
+
{{inspector row|Name|  }}
+
{{inspector row|NameRequiresReTranslation|  }}
+
{{inspector row|Resource Name| A unique string identifier the toolset and the game both use to refer to this resource}}
+
{{inspector row|Tag| A non-unique string identifier used mostly by scripts and other resources to refer to this resource. }}
+
{{inspector row|Tint Override|  }}
+
 
+
{{inspector section|Attributes}}
+
{{inspector row|Body Tint| Affects the appearance of item wearer. Typically used to customize the Dog's warpaint. }}
+
{{inspector row|Body Tint Mask| Affects the appearance of item wearer. Typically used to customize the Dog's warpaint. }}
+
{{inspector row|Cost| Base money value of the item. }}
+
{{inspector row|Damaged|  }}
+
{{inspector row|Item Properties| Allows selecting one or more item properties for the item. Item Properties are any special power, effects, or stat variations beyond the basic item attributes. }}
+
{{inspector row|OnHit Effect|  }}
+
{{inspector row|OnHit Power|  }}
+
{{inspector row|Plot Item|  }}
+
{{inspector row|Plot Item| A plot item can not be destroyed or removed from the inventory once acquired. }}
+
{{inspector row|Script| Event script assigned to the resource }}
+
{{inspector row|Unique|  }}
+
{{inspector row|Variable 2da| 2da file containing a variable table. Only the values in the table can be set and retrieved by scripting. }}
+
{{inspector row|Variables| Opens the variable table for editing, allows the initial values of the variables to be defined.}}
+
 
+
{{inspector section|Model Appearance (R/O)}}
+
{{inspector row|Model Appearance|  }}
+
{{inspector row|Model Gender|  }}
+
{{inspector end}}
+

Latest revision as of 07:33, 3 November 2013

Item topics

An item is a game object that can be picked up or equipped by a creature. Armor, as well as mushrooms.

Overview

Items for the Single player campaign are all stored in the Toolset's Resource palette, under the Item Category. They are as such files describing what an Item is and what it looks like, but they do not tell who or where it is in the game. It is sort of independent resource in that way. Any other Resource however can make use of it as they want.

Items, as with any other Resource follow a Naming convention, to make it easier to navigate the Resource palette.

Unlike in Neverwinter Nights, items can't be placed on the floor. They can only be stored in an inventory of some kind.

Items are stored in *.UTI File format.

Basic Resource Integration

Other Apply Rules MSH Modelmesh MAO Material Heraldry Texture Basestats TNT (Tint)
Other BITM_base.xls (2DA) MMH (Model) Heraldry.xls (2DA) Materialrules (2DA)
ItemVariations.xls (2DA)
(M)2DA_base.XLS (2DA) BITM_base.xls (2DA) Materialtypes.xls (2DA)
BITM_base.xls (2DA)
Other BaseItemType Itemvariation Heraldry MaterialType
↑↓Item↑↓
Game / Toolset

This is a basic scheme, of the dependencies an Item creates, the Resources needed and how they are distributed. Each entry is directly connected to the next, from a modders point of view, who want to know which page is of interest. From the Item Resource, it spreads out into many smaller Resources the Item may depend on. Not all Items require a Model. It must not be exact at all Angles, and many other Properties go along with it. See below for a closeup description.

Item Types

Items are grouped into types called "Base Item Types". The item's base type determines how it can be used and what its basic properties are. Weapon and armour items get their basic ratings from their base item type. This is further modified by the material type of the item (i.e., high steel sword vs. low steel sword) and other item properties on them.

You can edit or create new Items with the Toolsets Object Inspector Editor. This will yield their Properties.

Properties

General
Activated Ability Action happening on a specific event related to the item (hit with weapon, being hit on armor, etc.)
Base Item Type The inventory type of the item. Also gives the base appearance type for the item. As defined in BITM base.xls
Comments General information about the item
Crafting Recipe Type The type of recipe this is. As defined in "recipes.gda" 2DA.
Description Description (as seen in game?)
DescriptionRequiresReTranslation A flag used for localization.
Heraldry Allows Heraldry when defined in BITM base.xls (Shields can). Variations as defined in "heraldry.xls" 2DA.
Icon Icon for display in game. Only names beginning with ico_ to be used
Inventory Subgroup (speculation) sorts items within inventory. See Inventory Page for examples [Undocumented]
Item Variation An appearance variation based on the base item type. As defined in the appropriate Variations 2DA. See ItemVariations.xls
MaterialProgression [Undocumented]
MaterialType Material Variation, and can give the Item additional properties. As defined in materialtypes 2DA
Name Name of the Item. (as it appears in Game?)
NameRequiresReTranslation A flag used for localization.
Resource Name A unique string identifier the toolset and the game both use to refer to this resource
Tag A non-unique string identifier used mostly by scripts and other resources to refer to this resource.
Tint Override [Undocumented]
Attributes
Body Tint Affects the appearance of item wearer. Typically used to customize the Dog's warpaint.
Body Tint Mask Affects the appearance of item wearer. Typically used to customize the Dog's warpaint.
Cost Base money value of the item in coppers - see below.
Damaged A damaged item cannot be equipped or used (but strangely it can be sold at the normal price)
Item Properties Allows selecting one or more item properties for the item. Item Properties are any special power, effects, or stat variations beyond the basic item attributes. Properties also includes restrictions by class, race, etc. See Item properties for more information.
OnHit Effect [Undocumented]
OnHit Power [Undocumented]
Plot Item A plot item can not be destroyed, sold or removed from inventory by the player once the player has acquired it. Plot items can only be removed via scripts written by the designer. Plot items cannot be equipped.
Script Event script assigned to the resource - see below
Unique [Undocumented]
Variable 2da 2da file containing a variable table. Only the values in the table can be set and retrieved by scripting.
Variables Opens the variable table for editing, allows the initial values of the variables to be defined. See below.
Model Appearance (R/O)
Model Appearance Shows the Model how it appears on a specific wearer, ie Human. Helps distinguish Models worn by multiple races?
Model Gender Same as above ,but switches Gender. (Only for display?)

Appearance

An item's appearance will be determined by their base type and an appearance field. Most Items are in some way visible in Game. "Base Item Type" is merely a category of Models with the default displaying first. Whereas "Item Variation" determines the Model file itself, while also paying attention to the Gender and Race of the wearer.

Visual effect item properties can be applied later to further modify the appearance of the item (flame effects, etc…)

Item Script

The purpose of the item event script (if any) is not clear. Events involving items (acquire, lose, equip, unequip, etc…) are received by the event script for the creature or placeable owning the item, but are not received by the item script.

Activated Ability

Item Abilities are activated abilities on items (for example, a potion with the activated ability Healing is a Potion of Healing). An item can only have one item ability. This item ability is assigned in the toolset. They are not item properties.

Item abilities cannot be placed on equippable items. Item abilities are activated by right-clicking or double-clicking the item or from using the item from the quickbar.

Variables

Variable name Type Default Description
APP_ITEM_MOTIVATION int 0
ITEM_CODEX_FLAG int -1
ITEM_COUNTER_1 to 2 int 0
ITEM_CRUST int 0
ITEM_DO_ONCE_A and B int 0
ITEM_SEND_ACQUIRED_EVENT int 0 When true, EVENT_TYPE_CAMPAIGN_ITEM_ACQUIRED is sent to the module's event script when the item is acquired. Unlike plot items, campaign items can be equipped. However, any special behaviour must be scripted. See the Usable campaign items tutorial.
ITEM_SET int -1 Certain items will give a bonus when equipped with other members of the same set (as identified by this integer).
ITEM_SPECIALIZATION_FLAG int 0 For items that unlock a class specialisation this must match an ID from Achievements.xls, ITEM_SEND_ACQUIRED_EVENT must also be set.
ITEM_SEND_LOST_EVENT int 0 When true, EVENT_TYPE_CAMPAIGN_ITEM_LOST is sent to the module's event script when the item is removed from the player's party (but not when a party member equips the item)
PROJECTILE_OVERRIDE int 0 Used to change the default projectile for Mage Staves, values must match an ID from PRJ_base.xls (typically 125-129).
ITEM_RUNE_ENABLED int 0 When true, items may have a number of rune slots, dependant on the relevant RuneCount values in BITM_base.xls and Materialtypes.xls

Tools

Once created, item can be given as inventory to creatures and placeables. Once placed, both the creature/placeable and the item must be exported in order to be viewed in the game. Exporting happens automatically or can be done manually by the designer during testing.

Item Scaling

The item system needs to be very robust, allowing for a wide diversity of item types, item appearances within a type, and rules scaling. Material types are the primary mechanism for item scaling... i.e., we won't randomize the type of item in many cases (flaming sword) but we will randomize its material type (low steel flaming sword vs. high steel flaming sword)

As the player gains levels he or she will encounter progressively more powerful items. Through the use of material types (unique models and/or color variation) we will scale our items so that we have a greater range of item diversity than in our previous games.

Item Cost

The cost of an item in-game depends on several factors:

  • Base Cost
  • Material
  • Item Properties

The copper value is given by

Item Cost = (Base Cost * Material Multiplier) + SUM(Item Property Base Cost * Item Property Power Level)

where

  • Base Cost is the value you can edit in the Object Inspector
  • Material Multiplier is defined in materialtypes.xls
  • Item Properties Base Cost is defined in itmprps.xls

The Buy Price we actually see in-game depends on the merchant:

Buy Price = Item Cost * Merchant Mark Up

For example, if a longsword has a base cost of 1000 copper, but the material is Red Steel (multiplier x 12) with damage power +2 (item property base cost 2500 copper),

Item cost = (1000 * 12) + (2500 * 2) = 12000 + 5000 = 17000 copper.

If the Merchant Mark Up is 110, the Buy Price in game will be 18700 copper.

The toolset does not recommend a value for Base Cost. As far as I can see, the Base Cost of official items is determined by the Item Variation, e.g. Heavy Armour, Longsword 4. So, for reasonable game balance, there's no harm in copying the Base Cost of an official item with the same variation.