@blizzhackers/d2data 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (185) hide show
  1. package/.eslintrc.js +59 -0
  2. package/LICENSE +21 -0
  3. package/README.md +12 -0
  4. package/_config.yml +1 -0
  5. package/compile.js +789 -0
  6. package/docs/Avqest.ttf +0 -0
  7. package/docs/_config.yml +1 -0
  8. package/docs/armor.js +134 -0
  9. package/docs/css/d2font.css +10 -0
  10. package/docs/drops/.vscode/extensions.json +3 -0
  11. package/docs/drops/README.md +7 -0
  12. package/docs/drops/dist/assets/index.12ae3c90.js +6675 -0
  13. package/docs/drops/dist/index.html +24 -0
  14. package/docs/drops/index.html +23 -0
  15. package/docs/drops/package-lock.json +1143 -0
  16. package/docs/drops/package.json +17 -0
  17. package/docs/drops/src/App.vue +870 -0
  18. package/docs/drops/src/main.js +4 -0
  19. package/docs/drops/vite.config.js +8 -0
  20. package/docs/drops.html +10 -0
  21. package/docs/effort.css +118 -0
  22. package/docs/effort.js +367 -0
  23. package/docs/elem-effort.html +130 -0
  24. package/docs/images/0-0.svg +18 -0
  25. package/docs/images/0-1.svg +17 -0
  26. package/docs/images/0-2.svg +17 -0
  27. package/docs/images/1-0.svg +18 -0
  28. package/docs/images/1-1.svg +18 -0
  29. package/docs/images/1-2.svg +17 -0
  30. package/docs/images/2-0.svg +17 -0
  31. package/docs/images/2-1.svg +11 -0
  32. package/docs/images/2-2.svg +18 -0
  33. package/docs/images/3-0.svg +17 -0
  34. package/docs/images/3-1.svg +18 -0
  35. package/docs/images/3-2.svg +18 -0
  36. package/docs/images/4-0.svg +18 -0
  37. package/docs/images/4-1.svg +18 -0
  38. package/docs/images/4-2.svg +18 -0
  39. package/docs/images/5-0.svg +18 -0
  40. package/docs/images/5-1.svg +18 -0
  41. package/docs/images/5-2.svg +14 -0
  42. package/docs/images/6-0.svg +17 -0
  43. package/docs/images/6-1.svg +17 -0
  44. package/docs/images/6-2.svg +17 -0
  45. package/docs/images/AmSkillicon.png +0 -0
  46. package/docs/images/AsSkillicon.png +0 -0
  47. package/docs/images/BaSkillicon.png +0 -0
  48. package/docs/images/DrSkillicon.png +0 -0
  49. package/docs/images/NeSkillicon.png +0 -0
  50. package/docs/images/PaSkillicon.png +0 -0
  51. package/docs/images/Skillicon.png +0 -0
  52. package/docs/images/SoSkillicon.png +0 -0
  53. package/docs/index.md +5 -0
  54. package/docs/items.html +170 -0
  55. package/docs/leveling/.vscode/extensions.json +3 -0
  56. package/docs/leveling/README.md +7 -0
  57. package/docs/leveling/dist/assets/index.f9765357.js +1 -0
  58. package/docs/leveling/dist/index.html +24 -0
  59. package/docs/leveling/index.html +23 -0
  60. package/docs/leveling/package-lock.json +1143 -0
  61. package/docs/leveling/package.json +17 -0
  62. package/docs/leveling/src/App.vue +526 -0
  63. package/docs/leveling/src/main.js +4 -0
  64. package/docs/leveling/vite.config.js +8 -0
  65. package/docs/runewords/.vscode/extensions.json +3 -0
  66. package/docs/runewords/README.md +7 -0
  67. package/docs/runewords/dist/assets/index.0838f27c.js +6673 -0
  68. package/docs/runewords/dist/assets/index.73bf3e23.css +1 -0
  69. package/docs/runewords/dist/index.html +25 -0
  70. package/docs/runewords/index.html +23 -0
  71. package/docs/runewords/package-lock.json +1143 -0
  72. package/docs/runewords/package.json +17 -0
  73. package/docs/runewords/src/App.vue +781 -0
  74. package/docs/runewords/src/main.js +4 -0
  75. package/docs/runewords/src/modorder.json +234 -0
  76. package/docs/runewords/vite.config.js +8 -0
  77. package/docs/skills.css +1250 -0
  78. package/docs/skills.html +63 -0
  79. package/docs/skills.js +2192 -0
  80. package/docs/vue-setup.js +12 -0
  81. package/docs/weapons.js +149 -0
  82. package/font-example.html +34 -0
  83. package/json/.gitkeep +0 -0
  84. package/json/actinfo.json +116 -0
  85. package/json/armor.json +17232 -0
  86. package/json/armtype.json +17 -0
  87. package/json/atomic.json +1026 -0
  88. package/json/automagic.json +696 -0
  89. package/json/automap.json +40732 -0
  90. package/json/belts.json +743 -0
  91. package/json/bodylocs.json +52 -0
  92. package/json/books.json +34 -0
  93. package/json/charstats.json +525 -0
  94. package/json/colors.json +107 -0
  95. package/json/compcode.json +577 -0
  96. package/json/composit.json +82 -0
  97. package/json/cubemain.json +2112 -0
  98. package/json/cubemod.json +57 -0
  99. package/json/difficultylevels.json +110 -0
  100. package/json/elemtypes.json +62 -0
  101. package/json/events.json +72 -0
  102. package/json/experience.json +1214 -0
  103. package/json/gamble.json +520 -0
  104. package/json/gems.json +1868 -0
  105. package/json/hireling.json +7640 -0
  106. package/json/hitclass.json +67 -0
  107. package/json/inventory.json +2148 -0
  108. package/json/itemratio.json +134 -0
  109. package/json/items.json +54705 -0
  110. package/json/itemstatcost.json +5503 -0
  111. package/json/itemtypes.json +2567 -0
  112. package/json/levels.json +15515 -0
  113. package/json/localestrings-chi.json +8717 -0
  114. package/json/localestrings-deu.json +8717 -0
  115. package/json/localestrings-eng.json +8722 -0
  116. package/json/localestrings-esp.json +8717 -0
  117. package/json/localestrings-fra.json +8718 -0
  118. package/json/localestrings-ita.json +8717 -0
  119. package/json/localestrings-kor.json +8715 -0
  120. package/json/localestrings-pol.json +8716 -0
  121. package/json/lowqualityitems.json +6 -0
  122. package/json/lvlmaze.json +910 -0
  123. package/json/lvlprest.json +28595 -0
  124. package/json/lvlsub.json +824 -0
  125. package/json/lvltypes.json +1377 -0
  126. package/json/lvlwarp.json +1515 -0
  127. package/json/magicprefix.json +12349 -0
  128. package/json/magicsuffix.json +13833 -0
  129. package/json/misc.json +11602 -0
  130. package/json/misscalc.json +217 -0
  131. package/json/missiles.json +23871 -0
  132. package/json/monai.json +1111 -0
  133. package/json/moncountest.json +642 -0
  134. package/json/monequip.json +361 -0
  135. package/json/monlvl.json +3665 -0
  136. package/json/monmode.json +98 -0
  137. package/json/monplace.json +39 -0
  138. package/json/monpopulationest.json +17383 -0
  139. package/json/monpreset.json +922 -0
  140. package/json/monprop.json +144 -0
  141. package/json/monseq.json +5211 -0
  142. package/json/monsounds.json +2530 -0
  143. package/json/monstats.json +66101 -0
  144. package/json/monstats2.json +34882 -0
  145. package/json/montype.json +274 -0
  146. package/json/monumod.json +504 -0
  147. package/json/npc.json +232 -0
  148. package/json/objects.json +87041 -0
  149. package/json/objgroup.json +3733 -0
  150. package/json/objmode.json +42 -0
  151. package/json/objpreset.json +2906 -0
  152. package/json/objtype.json +2457 -0
  153. package/json/overlay.json +8008 -0
  154. package/json/pettype.json +226 -0
  155. package/json/playerclass.json +39 -0
  156. package/json/plrmode.json +122 -0
  157. package/json/plrtype.json +39 -0
  158. package/json/properties.json +2823 -0
  159. package/json/qualityitems.json +149 -0
  160. package/json/rareprefix.json +296 -0
  161. package/json/raresuffix.json +921 -0
  162. package/json/runes.json +3280 -0
  163. package/json/setitems.json +3871 -0
  164. package/json/sets.json +1001 -0
  165. package/json/shrines.json +319 -0
  166. package/json/skillcalc.json +457 -0
  167. package/json/skilldesc.json +7532 -0
  168. package/json/skills.json +16717 -0
  169. package/json/soundenviron.json +2862 -0
  170. package/json/sounds.json +446543 -0
  171. package/json/states.json +1578 -0
  172. package/json/storepage.json +22 -0
  173. package/json/superuniques.json +1405 -0
  174. package/json/tcprecalc.json +29302 -0
  175. package/json/treasureclassex.json +14932 -0
  176. package/json/treasureclassgroupsex.json +711 -0
  177. package/json/uniqueappellation.json +27 -0
  178. package/json/uniqueitems.json +14171 -0
  179. package/json/uniqueprefix.json +55 -0
  180. package/json/uniquesuffix.json +71 -0
  181. package/json/wanderingmon.json +3 -0
  182. package/json/weapons.json +25875 -0
  183. package/objext.js +53 -0
  184. package/package.json +16 -0
  185. package/string.js +42 -0
