From: Oskar Wiksten Date: Sat, 9 Jun 2012 13:13:52 +0000 (+0200) Subject: Initial work on item categorization. X-Git-Url: https://www.infradead.org/git/?a=commitdiff_plain;h=2bd30169048caf291dba2b81833ad314031320f3;p=users%2Fmchehab%2Fandors-trail.git Initial work on item categorization. --- diff --git a/AndorsTrail/res/menu/inventoryitem.xml b/AndorsTrail/res/menu/inventoryitem.xml index bd8c419..2b03c4e 100644 --- a/AndorsTrail/res/menu/inventoryitem.xml +++ b/AndorsTrail/res/menu/inventoryitem.xml @@ -3,6 +3,7 @@ xmlns:android="http://schemas.android.com/apk/res/android"> + diff --git a/AndorsTrail/res/values/content_itemcategories.xml b/AndorsTrail/res/values/content_itemcategories.xml new file mode 100644 index 0000000..486f5a0 --- /dev/null +++ b/AndorsTrail/res/values/content_itemcategories.xml @@ -0,0 +1,64 @@ + + + + +[id|name|actionType|inventorySlot|size|]; +{dagger|Dagger|2|0|1|}; +{ssword|Shortsword|2|0|1|}; +{lsword|Longsword|2|0|2|}; +{2hsword|Two-handed sword|2|0|3|}; +{bsword|Broadsword|2|0|2|}; +{axe|Axe|2|0|2|}; +{axe2h|Greataxe|2|0|3|}; +{club|Club|2|0|2|}; +{staff|Quarterstaff|2|0|3|}; +{mace|Mace|2|0|2|}; +{scepter|Scepter|2|0|2|}; +{hammer|Warhammer|2|0|2|}; +{hammer2h|Giant hammer|2|0|3|}; + +{buckler|Buckler|2|1|1|}; +{shld_wd_li|Shield, wood (light)|2|1|2|}; +{shld_mtl_li|Shield, metal (light)|2|1|2|}; +{shld_wd_hv|Shield, wood (heavy)|2|1|3|}; +{shld_mtl_hv|Shield, metal (heavy)|2|1|3|}; +{shld_twr|Tower shield|2|1|3|}; + +{hd_cloth|Headwear, cloth|2|2||}; +{hd_lthr|Headwear, leather|2|2|1|}; +{hd_mtl_li|Headwear, metal (light)|2|2|2|}; +{hd_mtl_hv|Headwear, metal (heavy)|2|2|3|}; + +{bdy_clth|Armor, cloth|2|3||}; +{bdy_lthr|Armor, leather|2|3|1|}; +{bdy_hide|Hide armor|2|3|1|}; +{bdy_lt|Armor (light)|2|3|2|}; +{bdy_hv|Armor (heavy)|2|3|3|}; +{chmail|Chain mail|2|3|3|}; +{spmail|Splint mail|2|3|3|}; +{plmail|Plate mail|2|3|3|}; + +{hnd_cloth|Gloves, cloth|2|4||}; +{hnd_lthr|Gloves, leather|2|4|1|}; +{hnd_mtl_li|Gloves, metal (light)|2|4|2|}; +{hnd_mtl_hv|Gloves, metal (heavy)|2|4|3|}; + +{feet_clth|Footwear, cloth|2|5||}; +{feet_lthr|Footwear, leather|2|5|1|}; +{feet_mtl_li|Footwear, metal (light)|2|5|2|}; +{feet_mtl_hv|Footwear, metal (heavy)|2|5|3|}; + +{neck|Necklace|2|6||}; +{ring|Ring|2|7||}; + +{pot|Potion|1|||}; +{food|Food|1|||}; +{gem|Gem||||}; +{animal|Animal part||||}; +{animal_e|Edible animal part|1|||}; +{flask|Liquid container||||}; +{money|Money||||}; +{other|Other||||}; + + + diff --git a/AndorsTrail/res/values/content_itemlist.xml b/AndorsTrail/res/values/content_itemlist.xml index c26e72f..9579edf 100644 --- a/AndorsTrail/res/values/content_itemlist.xml +++ b/AndorsTrail/res/values/content_itemlist.xml @@ -3,390 +3,390 @@ [id|iconID|name|category|displaytype|hasManualPrice|baseMarketCost|hasEquipEffect|equip_boostMaxHP|equip_boostMaxAP|equip_moveCostPenalty|equip_attackCost|equip_attackChance|equip_criticalChance|equip_criticalMultiplier|equip_attackDamage_Min|equip_attackDamage_Max|equip_blockChance|equip_damageResistance|equip_conditions[condition|magnitude|]|hasUseEffect|use_boostHP_Min|use_boostHP_Max|use_boostAP_Min|use_boostAP_Max|use_conditionsSource[condition|magnitude|duration|chance|]|hasHitEffect|hit_boostHP_Min|hit_boostHP_Max|hit_boostAP_Min|hit_boostAP_Max|hit_conditionsSource[condition|magnitude|duration|chance|]|hit_conditionsTarget[condition|magnitude|duration|chance|]|hasKillEffect|kill_boostHP_Min|kill_boostHP_Max|kill_boostAP_Min|kill_boostAP_Max|kill_conditionsSource[condition|magnitude|duration|chance|]|]; -{gold|items_misc:10|Gold coins|30||1|1|||||||||||||||||||||||||||||||||}; +{gold|items_misc:10|Gold coins|money||1|1|||||||||||||||||||||||||||||||||}; [id|iconID|name|category|displaytype|hasManualPrice|baseMarketCost|hasEquipEffect|equip_boostMaxHP|equip_boostMaxAP|equip_moveCostPenalty|equip_attackCost|equip_attackChance|equip_criticalChance|equip_criticalMultiplier|equip_attackDamage_Min|equip_attackDamage_Max|equip_blockChance|equip_damageResistance|equip_conditions[condition|magnitude|]|hasUseEffect|use_boostHP_Min|use_boostHP_Max|use_boostAP_Min|use_boostAP_Max|use_conditionsSource[condition|magnitude|duration|chance|]|hasHitEffect|hit_boostHP_Min|hit_boostHP_Max|hit_boostAP_Min|hit_boostAP_Max|hit_conditionsSource[condition|magnitude|duration|chance|]|hit_conditionsTarget[condition|magnitude|duration|chance|]|hasKillEffect|kill_boostHP_Min|kill_boostHP_Max|kill_boostAP_Min|kill_boostAP_Max|kill_conditionsSource[condition|magnitude|duration|chance|]|]; -{club1|items_weapons:42|Wooden club|0|||7|1||||5|10|||0|1|||||||||||||||||||||||}; -{club3|items_weapons:44|Iron club|0|||253|1||||6|5|||2|7|||||||||||||||||||||||}; -{ironsword0|items_weapons:0|Crude iron sword|0|||12|1||||5|10|||0|1|||||||||||||||||||||||}; -{hammer0|items_weapons:45|Iron hammer|0|||12|1||||5|10|||0|1|||||||||||||||||||||||}; -{hammer1|items_weapons:45|Giant hammer|0|||121|1||||10|5|||4|7|||||||||||||||||||||||}; -{dagger0|items_weapons:14|Iron dagger|0|||12|1||||5|10|||0|1|||||||||||||||||||||||}; -{dagger1|items_weapons:14|Sharp iron dagger|0|||53|1||||4|20|||1|2|||||||||||||||||||||||}; -{dagger2|items_weapons:14|Superior iron dagger|0|||70|1||||4|25|||1|2|||||||||||||||||||||||}; -{shortsword1|items_weapons:15|Iron shortsword|0|||78|1||||4|15|||1|2|||||||||||||||||||||||}; -{ironsword1|items_weapons:0|Iron sword|0|||78|1||||5|10|||1|3|||||||||||||||||||||||}; -{ironsword2|items_weapons:1|Iron longsword|0|||121|1||||5|10|||1|4|||||||||||||||||||||||}; -{broadsword1|items_weapons:5|Iron broadsword|0|||251|1||||7|2|||1|10|||||||||||||||||||||||}; -{broadsword2|items_weapons:6|Steel broadsword|0|||582|1||||6|15|||3|10|||||||||||||||||||||||}; -{steelsword1|items_weapons:7|Steel sword|0|||874|1||||4|24|||3|7|||||||||||||||||||||||}; -{axe1|items_weapons:56|Woodcutter axe|0|||24|1||||5|5|||1|3|||||||||||||||||||||||}; -{axe2|items_weapons:56|Iron axe|0|||312|1||||6|5|||2|5|||||||||||||||||||||||}; -{quickdagger1|items_weapons:14|Quickstrike dagger|0|4||512|1||||3|20|||0|0|-20||||||||||||||||||||||}; +{club1|items_weapons:42|Wooden club|club|||7|1||||5|10|||0|1|||||||||||||||||||||||}; +{club3|items_weapons:44|Iron club|mace|||253|1||||6|5|||2|7|||||||||||||||||||||||}; +{ironsword0|items_weapons:0|Crude iron sword|lsword|||12|1||||5|10|||0|1|||||||||||||||||||||||}; +{hammer0|items_weapons:45|Iron hammer|hammer|||12|1||||5|10|||0|1|||||||||||||||||||||||}; +{hammer1|items_weapons:45|Giant hammer|hammer2h|||121|1||||10|5|||4|7|||||||||||||||||||||||}; +{dagger0|items_weapons:14|Iron dagger|dagger|||12|1||||5|10|||0|1|||||||||||||||||||||||}; +{dagger1|items_weapons:14|Sharp iron dagger|dagger|||53|1||||4|20|||1|2|||||||||||||||||||||||}; +{dagger2|items_weapons:14|Superior iron dagger|dagger|||70|1||||4|25|||1|2|||||||||||||||||||||||}; +{shortsword1|items_weapons:15|Iron shortsword|ssword|||78|1||||4|15|||1|2|||||||||||||||||||||||}; +{ironsword1|items_weapons:0|Iron sword|lsword|||78|1||||5|10|||1|3|||||||||||||||||||||||}; +{ironsword2|items_weapons:1|Iron longsword|lsword|||121|1||||5|10|||1|4|||||||||||||||||||||||}; +{broadsword1|items_weapons:5|Iron broadsword|bsword|||251|1||||7|2|||1|10|||||||||||||||||||||||}; +{broadsword2|items_weapons:6|Steel broadsword|bsword|||582|1||||6|15|||3|10|||||||||||||||||||||||}; +{steelsword1|items_weapons:7|Steel sword|lsword|||874|1||||4|24|||3|7|||||||||||||||||||||||}; +{axe1|items_weapons:56|Woodcutter axe|axe|||24|1||||5|5|||1|3|||||||||||||||||||||||}; +{axe2|items_weapons:56|Iron axe|axe|||312|1||||6|5|||2|5|||||||||||||||||||||||}; +{quickdagger1|items_weapons:14|Quickstrike dagger|dagger|4||512|1||||3|20|||0|0|-20||||||||||||||||||||||}; [id|iconID|name|category|displaytype|hasManualPrice|baseMarketCost|hasEquipEffect|equip_boostMaxHP|equip_boostMaxAP|equip_moveCostPenalty|equip_attackCost|equip_attackChance|equip_criticalChance|equip_criticalMultiplier|equip_attackDamage_Min|equip_attackDamage_Max|equip_blockChance|equip_damageResistance|equip_conditions[condition|magnitude|]|hasUseEffect|use_boostHP_Min|use_boostHP_Max|use_boostAP_Min|use_boostAP_Max|use_conditionsSource[condition|magnitude|duration|chance|]|hasHitEffect|hit_boostHP_Min|hit_boostHP_Max|hit_boostAP_Min|hit_boostAP_Max|hit_conditionsSource[condition|magnitude|duration|chance|]|hit_conditionsTarget[condition|magnitude|duration|chance|]|hasKillEffect|kill_boostHP_Min|kill_boostHP_Max|kill_boostAP_Min|kill_boostAP_Max|kill_conditionsSource[condition|magnitude|duration|chance|]|]; -{ring_dmg1|items_jewelry:0|Ring of damage +1|7|||215|1||||||||1|1|||||||||||||||||||||||}; -{ring_dmg2|items_jewelry:1|Ring of damage +2|7|||398|1||||||||2|2|||||||||||||||||||||||}; -{ring_dmg5|items_jewelry:2|Ring of damage +5|7|4||2014|1||||||||5|5|||||||||||||||||||||||}; -{ring_dmg6|items_jewelry:3|Ring of damage +6|7|4||3186|1||||||||6|6|||||||||||||||||||||||}; -{ring_block1|items_jewelry:0|Lesser ring of block|7|4||1239|1||||||||||10||||||||||||||||||||||}; -{ring_block2|items_jewelry:0|Polished ring of block|7|4||3866|1||||||||||15||||||||||||||||||||||}; -{ring_atkch1|items_jewelry:0|Ring of surehit|7|||215|1|||||15|||||||||||||||||||||||||||}; -{ring1|items_jewelry:0|Mundane ring|7||1|13|1||||||||0|1|||||||||||||||||||||||}; -{ring2|items_jewelry:0|Polished ring|7||1|21|1||||||||||1||||||||||||||||||||||}; -{ring_jinxed1|items_jewelry:2|Jinxed ring of damage resistance|7|||229|1||||||||||-9|1|||||||||||||||||||||}; +{ring_dmg1|items_jewelry:0|Ring of damage +1|ring|||215|1||||||||1|1|||||||||||||||||||||||}; +{ring_dmg2|items_jewelry:1|Ring of damage +2|ring|||398|1||||||||2|2|||||||||||||||||||||||}; +{ring_dmg5|items_jewelry:2|Ring of damage +5|ring|4||2014|1||||||||5|5|||||||||||||||||||||||}; +{ring_dmg6|items_jewelry:3|Ring of damage +6|ring|4||3186|1||||||||6|6|||||||||||||||||||||||}; +{ring_block1|items_jewelry:0|Lesser ring of block|ring|4||1239|1||||||||||10||||||||||||||||||||||}; +{ring_block2|items_jewelry:0|Polished ring of block|ring|4||3866|1||||||||||15||||||||||||||||||||||}; +{ring_atkch1|items_jewelry:0|Ring of surehit|ring|||215|1|||||15|||||||||||||||||||||||||||}; +{ring1|items_jewelry:0|Mundane ring|ring||1|13|1||||||||0|1|||||||||||||||||||||||}; +{ring2|items_jewelry:0|Polished ring|ring||1|21|1||||||||||1||||||||||||||||||||||}; +{ring_jinxed1|items_jewelry:2|Jinxed ring of damage resistance|ring|||229|1||||||||||-9|1|||||||||||||||||||||}; [id|iconID|name|category|displaytype|hasManualPrice|baseMarketCost|hasEquipEffect|equip_boostMaxHP|equip_boostMaxAP|equip_moveCostPenalty|equip_attackCost|equip_attackChance|equip_criticalChance|equip_criticalMultiplier|equip_attackDamage_Min|equip_attackDamage_Max|equip_blockChance|equip_damageResistance|equip_conditions[condition|magnitude|]|hasUseEffect|use_boostHP_Min|use_boostHP_Max|use_boostAP_Min|use_boostAP_Max|use_conditionsSource[condition|magnitude|duration|chance|]|hasHitEffect|hit_boostHP_Min|hit_boostHP_Max|hit_boostAP_Min|hit_boostAP_Max|hit_conditionsSource[condition|magnitude|duration|chance|]|hit_conditionsTarget[condition|magnitude|duration|chance|]|hasKillEffect|kill_boostHP_Min|kill_boostHP_Max|kill_boostAP_Min|kill_boostAP_Max|kill_conditionsSource[condition|magnitude|duration|chance|]|]; -{jewel_fallhaven|items_jewelry:6|Jewel of Fallhaven|6|4||3125|1||||-1||||||||||||||||||||||||||||}; -{necklace_shield1|items_jewelry:7|Necklace of the guardian|6|4||935|1||||||||||9||||||||||||||||||||||}; -{necklace_shield2|items_jewelry:7|Shielding necklace|6|4||1255|1||||||||||12||||||||||||||||||||||}; +{jewel_fallhaven|items_jewelry:6|Jewel of Fallhaven|neck|4||3125|1||||-1||||||||||||||||||||||||||||}; +{necklace_shield1|items_jewelry:7|Necklace of the guardian|neck|4||935|1||||||||||9||||||||||||||||||||||}; +{necklace_shield2|items_jewelry:7|Shielding necklace|neck|4||1255|1||||||||||12||||||||||||||||||||||}; [id|iconID|name|category|displaytype|hasManualPrice|baseMarketCost|hasEquipEffect|equip_boostMaxHP|equip_boostMaxAP|equip_moveCostPenalty|equip_attackCost|equip_attackChance|equip_criticalChance|equip_criticalMultiplier|equip_attackDamage_Min|equip_attackDamage_Max|equip_blockChance|equip_damageResistance|equip_conditions[condition|magnitude|]|hasUseEffect|use_boostHP_Min|use_boostHP_Max|use_boostAP_Min|use_boostAP_Max|use_conditionsSource[condition|magnitude|duration|chance|]|hasHitEffect|hit_boostHP_Min|hit_boostHP_Max|hit_boostAP_Min|hit_boostAP_Max|hit_conditionsSource[condition|magnitude|duration|chance|]|hit_conditionsTarget[condition|magnitude|duration|chance|]|hasKillEffect|kill_boostHP_Min|kill_boostHP_Max|kill_boostAP_Min|kill_boostAP_Max|kill_conditionsSource[condition|magnitude|duration|chance|]|]; -{shirt1|items_armours:14|Cloth shirt|3|||16|1||||||||||2||||||||||||||||||||||}; -{shirt2|items_armours:14|Fine shirt|3|||72|1||||||||||5||||||||||||||||||||||}; -{shirt_dmgresist|items_armours:15|Hardened leather shirt|3|4||1633|1||||||||||5|1|||||||||||||||||||||}; -{armor1|items_armours:15|Leather armour|3|||464|1||||||||||8||||||||||||||||||||||}; -{armor2|items_armours:15|Superior leather armour|3|||624|1||||||||||9||||||||||||||||||||||}; -{armor3|items_armours:16|Hard leather armour|3|||2407|1||||||||||13||||||||||||||||||||||}; -{armor4|items_armours:16|Superior hard leather armour|3|||3866|1||||||||||15||||||||||||||||||||||}; -{hat1|items_armours:21|Green hat|2|||13|1||||||||||1||||||||||||||||||||||}; -{hat2|items_armours:21|Fine green hat|2|||25|1||||||||||2||||||||||||||||||||||}; -{hat3|items_armours:24|Crude leather cap|2|||72|1||||||||||5||||||||||||||||||||||}; -{hat4|items_armours:24|Leather cap|2|||146|1||||||||||6||||||||||||||||||||||}; -{gloves1|items_armours:35|Leather gloves|4|||23|1||||||||||3||||||||||||||||||||||}; -{gloves2|items_armours:35|Fine leather gloves|4|||38|1||||||||||4||||||||||||||||||||||}; -{gloves3|items_armours:36|Snakeskin gloves|4|||72|1||||||||||5||||||||||||||||||||||}; -{gloves4|items_armours:36|Fine snakeskin gloves|4|||146|1||||||||||6||||||||||||||||||||||}; -{shield1|items_armours:0|Wooden buckler|1|||72|1|||||-2|||||5||||||||||||||||||||||}; -{shield3|items_armours:1|Reinforced wooden buckler|1|||226|1|||||-5|||||7||||||||||||||||||||||}; -{shield4|items_armours:2|Crude wooden shield|1|||464|1|||||-5|||||8||||||||||||||||||||||}; -{shield5|items_armours:2|Superior wooden shield|1|||624|1|||||-4|||||9||||||||||||||||||||||}; -{boots1|items_armours:28|Leather boots|5|||23|1||||||||||3||||||||||||||||||||||}; -{boots2|items_armours:28|Superior leather boots|5|||38|1||||||||||4||||||||||||||||||||||}; -{boots3|items_armours:29|Snakeskin boots|5|||146|1||||||||||6||||||||||||||||||||||}; -{boots5|items_armours:30|Reinforced boots|5|||226|1||||||||||7||||||||||||||||||||||}; -{gloves_attack1|items_armours:35|Gloves of swift attack|4|||150|1|||||15|||||-9||||||||||||||||||||||}; -{gloves_attack2|items_armours:35|Fine gloves of swift attack|4|||221|1|||||17|||||-9||||||||||||||||||||||}; +{shirt1|items_armours:14|Cloth shirt|bdy_clth|||16|1||||||||||2||||||||||||||||||||||}; +{shirt2|items_armours:14|Fine shirt|bdy_clth|||72|1||||||||||5||||||||||||||||||||||}; +{shirt_dmgresist|items_armours:15|Hardened leather shirt|bdy_lthr|4||1633|1||||||||||5|1|||||||||||||||||||||}; +{armor1|items_armours:15|Leather armour|bdy_lthr|||464|1||||||||||8||||||||||||||||||||||}; +{armor2|items_armours:15|Superior leather armour|bdy_lthr|||624|1||||||||||9||||||||||||||||||||||}; +{armor3|items_armours:16|Hard leather armour|bdy_lthr|||2407|1||||||||||13||||||||||||||||||||||}; +{armor4|items_armours:16|Superior hard leather armour|bdy_lthr|||3866|1||||||||||15||||||||||||||||||||||}; +{hat1|items_armours:21|Green hat|hd_cloth|||13|1||||||||||1||||||||||||||||||||||}; +{hat2|items_armours:21|Fine green hat|hd_cloth|||25|1||||||||||2||||||||||||||||||||||}; +{hat3|items_armours:24|Crude leather cap|hd_lthr|||72|1||||||||||5||||||||||||||||||||||}; +{hat4|items_armours:24|Leather cap|hd_lthr|||146|1||||||||||6||||||||||||||||||||||}; +{gloves1|items_armours:35|Leather gloves|hnd_lthr|||23|1||||||||||3||||||||||||||||||||||}; +{gloves2|items_armours:35|Fine leather gloves|hnd_lthr|||38|1||||||||||4||||||||||||||||||||||}; +{gloves3|items_armours:36|Snakeskin gloves|hnd_cloth|||72|1||||||||||5||||||||||||||||||||||}; +{gloves4|items_armours:36|Fine snakeskin gloves|hnd_cloth|||146|1||||||||||6||||||||||||||||||||||}; +{shield1|items_armours:0|Wooden buckler|buckler|||72|1|||||-2|||||5||||||||||||||||||||||}; +{shield3|items_armours:1|Reinforced wooden buckler|buckler|||226|1|||||-5|||||7||||||||||||||||||||||}; +{shield4|items_armours:2|Crude wooden shield|shld_wd_li|||464|1|||||-5|||||8||||||||||||||||||||||}; +{shield5|items_armours:2|Superior wooden shield|shld_wd_li|||624|1|||||-4|||||9||||||||||||||||||||||}; +{boots1|items_armours:28|Leather boots|feet_lthr|||23|1||||||||||3||||||||||||||||||||||}; +{boots2|items_armours:28|Superior leather boots|feet_lthr|||38|1||||||||||4||||||||||||||||||||||}; +{boots3|items_armours:29|Snakeskin boots|feet_lthr|||146|1||||||||||6||||||||||||||||||||||}; +{boots5|items_armours:30|Reinforced boots|feet_mtl_li|||226|1||||||||||7||||||||||||||||||||||}; +{gloves_attack1|items_armours:35|Gloves of swift attack|hnd_lthr|||150|1|||||15|||||-9||||||||||||||||||||||}; +{gloves_attack2|items_armours:35|Fine gloves of swift attack|hnd_lthr|||221|1|||||17|||||-9||||||||||||||||||||||}; [id|iconID|name|category|displaytype|hasManualPrice|baseMarketCost|hasEquipEffect|equip_boostMaxHP|equip_boostMaxAP|equip_moveCostPenalty|equip_attackCost|equip_attackChance|equip_criticalChance|equip_criticalMultiplier|equip_attackDamage_Min|equip_attackDamage_Max|equip_blockChance|equip_damageResistance|equip_conditions[condition|magnitude|]|hasUseEffect|use_boostHP_Min|use_boostHP_Max|use_boostAP_Min|use_boostAP_Max|use_conditionsSource[condition|magnitude|duration|chance|]|hasHitEffect|hit_boostHP_Min|hit_boostHP_Max|hit_boostAP_Min|hit_boostAP_Max|hit_conditionsSource[condition|magnitude|duration|chance|]|hit_conditionsTarget[condition|magnitude|duration|chance|]|hasKillEffect|kill_boostHP_Min|kill_boostHP_Max|kill_boostAP_Min|kill_boostAP_Max|kill_conditionsSource[condition|magnitude|duration|chance|]|]; -{apple_green|items_consumables:2|Green apple|21|||9||||||||||||||1|4|4|||||||||||||||||}; -{apple_red|items_consumables:3|Red apple|21|||15||||||||||||||1|6|6|||||||||||||||||}; -{meat|items_consumables:25|Meat|21||1|29||||||||||||||1|12|12|||||||||||||||||}; -{meat_cooked|items_consumables:27|Cooked meat|21||1|78||||||||||||||1|21|21|||||||||||||||||}; -{strawberry|items_consumables:8|Strawberry|21|||1||||||||||||||1|1|1|||||||||||||||||}; -{carrot|items_consumables:15|Carrot|21|||9||||||||||||||1|4|4|||||||||||||||||}; -{bread|items_consumables:21|Bread|21||1|6||||||||||||||1|5|5|||||||||||||||||}; -{mushroom|items_consumables:19|Mushroom|21|||1||||||||||||||1|1|1|||||||||||||||||}; -{pear|items_consumables:9|Pear|21|||9||||||||||||||1|4|4|||||||||||||||||}; -{eggs|items_consumables:20|Eggs|21|||8||||||||||||||1|3|3|||||||||||||||||}; -{radish|items_consumables:14|Radish|21|||5||||||||||||||1|2|2|||||||||||||||||}; +{apple_green|items_consumables:2|Green apple|food|||9||||||||||||||1|4|4|||||||||||||||||}; +{apple_red|items_consumables:3|Red apple|food|||15||||||||||||||1|6|6|||||||||||||||||}; +{meat|items_consumables:25|Meat|animal_e||1|29||||||||||||||1|12|12|||||||||||||||||}; +{meat_cooked|items_consumables:27|Cooked meat|food||1|78||||||||||||||1|21|21|||||||||||||||||}; +{strawberry|items_consumables:8|Strawberry|food|||1||||||||||||||1|1|1|||||||||||||||||}; +{carrot|items_consumables:15|Carrot|food|||9||||||||||||||1|4|4|||||||||||||||||}; +{bread|items_consumables:21|Bread|food||1|6||||||||||||||1|5|5|||||||||||||||||}; +{mushroom|items_consumables:19|Mushroom|food|||1||||||||||||||1|1|1|||||||||||||||||}; +{pear|items_consumables:9|Pear|food|||9||||||||||||||1|4|4|||||||||||||||||}; +{eggs|items_consumables:20|Eggs|food|||8||||||||||||||1|3|3|||||||||||||||||}; +{radish|items_consumables:14|Radish|food|||5||||||||||||||1|2|2|||||||||||||||||}; [id|iconID|name|category|displaytype|hasManualPrice|baseMarketCost|hasEquipEffect|equip_boostMaxHP|equip_boostMaxAP|equip_moveCostPenalty|equip_attackCost|equip_attackChance|equip_criticalChance|equip_criticalMultiplier|equip_attackDamage_Min|equip_attackDamage_Max|equip_blockChance|equip_damageResistance|equip_conditions[condition|magnitude|]|hasUseEffect|use_boostHP_Min|use_boostHP_Max|use_boostAP_Min|use_boostAP_Max|use_conditionsSource[condition|magnitude|duration|chance|]|hasHitEffect|hit_boostHP_Min|hit_boostHP_Max|hit_boostAP_Min|hit_boostAP_Max|hit_conditionsSource[condition|magnitude|duration|chance|]|hit_conditionsTarget[condition|magnitude|duration|chance|]|hasKillEffect|kill_boostHP_Min|kill_boostHP_Max|kill_boostAP_Min|kill_boostAP_Max|kill_conditionsSource[condition|magnitude|duration|chance|]|]; -{vial_empty1|items_consumables:56|Small empty vial|31||1|2|||||||||||||||||||||||||||||||||}; -{vial_empty2|items_consumables:57|Empty vial|31||1|4|||||||||||||||||||||||||||||||||}; -{vial_empty3|items_consumables:59|Empty flask|31||1|6|||||||||||||||||||||||||||||||||}; -{vial_empty4|items_consumables:58|Empty potion bottle|31||1|11|||||||||||||||||||||||||||||||||}; -{health_minor|items_consumables:35|Minor vial of health|20||1|5||||||||||||||1|5|5|||||||||||||||||}; -{health_minor2|items_consumables:35|Minor potion of health|20|||18||||||||||||||1|5|5|||||||||||||||||}; -{health|items_consumables:49|Regular potion of health|20|||40||||||||||||||1|10|10|||||||||||||||||}; -{health_major|items_consumables:28|Major flask of health|20||1|210||||||||||||||1|40|40|||||||||||||||||}; -{health_major2|items_consumables:28|Major potion of health|20|||280||||||||||||||1|40|40|||||||||||||||||}; -{mead|items_consumables:51|Mead|20|||15||||||||||||||1|1|1|||||||||||||||||}; -{milk|items_consumables:55|Milk|20|||21||||||||||||||1|2|2|||||||||||||||||}; -{bonemeal_potion|items_consumables:34|Bonemeal potion|20||1|45||||||||||||||1|40|40|||||||||||||||||}; +{vial_empty1|items_consumables:56|Small empty vial|flask||1|2|||||||||||||||||||||||||||||||||}; +{vial_empty2|items_consumables:57|Empty vial|flask||1|4|||||||||||||||||||||||||||||||||}; +{vial_empty3|items_consumables:59|Empty flask|flask||1|6|||||||||||||||||||||||||||||||||}; +{vial_empty4|items_consumables:58|Empty potion bottle|flask||1|11|||||||||||||||||||||||||||||||||}; +{health_minor|items_consumables:35|Minor vial of health|pot||1|5||||||||||||||1|5|5|||||||||||||||||}; +{health_minor2|items_consumables:35|Minor potion of health|pot|||18||||||||||||||1|5|5|||||||||||||||||}; +{health|items_consumables:49|Regular potion of health|pot|||40||||||||||||||1|10|10|||||||||||||||||}; +{health_major|items_consumables:28|Major flask of health|pot||1|210||||||||||||||1|40|40|||||||||||||||||}; +{health_major2|items_consumables:28|Major potion of health|pot|||280||||||||||||||1|40|40|||||||||||||||||}; +{mead|items_consumables:51|Mead|pot|||15||||||||||||||1|1|1|||||||||||||||||}; +{milk|items_consumables:55|Milk|pot|||21||||||||||||||1|2|2|||||||||||||||||}; +{bonemeal_potion|items_consumables:34|Bonemeal potion|pot||1|45||||||||||||||1|40|40|||||||||||||||||}; [id|iconID|name|category|displaytype|hasManualPrice|baseMarketCost|hasEquipEffect|equip_boostMaxHP|equip_boostMaxAP|equip_moveCostPenalty|equip_attackCost|equip_attackChance|equip_criticalChance|equip_criticalMultiplier|equip_attackDamage_Min|equip_attackDamage_Max|equip_blockChance|equip_damageResistance|equip_conditions[condition|magnitude|]|hasUseEffect|use_boostHP_Min|use_boostHP_Max|use_boostAP_Min|use_boostAP_Max|use_conditionsSource[condition|magnitude|duration|chance|]|hasHitEffect|hit_boostHP_Min|hit_boostHP_Max|hit_boostAP_Min|hit_boostAP_Max|hit_conditionsSource[condition|magnitude|duration|chance|]|hit_conditionsTarget[condition|magnitude|duration|chance|]|hasKillEffect|kill_boostHP_Min|kill_boostHP_Max|kill_boostAP_Min|kill_boostAP_Max|kill_conditionsSource[condition|magnitude|duration|chance|]|]; -{hair|items_misc:48|Animal hair|31||1|2|||||||||||||||||||||||||||||||||}; -{insectwing|items_misc:52|Insect wing|31||1|3|||||||||||||||||||||||||||||||||}; -{bone|items_misc:44|Bone|31||1|2|||||||||||||||||||||||||||||||||}; -{claws|items_misc:47|Claws|31||1|2|||||||||||||||||||||||||||||||||}; -{shell|items_misc:54|Insect shell|31||1|2|||||||||||||||||||||||||||||||||}; -{gland|actorconditions_1:60|Poison gland|31||1|15|||||||||||||||||||||||||||||||||}; -{rat_tail|items_misc:38|Rat tail|31||1|2|||||||||||||||||||||||||||||||||}; +{hair|items_misc:48|Animal hair|animal||1|2|||||||||||||||||||||||||||||||||}; +{insectwing|items_misc:52|Insect wing|animal||1|3|||||||||||||||||||||||||||||||||}; +{bone|items_misc:44|Bone|animal||1|2|||||||||||||||||||||||||||||||||}; +{claws|items_misc:47|Claws|animal||1|2|||||||||||||||||||||||||||||||||}; +{shell|items_misc:54|Insect shell|animal||1|2|||||||||||||||||||||||||||||||||}; +{gland|actorconditions_1:60|Poison gland|animal||1|15|||||||||||||||||||||||||||||||||}; +{rat_tail|items_misc:38|Rat tail|animal||1|2|||||||||||||||||||||||||||||||||}; [id|iconID|name|category|displaytype|hasManualPrice|baseMarketCost|hasEquipEffect|equip_boostMaxHP|equip_boostMaxAP|equip_moveCostPenalty|equip_attackCost|equip_attackChance|equip_criticalChance|equip_criticalMultiplier|equip_attackDamage_Min|equip_attackDamage_Max|equip_blockChance|equip_damageResistance|equip_conditions[condition|magnitude|]|hasUseEffect|use_boostHP_Min|use_boostHP_Max|use_boostAP_Min|use_boostAP_Max|use_conditionsSource[condition|magnitude|duration|chance|]|hasHitEffect|hit_boostHP_Min|hit_boostHP_Max|hit_boostAP_Min|hit_boostAP_Max|hit_conditionsSource[condition|magnitude|duration|chance|]|hit_conditionsTarget[condition|magnitude|duration|chance|]|hasKillEffect|kill_boostHP_Min|kill_boostHP_Max|kill_boostAP_Min|kill_boostAP_Max|kill_conditionsSource[condition|magnitude|duration|chance|]|]; -{rock|items_misc:28|Small rock|31||1|1|||||||||||||||||||||||||||||||||}; -{gem1|items_misc:0|Glass gem|31||1|2|||||||||||||||||||||||||||||||||}; -{gem2|items_misc:1|Ruby gem|31||1|6|||||||||||||||||||||||||||||||||}; -{gem3|items_misc:2|Polished gem|31||1|8|||||||||||||||||||||||||||||||||}; -{gem4|items_misc:3|Sharpened gem|31||1|13|||||||||||||||||||||||||||||||||}; -{gem5|items_misc:5|Polished sparkling gem|31||1|15|||||||||||||||||||||||||||||||||}; +{rock|items_misc:28|Small rock|gem||1|1|||||||||||||||||||||||||||||||||}; +{gem1|items_misc:0|Glass gem|gem||1|2|||||||||||||||||||||||||||||||||}; +{gem2|items_misc:1|Ruby gem|gem||1|6|||||||||||||||||||||||||||||||||}; +{gem3|items_misc:2|Polished gem|gem||1|8|||||||||||||||||||||||||||||||||}; +{gem4|items_misc:3|Sharpened gem|gem||1|13|||||||||||||||||||||||||||||||||}; +{gem5|items_misc:5|Polished sparkling gem|gem||1|15|||||||||||||||||||||||||||||||||}; [id|iconID|name|category|displaytype|hasManualPrice|baseMarketCost|hasEquipEffect|equip_boostMaxHP|equip_boostMaxAP|equip_moveCostPenalty|equip_attackCost|equip_attackChance|equip_criticalChance|equip_criticalMultiplier|equip_attackDamage_Min|equip_attackDamage_Max|equip_blockChance|equip_damageResistance|equip_conditions[condition|magnitude|]|hasUseEffect|use_boostHP_Min|use_boostHP_Max|use_boostAP_Min|use_boostAP_Max|use_conditionsSource[condition|magnitude|duration|chance|]|hasHitEffect|hit_boostHP_Min|hit_boostHP_Max|hit_boostAP_Min|hit_boostAP_Max|hit_conditionsSource[condition|magnitude|duration|chance|]|hit_conditionsTarget[condition|magnitude|duration|chance|]|hasKillEffect|kill_boostHP_Min|kill_boostHP_Max|kill_boostAP_Min|kill_boostAP_Max|kill_conditionsSource[condition|magnitude|duration|chance|]|]; -{tail_caverat|items_misc:38|Cave rat tail|31|1|1|0|||||||||||||||||||||||||||||||||}; -{tail_trainingrat|items_misc:38|Small rat tail|31|1|1|0|||||||||||||||||||||||||||||||||}; -{ring_mikhail|items_jewelry:0|Mikhail\'s ring|7|||15|1|||||10|||||||||||||||||||||||||||}; -{neck_irogotu|items_jewelry:7|Irogotu\'s necklace|6|3|1|30|1||||||||||5|1|||||||||||||||||||||}; -{ring_gandir|items_jewelry:0|Gandir\'s ring|31|1|1|0|||||||||||||||||||||||||||||||||}; -{dagger_venom|items_weapons:17|Venomous Dagger|0|3||15|1||||4|10|5|2|1|2|||||||||||||||||||||||}; -{key_luthor|items_misc:21|Key of Luthor|31|1|1|0|||||||||||||||||||||||||||||||||}; -{calomyran_secrets|items_books:0|Calomyran secrets|31|1|1|0|||||||||||||||||||||||||||||||||}; -{heartstone|items_misc:6|Heartstone|31|1|1|0|||||||||||||||||||||||||||||||||}; -{vacor_spell|items_books:7|Piece of Vacor\'s spell|31|1|1|0|||||||||||||||||||||||||||||||||}; -{ring_unzel|items_jewelry:0|Unzel\'s ring|31|1|1|0|||||||||||||||||||||||||||||||||}; -{ring_vacor|items_jewelry:0|Vacor\'s ring|31|1|1|0|||||||||||||||||||||||||||||||||}; -{boots_unzel|items_armours:29|Unzel\'s defensive boots|5|3||185|1||||||||||8||||||||||||||||||||||}; -{boots_vacor|items_armours:29|Vacor\'s boots of attack|5|3||185|1|||||9|||||2||||||||||||||||||||||}; -{necklace_flagstone|items_jewelry:6|Flagstone Warden\'s necklace|31|1|1|0|||||||||||||||||||||||||||||||||}; -{packhide|items_armours:15|Wolfpack\'s animal hide|3|3|1|121|1|||||-15|||||2|1|||||||||||||||||||||}; -{sword_flagstone|items_weapons:7|Flagstone\'s pride|0|3||169|1||||4|21|10|2|1|6|||||||||||||||||||||||}; +{tail_caverat|items_misc:38|Cave rat tail|animal|1|1|0|||||||||||||||||||||||||||||||||}; +{tail_trainingrat|items_misc:38|Small rat tail|animal|1|1|0|||||||||||||||||||||||||||||||||}; +{ring_mikhail|items_jewelry:0|Mikhail\'s ring|ring|||15|1|||||10|||||||||||||||||||||||||||}; +{neck_irogotu|items_jewelry:7|Irogotu\'s necklace|neck|3|1|30|1||||||||||5|1|||||||||||||||||||||}; +{ring_gandir|items_jewelry:0|Gandir\'s ring|other|1|1|0|||||||||||||||||||||||||||||||||}; +{dagger_venom|items_weapons:17|Venomous Dagger|dagger|3||15|1||||4|10|5|2|1|2|||||||||||||||||||||||}; +{key_luthor|items_misc:21|Key of Luthor|other|1|1|0|||||||||||||||||||||||||||||||||}; +{calomyran_secrets|items_books:0|Calomyran secrets|other|1|1|0|||||||||||||||||||||||||||||||||}; +{heartstone|items_misc:6|Heartstone|gem|1|1|0|||||||||||||||||||||||||||||||||}; +{vacor_spell|items_books:7|Piece of Vacor\'s spell|other|1|1|0|||||||||||||||||||||||||||||||||}; +{ring_unzel|items_jewelry:0|Unzel\'s ring|other|1|1|0|||||||||||||||||||||||||||||||||}; +{ring_vacor|items_jewelry:0|Vacor\'s ring|other|1|1|0|||||||||||||||||||||||||||||||||}; +{boots_unzel|items_armours:29|Unzel\'s defensive boots|feet_lthr|3||185|1||||||||||8||||||||||||||||||||||}; +{boots_vacor|items_armours:29|Vacor\'s boots of attack|feet_lthr|3||185|1|||||9|||||2||||||||||||||||||||||}; +{necklace_flagstone|items_jewelry:6|Flagstone Warden\'s necklace|other|1|1|0|||||||||||||||||||||||||||||||||}; +{packhide|items_armours:15|Wolfpack\'s animal hide|bdy_hide|3|1|121|1|||||-15|||||2|1|||||||||||||||||||||}; +{sword_flagstone|items_weapons:7|Flagstone\'s pride|lsword|3||169|1||||4|21|10|2|1|6|||||||||||||||||||||||}; [id|iconID|name|category|displaytype|hasManualPrice|baseMarketCost|hasEquipEffect|equip_boostMaxHP|equip_boostMaxAP|equip_moveCostPenalty|equip_attackCost|equip_attackChance|equip_criticalChance|equip_criticalMultiplier|equip_attackDamage_Min|equip_attackDamage_Max|equip_blockChance|equip_damageResistance|equip_conditions[condition|magnitude|]|hasUseEffect|use_boostHP_Min|use_boostHP_Max|use_boostAP_Min|use_boostAP_Max|use_conditionsSource[condition|magnitude|duration|chance|]|hasHitEffect|hit_boostHP_Min|hit_boostHP_Max|hit_boostAP_Min|hit_boostAP_Max|hit_conditionsSource[condition|magnitude|duration|chance|]|hit_conditionsTarget[condition|magnitude|duration|chance|]|hasKillEffect|kill_boostHP_Min|kill_boostHP_Max|kill_boostAP_Min|kill_boostAP_Max|kill_conditionsSource[condition|magnitude|duration|chance|]|]; -{armor_chain1|items_armours:17|Rusty chain mail|3|||3629|1|||||-9|||||20||||||||||||||||||||||}; -{armor_chain2|items_armours:17|Ordinary chain mail|3|||4191|1|||||-10|||||22||||||||||||||||||||||}; -{hat_leather1|items_armours:24|Ordinary leather cap|2|||261|1|||||-2|||||7||||||||||||||||||||||}; -{sleepingmead|items_consumables:51|Prepared sleepy mead|31|1|1|0|||||||||||||||||||||||||||||||||}; -{ffguard_qitem|items_jewelry:0|Feygard patrol ring|31|1|1|0|||||||||||||||||||||||||||||||||}; -{shield6|items_armours:3|Wooden tower shield|1|||952|1|||||-6|||||12||||||||||||||||||||||}; -{shield7|items_armours:3|Strong wooden tower shield|1|||1538|1|||||-6|||||14||||||||||||||||||||||}; -{club_wood1|items_weapons:44|Heavy iron club|0|||950|1||||8|15|5|3|2|11|||||||||||||||||||||||}; -{club_wood2|items_weapons:44|Balanced heavy iron club|0|||2194|1||||7|10|10|3|2|11|||||||||||||||||||||||}; -{gloves_grip|items_armours:35|Gloves of better grip|4|||471|1|||||9|||||1||||||||||||||||||||||}; -{gloves_fancy|items_armours:35|Fancy gloves|4|||78|1|||||5|||||||||||||||||||||||||||}; -{ring_crit1|items_jewelry:0|Ring of strike|7|4||2921|1||||||5||||||||||||||||||||||||||}; -{ring_crit2|items_jewelry:0|Ring of vicious strike|7|4||3455|1|||||-3|7||||||||||||||||||||||||||}; -{armor_stone|items_armours:17|Stone Cuirass|3|3||52|1||||2||||||22|1|||||||||||||||||||||}; -{ring_shadow0|items_jewelry:2|Ring of lesser Shadow|7|2|1|0|1|||||25|6||4|7|5||{{regen|1|}}||||||||||||||||||||}; +{armor_chain1|items_armours:17|Rusty chain mail|chmail|||3629|1|||||-9|||||20||||||||||||||||||||||}; +{armor_chain2|items_armours:17|Ordinary chain mail|chmail|||4191|1|||||-10|||||22||||||||||||||||||||||}; +{hat_leather1|items_armours:24|Ordinary leather cap|hd_lthr|||261|1|||||-2|||||7||||||||||||||||||||||}; +{sleepingmead|items_consumables:51|Prepared sleepy mead|other|1|1|0|||||||||||||||||||||||||||||||||}; +{ffguard_qitem|items_jewelry:0|Feygard patrol ring|other|1|1|0|||||||||||||||||||||||||||||||||}; +{shield6|items_armours:3|Wooden tower shield|shld_twr|||952|1|||||-6|||||12||||||||||||||||||||||}; +{shield7|items_armours:3|Strong wooden tower shield|shld_twr|||1538|1|||||-6|||||14||||||||||||||||||||||}; +{club_wood1|items_weapons:44|Heavy iron club|mace|||950|1||||8|15|5|3|2|11|||||||||||||||||||||||}; +{club_wood2|items_weapons:44|Balanced heavy iron club|mace|||2194|1||||7|10|10|3|2|11|||||||||||||||||||||||}; +{gloves_grip|items_armours:35|Gloves of better grip|hnd_lthr|||471|1|||||9|||||1||||||||||||||||||||||}; +{gloves_fancy|items_armours:35|Fancy gloves|hnd_cloth|||78|1|||||5|||||||||||||||||||||||||||}; +{ring_crit1|items_jewelry:0|Ring of strike|ring|4||2921|1||||||5||||||||||||||||||||||||||}; +{ring_crit2|items_jewelry:0|Ring of vicious strike|ring|4||3455|1|||||-3|7||||||||||||||||||||||||||}; +{armor_stone|items_armours:17|Stone Cuirass|bdy_hv|3||52|1||||2||||||22|1|||||||||||||||||||||}; +{ring_shadow0|items_jewelry:2|Ring of lesser Shadow|ring|2|1|0|1|||||25|6||4|7|5||{{regen|1|}}||||||||||||||||||||}; [id|iconID|name|category|displaytype|hasManualPrice|baseMarketCost|hasEquipEffect|equip_boostMaxHP|equip_boostMaxAP|equip_moveCostPenalty|equip_attackCost|equip_attackChance|equip_criticalChance|equip_criticalMultiplier|equip_attackDamage_Min|equip_attackDamage_Max|equip_blockChance|equip_damageResistance|equip_conditions[condition|magnitude|]|hasUseEffect|use_boostHP_Min|use_boostHP_Max|use_boostAP_Min|use_boostAP_Max|use_conditionsSource[condition|magnitude|duration|chance|]|hasHitEffect|hit_boostHP_Min|hit_boostHP_Max|hit_boostAP_Min|hit_boostAP_Max|hit_conditionsSource[condition|magnitude|duration|chance|]|hit_conditionsTarget[condition|magnitude|duration|chance|]|hasKillEffect|kill_boostHP_Min|kill_boostHP_Max|kill_boostAP_Min|kill_boostAP_Max|kill_conditionsSource[condition|magnitude|duration|chance|]|]; -{rapier_lifesteal|items_weapons:71|Rapier of lifesteal|0|2|1|0|1|5|||5|21|||1|6||||||||||1|0|3|||||1|3|3||||}; -{dagger_barbed|items_weapons:17|Barbed dagger|0|3|1|0|1||||4|15|||0|0|5|||||||||1||||||{{bleeding_wound|1|5|50|}}|||||||}; -{elytharan_redeemer|items_weapons:70|Elytharan redeemer|0|2|1|0|1||2||5|25|||3|8|5||{{bless|1|}}|0|||||||||||||||||||}; -{clouded_rage|items_weapons:71|Sword of Shadow\'s rage|0|3|1|0|1||||5|21|||3|6|5|||0|||||||||||||1|||||{{rage_minor|1|1|50|}}|}; -{shadow_slayer|items_weapons:60|Shadow of the slayer|0|3|1|0|1||2||7|25|10|2|5|9|||||||||||||||||1|1|1||||}; +{rapier_lifesteal|items_weapons:71|Rapier of lifesteal|2hsword|2|1|0|1|5|||5|21|||1|6||||||||||1|0|3|||||1|3|3||||}; +{dagger_barbed|items_weapons:17|Barbed dagger|dagger|3|1|0|1||||4|15|||0|0|5|||||||||1||||||{{bleeding_wound|1|5|50|}}|||||||}; +{elytharan_redeemer|items_weapons:70|Elytharan redeemer|2hsword|2|1|0|1||2||5|25|||3|8|5||{{bless|1|}}|0|||||||||||||||||||}; +{clouded_rage|items_weapons:71|Sword of Shadow\'s rage|2hsword|3|1|0|1||||5|21|||3|6|5|||0|||||||||||||1|||||{{rage_minor|1|1|50|}}|}; +{shadow_slayer|items_weapons:60|Shadow of the slayer|axe2h|3|1|0|1||2||7|25|10|2|5|9|||||||||||||||||1|1|1||||}; -{ring_shadow_embrace|items_jewelry:0|Ring of Shadow embrace|7|3|1|0|1|20||||10|||2|2|||||||||||||||||||||||}; +{ring_shadow_embrace|items_jewelry:0|Ring of Shadow embrace|ring|3|1|0|1|20||||10|||2|2|||||||||||||||||||||||}; -{bwm_dagger|items_weapons:19|Blackwater dagger|0|4|1|539|1||||3|40|||1|1|5||{{blackwater_misery|1|}}||||||||||||||||||||}; -{bwm_dagger_venom|items_weapons:19|Blackwater poisoned dagger|0|4|1|1552|1||||3|45|||1|1|||{{blackwater_misery|1|}}|||||||1||||||{{poison_weak|1|5|50|}}|||||||}; -{bwm_ironsword|items_weapons:0|Blackwater iron sword|0|4|1|1224|1||||4|50|||3|7|5||{{blackwater_misery|1|}}||||||||||||||||||||}; -{bwm_leather_armour|items_armours:15|Blackwater leather armour|3|4|1|2551|1||||||||||25|1|{{blackwater_misery|1|}}||||||||||||||||||||}; -{bwm_leather_cap|items_armours:24|Blackwater leather cap|2|4|1|722|1|5|||||||||21||{{blackwater_misery|1|}}||||||||||||||||||||}; -{bwm_combat_ring|items_jewelry:2|Blackwater ring of combat|7|4|1|595|1|||||5|||0|7|||{{blackwater_misery|1|}}||||||||||||||||||||}; -{bwm_brew|items_consumables:51|Blackwater brew|20||1|57||||||||||||||1|15|15|||{{intoxicated|1|10|100|}}||||||||||||||}; -{woodcutter_hatchet|items_weapons:57|Woodcutter\'s hatchet|0|||0|1||||6|9|||6|12|||||||||||||||||||||||}; -{woodcutter_boots|items_armours:30|Woodcutter\'s boots|5|||873|1|1||||3|||||8||||||||||||||||||||||}; -{heavy_club|items_weapons:44|Heavy club|0|||1229|1||||7|15|5|3|2|15|||||||||||||||||||||||}; +{bwm_dagger|items_weapons:19|Blackwater dagger|dagger|4|1|539|1||||3|40|||1|1|5||{{blackwater_misery|1|}}||||||||||||||||||||}; +{bwm_dagger_venom|items_weapons:19|Blackwater poisoned dagger|dagger|4|1|1552|1||||3|45|||1|1|||{{blackwater_misery|1|}}|||||||1||||||{{poison_weak|1|5|50|}}|||||||}; +{bwm_ironsword|items_weapons:0|Blackwater iron sword|lsword|4|1|1224|1||||4|50|||3|7|5||{{blackwater_misery|1|}}||||||||||||||||||||}; +{bwm_leather_armour|items_armours:15|Blackwater leather armour|bdy_lthr|4|1|2551|1||||||||||25|1|{{blackwater_misery|1|}}||||||||||||||||||||}; +{bwm_leather_cap|items_armours:24|Blackwater leather cap|hd_lthr|4|1|722|1|5|||||||||21||{{blackwater_misery|1|}}||||||||||||||||||||}; +{bwm_combat_ring|items_jewelry:2|Blackwater ring of combat|ring|4|1|595|1|||||5|||0|7|||{{blackwater_misery|1|}}||||||||||||||||||||}; +{bwm_brew|items_consumables:51|Blackwater brew|pot||1|57||||||||||||||1|15|15|||{{intoxicated|1|10|100|}}||||||||||||||}; +{woodcutter_hatchet|items_weapons:57|Woodcutter\'s hatchet|axe|||0|1||||6|9|||6|12|||||||||||||||||||||||}; +{woodcutter_boots|items_armours:30|Woodcutter\'s boots|feet_lthr|||873|1|1||||3|||||8||||||||||||||||||||||}; +{heavy_club|items_weapons:44|Heavy club|mace|||1229|1||||7|15|5|3|2|15|||||||||||||||||||||||}; -{pot_speed_1|items_consumables:41|Minor potion of speed|20||1|261||||||||||||||1|||||{{speed_minor|1|5|100|}}||||||||||||||}; -{pot_poison_weak|items_consumables:40|Weak poison|20||1|125||||||||||||||1|||||{{poison_weak|1|5|100|}}||||||||||||||}; -{pot_poison_weak_antidote|items_consumables:54|Weak poison antidote|20||1|337||||||||||||||1|||||{{poison_weak|-99||100|}}||||||||||||||}; -{pot_bleeding_ointment|items_consumables:35|Ointment of bleeding wounds|20||1|310||||||||||||||1|||||{{bleeding_wound|-99||100|}}||||||||||||||}; -{pot_fatigue_restore|items_consumables:41|Restore fatigue|20||1|210||||||||||||||1|||||{{fatigue_minor|-99||100|}}||||||||||||||}; +{pot_speed_1|items_consumables:41|Minor potion of speed|pot||1|261||||||||||||||1|||||{{speed_minor|1|5|100|}}||||||||||||||}; +{pot_poison_weak|items_consumables:40|Weak poison|pot||1|125||||||||||||||1|||||{{poison_weak|1|5|100|}}||||||||||||||}; +{pot_poison_weak_antidote|items_consumables:54|Weak poison antidote|pot||1|337||||||||||||||1|||||{{poison_weak|-99||100|}}||||||||||||||}; +{pot_bleeding_ointment|items_consumables:35|Ointment of bleeding wounds|pot||1|310||||||||||||||1|||||{{bleeding_wound|-99||100|}}||||||||||||||}; +{pot_fatigue_restore|items_consumables:41|Restore fatigue|pot||1|210||||||||||||||1|||||{{fatigue_minor|-99||100|}}||||||||||||||}; -{pot_blind_rage|items_consumables:63|Potion of blind rage|20||1|495||||||||||||||1|||||{{rage_minor|1|5|100|}}|0|||||||0||||||}; +{pot_blind_rage|items_consumables:63|Potion of blind rage|pot||1|495||||||||||||||1|||||{{rage_minor|1|5|100|}}|0|||||||0||||||}; [id|iconID|name|category|displaytype|hasManualPrice|baseMarketCost|hasEquipEffect|equip_boostMaxHP|equip_boostMaxAP|equip_moveCostPenalty|equip_attackCost|equip_attackChance|equip_criticalChance|equip_criticalMultiplier|equip_attackDamage_Min|equip_attackDamage_Max|equip_blockChance|equip_damageResistance|equip_conditions[condition|magnitude|]|hasUseEffect|use_boostHP_Min|use_boostHP_Max|use_boostAP_Min|use_boostAP_Max|use_conditionsSource[condition|magnitude|duration|chance|]|hasHitEffect|hit_boostHP_Min|hit_boostHP_Max|hit_boostAP_Min|hit_boostAP_Max|hit_conditionsSource[condition|magnitude|duration|chance|]|hit_conditionsTarget[condition|magnitude|duration|chance|]|hasKillEffect|kill_boostHP_Min|kill_boostHP_Max|kill_boostAP_Min|kill_boostAP_Max|kill_conditionsSource[condition|magnitude|duration|chance|]|]; -{rusted_iron_sword|items_weapons:0|Rusted iron sword|0|||52|1||||5|10|||1|2|||||||||||||||||||||||}; -{broken_buckler|items_armours:0|Broken wooden buckler|1|||120|1|||||-5|||||1||||||||||||||||||||||}; -{used_gloves|items_armours:35|Blood-stained gloves|4|||56|1||||||||||1||||||||||||||||||||||}; +{rusted_iron_sword|items_weapons:0|Rusted iron sword|lsword|||52|1||||5|10|||1|2|||||||||||||||||||||||}; +{broken_buckler|items_armours:0|Broken wooden buckler|buckler|||120|1|||||-5|||||1||||||||||||||||||||||}; +{used_gloves|items_armours:35|Blood-stained gloves|hnd_lthr|||56|1||||||||||1||||||||||||||||||||||}; [id|iconID|name|category|displaytype|hasManualPrice|baseMarketCost|hasEquipEffect|equip_boostMaxHP|equip_boostMaxAP|equip_moveCostPenalty|equip_attackCost|equip_attackChance|equip_criticalChance|equip_criticalMultiplier|equip_attackDamage_Min|equip_attackDamage_Max|equip_blockChance|equip_damageResistance|equip_conditions[condition|magnitude|]|hasUseEffect|use_boostHP_Min|use_boostHP_Max|use_boostAP_Min|use_boostAP_Max|use_conditionsSource[condition|magnitude|duration|chance|]|hasHitEffect|hit_boostHP_Min|hit_boostHP_Max|hit_boostAP_Min|hit_boostAP_Max|hit_conditionsSource[condition|magnitude|duration|chance|]|hit_conditionsTarget[condition|magnitude|duration|chance|]|hasKillEffect|kill_boostHP_Min|kill_boostHP_Max|kill_boostAP_Min|kill_boostAP_Max|kill_conditionsSource[condition|magnitude|duration|chance|]|]; -{bwm_claws|items_misc:47|White wyrm claw|31||1|35|||||||||||||||||||||||||||||||||}; -{bwm_permit|items_books:8|Forged papers for Blackwater|31|1|1|0|||||||||||||||||||||||||||||||||}; -{bjorgur_dagger|items_weapons:14|Bjorgur\'s family dagger|0|1|1|0|1||||5||||||||||||||||||||||||||||}; -{q_kazaul_vial|items_consumables:57|Vial of purifying spirit|31|1|1|0|||||||||||||||||||||||||||||||||}; -{guthbered_id|items_jewelry:0|Guthbered\'s ring|31|1|1|0|||||||||||||||||||||||||||||||||}; -{harlenn_id|items_jewelry:0|Harlenn\'s ring|31|1|1|0|||||||||||||||||||||||||||||||||}; +{bwm_claws|items_misc:47|White wyrm claw|animal||1|35|||||||||||||||||||||||||||||||||}; +{bwm_permit|items_books:8|Forged papers for Blackwater|other|1|1|0|||||||||||||||||||||||||||||||||}; +{bjorgur_dagger|items_weapons:14|Bjorgur\'s family dagger|dagger|1|1|0|1||||5||||||||||||||||||||||||||||}; +{q_kazaul_vial|items_consumables:57|Vial of purifying spirit|other|1|1|0|||||||||||||||||||||||||||||||||}; +{guthbered_id|items_jewelry:0|Guthbered\'s ring|other|1|1|0|||||||||||||||||||||||||||||||||}; +{harlenn_id|items_jewelry:0|Harlenn\'s ring|other|1|1|0|||||||||||||||||||||||||||||||||}; [id|iconID|name|category|displaytype|hasManualPrice|baseMarketCost|hasEquipEffect|equip_boostMaxHP|equip_boostMaxAP|equip_moveCostPenalty|equip_attackCost|equip_attackChance|equip_criticalChance|equip_criticalMultiplier|equip_attackDamage_Min|equip_attackDamage_Max|equip_blockChance|equip_damageResistance|equip_conditions[condition|magnitude|]|hasUseEffect|use_boostHP_Min|use_boostHP_Max|use_boostAP_Min|use_boostAP_Max|use_conditionsSource[condition|magnitude|duration|chance|]|hasHitEffect|hit_boostHP_Min|hit_boostHP_Max|hit_boostAP_Min|hit_boostAP_Max|hit_conditionsSource[condition|magnitude|duration|chance|]|hit_conditionsTarget[condition|magnitude|duration|chance|]|hasKillEffect|kill_boostHP_Min|kill_boostHP_Max|kill_boostAP_Min|kill_boostAP_Max|kill_conditionsSource[condition|magnitude|duration|chance|]|]; -{dagger_shadow_priests|items_weapons:17|Dagger of the Shadow priests|0|3|1|15|1||||4|20|20|3|1|2|||||||||||||||||||||||}; -{sword_hard_iron|items_weapons:0|Hardened iron sword|0||0|369|1||||5|15|||2|4|||||||||||||||||||||||}; -{club_fine_wooden|items_weapons:42|Fine wooden club|0||0|245|1||||5|12|||0|7|||||||||||||||||||||||}; -{axe_fine_iron|items_weapons:56|Fine iron axe|0||0|365|1||||6|9|||4|6|||||||||||||||||||||||}; -{longsword_hard_iron|items_weapons:1|Hardened iron longsword|0||0|362|1||||5|14|||2|6|||||||||||||||||||||||}; -{broadsword_fine_iron|items_weapons:5|Fine iron broadsword|0||0|422|1||||7|5|||4|10|||||||||||||||||||||||}; -{dagger_sharp_steel|items_weapons:14|Sharp steel dagger|0||0|1428|1||||4|24|||2|4|||||||||||||||||||||||}; -{sword_balanced_steel|items_weapons:7|Balanced steel sword|0||0|2797|1||||4|32|||3|7|||||||||||||||||||||||}; -{broadsword_fine_steel|items_weapons:6|Fine steel broadsword|0||0|1206|1||||6|20|||4|11|||||||||||||||||||||||}; -{sword_defenders|items_weapons:2|Defender\'s blade|0||0|1711|1||||5|26|||3|7|3||||||||||||||||||||||}; -{sword_villains|items_weapons:16|Villain\'s blade|0||0|1665|1||||4|20|5|3|1|2|||||||||||||||||||||||}; -{sword_challengers|items_weapons:1|Challenger\'s iron sword|0||0|785|1||||5|20|||2|6|||||||||||||||||||||||}; -{sword_fencing|items_weapons:13|Fencing blade|0||0|922|1||||4|14|||2|5|5||||||||||||||||||||||}; -{club_brutal|items_weapons:44|Brutal club|0||0|2522|1||||7|20|5|3|2|21|||||||||||||||||||||||}; -{axe_gutsplitter|items_weapons:58|Gutsplitter|0||0|2733|1||||6|21|||7|17|||||||||||||||||||||||}; -{hammer_skullcrusher|items_weapons:45|Skullcrusher|0||0|3142|1||||7|20|5|3|0|26|||||||||||||||||||||||}; -{shield_crude_wooden|items_armours:0|Crude wooden buckler|1||0|31|1||||||||||1||||||||||||||||||||||}; -{shield_cracked_wooden|items_armours:0|Cracked wooden buckler|1||0|34|1|||||-2|||||2||||||||||||||||||||||}; -{shield_wooden_buckler|items_armours:0|Second-hand wooden buckler|1||0|92|1|||||-2|||||3||||||||||||||||||||||}; -{shield_wooden|items_armours:2|Wooden shield|1||0|514|1|||||-4|||||8||||||||||||||||||||||}; -{shield_wooden_defender|items_armours:2|Wooden defender|1||0|1996|1|||||-8|-5||||14|1|||||||||||||||||||||}; -{hat_hard_leather|items_armours:24|Hardened leather cap|2||0|648|1|||||-3|-1||||8||||||||||||||||||||||}; -{hat_fine_leather|items_armours:24|Fine leather cap|2||0|846|1|||||-3|-2||||9||||||||||||||||||||||}; -{hat_leather_vision|items_armours:24|Leather cap of reduced vision|2||0|971|1|||||-3|-4||||10||||||||||||||||||||||}; -{helm_crude_iron|items_armours:25|Crude iron helmet|2||0|1120|1|||||-3|-5||||11||||||||||||||||||||||}; -{shirt_torn|items_armours:14|Torn shirt|3||0|92|1|||||-2|||||3||||||||||||||||||||||}; -{shirt_weathered|items_armours:14|Weathered shirt|3||0|125|1|||||-1|||||3||||||||||||||||||||||}; -{shirt_patched_cloth|items_armours:14|Patched cloth shirt|3||0|208|1||||||||||4||||||||||||||||||||||}; -{armour_crude_leather|items_armours:16|Crude leather armour|3||0|514|1|||||-4|||||8||||||||||||||||||||||}; -{armour_firm_leather|items_armours:16|Firm leather armour|3||0|417|1|||1|||||||8||||||||||||||||||||||}; -{armour_rigid_leather|items_armours:16|Rigid leather armour|3||0|625|1|||1||-1|||||9||||||||||||||||||||||}; -{armour_rigid_chain|items_armours:17|Rigid chain mail|3||0|4667|1||||1|-5|||||23||||||||||||||||||||||}; -{armour_superior_chain|items_armours:17|Superior chain mail|3||0|5992|1|||||-9|||||23||||||||||||||||||||||}; -{armour_chain_champ|items_armours:17|Champion\'s chain mail|3||0|6808|1|2||||-9|-5||||24||||||||||||||||||||||}; -{armour_leather_villain|items_armours:16|Villain\'s leather armour|3||0|3700|1|||-1||-4|3||||15||||||||||||||||||||||}; -{armour_misfortune|items_armours:15|Leather shirt of misfortune|3||0|2459|1|||||-5|||-1|-1|15||||||||||||||||||||||}; -{gloves_barbrawler|items_armours:35|Bar brawler\'s gloves|4||0|95|1|||||5|||||2||||||||||||||||||||||}; -{gloves_fumbling|items_armours:35|Gloves of fumbling|4||0|-432|1|||||-5|||||1||||||||||||||||||||||}; -{gloves_crude_cloth|items_armours:35|Crude cloth gloves|4||0|31|1||||||||||1||||||||||||||||||||||}; -{gloves_crude_leather|items_armours:35|Crude leather gloves|4||0|180|1|||||-4|||||6||||||||||||||||||||||}; -{gloves_troublemaker|items_armours:36|Troublemaker\'s gloves|4||0|501|1|1||||7|4||||4||||||||||||||||||||||}; -{gloves_guards|items_armours:37|Guard\'s gloves|4||0|636|1|3||||3|||||5||||||||||||||||||||||}; -{gloves_leather_attack|items_armours:35|Leather gloves of attack|4||0|510|1|3||||13|||||-2||||||||||||||||||||||}; -{gloves_woodcutter|items_armours:35|Woodcutter\'s gloves|4||0|426|1|3||||8|||||1||||||||||||||||||||||}; -{boots_crude_leather|items_armours:28|Crude leather boots|5||0|31|1||||||||||1||||||||||||||||||||||}; -{boots_sewn|items_armours:28|Sewn footwear|5||0|73|1||||||||||2||||||||||||||||||||||}; -{boots_coward|items_armours:28|Coward\'s boots|5||0|933|1|||-1|||||||2||||||||||||||||||||||}; -{boots_hard_leather|items_armours:30|Hardened leather boots|5||0|626|1|||1||-4|||||10||||||||||||||||||||||}; -{boots_defender|items_armours:30|Defender\'s boots|5||0|1190|1|2|||||||||9||||||||||||||||||||||}; -{necklace_shield_0|items_jewelry:7|Lesser shielding necklace|6||0|131|1||||||||||3||||||||||||||||||||||}; -{necklace_strike|items_jewelry:6|Necklace of strike|6||0|832|1|5|||||5||||||||||||||||||||||||||}; -{necklace_defender_stone|items_jewelry:7|Defender\'s stone|6|4|0|1325|1|||||||||||1|||||||||||||||||||||}; -{necklace_protector|items_jewelry:7|Necklace of the protector|6|4|0|3207|1|5||||||||||2|||||||||||||||||||||}; -{ring_crude_combat|items_jewelry:0|Crude combat ring|7||0|44|1|||||5|||0|1|||||||||||||||||||||||}; -{ring_crude_surehit|items_jewelry:0|Crude ring of surehit|7||0|52|1|||||7|||||||||||||||||||||||||||}; -{ring_crude_block|items_jewelry:0|Crude ring of block|7||0|73|1||||||||||2||||||||||||||||||||||}; -{ring_rough_life|items_jewelry:0|Rough ring of life force|7||0|100|1|1|||||||||||||||||||||||||||||||}; -{ring_fumbling|items_jewelry:0|Ring of fumbling|7||0|-463|1|||||-5|||||||||||||||||||||||||||}; -{ring_rough_damage|items_jewelry:0|Rough ring of damage|7||0|56|1||||||||0|2|||||||||||||||||||||||}; -{ring_barbrawler|items_jewelry:0|Bar brawler\'s ring|7||0|222|1|||||12|||0|1|||||||||||||||||||||||}; -{ring_dmg_3|items_jewelry:0|Ring of damage +3|7||0|624|1||||||||3|3|||||||||||||||||||||||}; -{ring_life|items_jewelry:0|Ring of life force|7||0|557|1|5|||||||||||||||||||||||||||||||}; -{ring_taverbrawler|items_jewelry:0|Tavern brawler\'s ring|7||0|314|1|||||12|||0|3|||||||||||||||||||||||}; -{ring_defender|items_jewelry:0|Defender\'s ring|7||0|755|1|||||-6|||||11||||||||||||||||||||||}; -{ring_challenger|items_jewelry:0|Challenger\'s ring|7||0|408|1|||||12|||||4||||||||||||||||||||||}; -{ring_dmg_4|items_jewelry:2|Ring of damage +4|7||0|1168|1||||||||4|4|||||||||||||||||||||||}; -{ring_troublemaker|items_jewelry:2|Troublemaker\'s ring|7||0|797|1|||||15|||2|4|||||||||||||||||||||||}; -{ring_guardian|items_jewelry:2|Ring of the guardian|7|4|0|1489|1|||||19|||3|5|||||||||||||||||||||||}; -{ring_block|items_jewelry:2|Ring of block|7|4|0|2192|1||||||||||13||||||||||||||||||||||}; -{ring_backstab|items_jewelry:2|Ring of backstabbing|7||0|1363|1|||||17|7||||3||||||||||||||||||||||}; -{ring_polished_combat|items_jewelry:2|Polished combat ring|7|4|0|1346|1|5||||15|||1|5|||||||||||||||||||||||}; -{ring_villain|items_jewelry:2|Villain\'s ring|7|4|0|2750|1|4||||25|||3|6|||||||||||||||||||||||}; -{ring_polished_backstab|items_jewelry:2|Polished ring of backstabbing|7|4|0|2731|1|||||21|7||4|4|||||||||||||||||||||||}; -{ring_protector|items_jewelry:4|Ring of the protector|7|4|0|3744|1|3||||20|||0|3|14||||||||||||||||||||||}; +{dagger_shadow_priests|items_weapons:17|Dagger of the Shadow priests|dagger|3|1|15|1||||4|20|20|3|1|2|||||||||||||||||||||||}; +{sword_hard_iron|items_weapons:0|Hardened iron sword|lsword||0|369|1||||5|15|||2|4|||||||||||||||||||||||}; +{club_fine_wooden|items_weapons:42|Fine wooden club|club||0|245|1||||5|12|||0|7|||||||||||||||||||||||}; +{axe_fine_iron|items_weapons:56|Fine iron axe|axe||0|365|1||||6|9|||4|6|||||||||||||||||||||||}; +{longsword_hard_iron|items_weapons:1|Hardened iron longsword|lsword||0|362|1||||5|14|||2|6|||||||||||||||||||||||}; +{broadsword_fine_iron|items_weapons:5|Fine iron broadsword|bsword||0|422|1||||7|5|||4|10|||||||||||||||||||||||}; +{dagger_sharp_steel|items_weapons:14|Sharp steel dagger|dagger||0|1428|1||||4|24|||2|4|||||||||||||||||||||||}; +{sword_balanced_steel|items_weapons:7|Balanced steel sword|lsword||0|2797|1||||4|32|||3|7|||||||||||||||||||||||}; +{broadsword_fine_steel|items_weapons:6|Fine steel broadsword|bsword||0|1206|1||||6|20|||4|11|||||||||||||||||||||||}; +{sword_defenders|items_weapons:2|Defender\'s blade|lsword||0|1711|1||||5|26|||3|7|3||||||||||||||||||||||}; +{sword_villains|items_weapons:16|Villain\'s blade|ssword||0|1665|1||||4|20|5|3|1|2|||||||||||||||||||||||}; +{sword_challengers|items_weapons:1|Challenger\'s iron sword|lsword||0|785|1||||5|20|||2|6|||||||||||||||||||||||}; +{sword_fencing|items_weapons:13|Fencing blade|lsword||0|922|1||||4|14|||2|5|5||||||||||||||||||||||}; +{club_brutal|items_weapons:44|Brutal club|mace||0|2522|1||||7|20|5|3|2|21|||||||||||||||||||||||}; +{axe_gutsplitter|items_weapons:58|Gutsplitter|axe2h||0|2733|1||||6|21|||7|17|||||||||||||||||||||||}; +{hammer_skullcrusher|items_weapons:45|Skullcrusher|hammer2h||0|3142|1||||7|20|5|3|0|26|||||||||||||||||||||||}; +{shield_crude_wooden|items_armours:0|Crude wooden buckler|buckler||0|31|1||||||||||1||||||||||||||||||||||}; +{shield_cracked_wooden|items_armours:0|Cracked wooden buckler|buckler||0|34|1|||||-2|||||2||||||||||||||||||||||}; +{shield_wooden_buckler|items_armours:0|Second-hand wooden buckler|buckler||0|92|1|||||-2|||||3||||||||||||||||||||||}; +{shield_wooden|items_armours:2|Wooden shield|shld_wd_li||0|514|1|||||-4|||||8||||||||||||||||||||||}; +{shield_wooden_defender|items_armours:2|Wooden defender|shld_wd_li||0|1996|1|||||-8|-5||||14|1|||||||||||||||||||||}; +{hat_hard_leather|items_armours:24|Hardened leather cap|hd_lthr||0|648|1|||||-3|-1||||8||||||||||||||||||||||}; +{hat_fine_leather|items_armours:24|Fine leather cap|hd_lthr||0|846|1|||||-3|-2||||9||||||||||||||||||||||}; +{hat_leather_vision|items_armours:24|Leather cap of reduced vision|hd_lthr||0|971|1|||||-3|-4||||10||||||||||||||||||||||}; +{helm_crude_iron|items_armours:25|Crude iron helmet|hd_mtl_hv||0|1120|1|||||-3|-5||||11||||||||||||||||||||||}; +{shirt_torn|items_armours:14|Torn shirt|bdy_clth||0|92|1|||||-2|||||3||||||||||||||||||||||}; +{shirt_weathered|items_armours:14|Weathered shirt|bdy_clth||0|125|1|||||-1|||||3||||||||||||||||||||||}; +{shirt_patched_cloth|items_armours:14|Patched cloth shirt|bdy_clth||0|208|1||||||||||4||||||||||||||||||||||}; +{armour_crude_leather|items_armours:16|Crude leather armour|bdy_lthr||0|514|1|||||-4|||||8||||||||||||||||||||||}; +{armour_firm_leather|items_armours:16|Firm leather armour|bdy_lthr||0|417|1|||1|||||||8||||||||||||||||||||||}; +{armour_rigid_leather|items_armours:16|Rigid leather armour|bdy_lthr||0|625|1|||1||-1|||||9||||||||||||||||||||||}; +{armour_rigid_chain|items_armours:17|Rigid chain mail|chmail||0|4667|1||||1|-5|||||23||||||||||||||||||||||}; +{armour_superior_chain|items_armours:17|Superior chain mail|chmail||0|5992|1|||||-9|||||23||||||||||||||||||||||}; +{armour_chain_champ|items_armours:17|Champion\'s chain mail|chmail||0|6808|1|2||||-9|-5||||24||||||||||||||||||||||}; +{armour_leather_villain|items_armours:16|Villain\'s leather armour|bdy_lthr||0|3700|1|||-1||-4|3||||15||||||||||||||||||||||}; +{armour_misfortune|items_armours:15|Leather shirt of misfortune|bdy_lthr||0|2459|1|||||-5|||-1|-1|15||||||||||||||||||||||}; +{gloves_barbrawler|items_armours:35|Bar brawler\'s gloves|hnd_lthr||0|95|1|||||5|||||2||||||||||||||||||||||}; +{gloves_fumbling|items_armours:35|Gloves of fumbling|hnd_lthr||0|-432|1|||||-5|||||1||||||||||||||||||||||}; +{gloves_crude_cloth|items_armours:35|Crude cloth gloves|hnd_cloth||0|31|1||||||||||1||||||||||||||||||||||}; +{gloves_crude_leather|items_armours:35|Crude leather gloves|hnd_lthr||0|180|1|||||-4|||||6||||||||||||||||||||||}; +{gloves_troublemaker|items_armours:36|Troublemaker\'s gloves|hnd_lthr||0|501|1|1||||7|4||||4||||||||||||||||||||||}; +{gloves_guards|items_armours:37|Guard\'s gloves|hnd_mtl_li||0|636|1|3||||3|||||5||||||||||||||||||||||}; +{gloves_leather_attack|items_armours:35|Leather gloves of attack|hnd_lthr||0|510|1|3||||13|||||-2||||||||||||||||||||||}; +{gloves_woodcutter|items_armours:35|Woodcutter\'s gloves|hnd_lthr||0|426|1|3||||8|||||1||||||||||||||||||||||}; +{boots_crude_leather|items_armours:28|Crude leather boots|feet_lthr||0|31|1||||||||||1||||||||||||||||||||||}; +{boots_sewn|items_armours:28|Sewn footwear|feet_clth||0|73|1||||||||||2||||||||||||||||||||||}; +{boots_coward|items_armours:28|Coward\'s boots|feet_lthr||0|933|1|||-1|||||||2||||||||||||||||||||||}; +{boots_hard_leather|items_armours:30|Hardened leather boots|feet_lthr||0|626|1|||1||-4|||||10||||||||||||||||||||||}; +{boots_defender|items_armours:30|Defender\'s boots|feet_mtl_li||0|1190|1|2|||||||||9||||||||||||||||||||||}; +{necklace_shield_0|items_jewelry:7|Lesser shielding necklace|neck||0|131|1||||||||||3||||||||||||||||||||||}; +{necklace_strike|items_jewelry:6|Necklace of strike|neck||0|832|1|5|||||5||||||||||||||||||||||||||}; +{necklace_defender_stone|items_jewelry:7|Defender\'s stone|neck|4|0|1325|1|||||||||||1|||||||||||||||||||||}; +{necklace_protector|items_jewelry:7|Necklace of the protector|neck|4|0|3207|1|5||||||||||2|||||||||||||||||||||}; +{ring_crude_combat|items_jewelry:0|Crude combat ring|ring||0|44|1|||||5|||0|1|||||||||||||||||||||||}; +{ring_crude_surehit|items_jewelry:0|Crude ring of surehit|ring||0|52|1|||||7|||||||||||||||||||||||||||}; +{ring_crude_block|items_jewelry:0|Crude ring of block|ring||0|73|1||||||||||2||||||||||||||||||||||}; +{ring_rough_life|items_jewelry:0|Rough ring of life force|ring||0|100|1|1|||||||||||||||||||||||||||||||}; +{ring_fumbling|items_jewelry:0|Ring of fumbling|ring||0|-463|1|||||-5|||||||||||||||||||||||||||}; +{ring_rough_damage|items_jewelry:0|Rough ring of damage|ring||0|56|1||||||||0|2|||||||||||||||||||||||}; +{ring_barbrawler|items_jewelry:0|Bar brawler\'s ring|ring||0|222|1|||||12|||0|1|||||||||||||||||||||||}; +{ring_dmg_3|items_jewelry:0|Ring of damage +3|ring||0|624|1||||||||3|3|||||||||||||||||||||||}; +{ring_life|items_jewelry:0|Ring of life force|ring||0|557|1|5|||||||||||||||||||||||||||||||}; +{ring_taverbrawler|items_jewelry:0|Tavern brawler\'s ring|ring||0|314|1|||||12|||0|3|||||||||||||||||||||||}; +{ring_defender|items_jewelry:0|Defender\'s ring|ring||0|755|1|||||-6|||||11||||||||||||||||||||||}; +{ring_challenger|items_jewelry:0|Challenger\'s ring|ring||0|408|1|||||12|||||4||||||||||||||||||||||}; +{ring_dmg_4|items_jewelry:2|Ring of damage +4|ring||0|1168|1||||||||4|4|||||||||||||||||||||||}; +{ring_troublemaker|items_jewelry:2|Troublemaker\'s ring|ring||0|797|1|||||15|||2|4|||||||||||||||||||||||}; +{ring_guardian|items_jewelry:2|Ring of the guardian|ring|4|0|1489|1|||||19|||3|5|||||||||||||||||||||||}; +{ring_block|items_jewelry:2|Ring of block|ring|4|0|2192|1||||||||||13||||||||||||||||||||||}; +{ring_backstab|items_jewelry:2|Ring of backstabbing|ring||0|1363|1|||||17|7||||3||||||||||||||||||||||}; +{ring_polished_combat|items_jewelry:2|Polished combat ring|ring|4|0|1346|1|5||||15|||1|5|||||||||||||||||||||||}; +{ring_villain|items_jewelry:2|Villain\'s ring|ring|4|0|2750|1|4||||25|||3|6|||||||||||||||||||||||}; +{ring_polished_backstab|items_jewelry:2|Polished ring of backstabbing|ring|4|0|2731|1|||||21|7||4|4|||||||||||||||||||||||}; +{ring_protector|items_jewelry:4|Ring of the protector|ring|4|0|3744|1|3||||20|||0|3|14||||||||||||||||||||||}; [id|iconID|name|category|displaytype|hasManualPrice|baseMarketCost|hasEquipEffect|equip_boostMaxHP|equip_boostMaxAP|equip_moveCostPenalty|equip_attackCost|equip_attackChance|equip_criticalChance|equip_criticalMultiplier|equip_attackDamage_Min|equip_attackDamage_Max|equip_blockChance|equip_damageResistance|equip_conditions[condition|magnitude|]|hasUseEffect|use_boostHP_Min|use_boostHP_Max|use_boostAP_Min|use_boostAP_Max|use_conditionsSource[condition|magnitude|duration|chance|]|hasHitEffect|hit_boostHP_Min|hit_boostHP_Max|hit_boostAP_Min|hit_boostAP_Max|hit_conditionsSource[condition|magnitude|duration|chance|]|hit_conditionsTarget[condition|magnitude|duration|chance|]|hasKillEffect|kill_boostHP_Min|kill_boostHP_Max|kill_boostAP_Min|kill_boostAP_Max|kill_conditionsSource[condition|magnitude|duration|chance|]|]; -{erinith_book|items_books:0|Erinith\'s book|31|1|1|0|||||||||||||||||||||||||||||||||}; -{hadracor_waspwing|items_misc:52|Giant wasp wing|31|1|1|0|||||||||||||||||||||||||||||||||}; -{tinlyn_bells|items_necklaces_1:10|Tinlyn\'s sheep bell|31|1|1|0|||||||||||||||||||||||||||||||||}; -{tinlyn_sheep_meat|items_consumables:25|Meat from Tinlyn\'s sheep|31|1|1|0|||||||||||||||||||||||||||||||||}; -{rogorn_qitem|items_books:7|Piece of painting|31|1|1|0|||||||||||||||||||||||||||||||||}; -{fg_ironsword|items_weapons:0|Feygard iron sword|0|1|1|0|1||||5|10|||1|5|||||||||||||||||||||||}; -{fg_ironsword_d|items_weapons:0|Degraded Feygard iron sword|0|1|1|0|1||||5|-50|||0|0|||||||||||||||||||||||}; -{buceth_vial|items_consumables:47|Buceth\'s vial of green liquid|31|1|1|0|||||||||||||||||||||||||||||||||}; -{chaosreaper|items_weapons:49|Chaosreaper|0|3|1|339|1||||4|-30|||0|2||||0||||||1||||||{{chaotic_grip|5|3|50|}}|||||||}; -{izthiel_claw|items_misc:47|Izthiel claw|21||1|1||||||||||||||1|1|6|||||||||||||||||}; -{iqhan_pendant|items_necklaces_1:2|Iqhan pendant|6||1|10|1|||||6|||||||||||||||||||||||||||}; -{shadowfang|items_weapons_3:41|Shadowfang|0|3|1|512|1|-20|||4|40|||2|5||||0||||||1|||||{{fatigue_minor|1|3|20|}}||||||||}; -{gloves_life|items_armours_2:1|Gloves of life force|4|3|1|390|1|9||||5|||||3||||||||||||||||||||||}; +{erinith_book|items_books:0|Erinith\'s book|other|1|1|0|||||||||||||||||||||||||||||||||}; +{hadracor_waspwing|items_misc:52|Giant wasp wing|animal|1|1|0|||||||||||||||||||||||||||||||||}; +{tinlyn_bells|items_necklaces_1:10|Tinlyn\'s sheep bell|other|1|1|0|||||||||||||||||||||||||||||||||}; +{tinlyn_sheep_meat|items_consumables:25|Meat from Tinlyn\'s sheep|animal|1|1|0|||||||||||||||||||||||||||||||||}; +{rogorn_qitem|items_books:7|Piece of painting|other|1|1|0|||||||||||||||||||||||||||||||||}; +{fg_ironsword|items_weapons:0|Feygard iron sword|lsword|1|1|0|1||||5|10|||1|5|||||||||||||||||||||||}; +{fg_ironsword_d|items_weapons:0|Degraded Feygard iron sword|lsword|1|1|0|1||||5|-50|||0|0|||||||||||||||||||||||}; +{buceth_vial|items_consumables:47|Buceth\'s vial of green liquid|other|1|1|0|||||||||||||||||||||||||||||||||}; +{chaosreaper|items_weapons:49|Chaosreaper|scepter|3|1|339|1||||4|-30|||0|2||||0||||||1||||||{{chaotic_grip|5|3|50|}}|||||||}; +{izthiel_claw|items_misc:47|Izthiel claw|animal_e||1|1||||||||||||||1|1|6|||||||||||||||||}; +{iqhan_pendant|items_necklaces_1:2|Iqhan pendant|neck||1|10|1|||||6|||||||||||||||||||||||||||}; +{shadowfang|items_weapons_3:41|Shadowfang|ssword|3|1|512|1|-20|||4|40|||2|5||||0||||||1|||||{{fatigue_minor|1|3|20|}}||||||||}; +{gloves_life|items_armours_2:1|Gloves of life force|hnd_lthr|3|1|390|1|9||||5|||||3||||||||||||||||||||||}; [id|iconID|name|category|displaytype|hasManualPrice|baseMarketCost|hasEquipEffect|equip_boostMaxHP|equip_boostMaxAP|equip_moveCostPenalty|equip_attackCost|equip_attackChance|equip_criticalChance|equip_criticalMultiplier|equip_attackDamage_Min|equip_attackDamage_Max|equip_blockChance|equip_damageResistance|equip_conditions[condition|magnitude|]|hasUseEffect|use_boostHP_Min|use_boostHP_Max|use_boostAP_Min|use_boostAP_Max|use_conditionsSource[condition|magnitude|duration|chance|]|hasHitEffect|hit_boostHP_Min|hit_boostHP_Max|hit_boostAP_Min|hit_boostAP_Max|hit_conditionsSource[condition|magnitude|duration|chance|]|hit_conditionsTarget[condition|magnitude|duration|chance|]|hasKillEffect|kill_boostHP_Min|kill_boostHP_Max|kill_boostAP_Min|kill_boostAP_Max|kill_conditionsSource[condition|magnitude|duration|chance|]|]; -{pot_focus_dmg|items_consumables:39|Potion of damage focus|20||1|272||||||||||||||1|||||{{focus_dmg|1|4|100|}}||||||||||||||}; -{pot_focus_dmg2|items_consumables:39|Strong potion of damage focus|20||1|630||||||||||||||1|||||{{focus_dmg|2|4|100|}}||||||||||||||}; -{pot_focus_ac|items_consumables:37|Potion of accuracy focus|20||1|210||||||||||||||1|||||{{focus_ac|1|4|100|}}||||||||||||||}; -{pot_focus_ac2|items_consumables:37|Strong potion of accuracy focus|20||1|618||||||||||||||1|||||{{focus_ac|2|4|100|}}||||||||||||||}; -{pot_scaradon|items_consumables:48|Scaradon extract|20||0|28||||||||||||||1|5|10|||||||||||||||||}; +{pot_focus_dmg|items_consumables:39|Potion of damage focus|pot||1|272||||||||||||||1|||||{{focus_dmg|1|4|100|}}||||||||||||||}; +{pot_focus_dmg2|items_consumables:39|Strong potion of damage focus|pot||1|630||||||||||||||1|||||{{focus_dmg|2|4|100|}}||||||||||||||}; +{pot_focus_ac|items_consumables:37|Potion of accuracy focus|pot||1|210||||||||||||||1|||||{{focus_ac|1|4|100|}}||||||||||||||}; +{pot_focus_ac2|items_consumables:37|Strong potion of accuracy focus|pot||1|618||||||||||||||1|||||{{focus_ac|2|4|100|}}||||||||||||||}; +{pot_scaradon|items_consumables:48|Scaradon extract|pot||0|28||||||||||||||1|5|10|||||||||||||||||}; -{remgard_shield_1|items_armours_3:24|Remgard shield|1||0|2189|1|||||-3|||||9|1|||||||||||||||||||||}; -{remgard_shield_2|items_armours_3:24|Remgard combat shield|1||0|2720|1|||||-3|||||11|1|||||||||||||||||||||}; +{remgard_shield_1|items_armours_3:24|Remgard shield|shld_mtl_li||0|2189|1|||||-3|||||9|1|||||||||||||||||||||}; +{remgard_shield_2|items_armours_3:24|Remgard combat shield|shld_mtl_li||0|2720|1|||||-3|||||11|1|||||||||||||||||||||}; -{helm_combat1|items_armours:25|Combat helm|2||0|455|1|||||5|||||6||||||||||||||||||||||}; -{helm_combat2|items_armours:25|Enhanced combat helmet|2||0|485|1|||||7|||||6||||||||||||||||||||||}; -{helm_combat3|items_armours:26|Remgard combat helmet|2||0|1540|1|1||||-3|-5||||12||||||||||||||||||||||}; -{helm_redeye1|items_armours:24|Cap of red eyes|2||0|1|1|-5|||||||||8||||||||||||||||||||||}; -{helm_redeye2|items_armours:24|Cap of bloody eyes|2||0|1|1|-5|||||||0|1|8||||||||||||||||||||||}; -{helm_defend1|items_armours_3:31|Defender\'s helmet|2||0|1975|1|||||-3|||||8|1|||||||||||||||||||||}; -{helm_protector0|items_armours_3:31|Strange looking helmet|2|1|1|0|1|-9|||||||0|1|5||||||||||||||||||||||}; -{helm_protector|items_armours_3:31|Dark protector|2|3|0|3119|1|-6|||||||0|1|13|1|||||||||||||||||||||}; +{helm_combat1|items_armours:25|Combat helm|hd_mtl_li||0|455|1|||||5|||||6||||||||||||||||||||||}; +{helm_combat2|items_armours:25|Enhanced combat helmet|hd_mtl_li||0|485|1|||||7|||||6||||||||||||||||||||||}; +{helm_combat3|items_armours:26|Remgard combat helmet|hd_mtl_hv||0|1540|1|1||||-3|-5||||12||||||||||||||||||||||}; +{helm_redeye1|items_armours:24|Cap of red eyes|hd_lthr||0|1|1|-5|||||||||8||||||||||||||||||||||}; +{helm_redeye2|items_armours:24|Cap of bloody eyes|hd_lthr||0|1|1|-5|||||||0|1|8||||||||||||||||||||||}; +{helm_defend1|items_armours_3:31|Defender\'s helmet|hd_mtl_hv||0|1975|1|||||-3|||||8|1|||||||||||||||||||||}; +{helm_protector0|items_armours_3:31|Strange looking helmet|hd_mtl_hv|1|1|0|1|-9|||||||0|1|5||||||||||||||||||||||}; +{helm_protector|items_armours_3:31|Dark protector|hd_mtl_hv|3|0|3119|1|-6|||||||0|1|13|1|||||||||||||||||||||}; -{armour_chain_remg|items_armours_3:13|Remgard chain mail|3||0|8927|1|||||-7|||||25||||||||||||||||||||||}; -{armour_cvest1|items_armours_3:5|Combat vest|3||0|1116|1|||||15|||||8||||||||||||||||||||||}; -{armour_cvest2|items_armours_3:5|Remgard combat vest|3||0|1244|1|||||17|||||8||||||||||||||||||||||}; +{armour_chain_remg|items_armours_3:13|Remgard chain mail|chmail||0|8927|1|||||-7|||||25||||||||||||||||||||||}; +{armour_cvest1|items_armours_3:5|Combat vest|bdy_lt||0|1116|1|||||15|||||8||||||||||||||||||||||}; +{armour_cvest2|items_armours_3:5|Remgard combat vest|bdy_lt||0|1244|1|||||17|||||8||||||||||||||||||||||}; -{gloves_leather1|items_armours:38|Hardened leather gloves|4||0|757|1|3||||2|||||6||||||||||||||||||||||}; -{gloves_arulir|items_armours_2:1|Arulir skin gloves|4||0|1793|1|||||-3|||||7|1|||||||||||||||||||||}; -{gloves_combat1|items_armours:36|Combat gloves|4||0|956|1|4||||-5|||||9||||||||||||||||||||||}; -{gloves_combat2|items_armours:36|Enhanced combat gloves|4||0|1204|1|4||||-5|||||10||||||||||||||||||||||}; -{gloves_remgard1|items_armours:37|Remgard fighting gloves|4||0|1205|1|4|||||||||8||||||||||||||||||||||}; -{gloves_remgard2|items_armours:37|Enchanted Remgard gloves|4||0|1326|1|5||||2|||||8||||||||||||||||||||||}; -{gloves_guard1|items_armours:38|Gloves of the guardian|4||1|601|1|||||-9|-5||||14||||||||||||||||||||||}; +{gloves_leather1|items_armours:38|Hardened leather gloves|hnd_lthr||0|757|1|3||||2|||||6||||||||||||||||||||||}; +{gloves_arulir|items_armours_2:1|Arulir skin gloves|hnd_lthr||0|1793|1|||||-3|||||7|1|||||||||||||||||||||}; +{gloves_combat1|items_armours:36|Combat gloves|hnd_lthr||0|956|1|4||||-5|||||9||||||||||||||||||||||}; +{gloves_combat2|items_armours:36|Enhanced combat gloves|hnd_lthr||0|1204|1|4||||-5|||||10||||||||||||||||||||||}; +{gloves_remgard1|items_armours:37|Remgard fighting gloves|hnd_mtl_li||0|1205|1|4|||||||||8||||||||||||||||||||||}; +{gloves_remgard2|items_armours:37|Enchanted Remgard gloves|hnd_mtl_li||0|1326|1|5||||2|||||8||||||||||||||||||||||}; +{gloves_guard1|items_armours:38|Gloves of the guardian|hnd_lthr||1|601|1|||||-9|-5||||14||||||||||||||||||||||}; -{boots_combat1|items_armours:30|Combat boots|5||0|0|1|||||7|||||7||||||||||||||||||||||}; -{boots_combat2|items_armours:30|Enhanced combat boots|5||0|0|1|||||7|||||11||||||||||||||||||||||}; -{boots_remgard1|items_armours:31|Remgard boots|5||0|0|1|4|||||||||12||||||||||||||||||||||}; -{boots_guard1|items_armours:31|Boots of the guardian|5||0|0|1||||||||||7|1|||||||||||||||||||||}; -{boots_brawler|items_armours_3:38|Bar brawler\'s boots|5||0|0|1|2|||||4||||7||||||||||||||||||||||}; +{boots_combat1|items_armours:30|Combat boots|feet_mtl_li||0|0|1|||||7|||||7||||||||||||||||||||||}; +{boots_combat2|items_armours:30|Enhanced combat boots|feet_mtl_li||0|0|1|||||7|||||11||||||||||||||||||||||}; +{boots_remgard1|items_armours:31|Remgard boots|feet_mtl_hv||0|0|1|4|||||||||12||||||||||||||||||||||}; +{boots_guard1|items_armours:31|Boots of the guardian|feet_mtl_hv||0|0|1||||||||||7|1|||||||||||||||||||||}; +{boots_brawler|items_armours_3:38|Bar brawler\'s boots|feet_lthr||0|0|1|2|||||4||||7||||||||||||||||||||||}; -{marrowtaint|items_necklaces_1:9|Marrowtaint|6|3|0|4760|1|5|||-1|9|||||9||||||||||||||||||||||}; -{valugha_gown|items_armours_3:2|Silk robe of Valugha|3|3|0|3109|1|5||-1||30|||||-10|||||||||0|||||||||||||}; -{valugha_hat|items_armours_3:1|Valugha\'s shimmering hat|2|3|1|648|1|3||-1||15|||-2|-2|-5||||||||||||||||||||||}; -{hat_crit|items_armours_3:0|Woodcutter\'s feathered hat|2|3|0|1|1||||||4||||-5||||||||||||||||||||||}; +{marrowtaint|items_necklaces_1:9|Marrowtaint|neck|3|0|4760|1|5|||-1|9|||||9||||||||||||||||||||||}; +{valugha_gown|items_armours_3:2|Silk robe of Valugha|bdy_clth|3|0|3109|1|5||-1||30|||||-10|||||||||0|||||||||||||}; +{valugha_hat|items_armours_3:1|Valugha\'s shimmering hat|hd_cloth|3|1|648|1|3||-1||15|||-2|-2|-5||||||||||||||||||||||}; +{hat_crit|items_armours_3:0|Woodcutter\'s feathered hat|hd_cloth|3|0|1|1||||||4||||-5||||||||||||||||||||||}; [id|iconID|name|category|displaytype|hasManualPrice|baseMarketCost|hasEquipEffect|equip_boostMaxHP|equip_boostMaxAP|equip_moveCostPenalty|equip_attackCost|equip_attackChance|equip_criticalChance|equip_criticalMultiplier|equip_attackDamage_Min|equip_attackDamage_Max|equip_blockChance|equip_damageResistance|equip_conditions[condition|magnitude|]|hasUseEffect|use_boostHP_Min|use_boostHP_Max|use_boostAP_Min|use_boostAP_Max|use_conditionsSource[condition|magnitude|duration|chance|]|hasHitEffect|hit_boostHP_Min|hit_boostHP_Max|hit_boostAP_Min|hit_boostAP_Max|hit_conditionsSource[condition|magnitude|duration|chance|]|hit_conditionsTarget[condition|magnitude|duration|chance|]|hasKillEffect|kill_boostHP_Min|kill_boostHP_Max|kill_boostAP_Min|kill_boostAP_Max|kill_conditionsSource[condition|magnitude|duration|chance|]|]; -{thorin_bone|items_misc:44|Chewed bone|31|1|1|0|||||||||||||||||||||||||||||||||}; -{spider|items_misc:40|Dead spider|31||1|1|||||||||||||||||||||||||||||||||}; -{irdegh|items_misc:49|Irdegh poison gland|31||1|5|||||||||||||||||||||||||||||||||}; -{arulir_skin|items_misc:39|Arulir skin|31||1|4|||||||||||||||||||||||||||||||||}; -{algangror_rat|items_misc:38|Strange looking rat tail|31|1|1|0|||||||||||||||||||||||||||||||||}; -{oegyth|items_misc:35|Oegyth crystal|31|1|1|0|||||||||||||||||||||||||||||||||}; -{toszylae_heart|items_misc:6|Demon heart|31|1|1|0|||||||||||||||||||||||||||||||||}; -{potion_rotworm|items_consumables:63|Kazaul rotworm|31|1|1|0|||||||||||||||||||||||||||||||||}; +{thorin_bone|items_misc:44|Chewed bone|animal|1|1|0|||||||||||||||||||||||||||||||||}; +{spider|items_misc:40|Dead spider|animal||1|1|||||||||||||||||||||||||||||||||}; +{irdegh|items_misc:49|Irdegh poison gland|animal||1|5|||||||||||||||||||||||||||||||||}; +{arulir_skin|items_misc:39|Arulir skin|animal||1|4|||||||||||||||||||||||||||||||||}; +{algangror_rat|items_misc:38|Strange looking rat tail|animal|1|1|0|||||||||||||||||||||||||||||||||}; +{oegyth|items_misc:35|Oegyth crystal|gem|1|1|0|||||||||||||||||||||||||||||||||}; +{toszylae_heart|items_misc:6|Demon heart|other|1|1|0|||||||||||||||||||||||||||||||||}; +{potion_rotworm|items_consumables:63|Kazaul rotworm|other|1|1|0|||||||||||||||||||||||||||||||||}; [id|iconID|name|category|displaytype|hasManualPrice|baseMarketCost|hasEquipEffect|equip_boostMaxHP|equip_boostMaxAP|equip_moveCostPenalty|equip_attackCost|equip_attackChance|equip_criticalChance|equip_criticalMultiplier|equip_attackDamage_Min|equip_attackDamage_Max|equip_blockChance|equip_damageResistance|equip_conditions[condition|magnitude|]|hasUseEffect|use_boostHP_Min|use_boostHP_Max|use_boostAP_Min|use_boostAP_Max|use_conditionsSource[condition|magnitude|duration|chance|]|hasHitEffect|hit_boostHP_Min|hit_boostHP_Max|hit_boostAP_Min|hit_boostAP_Max|hit_conditionsSource[condition|magnitude|duration|chance|]|hit_conditionsTarget[condition|magnitude|duration|chance|]|hasKillEffect|kill_boostHP_Min|kill_boostHP_Max|kill_boostAP_Min|kill_boostAP_Max|kill_conditionsSource[condition|magnitude|duration|chance|]|]; -{lyson_marrow|items_consumables:63|Vial of Lyson marrow extract|31|1|1|0|||||||||||||||||||||||||||||||||}; -{algangror_idol|items_misc_2:220|Small idol|31|1|1|0|||||||||||||||||||||||||||||||||}; -{algangror_ring|items_rings_1:11|Algangror\'s ring|31|1|1|0|||||||||||||||||||||||||||||||||}; -{kaverin_message|items_books:7|Kaverin\'s sealed message|31|1|1|0|||||||||||||||||||||||||||||||||}; -{vacor_map|items_books:9|Map to Vacor\'s old hideout|31|1|1|0|||||||||||||||||||||||||||||||||}; +{lyson_marrow|items_consumables:63|Vial of Lyson marrow extract|other|1|1|0|||||||||||||||||||||||||||||||||}; +{algangror_idol|items_misc_2:220|Small idol|other|1|1|0|||||||||||||||||||||||||||||||||}; +{algangror_ring|items_rings_1:11|Algangror\'s ring|other|1|1|0|||||||||||||||||||||||||||||||||}; +{kaverin_message|items_books:7|Kaverin\'s sealed message|other|1|1|0|||||||||||||||||||||||||||||||||}; +{vacor_map|items_books:9|Map to Vacor\'s old hideout|other|1|1|0|||||||||||||||||||||||||||||||||}; diff --git a/AndorsTrail/res/values/loadresources.xml b/AndorsTrail/res/values/loadresources.xml index b20e5cd..c667634 100644 --- a/AndorsTrail/res/values/loadresources.xml +++ b/AndorsTrail/res/values/loadresources.xml @@ -1,5 +1,9 @@ + + @string/itemcategories_1 + + @string/actorconditions_v069 @string/actorconditions_v069_bwm diff --git a/AndorsTrail/res/values/strings.xml b/AndorsTrail/res/values/strings.xml index 1fcb53d..76a094f 100644 --- a/AndorsTrail/res/values/strings.xml +++ b/AndorsTrail/res/values/strings.xml @@ -505,4 +505,9 @@ About + + + + Equip (offhand) + diff --git a/AndorsTrail/src/com/gpl/rpg/AndorsTrail/activity/HeroinfoActivity_Inventory.java b/AndorsTrail/src/com/gpl/rpg/AndorsTrail/activity/HeroinfoActivity_Inventory.java index 3c0d2c1..5868dbf 100644 --- a/AndorsTrail/src/com/gpl/rpg/AndorsTrail/activity/HeroinfoActivity_Inventory.java +++ b/AndorsTrail/src/com/gpl/rpg/AndorsTrail/activity/HeroinfoActivity_Inventory.java @@ -76,15 +76,15 @@ public final class HeroinfoActivity_Inventory extends Activity { heroinfo_stats_attack = (TextView) findViewById(R.id.heroinfo_stats_attack); heroinfo_stats_defense = (TextView) findViewById(R.id.heroinfo_stats_defense); - setWearSlot(ItemType.CATEGORY_WEAPON, R.id.heroinfo_worn_weapon, R.drawable.equip_weapon); - setWearSlot(ItemType.CATEGORY_SHIELD, R.id.heroinfo_worn_shield, R.drawable.equip_shield); - setWearSlot(ItemType.CATEGORY_WEARABLE_HEAD, R.id.heroinfo_worn_head, R.drawable.equip_head); - setWearSlot(ItemType.CATEGORY_WEARABLE_BODY, R.id.heroinfo_worn_body, R.drawable.equip_body); - setWearSlot(ItemType.CATEGORY_WEARABLE_FEET, R.id.heroinfo_worn_feet, R.drawable.equip_feet); - setWearSlot(ItemType.CATEGORY_WEARABLE_NECK, R.id.heroinfo_worn_neck, R.drawable.equip_neck); - setWearSlot(ItemType.CATEGORY_WEARABLE_HAND, R.id.heroinfo_worn_hand, R.drawable.equip_hand); - setWearSlot(ItemType.CATEGORY_WEARABLE_RING, R.id.heroinfo_worn_ringleft, R.drawable.equip_ring); - setWearSlot(ItemType.CATEGORY_WEARABLE_RING+1, R.id.heroinfo_worn_ringright, R.drawable.equip_ring); + setWearSlot(Inventory.WEARSLOT_WEAPON, R.id.heroinfo_worn_weapon, R.drawable.equip_weapon); + setWearSlot(Inventory.WEARSLOT_SHIELD, R.id.heroinfo_worn_shield, R.drawable.equip_shield); + setWearSlot(Inventory.WEARSLOT_HEAD, R.id.heroinfo_worn_head, R.drawable.equip_head); + setWearSlot(Inventory.WEARSLOT_BODY, R.id.heroinfo_worn_body, R.drawable.equip_body); + setWearSlot(Inventory.WEARSLOT_FEET, R.id.heroinfo_worn_feet, R.drawable.equip_feet); + setWearSlot(Inventory.WEARSLOT_NECK, R.id.heroinfo_worn_neck, R.drawable.equip_neck); + setWearSlot(Inventory.WEARSLOT_HAND, R.id.heroinfo_worn_hand, R.drawable.equip_hand); + setWearSlot(Inventory.WEARSLOT_RING, R.id.heroinfo_worn_ringleft, R.drawable.equip_ring); + setWearSlot(Inventory.WEARSLOT_RING+1, R.id.heroinfo_worn_ringright, R.drawable.equip_ring); } @Override @@ -119,7 +119,8 @@ public final class HeroinfoActivity_Inventory extends Activity { if (actionType == ItemInfoActivity.ITEMACTION_UNEQUIP) { view.itemController.unequipSlot(itemType, data.getExtras().getInt("inventorySlot")); } else if (actionType == ItemInfoActivity.ITEMACTION_EQUIP) { - view.itemController.equipItem(itemType); + int slot = suggestInventorySlot(itemType, player); + view.itemController.equipItem(itemType, slot); } else if (actionType == ItemInfoActivity.ITEMACTION_USE) { view.itemController.useItem(itemType); } @@ -134,6 +135,16 @@ public final class HeroinfoActivity_Inventory extends Activity { } } + private static int suggestInventorySlot(ItemType itemType, Player player) { + int slot = itemType.category.inventorySlot; + if (slot == Inventory.WEARSLOT_RING) { + if (!player.inventory.isEmptySlot(slot)) return slot + 1; + } else if (itemType.isOffhandCapableWeapon()) { + if (player.inventory.isEmptySlot(Inventory.WEARSLOT_SHIELD)) return Inventory.WEARSLOT_SHIELD; + } + return slot; + } + private void dropItem(String itemTypeID, int quantity) { ItemType itemType = world.itemTypes.getItemType(itemTypeID); view.itemController.dropItem(itemType, quantity); @@ -182,7 +193,11 @@ public final class HeroinfoActivity_Inventory extends Activity { menu.findItem(R.id.inv_menu_use).setVisible(true); menu.findItem(R.id.inv_menu_assign).setVisible(true); } - if (type.isEquippable()) menu.findItem(R.id.inv_menu_equip).setVisible(true); + if (type.isEquippable()) { + menu.findItem(R.id.inv_menu_equip).setVisible(true); + if (type.isOffhandCapableWeapon()) menu.findItem(R.id.inv_menu_equip_offhand).setVisible(true); + else if (type.category.inventorySlot == Inventory.WEARSLOT_RING) menu.findItem(R.id.inv_menu_equip_offhand).setVisible(true); + } break; } lastSelectedItem = null; @@ -193,6 +208,7 @@ public final class HeroinfoActivity_Inventory extends Activity { } @Override public boolean onContextItemSelected(MenuItem item) { + ItemType itemType; AdapterContextMenuInfo info = (AdapterContextMenuInfo) item.getMenuInfo(); switch (item.getItemId()) { case R.id.inv_menu_info: @@ -209,7 +225,12 @@ public final class HeroinfoActivity_Inventory extends Activity { } break; case R.id.inv_menu_equip: - view.itemController.equipItem(getSelectedItemType(info)); + itemType = getSelectedItemType(info); + view.itemController.equipItem(itemType, itemType.category.inventorySlot); + break; + case R.id.inv_menu_equip_offhand: + itemType = getSelectedItemType(info); + view.itemController.equipItem(itemType, itemType.category.inventorySlot + 1); break; /*case R.id.inv_menu_unequip: context.controller.unequipItem(this, getSelectedItemType(info)); diff --git a/AndorsTrail/src/com/gpl/rpg/AndorsTrail/activity/ItemInfoActivity.java b/AndorsTrail/src/com/gpl/rpg/AndorsTrail/activity/ItemInfoActivity.java index 96ab201..753816b 100644 --- a/AndorsTrail/src/com/gpl/rpg/AndorsTrail/activity/ItemInfoActivity.java +++ b/AndorsTrail/src/com/gpl/rpg/AndorsTrail/activity/ItemInfoActivity.java @@ -51,7 +51,7 @@ public final class ItemInfoActivity extends Activity { tv.setText(itemType.name); world.tileManager.setImageViewTileForSingleItemType(tv, itemType, getResources()); tv = (TextView) findViewById(R.id.iteminfo_category); - tv.setText(getCategoryNameRes(itemType.category)); + tv.setText(itemType.category.displayName); ((ItemEffectsView) findViewById(R.id.iteminfo_effects)).update( itemType.effects_equip, @@ -101,32 +101,4 @@ public final class ItemInfoActivity extends Activity { public static String getDisplayTypeString(Resources res, ItemType itemType) { return res.getStringArray(R.array.iteminfo_displaytypes)[itemType.displayType]; } - - private static int getCategoryNameRes(int itemCategory) { - switch (itemCategory) { - case ItemType.CATEGORY_MONEY: - return R.string.itemcategory_money; - case ItemType.CATEGORY_WEAPON: - return R.string.itemcategory_weapon; - case ItemType.CATEGORY_SHIELD: - return R.string.itemcategory_shield; - case ItemType.CATEGORY_WEARABLE_HEAD: - return R.string.itemcategory_wearable_head; - case ItemType.CATEGORY_WEARABLE_HAND: - return R.string.itemcategory_wearable_hand; - case ItemType.CATEGORY_WEARABLE_FEET: - return R.string.itemcategory_wearable_feet; - case ItemType.CATEGORY_WEARABLE_BODY: - return R.string.itemcategory_wearable_body; - case ItemType.CATEGORY_WEARABLE_NECK: - return R.string.itemcategory_wearable_neck; - case ItemType.CATEGORY_WEARABLE_RING: - return R.string.itemcategory_wearable_ring; - case ItemType.CATEGORY_POTION: - return R.string.itemcategory_potion; - default: - return R.string.itemcategory_other; - } - } - } diff --git a/AndorsTrail/src/com/gpl/rpg/AndorsTrail/context/WorldContext.java b/AndorsTrail/src/com/gpl/rpg/AndorsTrail/context/WorldContext.java index 160d5e3..ce7aacc 100644 --- a/AndorsTrail/src/com/gpl/rpg/AndorsTrail/context/WorldContext.java +++ b/AndorsTrail/src/com/gpl/rpg/AndorsTrail/context/WorldContext.java @@ -7,6 +7,7 @@ import com.gpl.rpg.AndorsTrail.model.ability.ActorConditionTypeCollection; import com.gpl.rpg.AndorsTrail.model.ability.SkillCollection; import com.gpl.rpg.AndorsTrail.model.actor.MonsterTypeCollection; import com.gpl.rpg.AndorsTrail.model.item.DropListCollection; +import com.gpl.rpg.AndorsTrail.model.item.ItemCategoryCollection; import com.gpl.rpg.AndorsTrail.model.item.ItemTypeCollection; import com.gpl.rpg.AndorsTrail.model.map.MapCollection; import com.gpl.rpg.AndorsTrail.model.quest.QuestCollection; @@ -16,6 +17,7 @@ public class WorldContext { //Objectcollections public final ConversationLoader conversationLoader; public final ItemTypeCollection itemTypes; + public final ItemCategoryCollection itemCategories; public final MonsterTypeCollection monsterTypes; public final VisualEffectCollection visualEffectTypes; public final DropListCollection dropLists; @@ -33,6 +35,7 @@ public class WorldContext { public WorldContext() { this.conversationLoader = new ConversationLoader(); this.itemTypes = new ItemTypeCollection(); + this.itemCategories = new ItemCategoryCollection(); this.monsterTypes = new MonsterTypeCollection(); this.visualEffectTypes = new VisualEffectCollection(); this.dropLists = new DropListCollection(); @@ -45,6 +48,7 @@ public class WorldContext { public WorldContext(WorldContext copy) { this.conversationLoader = copy.conversationLoader; this.itemTypes = copy.itemTypes; + this.itemCategories = copy.itemCategories; this.monsterTypes = copy.monsterTypes; this.visualEffectTypes = copy.visualEffectTypes; this.dropLists = copy.dropLists; diff --git a/AndorsTrail/src/com/gpl/rpg/AndorsTrail/controller/ItemController.java b/AndorsTrail/src/com/gpl/rpg/AndorsTrail/controller/ItemController.java index 8e1cea1..7681e5e 100644 --- a/AndorsTrail/src/com/gpl/rpg/AndorsTrail/controller/ItemController.java +++ b/AndorsTrail/src/com/gpl/rpg/AndorsTrail/controller/ItemController.java @@ -37,30 +37,23 @@ public final class ItemController { model.currentMap.itemDropped(type, quantity, model.player.position); } - public void equipItem(ItemType type) { + public void equipItem(ItemType type, int slot) { if (!type.isEquippable()) return; final Player player = model.player; if (model.uiSelections.isInCombat) { if (!player.useAPs(player.reequipCost)) return; } - int slot = type.category; - if (slot == ItemType.CATEGORY_WEARABLE_RING) { - if (!player.inventory.isEmptySlot(slot)) { - ++slot; - } - } - if (!player.inventory.removeItem(type.id, 1)) return; - if (!player.inventory.isEmptySlot(slot)) { - ItemType removedItemType = player.inventory.wear[slot]; - player.inventory.addItem(removedItemType); - player.inventory.wear[slot] = null; - ActorStatsController.removeConditionsFromUnequippedItem(player, removedItemType); + unequipSlot(player, slot); + if (type.isTwohandWeapon()) unequipSlot(player, Inventory.WEARSLOT_SHIELD); + else if (slot == Inventory.WEARSLOT_SHIELD) { + ItemType currentWeapon = player.inventory.wear[Inventory.WEARSLOT_WEAPON]; + if (currentWeapon != null && currentWeapon.isTwohandWeapon()) unequipSlot(player, Inventory.WEARSLOT_WEAPON); } + player.inventory.wear[slot] = type; - ActorStatsController.addConditionsFromEquippedItem(player, type); ActorStatsController.recalculatePlayerCombatTraits(player); } @@ -74,12 +67,17 @@ public final class ItemController { if (!player.useAPs(player.reequipCost)) return; } - player.inventory.addItem(player.inventory.wear[slot]); - player.inventory.wear[slot] = null; - - ActorStatsController.removeConditionsFromUnequippedItem(player, type); + unequipSlot(player, slot); ActorStatsController.recalculatePlayerCombatTraits(player); } + + private static void unequipSlot(Player player, int slot) { + ItemType removedItemType = player.inventory.wear[slot]; + if (removedItemType == null) return; + player.inventory.addItem(removedItemType); + player.inventory.wear[slot] = null; + ActorStatsController.removeConditionsFromUnequippedItem(player, removedItemType); + } public void useItem(ItemType type) { if (!type.isUsable()) return; @@ -103,7 +101,7 @@ public final class ItemController { } public static void applyInventoryEffects(Player player) { - ItemType weapon = player.inventory.wear[ItemType.CATEGORY_WEAPON]; + ItemType weapon = player.inventory.wear[Inventory.WEARSLOT_WEAPON]; if (weapon != null) { if (weapon.effects_equip != null) { CombatTraits weaponTraits = weapon.effects_equip.combatProficiency; @@ -118,7 +116,7 @@ public final class ItemController { ItemType type = player.inventory.wear[i]; if (type == null) continue; - final boolean isWeapon = (i == ItemType.CATEGORY_WEAPON); + final boolean isWeapon = type.isWeapon(); ActorStatsController.applyAbilityEffects(player, type.effects_equip, isWeapon, 1); } } diff --git a/AndorsTrail/src/com/gpl/rpg/AndorsTrail/model/item/Inventory.java b/AndorsTrail/src/com/gpl/rpg/AndorsTrail/model/item/Inventory.java index f019374..54925a1 100644 --- a/AndorsTrail/src/com/gpl/rpg/AndorsTrail/model/item/Inventory.java +++ b/AndorsTrail/src/com/gpl/rpg/AndorsTrail/model/item/Inventory.java @@ -8,8 +8,17 @@ import com.gpl.rpg.AndorsTrail.context.WorldContext; public final class Inventory extends ItemContainer { + public static final int WEARSLOT_WEAPON = 0; + public static final int WEARSLOT_SHIELD = 1; + public static final int WEARSLOT_HEAD = 2; + public static final int WEARSLOT_BODY = 3; + public static final int WEARSLOT_HAND = 4; + public static final int WEARSLOT_FEET = 5; + public static final int WEARSLOT_NECK = 6; + public static final int WEARSLOT_RING = 7; + public int gold = 0; - public static final int NUM_WORN_SLOTS = ItemType.MAX_CATEGORY_WEAR+1+1; // +1 for 0 based index. +1 for left+right rings. + public static final int NUM_WORN_SLOTS = WEARSLOT_RING+1+1; // +1 for 0 based index. +1 for left+right rings. public static final int NUM_QUICK_SLOTS = 3; public final ItemType[] wear = new ItemType[NUM_WORN_SLOTS]; public final ItemType[] quickitem = new ItemType[NUM_QUICK_SLOTS]; diff --git a/AndorsTrail/src/com/gpl/rpg/AndorsTrail/model/item/ItemCategory.java b/AndorsTrail/src/com/gpl/rpg/AndorsTrail/model/item/ItemCategory.java new file mode 100644 index 0000000..d519c52 --- /dev/null +++ b/AndorsTrail/src/com/gpl/rpg/AndorsTrail/model/item/ItemCategory.java @@ -0,0 +1,40 @@ +package com.gpl.rpg.AndorsTrail.model.item; + +public final class ItemCategory { + private static final int SIZE_NONE = 0; + private static final int SIZE_LIGHT = 1; + private static final int SIZE_STD = 2; + private static final int SIZE_LARGE = 3; + + public final String id; + public final String displayName; + public final int inventorySlot; + private final int actionType; + private final int size; + + public ItemCategory(String id, String displayName, int actionType, int inventorySlot, int size) { + this.id = id; + this.displayName = displayName; + this.inventorySlot = inventorySlot; + this.size = size; + this.actionType = actionType; + } + + private static final int ACTIONTYPE_NONE = 0; + private static final int ACTIONTYPE_USE = 1; + private static final int ACTIONTYPE_EQUIP = 2; + public boolean isEquippable() { return actionType == ACTIONTYPE_EQUIP; } + public boolean isUsable() { return actionType == ACTIONTYPE_USE; } + public boolean isWeapon() { return inventorySlot == Inventory.WEARSLOT_WEAPON; } + public boolean isTwohandWeapon() { + if (!isWeapon()) return false; + else if (size == SIZE_LARGE) return true; + else return false; + } + public boolean isOffhandCapableWeapon() { + if (!isWeapon()) return false; + else if (size == SIZE_LIGHT) return true; + else if (size == SIZE_STD) return true; + else return false; + } +} diff --git a/AndorsTrail/src/com/gpl/rpg/AndorsTrail/model/item/ItemCategoryCollection.java b/AndorsTrail/src/com/gpl/rpg/AndorsTrail/model/item/ItemCategoryCollection.java new file mode 100644 index 0000000..38d67d1 --- /dev/null +++ b/AndorsTrail/src/com/gpl/rpg/AndorsTrail/model/item/ItemCategoryCollection.java @@ -0,0 +1,30 @@ +package com.gpl.rpg.AndorsTrail.model.item; + +import java.util.HashMap; + +import com.gpl.rpg.AndorsTrail.AndorsTrailApplication; +import com.gpl.rpg.AndorsTrail.resource.parsers.ItemCategoryParser; +import com.gpl.rpg.AndorsTrail.util.L; + +public final class ItemCategoryCollection { + private final HashMap itemCategories = new HashMap(); + + public ItemCategory getItemCategory(String id) { + if (AndorsTrailApplication.DEVELOPMENT_VALIDATEDATA) { + if (!itemCategories.containsKey(id)) { + L.log("WARNING: Cannot find ItemCategory for id \"" + id + "\"."); + } + } + return itemCategories.get(id); + } + + public void initialize(final ItemCategoryParser parser, String input) { + parser.parseRows(input, itemCategories); + } + + // Unit test method. Not part of the game logic. + public HashMap UNITTEST_getAllItemCategories() { + return itemCategories; + } +} + \ No newline at end of file diff --git a/AndorsTrail/src/com/gpl/rpg/AndorsTrail/model/item/ItemType.java b/AndorsTrail/src/com/gpl/rpg/AndorsTrail/model/item/ItemType.java index 3527ce1..bbae17c 100644 --- a/AndorsTrail/src/com/gpl/rpg/AndorsTrail/model/item/ItemType.java +++ b/AndorsTrail/src/com/gpl/rpg/AndorsTrail/model/item/ItemType.java @@ -4,26 +4,6 @@ import com.gpl.rpg.AndorsTrail.model.CombatTraits; import com.gpl.rpg.AndorsTrail.resource.tiles.TileManager; public final class ItemType { - public static final int CATEGORY_WEAPON = 0; - public static final int CATEGORY_SHIELD = 1; - public static final int CATEGORY_WEARABLE_HEAD = 2; - public static final int CATEGORY_WEARABLE_BODY = 3; - public static final int CATEGORY_WEARABLE_HAND = 4; - public static final int CATEGORY_WEARABLE_FEET = 5; - //public static final int CATEGORY_WEARABLE_CAPE = 6; - //public static final int CATEGORY_WEARABLE_LEGS = 7; - public static final int CATEGORY_WEARABLE_NECK = 6; - public static final int CATEGORY_WEARABLE_RING = 7; - public static final int MAX_CATEGORY_WEAR = CATEGORY_WEARABLE_RING; - public static final int CATEGORY_POTION = 20; - public static final int CATEGORY_FOOD = 21; - public static final int MAX_CATEGORY_USE = CATEGORY_FOOD; - public static final int CATEGORY_MONEY = 30; - public static final int CATEGORY_OTHER = 31; - - public static final int ACTIONTYPE_NONE = 0; - public static final int ACTIONTYPE_USE = 1; - public static final int ACTIONTYPE_EQUIP = 2; public static final int DISPLAYTYPE_ORDINARY = 0; public static final int DISPLAYTYPE_QUEST = 1; @@ -34,8 +14,7 @@ public final class ItemType { public final String id; public final int iconID; public final String name; - public final int category; - public final int actionType; + public final ItemCategory category; public final boolean hasManualPrice; public final int baseMarketCost; public final int fixedBaseMarketCost; @@ -46,12 +25,11 @@ public final class ItemType { public final ItemTraits_OnUse effects_hit; public final ItemTraits_OnUse effects_kill; - public ItemType(String id, int iconID, String name, int category, int displayType, boolean hasManualPrice, int fixedBaseMarketCost, ItemTraits_OnEquip effects_equip, ItemTraits_OnUse effects_use, ItemTraits_OnUse effects_hit, ItemTraits_OnUse effects_kill) { + public ItemType(String id, int iconID, String name, ItemCategory category, int displayType, boolean hasManualPrice, int fixedBaseMarketCost, ItemTraits_OnEquip effects_equip, ItemTraits_OnUse effects_use, ItemTraits_OnUse effects_hit, ItemTraits_OnUse effects_kill) { this.id = id; this.iconID = iconID; this.name = name; this.category = category; - this.actionType = getActionType(category); this.displayType = displayType; this.hasManualPrice = hasManualPrice; this.baseMarketCost = hasManualPrice ? fixedBaseMarketCost : calculateCost(category, effects_equip, effects_use); @@ -62,17 +40,13 @@ public final class ItemType { this.effects_kill = effects_kill; } - private static int getActionType(int category) { - if (category <= MAX_CATEGORY_WEAR) return ACTIONTYPE_EQUIP; - else if (category <= MAX_CATEGORY_USE) return ACTIONTYPE_USE; - else return ACTIONTYPE_NONE; - } - public boolean isEquippable() { return actionType == ACTIONTYPE_EQUIP; } - public boolean isUsable() { return actionType == ACTIONTYPE_USE; } + public boolean isEquippable() { return category.isEquippable(); } + public boolean isUsable() { return category.isUsable(); } public boolean isQuestItem() { return displayType == DISPLAYTYPE_QUEST; } public boolean isOrdinaryItem() { return displayType == DISPLAYTYPE_ORDINARY; } - public boolean isWeapon() { return isWeaponCategory(category); } - public static boolean isWeaponCategory(int category) { return category == CATEGORY_WEAPON; } + public boolean isWeapon() { return category.isWeapon(); } + public boolean isTwohandWeapon() { return category.isTwohandWeapon(); } + public boolean isOffhandCapableWeapon() { return category.isOffhandCapableWeapon(); } public boolean isSellable() { if (isQuestItem()) return false; if (baseMarketCost == 0) return false; @@ -164,8 +138,8 @@ public final class ItemType { } public int calculateCost() { return calculateCost(category, effects_equip, effects_use); } - public static int calculateCost(int category, ItemTraits_OnEquip effects_equip, ItemTraits_OnUse effects_use) { - final int costEquipStats = effects_equip == null ? 0 : effects_equip.calculateCost(isWeaponCategory(category)); + public static int calculateCost(ItemCategory category, ItemTraits_OnEquip effects_equip, ItemTraits_OnUse effects_use) { + final int costEquipStats = effects_equip == null ? 0 : effects_equip.calculateCost(category.isWeapon()); final int costUse = effects_use == null ? 0 : effects_use.calculateCost(); //final int costHit = effects_hit == null ? 0 : effects_hit.calculateCost(); //final int costKill = effects_kill == null ? 0 : effects_kill.calculateCost(); diff --git a/AndorsTrail/src/com/gpl/rpg/AndorsTrail/resource/ResourceLoader.java b/AndorsTrail/src/com/gpl/rpg/AndorsTrail/resource/ResourceLoader.java index a96d825..0369548 100644 --- a/AndorsTrail/src/com/gpl/rpg/AndorsTrail/resource/ResourceLoader.java +++ b/AndorsTrail/src/com/gpl/rpg/AndorsTrail/resource/ResourceLoader.java @@ -10,6 +10,7 @@ import com.gpl.rpg.AndorsTrail.model.map.TMXMapTranslator; import com.gpl.rpg.AndorsTrail.resource.parsers.ActorConditionsTypeParser; import com.gpl.rpg.AndorsTrail.resource.parsers.ConversationListParser; import com.gpl.rpg.AndorsTrail.resource.parsers.DropListParser; +import com.gpl.rpg.AndorsTrail.resource.parsers.ItemCategoryParser; import com.gpl.rpg.AndorsTrail.resource.parsers.ItemTypeParser; import com.gpl.rpg.AndorsTrail.resource.parsers.MonsterTypeParser; import com.gpl.rpg.AndorsTrail.resource.parsers.QuestParser; @@ -21,6 +22,7 @@ import android.content.res.TypedArray; public final class ResourceLoader { + private static final int itemCategoriesResourceId = R.array.loadresource_itemcategories; private static final int actorConditionsResourceId = R.array.loadresource_actorconditions; private static final int itemsResourceId = AndorsTrailApplication.DEVELOPMENT_DEBUGRESOURCES ? R.array.loadresource_items_debug : R.array.loadresource_items; private static final int droplistsResourceId = AndorsTrailApplication.DEVELOPMENT_DEBUGRESOURCES ? R.array.loadresource_droplists_debug : R.array.loadresource_droplists; @@ -74,6 +76,15 @@ public final class ResourceLoader { world.skills.initialize(); if (AndorsTrailApplication.DEVELOPMENT_DEBUGMESSAGES) timingCheckpoint("SkillLoader"); + // ======================================================================== + // Load item categories + final ItemCategoryParser itemCategoryParser = new ItemCategoryParser(); + final TypedArray categoriesToLoad = r.obtainTypedArray(itemCategoriesResourceId); + for (int i = 0; i < categoriesToLoad.length(); ++i) { + world.itemCategories.initialize(itemCategoryParser, categoriesToLoad.getString(i)); + } + if (AndorsTrailApplication.DEVELOPMENT_DEBUGMESSAGES) timingCheckpoint("ItemCategoryParser"); + // ======================================================================== // Load condition types final ActorConditionsTypeParser actorConditionsTypeParser = new ActorConditionsTypeParser(loader); @@ -91,7 +102,7 @@ public final class ResourceLoader { // ======================================================================== // Load items - final ItemTypeParser itemTypeParser = new ItemTypeParser(loader, world.actorConditionsTypes); + final ItemTypeParser itemTypeParser = new ItemTypeParser(loader, world.actorConditionsTypes, world.itemCategories); final TypedArray itemsToLoad = r.obtainTypedArray(itemsResourceId); for (int i = 0; i < itemsToLoad.length(); ++i) { world.itemTypes.initialize(itemTypeParser, itemsToLoad.getString(i)); diff --git a/AndorsTrail/src/com/gpl/rpg/AndorsTrail/resource/parsers/ItemCategoryParser.java b/AndorsTrail/src/com/gpl/rpg/AndorsTrail/resource/parsers/ItemCategoryParser.java new file mode 100644 index 0000000..5a952dc --- /dev/null +++ b/AndorsTrail/src/com/gpl/rpg/AndorsTrail/resource/parsers/ItemCategoryParser.java @@ -0,0 +1,25 @@ +package com.gpl.rpg.AndorsTrail.resource.parsers; + +import com.gpl.rpg.AndorsTrail.model.item.ItemCategory; +import com.gpl.rpg.AndorsTrail.resource.ResourceFileTokenizer.ResourceParserFor; +import com.gpl.rpg.AndorsTrail.util.Pair; + +public final class ItemCategoryParser extends ResourceParserFor { + + public ItemCategoryParser() { + super(5); + } + + @Override + public Pair parseRow(String[] parts) { + String id = parts[0]; + final ItemCategory itemType = new ItemCategory( + id + , parts[1] // displayName + , ResourceParserUtils.parseInt(parts[2], 0) // actionType + , ResourceParserUtils.parseInt(parts[3], -1) // inventorySlot + , ResourceParserUtils.parseInt(parts[4], 0) // size + ); + return new Pair(id, itemType); + } +} diff --git a/AndorsTrail/src/com/gpl/rpg/AndorsTrail/resource/parsers/ItemTypeParser.java b/AndorsTrail/src/com/gpl/rpg/AndorsTrail/resource/parsers/ItemTypeParser.java index 06e09da..c25728e 100644 --- a/AndorsTrail/src/com/gpl/rpg/AndorsTrail/resource/parsers/ItemTypeParser.java +++ b/AndorsTrail/src/com/gpl/rpg/AndorsTrail/resource/parsers/ItemTypeParser.java @@ -1,6 +1,7 @@ package com.gpl.rpg.AndorsTrail.resource.parsers; import com.gpl.rpg.AndorsTrail.model.ability.ActorConditionTypeCollection; +import com.gpl.rpg.AndorsTrail.model.item.ItemCategoryCollection; import com.gpl.rpg.AndorsTrail.model.item.ItemTraits_OnEquip; import com.gpl.rpg.AndorsTrail.model.item.ItemTraits_OnUse; import com.gpl.rpg.AndorsTrail.model.item.ItemType; @@ -12,11 +13,13 @@ public final class ItemTypeParser extends ResourceParserFor { private final DynamicTileLoader tileLoader; private final ItemTraitsParser itemTraitsParser; + private final ItemCategoryCollection itemCategories; - public ItemTypeParser(DynamicTileLoader tileLoader, ActorConditionTypeCollection actorConditionsTypes) { + public ItemTypeParser(DynamicTileLoader tileLoader, ActorConditionTypeCollection actorConditionsTypes, ItemCategoryCollection itemCategories) { super(39); this.tileLoader = tileLoader; this.itemTraitsParser = new ItemTraitsParser(actorConditionsTypes); + this.itemCategories = itemCategories; } @Override @@ -34,8 +37,8 @@ public final class ItemTypeParser extends ResourceParserFor { id , ResourceParserUtils.parseImageID(tileLoader, parts[1]) , itemTypeName - , Integer.parseInt(parts[3]) // category - , ResourceParserUtils.parseInt(parts[4], ItemType.DISPLAYTYPE_ORDINARY) // Displaytype + , itemCategories.getItemCategory(parts[3]) // category + , ResourceParserUtils.parseInt(parts[4], ItemType.DISPLAYTYPE_ORDINARY) // Displaytype , hasManualPrice // hasManualPrice , baseMarketCost // Base market cost , equipEffect diff --git a/AndorsTrail/src/com/gpl/rpg/AndorsTrail/resource/tiles/TileCollection.java b/AndorsTrail/src/com/gpl/rpg/AndorsTrail/resource/tiles/TileCollection.java index de3563e..a929377 100644 --- a/AndorsTrail/src/com/gpl/rpg/AndorsTrail/resource/tiles/TileCollection.java +++ b/AndorsTrail/src/com/gpl/rpg/AndorsTrail/resource/tiles/TileCollection.java @@ -1,6 +1,8 @@ package com.gpl.rpg.AndorsTrail.resource.tiles; import android.graphics.Bitmap; +import android.graphics.Canvas; +import android.graphics.Paint; public class TileCollection { public final Bitmap[] bitmaps; @@ -16,4 +18,8 @@ public class TileCollection { public void setBitmap(int tileID, Bitmap bitmap) { bitmaps[tileID] = bitmap; } + + public void drawTile(Canvas canvas, int tile, int px, int py, Paint mPaint) { + canvas.drawBitmap(bitmaps[tile], px, py, mPaint); + } } diff --git a/AndorsTrail/src/com/gpl/rpg/AndorsTrail/view/MainView.java b/AndorsTrail/src/com/gpl/rpg/AndorsTrail/view/MainView.java index 87e8941..c575833 100644 --- a/AndorsTrail/src/com/gpl/rpg/AndorsTrail/view/MainView.java +++ b/AndorsTrail/src/com/gpl/rpg/AndorsTrail/view/MainView.java @@ -307,7 +307,7 @@ public final class MainView extends SurfaceView implements SurfaceHolder.Callbac for (int x = 0; x < area.size.width; ++x, ++mx, px += tileSize) { final int tile = layer.tiles[mx][my]; if (tile != 0) { - canvas.drawBitmap(tiles.bitmaps[tile], px, py, mPaint); + tiles.drawTile(canvas, tile, px, py, mPaint); } } } @@ -326,10 +326,7 @@ public final class MainView extends SurfaceView implements SurfaceHolder.Callbac y -= mapViewArea.topLeft.y; if ( (x >= 0 && x < mapViewArea.size.width) && (y >= 0 && y < mapViewArea.size.height)) { - canvas.drawBitmap(tiles.bitmaps[tile], - x * tileSize, - y * tileSize, - mPaint); + tiles.drawTile(canvas, tile, x * tileSize, y * tileSize, mPaint); } }