Browse Source

Migrate item data to txtdata/

pull/6809/head
Gleb Mazovetskiy 2 years ago
parent
commit
f566359e4f
  1. 4
      CMake/Assets.cmake
  2. 87
      Packaging/resources/assets/txtdata/items/item_prefixes.tsv
  3. 99
      Packaging/resources/assets/txtdata/items/item_suffixes.tsv
  4. 169
      Packaging/resources/assets/txtdata/items/itemdat.tsv
  5. 111
      Packaging/resources/assets/txtdata/items/unique_itemdat.tsv
  6. 1
      Source/.clang-format
  7. 1
      Source/diablo.cpp
  8. 1390
      Source/itemdat.cpp
  9. 19
      Source/itemdat.h
  10. 12
      Source/items.cpp
  11. 62
      Source/spelldat.cpp
  12. 5
      Source/spelldat.h
  13. 537
      Source/translation_dummy.cpp
  14. 1
      test/.clang-format
  15. 5
      test/inv_test.cpp
  16. 12
      test/pack_test.cpp
  17. 1
      test/player_test.cpp
  18. 1
      test/timedemo_test.cpp
  19. 1
      test/writehero_test.cpp
  20. 38
      tools/extract_translation_data.py

4
CMake/Assets.cmake

@ -155,6 +155,10 @@ set(devilutionx_assets
txtdata/classes/rogue/attributes.tsv
txtdata/classes/sorcerer/attributes.tsv
txtdata/classes/warrior/attributes.tsv
txtdata/items/item_prefixes.tsv
txtdata/items/item_suffixes.tsv
txtdata/items/itemdat.tsv
txtdata/items/unique_itemdat.tsv
txtdata/monsters/monstdat.tsv
txtdata/monsters/unique_monstdat.tsv
ui_art/diablo.pal

87
Packaging/resources/assets/txtdata/items/item_prefixes.tsv

@ -0,0 +1,87 @@
name power.type power.param1 power.param2 minLevel itemTypes alignment doubleChance useful minVal maxVal multVal
Tin TOHIT_CURSE 6 10 3 Weapon,Bow,Misc Any true false 0 0 -3
Brass TOHIT_CURSE 1 5 1 Weapon,Bow,Misc Any true false 0 0 -2
Bronze TOHIT 1 5 1 Weapon,Bow,Misc Any true true 100 500 2
Iron TOHIT 6 10 4 Weapon,Bow,Misc Any true true 600 1000 3
Steel TOHIT 11 15 6 Weapon,Bow,Misc Any true true 1100 1500 5
Silver TOHIT 16 20 9 Weapon,Bow,Misc Good true true 1600 2000 7
Gold TOHIT 21 30 12 Weapon,Bow,Misc Good true true 2100 3000 9
Platinum TOHIT 31 40 16 Weapon,Bow Good true true 3100 4000 11
Mithril TOHIT 41 60 20 Weapon,Bow Good true true 4100 6000 13
Meteoric TOHIT 61 80 23 Weapon,Bow Any true true 6100 10000 15
Weird TOHIT 81 100 35 Weapon,Bow Any true true 10100 14000 17
Strange TOHIT 101 150 60 Weapon,Bow Any true true 14100 20000 20
Useless DAMP_CURSE 100 100 5 Weapon,Staff,Bow Any true false 0 0 -8
Bent DAMP_CURSE 50 75 3 Weapon,Staff,Bow Any true false 0 0 -4
Weak DAMP_CURSE 25 45 1 Weapon,Staff,Bow Any true false 0 0 -3
Jagged DAMP 20 35 4 Weapon,Staff,Bow Any true true 250 450 3
Deadly DAMP 36 50 6 Weapon,Staff,Bow Any true true 500 700 4
Heavy DAMP 51 65 9 Weapon,Staff,Bow Any true true 750 950 5
Vicious DAMP 66 80 12 Weapon,Staff,Bow Evil true true 1000 1450 8
Brutal DAMP 81 95 16 Weapon,Staff,Bow Any true true 1500 1950 10
Massive DAMP 96 110 20 Weapon,Staff,Bow Any true true 2000 2450 13
Savage DAMP 111 125 23 Weapon,Bow Any true true 2500 3000 15
Ruthless DAMP 126 150 35 Weapon,Bow Any true true 10100 15000 17
Merciless DAMP 151 175 60 Weapon,Bow Any true true 15000 20000 20
Clumsy TOHIT_DAMP_CURSE 50 75 5 Weapon,Staff,Bow Any true false 0 0 -7
Dull TOHIT_DAMP_CURSE 25 45 1 Weapon,Staff,Bow Any true false 0 0 -5
Sharp TOHIT_DAMP 20 35 1 Weapon,Staff,Bow Any true false 350 950 5
Fine TOHIT_DAMP 36 50 6 Weapon,Staff,Bow Any true true 1100 1700 7
Warrior's TOHIT_DAMP 51 65 10 Weapon,Staff,Bow Any true true 1850 2450 13
Soldier's TOHIT_DAMP 66 80 15 Weapon,Staff Any true true 2600 3950 17
Lord's TOHIT_DAMP 81 95 19 Weapon,Staff Any true true 4100 5950 21
Knight's TOHIT_DAMP 96 110 23 Weapon,Staff Any true true 6100 8450 26
Master's TOHIT_DAMP 111 125 28 Weapon,Staff Any true true 8600 13000 30
Champion's TOHIT_DAMP 126 150 40 Weapon,Staff Any true true 15200 24000 33
King's TOHIT_DAMP 151 175 28 Weapon,Staff Any true true 24100 35000 38
Vulnerable ACP_CURSE 51 100 3 Armor,Shield Any true false 0 0 -3
Rusted ACP_CURSE 25 50 1 Armor,Shield Any true false 0 0 -2
Fine ACP 20 30 1 Armor,Shield Any true true 20 100 2
Strong ACP 31 40 3 Armor,Shield Any true true 120 200 3
Grand ACP 41 55 6 Armor,Shield Any true true 220 300 5
Valiant ACP 56 70 10 Armor,Shield Any true true 320 400 7
Glorious ACP 71 90 14 Armor,Shield Good true true 420 600 9
Blessed ACP 91 110 19 Armor,Shield Good true true 620 800 11
Saintly ACP 111 130 24 Armor,Shield Good true true 820 1200 13
Awesome ACP 131 150 28 Armor,Shield Good true true 1220 2000 15
Holy ACP 151 170 35 Armor,Shield Good true true 5200 6000 17
Godly ACP 171 200 60 Armor,Shield Good true true 6200 7000 20
Red FIRERES 10 20 4 Armor,Shield,Weapon,Staff,Bow,Misc Any false true 500 1500 2
Crimson FIRERES 21 30 10 Armor,Shield,Weapon,Staff,Bow,Misc Any false true 2100 3000 2
Crimson FIRERES 31 40 16 Armor,Shield,Weapon,Staff,Bow,Misc Any false true 3100 4000 2
Garnet FIRERES 41 50 20 Armor,Shield,Weapon,Staff,Bow,Misc Any false true 8200 12000 3
Ruby FIRERES 51 60 26 Armor,Shield,Weapon,Staff,Bow,Misc Any false true 17100 20000 5
Blue LIGHTRES 10 20 4 Armor,Shield,Weapon,Staff,Bow,Misc Any false true 500 1500 2
Azure LIGHTRES 21 30 10 Armor,Shield,Weapon,Staff,Bow,Misc Any false true 2100 3000 2
Lapis LIGHTRES 31 40 16 Armor,Shield,Weapon,Staff,Bow,Misc Any false true 3100 4000 2
Cobalt LIGHTRES 41 50 20 Armor,Shield,Weapon,Staff,Bow,Misc Any false true 8200 12000 3
Sapphire LIGHTRES 51 60 26 Armor,Shield,Weapon,Staff,Bow,Misc Any false true 17100 20000 5
White MAGICRES 10 20 4 Armor,Shield,Weapon,Staff,Bow,Misc Any false true 500 1500 2
Pearl MAGICRES 21 30 10 Armor,Shield,Weapon,Staff,Bow,Misc Any false true 2100 3000 2
Ivory MAGICRES 31 40 16 Armor,Shield,Weapon,Staff,Bow,Misc Any false true 3100 4000 2
Crystal MAGICRES 41 50 20 Armor,Shield,Weapon,Staff,Bow,Misc Any false true 8200 12000 3
Diamond MAGICRES 51 60 26 Armor,Shield,Weapon,Staff,Bow,Misc Any false true 17100 20000 5
Topaz ALLRES 10 15 8 Armor,Shield,Weapon,Staff,Bow,Misc Any false true 2000 5000 3
Amber ALLRES 16 20 12 Armor,Shield,Weapon,Staff,Bow,Misc Any false true 7400 10000 3
Jade ALLRES 21 30 18 Armor,Shield,Weapon,Staff,Bow,Misc Any false true 11000 15000 3
Obsidian ALLRES 31 40 24 Armor,Shield,Weapon,Staff,Bow,Misc Any false true 24000 40000 4
Emerald ALLRES 41 50 31 Shield,Weapon,Staff,Bow Any false true 61000 75000 7
Hyena's MANA_CURSE 11 25 4 Staff,Misc Any false false 100 1000 -2
Frog's MANA_CURSE 1 10 1 Staff,Misc Evil false false 0 0 -2
Spider's MANA 10 15 1 Staff,Misc Evil false true 500 1000 2
Raven's MANA 15 20 5 Staff,Misc Any false true 1100 2000 3
Snake's MANA 21 30 9 Staff,Misc Any false true 2100 4000 5
Serpent's MANA 30 40 15 Staff,Misc Any false true 4100 6000 7
Drake's MANA 41 50 21 Staff,Misc Any false true 6100 10000 9
Dragon's MANA 51 60 27 Staff,Misc Any false true 10100 15000 11
Wyrm's MANA 61 80 35 Staff Any false true 15100 19000 12
Hydra's MANA 81 100 60 Staff Any false true 19100 30000 13
Angel's SPLLVLADD 1 1 15 Staff Good false true 25000 25000 2
Arch-Angel's SPLLVLADD 2 2 25 Staff Good false true 50000 50000 3
Plentiful CHARGES 2 2 4 Staff Any false true 2000 2000 2
Bountiful CHARGES 3 3 9 Staff Any false true 3000 3000 3
Flaming FIREDAM 1 10 7 Weapon,Staff Any false true 5000 5000 2
Lightning LIGHTDAM 2 20 18 Weapon,Staff Any false true 10000 10000 2
Jester's JESTERS 1 1 7 Weapon Any false true 1200 1200 3
Crystalline CRYSTALLINE 30 70 5 Weapon Any false true 1000 3000 3
Doppelganger's DOPPELGANGER 81 95 11 Weapon,Staff Any false true 2000 2400 10
1 name power.type power.param1 power.param2 minLevel itemTypes alignment doubleChance useful minVal maxVal multVal
2 Tin TOHIT_CURSE 6 10 3 Weapon,Bow,Misc Any true false 0 0 -3
3 Brass TOHIT_CURSE 1 5 1 Weapon,Bow,Misc Any true false 0 0 -2
4 Bronze TOHIT 1 5 1 Weapon,Bow,Misc Any true true 100 500 2
5 Iron TOHIT 6 10 4 Weapon,Bow,Misc Any true true 600 1000 3
6 Steel TOHIT 11 15 6 Weapon,Bow,Misc Any true true 1100 1500 5
7 Silver TOHIT 16 20 9 Weapon,Bow,Misc Good true true 1600 2000 7
8 Gold TOHIT 21 30 12 Weapon,Bow,Misc Good true true 2100 3000 9
9 Platinum TOHIT 31 40 16 Weapon,Bow Good true true 3100 4000 11
10 Mithril TOHIT 41 60 20 Weapon,Bow Good true true 4100 6000 13
11 Meteoric TOHIT 61 80 23 Weapon,Bow Any true true 6100 10000 15
12 Weird TOHIT 81 100 35 Weapon,Bow Any true true 10100 14000 17
13 Strange TOHIT 101 150 60 Weapon,Bow Any true true 14100 20000 20
14 Useless DAMP_CURSE 100 100 5 Weapon,Staff,Bow Any true false 0 0 -8
15 Bent DAMP_CURSE 50 75 3 Weapon,Staff,Bow Any true false 0 0 -4
16 Weak DAMP_CURSE 25 45 1 Weapon,Staff,Bow Any true false 0 0 -3
17 Jagged DAMP 20 35 4 Weapon,Staff,Bow Any true true 250 450 3
18 Deadly DAMP 36 50 6 Weapon,Staff,Bow Any true true 500 700 4
19 Heavy DAMP 51 65 9 Weapon,Staff,Bow Any true true 750 950 5
20 Vicious DAMP 66 80 12 Weapon,Staff,Bow Evil true true 1000 1450 8
21 Brutal DAMP 81 95 16 Weapon,Staff,Bow Any true true 1500 1950 10
22 Massive DAMP 96 110 20 Weapon,Staff,Bow Any true true 2000 2450 13
23 Savage DAMP 111 125 23 Weapon,Bow Any true true 2500 3000 15
24 Ruthless DAMP 126 150 35 Weapon,Bow Any true true 10100 15000 17
25 Merciless DAMP 151 175 60 Weapon,Bow Any true true 15000 20000 20
26 Clumsy TOHIT_DAMP_CURSE 50 75 5 Weapon,Staff,Bow Any true false 0 0 -7
27 Dull TOHIT_DAMP_CURSE 25 45 1 Weapon,Staff,Bow Any true false 0 0 -5
28 Sharp TOHIT_DAMP 20 35 1 Weapon,Staff,Bow Any true false 350 950 5
29 Fine TOHIT_DAMP 36 50 6 Weapon,Staff,Bow Any true true 1100 1700 7
30 Warrior's TOHIT_DAMP 51 65 10 Weapon,Staff,Bow Any true true 1850 2450 13
31 Soldier's TOHIT_DAMP 66 80 15 Weapon,Staff Any true true 2600 3950 17
32 Lord's TOHIT_DAMP 81 95 19 Weapon,Staff Any true true 4100 5950 21
33 Knight's TOHIT_DAMP 96 110 23 Weapon,Staff Any true true 6100 8450 26
34 Master's TOHIT_DAMP 111 125 28 Weapon,Staff Any true true 8600 13000 30
35 Champion's TOHIT_DAMP 126 150 40 Weapon,Staff Any true true 15200 24000 33
36 King's TOHIT_DAMP 151 175 28 Weapon,Staff Any true true 24100 35000 38
37 Vulnerable ACP_CURSE 51 100 3 Armor,Shield Any true false 0 0 -3
38 Rusted ACP_CURSE 25 50 1 Armor,Shield Any true false 0 0 -2
39 Fine ACP 20 30 1 Armor,Shield Any true true 20 100 2
40 Strong ACP 31 40 3 Armor,Shield Any true true 120 200 3
41 Grand ACP 41 55 6 Armor,Shield Any true true 220 300 5
42 Valiant ACP 56 70 10 Armor,Shield Any true true 320 400 7
43 Glorious ACP 71 90 14 Armor,Shield Good true true 420 600 9
44 Blessed ACP 91 110 19 Armor,Shield Good true true 620 800 11
45 Saintly ACP 111 130 24 Armor,Shield Good true true 820 1200 13
46 Awesome ACP 131 150 28 Armor,Shield Good true true 1220 2000 15
47 Holy ACP 151 170 35 Armor,Shield Good true true 5200 6000 17
48 Godly ACP 171 200 60 Armor,Shield Good true true 6200 7000 20
49 Red FIRERES 10 20 4 Armor,Shield,Weapon,Staff,Bow,Misc Any false true 500 1500 2
50 Crimson FIRERES 21 30 10 Armor,Shield,Weapon,Staff,Bow,Misc Any false true 2100 3000 2
51 Crimson FIRERES 31 40 16 Armor,Shield,Weapon,Staff,Bow,Misc Any false true 3100 4000 2
52 Garnet FIRERES 41 50 20 Armor,Shield,Weapon,Staff,Bow,Misc Any false true 8200 12000 3
53 Ruby FIRERES 51 60 26 Armor,Shield,Weapon,Staff,Bow,Misc Any false true 17100 20000 5
54 Blue LIGHTRES 10 20 4 Armor,Shield,Weapon,Staff,Bow,Misc Any false true 500 1500 2
55 Azure LIGHTRES 21 30 10 Armor,Shield,Weapon,Staff,Bow,Misc Any false true 2100 3000 2
56 Lapis LIGHTRES 31 40 16 Armor,Shield,Weapon,Staff,Bow,Misc Any false true 3100 4000 2
57 Cobalt LIGHTRES 41 50 20 Armor,Shield,Weapon,Staff,Bow,Misc Any false true 8200 12000 3
58 Sapphire LIGHTRES 51 60 26 Armor,Shield,Weapon,Staff,Bow,Misc Any false true 17100 20000 5
59 White MAGICRES 10 20 4 Armor,Shield,Weapon,Staff,Bow,Misc Any false true 500 1500 2
60 Pearl MAGICRES 21 30 10 Armor,Shield,Weapon,Staff,Bow,Misc Any false true 2100 3000 2
61 Ivory MAGICRES 31 40 16 Armor,Shield,Weapon,Staff,Bow,Misc Any false true 3100 4000 2
62 Crystal MAGICRES 41 50 20 Armor,Shield,Weapon,Staff,Bow,Misc Any false true 8200 12000 3
63 Diamond MAGICRES 51 60 26 Armor,Shield,Weapon,Staff,Bow,Misc Any false true 17100 20000 5
64 Topaz ALLRES 10 15 8 Armor,Shield,Weapon,Staff,Bow,Misc Any false true 2000 5000 3
65 Amber ALLRES 16 20 12 Armor,Shield,Weapon,Staff,Bow,Misc Any false true 7400 10000 3
66 Jade ALLRES 21 30 18 Armor,Shield,Weapon,Staff,Bow,Misc Any false true 11000 15000 3
67 Obsidian ALLRES 31 40 24 Armor,Shield,Weapon,Staff,Bow,Misc Any false true 24000 40000 4
68 Emerald ALLRES 41 50 31 Shield,Weapon,Staff,Bow Any false true 61000 75000 7
69 Hyena's MANA_CURSE 11 25 4 Staff,Misc Any false false 100 1000 -2
70 Frog's MANA_CURSE 1 10 1 Staff,Misc Evil false false 0 0 -2
71 Spider's MANA 10 15 1 Staff,Misc Evil false true 500 1000 2
72 Raven's MANA 15 20 5 Staff,Misc Any false true 1100 2000 3
73 Snake's MANA 21 30 9 Staff,Misc Any false true 2100 4000 5
74 Serpent's MANA 30 40 15 Staff,Misc Any false true 4100 6000 7
75 Drake's MANA 41 50 21 Staff,Misc Any false true 6100 10000 9
76 Dragon's MANA 51 60 27 Staff,Misc Any false true 10100 15000 11
77 Wyrm's MANA 61 80 35 Staff Any false true 15100 19000 12
78 Hydra's MANA 81 100 60 Staff Any false true 19100 30000 13
79 Angel's SPLLVLADD 1 1 15 Staff Good false true 25000 25000 2
80 Arch-Angel's SPLLVLADD 2 2 25 Staff Good false true 50000 50000 3
81 Plentiful CHARGES 2 2 4 Staff Any false true 2000 2000 2
82 Bountiful CHARGES 3 3 9 Staff Any false true 3000 3000 3
83 Flaming FIREDAM 1 10 7 Weapon,Staff Any false true 5000 5000 2
84 Lightning LIGHTDAM 2 20 18 Weapon,Staff Any false true 10000 10000 2
85 Jester's JESTERS 1 1 7 Weapon Any false true 1200 1200 3
86 Crystalline CRYSTALLINE 30 70 5 Weapon Any false true 1000 3000 3
87 Doppelganger's DOPPELGANGER 81 95 11 Weapon,Staff Any false true 2000 2400 10

99
Packaging/resources/assets/txtdata/items/item_suffixes.tsv

@ -0,0 +1,99 @@
name power.type power.param1 power.param2 minLevel itemTypes alignment doubleChance useful minVal maxVal multVal
quality DAMMOD 1 2 2 Weapon,Staff,Bow Any false true 100 200 2
maiming DAMMOD 3 5 7 Weapon,Staff,Bow Any false true 1300 1500 3
slaying DAMMOD 6 8 15 Weapon Any false true 2600 3000 5
gore DAMMOD 9 12 25 Weapon Any false true 4100 5000 8
carnage DAMMOD 13 16 35 Weapon Any false true 5100 10000 10
slaughter DAMMOD 17 20 60 Weapon Any false true 10100 15000 13
pain GETHIT_CURSE 2 4 4 Armor,Shield,Misc Evil false false 0 0 -4
tears GETHIT_CURSE 1 1 2 Armor,Shield,Misc Evil false false 0 0 -2
health GETHIT 1 1 2 Armor,Shield,Misc Good false true 200 200 2
protection GETHIT 2 2 6 Armor,Shield Good false true 400 800 4
absorption GETHIT 3 3 12 Armor,Shield Good false true 1001 2500 10
deflection GETHIT 4 4 20 Armor Good false true 2500 6500 15
osmosis GETHIT 5 6 50 Armor Good false true 7500 10000 20
frailty STR_CURSE 6 10 3 Armor,Shield,Weapon,Bow,Misc Evil false false 0 0 -3
weakness STR_CURSE 1 5 1 Armor,Shield,Weapon,Staff,Bow,Misc Evil false false 0 0 -2
strength STR 1 5 1 Armor,Shield,Weapon,Staff,Bow,Misc Any false true 200 1000 2
might STR 6 10 5 Armor,Shield,Weapon,Bow,Misc Any false true 1200 2000 3
power STR 11 15 11 Armor,Shield,Weapon,Bow,Misc Any false true 2200 3000 4
giants STR 16 20 17 Armor,Weapon,Bow,Misc Any false true 3200 5000 7
titans STR 21 30 23 Weapon,Misc Any false true 5200 10000 10
paralysis DEX_CURSE 6 10 3 Armor,Shield,Weapon,Bow,Misc Evil false false 0 0 -3
atrophy DEX_CURSE 1 5 1 Armor,Shield,Weapon,Staff,Bow,Misc Evil false false 0 0 -2
dexterity DEX 1 5 1 Armor,Shield,Weapon,Staff,Bow,Misc Any false true 200 1000 2
skill DEX 6 10 5 Armor,Shield,Weapon,Bow,Misc Any false true 1200 2000 3
accuracy DEX 11 15 11 Armor,Shield,Weapon,Bow,Misc Any false true 2200 3000 4
precision DEX 16 20 17 Armor,Weapon,Bow,Misc Any false true 3200 5000 7
perfection DEX 21 30 23 Bow,Misc Any false true 5200 10000 10
the fool MAG_CURSE 6 10 3 Armor,Shield,Weapon,Staff,Bow,Misc Evil false false 0 0 -3
dyslexia MAG_CURSE 1 5 1 Armor,Shield,Weapon,Staff,Bow,Misc Evil false false 0 0 -2
magic MAG 1 5 1 Armor,Shield,Weapon,Staff,Bow,Misc Any false true 200 1000 2
the mind MAG 6 10 5 Armor,Shield,Weapon,Staff,Bow,Misc Any false true 1200 2000 3
brilliance MAG 11 15 11 Armor,Shield,Weapon,Staff,Bow,Misc Any false true 2200 3000 4
sorcery MAG 16 20 17 Armor,Weapon,Staff,Bow,Misc Any false true 3200 5000 7
wizardry MAG 21 30 23 Staff,Misc Any false true 5200 10000 10
illness VIT_CURSE 6 10 3 Armor,Shield,Weapon,Staff,Bow,Misc Evil false false 0 0 -3
disease VIT_CURSE 1 5 1 Armor,Shield,Weapon,Staff,Bow,Misc Evil false false 0 0 -2
vitality VIT 1 5 1 Armor,Shield,Weapon,Staff,Bow,Misc Good false true 200 1000 2
zest VIT 6 10 5 Armor,Shield,Weapon,Bow,Misc Good false true 1200 2000 3
vim VIT 11 15 11 Armor,Shield,Weapon,Bow,Misc Good false true 2200 3000 4
vigor VIT 16 20 17 Armor,Weapon,Bow,Misc Good false true 3200 5000 7
life VIT 21 30 23 Misc Good false true 5200 10000 10
trouble ATTRIBS_CURSE 6 10 12 Armor,Shield,Weapon,Staff,Bow,Misc Evil false false 0 0 -10
the pit ATTRIBS_CURSE 1 5 5 Armor,Shield,Weapon,Staff,Bow,Misc Evil false false 0 0 -5
the sky ATTRIBS 1 3 5 Armor,Shield,Weapon,Staff,Bow,Misc Any false true 800 4000 5
the moon ATTRIBS 4 7 11 Armor,Shield,Weapon,Staff,Bow,Misc Any false true 4800 8000 10
the stars ATTRIBS 8 11 17 Armor,Weapon,Bow,Misc Any false true 8800 12000 15
the heavens ATTRIBS 12 15 25 Weapon,Bow,Misc Any false true 12800 20000 20
the zodiac ATTRIBS 16 20 30 Misc Any false true 20800 40000 30
the vulture LIFE_CURSE 11 25 4 Armor,Shield,Misc Evil false false 0 0 -4
the jackal LIFE_CURSE 1 10 1 Armor,Shield,Misc Evil false false 0 0 -2
the fox LIFE 10 15 1 Armor,Shield,Misc Any false true 100 1000 2
the jaguar LIFE 16 20 5 Armor,Shield,Misc Any false true 1100 2000 3
the eagle LIFE 21 30 9 Armor,Shield,Misc Any false true 2100 4000 5
the wolf LIFE 30 40 15 Armor,Shield,Misc Any false true 4100 6000 7
the tiger LIFE 41 50 21 Armor,Shield,Misc Any false true 6100 10000 9
the lion LIFE 51 60 27 Armor,Misc Any false true 10100 15000 11
the mammoth LIFE 61 80 35 Armor Any false true 15100 19000 12
the whale LIFE 81 100 60 Armor Any false true 19100 30000 13
fragility DUR_CURSE 100 100 3 Armor,Shield,Weapon Evil false false 0 0 -4
brittleness DUR_CURSE 26 75 1 Armor,Shield,Weapon Evil false false 0 0 -2
sturdiness DUR 26 75 1 Armor,Shield,Weapon,Staff Any false true 100 100 2
craftsmanship DUR 51 100 6 Armor,Shield,Weapon,Staff Any false true 200 200 2
structure DUR 101 200 12 Armor,Shield,Weapon,Staff Any false true 300 300 2
the ages INDESTRUCTIBLE 25 Armor,Shield,Weapon,Staff Any false true 600 600 5
the dark LIGHT_CURSE 4 4 6 Armor,Weapon,Misc Evil false false 0 0 -3
the night LIGHT_CURSE 2 2 3 Armor,Weapon,Misc Evil false false 0 0 -2
light LIGHT 2 2 4 Armor,Weapon,Misc Good false true 750 750 2
radiance LIGHT 4 4 8 Armor,Weapon,Misc Good false true 1500 1500 3
flame FIRE_ARROWS 1 3 1 Bow Any false true 2000 2000 2
fire FIRE_ARROWS 1 6 11 Bow Any false true 4000 4000 4
burning FIRE_ARROWS 1 16 35 Bow Any false true 6000 6000 6
shock LIGHT_ARROWS 1 6 13 Bow Any false true 6000 6000 2
lightning LIGHT_ARROWS 1 10 21 Bow Any false true 8000 8000 4
thunder LIGHT_ARROWS 1 20 60 Bow Any false true 12000 12000 6
many DUR 100 100 3 Bow Any false true 750 750 2
plenty DUR 200 200 7 Bow Any false true 1500 1500 3
thorns THORNS 1 3 1 Armor,Shield Any false true 500 500 2
corruption NOMANA 5 Armor,Shield,Weapon Evil false false -1000 -1000 2
thieves ABSHALFTRAP 11 Armor,Shield,Misc Any false true 1500 1500 2
the bear KNOCKBACK 5 Weapon,Staff,Bow Evil false true 750 750 2
the bat STEALMANA 3 3 8 Weapon Any false true 7500 7500 3
vampires STEALMANA 5 5 19 Weapon Any false true 15000 15000 3
the leech STEALLIFE 3 3 8 Weapon Any false true 7500 7500 3
blood STEALLIFE 5 5 19 Weapon Any false true 15000 15000 3
piercing TARGAC 1 1 1 Weapon,Bow Any false true 1000 1000 3
puncturing TARGAC 2 2 9 Weapon,Bow Any false true 2000 2000 6
bashing TARGAC 3 3 17 Weapon Any false true 4000 4000 12
readiness FASTATTACK 1 1 1 Weapon,Staff,Bow Any false true 2000 2000 2
swiftness FASTATTACK 2 2 10 Weapon,Staff,Bow Any false true 4000 4000 4
speed FASTATTACK 3 3 19 Weapon,Staff Any false true 8000 8000 8
haste FASTATTACK 4 4 27 Weapon,Staff Any false true 16000 16000 16
balance FASTRECOVER 1 1 1 Armor,Misc Any false true 2000 2000 2
stability FASTRECOVER 2 2 10 Armor,Misc Any false true 4000 4000 4
harmony FASTRECOVER 3 3 20 Armor,Misc Any false true 8000 8000 8
blocking FASTBLOCK 1 1 5 Shield Any false true 4000 4000 4
devastation DEVASTATION 1 1 1 Weapon,Staff,Bow Any false true 1200 1200 3
decay DECAY 150 250 1 Weapon,Staff,Bow Any false true 200 200 2
peril PERIL 1 1 5 Weapon,Staff,Bow Any false true 500 500 1
1 name power.type power.param1 power.param2 minLevel itemTypes alignment doubleChance useful minVal maxVal multVal
2 quality DAMMOD 1 2 2 Weapon,Staff,Bow Any false true 100 200 2
3 maiming DAMMOD 3 5 7 Weapon,Staff,Bow Any false true 1300 1500 3
4 slaying DAMMOD 6 8 15 Weapon Any false true 2600 3000 5
5 gore DAMMOD 9 12 25 Weapon Any false true 4100 5000 8
6 carnage DAMMOD 13 16 35 Weapon Any false true 5100 10000 10
7 slaughter DAMMOD 17 20 60 Weapon Any false true 10100 15000 13
8 pain GETHIT_CURSE 2 4 4 Armor,Shield,Misc Evil false false 0 0 -4
9 tears GETHIT_CURSE 1 1 2 Armor,Shield,Misc Evil false false 0 0 -2
10 health GETHIT 1 1 2 Armor,Shield,Misc Good false true 200 200 2
11 protection GETHIT 2 2 6 Armor,Shield Good false true 400 800 4
12 absorption GETHIT 3 3 12 Armor,Shield Good false true 1001 2500 10
13 deflection GETHIT 4 4 20 Armor Good false true 2500 6500 15
14 osmosis GETHIT 5 6 50 Armor Good false true 7500 10000 20
15 frailty STR_CURSE 6 10 3 Armor,Shield,Weapon,Bow,Misc Evil false false 0 0 -3
16 weakness STR_CURSE 1 5 1 Armor,Shield,Weapon,Staff,Bow,Misc Evil false false 0 0 -2
17 strength STR 1 5 1 Armor,Shield,Weapon,Staff,Bow,Misc Any false true 200 1000 2
18 might STR 6 10 5 Armor,Shield,Weapon,Bow,Misc Any false true 1200 2000 3
19 power STR 11 15 11 Armor,Shield,Weapon,Bow,Misc Any false true 2200 3000 4
20 giants STR 16 20 17 Armor,Weapon,Bow,Misc Any false true 3200 5000 7
21 titans STR 21 30 23 Weapon,Misc Any false true 5200 10000 10
22 paralysis DEX_CURSE 6 10 3 Armor,Shield,Weapon,Bow,Misc Evil false false 0 0 -3
23 atrophy DEX_CURSE 1 5 1 Armor,Shield,Weapon,Staff,Bow,Misc Evil false false 0 0 -2
24 dexterity DEX 1 5 1 Armor,Shield,Weapon,Staff,Bow,Misc Any false true 200 1000 2
25 skill DEX 6 10 5 Armor,Shield,Weapon,Bow,Misc Any false true 1200 2000 3
26 accuracy DEX 11 15 11 Armor,Shield,Weapon,Bow,Misc Any false true 2200 3000 4
27 precision DEX 16 20 17 Armor,Weapon,Bow,Misc Any false true 3200 5000 7
28 perfection DEX 21 30 23 Bow,Misc Any false true 5200 10000 10
29 the fool MAG_CURSE 6 10 3 Armor,Shield,Weapon,Staff,Bow,Misc Evil false false 0 0 -3
30 dyslexia MAG_CURSE 1 5 1 Armor,Shield,Weapon,Staff,Bow,Misc Evil false false 0 0 -2
31 magic MAG 1 5 1 Armor,Shield,Weapon,Staff,Bow,Misc Any false true 200 1000 2
32 the mind MAG 6 10 5 Armor,Shield,Weapon,Staff,Bow,Misc Any false true 1200 2000 3
33 brilliance MAG 11 15 11 Armor,Shield,Weapon,Staff,Bow,Misc Any false true 2200 3000 4
34 sorcery MAG 16 20 17 Armor,Weapon,Staff,Bow,Misc Any false true 3200 5000 7
35 wizardry MAG 21 30 23 Staff,Misc Any false true 5200 10000 10
36 illness VIT_CURSE 6 10 3 Armor,Shield,Weapon,Staff,Bow,Misc Evil false false 0 0 -3
37 disease VIT_CURSE 1 5 1 Armor,Shield,Weapon,Staff,Bow,Misc Evil false false 0 0 -2
38 vitality VIT 1 5 1 Armor,Shield,Weapon,Staff,Bow,Misc Good false true 200 1000 2
39 zest VIT 6 10 5 Armor,Shield,Weapon,Bow,Misc Good false true 1200 2000 3
40 vim VIT 11 15 11 Armor,Shield,Weapon,Bow,Misc Good false true 2200 3000 4
41 vigor VIT 16 20 17 Armor,Weapon,Bow,Misc Good false true 3200 5000 7
42 life VIT 21 30 23 Misc Good false true 5200 10000 10
43 trouble ATTRIBS_CURSE 6 10 12 Armor,Shield,Weapon,Staff,Bow,Misc Evil false false 0 0 -10
44 the pit ATTRIBS_CURSE 1 5 5 Armor,Shield,Weapon,Staff,Bow,Misc Evil false false 0 0 -5
45 the sky ATTRIBS 1 3 5 Armor,Shield,Weapon,Staff,Bow,Misc Any false true 800 4000 5
46 the moon ATTRIBS 4 7 11 Armor,Shield,Weapon,Staff,Bow,Misc Any false true 4800 8000 10
47 the stars ATTRIBS 8 11 17 Armor,Weapon,Bow,Misc Any false true 8800 12000 15
48 the heavens ATTRIBS 12 15 25 Weapon,Bow,Misc Any false true 12800 20000 20
49 the zodiac ATTRIBS 16 20 30 Misc Any false true 20800 40000 30
50 the vulture LIFE_CURSE 11 25 4 Armor,Shield,Misc Evil false false 0 0 -4
51 the jackal LIFE_CURSE 1 10 1 Armor,Shield,Misc Evil false false 0 0 -2
52 the fox LIFE 10 15 1 Armor,Shield,Misc Any false true 100 1000 2
53 the jaguar LIFE 16 20 5 Armor,Shield,Misc Any false true 1100 2000 3
54 the eagle LIFE 21 30 9 Armor,Shield,Misc Any false true 2100 4000 5
55 the wolf LIFE 30 40 15 Armor,Shield,Misc Any false true 4100 6000 7
56 the tiger LIFE 41 50 21 Armor,Shield,Misc Any false true 6100 10000 9
57 the lion LIFE 51 60 27 Armor,Misc Any false true 10100 15000 11
58 the mammoth LIFE 61 80 35 Armor Any false true 15100 19000 12
59 the whale LIFE 81 100 60 Armor Any false true 19100 30000 13
60 fragility DUR_CURSE 100 100 3 Armor,Shield,Weapon Evil false false 0 0 -4
61 brittleness DUR_CURSE 26 75 1 Armor,Shield,Weapon Evil false false 0 0 -2
62 sturdiness DUR 26 75 1 Armor,Shield,Weapon,Staff Any false true 100 100 2
63 craftsmanship DUR 51 100 6 Armor,Shield,Weapon,Staff Any false true 200 200 2
64 structure DUR 101 200 12 Armor,Shield,Weapon,Staff Any false true 300 300 2
65 the ages INDESTRUCTIBLE 25 Armor,Shield,Weapon,Staff Any false true 600 600 5
66 the dark LIGHT_CURSE 4 4 6 Armor,Weapon,Misc Evil false false 0 0 -3
67 the night LIGHT_CURSE 2 2 3 Armor,Weapon,Misc Evil false false 0 0 -2
68 light LIGHT 2 2 4 Armor,Weapon,Misc Good false true 750 750 2
69 radiance LIGHT 4 4 8 Armor,Weapon,Misc Good false true 1500 1500 3
70 flame FIRE_ARROWS 1 3 1 Bow Any false true 2000 2000 2
71 fire FIRE_ARROWS 1 6 11 Bow Any false true 4000 4000 4
72 burning FIRE_ARROWS 1 16 35 Bow Any false true 6000 6000 6
73 shock LIGHT_ARROWS 1 6 13 Bow Any false true 6000 6000 2
74 lightning LIGHT_ARROWS 1 10 21 Bow Any false true 8000 8000 4
75 thunder LIGHT_ARROWS 1 20 60 Bow Any false true 12000 12000 6
76 many DUR 100 100 3 Bow Any false true 750 750 2
77 plenty DUR 200 200 7 Bow Any false true 1500 1500 3
78 thorns THORNS 1 3 1 Armor,Shield Any false true 500 500 2
79 corruption NOMANA 5 Armor,Shield,Weapon Evil false false -1000 -1000 2
80 thieves ABSHALFTRAP 11 Armor,Shield,Misc Any false true 1500 1500 2
81 the bear KNOCKBACK 5 Weapon,Staff,Bow Evil false true 750 750 2
82 the bat STEALMANA 3 3 8 Weapon Any false true 7500 7500 3
83 vampires STEALMANA 5 5 19 Weapon Any false true 15000 15000 3
84 the leech STEALLIFE 3 3 8 Weapon Any false true 7500 7500 3
85 blood STEALLIFE 5 5 19 Weapon Any false true 15000 15000 3
86 piercing TARGAC 1 1 1 Weapon,Bow Any false true 1000 1000 3
87 puncturing TARGAC 2 2 9 Weapon,Bow Any false true 2000 2000 6
88 bashing TARGAC 3 3 17 Weapon Any false true 4000 4000 12
89 readiness FASTATTACK 1 1 1 Weapon,Staff,Bow Any false true 2000 2000 2
90 swiftness FASTATTACK 2 2 10 Weapon,Staff,Bow Any false true 4000 4000 4
91 speed FASTATTACK 3 3 19 Weapon,Staff Any false true 8000 8000 8
92 haste FASTATTACK 4 4 27 Weapon,Staff Any false true 16000 16000 16
93 balance FASTRECOVER 1 1 1 Armor,Misc Any false true 2000 2000 2
94 stability FASTRECOVER 2 2 10 Armor,Misc Any false true 4000 4000 4
95 harmony FASTRECOVER 3 3 20 Armor,Misc Any false true 8000 8000 8
96 blocking FASTBLOCK 1 1 5 Shield Any false true 4000 4000 4
97 devastation DEVASTATION 1 1 1 Weapon,Staff,Bow Any false true 1200 1200 3
98 decay DECAY 150 250 1 Weapon,Staff,Bow Any false true 200 200 2
99 peril PERIL 1 1 5 Weapon,Staff,Bow Any false true 500 500 1

169
Packaging/resources/assets/txtdata/items/itemdat.tsv

@ -0,0 +1,169 @@
id dropRate class equipType cursorGraphic itemType uniqueBaseItem name shortName minMonsterLevel durability minDamage maxDamage minArmor maxArmor minStrength minMagic minDexterity specialEffects miscId spell usable value
IDI_GOLD Regular Gold Unequippable GOLD Gold NONE Gold 1 0 0 0 0 0 0 0 0 NONE Null true 0
IDI_WARRIOR Never Weapon One-handed SHORT_SWORD Sword NONE Short Sword 2 20 2 6 0 0 18 0 0 NONE Null false 50
IDI_WARRSHLD Never Armor One-handed BUCKLER Shield NONE Buckler 2 10 0 0 3 3 0 0 0 NONE Null false 50
IDI_WARRCLUB Never Weapon One-handed CLUB Mace SPIKCLUB Club 1 20 1 6 0 0 0 0 0 NONE Null false 20
IDI_ROGUE Never Weapon Two-handed SHORT_BOW Bow NONE Short Bow 1 30 1 4 0 0 0 0 0 NONE Null false 100
IDI_SORCERER Never Weapon Two-handed SHORT_STAFF Staff NONE Short Staff of Mana 1 25 2 4 0 0 0 20 0 STAFF Mana false 520
IDI_CLEAVER Never Weapon Two-handed CLEAVER Axe CLEAVER Cleaver 10 10 4 24 0 0 0 0 0 UNIQUE Null false 2000
IDI_SKCROWN Never Armor Helm THE_UNDEAD_CROWN Helm SKCROWN The Undead Crown 0 50 0 0 15 15 0 0 0 RandomStealLife UNIQUE Null false 10000
IDI_INFRARING Never Misc Ring EMPYREAN_BAND Ring INFRARING Empyrean Band 0 0 0 0 0 0 0 0 0 UNIQUE Null false 8000
IDI_ROCK Never Quest Unequippable MAGIC_ROCK Misc NONE Magic Rock 0 0 0 0 0 0 0 0 0 NONE Null false 0
IDI_OPTAMULET Never Misc Amulet OPTIC_AMULET Amulet OPTAMULET Optic Amulet 0 0 0 0 0 0 0 0 0 UNIQUE Null false 5000
IDI_TRING Never Misc Ring RING_OF_TRUTH Ring TRING Ring of Truth 0 0 0 0 0 0 0 0 0 UNIQUE Null false 1000
IDI_BANNER Never Quest Unequippable TAVERN_SIGN Misc NONE Tavern Sign 0 0 0 0 0 0 0 0 0 NONE Null false 0
IDI_HARCREST Never Armor Helm HARLEQUIN_CREST Helm HARCREST Harlequin Crest 0 15 0 0 0 0 0 0 0 UNIQUE Null false 15
IDI_STEELVEIL Never Armor Helm VIEL_OF_STEEL Helm STEELVEIL Veil of Steel 0 60 0 0 18 18 0 0 0 UNIQUE Null false 0
IDI_GLDNELIX Never Misc Unequippable GOLDEN_ELIXIR Misc ELIXIR Golden Elixir 15 0 0 0 0 0 0 0 0 NONE Null false 0
IDI_ANVIL Never Quest Unequippable ANVIL_OF_FURY Misc NONE Anvil of Fury 0 0 0 0 0 0 0 0 0 NONE Null false 0
IDI_MUSHROOM Never Quest Unequippable BLACK_MUSHROOM Misc NONE Black Mushroom 0 0 0 0 0 0 0 0 0 NONE Null false 0
IDI_BRAIN Never Quest Unequippable BRAIN Misc NONE Brain 0 0 0 0 0 0 0 0 0 NONE Null false 0
IDI_FUNGALTM Never Quest Unequippable FUNGAL_TOME Misc NONE Fungal Tome 0 0 0 0 0 0 0 0 0 NONE Null false 0
IDI_SPECELIX Never Misc Unequippable SPECTRAL_ELIXIR Misc ELIXIR Spectral Elixir 15 0 0 0 0 0 0 0 0 SPECELIX Null true 0
IDI_BLDSTONE Never Quest Unequippable BLOOD_STONE Misc NONE Blood Stone 0 0 0 0 0 0 0 0 0 NONE Null false 0
IDI_MAPOFDOOM Never Quest Unequippable MAP_OF_THE_STARS Misc MAPOFDOOM Cathedral Map 0 0 0 0 0 0 0 0 0 MAPOFDOOM Null true 0
IDI_EAR Never Quest Unequippable EAR_SORCERER Misc NONE Heart 0 0 0 0 0 0 0 0 0 EAR Null false 0
IDI_HEAL Never Misc Unequippable POTION_OF_HEALING Misc NONE Potion of Healing 0 0 0 0 0 0 0 0 0 HEAL Null true 50
IDI_MANA Never Misc Unequippable POTION_OF_MANA Misc NONE Potion of Mana 0 0 0 0 0 0 0 0 0 MANA Null true 50
IDI_IDENTIFY Never Misc Unequippable SCROLL_OF Misc NONE Scroll of Identify 1 0 0 0 0 0 0 0 0 SCROLL Identify true 200
IDI_PORTAL Never Misc Unequippable SCROLL_OF Misc NONE Scroll of Town Portal 4 0 0 0 0 0 0 0 0 SCROLL TownPortal true 200
IDI_ARMOFVAL Never Armor Armor ARKAINES_VALOR MediumArmor ARMOFVAL Arkaine's Valor 0 40 0 0 0 0 0 0 0 UNIQUE Null false 0
IDI_FULLHEAL Never Misc Unequippable POTION_OF_FULL_HEALING Misc NONE Potion of Full Healing 1 0 0 0 0 0 0 0 0 FULLHEAL Null true 150
IDI_FULLMANA Never Misc Unequippable POTION_OF_FULL_MANA Misc NONE Potion of Full Mana 1 0 0 0 0 0 0 0 0 FULLMANA Null true 150
IDI_GRISWOLD Never Weapon One-handed BROAD_SWORD Sword GRISWOLD Griswold's Edge 8 50 4 12 0 0 40 0 0 UNIQUE Null false 750
IDI_LGTFORGE Never Armor Armor BOVINE HeavyArmor BOVINE Bovine Plate 0 40 0 0 0 0 50 0 0 UNIQUE Null false 0
IDI_LAZSTAFF Never Misc Unequippable STAFF_OF_LAZARUS Misc LAZSTAFF Staff of Lazarus 0 0 0 0 0 0 0 0 0 NONE Null false 0
IDI_RESURRECT Never Misc Unequippable SCROLL_OF Misc NONE Scroll of Resurrect 1 0 0 0 0 0 0 0 0 SCROLLT Resurrect true 250
IDI_OIL Never Misc Unequippable OIL Misc NONE Blacksmith Oil 1 0 0 0 0 0 0 0 0 OILBSMTH Null true 100
IDI_SHORTSTAFF Never Weapon Two-handed SHORT_STAFF Staff NONE Short Staff 1 25 2 4 0 0 0 0 0 NONE Null false 20
IDI_BARDSWORD Never Weapon One-handed SHORT_SWORD Sword NONE Sword 2 8 1 5 0 0 15 0 20 NONE Null false 20
IDI_BARDDAGGER Never Weapon One-handed DAGGER Sword NONE Dagger 1 16 1 4 0 0 0 0 0 NONE Null false 20
IDI_RUNEBOMB Never Quest Unequippable RUNE_BOMB Misc NONE Rune Bomb 0 0 0 0 0 0 0 0 0 NONE Null false 0
IDI_THEODORE Never Quest Unequippable THEODORE Misc NONE Theodore 0 0 0 0 0 0 0 0 0 NONE Null false 0
IDI_AURIC Never Misc Amulet AURIC_AMULET Misc NONE Auric Amulet 0 0 0 0 0 0 0 0 0 AURIC Null false 100
IDI_NOTE1 Never Quest Unequippable TORN_NOTE_1 Misc NONE Torn Note 1 0 0 0 0 0 0 0 0 0 NONE Null false 0
IDI_NOTE2 Never Quest Unequippable TORN_NOTE_2 Misc NONE Torn Note 2 0 0 0 0 0 0 0 0 0 NONE Null false 0
IDI_NOTE3 Never Quest Unequippable TORN_NOTE_3 Misc NONE Torn Note 3 0 0 0 0 0 0 0 0 0 NONE Null false 0
IDI_FULLNOTE Never Quest Unequippable RECONSTRUCTED_NOTE Misc NONE Reconstructed Note 0 0 0 0 0 0 0 0 0 NOTE Null true 0
IDI_BROWNSUIT Never Quest Unequippable BROWN_SUIT Misc NONE Brown Suit 0 0 0 0 0 0 0 0 0 NONE Null false 0
IDI_GREYSUIT Never Quest Unequippable GREY_SUIT Misc NONE Grey Suit 0 0 0 0 0 0 0 0 0 NONE Null false 0
Regular Armor Helm CAP Helm NONE Cap Cap 1 15 0 0 1 3 0 0 0 NONE Null false 15
Regular Armor Helm SKULL_CAP Helm SKULLCAP Skull Cap Cap 4 20 0 0 2 4 0 0 0 NONE Null false 25
Regular Armor Helm HELM Helm HELM Helm Helm 8 30 0 0 4 6 25 0 0 NONE Null false 40
Regular Armor Helm FULL_HELM Helm NONE Full Helm Helm 12 35 0 0 6 8 35 0 0 NONE Null false 90
Regular Armor Helm CROWN Helm CROWN Crown Crown 16 40 0 0 8 12 0 0 0 NONE Null false 200
Regular Armor Helm GREAT_HELM Helm GREATHELM Great Helm Helm 20 60 0 0 10 15 50 0 0 NONE Null false 400
Regular Armor Armor CAPE LightArmor CAPE Cape Cape 1 12 0 0 1 5 0 0 0 NONE Null false 10
Regular Armor Armor RAGS LightArmor RAGS Rags Rags 1 6 0 0 2 6 0 0 0 NONE Null false 5
Regular Armor Armor CLOAK LightArmor CLOAK Cloak Cloak 2 18 0 0 3 7 0 0 0 NONE Null false 40
Regular Armor Armor ROBE LightArmor ROBE Robe Robe 3 24 0 0 4 7 0 0 0 NONE Null false 75
Regular Armor Armor QUILTED_ARMOR LightArmor NONE Quilted Armor Armor 4 30 0 0 7 10 0 0 0 NONE Null false 200
Regular Armor Armor LEATHER_ARMOR LightArmor LEATHARMOR Leather Armor Armor 6 35 0 0 10 13 0 0 0 NONE Null false 300
Regular Armor Armor HARD_LEATHER_ARMOR LightArmor NONE Hard Leather Armor Armor 7 40 0 0 11 14 0 0 0 NONE Null false 450
Regular Armor Armor STUDDED_LEATHER_ARMOR LightArmor STUDARMOR Studded Leather Armor Armor 9 45 0 0 15 17 20 0 0 NONE Null false 700
Regular Armor Armor RING_MAIL MediumArmor NONE Ring Mail Mail 11 50 0 0 17 20 25 0 0 NONE Null false 900
Regular Armor Armor CHAIN_MAIL MediumArmor CHAINMAIL Chain Mail Mail 13 55 0 0 18 22 30 0 0 NONE Null false 1250
Regular Armor Armor SCALE_MAIL MediumArmor NONE Scale Mail Mail 15 60 0 0 23 28 35 0 0 NONE Null false 2300
Regular Armor Armor BREAST_PLATE HeavyArmor BREASTPLATE Breast Plate Plate 16 80 0 0 20 24 40 0 0 NONE Null false 2800
Regular Armor Armor SPLINT_MAIL MediumArmor NONE Splint Mail Mail 17 65 0 0 30 35 40 0 0 NONE Null false 3250
Regular Armor Armor FIELD_PLATE HeavyArmor PLATEMAIL Plate Mail Plate 19 75 0 0 42 50 60 0 0 NONE Null false 4600
Regular Armor Armor FIELD_PLATE HeavyArmor NONE Field Plate Plate 21 80 0 0 40 45 65 0 0 NONE Null false 5800
Regular Armor Armor GOTHIC_PLATE HeavyArmor NONE Gothic Plate Plate 23 100 0 0 50 60 80 0 0 NONE Null false 8000
Regular Armor Armor FULL_PLATE_MAIL HeavyArmor FULLPLATE Full Plate Mail Plate 25 90 0 0 60 75 90 0 0 NONE Null false 6500
Regular Armor One-handed BUCKLER Shield BUCKLER Buckler Shield 1 16 0 0 1 5 0 0 0 NONE Null false 30
Regular Armor One-handed SMALL_SHIELD Shield SMALLSHIELD Small Shield Shield 5 24 0 0 3 8 25 0 0 NONE Null false 90
Regular Armor One-handed LARGE_SHIELD Shield LARGESHIELD Large Shield Shield 9 32 0 0 5 10 40 0 0 NONE Null false 200
Regular Armor One-handed KITE_SHIELD Shield KITESHIELD Kite Shield Shield 14 40 0 0 8 15 50 0 0 NONE Null false 400
Regular Armor One-handed TOWER_SHIELD Shield GOTHSHIELD Tower Shield Shield 20 50 0 0 12 20 60 0 0 NONE Null false 850
Regular Armor One-handed GOTHIC_SHIELD Shield GOTHSHIELD Gothic Shield Shield 23 60 0 0 14 18 80 0 0 NONE Null false 2300
Regular Misc Unequippable POTION_OF_HEALING Misc NONE Potion of Healing 1 0 0 0 0 0 0 0 0 HEAL Null true 50
Regular Misc Unequippable POTION_OF_FULL_HEALING Misc NONE Potion of Full Healing 1 0 0 0 0 0 0 0 0 FULLHEAL Null true 150
Regular Misc Unequippable POTION_OF_MANA Misc NONE Potion of Mana 1 0 0 0 0 0 0 0 0 MANA Null true 50
Regular Misc Unequippable POTION_OF_FULL_MANA Misc NONE Potion of Full Mana 1 0 0 0 0 0 0 0 0 FULLMANA Null true 150
Regular Misc Unequippable POTION_OF_REJUVENATION Misc NONE Potion of Rejuvenation 3 0 0 0 0 0 0 0 0 REJUV Null true 120
Regular Misc Unequippable POTION_OF_FULL_REJUVENATION Misc NONE Potion of Full Rejuvenation 7 0 0 0 0 0 0 0 0 FULLREJUV Null true 600
Regular Misc Unequippable OIL Misc NONE Blacksmith Oil 1 0 0 0 0 0 0 0 0 OILBSMTH Null true 100
Regular Misc Unequippable OIL Misc NONE Oil of Accuracy 1 0 0 0 0 0 0 0 0 OILACC Null true 500
Regular Misc Unequippable OIL Misc NONE Oil of Sharpness 1 0 0 0 0 0 0 0 0 OILSHARP Null true 500
Regular Misc Unequippable OIL Misc NONE Oil 10 0 0 0 0 0 0 0 0 OILOF Null true 0
Regular Misc Unequippable ELIXIR_OF_STRENGTH Misc NONE Elixir of Strength 15 0 0 0 0 0 0 0 0 ELIXSTR Null true 5000
Regular Misc Unequippable ELIXIR_OF_MAGIC Misc NONE Elixir of Magic 15 0 0 0 0 0 0 0 0 ELIXMAG Null true 5000
Regular Misc Unequippable ELIXIR_OF_DEXTERITY Misc NONE Elixir of Dexterity 15 0 0 0 0 0 0 0 0 ELIXDEX Null true 5000
Regular Misc Unequippable ELIXIR_OF_VITALITY Misc NONE Elixir of Vitality 20 0 0 0 0 0 0 0 0 ELIXVIT Null true 5000
Regular Misc Unequippable SCROLL_OF Misc NONE Scroll of Healing 1 0 0 0 0 0 0 0 0 SCROLL Healing true 50
Regular Misc Unequippable SCROLL_OF Misc NONE Scroll of Search 1 0 0 0 0 0 0 0 0 SCROLL Search true 50
Regular Misc Unequippable SCROLL_OF Misc NONE Scroll of Lightning 4 0 0 0 0 0 0 0 0 SCROLLT Lightning true 150
Regular Misc Unequippable SCROLL_OF Misc NONE Scroll of Identify 1 0 0 0 0 0 0 0 0 SCROLL Identify true 100
Regular Misc Unequippable SCROLL_OF Misc NONE Scroll of Resurrect 1 0 0 0 0 0 0 0 0 SCROLLT Resurrect true 250
Regular Misc Unequippable SCROLL_OF Misc NONE Scroll of Fire Wall 4 0 0 0 0 0 0 17 0 SCROLLT FireWall true 400
Regular Misc Unequippable SCROLL_OF Misc NONE Scroll of Inferno 1 0 0 0 0 0 0 19 0 SCROLLT Inferno true 100
Regular Misc Unequippable SCROLL_OF Misc NONE Scroll of Town Portal 4 0 0 0 0 0 0 0 0 SCROLL TownPortal true 200
Regular Misc Unequippable SCROLL_OF Misc NONE Scroll of Flash 6 0 0 0 0 0 0 21 0 SCROLLT Flash true 500
Regular Misc Unequippable SCROLL_OF Misc NONE Scroll of Infravision 8 0 0 0 0 0 0 23 0 SCROLL Infravision true 600
Regular Misc Unequippable SCROLL_OF Misc NONE Scroll of Phasing 6 0 0 0 0 0 0 25 0 SCROLL Phasing true 200
Regular Misc Unequippable SCROLL_OF Misc NONE Scroll of Mana Shield 8 0 0 0 0 0 0 0 0 SCROLL ManaShield true 1200
Regular Misc Unequippable SCROLL_OF Misc NONE Scroll of Flame Wave 10 0 0 0 0 0 0 29 0 SCROLLT FlameWave true 650
Regular Misc Unequippable SCROLL_OF Misc NONE Scroll of Fireball 8 0 0 0 0 0 0 31 0 SCROLLT Fireball true 300
Regular Misc Unequippable SCROLL_OF Misc NONE Scroll of Stone Curse 6 0 0 0 0 0 0 33 0 SCROLLT StoneCurse true 800
Regular Misc Unequippable SCROLL_OF Misc NONE Scroll of Chain Lightning 10 0 0 0 0 0 0 35 0 SCROLLT ChainLightning true 750
Regular Misc Unequippable SCROLL_OF Misc NONE Scroll of Guardian 12 0 0 0 0 0 0 47 0 SCROLLT Guardian true 950
Never Misc Unequippable SCROLL_OF Misc NONE Non Item 0 0 0 0 0 0 0 0 0 NONE Null false 0
Regular Misc Unequippable SCROLL_OF Misc NONE Scroll of Nova 14 0 0 0 0 0 0 57 0 SCROLL Nova true 1300
Regular Misc Unequippable SCROLL_OF Misc NONE Scroll of Golem 10 0 0 0 0 0 0 51 0 SCROLLT Golem true 1100
Never Misc Unequippable SCROLL_OF Misc NONE Scroll of None 99 0 0 0 0 0 0 61 0 SCROLLT Null true 1000
Regular Misc Unequippable SCROLL_OF Misc NONE Scroll of Teleport 14 0 0 0 0 0 0 81 0 SCROLL Teleport true 3000
Regular Misc Unequippable SCROLL_OF Misc NONE Scroll of Apocalypse 22 0 0 0 0 0 0 117 0 SCROLL Apocalypse true 2000
Regular Misc Unequippable BOOK_BLUE Misc NONE Book of 2 0 0 0 0 0 0 0 0 BOOK Null true 0
Regular Misc Unequippable BOOK_BLUE Misc NONE Book of 8 0 0 0 0 0 0 0 0 BOOK Null true 0
Regular Misc Unequippable BOOK_BLUE Misc NONE Book of 14 0 0 0 0 0 0 0 0 BOOK Null true 0
Regular Misc Unequippable BOOK_BLUE Misc NONE Book of 20 0 0 0 0 0 0 0 0 BOOK Null true 0
Regular Weapon One-handed DAGGER Sword DAGGER Dagger Dagger 1 16 1 4 0 0 0 0 0 NONE Null false 60
Regular Weapon One-handed SHORT_SWORD Sword NONE Short Sword Sword 1 24 2 6 0 0 18 0 0 NONE Null false 120
Regular Weapon One-handed FALCHION Sword FALCHION Falchion Sword 2 20 4 8 0 0 30 0 0 NONE Null false 250
Regular Weapon One-handed SCIMITAR Sword SCIMITAR Scimitar Sword 4 28 3 7 0 0 23 0 23 NONE Null false 200
Regular Weapon One-handed CLAYMORE Sword CLAYMORE Claymore Sword 5 36 1 12 0 0 35 0 0 NONE Null false 450
Regular Weapon One-handed BLADE Sword NONE Blade Blade 4 30 3 8 0 0 25 0 30 NONE Null false 280
Regular Weapon One-handed SABRE Sword SABRE Sabre Sabre 1 45 1 8 0 0 17 0 0 NONE Null false 170
Regular Weapon One-handed LONG_SWORD Sword LONGSWR Long Sword Sword 6 40 2 10 0 0 30 0 30 NONE Null false 350
Regular Weapon One-handed BROAD_SWORD Sword BROADSWR Broad Sword Sword 8 50 4 12 0 0 40 0 0 NONE Null false 750
Regular Weapon One-handed BASTARD_SWORD Sword BASTARDSWR Bastard Sword Sword 10 60 6 15 0 0 50 0 0 NONE Null false 1000
Regular Weapon Two-handed TWO_HANDED_SWORD Sword TWOHANDSWR Two-Handed Sword Sword 14 75 8 16 0 0 65 0 0 NONE Null false 1800
Regular Weapon Two-handed GREAT_SWORD Sword GREATSWR Great Sword Sword 17 100 10 20 0 0 75 0 0 NONE Null false 3000
Regular Weapon Two-handed SMALL_AXE Axe SMALLAXE Small Axe Axe 2 24 2 10 0 0 0 0 0 NONE Null false 150
Regular Weapon Two-handed AXE Axe NONE Axe Axe 4 32 4 12 0 0 22 0 0 NONE Null false 450
Regular Weapon Two-handed LARGE_AXE Axe LARGEAXE Large Axe Axe 6 40 6 16 0 0 30 0 0 NONE Null false 750
Regular Weapon Two-handed BROAD_AXE Axe BROADAXE Broad Axe Axe 8 50 8 20 0 0 50 0 0 NONE Null false 1000
Regular Weapon Two-handed BATTLE_AXE Axe BATTLEAXE Battle Axe Axe 10 60 10 25 0 0 65 0 0 NONE Null false 1500
Regular Weapon Two-handed GREAT_AXE Axe GREATAXE Great Axe Axe 12 75 12 30 0 0 80 0 0 NONE Null false 2500
Regular Weapon One-handed MACE Mace MACE Mace Mace 2 32 1 8 0 0 16 0 0 NONE Null false 200
Regular Weapon One-handed MORNING_STAR Mace MORNSTAR Morning Star Mace 3 40 1 10 0 0 26 0 0 NONE Null false 300
Regular Weapon One-handed WAR_HAMMER Mace WARHAMMER War Hammer Hammer 5 50 5 9 0 0 40 0 0 NONE Null false 600
Regular Weapon One-handed SPIKED_CLUB Mace SPIKCLUB Spiked Club Club 4 20 3 6 0 0 18 0 0 NONE Null false 225
Regular Weapon One-handed CLUB Mace SPIKCLUB Club Club 1 20 1 6 0 0 0 0 0 NONE Null false 20
Regular Weapon One-handed FLAIL Mace FLAIL Flail Flail 7 36 2 12 0 0 30 0 0 NONE Null false 500
Regular Weapon Two-handed MAUL Mace MAUL Maul Maul 10 50 6 20 0 0 55 0 0 NONE Null false 900
Double Weapon Two-handed SHORT_BOW Bow SHORTBOW Short Bow Bow 1 30 1 4 0 0 0 0 0 NONE Null false 100
Double Weapon Two-handed HUNTERS_BOW Bow HUNTBOW Hunter's Bow Bow 3 40 2 5 0 0 20 0 35 NONE Null false 350
Double Weapon Two-handed HUNTERS_BOW Bow LONGBOW Long Bow Bow 5 35 1 6 0 0 25 0 30 NONE Null false 250
Double Weapon Two-handed COMPOSITE_BOW Bow COMPBOW Composite Bow Bow 7 45 3 6 0 0 25 0 40 NONE Null false 600
Double Weapon Two-handed SHORT_BATTLE_BOW Bow NONE Short Battle Bow Bow 9 45 3 7 0 0 30 0 50 NONE Null false 750
Double Weapon Two-handed LONG_BATTLE_BOW Bow BATTLEBOW Long Battle Bow Bow 11 50 1 10 0 0 30 0 60 NONE Null false 1000
Double Weapon Two-handed SHORT_WAR_BOW Bow NONE Short War Bow Bow 15 55 4 8 0 0 35 0 70 NONE Null false 1500
Double Weapon Two-handed LONG_WAR_BOW Bow WARBOW Long War Bow Bow 19 60 1 14 0 0 45 0 80 NONE Null false 2000
Regular Weapon Two-handed SHORT_STAFF Staff SHORTSTAFF Short Staff Staff 1 25 2 4 0 0 0 0 0 STAFF Null false 30
Regular Weapon Two-handed LONG_STAFF Staff LONGSTAFF Long Staff Staff 4 35 4 8 0 0 0 0 0 STAFF Null false 100
Regular Weapon Two-handed COMPOSITE_STAFF Staff COMPSTAFF Composite Staff Staff 6 45 5 10 0 0 0 0 0 STAFF Null false 500
Regular Weapon Two-handed SHORT_STAFF Staff QUARSTAFF Quarter Staff Staff 9 55 6 12 0 0 20 0 0 STAFF Null false 1000
Regular Weapon Two-handed WAR_STAFF Staff WARSTAFF War Staff Staff 12 75 8 16 0 0 30 0 0 STAFF Null false 1500
Regular Misc Ring RING Ring RING Ring Ring 5 0 0 0 0 0 0 0 0 RING Null false 1000
Regular Misc Ring RING Ring RING Ring Ring 10 0 0 0 0 0 0 0 0 RING Null false 1000
Regular Misc Ring RING Ring RING Ring Ring 15 0 0 0 0 0 0 0 0 RING Null false 1000
Regular Misc Amulet AMULET Amulet AMULET Amulet Amulet 8 0 0 0 0 0 0 0 0 AMULET Null false 1200
Regular Misc Amulet AMULET Amulet AMULET Amulet Amulet 16 0 0 0 0 0 0 0 0 AMULET Null false 1200
Regular Misc Unequippable RUNE_OF_FIRE Misc NONE Rune of Fire Rune 1 0 0 0 0 0 0 0 0 RUNEF Null true 100
Regular Misc Unequippable RUNE_OF_LIGHTNING Misc NONE Rune of Lightning Rune 3 0 0 0 0 0 0 13 0 RUNEL Null true 200
Regular Misc Unequippable GREATER_RUNE_OF_FIRE Misc NONE Greater Rune of Fire Rune 7 0 0 0 0 0 0 42 0 GR_RUNEF Null true 400
Regular Misc Unequippable GREATER_RUNE_OF_LIGHTNING Misc NONE Greater Rune of Lightning Rune 7 0 0 0 0 0 0 42 0 GR_RUNEL Null true 500
Regular Misc Unequippable RUNE_OF_STONE Misc NONE Rune of Stone Rune 7 0 0 0 0 0 0 25 0 RUNES Null true 300
IDI_SORCERER Never Weapon Two-handed SHORT_STAFF Staff NONE Short Staff of Charged Bolt 1 25 2 4 0 0 0 20 0 STAFF ChargedBolt false 520
IDI_ARENAPOT Never Misc Unequippable ARENA_POTION Misc NONE Arena Potion 7 0 0 0 0 0 0 0 0 ARENAPOT Null true 0
1 id dropRate class equipType cursorGraphic itemType uniqueBaseItem name shortName minMonsterLevel durability minDamage maxDamage minArmor maxArmor minStrength minMagic minDexterity specialEffects miscId spell usable value
2 IDI_GOLD Regular Gold Unequippable GOLD Gold NONE Gold 1 0 0 0 0 0 0 0 0 NONE Null true 0
3 IDI_WARRIOR Never Weapon One-handed SHORT_SWORD Sword NONE Short Sword 2 20 2 6 0 0 18 0 0 NONE Null false 50
4 IDI_WARRSHLD Never Armor One-handed BUCKLER Shield NONE Buckler 2 10 0 0 3 3 0 0 0 NONE Null false 50
5 IDI_WARRCLUB Never Weapon One-handed CLUB Mace SPIKCLUB Club 1 20 1 6 0 0 0 0 0 NONE Null false 20
6 IDI_ROGUE Never Weapon Two-handed SHORT_BOW Bow NONE Short Bow 1 30 1 4 0 0 0 0 0 NONE Null false 100
7 IDI_SORCERER Never Weapon Two-handed SHORT_STAFF Staff NONE Short Staff of Mana 1 25 2 4 0 0 0 20 0 STAFF Mana false 520
8 IDI_CLEAVER Never Weapon Two-handed CLEAVER Axe CLEAVER Cleaver 10 10 4 24 0 0 0 0 0 UNIQUE Null false 2000
9 IDI_SKCROWN Never Armor Helm THE_UNDEAD_CROWN Helm SKCROWN The Undead Crown 0 50 0 0 15 15 0 0 0 RandomStealLife UNIQUE Null false 10000
10 IDI_INFRARING Never Misc Ring EMPYREAN_BAND Ring INFRARING Empyrean Band 0 0 0 0 0 0 0 0 0 UNIQUE Null false 8000
11 IDI_ROCK Never Quest Unequippable MAGIC_ROCK Misc NONE Magic Rock 0 0 0 0 0 0 0 0 0 NONE Null false 0
12 IDI_OPTAMULET Never Misc Amulet OPTIC_AMULET Amulet OPTAMULET Optic Amulet 0 0 0 0 0 0 0 0 0 UNIQUE Null false 5000
13 IDI_TRING Never Misc Ring RING_OF_TRUTH Ring TRING Ring of Truth 0 0 0 0 0 0 0 0 0 UNIQUE Null false 1000
14 IDI_BANNER Never Quest Unequippable TAVERN_SIGN Misc NONE Tavern Sign 0 0 0 0 0 0 0 0 0 NONE Null false 0
15 IDI_HARCREST Never Armor Helm HARLEQUIN_CREST Helm HARCREST Harlequin Crest 0 15 0 0 0 0 0 0 0 UNIQUE Null false 15
16 IDI_STEELVEIL Never Armor Helm VIEL_OF_STEEL Helm STEELVEIL Veil of Steel 0 60 0 0 18 18 0 0 0 UNIQUE Null false 0
17 IDI_GLDNELIX Never Misc Unequippable GOLDEN_ELIXIR Misc ELIXIR Golden Elixir 15 0 0 0 0 0 0 0 0 NONE Null false 0
18 IDI_ANVIL Never Quest Unequippable ANVIL_OF_FURY Misc NONE Anvil of Fury 0 0 0 0 0 0 0 0 0 NONE Null false 0
19 IDI_MUSHROOM Never Quest Unequippable BLACK_MUSHROOM Misc NONE Black Mushroom 0 0 0 0 0 0 0 0 0 NONE Null false 0
20 IDI_BRAIN Never Quest Unequippable BRAIN Misc NONE Brain 0 0 0 0 0 0 0 0 0 NONE Null false 0
21 IDI_FUNGALTM Never Quest Unequippable FUNGAL_TOME Misc NONE Fungal Tome 0 0 0 0 0 0 0 0 0 NONE Null false 0
22 IDI_SPECELIX Never Misc Unequippable SPECTRAL_ELIXIR Misc ELIXIR Spectral Elixir 15 0 0 0 0 0 0 0 0 SPECELIX Null true 0
23 IDI_BLDSTONE Never Quest Unequippable BLOOD_STONE Misc NONE Blood Stone 0 0 0 0 0 0 0 0 0 NONE Null false 0
24 IDI_MAPOFDOOM Never Quest Unequippable MAP_OF_THE_STARS Misc MAPOFDOOM Cathedral Map 0 0 0 0 0 0 0 0 0 MAPOFDOOM Null true 0
25 IDI_EAR Never Quest Unequippable EAR_SORCERER Misc NONE Heart 0 0 0 0 0 0 0 0 0 EAR Null false 0
26 IDI_HEAL Never Misc Unequippable POTION_OF_HEALING Misc NONE Potion of Healing 0 0 0 0 0 0 0 0 0 HEAL Null true 50
27 IDI_MANA Never Misc Unequippable POTION_OF_MANA Misc NONE Potion of Mana 0 0 0 0 0 0 0 0 0 MANA Null true 50
28 IDI_IDENTIFY Never Misc Unequippable SCROLL_OF Misc NONE Scroll of Identify 1 0 0 0 0 0 0 0 0 SCROLL Identify true 200
29 IDI_PORTAL Never Misc Unequippable SCROLL_OF Misc NONE Scroll of Town Portal 4 0 0 0 0 0 0 0 0 SCROLL TownPortal true 200
30 IDI_ARMOFVAL Never Armor Armor ARKAINES_VALOR MediumArmor ARMOFVAL Arkaine's Valor 0 40 0 0 0 0 0 0 0 UNIQUE Null false 0
31 IDI_FULLHEAL Never Misc Unequippable POTION_OF_FULL_HEALING Misc NONE Potion of Full Healing 1 0 0 0 0 0 0 0 0 FULLHEAL Null true 150
32 IDI_FULLMANA Never Misc Unequippable POTION_OF_FULL_MANA Misc NONE Potion of Full Mana 1 0 0 0 0 0 0 0 0 FULLMANA Null true 150
33 IDI_GRISWOLD Never Weapon One-handed BROAD_SWORD Sword GRISWOLD Griswold's Edge 8 50 4 12 0 0 40 0 0 UNIQUE Null false 750
34 IDI_LGTFORGE Never Armor Armor BOVINE HeavyArmor BOVINE Bovine Plate 0 40 0 0 0 0 50 0 0 UNIQUE Null false 0
35 IDI_LAZSTAFF Never Misc Unequippable STAFF_OF_LAZARUS Misc LAZSTAFF Staff of Lazarus 0 0 0 0 0 0 0 0 0 NONE Null false 0
36 IDI_RESURRECT Never Misc Unequippable SCROLL_OF Misc NONE Scroll of Resurrect 1 0 0 0 0 0 0 0 0 SCROLLT Resurrect true 250
37 IDI_OIL Never Misc Unequippable OIL Misc NONE Blacksmith Oil 1 0 0 0 0 0 0 0 0 OILBSMTH Null true 100
38 IDI_SHORTSTAFF Never Weapon Two-handed SHORT_STAFF Staff NONE Short Staff 1 25 2 4 0 0 0 0 0 NONE Null false 20
39 IDI_BARDSWORD Never Weapon One-handed SHORT_SWORD Sword NONE Sword 2 8 1 5 0 0 15 0 20 NONE Null false 20
40 IDI_BARDDAGGER Never Weapon One-handed DAGGER Sword NONE Dagger 1 16 1 4 0 0 0 0 0 NONE Null false 20
41 IDI_RUNEBOMB Never Quest Unequippable RUNE_BOMB Misc NONE Rune Bomb 0 0 0 0 0 0 0 0 0 NONE Null false 0
42 IDI_THEODORE Never Quest Unequippable THEODORE Misc NONE Theodore 0 0 0 0 0 0 0 0 0 NONE Null false 0
43 IDI_AURIC Never Misc Amulet AURIC_AMULET Misc NONE Auric Amulet 0 0 0 0 0 0 0 0 0 AURIC Null false 100
44 IDI_NOTE1 Never Quest Unequippable TORN_NOTE_1 Misc NONE Torn Note 1 0 0 0 0 0 0 0 0 0 NONE Null false 0
45 IDI_NOTE2 Never Quest Unequippable TORN_NOTE_2 Misc NONE Torn Note 2 0 0 0 0 0 0 0 0 0 NONE Null false 0
46 IDI_NOTE3 Never Quest Unequippable TORN_NOTE_3 Misc NONE Torn Note 3 0 0 0 0 0 0 0 0 0 NONE Null false 0
47 IDI_FULLNOTE Never Quest Unequippable RECONSTRUCTED_NOTE Misc NONE Reconstructed Note 0 0 0 0 0 0 0 0 0 NOTE Null true 0
48 IDI_BROWNSUIT Never Quest Unequippable BROWN_SUIT Misc NONE Brown Suit 0 0 0 0 0 0 0 0 0 NONE Null false 0
49 IDI_GREYSUIT Never Quest Unequippable GREY_SUIT Misc NONE Grey Suit 0 0 0 0 0 0 0 0 0 NONE Null false 0
50 Regular Armor Helm CAP Helm NONE Cap Cap 1 15 0 0 1 3 0 0 0 NONE Null false 15
51 Regular Armor Helm SKULL_CAP Helm SKULLCAP Skull Cap Cap 4 20 0 0 2 4 0 0 0 NONE Null false 25
52 Regular Armor Helm HELM Helm HELM Helm Helm 8 30 0 0 4 6 25 0 0 NONE Null false 40
53 Regular Armor Helm FULL_HELM Helm NONE Full Helm Helm 12 35 0 0 6 8 35 0 0 NONE Null false 90
54 Regular Armor Helm CROWN Helm CROWN Crown Crown 16 40 0 0 8 12 0 0 0 NONE Null false 200
55 Regular Armor Helm GREAT_HELM Helm GREATHELM Great Helm Helm 20 60 0 0 10 15 50 0 0 NONE Null false 400
56 Regular Armor Armor CAPE LightArmor CAPE Cape Cape 1 12 0 0 1 5 0 0 0 NONE Null false 10
57 Regular Armor Armor RAGS LightArmor RAGS Rags Rags 1 6 0 0 2 6 0 0 0 NONE Null false 5
58 Regular Armor Armor CLOAK LightArmor CLOAK Cloak Cloak 2 18 0 0 3 7 0 0 0 NONE Null false 40
59 Regular Armor Armor ROBE LightArmor ROBE Robe Robe 3 24 0 0 4 7 0 0 0 NONE Null false 75
60 Regular Armor Armor QUILTED_ARMOR LightArmor NONE Quilted Armor Armor 4 30 0 0 7 10 0 0 0 NONE Null false 200
61 Regular Armor Armor LEATHER_ARMOR LightArmor LEATHARMOR Leather Armor Armor 6 35 0 0 10 13 0 0 0 NONE Null false 300
62 Regular Armor Armor HARD_LEATHER_ARMOR LightArmor NONE Hard Leather Armor Armor 7 40 0 0 11 14 0 0 0 NONE Null false 450
63 Regular Armor Armor STUDDED_LEATHER_ARMOR LightArmor STUDARMOR Studded Leather Armor Armor 9 45 0 0 15 17 20 0 0 NONE Null false 700
64 Regular Armor Armor RING_MAIL MediumArmor NONE Ring Mail Mail 11 50 0 0 17 20 25 0 0 NONE Null false 900
65 Regular Armor Armor CHAIN_MAIL MediumArmor CHAINMAIL Chain Mail Mail 13 55 0 0 18 22 30 0 0 NONE Null false 1250
66 Regular Armor Armor SCALE_MAIL MediumArmor NONE Scale Mail Mail 15 60 0 0 23 28 35 0 0 NONE Null false 2300
67 Regular Armor Armor BREAST_PLATE HeavyArmor BREASTPLATE Breast Plate Plate 16 80 0 0 20 24 40 0 0 NONE Null false 2800
68 Regular Armor Armor SPLINT_MAIL MediumArmor NONE Splint Mail Mail 17 65 0 0 30 35 40 0 0 NONE Null false 3250
69 Regular Armor Armor FIELD_PLATE HeavyArmor PLATEMAIL Plate Mail Plate 19 75 0 0 42 50 60 0 0 NONE Null false 4600
70 Regular Armor Armor FIELD_PLATE HeavyArmor NONE Field Plate Plate 21 80 0 0 40 45 65 0 0 NONE Null false 5800
71 Regular Armor Armor GOTHIC_PLATE HeavyArmor NONE Gothic Plate Plate 23 100 0 0 50 60 80 0 0 NONE Null false 8000
72 Regular Armor Armor FULL_PLATE_MAIL HeavyArmor FULLPLATE Full Plate Mail Plate 25 90 0 0 60 75 90 0 0 NONE Null false 6500
73 Regular Armor One-handed BUCKLER Shield BUCKLER Buckler Shield 1 16 0 0 1 5 0 0 0 NONE Null false 30
74 Regular Armor One-handed SMALL_SHIELD Shield SMALLSHIELD Small Shield Shield 5 24 0 0 3 8 25 0 0 NONE Null false 90
75 Regular Armor One-handed LARGE_SHIELD Shield LARGESHIELD Large Shield Shield 9 32 0 0 5 10 40 0 0 NONE Null false 200
76 Regular Armor One-handed KITE_SHIELD Shield KITESHIELD Kite Shield Shield 14 40 0 0 8 15 50 0 0 NONE Null false 400
77 Regular Armor One-handed TOWER_SHIELD Shield GOTHSHIELD Tower Shield Shield 20 50 0 0 12 20 60 0 0 NONE Null false 850
78 Regular Armor One-handed GOTHIC_SHIELD Shield GOTHSHIELD Gothic Shield Shield 23 60 0 0 14 18 80 0 0 NONE Null false 2300
79 Regular Misc Unequippable POTION_OF_HEALING Misc NONE Potion of Healing 1 0 0 0 0 0 0 0 0 HEAL Null true 50
80 Regular Misc Unequippable POTION_OF_FULL_HEALING Misc NONE Potion of Full Healing 1 0 0 0 0 0 0 0 0 FULLHEAL Null true 150
81 Regular Misc Unequippable POTION_OF_MANA Misc NONE Potion of Mana 1 0 0 0 0 0 0 0 0 MANA Null true 50
82 Regular Misc Unequippable POTION_OF_FULL_MANA Misc NONE Potion of Full Mana 1 0 0 0 0 0 0 0 0 FULLMANA Null true 150
83 Regular Misc Unequippable POTION_OF_REJUVENATION Misc NONE Potion of Rejuvenation 3 0 0 0 0 0 0 0 0 REJUV Null true 120
84 Regular Misc Unequippable POTION_OF_FULL_REJUVENATION Misc NONE Potion of Full Rejuvenation 7 0 0 0 0 0 0 0 0 FULLREJUV Null true 600
85 Regular Misc Unequippable OIL Misc NONE Blacksmith Oil 1 0 0 0 0 0 0 0 0 OILBSMTH Null true 100
86 Regular Misc Unequippable OIL Misc NONE Oil of Accuracy 1 0 0 0 0 0 0 0 0 OILACC Null true 500
87 Regular Misc Unequippable OIL Misc NONE Oil of Sharpness 1 0 0 0 0 0 0 0 0 OILSHARP Null true 500
88 Regular Misc Unequippable OIL Misc NONE Oil 10 0 0 0 0 0 0 0 0 OILOF Null true 0
89 Regular Misc Unequippable ELIXIR_OF_STRENGTH Misc NONE Elixir of Strength 15 0 0 0 0 0 0 0 0 ELIXSTR Null true 5000
90 Regular Misc Unequippable ELIXIR_OF_MAGIC Misc NONE Elixir of Magic 15 0 0 0 0 0 0 0 0 ELIXMAG Null true 5000
91 Regular Misc Unequippable ELIXIR_OF_DEXTERITY Misc NONE Elixir of Dexterity 15 0 0 0 0 0 0 0 0 ELIXDEX Null true 5000
92 Regular Misc Unequippable ELIXIR_OF_VITALITY Misc NONE Elixir of Vitality 20 0 0 0 0 0 0 0 0 ELIXVIT Null true 5000
93 Regular Misc Unequippable SCROLL_OF Misc NONE Scroll of Healing 1 0 0 0 0 0 0 0 0 SCROLL Healing true 50
94 Regular Misc Unequippable SCROLL_OF Misc NONE Scroll of Search 1 0 0 0 0 0 0 0 0 SCROLL Search true 50
95 Regular Misc Unequippable SCROLL_OF Misc NONE Scroll of Lightning 4 0 0 0 0 0 0 0 0 SCROLLT Lightning true 150
96 Regular Misc Unequippable SCROLL_OF Misc NONE Scroll of Identify 1 0 0 0 0 0 0 0 0 SCROLL Identify true 100
97 Regular Misc Unequippable SCROLL_OF Misc NONE Scroll of Resurrect 1 0 0 0 0 0 0 0 0 SCROLLT Resurrect true 250
98 Regular Misc Unequippable SCROLL_OF Misc NONE Scroll of Fire Wall 4 0 0 0 0 0 0 17 0 SCROLLT FireWall true 400
99 Regular Misc Unequippable SCROLL_OF Misc NONE Scroll of Inferno 1 0 0 0 0 0 0 19 0 SCROLLT Inferno true 100
100 Regular Misc Unequippable SCROLL_OF Misc NONE Scroll of Town Portal 4 0 0 0 0 0 0 0 0 SCROLL TownPortal true 200
101 Regular Misc Unequippable SCROLL_OF Misc NONE Scroll of Flash 6 0 0 0 0 0 0 21 0 SCROLLT Flash true 500
102 Regular Misc Unequippable SCROLL_OF Misc NONE Scroll of Infravision 8 0 0 0 0 0 0 23 0 SCROLL Infravision true 600
103 Regular Misc Unequippable SCROLL_OF Misc NONE Scroll of Phasing 6 0 0 0 0 0 0 25 0 SCROLL Phasing true 200
104 Regular Misc Unequippable SCROLL_OF Misc NONE Scroll of Mana Shield 8 0 0 0 0 0 0 0 0 SCROLL ManaShield true 1200
105 Regular Misc Unequippable SCROLL_OF Misc NONE Scroll of Flame Wave 10 0 0 0 0 0 0 29 0 SCROLLT FlameWave true 650
106 Regular Misc Unequippable SCROLL_OF Misc NONE Scroll of Fireball 8 0 0 0 0 0 0 31 0 SCROLLT Fireball true 300
107 Regular Misc Unequippable SCROLL_OF Misc NONE Scroll of Stone Curse 6 0 0 0 0 0 0 33 0 SCROLLT StoneCurse true 800
108 Regular Misc Unequippable SCROLL_OF Misc NONE Scroll of Chain Lightning 10 0 0 0 0 0 0 35 0 SCROLLT ChainLightning true 750
109 Regular Misc Unequippable SCROLL_OF Misc NONE Scroll of Guardian 12 0 0 0 0 0 0 47 0 SCROLLT Guardian true 950
110 Never Misc Unequippable SCROLL_OF Misc NONE Non Item 0 0 0 0 0 0 0 0 0 NONE Null false 0
111 Regular Misc Unequippable SCROLL_OF Misc NONE Scroll of Nova 14 0 0 0 0 0 0 57 0 SCROLL Nova true 1300
112 Regular Misc Unequippable SCROLL_OF Misc NONE Scroll of Golem 10 0 0 0 0 0 0 51 0 SCROLLT Golem true 1100
113 Never Misc Unequippable SCROLL_OF Misc NONE Scroll of None 99 0 0 0 0 0 0 61 0 SCROLLT Null true 1000
114 Regular Misc Unequippable SCROLL_OF Misc NONE Scroll of Teleport 14 0 0 0 0 0 0 81 0 SCROLL Teleport true 3000
115 Regular Misc Unequippable SCROLL_OF Misc NONE Scroll of Apocalypse 22 0 0 0 0 0 0 117 0 SCROLL Apocalypse true 2000
116 Regular Misc Unequippable BOOK_BLUE Misc NONE Book of 2 0 0 0 0 0 0 0 0 BOOK Null true 0
117 Regular Misc Unequippable BOOK_BLUE Misc NONE Book of 8 0 0 0 0 0 0 0 0 BOOK Null true 0
118 Regular Misc Unequippable BOOK_BLUE Misc NONE Book of 14 0 0 0 0 0 0 0 0 BOOK Null true 0
119 Regular Misc Unequippable BOOK_BLUE Misc NONE Book of 20 0 0 0 0 0 0 0 0 BOOK Null true 0
120 Regular Weapon One-handed DAGGER Sword DAGGER Dagger Dagger 1 16 1 4 0 0 0 0 0 NONE Null false 60
121 Regular Weapon One-handed SHORT_SWORD Sword NONE Short Sword Sword 1 24 2 6 0 0 18 0 0 NONE Null false 120
122 Regular Weapon One-handed FALCHION Sword FALCHION Falchion Sword 2 20 4 8 0 0 30 0 0 NONE Null false 250
123 Regular Weapon One-handed SCIMITAR Sword SCIMITAR Scimitar Sword 4 28 3 7 0 0 23 0 23 NONE Null false 200
124 Regular Weapon One-handed CLAYMORE Sword CLAYMORE Claymore Sword 5 36 1 12 0 0 35 0 0 NONE Null false 450
125 Regular Weapon One-handed BLADE Sword NONE Blade Blade 4 30 3 8 0 0 25 0 30 NONE Null false 280
126 Regular Weapon One-handed SABRE Sword SABRE Sabre Sabre 1 45 1 8 0 0 17 0 0 NONE Null false 170
127 Regular Weapon One-handed LONG_SWORD Sword LONGSWR Long Sword Sword 6 40 2 10 0 0 30 0 30 NONE Null false 350
128 Regular Weapon One-handed BROAD_SWORD Sword BROADSWR Broad Sword Sword 8 50 4 12 0 0 40 0 0 NONE Null false 750
129 Regular Weapon One-handed BASTARD_SWORD Sword BASTARDSWR Bastard Sword Sword 10 60 6 15 0 0 50 0 0 NONE Null false 1000
130 Regular Weapon Two-handed TWO_HANDED_SWORD Sword TWOHANDSWR Two-Handed Sword Sword 14 75 8 16 0 0 65 0 0 NONE Null false 1800
131 Regular Weapon Two-handed GREAT_SWORD Sword GREATSWR Great Sword Sword 17 100 10 20 0 0 75 0 0 NONE Null false 3000
132 Regular Weapon Two-handed SMALL_AXE Axe SMALLAXE Small Axe Axe 2 24 2 10 0 0 0 0 0 NONE Null false 150
133 Regular Weapon Two-handed AXE Axe NONE Axe Axe 4 32 4 12 0 0 22 0 0 NONE Null false 450
134 Regular Weapon Two-handed LARGE_AXE Axe LARGEAXE Large Axe Axe 6 40 6 16 0 0 30 0 0 NONE Null false 750
135 Regular Weapon Two-handed BROAD_AXE Axe BROADAXE Broad Axe Axe 8 50 8 20 0 0 50 0 0 NONE Null false 1000
136 Regular Weapon Two-handed BATTLE_AXE Axe BATTLEAXE Battle Axe Axe 10 60 10 25 0 0 65 0 0 NONE Null false 1500
137 Regular Weapon Two-handed GREAT_AXE Axe GREATAXE Great Axe Axe 12 75 12 30 0 0 80 0 0 NONE Null false 2500
138 Regular Weapon One-handed MACE Mace MACE Mace Mace 2 32 1 8 0 0 16 0 0 NONE Null false 200
139 Regular Weapon One-handed MORNING_STAR Mace MORNSTAR Morning Star Mace 3 40 1 10 0 0 26 0 0 NONE Null false 300
140 Regular Weapon One-handed WAR_HAMMER Mace WARHAMMER War Hammer Hammer 5 50 5 9 0 0 40 0 0 NONE Null false 600
141 Regular Weapon One-handed SPIKED_CLUB Mace SPIKCLUB Spiked Club Club 4 20 3 6 0 0 18 0 0 NONE Null false 225
142 Regular Weapon One-handed CLUB Mace SPIKCLUB Club Club 1 20 1 6 0 0 0 0 0 NONE Null false 20
143 Regular Weapon One-handed FLAIL Mace FLAIL Flail Flail 7 36 2 12 0 0 30 0 0 NONE Null false 500
144 Regular Weapon Two-handed MAUL Mace MAUL Maul Maul 10 50 6 20 0 0 55 0 0 NONE Null false 900
145 Double Weapon Two-handed SHORT_BOW Bow SHORTBOW Short Bow Bow 1 30 1 4 0 0 0 0 0 NONE Null false 100
146 Double Weapon Two-handed HUNTERS_BOW Bow HUNTBOW Hunter's Bow Bow 3 40 2 5 0 0 20 0 35 NONE Null false 350
147 Double Weapon Two-handed HUNTERS_BOW Bow LONGBOW Long Bow Bow 5 35 1 6 0 0 25 0 30 NONE Null false 250
148 Double Weapon Two-handed COMPOSITE_BOW Bow COMPBOW Composite Bow Bow 7 45 3 6 0 0 25 0 40 NONE Null false 600
149 Double Weapon Two-handed SHORT_BATTLE_BOW Bow NONE Short Battle Bow Bow 9 45 3 7 0 0 30 0 50 NONE Null false 750
150 Double Weapon Two-handed LONG_BATTLE_BOW Bow BATTLEBOW Long Battle Bow Bow 11 50 1 10 0 0 30 0 60 NONE Null false 1000
151 Double Weapon Two-handed SHORT_WAR_BOW Bow NONE Short War Bow Bow 15 55 4 8 0 0 35 0 70 NONE Null false 1500
152 Double Weapon Two-handed LONG_WAR_BOW Bow WARBOW Long War Bow Bow 19 60 1 14 0 0 45 0 80 NONE Null false 2000
153 Regular Weapon Two-handed SHORT_STAFF Staff SHORTSTAFF Short Staff Staff 1 25 2 4 0 0 0 0 0 STAFF Null false 30
154 Regular Weapon Two-handed LONG_STAFF Staff LONGSTAFF Long Staff Staff 4 35 4 8 0 0 0 0 0 STAFF Null false 100
155 Regular Weapon Two-handed COMPOSITE_STAFF Staff COMPSTAFF Composite Staff Staff 6 45 5 10 0 0 0 0 0 STAFF Null false 500
156 Regular Weapon Two-handed SHORT_STAFF Staff QUARSTAFF Quarter Staff Staff 9 55 6 12 0 0 20 0 0 STAFF Null false 1000
157 Regular Weapon Two-handed WAR_STAFF Staff WARSTAFF War Staff Staff 12 75 8 16 0 0 30 0 0 STAFF Null false 1500
158 Regular Misc Ring RING Ring RING Ring Ring 5 0 0 0 0 0 0 0 0 RING Null false 1000
159 Regular Misc Ring RING Ring RING Ring Ring 10 0 0 0 0 0 0 0 0 RING Null false 1000
160 Regular Misc Ring RING Ring RING Ring Ring 15 0 0 0 0 0 0 0 0 RING Null false 1000
161 Regular Misc Amulet AMULET Amulet AMULET Amulet Amulet 8 0 0 0 0 0 0 0 0 AMULET Null false 1200
162 Regular Misc Amulet AMULET Amulet AMULET Amulet Amulet 16 0 0 0 0 0 0 0 0 AMULET Null false 1200
163 Regular Misc Unequippable RUNE_OF_FIRE Misc NONE Rune of Fire Rune 1 0 0 0 0 0 0 0 0 RUNEF Null true 100
164 Regular Misc Unequippable RUNE_OF_LIGHTNING Misc NONE Rune of Lightning Rune 3 0 0 0 0 0 0 13 0 RUNEL Null true 200
165 Regular Misc Unequippable GREATER_RUNE_OF_FIRE Misc NONE Greater Rune of Fire Rune 7 0 0 0 0 0 0 42 0 GR_RUNEF Null true 400
166 Regular Misc Unequippable GREATER_RUNE_OF_LIGHTNING Misc NONE Greater Rune of Lightning Rune 7 0 0 0 0 0 0 42 0 GR_RUNEL Null true 500
167 Regular Misc Unequippable RUNE_OF_STONE Misc NONE Rune of Stone Rune 7 0 0 0 0 0 0 25 0 RUNES Null true 300
168 IDI_SORCERER Never Weapon Two-handed SHORT_STAFF Staff NONE Short Staff of Charged Bolt 1 25 2 4 0 0 0 20 0 STAFF ChargedBolt false 520
169 IDI_ARENAPOT Never Misc Unequippable ARENA_POTION Misc NONE Arena Potion 7 0 0 0 0 0 0 0 0 ARENAPOT Null true 0

111
Packaging/resources/assets/txtdata/items/unique_itemdat.tsv

@ -0,0 +1,111 @@
name uniqueBaseItem minLevel value powers[0].type powers[0].param1 powers[0].param2 powers[1].type powers[1].param1 powers[1].param2 powers[2].type powers[2].param1 powers[2].param2 powers[3].type powers[3].param1 powers[3].param2 powers[4].type powers[4].param1 powers[4].param2 powers[5].type powers[5].param1 powers[5].param2
The Butcher's Cleaver CLEAVER 1 3650 STR 10 10 SETDAM 4 24 SETDUR 10 10
The Undead Crown SKCROWN 1 16650 RNDSTEALLIFE SETAC 8 8 INVCURS 77
Empyrean Band INFRARING 1 8000 ATTRIBS 2 2 LIGHT 2 2 FASTRECOVER 1 1 ABSHALFTRAP
Optic Amulet OPTAMULET 1 9750 LIGHT 2 2 LIGHTRES 20 20 GETHIT 1 1 MAG 5 5 INVCURS 44
Ring of Truth TRING 1 9100 LIFE 10 10 GETHIT 1 1 ALLRES 10 10 INVCURS 10
Harlequin Crest HARCREST 1 4000 AC_CURSE 3 3 GETHIT 1 1 ATTRIBS 2 2 LIFE 7 7 MANA 7 7 INVCURS 81
Veil of Steel STEELVEIL 1 63800 ALLRES 50 50 LIGHT_CURSE 2 2 ACP 60 60 MANA_CURSE 30 30 STR 15 15 VIT 15 15
Arkaine's Valor ARMOFVAL 1 42000 SETAC 25 25 VIT 10 10 GETHIT 3 3 FASTRECOVER 3 3
Griswold's Edge GRISWOLD 1 42000 FIREDAM 1 10 TOHIT 25 25 FASTATTACK 2 2 KNOCKBACK MANA 20 20 LIFE_CURSE 20 20
Bovine Plate BOVINE 1 400 SETAC 150 150 INDESTRUCTIBLE LIGHT 5 5 ALLRES 30 30 MANA_CURSE 50 50 SPLLVLADD -2 -2
The Rift Bow SHORTBOW 1 1800 RNDARROWVEL DAMMOD 2 2 DEX_CURSE 3 3
The Needler SHORTBOW 2 8900 TOHIT 50 50 SETDAM 1 3 FASTATTACK 2 2 INVCURS 158
The Celestial Bow LONGBOW 2 1200 NOMINSTR DAMMOD 2 2 SETAC 5 5 INVCURS 133
Deadly Hunter COMPBOW 3 8750 3XDAMVDEM 10 10 TOHIT 20 20 MAG_CURSE 5 5 INVCURS 108
Bow of the Dead COMPBOW 5 2500 TOHIT 10 10 DEX 4 4 VIT_CURSE 3 3 LIGHT_CURSE 2 2 SETDUR 30 30 INVCURS 108
The Blackoak Bow LONGBOW 5 2500 DEX 10 10 VIT_CURSE 10 10 DAMP 50 50 LIGHT_CURSE 1 1
Flamedart HUNTBOW 10 14250 FIRE_ARROWS 0 0 FIREDAM 1 6 TOHIT 20 20 FIRERES 40 40
Fleshstinger LONGBOW 13 16500 DEX 15 15 TOHIT 40 40 DAMP 80 80 DUR 6 6
Windforce WARBOW 17 37750 STR 5 5 DAMP 200 200 KNOCKBACK INVCURS 164
Eaglehorn BATTLEBOW 26 42500 DEX 20 20 TOHIT 50 50 DAMP 100 100 INDESTRUCTIBLE INVCURS 108
Gonnagal's Dirk DAGGER 1 7040 DEX_CURSE 5 5 DAMMOD 4 4 FASTATTACK 2 2 FIRERES 25 25 INVCURS 54
The Defender SABRE 1 2000 SETAC 5 5 VIT 5 5 TOHIT_CURSE 5 5
Gryphon's Claw FALCHION 1 1000 DAMP 100 100 MAG_CURSE 2 2 DEX_CURSE 5 5 INVCURS 68
Black Razor DAGGER 1 2000 DAMP 150 150 VIT 2 2 SETDUR 5 5 INVCURS 53
Gibbous Moon BROADSWR 2 6660 ATTRIBS 2 2 DAMP 25 25 MANA 15 15 LIGHT_CURSE 3 3
Ice Shank LONGSWR 3 5250 FIRERES 40 40 SETDUR 15 15 STR 5 10
The Executioner's Blade FALCHION 3 7080 DAMP 150 150 LIFE_CURSE 10 10 LIGHT_CURSE 1 1 DUR 200 200 INVCURS 58
The Bonesaw CLAYMORE 6 4400 DAMMOD 10 10 STR 10 10 MAG_CURSE 5 5 DEX_CURSE 5 5 LIFE 10 10 MANA_CURSE 10 10
Shadowhawk BROADSWR 8 13750 LIGHT_CURSE 2 2 STEALLIFE 5 5 TOHIT 15 15 ALLRES 5 5
Wizardspike DAGGER 11 12920 MAG 15 15 MANA 35 35 TOHIT 25 25 ALLRES 15 15 INVCURS 50
Lightsabre SABRE 13 19150 LIGHT 2 2 LIGHTDAM 1 10 TOHIT 20 20 LIGHTRES 50 50
The Falcon's Talon SCIMITAR 15 7867 FASTATTACK 4 4 TOHIT 20 20 DAMP_CURSE 33 33 DEX 10 10 INVCURS 68
Inferno LONGSWR 17 34600 FIREDAM 2 12 LIGHT 3 3 MANA 20 20 FIRERES 80 80
Doombringer BASTARDSWR 19 18250 TOHIT 25 25 DAMP 250 250 ATTRIBS_CURSE 5 5 LIFE_CURSE 25 25 LIGHT_CURSE 2 2
The Grizzly TWOHANDSWR 23 50000 STR 20 20 VIT_CURSE 5 5 DAMP 200 200 KNOCKBACK DUR 100 100 INVCURS 160
The Grandfather GREATSWR 27 119800 ONEHAND ATTRIBS 5 5 TOHIT 20 20 DAMP 70 70 LIFE 20 20 INVCURS 161
The Mangler LARGEAXE 2 2850 DAMP 200 200 DEX_CURSE 5 5 MAG_CURSE 5 5 MANA_CURSE 10 10 INVCURS 144
Sharp Beak LARGEAXE 2 2850 LIFE 20 20 MAG_CURSE 10 10 MANA_CURSE 10 10 INVCURS 143
BloodSlayer BROADAXE 3 2500 DAMP 100 100 3XDAMVDEM 50 50 ATTRIBS_CURSE 5 5 SPLLVLADD -1 -1 INVCURS 144
The Celestial Axe BATTLEAXE 4 14100 NOMINSTR TOHIT 15 15 LIFE 15 15 STR_CURSE 15 15
Wicked Axe LARGEAXE 5 31150 TOHIT 30 30 DEX 10 10 VIT_CURSE 10 10 GETHIT 1 6 INDESTRUCTIBLE INVCURS 143
Stonecleaver BROADAXE 7 23900 LIFE 30 30 TOHIT 20 20 DAMP 50 50 LIGHTRES 40 40 INVCURS 104
Aguinara's Hatchet SMALLAXE 12 24800 SPLLVLADD 1 1 MAG 10 10 MAGICRES 80 80
Hellslayer BATTLEAXE 15 26200 STR 8 8 VIT 8 8 DAMP 100 100 LIFE 25 25 MANA_CURSE 25 25
Messerschmidt's Reaver GREATAXE 25 58000 DAMP 200 200 DAMMOD 15 15 ATTRIBS 5 5 LIFE_CURSE 50 50 FIREDAM 2 12 INVCURS 163
Crackrust MACE 1 11375 ATTRIBS 2 2 INDESTRUCTIBLE ALLRES 15 15 DAMP 50 50 SPLLVLADD -1 -1
Hammer of Jholm MAUL 1 8700 DAMP 4 10 INDESTRUCTIBLE STR 3 3 TOHIT 15 15
Civerb's Cudgel MACE 1 2000 3XDAMVDEM 35 35 DEX_CURSE 5 5 MAG_CURSE 2 2
The Celestial Star FLAIL 2 7810 NOMINSTR LIGHT 2 2 DAMMOD 10 10 AC_CURSE 8 8 INVCURS 131
Baranar's Star MORNSTAR 5 6850 TOHIT 12 12 DAMP 80 80 FASTATTACK 1 1 VIT 4 4 DEX_CURSE 4 4 SETDUR 60 60
Gnarled Root SPIKCLUB 9 9820 TOHIT 20 20 DAMP 300 300 DEX 10 10 MAG 5 5 ALLRES 10 10 AC_CURSE 10 10
The Cranium Basher MAUL 12 36500 DAMMOD 20 20 STR 15 15 INDESTRUCTIBLE MANA_CURSE 150 150 ALLRES 5 5 INVCURS 122
Schaefer's Hammer WARHAMMER 16 56125 DAMP_CURSE 100 100 LIGHTDAM 1 50 LIFE 50 50 TOHIT 30 30 LIGHTRES 80 80 LIGHT 1 1
Dreamflange MACE 26 26450 MAG 30 30 MANA 50 50 MAGICRES 50 50 LIGHT 2 2 SPLLVLADD 1 1
Staff of Shadows LONGSTAFF 2 1250 MAG_CURSE 10 10 TOHIT 10 10 DAMP 60 60 LIGHT_CURSE 2 2 FASTATTACK 1 1
Immolator LONGSTAFF 4 3900 FIRERES 20 20 FIREDAM 4 4 MANA 10 10 VIT_CURSE 5 5
Storm Spire WARSTAFF 8 22500 LIGHTRES 50 50 LIGHTDAM 2 8 STR 10 10 MAG_CURSE 10 10
Gleamsong SHORTSTAFF 8 6520 MANA 25 25 STR_CURSE 3 3 VIT_CURSE 3 3 SPELL 10 76
Thundercall COMPSTAFF 14 22250 TOHIT 35 35 LIGHTDAM 1 10 SPELL 3 76 LIGHTRES 30 30 LIGHT 2 2
The Protector SHORTSTAFF 16 17240 VIT 5 5 GETHIT 5 5 SETAC 40 40 SPELL 2 86 THORNS 1 3 INVCURS 162
Naj's Puzzler LONGSTAFF 18 34000 MAG 20 20 DEX 10 10 ALLRES 20 20 SPELL 23 57 LIFE_CURSE 25 25
Mindcry QUARSTAFF 20 41500 MAG 15 15 SPELL 13 69 ALLRES 15 15 SPLLVLADD 1 1
Rod of Onan WARSTAFF 22 44167 SPELL 21 50 DAMP 100 100 ATTRIBS 5 5
Helm of Spirits HELM 1 7525 STEALLIFE 5 5 INVCURS 77
Thinking Cap SKULLCAP 6 2020 MANA 30 30 SPLLVLADD 2 2 ALLRES 20 20 SETDUR 1 1 INVCURS 93
OverLord's Helm HELM 7 12500 STR 20 20 DEX 15 15 VIT 5 5 MAG_CURSE 20 20 SETDUR 15 15 INVCURS 99
Fool's Crest HELM 12 10150 ATTRIBS_CURSE 4 4 LIFE 100 100 GETHIT_CURSE 1 6 THORNS 1 3 INVCURS 80
Gotterdamerung GREATHELM 21 54900 ATTRIBS 20 20 SETAC 60 60 GETHIT 4 4 ALLRESZERO LIGHT_CURSE 4 4 INVCURS 85
Royal Circlet CROWN 27 24875 ATTRIBS 10 10 MANA 40 40 SETAC 40 40 LIGHT 1 1 INVCURS 79
Torn Flesh of Souls RAGS 2 4825 SETAC 8 8 VIT 10 10 GETHIT 1 1 INDESTRUCTIBLE INVCURS 92
The Gladiator's Bane STUDARMOR 6 3450 SETAC 25 25 GETHIT 2 2 DUR 200 200 ATTRIBS_CURSE 3 3
The Rainbow Cloak CLOAK 2 4900 SETAC 10 10 ATTRIBS 1 1 ALLRES 10 10 LIFE 5 5 DUR 50 50 INVCURS 138
Leather of Aut LEATHARMOR 4 10550 SETAC 15 15 STR 5 5 MAG_CURSE 5 5 DEX 5 5 INDESTRUCTIBLE
Wisdom's Wrap ROBE 5 6200 MAG 5 5 MANA 10 10 LIGHTRES 25 25 SETAC 15 15 GETHIT 1 1 INVCURS 138
Sparking Mail CHAINMAIL 9 15750 SETAC 30 30 LIGHTDAM 1 10
Scavenger Carapace BREASTPLATE 13 14000 GETHIT 15 15 AC_CURSE 30 30 DEX 5 5 LIGHTRES 40 40
Nightscape CAPE 16 11600 FASTRECOVER 2 2 LIGHT_CURSE 4 4 SETAC 15 15 DEX 3 3 ALLRES 20 20 INVCURS 138
Naj's Light Plate PLATEMAIL 19 78700 NOMINSTR MAG 5 5 MANA 20 20 ALLRES 20 20 SPLLVLADD 1 1 INVCURS 159
Demonspike Coat FULLPLATE 25 251175 SETAC 100 100 GETHIT 6 6 STR 10 10 INDESTRUCTIBLE FIRERES 50 50
The Deflector BUCKLER 1 1500 SETAC 7 7 ALLRES 10 10 DAMP_CURSE 20 20 TOHIT_CURSE 5 5 INVCURS 83
Split Skull Shield BUCKLER 1 2025 SETAC 10 10 LIFE 10 10 STR 2 2 LIGHT_CURSE 1 1 SETDUR 15 15 INVCURS 116
Dragon's Breach KITESHIELD 2 19200 FIRERES 25 25 STR 5 5 SETAC 20 20 MAG_CURSE 5 5 INDESTRUCTIBLE INVCURS 117
Blackoak Shield SMALLSHIELD 4 5725 DEX 10 10 VIT_CURSE 10 10 SETAC 18 18 LIGHT_CURSE 1 1 DUR 150 150 INVCURS 146
Holy Defender LARGESHIELD 10 13800 SETAC 15 15 GETHIT 2 2 FIRERES 20 20 DUR 200 200 FASTBLOCK 1 1 INVCURS 146
Stormshield GOTHSHIELD 24 49000 SETAC 40 40 GETHIT_CURSE 4 4 STR 10 10 INDESTRUCTIBLE FASTBLOCK 1 1 INVCURS 148
Bramble RING 1 1000 ATTRIBS_CURSE 2 2 DAMMOD 3 3 MANA 10 10 INVCURS 9
Ring of Regha RING 1 4175 MAG 10 10 MAGICRES 10 10 LIGHT 1 1 STR_CURSE 3 3 DEX_CURSE 3 3 INVCURS 11
The Bleeder RING 2 8500 MAGICRES 20 20 MANA 30 30 LIFE_CURSE 10 10 INVCURS 8
Constricting Ring RING 5 62000 ALLRES 75 75 DRAINLIFE INVCURS 14
Ring of Engagement RING 11 12476 GETHIT 1 2 THORNS 1 3 SETAC 5 5 TARGAC 2 2 INVCURS 13
Giant's Knuckle RING 8 8000 STR 60 60 DEX_CURSE 30 30 INVCURS 179
Mercurial Ring RING 8 8000 DEX 60 60 STR_CURSE 30 30 INVCURS 176
Xorine's Ring RING 8 8000 MAG 60 60 STR_CURSE 30 30 INVCURS 168
Karik's Ring RING 8 8000 VIT 60 60 MAG_CURSE 30 30 INVCURS 173
Ring of Magma RING 8 8000 FIRERES 60 60 LIGHTRES_CURSE 30 30 MAGICRES_CURSE 30 30 INVCURS 184
Ring of the Mystics RING 8 8000 MAGICRES 60 60 FIRERES_CURSE 30 30 LIGHTRES_CURSE 30 30 INVCURS 181
Ring of Thunder RING 8 8000 LIGHTRES 60 60 FIRERES_CURSE 30 30 MAGICRES_CURSE 30 30 INVCURS 177
Amulet of Warding AMULET 12 30000 ALLRES 40 40 LIFE_CURSE 100 100 INVCURS 170
Gnat Sting HUNTBOW 15 30000 MULT_ARROWS 3 3 SETDAM 1 2 FASTATTACK 1 1 INDESTRUCTIBLE INVCURS 210
Flambeau COMPBOW 11 30000 FIREBALL 15 20 SETDAM 0 0 INDESTRUCTIBLE INVCURS 209
Armor of Gloom FULLPLATE 25 200000 NOMINSTR SETAC 225 225 ALLRESZERO LIGHT_CURSE 2 2 INVCURS 203
Blitzen COMPBOW 13 30000 ADDACLIFE 10 15 SETDAM 0 0 INDESTRUCTIBLE INVCURS 219
Thunderclap WARHAMMER 13 30000 ADDMANAAC 3 6 STR 20 20 LIGHTRES 30 30 LIGHT 2 2 INDESTRUCTIBLE INVCURS 205
Shirotachi GREATSWR 21 36000 ONEHAND FASTATTACK 4 4 TARGAC 2 2 LIGHTDAM 6 6
Eater of Souls TWOHANDSWR 23 42000 INDESTRUCTIBLE LIFE 50 50 STEALLIFE 5 5 STEALMANA 5 5 DRAINLIFE INVCURS 200
Diamondedge LONGSWR 17 42000 SETDUR 10 10 TOHIT 50 50 DAMP 100 100 LIGHTRES 50 50 SETAC 10 10 INVCURS 206
Bone Chain Armor CHAINMAIL 13 36000 SETAC 40 40 ACUNDEAD INVCURS 204
Demon Plate Armor FULLPLATE 25 80000 SETAC 80 80 ACDEMON INVCURS 225
Acolyte's Amulet AMULET 10 10000 MANATOLIFE 50 50 INVCURS 183
Gladiator's Ring RING 10 10000 LIFETOMANA 40 40 INVCURS 186
1 name uniqueBaseItem minLevel value powers[0].type powers[0].param1 powers[0].param2 powers[1].type powers[1].param1 powers[1].param2 powers[2].type powers[2].param1 powers[2].param2 powers[3].type powers[3].param1 powers[3].param2 powers[4].type powers[4].param1 powers[4].param2 powers[5].type powers[5].param1 powers[5].param2
2 The Butcher's Cleaver CLEAVER 1 3650 STR 10 10 SETDAM 4 24 SETDUR 10 10
3 The Undead Crown SKCROWN 1 16650 RNDSTEALLIFE SETAC 8 8 INVCURS 77
4 Empyrean Band INFRARING 1 8000 ATTRIBS 2 2 LIGHT 2 2 FASTRECOVER 1 1 ABSHALFTRAP
5 Optic Amulet OPTAMULET 1 9750 LIGHT 2 2 LIGHTRES 20 20 GETHIT 1 1 MAG 5 5 INVCURS 44
6 Ring of Truth TRING 1 9100 LIFE 10 10 GETHIT 1 1 ALLRES 10 10 INVCURS 10
7 Harlequin Crest HARCREST 1 4000 AC_CURSE 3 3 GETHIT 1 1 ATTRIBS 2 2 LIFE 7 7 MANA 7 7 INVCURS 81
8 Veil of Steel STEELVEIL 1 63800 ALLRES 50 50 LIGHT_CURSE 2 2 ACP 60 60 MANA_CURSE 30 30 STR 15 15 VIT 15 15
9 Arkaine's Valor ARMOFVAL 1 42000 SETAC 25 25 VIT 10 10 GETHIT 3 3 FASTRECOVER 3 3
10 Griswold's Edge GRISWOLD 1 42000 FIREDAM 1 10 TOHIT 25 25 FASTATTACK 2 2 KNOCKBACK MANA 20 20 LIFE_CURSE 20 20
11 Bovine Plate BOVINE 1 400 SETAC 150 150 INDESTRUCTIBLE LIGHT 5 5 ALLRES 30 30 MANA_CURSE 50 50 SPLLVLADD -2 -2
12 The Rift Bow SHORTBOW 1 1800 RNDARROWVEL DAMMOD 2 2 DEX_CURSE 3 3
13 The Needler SHORTBOW 2 8900 TOHIT 50 50 SETDAM 1 3 FASTATTACK 2 2 INVCURS 158
14 The Celestial Bow LONGBOW 2 1200 NOMINSTR DAMMOD 2 2 SETAC 5 5 INVCURS 133
15 Deadly Hunter COMPBOW 3 8750 3XDAMVDEM 10 10 TOHIT 20 20 MAG_CURSE 5 5 INVCURS 108
16 Bow of the Dead COMPBOW 5 2500 TOHIT 10 10 DEX 4 4 VIT_CURSE 3 3 LIGHT_CURSE 2 2 SETDUR 30 30 INVCURS 108
17 The Blackoak Bow LONGBOW 5 2500 DEX 10 10 VIT_CURSE 10 10 DAMP 50 50 LIGHT_CURSE 1 1
18 Flamedart HUNTBOW 10 14250 FIRE_ARROWS 0 0 FIREDAM 1 6 TOHIT 20 20 FIRERES 40 40
19 Fleshstinger LONGBOW 13 16500 DEX 15 15 TOHIT 40 40 DAMP 80 80 DUR 6 6
20 Windforce WARBOW 17 37750 STR 5 5 DAMP 200 200 KNOCKBACK INVCURS 164
21 Eaglehorn BATTLEBOW 26 42500 DEX 20 20 TOHIT 50 50 DAMP 100 100 INDESTRUCTIBLE INVCURS 108
22 Gonnagal's Dirk DAGGER 1 7040 DEX_CURSE 5 5 DAMMOD 4 4 FASTATTACK 2 2 FIRERES 25 25 INVCURS 54
23 The Defender SABRE 1 2000 SETAC 5 5 VIT 5 5 TOHIT_CURSE 5 5
24 Gryphon's Claw FALCHION 1 1000 DAMP 100 100 MAG_CURSE 2 2 DEX_CURSE 5 5 INVCURS 68
25 Black Razor DAGGER 1 2000 DAMP 150 150 VIT 2 2 SETDUR 5 5 INVCURS 53
26 Gibbous Moon BROADSWR 2 6660 ATTRIBS 2 2 DAMP 25 25 MANA 15 15 LIGHT_CURSE 3 3
27 Ice Shank LONGSWR 3 5250 FIRERES 40 40 SETDUR 15 15 STR 5 10
28 The Executioner's Blade FALCHION 3 7080 DAMP 150 150 LIFE_CURSE 10 10 LIGHT_CURSE 1 1 DUR 200 200 INVCURS 58
29 The Bonesaw CLAYMORE 6 4400 DAMMOD 10 10 STR 10 10 MAG_CURSE 5 5 DEX_CURSE 5 5 LIFE 10 10 MANA_CURSE 10 10
30 Shadowhawk BROADSWR 8 13750 LIGHT_CURSE 2 2 STEALLIFE 5 5 TOHIT 15 15 ALLRES 5 5
31 Wizardspike DAGGER 11 12920 MAG 15 15 MANA 35 35 TOHIT 25 25 ALLRES 15 15 INVCURS 50
32 Lightsabre SABRE 13 19150 LIGHT 2 2 LIGHTDAM 1 10 TOHIT 20 20 LIGHTRES 50 50
33 The Falcon's Talon SCIMITAR 15 7867 FASTATTACK 4 4 TOHIT 20 20 DAMP_CURSE 33 33 DEX 10 10 INVCURS 68
34 Inferno LONGSWR 17 34600 FIREDAM 2 12 LIGHT 3 3 MANA 20 20 FIRERES 80 80
35 Doombringer BASTARDSWR 19 18250 TOHIT 25 25 DAMP 250 250 ATTRIBS_CURSE 5 5 LIFE_CURSE 25 25 LIGHT_CURSE 2 2
36 The Grizzly TWOHANDSWR 23 50000 STR 20 20 VIT_CURSE 5 5 DAMP 200 200 KNOCKBACK DUR 100 100 INVCURS 160
37 The Grandfather GREATSWR 27 119800 ONEHAND ATTRIBS 5 5 TOHIT 20 20 DAMP 70 70 LIFE 20 20 INVCURS 161
38 The Mangler LARGEAXE 2 2850 DAMP 200 200 DEX_CURSE 5 5 MAG_CURSE 5 5 MANA_CURSE 10 10 INVCURS 144
39 Sharp Beak LARGEAXE 2 2850 LIFE 20 20 MAG_CURSE 10 10 MANA_CURSE 10 10 INVCURS 143
40 BloodSlayer BROADAXE 3 2500 DAMP 100 100 3XDAMVDEM 50 50 ATTRIBS_CURSE 5 5 SPLLVLADD -1 -1 INVCURS 144
41 The Celestial Axe BATTLEAXE 4 14100 NOMINSTR TOHIT 15 15 LIFE 15 15 STR_CURSE 15 15
42 Wicked Axe LARGEAXE 5 31150 TOHIT 30 30 DEX 10 10 VIT_CURSE 10 10 GETHIT 1 6 INDESTRUCTIBLE INVCURS 143
43 Stonecleaver BROADAXE 7 23900 LIFE 30 30 TOHIT 20 20 DAMP 50 50 LIGHTRES 40 40 INVCURS 104
44 Aguinara's Hatchet SMALLAXE 12 24800 SPLLVLADD 1 1 MAG 10 10 MAGICRES 80 80
45 Hellslayer BATTLEAXE 15 26200 STR 8 8 VIT 8 8 DAMP 100 100 LIFE 25 25 MANA_CURSE 25 25
46 Messerschmidt's Reaver GREATAXE 25 58000 DAMP 200 200 DAMMOD 15 15 ATTRIBS 5 5 LIFE_CURSE 50 50 FIREDAM 2 12 INVCURS 163
47 Crackrust MACE 1 11375 ATTRIBS 2 2 INDESTRUCTIBLE ALLRES 15 15 DAMP 50 50 SPLLVLADD -1 -1
48 Hammer of Jholm MAUL 1 8700 DAMP 4 10 INDESTRUCTIBLE STR 3 3 TOHIT 15 15
49 Civerb's Cudgel MACE 1 2000 3XDAMVDEM 35 35 DEX_CURSE 5 5 MAG_CURSE 2 2
50 The Celestial Star FLAIL 2 7810 NOMINSTR LIGHT 2 2 DAMMOD 10 10 AC_CURSE 8 8 INVCURS 131
51 Baranar's Star MORNSTAR 5 6850 TOHIT 12 12 DAMP 80 80 FASTATTACK 1 1 VIT 4 4 DEX_CURSE 4 4 SETDUR 60 60
52 Gnarled Root SPIKCLUB 9 9820 TOHIT 20 20 DAMP 300 300 DEX 10 10 MAG 5 5 ALLRES 10 10 AC_CURSE 10 10
53 The Cranium Basher MAUL 12 36500 DAMMOD 20 20 STR 15 15 INDESTRUCTIBLE MANA_CURSE 150 150 ALLRES 5 5 INVCURS 122
54 Schaefer's Hammer WARHAMMER 16 56125 DAMP_CURSE 100 100 LIGHTDAM 1 50 LIFE 50 50 TOHIT 30 30 LIGHTRES 80 80 LIGHT 1 1
55 Dreamflange MACE 26 26450 MAG 30 30 MANA 50 50 MAGICRES 50 50 LIGHT 2 2 SPLLVLADD 1 1
56 Staff of Shadows LONGSTAFF 2 1250 MAG_CURSE 10 10 TOHIT 10 10 DAMP 60 60 LIGHT_CURSE 2 2 FASTATTACK 1 1
57 Immolator LONGSTAFF 4 3900 FIRERES 20 20 FIREDAM 4 4 MANA 10 10 VIT_CURSE 5 5
58 Storm Spire WARSTAFF 8 22500 LIGHTRES 50 50 LIGHTDAM 2 8 STR 10 10 MAG_CURSE 10 10
59 Gleamsong SHORTSTAFF 8 6520 MANA 25 25 STR_CURSE 3 3 VIT_CURSE 3 3 SPELL 10 76
60 Thundercall COMPSTAFF 14 22250 TOHIT 35 35 LIGHTDAM 1 10 SPELL 3 76 LIGHTRES 30 30 LIGHT 2 2
61 The Protector SHORTSTAFF 16 17240 VIT 5 5 GETHIT 5 5 SETAC 40 40 SPELL 2 86 THORNS 1 3 INVCURS 162
62 Naj's Puzzler LONGSTAFF 18 34000 MAG 20 20 DEX 10 10 ALLRES 20 20 SPELL 23 57 LIFE_CURSE 25 25
63 Mindcry QUARSTAFF 20 41500 MAG 15 15 SPELL 13 69 ALLRES 15 15 SPLLVLADD 1 1
64 Rod of Onan WARSTAFF 22 44167 SPELL 21 50 DAMP 100 100 ATTRIBS 5 5
65 Helm of Spirits HELM 1 7525 STEALLIFE 5 5 INVCURS 77
66 Thinking Cap SKULLCAP 6 2020 MANA 30 30 SPLLVLADD 2 2 ALLRES 20 20 SETDUR 1 1 INVCURS 93
67 OverLord's Helm HELM 7 12500 STR 20 20 DEX 15 15 VIT 5 5 MAG_CURSE 20 20 SETDUR 15 15 INVCURS 99
68 Fool's Crest HELM 12 10150 ATTRIBS_CURSE 4 4 LIFE 100 100 GETHIT_CURSE 1 6 THORNS 1 3 INVCURS 80
69 Gotterdamerung GREATHELM 21 54900 ATTRIBS 20 20 SETAC 60 60 GETHIT 4 4 ALLRESZERO LIGHT_CURSE 4 4 INVCURS 85
70 Royal Circlet CROWN 27 24875 ATTRIBS 10 10 MANA 40 40 SETAC 40 40 LIGHT 1 1 INVCURS 79
71 Torn Flesh of Souls RAGS 2 4825 SETAC 8 8 VIT 10 10 GETHIT 1 1 INDESTRUCTIBLE INVCURS 92
72 The Gladiator's Bane STUDARMOR 6 3450 SETAC 25 25 GETHIT 2 2 DUR 200 200 ATTRIBS_CURSE 3 3
73 The Rainbow Cloak CLOAK 2 4900 SETAC 10 10 ATTRIBS 1 1 ALLRES 10 10 LIFE 5 5 DUR 50 50 INVCURS 138
74 Leather of Aut LEATHARMOR 4 10550 SETAC 15 15 STR 5 5 MAG_CURSE 5 5 DEX 5 5 INDESTRUCTIBLE
75 Wisdom's Wrap ROBE 5 6200 MAG 5 5 MANA 10 10 LIGHTRES 25 25 SETAC 15 15 GETHIT 1 1 INVCURS 138
76 Sparking Mail CHAINMAIL 9 15750 SETAC 30 30 LIGHTDAM 1 10
77 Scavenger Carapace BREASTPLATE 13 14000 GETHIT 15 15 AC_CURSE 30 30 DEX 5 5 LIGHTRES 40 40
78 Nightscape CAPE 16 11600 FASTRECOVER 2 2 LIGHT_CURSE 4 4 SETAC 15 15 DEX 3 3 ALLRES 20 20 INVCURS 138
79 Naj's Light Plate PLATEMAIL 19 78700 NOMINSTR MAG 5 5 MANA 20 20 ALLRES 20 20 SPLLVLADD 1 1 INVCURS 159
80 Demonspike Coat FULLPLATE 25 251175 SETAC 100 100 GETHIT 6 6 STR 10 10 INDESTRUCTIBLE FIRERES 50 50
81 The Deflector BUCKLER 1 1500 SETAC 7 7 ALLRES 10 10 DAMP_CURSE 20 20 TOHIT_CURSE 5 5 INVCURS 83
82 Split Skull Shield BUCKLER 1 2025 SETAC 10 10 LIFE 10 10 STR 2 2 LIGHT_CURSE 1 1 SETDUR 15 15 INVCURS 116
83 Dragon's Breach KITESHIELD 2 19200 FIRERES 25 25 STR 5 5 SETAC 20 20 MAG_CURSE 5 5 INDESTRUCTIBLE INVCURS 117
84 Blackoak Shield SMALLSHIELD 4 5725 DEX 10 10 VIT_CURSE 10 10 SETAC 18 18 LIGHT_CURSE 1 1 DUR 150 150 INVCURS 146
85 Holy Defender LARGESHIELD 10 13800 SETAC 15 15 GETHIT 2 2 FIRERES 20 20 DUR 200 200 FASTBLOCK 1 1 INVCURS 146
86 Stormshield GOTHSHIELD 24 49000 SETAC 40 40 GETHIT_CURSE 4 4 STR 10 10 INDESTRUCTIBLE FASTBLOCK 1 1 INVCURS 148
87 Bramble RING 1 1000 ATTRIBS_CURSE 2 2 DAMMOD 3 3 MANA 10 10 INVCURS 9
88 Ring of Regha RING 1 4175 MAG 10 10 MAGICRES 10 10 LIGHT 1 1 STR_CURSE 3 3 DEX_CURSE 3 3 INVCURS 11
89 The Bleeder RING 2 8500 MAGICRES 20 20 MANA 30 30 LIFE_CURSE 10 10 INVCURS 8
90 Constricting Ring RING 5 62000 ALLRES 75 75 DRAINLIFE INVCURS 14
91 Ring of Engagement RING 11 12476 GETHIT 1 2 THORNS 1 3 SETAC 5 5 TARGAC 2 2 INVCURS 13
92 Giant's Knuckle RING 8 8000 STR 60 60 DEX_CURSE 30 30 INVCURS 179
93 Mercurial Ring RING 8 8000 DEX 60 60 STR_CURSE 30 30 INVCURS 176
94 Xorine's Ring RING 8 8000 MAG 60 60 STR_CURSE 30 30 INVCURS 168
95 Karik's Ring RING 8 8000 VIT 60 60 MAG_CURSE 30 30 INVCURS 173
96 Ring of Magma RING 8 8000 FIRERES 60 60 LIGHTRES_CURSE 30 30 MAGICRES_CURSE 30 30 INVCURS 184
97 Ring of the Mystics RING 8 8000 MAGICRES 60 60 FIRERES_CURSE 30 30 LIGHTRES_CURSE 30 30 INVCURS 181
98 Ring of Thunder RING 8 8000 LIGHTRES 60 60 FIRERES_CURSE 30 30 MAGICRES_CURSE 30 30 INVCURS 177
99 Amulet of Warding AMULET 12 30000 ALLRES 40 40 LIFE_CURSE 100 100 INVCURS 170
100 Gnat Sting HUNTBOW 15 30000 MULT_ARROWS 3 3 SETDAM 1 2 FASTATTACK 1 1 INDESTRUCTIBLE INVCURS 210
101 Flambeau COMPBOW 11 30000 FIREBALL 15 20 SETDAM 0 0 INDESTRUCTIBLE INVCURS 209
102 Armor of Gloom FULLPLATE 25 200000 NOMINSTR SETAC 225 225 ALLRESZERO LIGHT_CURSE 2 2 INVCURS 203
103 Blitzen COMPBOW 13 30000 ADDACLIFE 10 15 SETDAM 0 0 INDESTRUCTIBLE INVCURS 219
104 Thunderclap WARHAMMER 13 30000 ADDMANAAC 3 6 STR 20 20 LIGHTRES 30 30 LIGHT 2 2 INDESTRUCTIBLE INVCURS 205
105 Shirotachi GREATSWR 21 36000 ONEHAND FASTATTACK 4 4 TARGAC 2 2 LIGHTDAM 6 6
106 Eater of Souls TWOHANDSWR 23 42000 INDESTRUCTIBLE LIFE 50 50 STEALLIFE 5 5 STEALMANA 5 5 DRAINLIFE INVCURS 200
107 Diamondedge LONGSWR 17 42000 SETDUR 10 10 TOHIT 50 50 DAMP 100 100 LIGHTRES 50 50 SETAC 10 10 INVCURS 206
108 Bone Chain Armor CHAINMAIL 13 36000 SETAC 40 40 ACUNDEAD INVCURS 204
109 Demon Plate Armor FULLPLATE 25 80000 SETAC 80 80 ACDEMON INVCURS 225
110 Acolyte's Amulet AMULET 10 10000 MANATOLIFE 50 50 INVCURS 183
111 Gladiator's Ring RING 10 10000 LIFETOMANA 40 40 INVCURS 186

1
Source/.clang-format

@ -1,6 +1,7 @@
BasedOnStyle: webkit
AlignTrailingComments: true
AllowShortBlocksOnASingleLine: true
AllowShortCaseLabelsOnASingleLine: true
AllowShortFunctionsOnASingleLine: All
AllowShortIfStatementsOnASingleLine: WithoutElse
PointerAlignment: Right

1
Source/diablo.cpp

@ -2477,6 +2477,7 @@ int DiabloMain(int argc, char **argv)
// TODO: We can probably load this much later (when the game is starting).
LoadMonsterData();
LoadItemData();
DiabloInit();
#ifdef __UWP__

1390
Source/itemdat.cpp

File diff suppressed because it is too large Load Diff

19
Source/itemdat.h

@ -7,6 +7,7 @@
#include <cstdint>
#include <string_view>
#include <vector>
#include "objdat.h"
#include "spelldat.h"
@ -443,8 +444,8 @@ struct ItemData {
enum item_cursor_graphic iCurs;
enum ItemType itype;
enum unique_base_item iItemId;
const char *iName;
const char *iSName;
std::string iName;
std::string iSName;
uint8_t iMinMLvl;
uint8_t iDurability;
uint8_t iMinDam;
@ -572,7 +573,7 @@ struct ItemPower {
};
struct PLStruct {
const char *PLName;
std::string PLName;
ItemPower power;
int8_t PLMinLvl;
AffixItemType PLIType; // AffixItemType as bit flags
@ -585,7 +586,7 @@ struct PLStruct {
};
struct UniqueItem {
const char *UIName;
std::string UIName;
enum unique_base_item UIItemId;
int8_t UIMinLvl;
uint8_t UINumPL;
@ -593,9 +594,11 @@ struct UniqueItem {
ItemPower powers[6];
};
extern const ItemData AllItemsList[];
extern const PLStruct ItemPrefixes[];
extern const PLStruct ItemSuffixes[];
extern const UniqueItem UniqueItems[];
extern std::vector<ItemData> AllItemsList;
extern std::vector<PLStruct> ItemPrefixes;
extern std::vector<PLStruct> ItemSuffixes;
extern std::vector<UniqueItem> UniqueItems;
void LoadItemData();
} // namespace devilution

12
Source/items.cpp

@ -1086,7 +1086,7 @@ int GetStaffPrefixId(int lvl, bool onlygood, bool hellfireItem)
if (FlipCoin(10) || onlygood) {
int nl = 0;
int l[256];
for (int j = 0; ItemPrefixes[j].power.type != IPL_INVALID; j++) {
for (int j = 0, n = static_cast<int>(ItemPrefixes.size()); j < n; ++j) {
if (!IsPrefixValidForItemType(j, AffixItemType::Staff, hellfireItem) || ItemPrefixes[j].PLMinLvl > lvl)
continue;
if (onlygood && !ItemPrefixes[j].PLOk)
@ -1194,7 +1194,7 @@ void GetItemPowerPrefixAndSuffix(int minlvl, int maxlvl, AffixItemType flgs, boo
onlygood = true;
if (allocatePrefix) {
int nt = 0;
for (int j = 0; ItemPrefixes[j].power.type != IPL_INVALID; j++) {
for (int j = 0, n = static_cast<int>(ItemPrefixes.size()); j < n; ++j) {
if (!IsPrefixValidForItemType(j, flgs, hellfireItem))
continue;
if (ItemPrefixes[j].PLMinLvl < minlvl || ItemPrefixes[j].PLMinLvl > maxlvl)
@ -1218,7 +1218,7 @@ void GetItemPowerPrefixAndSuffix(int minlvl, int maxlvl, AffixItemType flgs, boo
}
if (allocateSuffix) {
int nl = 0;
for (int j = 0; ItemSuffixes[j].power.type != IPL_INVALID; j++) {
for (int j = 0, n = static_cast<int>(ItemSuffixes.size()); j < n; ++j) {
if (IsSuffixValidForItemType(j, flgs, hellfireItem)
&& ItemSuffixes[j].PLMinLvl >= minlvl && ItemSuffixes[j].PLMinLvl <= maxlvl
&& !((goe == GOE_GOOD && ItemSuffixes[j].PLGOE == GOE_EVIL) || (goe == GOE_EVIL && ItemSuffixes[j].PLGOE == GOE_GOOD))
@ -1451,7 +1451,7 @@ _unique_items CheckUnique(Item &item, int lvl, int uper, bool recreate)
return UITEM_INVALID;
int numu = 0;
for (int j = 0; UniqueItems[j].UIItemId != UITYPE_INVALID; j++) {
for (int j = 0, n = static_cast<int>(UniqueItems.size()); j < n; ++j) {
if (!IsUniqueAvailable(j))
break;
if (UniqueItems[j].UIItemId == AllItemsList[item.IDidx].iItemId
@ -4629,11 +4629,11 @@ std::string DebugSpawnUniqueItem(std::string itemName)
UniqueItem uniqueItem;
bool foundUnique = false;
int uniqueIndex = 0;
for (int j = 0; UniqueItems[j].UIItemId != UITYPE_INVALID; j++) {
for (int j = 0, n = static_cast<int>(UniqueItems.size()); j < n; ++j) {
if (!IsUniqueAvailable(j))
break;
const std::string tmp = AsciiStrToLower(UniqueItems[j].UIName);
const std::string tmp = AsciiStrToLower(std::string_view(UniqueItems[j].UIName));
if (tmp.find(itemName) != std::string::npos) {
itemName = tmp;
uniqueItem = UniqueItems[j];

62
Source/spelldat.cpp

@ -4,6 +4,11 @@
* Implementation of all spell data.
*/
#include "spelldat.h"
#include <string_view>
#include <expected.hpp>
#include "utils/language.h"
namespace devilution {
@ -75,4 +80,61 @@ const SpellData SpellsData[] = {
// clang-format on
};
tl::expected<SpellID, std::string> ParseSpellId(std::string_view value)
{
if (value == "Null") return SpellID::Null;
if (value == "Firebolt") return SpellID::Firebolt;
if (value == "Healing") return SpellID::Healing;
if (value == "Lightning") return SpellID::Lightning;
if (value == "Flash") return SpellID::Flash;
if (value == "Identify") return SpellID::Identify;
if (value == "FireWall") return SpellID::FireWall;
if (value == "TownPortal") return SpellID::TownPortal;
if (value == "StoneCurse") return SpellID::StoneCurse;
if (value == "Infravision") return SpellID::Infravision;
if (value == "Phasing") return SpellID::Phasing;
if (value == "ManaShield") return SpellID::ManaShield;
if (value == "Fireball") return SpellID::Fireball;
if (value == "Guardian") return SpellID::Guardian;
if (value == "ChainLightning") return SpellID::ChainLightning;
if (value == "FlameWave") return SpellID::FlameWave;
if (value == "DoomSerpents") return SpellID::DoomSerpents;
if (value == "BloodRitual") return SpellID::BloodRitual;
if (value == "Nova") return SpellID::Nova;
if (value == "Invisibility") return SpellID::Invisibility;
if (value == "Inferno") return SpellID::Inferno;
if (value == "Golem") return SpellID::Golem;
if (value == "Rage") return SpellID::Rage;
if (value == "Teleport") return SpellID::Teleport;
if (value == "Apocalypse") return SpellID::Apocalypse;
if (value == "Etherealize") return SpellID::Etherealize;
if (value == "ItemRepair") return SpellID::ItemRepair;
if (value == "StaffRecharge") return SpellID::StaffRecharge;
if (value == "TrapDisarm") return SpellID::TrapDisarm;
if (value == "Elemental") return SpellID::Elemental;
if (value == "ChargedBolt") return SpellID::ChargedBolt;
if (value == "HolyBolt") return SpellID::HolyBolt;
if (value == "Resurrect") return SpellID::Resurrect;
if (value == "Telekinesis") return SpellID::Telekinesis;
if (value == "HealOther") return SpellID::HealOther;
if (value == "BloodStar") return SpellID::BloodStar;
if (value == "BoneSpirit") return SpellID::BoneSpirit;
if (value == "Mana") return SpellID::Mana;
if (value == "Magi") return SpellID::Magi;
if (value == "Jester") return SpellID::Jester;
if (value == "LightningWall") return SpellID::LightningWall;
if (value == "Immolation") return SpellID::Immolation;
if (value == "Warp") return SpellID::Warp;
if (value == "Reflect") return SpellID::Reflect;
if (value == "Berserk") return SpellID::Berserk;
if (value == "RingOfFire") return SpellID::RingOfFire;
if (value == "Search") return SpellID::Search;
if (value == "RuneOfFire") return SpellID::RuneOfFire;
if (value == "RuneOfLight") return SpellID::RuneOfLight;
if (value == "RuneOfNova") return SpellID::RuneOfNova;
if (value == "RuneOfImmolation") return SpellID::RuneOfImmolation;
if (value == "RuneOfStone") return SpellID::RuneOfStone;
return tl::make_unexpected("Unknown enum value");
}
} // namespace devilution

5
Source/spelldat.h

@ -6,8 +6,11 @@
#pragma once
#include <cstdint>
#include <string_view>
#include <type_traits>
#include <expected.hpp>
#include "effects.h"
#include "utils/enum_traits.h"
@ -85,6 +88,8 @@ enum class SpellID : int8_t {
Invalid = -1,
};
tl::expected<SpellID, std::string> ParseSpellId(std::string_view value);
enum class MagicType : uint8_t {
Fire,
Lightning,

537
Source/translation_dummy.cpp

@ -244,3 +244,540 @@ const char *WEBWIDOW_NAME = P_("monster", "Webwidow");
const char *FLESHDANCER_NAME = P_("monster", "Fleshdancer");
const char *GRIMSPIKE_NAME = P_("monster", "Grimspike");
const char *DOOMLOCK_NAME = P_("monster", "Doomlock");
const char *IDI_GOLD_NAME = N_("Gold");
const char *IDI_WARRIOR_NAME = N_("Short Sword");
const char *IDI_WARRSHLD_NAME = N_("Buckler");
const char *IDI_WARRCLUB_NAME = N_("Club");
const char *IDI_ROGUE_NAME = N_("Short Bow");
const char *IDI_SORCERER_NAME = N_("Short Staff of Mana");
const char *IDI_CLEAVER_NAME = N_("Cleaver");
const char *IDI_SKCROWN_NAME = N_("The Undead Crown");
const char *IDI_INFRARING_NAME = N_("Empyrean Band");
const char *IDI_ROCK_NAME = N_("Magic Rock");
const char *IDI_OPTAMULET_NAME = N_("Optic Amulet");
const char *IDI_TRING_NAME = N_("Ring of Truth");
const char *IDI_BANNER_NAME = N_("Tavern Sign");
const char *IDI_HARCREST_NAME = N_("Harlequin Crest");
const char *IDI_STEELVEIL_NAME = N_("Veil of Steel");
const char *IDI_GLDNELIX_NAME = N_("Golden Elixir");
const char *IDI_ANVIL_NAME = N_("Anvil of Fury");
const char *IDI_MUSHROOM_NAME = N_("Black Mushroom");
const char *IDI_BRAIN_NAME = N_("Brain");
const char *IDI_FUNGALTM_NAME = N_("Fungal Tome");
const char *IDI_SPECELIX_NAME = N_("Spectral Elixir");
const char *IDI_BLDSTONE_NAME = N_("Blood Stone");
const char *IDI_MAPOFDOOM_NAME = N_("Cathedral Map");
const char *IDI_EAR_NAME = N_("Heart");
const char *IDI_HEAL_NAME = N_("Potion of Healing");
const char *IDI_MANA_NAME = N_("Potion of Mana");
const char *IDI_IDENTIFY_NAME = N_("Scroll of Identify");
const char *IDI_PORTAL_NAME = N_("Scroll of Town Portal");
const char *IDI_ARMOFVAL_NAME = N_("Arkaine's Valor");
const char *IDI_FULLHEAL_NAME = N_("Potion of Full Healing");
const char *IDI_FULLMANA_NAME = N_("Potion of Full Mana");
const char *IDI_GRISWOLD_NAME = N_("Griswold's Edge");
const char *IDI_LGTFORGE_NAME = N_("Bovine Plate");
const char *IDI_LAZSTAFF_NAME = N_("Staff of Lazarus");
const char *IDI_RESURRECT_NAME = N_("Scroll of Resurrect");
const char *IDI_OIL_NAME = N_("Blacksmith Oil");
const char *IDI_SHORTSTAFF_NAME = N_("Short Staff");
const char *IDI_BARDSWORD_NAME = N_("Sword");
const char *IDI_BARDDAGGER_NAME = N_("Dagger");
const char *IDI_RUNEBOMB_NAME = N_("Rune Bomb");
const char *IDI_THEODORE_NAME = N_("Theodore");
const char *IDI_AURIC_NAME = N_("Auric Amulet");
const char *IDI_NOTE1_NAME = N_("Torn Note 1");
const char *IDI_NOTE2_NAME = N_("Torn Note 2");
const char *IDI_NOTE3_NAME = N_("Torn Note 3");
const char *IDI_FULLNOTE_NAME = N_("Reconstructed Note");
const char *IDI_BROWNSUIT_NAME = N_("Brown Suit");
const char *IDI_GREYSUIT_NAME = N_("Grey Suit");
const char *ITEM_48_NAME = N_("Cap");
const char *ITEM_48_SHORT_NAME = N_("Cap");
const char *ITEM_49_NAME = N_("Skull Cap");
const char *ITEM_49_SHORT_NAME = N_("Cap");
const char *ITEM_50_NAME = N_("Helm");
const char *ITEM_50_SHORT_NAME = N_("Helm");
const char *ITEM_51_NAME = N_("Full Helm");
const char *ITEM_51_SHORT_NAME = N_("Helm");
const char *ITEM_52_NAME = N_("Crown");
const char *ITEM_52_SHORT_NAME = N_("Crown");
const char *ITEM_53_NAME = N_("Great Helm");
const char *ITEM_53_SHORT_NAME = N_("Helm");
const char *ITEM_54_NAME = N_("Cape");
const char *ITEM_54_SHORT_NAME = N_("Cape");
const char *ITEM_55_NAME = N_("Rags");
const char *ITEM_55_SHORT_NAME = N_("Rags");
const char *ITEM_56_NAME = N_("Cloak");
const char *ITEM_56_SHORT_NAME = N_("Cloak");
const char *ITEM_57_NAME = N_("Robe");
const char *ITEM_57_SHORT_NAME = N_("Robe");
const char *ITEM_58_NAME = N_("Quilted Armor");
const char *ITEM_58_SHORT_NAME = N_("Armor");
const char *ITEM_59_NAME = N_("Leather Armor");
const char *ITEM_59_SHORT_NAME = N_("Armor");
const char *ITEM_60_NAME = N_("Hard Leather Armor");
const char *ITEM_60_SHORT_NAME = N_("Armor");
const char *ITEM_61_NAME = N_("Studded Leather Armor");
const char *ITEM_61_SHORT_NAME = N_("Armor");
const char *ITEM_62_NAME = N_("Ring Mail");
const char *ITEM_62_SHORT_NAME = N_("Mail");
const char *ITEM_63_NAME = N_("Chain Mail");
const char *ITEM_63_SHORT_NAME = N_("Mail");
const char *ITEM_64_NAME = N_("Scale Mail");
const char *ITEM_64_SHORT_NAME = N_("Mail");
const char *ITEM_65_NAME = N_("Breast Plate");
const char *ITEM_65_SHORT_NAME = N_("Plate");
const char *ITEM_66_NAME = N_("Splint Mail");
const char *ITEM_66_SHORT_NAME = N_("Mail");
const char *ITEM_67_NAME = N_("Plate Mail");
const char *ITEM_67_SHORT_NAME = N_("Plate");
const char *ITEM_68_NAME = N_("Field Plate");
const char *ITEM_68_SHORT_NAME = N_("Plate");
const char *ITEM_69_NAME = N_("Gothic Plate");
const char *ITEM_69_SHORT_NAME = N_("Plate");
const char *ITEM_70_NAME = N_("Full Plate Mail");
const char *ITEM_70_SHORT_NAME = N_("Plate");
const char *ITEM_71_NAME = N_("Buckler");
const char *ITEM_71_SHORT_NAME = N_("Shield");
const char *ITEM_72_NAME = N_("Small Shield");
const char *ITEM_72_SHORT_NAME = N_("Shield");
const char *ITEM_73_NAME = N_("Large Shield");
const char *ITEM_73_SHORT_NAME = N_("Shield");
const char *ITEM_74_NAME = N_("Kite Shield");
const char *ITEM_74_SHORT_NAME = N_("Shield");
const char *ITEM_75_NAME = N_("Tower Shield");
const char *ITEM_75_SHORT_NAME = N_("Shield");
const char *ITEM_76_NAME = N_("Gothic Shield");
const char *ITEM_76_SHORT_NAME = N_("Shield");
const char *ITEM_77_NAME = N_("Potion of Healing");
const char *ITEM_78_NAME = N_("Potion of Full Healing");
const char *ITEM_79_NAME = N_("Potion of Mana");
const char *ITEM_80_NAME = N_("Potion of Full Mana");
const char *ITEM_81_NAME = N_("Potion of Rejuvenation");
const char *ITEM_82_NAME = N_("Potion of Full Rejuvenation");
const char *ITEM_83_NAME = N_("Blacksmith Oil");
const char *ITEM_84_NAME = N_("Oil of Accuracy");
const char *ITEM_85_NAME = N_("Oil of Sharpness");
const char *ITEM_86_NAME = N_("Oil");
const char *ITEM_87_NAME = N_("Elixir of Strength");
const char *ITEM_88_NAME = N_("Elixir of Magic");
const char *ITEM_89_NAME = N_("Elixir of Dexterity");
const char *ITEM_90_NAME = N_("Elixir of Vitality");
const char *ITEM_91_NAME = N_("Scroll of Healing");
const char *ITEM_92_NAME = N_("Scroll of Search");
const char *ITEM_93_NAME = N_("Scroll of Lightning");
const char *ITEM_94_NAME = N_("Scroll of Identify");
const char *ITEM_95_NAME = N_("Scroll of Resurrect");
const char *ITEM_96_NAME = N_("Scroll of Fire Wall");
const char *ITEM_97_NAME = N_("Scroll of Inferno");
const char *ITEM_98_NAME = N_("Scroll of Town Portal");
const char *ITEM_99_NAME = N_("Scroll of Flash");
const char *ITEM_100_NAME = N_("Scroll of Infravision");
const char *ITEM_101_NAME = N_("Scroll of Phasing");
const char *ITEM_102_NAME = N_("Scroll of Mana Shield");
const char *ITEM_103_NAME = N_("Scroll of Flame Wave");
const char *ITEM_104_NAME = N_("Scroll of Fireball");
const char *ITEM_105_NAME = N_("Scroll of Stone Curse");
const char *ITEM_106_NAME = N_("Scroll of Chain Lightning");
const char *ITEM_107_NAME = N_("Scroll of Guardian");
const char *ITEM_109_NAME = N_("Scroll of Nova");
const char *ITEM_110_NAME = N_("Scroll of Golem");
const char *ITEM_112_NAME = N_("Scroll of Teleport");
const char *ITEM_113_NAME = N_("Scroll of Apocalypse");
const char *ITEM_114_NAME = N_("Book of ");
const char *ITEM_115_NAME = N_("Book of ");
const char *ITEM_116_NAME = N_("Book of ");
const char *ITEM_117_NAME = N_("Book of ");
const char *ITEM_118_NAME = N_("Dagger");
const char *ITEM_118_SHORT_NAME = N_("Dagger");
const char *ITEM_119_NAME = N_("Short Sword");
const char *ITEM_119_SHORT_NAME = N_("Sword");
const char *ITEM_120_NAME = N_("Falchion");
const char *ITEM_120_SHORT_NAME = N_("Sword");
const char *ITEM_121_NAME = N_("Scimitar");
const char *ITEM_121_SHORT_NAME = N_("Sword");
const char *ITEM_122_NAME = N_("Claymore");
const char *ITEM_122_SHORT_NAME = N_("Sword");
const char *ITEM_123_NAME = N_("Blade");
const char *ITEM_123_SHORT_NAME = N_("Blade");
const char *ITEM_124_NAME = N_("Sabre");
const char *ITEM_124_SHORT_NAME = N_("Sabre");
const char *ITEM_125_NAME = N_("Long Sword");
const char *ITEM_125_SHORT_NAME = N_("Sword");
const char *ITEM_126_NAME = N_("Broad Sword");
const char *ITEM_126_SHORT_NAME = N_("Sword");
const char *ITEM_127_NAME = N_("Bastard Sword");
const char *ITEM_127_SHORT_NAME = N_("Sword");
const char *ITEM_128_NAME = N_("Two-Handed Sword");
const char *ITEM_128_SHORT_NAME = N_("Sword");
const char *ITEM_129_NAME = N_("Great Sword");
const char *ITEM_129_SHORT_NAME = N_("Sword");
const char *ITEM_130_NAME = N_("Small Axe");
const char *ITEM_130_SHORT_NAME = N_("Axe");
const char *ITEM_131_NAME = N_("Axe");
const char *ITEM_131_SHORT_NAME = N_("Axe");
const char *ITEM_132_NAME = N_("Large Axe");
const char *ITEM_132_SHORT_NAME = N_("Axe");
const char *ITEM_133_NAME = N_("Broad Axe");
const char *ITEM_133_SHORT_NAME = N_("Axe");
const char *ITEM_134_NAME = N_("Battle Axe");
const char *ITEM_134_SHORT_NAME = N_("Axe");
const char *ITEM_135_NAME = N_("Great Axe");
const char *ITEM_135_SHORT_NAME = N_("Axe");
const char *ITEM_136_NAME = N_("Mace");
const char *ITEM_136_SHORT_NAME = N_("Mace");
const char *ITEM_137_NAME = N_("Morning Star");
const char *ITEM_137_SHORT_NAME = N_("Mace");
const char *ITEM_138_NAME = N_("War Hammer");
const char *ITEM_138_SHORT_NAME = N_("Hammer");
const char *ITEM_139_NAME = N_("Spiked Club");
const char *ITEM_139_SHORT_NAME = N_("Club");
const char *ITEM_140_NAME = N_("Club");
const char *ITEM_140_SHORT_NAME = N_("Club");
const char *ITEM_141_NAME = N_("Flail");
const char *ITEM_141_SHORT_NAME = N_("Flail");
const char *ITEM_142_NAME = N_("Maul");
const char *ITEM_142_SHORT_NAME = N_("Maul");
const char *ITEM_143_NAME = N_("Short Bow");
const char *ITEM_143_SHORT_NAME = N_("Bow");
const char *ITEM_144_NAME = N_("Hunter's Bow");
const char *ITEM_144_SHORT_NAME = N_("Bow");
const char *ITEM_145_NAME = N_("Long Bow");
const char *ITEM_145_SHORT_NAME = N_("Bow");
const char *ITEM_146_NAME = N_("Composite Bow");
const char *ITEM_146_SHORT_NAME = N_("Bow");
const char *ITEM_147_NAME = N_("Short Battle Bow");
const char *ITEM_147_SHORT_NAME = N_("Bow");
const char *ITEM_148_NAME = N_("Long Battle Bow");
const char *ITEM_148_SHORT_NAME = N_("Bow");
const char *ITEM_149_NAME = N_("Short War Bow");
const char *ITEM_149_SHORT_NAME = N_("Bow");
const char *ITEM_150_NAME = N_("Long War Bow");
const char *ITEM_150_SHORT_NAME = N_("Bow");
const char *ITEM_151_NAME = N_("Short Staff");
const char *ITEM_151_SHORT_NAME = N_("Staff");
const char *ITEM_152_NAME = N_("Long Staff");
const char *ITEM_152_SHORT_NAME = N_("Staff");
const char *ITEM_153_NAME = N_("Composite Staff");
const char *ITEM_153_SHORT_NAME = N_("Staff");
const char *ITEM_154_NAME = N_("Quarter Staff");
const char *ITEM_154_SHORT_NAME = N_("Staff");
const char *ITEM_155_NAME = N_("War Staff");
const char *ITEM_155_SHORT_NAME = N_("Staff");
const char *ITEM_156_NAME = N_("Ring");
const char *ITEM_156_SHORT_NAME = N_("Ring");
const char *ITEM_157_NAME = N_("Ring");
const char *ITEM_157_SHORT_NAME = N_("Ring");
const char *ITEM_158_NAME = N_("Ring");
const char *ITEM_158_SHORT_NAME = N_("Ring");
const char *ITEM_159_NAME = N_("Amulet");
const char *ITEM_159_SHORT_NAME = N_("Amulet");
const char *ITEM_160_NAME = N_("Amulet");
const char *ITEM_160_SHORT_NAME = N_("Amulet");
const char *ITEM_161_NAME = N_("Rune of Fire");
const char *ITEM_161_SHORT_NAME = N_("Rune");
const char *ITEM_162_NAME = N_("Rune of Lightning");
const char *ITEM_162_SHORT_NAME = N_("Rune");
const char *ITEM_163_NAME = N_("Greater Rune of Fire");
const char *ITEM_163_SHORT_NAME = N_("Rune");
const char *ITEM_164_NAME = N_("Greater Rune of Lightning");
const char *ITEM_164_SHORT_NAME = N_("Rune");
const char *ITEM_165_NAME = N_("Rune of Stone");
const char *ITEM_165_SHORT_NAME = N_("Rune");
const char *IDI_SORCERER_NAME = N_("Short Staff of Charged Bolt");
const char *IDI_ARENAPOT_NAME = N_("Arena Potion");
const char *UNIQUE_ITEM_0_NAME = N_("The Butcher's Cleaver");
const char *UNIQUE_ITEM_1_NAME = N_("The Undead Crown");
const char *UNIQUE_ITEM_2_NAME = N_("Empyrean Band");
const char *UNIQUE_ITEM_3_NAME = N_("Optic Amulet");
const char *UNIQUE_ITEM_4_NAME = N_("Ring of Truth");
const char *UNIQUE_ITEM_5_NAME = N_("Harlequin Crest");
const char *UNIQUE_ITEM_6_NAME = N_("Veil of Steel");
const char *UNIQUE_ITEM_7_NAME = N_("Arkaine's Valor");
const char *UNIQUE_ITEM_8_NAME = N_("Griswold's Edge");
const char *UNIQUE_ITEM_9_NAME = N_("Bovine Plate");
const char *UNIQUE_ITEM_10_NAME = N_("The Rift Bow");
const char *UNIQUE_ITEM_11_NAME = N_("The Needler");
const char *UNIQUE_ITEM_12_NAME = N_("The Celestial Bow");
const char *UNIQUE_ITEM_13_NAME = N_("Deadly Hunter");
const char *UNIQUE_ITEM_14_NAME = N_("Bow of the Dead");
const char *UNIQUE_ITEM_15_NAME = N_("The Blackoak Bow");
const char *UNIQUE_ITEM_16_NAME = N_("Flamedart");
const char *UNIQUE_ITEM_17_NAME = N_("Fleshstinger");
const char *UNIQUE_ITEM_18_NAME = N_("Windforce");
const char *UNIQUE_ITEM_19_NAME = N_("Eaglehorn");
const char *UNIQUE_ITEM_20_NAME = N_("Gonnagal's Dirk");
const char *UNIQUE_ITEM_21_NAME = N_("The Defender");
const char *UNIQUE_ITEM_22_NAME = N_("Gryphon's Claw");
const char *UNIQUE_ITEM_23_NAME = N_("Black Razor");
const char *UNIQUE_ITEM_24_NAME = N_("Gibbous Moon");
const char *UNIQUE_ITEM_25_NAME = N_("Ice Shank");
const char *UNIQUE_ITEM_26_NAME = N_("The Executioner's Blade");
const char *UNIQUE_ITEM_27_NAME = N_("The Bonesaw");
const char *UNIQUE_ITEM_28_NAME = N_("Shadowhawk");
const char *UNIQUE_ITEM_29_NAME = N_("Wizardspike");
const char *UNIQUE_ITEM_30_NAME = N_("Lightsabre");
const char *UNIQUE_ITEM_31_NAME = N_("The Falcon's Talon");
const char *UNIQUE_ITEM_32_NAME = N_("Inferno");
const char *UNIQUE_ITEM_33_NAME = N_("Doombringer");
const char *UNIQUE_ITEM_34_NAME = N_("The Grizzly");
const char *UNIQUE_ITEM_35_NAME = N_("The Grandfather");
const char *UNIQUE_ITEM_36_NAME = N_("The Mangler");
const char *UNIQUE_ITEM_37_NAME = N_("Sharp Beak");
const char *UNIQUE_ITEM_38_NAME = N_("BloodSlayer");
const char *UNIQUE_ITEM_39_NAME = N_("The Celestial Axe");
const char *UNIQUE_ITEM_40_NAME = N_("Wicked Axe");
const char *UNIQUE_ITEM_41_NAME = N_("Stonecleaver");
const char *UNIQUE_ITEM_42_NAME = N_("Aguinara's Hatchet");
const char *UNIQUE_ITEM_43_NAME = N_("Hellslayer");
const char *UNIQUE_ITEM_44_NAME = N_("Messerschmidt's Reaver");
const char *UNIQUE_ITEM_45_NAME = N_("Crackrust");
const char *UNIQUE_ITEM_46_NAME = N_("Hammer of Jholm");
const char *UNIQUE_ITEM_47_NAME = N_("Civerb's Cudgel");
const char *UNIQUE_ITEM_48_NAME = N_("The Celestial Star");
const char *UNIQUE_ITEM_49_NAME = N_("Baranar's Star");
const char *UNIQUE_ITEM_50_NAME = N_("Gnarled Root");
const char *UNIQUE_ITEM_51_NAME = N_("The Cranium Basher");
const char *UNIQUE_ITEM_52_NAME = N_("Schaefer's Hammer");
const char *UNIQUE_ITEM_53_NAME = N_("Dreamflange");
const char *UNIQUE_ITEM_54_NAME = N_("Staff of Shadows");
const char *UNIQUE_ITEM_55_NAME = N_("Immolator");
const char *UNIQUE_ITEM_56_NAME = N_("Storm Spire");
const char *UNIQUE_ITEM_57_NAME = N_("Gleamsong");
const char *UNIQUE_ITEM_58_NAME = N_("Thundercall");
const char *UNIQUE_ITEM_59_NAME = N_("The Protector");
const char *UNIQUE_ITEM_60_NAME = N_("Naj's Puzzler");
const char *UNIQUE_ITEM_61_NAME = N_("Mindcry");
const char *UNIQUE_ITEM_62_NAME = N_("Rod of Onan");
const char *UNIQUE_ITEM_63_NAME = N_("Helm of Spirits");
const char *UNIQUE_ITEM_64_NAME = N_("Thinking Cap");
const char *UNIQUE_ITEM_65_NAME = N_("OverLord's Helm");
const char *UNIQUE_ITEM_66_NAME = N_("Fool's Crest");
const char *UNIQUE_ITEM_67_NAME = N_("Gotterdamerung");
const char *UNIQUE_ITEM_68_NAME = N_("Royal Circlet");
const char *UNIQUE_ITEM_69_NAME = N_("Torn Flesh of Souls");
const char *UNIQUE_ITEM_70_NAME = N_("The Gladiator's Bane");
const char *UNIQUE_ITEM_71_NAME = N_("The Rainbow Cloak");
const char *UNIQUE_ITEM_72_NAME = N_("Leather of Aut");
const char *UNIQUE_ITEM_73_NAME = N_("Wisdom's Wrap");
const char *UNIQUE_ITEM_74_NAME = N_("Sparking Mail");
const char *UNIQUE_ITEM_75_NAME = N_("Scavenger Carapace");
const char *UNIQUE_ITEM_76_NAME = N_("Nightscape");
const char *UNIQUE_ITEM_77_NAME = N_("Naj's Light Plate");
const char *UNIQUE_ITEM_78_NAME = N_("Demonspike Coat");
const char *UNIQUE_ITEM_79_NAME = N_("The Deflector");
const char *UNIQUE_ITEM_80_NAME = N_("Split Skull Shield");
const char *UNIQUE_ITEM_81_NAME = N_("Dragon's Breach");
const char *UNIQUE_ITEM_82_NAME = N_("Blackoak Shield");
const char *UNIQUE_ITEM_83_NAME = N_("Holy Defender");
const char *UNIQUE_ITEM_84_NAME = N_("Stormshield");
const char *UNIQUE_ITEM_85_NAME = N_("Bramble");
const char *UNIQUE_ITEM_86_NAME = N_("Ring of Regha");
const char *UNIQUE_ITEM_87_NAME = N_("The Bleeder");
const char *UNIQUE_ITEM_88_NAME = N_("Constricting Ring");
const char *UNIQUE_ITEM_89_NAME = N_("Ring of Engagement");
const char *UNIQUE_ITEM_90_NAME = N_("Giant's Knuckle");
const char *UNIQUE_ITEM_91_NAME = N_("Mercurial Ring");
const char *UNIQUE_ITEM_92_NAME = N_("Xorine's Ring");
const char *UNIQUE_ITEM_93_NAME = N_("Karik's Ring");
const char *UNIQUE_ITEM_94_NAME = N_("Ring of Magma");
const char *UNIQUE_ITEM_95_NAME = N_("Ring of the Mystics");
const char *UNIQUE_ITEM_96_NAME = N_("Ring of Thunder");
const char *UNIQUE_ITEM_97_NAME = N_("Amulet of Warding");
const char *UNIQUE_ITEM_98_NAME = N_("Gnat Sting");
const char *UNIQUE_ITEM_99_NAME = N_("Flambeau");
const char *UNIQUE_ITEM_100_NAME = N_("Armor of Gloom");
const char *UNIQUE_ITEM_101_NAME = N_("Blitzen");
const char *UNIQUE_ITEM_102_NAME = N_("Thunderclap");
const char *UNIQUE_ITEM_103_NAME = N_("Shirotachi");
const char *UNIQUE_ITEM_104_NAME = N_("Eater of Souls");
const char *UNIQUE_ITEM_105_NAME = N_("Diamondedge");
const char *UNIQUE_ITEM_106_NAME = N_("Bone Chain Armor");
const char *UNIQUE_ITEM_107_NAME = N_("Demon Plate Armor");
const char *UNIQUE_ITEM_108_NAME = N_("Acolyte's Amulet");
const char *UNIQUE_ITEM_109_NAME = N_("Gladiator's Ring");
const char *ITEM_PREFIX_0_NAME = N_("Tin");
const char *ITEM_PREFIX_1_NAME = N_("Brass");
const char *ITEM_PREFIX_2_NAME = N_("Bronze");
const char *ITEM_PREFIX_3_NAME = N_("Iron");
const char *ITEM_PREFIX_4_NAME = N_("Steel");
const char *ITEM_PREFIX_5_NAME = N_("Silver");
const char *ITEM_PREFIX_6_NAME = N_("Gold");
const char *ITEM_PREFIX_7_NAME = N_("Platinum");
const char *ITEM_PREFIX_8_NAME = N_("Mithril");
const char *ITEM_PREFIX_9_NAME = N_("Meteoric");
const char *ITEM_PREFIX_10_NAME = N_("Weird");
const char *ITEM_PREFIX_11_NAME = N_("Strange");
const char *ITEM_PREFIX_12_NAME = N_("Useless");
const char *ITEM_PREFIX_13_NAME = N_("Bent");
const char *ITEM_PREFIX_14_NAME = N_("Weak");
const char *ITEM_PREFIX_15_NAME = N_("Jagged");
const char *ITEM_PREFIX_16_NAME = N_("Deadly");
const char *ITEM_PREFIX_17_NAME = N_("Heavy");
const char *ITEM_PREFIX_18_NAME = N_("Vicious");
const char *ITEM_PREFIX_19_NAME = N_("Brutal");
const char *ITEM_PREFIX_20_NAME = N_("Massive");
const char *ITEM_PREFIX_21_NAME = N_("Savage");
const char *ITEM_PREFIX_22_NAME = N_("Ruthless");
const char *ITEM_PREFIX_23_NAME = N_("Merciless");
const char *ITEM_PREFIX_24_NAME = N_("Clumsy");
const char *ITEM_PREFIX_25_NAME = N_("Dull");
const char *ITEM_PREFIX_26_NAME = N_("Sharp");
const char *ITEM_PREFIX_27_NAME = N_("Fine");
const char *ITEM_PREFIX_28_NAME = N_("Warrior's");
const char *ITEM_PREFIX_29_NAME = N_("Soldier's");
const char *ITEM_PREFIX_30_NAME = N_("Lord's");
const char *ITEM_PREFIX_31_NAME = N_("Knight's");
const char *ITEM_PREFIX_32_NAME = N_("Master's");
const char *ITEM_PREFIX_33_NAME = N_("Champion's");
const char *ITEM_PREFIX_34_NAME = N_("King's");
const char *ITEM_PREFIX_35_NAME = N_("Vulnerable");
const char *ITEM_PREFIX_36_NAME = N_("Rusted");
const char *ITEM_PREFIX_37_NAME = N_("Fine");
const char *ITEM_PREFIX_38_NAME = N_("Strong");
const char *ITEM_PREFIX_39_NAME = N_("Grand");
const char *ITEM_PREFIX_40_NAME = N_("Valiant");
const char *ITEM_PREFIX_41_NAME = N_("Glorious");
const char *ITEM_PREFIX_42_NAME = N_("Blessed");
const char *ITEM_PREFIX_43_NAME = N_("Saintly");
const char *ITEM_PREFIX_44_NAME = N_("Awesome");
const char *ITEM_PREFIX_45_NAME = N_("Holy");
const char *ITEM_PREFIX_46_NAME = N_("Godly");
const char *ITEM_PREFIX_47_NAME = N_("Red");
const char *ITEM_PREFIX_48_NAME = N_("Crimson");
const char *ITEM_PREFIX_49_NAME = N_("Crimson");
const char *ITEM_PREFIX_50_NAME = N_("Garnet");
const char *ITEM_PREFIX_51_NAME = N_("Ruby");
const char *ITEM_PREFIX_52_NAME = N_("Blue");
const char *ITEM_PREFIX_53_NAME = N_("Azure");
const char *ITEM_PREFIX_54_NAME = N_("Lapis");
const char *ITEM_PREFIX_55_NAME = N_("Cobalt");
const char *ITEM_PREFIX_56_NAME = N_("Sapphire");
const char *ITEM_PREFIX_57_NAME = N_("White");
const char *ITEM_PREFIX_58_NAME = N_("Pearl");
const char *ITEM_PREFIX_59_NAME = N_("Ivory");
const char *ITEM_PREFIX_60_NAME = N_("Crystal");
const char *ITEM_PREFIX_61_NAME = N_("Diamond");
const char *ITEM_PREFIX_62_NAME = N_("Topaz");
const char *ITEM_PREFIX_63_NAME = N_("Amber");
const char *ITEM_PREFIX_64_NAME = N_("Jade");
const char *ITEM_PREFIX_65_NAME = N_("Obsidian");
const char *ITEM_PREFIX_66_NAME = N_("Emerald");
const char *ITEM_PREFIX_67_NAME = N_("Hyena's");
const char *ITEM_PREFIX_68_NAME = N_("Frog's");
const char *ITEM_PREFIX_69_NAME = N_("Spider's");
const char *ITEM_PREFIX_70_NAME = N_("Raven's");
const char *ITEM_PREFIX_71_NAME = N_("Snake's");
const char *ITEM_PREFIX_72_NAME = N_("Serpent's");
const char *ITEM_PREFIX_73_NAME = N_("Drake's");
const char *ITEM_PREFIX_74_NAME = N_("Dragon's");
const char *ITEM_PREFIX_75_NAME = N_("Wyrm's");
const char *ITEM_PREFIX_76_NAME = N_("Hydra's");
const char *ITEM_PREFIX_77_NAME = N_("Angel's");
const char *ITEM_PREFIX_78_NAME = N_("Arch-Angel's");
const char *ITEM_PREFIX_79_NAME = N_("Plentiful");
const char *ITEM_PREFIX_80_NAME = N_("Bountiful");
const char *ITEM_PREFIX_81_NAME = N_("Flaming");
const char *ITEM_PREFIX_82_NAME = N_("Lightning");
const char *ITEM_PREFIX_83_NAME = N_("Jester's");
const char *ITEM_PREFIX_84_NAME = N_("Crystalline");
const char *ITEM_PREFIX_85_NAME = N_("Doppelganger's");
const char *ITEM_SUFFIX_0_NAME = N_("quality");
const char *ITEM_SUFFIX_1_NAME = N_("maiming");
const char *ITEM_SUFFIX_2_NAME = N_("slaying");
const char *ITEM_SUFFIX_3_NAME = N_("gore");
const char *ITEM_SUFFIX_4_NAME = N_("carnage");
const char *ITEM_SUFFIX_5_NAME = N_("slaughter");
const char *ITEM_SUFFIX_6_NAME = N_("pain");
const char *ITEM_SUFFIX_7_NAME = N_("tears");
const char *ITEM_SUFFIX_8_NAME = N_("health");
const char *ITEM_SUFFIX_9_NAME = N_("protection");
const char *ITEM_SUFFIX_10_NAME = N_("absorption");
const char *ITEM_SUFFIX_11_NAME = N_("deflection");
const char *ITEM_SUFFIX_12_NAME = N_("osmosis");
const char *ITEM_SUFFIX_13_NAME = N_("frailty");
const char *ITEM_SUFFIX_14_NAME = N_("weakness");
const char *ITEM_SUFFIX_15_NAME = N_("strength");
const char *ITEM_SUFFIX_16_NAME = N_("might");
const char *ITEM_SUFFIX_17_NAME = N_("power");
const char *ITEM_SUFFIX_18_NAME = N_("giants");
const char *ITEM_SUFFIX_19_NAME = N_("titans");
const char *ITEM_SUFFIX_20_NAME = N_("paralysis");
const char *ITEM_SUFFIX_21_NAME = N_("atrophy");
const char *ITEM_SUFFIX_22_NAME = N_("dexterity");
const char *ITEM_SUFFIX_23_NAME = N_("skill");
const char *ITEM_SUFFIX_24_NAME = N_("accuracy");
const char *ITEM_SUFFIX_25_NAME = N_("precision");
const char *ITEM_SUFFIX_26_NAME = N_("perfection");
const char *ITEM_SUFFIX_27_NAME = N_("the fool");
const char *ITEM_SUFFIX_28_NAME = N_("dyslexia");
const char *ITEM_SUFFIX_29_NAME = N_("magic");
const char *ITEM_SUFFIX_30_NAME = N_("the mind");
const char *ITEM_SUFFIX_31_NAME = N_("brilliance");
const char *ITEM_SUFFIX_32_NAME = N_("sorcery");
const char *ITEM_SUFFIX_33_NAME = N_("wizardry");
const char *ITEM_SUFFIX_34_NAME = N_("illness");
const char *ITEM_SUFFIX_35_NAME = N_("disease");
const char *ITEM_SUFFIX_36_NAME = N_("vitality");
const char *ITEM_SUFFIX_37_NAME = N_("zest");
const char *ITEM_SUFFIX_38_NAME = N_("vim");
const char *ITEM_SUFFIX_39_NAME = N_("vigor");
const char *ITEM_SUFFIX_40_NAME = N_("life");
const char *ITEM_SUFFIX_41_NAME = N_("trouble");
const char *ITEM_SUFFIX_42_NAME = N_("the pit");
const char *ITEM_SUFFIX_43_NAME = N_("the sky");
const char *ITEM_SUFFIX_44_NAME = N_("the moon");
const char *ITEM_SUFFIX_45_NAME = N_("the stars");
const char *ITEM_SUFFIX_46_NAME = N_("the heavens");
const char *ITEM_SUFFIX_47_NAME = N_("the zodiac");
const char *ITEM_SUFFIX_48_NAME = N_("the vulture");
const char *ITEM_SUFFIX_49_NAME = N_("the jackal");
const char *ITEM_SUFFIX_50_NAME = N_("the fox");
const char *ITEM_SUFFIX_51_NAME = N_("the jaguar");
const char *ITEM_SUFFIX_52_NAME = N_("the eagle");
const char *ITEM_SUFFIX_53_NAME = N_("the wolf");
const char *ITEM_SUFFIX_54_NAME = N_("the tiger");
const char *ITEM_SUFFIX_55_NAME = N_("the lion");
const char *ITEM_SUFFIX_56_NAME = N_("the mammoth");
const char *ITEM_SUFFIX_57_NAME = N_("the whale");
const char *ITEM_SUFFIX_58_NAME = N_("fragility");
const char *ITEM_SUFFIX_59_NAME = N_("brittleness");
const char *ITEM_SUFFIX_60_NAME = N_("sturdiness");
const char *ITEM_SUFFIX_61_NAME = N_("craftsmanship");
const char *ITEM_SUFFIX_62_NAME = N_("structure");
const char *ITEM_SUFFIX_63_NAME = N_("the ages");
const char *ITEM_SUFFIX_64_NAME = N_("the dark");
const char *ITEM_SUFFIX_65_NAME = N_("the night");
const char *ITEM_SUFFIX_66_NAME = N_("light");
const char *ITEM_SUFFIX_67_NAME = N_("radiance");
const char *ITEM_SUFFIX_68_NAME = N_("flame");
const char *ITEM_SUFFIX_69_NAME = N_("fire");
const char *ITEM_SUFFIX_70_NAME = N_("burning");
const char *ITEM_SUFFIX_71_NAME = N_("shock");
const char *ITEM_SUFFIX_72_NAME = N_("lightning");
const char *ITEM_SUFFIX_73_NAME = N_("thunder");
const char *ITEM_SUFFIX_74_NAME = N_("many");
const char *ITEM_SUFFIX_75_NAME = N_("plenty");
const char *ITEM_SUFFIX_76_NAME = N_("thorns");
const char *ITEM_SUFFIX_77_NAME = N_("corruption");
const char *ITEM_SUFFIX_78_NAME = N_("thieves");
const char *ITEM_SUFFIX_79_NAME = N_("the bear");
const char *ITEM_SUFFIX_80_NAME = N_("the bat");
const char *ITEM_SUFFIX_81_NAME = N_("vampires");
const char *ITEM_SUFFIX_82_NAME = N_("the leech");
const char *ITEM_SUFFIX_83_NAME = N_("blood");
const char *ITEM_SUFFIX_84_NAME = N_("piercing");
const char *ITEM_SUFFIX_85_NAME = N_("puncturing");
const char *ITEM_SUFFIX_86_NAME = N_("bashing");
const char *ITEM_SUFFIX_87_NAME = N_("readiness");
const char *ITEM_SUFFIX_88_NAME = N_("swiftness");
const char *ITEM_SUFFIX_89_NAME = N_("speed");
const char *ITEM_SUFFIX_90_NAME = N_("haste");
const char *ITEM_SUFFIX_91_NAME = N_("balance");
const char *ITEM_SUFFIX_92_NAME = N_("stability");
const char *ITEM_SUFFIX_93_NAME = N_("harmony");
const char *ITEM_SUFFIX_94_NAME = N_("blocking");
const char *ITEM_SUFFIX_95_NAME = N_("devastation");
const char *ITEM_SUFFIX_96_NAME = N_("decay");
const char *ITEM_SUFFIX_97_NAME = N_("peril");

1
test/.clang-format

@ -1,6 +1,7 @@
BasedOnStyle: webkit
AlignTrailingComments: true
AllowShortBlocksOnASingleLine: true
AllowShortCaseLabelsOnASingleLine: true
AllowShortFunctionsOnASingleLine: All
AllowShortIfStatementsOnASingleLine: WithoutElse
PointerAlignment: Right

5
test/inv_test.cpp

@ -15,6 +15,11 @@ public:
Players.resize(1);
MyPlayer = &Players[0];
}
static void SetUpTestSuite()
{
LoadItemData();
}
};
/* Set up a given item as a spell scroll, allowing for its usage. */

12
test/pack_test.cpp

@ -411,6 +411,11 @@ public:
Players.resize(1);
MyPlayer = &Players[0];
}
static void SetUpTestSuite()
{
LoadItemData();
}
};
TEST_F(PackTest, UnPackItem_diablo)
@ -943,9 +948,14 @@ public:
};
SwapLE(testPack);
UnPackPlayer(testPack, *MyPlayer);
}
static void SetUpTestSuite()
{
LoadPlayerDataFiles();
LoadMonsterData();
UnPackPlayer(testPack, *MyPlayer);
LoadItemData();
}
};

1
test/player_test.cpp

@ -180,6 +180,7 @@ static void AssertPlayer(Player &player)
TEST(Player, CreatePlayer)
{
LoadPlayerDataFiles();
LoadItemData();
Players.resize(1);
CreatePlayer(Players[0], HeroClass::Rogue);
AssertPlayer(Players[0]);

1
test/timedemo_test.cpp

@ -54,6 +54,7 @@ void RunTimedemo(std::string timedemoFolderName)
LoadPlayerDataFiles();
LoadMonsterData();
LoadItemData();
pfile_ui_set_hero_infos(Dummy_GetHeroInfo);
gbLoadGame = true;

1
test/writehero_test.cpp

@ -375,6 +375,7 @@ TEST(Writehero, pfile_write_hero)
MyPlayer = &Players[MyPlayerId];
LoadPlayerDataFiles();
LoadItemData();
_uiheroinfo info {};
info.heroclass = HeroClass::Rogue;
pfile_ui_save_create(&info);

38
tools/extract_translation_data.py

@ -6,6 +6,10 @@ root = pathlib.Path(__file__).resolve().parent.parent
translation_dummy_path = root.joinpath("Source/translation_dummy.cpp")
monstdat_path = root.joinpath("Packaging/resources/assets/txtdata/monsters/monstdat.tsv")
unique_monstdat_path = root.joinpath("Packaging/resources/assets/txtdata/monsters/unique_monstdat.tsv")
itemdat_path = root.joinpath("Packaging/resources/assets/txtdata/items/itemdat.tsv")
unique_itemdat_path = root.joinpath("Packaging/resources/assets/txtdata/items/unique_itemdat.tsv")
item_prefixes_path = root.joinpath("Packaging/resources/assets/txtdata/items/item_prefixes.tsv")
item_suffixes_path = root.joinpath("Packaging/resources/assets/txtdata/items/item_suffixes.tsv")
with open(translation_dummy_path, 'w') as temp_source:
temp_source.write(f'/**\n')
@ -21,10 +25,40 @@ with open(translation_dummy_path, 'w') as temp_source:
for row in reader:
name = row['name']
var_name = row['_monster_id'] + "_NAME"
temp_source.write(f'const char *' + var_name + ' = P_("monster", "' + name + '");\n')
temp_source.write(f'const char *{var_name} = P_("monster", "{name}");\n')
with open(unique_monstdat_path, 'r') as tsv:
reader = csv.DictReader(tsv, delimiter='\t')
for row in reader:
name = row['name']
var_name = name.upper().replace(' ', '_').replace('-', '_') + "_NAME"
temp_source.write(f'const char *' + var_name + ' = P_("monster", "' + name + '");\n')
temp_source.write(f'const char *{var_name} = P_("monster", "{name}");\n')
with open(itemdat_path, 'r') as tsv:
reader = csv.DictReader(tsv, delimiter='\t')
for i, row in enumerate(reader):
id = row['id']
name = row['name']
if name == 'Scroll of None' or name == 'Non Item':
continue
shortName = row['shortName']
var_name = id if id else f'ITEM_{i}'
temp_source.write(f'const char *{var_name}_NAME = N_("{name}");\n')
if shortName:
temp_source.write(f'const char *{var_name}_SHORT_NAME = N_("{shortName}");\n')
with open(unique_itemdat_path, 'r') as tsv:
reader = csv.DictReader(tsv, delimiter='\t')
for i, row in enumerate(reader):
name = row['name']
var_name = f'UNIQUE_ITEM_{i}'
temp_source.write(f'const char *{var_name}_NAME = N_("{name}");\n')
with open(item_prefixes_path, 'r') as tsv:
reader = csv.DictReader(tsv, delimiter='\t')
for i, row in enumerate(reader):
name = row['name']
var_name = f'ITEM_PREFIX_{i}'
temp_source.write(f'const char *{var_name}_NAME = N_("{name}");\n')
with open(item_suffixes_path, 'r') as tsv:
reader = csv.DictReader(tsv, delimiter='\t')
for i, row in enumerate(reader):
name = row['name']
var_name = f'ITEM_SUFFIX_{i}'
temp_source.write(f'const char *{var_name}_NAME = N_("{name}");\n')

Loading…
Cancel
Save