Binary file
@@ -0,0 +1 @@
1
+ theme: jekyll-theme-hacker
package/docs/armor.js ADDED
@@ -0,0 +1,134 @@
1
+ 'use strict'; /* global Vue */
2
+
3
+ (function () {
4
+ let data = fetch('https://raw.githubusercontent.com/blizzhackers/d2data/master/json/armor.json');
5
+
6
+ function first (...values) {
7
+ return values.filter(v => v !== undefined).shift();
8
+ }
9
+
10
+ new Vue({
11
+ el: '#armorapp',
12
+ data: {
13
+ visible: false,
14
+ pageTitle: 'Diablo 2 Armor Browser',
15
+ items: [],
16
+ sortColumn: undefined,
17
+ contains: '',
18
+ levelreqlower: 0,
19
+ levelrequpper: 99,
20
+ tier: 0,
21
+ sockets: 0,
22
+ weight: -1,
23
+ maxstrreq: 0,
24
+ maxstrreqmax: 0,
25
+ maxlevelreq: 99,
26
+ itemtype: 'All',
27
+ itemtypes: {
28
+ All: 'All',
29
+ },
30
+ defaults: {
31
+ value: '??',
32
+ headstyle: 'width:1px;user-select:none;cursor:pointer;text-align:center;',
33
+ style: 'text-align: center;',
34
+ },
35
+ columns: [
36
+ { label: '', value: '', headstyle: 'width:auto;user-select:none;cursor:pointer;' },
37
+ { label: 'Item Name (code)', key: 'name', render: item => item.name + ' (' + item.code + ')', headstyle: 'width:1px;user-select:none;cursor:pointer;text-align:center;white-space:nowrap;', style: 'text-align:center;white-space:nowrap;', tooltip: 'The item name (and internal item code).' },
38
+ { label: 'Type', key: 'type', render: item => item.type || '??', sortDefault: '??', tooltip: 'The category this item belongs to.' },
39
+ { label: 'Req Level', key: 'levelreq', render: item => item.levelreq || 0, sortDefault: 0, tooltip: 'The minimum level required to equip this item.' },
40
+ { label: 'Tier', key: 'tier', render: item => item.tierName, sortDefault: 0, defaultSortOrder: -1, tooltip: 'Each item has Normal, Exceptional, and Elite variants. Elite is the best.' },
41
+ { label: 'Sock', key: 'gemsockets', render: item => item.gemsockets || 0, sortDefault: 0, tooltip: 'The maximum number of sockets an item can possibly have.' },
42
+ { label: 'Max AC', key: 'maxac', render: item => item.maxac || 0, sortDefault: 0, tooltip: 'The maximum amount of armor class an item can possibly have.' },
43
+ { label: 'Weight', key: 'speed', render: item => item.weightClass, sortDefault: 0, tooltip: 'The weight of the armor. Medium has a run speed penalty, and Heavy has even more.' },
44
+ { label: 'Req Str', key: 'reqstr', render: item => item.reqstr || 0, sortDefault: 0, tooltip: 'The minimum amount of strength required to equip this item (before modifiers).' },
45
+ { label: '', value: '', headstyle: 'width:auto;user-select:none;cursor:pointer;' },
46
+ ]
47
+ },
48
+ methods: {
49
+ sort: function (column) {
50
+ if (this.sortColumn === column) {
51
+ column.sortOrder = -column.sortOrder;
52
+ } else {
53
+ if (this.sortColumn) {
54
+ delete this.sortColumn.headclass;
55
+ }
56
+
57
+ this.sortColumn = column;
58
+ column.sortOrder = column.sortOrder || column.defaultSortOrder || 1;
59
+ }
60
+
61
+ column.headclass = column.sortOrder > 0 ? 'text-primary' : 'text-danger';
62
+
63
+ this.item = this.items.sort((a, b) => {
64
+ let av = first(column.value, a[column.key], column.sortDefault);
65
+ let bv = first(column.value, b[column.key], column.sortDefault);
66
+ let ret = av < bv ? -column.sortOrder : av > bv ? column.sortOrder : 0;
67
+
68
+ return ret;
69
+ });
70
+ },
71
+ resetValues: function () {
72
+ this.contains = '';
73
+ this.levelreqlower = 0;
74
+ this.levelrequpper = this.maxlevelreq;
75
+ this.sockets = 0;
76
+ this.tier = 0;
77
+ this.itemtype = 'All';
78
+ this.weight = -1;
79
+ this.maxstrreq = this.maxstrreqmax;
80
+ },
81
+ canShow: function (item) {
82
+ if (item.name.toLowerCase().indexOf(this.contains.toLowerCase()) < 0) {
83
+ return false;
84
+ }
85
+
86
+ if (+this.levelreqlower && +item.levelreq < +this.levelreqlower) {
87
+ return false;
88
+ }
89
+
90
+ if (+this.levelrequpper && +item.levelreq > +this.levelrequpper) {
91
+ return false;
92
+ }
93
+
94
+ if (+this.tier && +item.tier !== +this.tier) {
95
+ return false;
96
+ }
97
+
98
+ if (this.itemtype !== 'All' && this.itemtype !== item.type) {
99
+ return false;
100
+ }
101
+
102
+ if (this.sockets && (item.gemsockets || 0) < this.sockets) {
103
+ return false;
104
+ }
105
+
106
+ if (+this.weight >= 0 && +(item.speed || 0) !== +this.weight) {
107
+ return false;
108
+ }
109
+
110
+ if ((item.reqstr || 0) > this.maxstrreq) {
111
+ return false;
112
+ }
113
+
114
+ return true;
115
+ },
116
+ first,
117
+ },
118
+ created: async function () {
119
+ data = await data;
120
+ data = await data.json();
121
+ this.items = Object.values(data).map(v => {
122
+ v.levelreq = v.levelreq || 0;
123
+ v.weightClass = v.speed === 10 ? 'Heavy' : v.speed === 5 ? 'Medium' : 'Light';
124
+ v.tier = v.code === v.ultracode ? 3 : v.code === v.ubercode ? 2 : 1;
125
+ v.tierName = ['None', 'Norm', 'Excep', 'Elite'][v.tier];
126
+ this.maxstrreq = this.maxstrreqmax = Math.max(this.maxstrreqmax, v.reqstr || 0);
127
+ this.itemtypes[v.type || 'none'] = v.type || 'none';
128
+
129
+ return v;
130
+ }).filter(i => i.spawnable);
131
+ this.visible = true;
132
+ },
133
+ });
134
+ })();
@@ -0,0 +1,10 @@
1
+ @font-face {
2
+ font-family: AvQuest;
3
+ src: url(../Avqest.ttf);
4
+ }
5
+
6
+ .avquest {
7
+ font-family: AvQuest;
8
+ font-weight: bold;
9
+ letter-spacing: 1px;
10
+ }
@@ -0,0 +1,3 @@
1
+ {
2
+ "recommendations": ["johnsoncodehk.volar"]
3
+ }
@@ -0,0 +1,7 @@
1
+ # Vue 3 + Vite
2
+
3
+ This template should help get you started developing with Vue 3 in Vite. The template uses Vue 3 `<script setup>` SFCs, check out the [script setup docs](https://v3.vuejs.org/api/sfc-script-setup.html#sfc-script-setup) to learn more.
4
+
5
+ ## Recommended IDE Setup
6
+
7
+ - [VS Code](https://code.visualstudio.com/) + [Volar](https://marketplace.visualstudio.com/items?itemName=johnsoncodehk.volar)