Modding Items

Modding items is done through editing items.dat.

There are eight different types of items: There are also weapon modifiers, which affect the strength, speed, knockback or other special abilities of the weapons. They are not officially items, but they are in the items.dat, so they are featured in this page. It is also important to keep in mind that variables which are not numbers are always written inside quotation marks. These are called strings and are stored and used differently to numbers, so correct syntax is vital.
 * Sword
 * Bow
 * Wand
 * Armor
 * Food
 * Potion
 * Scroll
 * Junk

Variables
All weapons and armour are organised by their drop chances, ranging from 1 to 7. This is determined by the array variable "1", etc. The higher the number, the rarer the item is, and as a result the better.

class - this variable is listed at the start of all items and is the directory called upon by the item which stores its base information, like whether or not it can be equipped. This variable should not be altered if modding.

itemType - this is similar to the class variable and is a reference for the game as to which type of item it is.

tex - relates to the position on the items.png file which hold it image. The first position is 0, and the file is 8 positions wide. This means the top right corner would be 7, and the position below 0 would be 8.

name - refers to the name it displays when it is selected in game or looked at while on the ground, etc.

baseDamage - the minimum unaltered damage the weapon can deal.

randDamage - help determine the damage a weapon will deal when used. The variable refers to how many points of damage above the base damage the weapon is capable of inflicting, not its maximum damage. For example an iron shortsword has baseDamage 3 and randDamage 2, which means it can deal 3 - 5 damage.

knockback - how far back the enemy can be knocked when struck by the weapon. The higher it is, the more effective the knockback will be.

reach - the maximum range of a weapon. This variable is separate from the animation of a weapon; if a weapon has a reach of 0.8 it will hit enemies up to 0.8 units away, even if the animation swings the weapon of to the right.

speed - how fast the weapon can attack.

chargespeed - how long it takes the weapon to charge up its charge attack.

Note: It can be found that all weapons have the same speed and chargespeed variables, and this is because the time between swinging the weapon and striking the target is determined in the animations.dat file.

cost - how much the item costs if bought from the shop. all items have this ,even though most cannot be purchased currently.

pickupSound - the sound file played when the item is picked up.

attackAnimation - the animation used from the animations.dat file when the weapon is swung.

attackStrongAnimation - the animation used from the animations.dat file for the weapon's focused attack.

chargeAnimation - the animation used from the animations.dat file when the weapon is charged up.

Note: items like bows and wands do not have animation variables. This is because they all use the same animations and the class/itemType variable already dictates which animation is used.

dropSound - the sounds played when the item is dropped on the ground. This usually contains a small selection of sound files separated by a forward slash, of which one is selected at random to be played.

yOffset - the implications of this variable are not something I am fully sure of, however I believe it involves the item's offset on it's y axis or rotation when equipped or similar. This needn't be changed for any significant reason when modding.

spell - contains four separate variables. The class variable is used in this instance to detail the wand's attack type which controls the spell effects, sprites, particles, etc. spellColor shows the RGB (red green blue) values for the projectile. castSound is used to determine the sound used when the spell is cast, and hitSound determines the sound used when the spell hits. The missile wand does not use the last two variables as it uses default sound effects.

charges - the amount of charges a wand has and therefore can be fired before it is depleted.

damageType - the type of damage inflicted by the wand. This is mostly unused however is implemented by the ice wand through its ability to slow enemies.

armor - the armour class value the piece of armour grants when equipped.

spell - determines what spell will be cast by a particular scroll. This takes the form of a class, and cetain variables depending on the spell. Flame and Blizzard use damageType, radius for the blast's radius, and damage. Health and Greater Health use heal for the amount of health restored. Resist Magic and Haste use status effect as a second class variable that holds timer for the amount of time it lasts for, name for the name displayed while the effect is in play, and Mod (described below).

Mod - is not a variable itself, but rather describes a type of variable used mainly by weapon enchantments and some scrolls. currently known ones are shown below.

magicDamageMod - modifies the amount of magic damage taken.

speedMod - modifies movement speed.

attackSpeedMod - modifies attack speed.

knockbackMod - modifies knockback.

damageMod - modifies damage inflicted. Can be paired with damageType.

Examples
The following are examples of each type of item. Indenting has been removed as a result of issues with line length.

Iron Dagger
"1" : [ { class:com.interrupt.dungeoneer.entities.items.Sword, itemType:sword, tex:8, name:"IRON DAGGER", baseDamage:2, randDamage:1, knockback:0.1, reach:0.45, speed:1.0, chargespeed:1.0, cost:5, pickupSound:"pu_metal.ogg", attackAnimation:"daggerAttack", attackStrongAnimation:"daggerAttackStrong", chargeAnimation:"daggerCharge",           dropSound:"drops/drop_metal_01.ogg,drops/drop_metal_02.ogg,drops/drop_metal_03.ogg" },

Shortbow
"1" : [ { class:com.interrupt.dungeoneer.entities.items.Bow, itemType:bow, tex:15, name:"SHORTBOW", baseDamage:1, randDamage:3, cost:20 },

Arrow
{				class:com.interrupt.dungeoneer.entities.items.ItemStack, itemType:stack, item: {					class:com.interrupt.dungeoneer.entities.projectiles.Missile, name:"ARROW", tex: 73 }, tex:73, name:"ARROW", count:10, yOffset:-0.11, cost:10 }

Wand
wands:[ { class:com.interrupt.dungeoneer.entities.items.Wand, itemType:wand, name:"MISSILE WAND", spell: {			class:com.interrupt.dungeoneer.entities.spells.MagicMissile, spellColor:{r:0,g:1,b:0} }, charges:6, damageType:MAGIC, baseDamage:4, randDamage:20, tex:32, yOffset:-0.04, cost:45 },

Armor
"1" : [ { class:com.interrupt.dungeoneer.entities.items.Armor, itemType:armor, tex:40, name:"LEATHER ARMOR", armor:3, yOffset:-0.11, cost:8, pickupSound:"pu_gen_v2.ogg" },

Food
food:[ { class:com.interrupt.dungeoneer.entities.items.Food, itemType:potion, foodType:food, tex:64, name:"BREAD", yOffset:-0.11, cost:30 },

Potion
potions:[ { class:com.interrupt.dungeoneer.entities.items.Potion, itemType:potion, tex:2, name:"RED POTION", yOffset:-0.11, cost:8, pickupSound:"pu_glass.ogg",		dropSound:"drops/drop_glass_01.ogg,drops/drop_glass_02.ogg,drops/drop_glass_03.ogg" },

Scroll
scrolls:[ { class:com.interrupt.dungeoneer.entities.items.Scroll, itemType:scroll, spell: { class:com.interrupt.dungeoneer.entities.spells.Teleport }, tex:72, name:"SCROLL OF TELEPORT", yOffset:-0.11, cost:90 },

Junk
decorations:[ { class:com.interrupt.dungeoneer.entities.items.Decoration, itemType:junk, tex:56, name:"SKULL", yOffset:-0.11 },

Item Modifications
weaponEnchantments:[ {			class:com.interrupt.dungeoneer.entities.items.ItemModification, name:SPEED, attackSpeedMod:0.5 },