lol-constants 1.2.3 → 1.3.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -6,6 +6,7 @@ import './generate-item-keys';
6
6
  import './generate-item-names';
7
7
  import './generate-rune-ids';
8
8
  import './generate-rune-names';
9
+ import './generate-rune-sets-by-rune-names';
9
10
  import './generate-rune-sets';
10
11
  import './generate-spell-ids-by-name';
11
12
  import './generate-spell-ids';
@@ -8,6 +8,7 @@ require("./generate-item-keys");
8
8
  require("./generate-item-names");
9
9
  require("./generate-rune-ids");
10
10
  require("./generate-rune-names");
11
+ require("./generate-rune-sets-by-rune-names");
11
12
  require("./generate-rune-sets");
12
13
  require("./generate-spell-ids-by-name");
13
14
  require("./generate-spell-ids");
@@ -0,0 +1,94 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const runesReforged_json_1 = __importDefault(require("../runesReforged.json"));
7
+ const StatRunes_1 = require("../StatRunes");
8
+ const writeToTmpFile_1 = require("./Helpers/writeToTmpFile");
9
+ (async () => {
10
+ const constant = 'RuneSetsByRuneNames';
11
+ const runeSets = {
12
+ PrimaryTrees: {},
13
+ SecondaryTrees: {},
14
+ Keystones: {},
15
+ StatRunes: {},
16
+ };
17
+ const keystoneHSetIdx = 0;
18
+ let totalRuneAmt = 0;
19
+ for (const runeTree of runesReforged_json_1.default) {
20
+ const runeTreeName = runeTree.name;
21
+ const horizontalSets = runeTree.slots;
22
+ let currentHSetIdx = 0;
23
+ for (const { runes, } of horizontalSets) {
24
+ for (let { id, name: runeName, } of runes) {
25
+ totalRuneAmt += 1;
26
+ // Add to PrimaryTrees
27
+ if (!(runeTreeName in runeSets.PrimaryTrees))
28
+ runeSets.PrimaryTrees[runeTreeName] = {};
29
+ runeSets.PrimaryTrees[runeTreeName][runeName] = String(id);
30
+ // Add to SecondaryTrees
31
+ if (!(runeTreeName in runeSets.SecondaryTrees))
32
+ runeSets.SecondaryTrees[runeTreeName] = {};
33
+ // But only if it isn't a keystone rune
34
+ if (currentHSetIdx != keystoneHSetIdx) {
35
+ runeSets.SecondaryTrees[runeTreeName][runeName] = String(id);
36
+ }
37
+ // Add to Keystones
38
+ // But only if it is a keystone rune
39
+ if (currentHSetIdx == keystoneHSetIdx) {
40
+ runeSets.Keystones[runeName] = String(id);
41
+ }
42
+ }
43
+ ++currentHSetIdx;
44
+ }
45
+ }
46
+ let statRuneId;
47
+ for (statRuneId in StatRunes_1.StatRunes) {
48
+ totalRuneAmt += 1;
49
+ // Add to StatRunes
50
+ runeSets.StatRunes[StatRunes_1.StatRunes[statRuneId]] = statRuneId;
51
+ }
52
+ // Write to file
53
+ await (0, writeToTmpFile_1.writeToTmpFile)(constant, {
54
+ constName: 'PrimaryTrees',
55
+ json: runeSets.PrimaryTrees,
56
+ }, {
57
+ constName: 'SecondaryTrees',
58
+ json: runeSets.SecondaryTrees,
59
+ }, {
60
+ constName: 'Keystones',
61
+ json: runeSets.Keystones,
62
+ }, {
63
+ constName: 'StatRunes',
64
+ json: runeSets.StatRunes,
65
+ }, {
66
+ constName: 'All',
67
+ json: {
68
+ 1: '...PrimaryTrees.Precision',
69
+ 2: '...PrimaryTrees.Domination',
70
+ 3: '...PrimaryTrees.Sorcery',
71
+ 4: '...PrimaryTrees.Resolve',
72
+ 5: '...PrimaryTrees.Inspiration',
73
+ 6: '...StatRunes',
74
+ },
75
+ keysToSpread: [1, 2, 3, 4, 5, 6],
76
+ }, {
77
+ constName: constant,
78
+ comment: `Contains all Rune IDs that are known to man in the game of League of Legends. Sorted by various useful categories. There are a total of ${totalRuneAmt} runes in the game.`,
79
+ json: {
80
+ 'PrimaryTrees': 'PrimaryTrees',
81
+ 'SecondaryTrees': 'SecondaryTrees',
82
+ 'Keystones': 'Keystones',
83
+ 'StatRunes': 'StatRunes',
84
+ 'All': 'All',
85
+ },
86
+ keysToSpread: [
87
+ 'PrimaryTrees',
88
+ 'SecondaryTrees',
89
+ 'Keystones',
90
+ 'StatRunes',
91
+ 'All',
92
+ ],
93
+ });
94
+ })();
@@ -74,7 +74,7 @@ const writeToTmpFile_1 = require("./Helpers/writeToTmpFile");
74
74
  },
75
75
  keysToSpread: [1, 2, 3, 4, 5, 6],
76
76
  }, {
77
- constName: 'RuneSets',
77
+ constName: constant,
78
78
  comment: `Contains all Rune IDs that are known to man in the game of League of Legends. Sorted by various useful categories. There are a total of ${totalRuneAmt} runes in the game.`,
79
79
  json: {
80
80
  'PrimaryTrees': 'PrimaryTrees',
@@ -17,7 +17,7 @@ export declare const DDPaths: {
17
17
  /**
18
18
  * Append with `/FlashFrost.png` (`/{abilityKey}.png`).
19
19
  */
20
- readonly SPELL_ICON_BASE: `${string}/img/spell`;
20
+ readonly ABILITY_ICON_BASE: `${string}/img/spell`;
21
21
  /**
22
22
  * Append with `/685.png` (`/{iconId}.png`).
23
23
  */
@@ -26,4 +26,12 @@ export declare const DDPaths: {
26
26
  * Append with `/1001.png` (`/{itemId}.png`).
27
27
  */
28
28
  readonly ITEM_ICON_BASE: `${string}/img/item`;
29
+ /**
30
+ * @see https://raw.communitydragon.org/latest/plugins/rcp-be-lol-game-data/global/default/v1/perk-images/statmods/
31
+ */
32
+ readonly STAT_RUNE_ICON_BASE: `${string}/plugins/rcp-be-lol-game-data/global/default/v1/perk-images/statmods`;
33
+ /**
34
+ * @see https://raw.communitydragon.org/latest/plugins/rcp-be-lol-game-data/global/default/v1/perk-images/styles/
35
+ */
36
+ readonly TREE_RUNE_ICON_BASE: `${string}/plugins/rcp-be-lol-game-data/global/default/v1/perk-images/styles`;
29
37
  };
@@ -3,6 +3,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.DDPaths = void 0;
4
4
  const version = '12.12.1';
5
5
  const base = `https://ddragon.leagueoflegends.com/cdn/${version}`;
6
+ const cdragonVersion = '12.12';
7
+ const cdragonBase = `https://raw.communitydragon.org/${cdragonVersion}`;
6
8
  /**
7
9
  * DataDragon CDN Paths.
8
10
  */
@@ -22,7 +24,7 @@ exports.DDPaths = {
22
24
  /**
23
25
  * Append with `/FlashFrost.png` (`/{abilityKey}.png`).
24
26
  */
25
- SPELL_ICON_BASE: `${base}/img/spell`,
27
+ ABILITY_ICON_BASE: `${base}/img/spell`,
26
28
  /**
27
29
  * Append with `/685.png` (`/{iconId}.png`).
28
30
  */
@@ -31,4 +33,12 @@ exports.DDPaths = {
31
33
  * Append with `/1001.png` (`/{itemId}.png`).
32
34
  */
33
35
  ITEM_ICON_BASE: `${base}/img/item`,
36
+ /**
37
+ * @see https://raw.communitydragon.org/latest/plugins/rcp-be-lol-game-data/global/default/v1/perk-images/statmods/
38
+ */
39
+ STAT_RUNE_ICON_BASE: `${cdragonBase}/plugins/rcp-be-lol-game-data/global/default/v1/perk-images/statmods`,
40
+ /**
41
+ * @see https://raw.communitydragon.org/latest/plugins/rcp-be-lol-game-data/global/default/v1/perk-images/styles/
42
+ */
43
+ TREE_RUNE_ICON_BASE: `${cdragonBase}/plugins/rcp-be-lol-game-data/global/default/v1/perk-images/styles`,
34
44
  };
@@ -0,0 +1,12 @@
1
+ import { RuneName, RuneTreeName } from '../../types';
2
+ /**
3
+ * The file names themselves of runes,
4
+ * according to https://raw.communitydragon.org.
5
+ * The file names are excluding the extension (`.png`).
6
+ *
7
+ * @see https://raw.communitydragon.org/latest/plugins/rcp-be-lol-game-data/global/default/v1/perk-images/statmods/
8
+ * @see https://raw.communitydragon.org/latest/plugins/rcp-be-lol-game-data/global/default/v1/perk-images/styles/
9
+ */
10
+ export declare const RuneIconFileNames: {
11
+ [k in (RuneName | RuneTreeName)]: string;
12
+ };
@@ -0,0 +1,101 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RuneIconFileNames = void 0;
4
+ /**
5
+ * The file names themselves of runes,
6
+ * according to https://raw.communitydragon.org.
7
+ * The file names are excluding the extension (`.png`).
8
+ *
9
+ * @see https://raw.communitydragon.org/latest/plugins/rcp-be-lol-game-data/global/default/v1/perk-images/statmods/
10
+ * @see https://raw.communitydragon.org/latest/plugins/rcp-be-lol-game-data/global/default/v1/perk-images/styles/
11
+ */
12
+ exports.RuneIconFileNames = {
13
+ // ## Rune Trees
14
+ 'Precision': '7201_precision',
15
+ 'Domination': '7200_domination',
16
+ 'Sorcery': '7202_sorcery',
17
+ 'Resolve': '7204_resolve',
18
+ 'Inspiration': '7203_whimsy',
19
+ // ## Tree Runes
20
+ // ### Precision
21
+ 'Conqueror': 'conqueror',
22
+ 'Coup de Grace': 'coupdegrace',
23
+ 'Cut Down': 'cutdown',
24
+ 'Fleet Footwork': 'fleetfootwork',
25
+ 'Legend: Alacrity': 'legendalacrity',
26
+ 'Legend: Bloodline': 'legendbloodline',
27
+ 'Legend: Tenacity': 'legendtenacity',
28
+ 'Lethal Tempo': 'lethaltempotemp',
29
+ 'Presence of Mind': 'presenceofmind',
30
+ 'Press the Attack': 'presstheattack',
31
+ 'Overheal': 'overheal',
32
+ 'Triumph': 'triumph',
33
+ // ### Domination
34
+ 'Cheap Shot': 'cheapshot',
35
+ 'Dark Harvest': 'darkharvest',
36
+ 'Electrocute': 'electrocute',
37
+ 'Eyeball Collection': 'eyeballcollection',
38
+ 'Ghost Poro': 'ghostporo',
39
+ 'Hail of Blades': 'hailofblades',
40
+ 'Ingenious Hunter': 'ingenioushunter',
41
+ 'Predator': 'predator',
42
+ 'Relentless Hunter': 'relentlesshunter',
43
+ 'Sudden Impact': 'suddenimpact',
44
+ 'Taste of Blood': 'greenterror_tasteofblood',
45
+ 'Treasure Hunter': 'treasurehunter',
46
+ 'Ultimate Hunter': 'ultimatehunter',
47
+ 'Zombie Ward': 'zombieward',
48
+ // ### Sorcery
49
+ 'Absolute Focus': 'absolutefocus',
50
+ 'Arcane Comet': 'arcanecomet',
51
+ 'Celerity': 'celeritytemp',
52
+ 'Gathering Storm': 'gatheringstorm',
53
+ 'Last Stand': 'laststand',
54
+ 'Manaflow Band': 'manaflowband',
55
+ 'Nimbus Cloak': '6361',
56
+ 'Nullifying Orb': 'pokeshield',
57
+ 'Phase Rush': 'phaserush',
58
+ 'Scorch': 'scorch',
59
+ 'Summon Aery': 'summonaery',
60
+ 'Transcendence': 'transcendence',
61
+ 'Unflinching': 'unflinching',
62
+ 'Waterwalking': 'waterwalking',
63
+ // ### Resolve
64
+ 'Approach Velocity': 'approachvelocity',
65
+ 'Bone Plating': 'boneplating',
66
+ 'Conditioning': 'conditioning',
67
+ 'Demolish': 'demolish',
68
+ 'Font of Life': 'fontoflife',
69
+ 'Grasp of the Undying': 'graspoftheundying',
70
+ 'Guardian': 'guardian',
71
+ 'Shield Bash': 'mirrorshell',
72
+ 'Overgrowth': 'overgrowth',
73
+ 'Revitalize': 'revitalize',
74
+ 'Second Wind': 'secondwind',
75
+ 'Aftershock': 'veteranaftershock',
76
+ // ### Inspiration
77
+ 'Magical Footwear': 'magicalfootwear',
78
+ 'Minion Dematerializer': 'miniondematerializer',
79
+ 'Perfect Timing': 'perfecttiming',
80
+ 'Time Warp Tonic': 'timewarptonic',
81
+ 'Unsealed Spellbook': 'unsealedspellbook',
82
+ 'Biscuit Delivery': 'biscuitdelivery',
83
+ 'Cosmic Insight': 'cosmicinsight',
84
+ 'First Strike': 'firststrike',
85
+ 'Future\'s Market': 'futuresmarket',
86
+ 'Glacial Augment': 'glacialaugment',
87
+ 'Hextech Flashtraption': 'hextechflashtraption',
88
+ // ## Stat Runes
89
+ // ###
90
+ 'Offense (AF)': 'statmodsadaptiveforceicon',
91
+ 'Offense (AS)': 'statmodsattackspeedicon',
92
+ 'Offense (AH)': 'statmodscdrscalingicon',
93
+ // ###
94
+ 'Flex (AF)': 'statmodsadaptiveforceicon',
95
+ 'Flex (AR)': 'statmodsarmoricon',
96
+ 'Flex (MR)': 'statmodsmagicresicon.magicresist_fix',
97
+ // ###
98
+ 'Defense (HP)': 'statmodshealthscalingicon',
99
+ 'Defense (AR)': 'statmodsarmoricon',
100
+ 'Defense (MR)': 'statmodsmagicresicon.magicresist_fix',
101
+ };
@@ -0,0 +1,479 @@
1
+ export declare const PrimaryTrees: {
2
+ readonly Domination: {
3
+ readonly Electrocute: "8112";
4
+ readonly Predator: "8124";
5
+ readonly "Dark Harvest": "8128";
6
+ readonly "Hail of Blades": "9923";
7
+ readonly "Cheap Shot": "8126";
8
+ readonly "Taste of Blood": "8139";
9
+ readonly "Sudden Impact": "8143";
10
+ readonly "Zombie Ward": "8136";
11
+ readonly "Ghost Poro": "8120";
12
+ readonly "Eyeball Collection": "8138";
13
+ readonly "Treasure Hunter": "8135";
14
+ readonly "Ingenious Hunter": "8134";
15
+ readonly "Relentless Hunter": "8105";
16
+ readonly "Ultimate Hunter": "8106";
17
+ };
18
+ readonly Inspiration: {
19
+ readonly "Glacial Augment": "8351";
20
+ readonly "Unsealed Spellbook": "8360";
21
+ readonly "First Strike": "8369";
22
+ readonly "Hextech Flashtraption": "8306";
23
+ readonly "Magical Footwear": "8304";
24
+ readonly "Perfect Timing": "8313";
25
+ readonly "Future's Market": "8321";
26
+ readonly "Minion Dematerializer": "8316";
27
+ readonly "Biscuit Delivery": "8345";
28
+ readonly "Cosmic Insight": "8347";
29
+ readonly "Approach Velocity": "8410";
30
+ readonly "Time Warp Tonic": "8352";
31
+ };
32
+ readonly Precision: {
33
+ readonly "Press the Attack": "8005";
34
+ readonly "Lethal Tempo": "8008";
35
+ readonly "Fleet Footwork": "8021";
36
+ readonly Conqueror: "8010";
37
+ readonly Overheal: "9101";
38
+ readonly Triumph: "9111";
39
+ readonly "Presence of Mind": "8009";
40
+ readonly "Legend: Alacrity": "9104";
41
+ readonly "Legend: Tenacity": "9105";
42
+ readonly "Legend: Bloodline": "9103";
43
+ readonly "Coup de Grace": "8014";
44
+ readonly "Cut Down": "8017";
45
+ readonly "Last Stand": "8299";
46
+ };
47
+ readonly Resolve: {
48
+ readonly "Grasp of the Undying": "8437";
49
+ readonly Aftershock: "8439";
50
+ readonly Guardian: "8465";
51
+ readonly Demolish: "8446";
52
+ readonly "Font of Life": "8463";
53
+ readonly "Shield Bash": "8401";
54
+ readonly Conditioning: "8429";
55
+ readonly "Second Wind": "8444";
56
+ readonly "Bone Plating": "8473";
57
+ readonly Overgrowth: "8451";
58
+ readonly Revitalize: "8453";
59
+ readonly Unflinching: "8242";
60
+ };
61
+ readonly Sorcery: {
62
+ readonly "Summon Aery": "8214";
63
+ readonly "Arcane Comet": "8229";
64
+ readonly "Phase Rush": "8230";
65
+ readonly "Nullifying Orb": "8224";
66
+ readonly "Manaflow Band": "8226";
67
+ readonly "Nimbus Cloak": "8275";
68
+ readonly Transcendence: "8210";
69
+ readonly Celerity: "8234";
70
+ readonly "Absolute Focus": "8233";
71
+ readonly Scorch: "8237";
72
+ readonly Waterwalking: "8232";
73
+ readonly "Gathering Storm": "8236";
74
+ };
75
+ };
76
+ export declare const SecondaryTrees: {
77
+ readonly Domination: {
78
+ readonly "Cheap Shot": "8126";
79
+ readonly "Taste of Blood": "8139";
80
+ readonly "Sudden Impact": "8143";
81
+ readonly "Zombie Ward": "8136";
82
+ readonly "Ghost Poro": "8120";
83
+ readonly "Eyeball Collection": "8138";
84
+ readonly "Treasure Hunter": "8135";
85
+ readonly "Ingenious Hunter": "8134";
86
+ readonly "Relentless Hunter": "8105";
87
+ readonly "Ultimate Hunter": "8106";
88
+ };
89
+ readonly Inspiration: {
90
+ readonly "Hextech Flashtraption": "8306";
91
+ readonly "Magical Footwear": "8304";
92
+ readonly "Perfect Timing": "8313";
93
+ readonly "Future's Market": "8321";
94
+ readonly "Minion Dematerializer": "8316";
95
+ readonly "Biscuit Delivery": "8345";
96
+ readonly "Cosmic Insight": "8347";
97
+ readonly "Approach Velocity": "8410";
98
+ readonly "Time Warp Tonic": "8352";
99
+ };
100
+ readonly Precision: {
101
+ readonly Overheal: "9101";
102
+ readonly Triumph: "9111";
103
+ readonly "Presence of Mind": "8009";
104
+ readonly "Legend: Alacrity": "9104";
105
+ readonly "Legend: Tenacity": "9105";
106
+ readonly "Legend: Bloodline": "9103";
107
+ readonly "Coup de Grace": "8014";
108
+ readonly "Cut Down": "8017";
109
+ readonly "Last Stand": "8299";
110
+ };
111
+ readonly Resolve: {
112
+ readonly Demolish: "8446";
113
+ readonly "Font of Life": "8463";
114
+ readonly "Shield Bash": "8401";
115
+ readonly Conditioning: "8429";
116
+ readonly "Second Wind": "8444";
117
+ readonly "Bone Plating": "8473";
118
+ readonly Overgrowth: "8451";
119
+ readonly Revitalize: "8453";
120
+ readonly Unflinching: "8242";
121
+ };
122
+ readonly Sorcery: {
123
+ readonly "Nullifying Orb": "8224";
124
+ readonly "Manaflow Band": "8226";
125
+ readonly "Nimbus Cloak": "8275";
126
+ readonly Transcendence: "8210";
127
+ readonly Celerity: "8234";
128
+ readonly "Absolute Focus": "8233";
129
+ readonly Scorch: "8237";
130
+ readonly Waterwalking: "8232";
131
+ readonly "Gathering Storm": "8236";
132
+ };
133
+ };
134
+ export declare const Keystones: {
135
+ readonly Electrocute: "8112";
136
+ readonly Predator: "8124";
137
+ readonly "Dark Harvest": "8128";
138
+ readonly "Hail of Blades": "9923";
139
+ readonly "Glacial Augment": "8351";
140
+ readonly "Unsealed Spellbook": "8360";
141
+ readonly "First Strike": "8369";
142
+ readonly "Press the Attack": "8005";
143
+ readonly "Lethal Tempo": "8008";
144
+ readonly "Fleet Footwork": "8021";
145
+ readonly Conqueror: "8010";
146
+ readonly "Grasp of the Undying": "8437";
147
+ readonly Aftershock: "8439";
148
+ readonly Guardian: "8465";
149
+ readonly "Summon Aery": "8214";
150
+ readonly "Arcane Comet": "8229";
151
+ readonly "Phase Rush": "8230";
152
+ };
153
+ export declare const StatRunes: {
154
+ readonly "Defense (HP)": "5001";
155
+ readonly "Defense (AR)": "5002";
156
+ readonly "Defense (MR)": "5003";
157
+ readonly "Offense (AS)": "5005";
158
+ readonly "Offense (AH)": "5007";
159
+ readonly "Offense (AF)": "5008";
160
+ readonly "Flex (AR)": "5002f";
161
+ readonly "Flex (MR)": "5003f";
162
+ readonly "Flex (AF)": "5008f";
163
+ };
164
+ export declare const All: {
165
+ readonly "Defense (HP)": "5001";
166
+ readonly "Defense (AR)": "5002";
167
+ readonly "Defense (MR)": "5003";
168
+ readonly "Offense (AS)": "5005";
169
+ readonly "Offense (AH)": "5007";
170
+ readonly "Offense (AF)": "5008";
171
+ readonly "Flex (AR)": "5002f";
172
+ readonly "Flex (MR)": "5003f";
173
+ readonly "Flex (AF)": "5008f";
174
+ readonly "Glacial Augment": "8351";
175
+ readonly "Unsealed Spellbook": "8360";
176
+ readonly "First Strike": "8369";
177
+ readonly "Hextech Flashtraption": "8306";
178
+ readonly "Magical Footwear": "8304";
179
+ readonly "Perfect Timing": "8313";
180
+ readonly "Future's Market": "8321";
181
+ readonly "Minion Dematerializer": "8316";
182
+ readonly "Biscuit Delivery": "8345";
183
+ readonly "Cosmic Insight": "8347";
184
+ readonly "Approach Velocity": "8410";
185
+ readonly "Time Warp Tonic": "8352";
186
+ readonly "Grasp of the Undying": "8437";
187
+ readonly Aftershock: "8439";
188
+ readonly Guardian: "8465";
189
+ readonly Demolish: "8446";
190
+ readonly "Font of Life": "8463";
191
+ readonly "Shield Bash": "8401";
192
+ readonly Conditioning: "8429";
193
+ readonly "Second Wind": "8444";
194
+ readonly "Bone Plating": "8473";
195
+ readonly Overgrowth: "8451";
196
+ readonly Revitalize: "8453";
197
+ readonly Unflinching: "8242";
198
+ readonly "Summon Aery": "8214";
199
+ readonly "Arcane Comet": "8229";
200
+ readonly "Phase Rush": "8230";
201
+ readonly "Nullifying Orb": "8224";
202
+ readonly "Manaflow Band": "8226";
203
+ readonly "Nimbus Cloak": "8275";
204
+ readonly Transcendence: "8210";
205
+ readonly Celerity: "8234";
206
+ readonly "Absolute Focus": "8233";
207
+ readonly Scorch: "8237";
208
+ readonly Waterwalking: "8232";
209
+ readonly "Gathering Storm": "8236";
210
+ readonly Electrocute: "8112";
211
+ readonly Predator: "8124";
212
+ readonly "Dark Harvest": "8128";
213
+ readonly "Hail of Blades": "9923";
214
+ readonly "Cheap Shot": "8126";
215
+ readonly "Taste of Blood": "8139";
216
+ readonly "Sudden Impact": "8143";
217
+ readonly "Zombie Ward": "8136";
218
+ readonly "Ghost Poro": "8120";
219
+ readonly "Eyeball Collection": "8138";
220
+ readonly "Treasure Hunter": "8135";
221
+ readonly "Ingenious Hunter": "8134";
222
+ readonly "Relentless Hunter": "8105";
223
+ readonly "Ultimate Hunter": "8106";
224
+ readonly "Press the Attack": "8005";
225
+ readonly "Lethal Tempo": "8008";
226
+ readonly "Fleet Footwork": "8021";
227
+ readonly Conqueror: "8010";
228
+ readonly Overheal: "9101";
229
+ readonly Triumph: "9111";
230
+ readonly "Presence of Mind": "8009";
231
+ readonly "Legend: Alacrity": "9104";
232
+ readonly "Legend: Tenacity": "9105";
233
+ readonly "Legend: Bloodline": "9103";
234
+ readonly "Coup de Grace": "8014";
235
+ readonly "Cut Down": "8017";
236
+ readonly "Last Stand": "8299";
237
+ };
238
+ /**
239
+ * Contains all Rune IDs that are known to man in the game of League of Legends. Sorted by various useful categories. There are a total of 72 runes in the game.
240
+ */
241
+ export declare const RuneSetsByRuneNames: {
242
+ readonly PrimaryTrees: {
243
+ readonly Domination: {
244
+ readonly Electrocute: "8112";
245
+ readonly Predator: "8124";
246
+ readonly "Dark Harvest": "8128";
247
+ readonly "Hail of Blades": "9923";
248
+ readonly "Cheap Shot": "8126";
249
+ readonly "Taste of Blood": "8139";
250
+ readonly "Sudden Impact": "8143";
251
+ readonly "Zombie Ward": "8136";
252
+ readonly "Ghost Poro": "8120";
253
+ readonly "Eyeball Collection": "8138";
254
+ readonly "Treasure Hunter": "8135";
255
+ readonly "Ingenious Hunter": "8134";
256
+ readonly "Relentless Hunter": "8105";
257
+ readonly "Ultimate Hunter": "8106";
258
+ };
259
+ readonly Inspiration: {
260
+ readonly "Glacial Augment": "8351";
261
+ readonly "Unsealed Spellbook": "8360";
262
+ readonly "First Strike": "8369";
263
+ readonly "Hextech Flashtraption": "8306";
264
+ readonly "Magical Footwear": "8304";
265
+ readonly "Perfect Timing": "8313";
266
+ readonly "Future's Market": "8321";
267
+ readonly "Minion Dematerializer": "8316";
268
+ readonly "Biscuit Delivery": "8345";
269
+ readonly "Cosmic Insight": "8347";
270
+ readonly "Approach Velocity": "8410";
271
+ readonly "Time Warp Tonic": "8352";
272
+ };
273
+ readonly Precision: {
274
+ readonly "Press the Attack": "8005";
275
+ readonly "Lethal Tempo": "8008";
276
+ readonly "Fleet Footwork": "8021";
277
+ readonly Conqueror: "8010";
278
+ readonly Overheal: "9101";
279
+ readonly Triumph: "9111";
280
+ readonly "Presence of Mind": "8009";
281
+ readonly "Legend: Alacrity": "9104";
282
+ readonly "Legend: Tenacity": "9105";
283
+ readonly "Legend: Bloodline": "9103";
284
+ readonly "Coup de Grace": "8014";
285
+ readonly "Cut Down": "8017";
286
+ readonly "Last Stand": "8299";
287
+ };
288
+ readonly Resolve: {
289
+ readonly "Grasp of the Undying": "8437";
290
+ readonly Aftershock: "8439";
291
+ readonly Guardian: "8465";
292
+ readonly Demolish: "8446";
293
+ readonly "Font of Life": "8463";
294
+ readonly "Shield Bash": "8401";
295
+ readonly Conditioning: "8429";
296
+ readonly "Second Wind": "8444";
297
+ readonly "Bone Plating": "8473";
298
+ readonly Overgrowth: "8451";
299
+ readonly Revitalize: "8453";
300
+ readonly Unflinching: "8242";
301
+ };
302
+ readonly Sorcery: {
303
+ readonly "Summon Aery": "8214";
304
+ readonly "Arcane Comet": "8229";
305
+ readonly "Phase Rush": "8230";
306
+ readonly "Nullifying Orb": "8224";
307
+ readonly "Manaflow Band": "8226";
308
+ readonly "Nimbus Cloak": "8275";
309
+ readonly Transcendence: "8210";
310
+ readonly Celerity: "8234";
311
+ readonly "Absolute Focus": "8233";
312
+ readonly Scorch: "8237";
313
+ readonly Waterwalking: "8232";
314
+ readonly "Gathering Storm": "8236";
315
+ };
316
+ };
317
+ readonly SecondaryTrees: {
318
+ readonly Domination: {
319
+ readonly "Cheap Shot": "8126";
320
+ readonly "Taste of Blood": "8139";
321
+ readonly "Sudden Impact": "8143";
322
+ readonly "Zombie Ward": "8136";
323
+ readonly "Ghost Poro": "8120";
324
+ readonly "Eyeball Collection": "8138";
325
+ readonly "Treasure Hunter": "8135";
326
+ readonly "Ingenious Hunter": "8134";
327
+ readonly "Relentless Hunter": "8105";
328
+ readonly "Ultimate Hunter": "8106";
329
+ };
330
+ readonly Inspiration: {
331
+ readonly "Hextech Flashtraption": "8306";
332
+ readonly "Magical Footwear": "8304";
333
+ readonly "Perfect Timing": "8313";
334
+ readonly "Future's Market": "8321";
335
+ readonly "Minion Dematerializer": "8316";
336
+ readonly "Biscuit Delivery": "8345";
337
+ readonly "Cosmic Insight": "8347";
338
+ readonly "Approach Velocity": "8410";
339
+ readonly "Time Warp Tonic": "8352";
340
+ };
341
+ readonly Precision: {
342
+ readonly Overheal: "9101";
343
+ readonly Triumph: "9111";
344
+ readonly "Presence of Mind": "8009";
345
+ readonly "Legend: Alacrity": "9104";
346
+ readonly "Legend: Tenacity": "9105";
347
+ readonly "Legend: Bloodline": "9103";
348
+ readonly "Coup de Grace": "8014";
349
+ readonly "Cut Down": "8017";
350
+ readonly "Last Stand": "8299";
351
+ };
352
+ readonly Resolve: {
353
+ readonly Demolish: "8446";
354
+ readonly "Font of Life": "8463";
355
+ readonly "Shield Bash": "8401";
356
+ readonly Conditioning: "8429";
357
+ readonly "Second Wind": "8444";
358
+ readonly "Bone Plating": "8473";
359
+ readonly Overgrowth: "8451";
360
+ readonly Revitalize: "8453";
361
+ readonly Unflinching: "8242";
362
+ };
363
+ readonly Sorcery: {
364
+ readonly "Nullifying Orb": "8224";
365
+ readonly "Manaflow Band": "8226";
366
+ readonly "Nimbus Cloak": "8275";
367
+ readonly Transcendence: "8210";
368
+ readonly Celerity: "8234";
369
+ readonly "Absolute Focus": "8233";
370
+ readonly Scorch: "8237";
371
+ readonly Waterwalking: "8232";
372
+ readonly "Gathering Storm": "8236";
373
+ };
374
+ };
375
+ readonly Keystones: {
376
+ readonly Electrocute: "8112";
377
+ readonly Predator: "8124";
378
+ readonly "Dark Harvest": "8128";
379
+ readonly "Hail of Blades": "9923";
380
+ readonly "Glacial Augment": "8351";
381
+ readonly "Unsealed Spellbook": "8360";
382
+ readonly "First Strike": "8369";
383
+ readonly "Press the Attack": "8005";
384
+ readonly "Lethal Tempo": "8008";
385
+ readonly "Fleet Footwork": "8021";
386
+ readonly Conqueror: "8010";
387
+ readonly "Grasp of the Undying": "8437";
388
+ readonly Aftershock: "8439";
389
+ readonly Guardian: "8465";
390
+ readonly "Summon Aery": "8214";
391
+ readonly "Arcane Comet": "8229";
392
+ readonly "Phase Rush": "8230";
393
+ };
394
+ readonly StatRunes: {
395
+ readonly "Defense (HP)": "5001";
396
+ readonly "Defense (AR)": "5002";
397
+ readonly "Defense (MR)": "5003";
398
+ readonly "Offense (AS)": "5005";
399
+ readonly "Offense (AH)": "5007";
400
+ readonly "Offense (AF)": "5008";
401
+ readonly "Flex (AR)": "5002f";
402
+ readonly "Flex (MR)": "5003f";
403
+ readonly "Flex (AF)": "5008f";
404
+ };
405
+ readonly All: {
406
+ readonly "Defense (HP)": "5001";
407
+ readonly "Defense (AR)": "5002";
408
+ readonly "Defense (MR)": "5003";
409
+ readonly "Offense (AS)": "5005";
410
+ readonly "Offense (AH)": "5007";
411
+ readonly "Offense (AF)": "5008";
412
+ readonly "Flex (AR)": "5002f";
413
+ readonly "Flex (MR)": "5003f";
414
+ readonly "Flex (AF)": "5008f";
415
+ readonly "Glacial Augment": "8351";
416
+ readonly "Unsealed Spellbook": "8360";
417
+ readonly "First Strike": "8369";
418
+ readonly "Hextech Flashtraption": "8306";
419
+ readonly "Magical Footwear": "8304";
420
+ readonly "Perfect Timing": "8313";
421
+ readonly "Future's Market": "8321";
422
+ readonly "Minion Dematerializer": "8316";
423
+ readonly "Biscuit Delivery": "8345";
424
+ readonly "Cosmic Insight": "8347";
425
+ readonly "Approach Velocity": "8410";
426
+ readonly "Time Warp Tonic": "8352";
427
+ readonly "Grasp of the Undying": "8437";
428
+ readonly Aftershock: "8439";
429
+ readonly Guardian: "8465";
430
+ readonly Demolish: "8446";
431
+ readonly "Font of Life": "8463";
432
+ readonly "Shield Bash": "8401";
433
+ readonly Conditioning: "8429";
434
+ readonly "Second Wind": "8444";
435
+ readonly "Bone Plating": "8473";
436
+ readonly Overgrowth: "8451";
437
+ readonly Revitalize: "8453";
438
+ readonly Unflinching: "8242";
439
+ readonly "Summon Aery": "8214";
440
+ readonly "Arcane Comet": "8229";
441
+ readonly "Phase Rush": "8230";
442
+ readonly "Nullifying Orb": "8224";
443
+ readonly "Manaflow Band": "8226";
444
+ readonly "Nimbus Cloak": "8275";
445
+ readonly Transcendence: "8210";
446
+ readonly Celerity: "8234";
447
+ readonly "Absolute Focus": "8233";
448
+ readonly Scorch: "8237";
449
+ readonly Waterwalking: "8232";
450
+ readonly "Gathering Storm": "8236";
451
+ readonly Electrocute: "8112";
452
+ readonly Predator: "8124";
453
+ readonly "Dark Harvest": "8128";
454
+ readonly "Hail of Blades": "9923";
455
+ readonly "Cheap Shot": "8126";
456
+ readonly "Taste of Blood": "8139";
457
+ readonly "Sudden Impact": "8143";
458
+ readonly "Zombie Ward": "8136";
459
+ readonly "Ghost Poro": "8120";
460
+ readonly "Eyeball Collection": "8138";
461
+ readonly "Treasure Hunter": "8135";
462
+ readonly "Ingenious Hunter": "8134";
463
+ readonly "Relentless Hunter": "8105";
464
+ readonly "Ultimate Hunter": "8106";
465
+ readonly "Press the Attack": "8005";
466
+ readonly "Lethal Tempo": "8008";
467
+ readonly "Fleet Footwork": "8021";
468
+ readonly Conqueror: "8010";
469
+ readonly Overheal: "9101";
470
+ readonly Triumph: "9111";
471
+ readonly "Presence of Mind": "8009";
472
+ readonly "Legend: Alacrity": "9104";
473
+ readonly "Legend: Tenacity": "9105";
474
+ readonly "Legend: Bloodline": "9103";
475
+ readonly "Coup de Grace": "8014";
476
+ readonly "Cut Down": "8017";
477
+ readonly "Last Stand": "8299";
478
+ };
479
+ };
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RuneSetsByRuneNames = exports.All = exports.StatRunes = exports.Keystones = exports.SecondaryTrees = exports.PrimaryTrees = void 0;
4
+ exports.PrimaryTrees = { "Domination": { "Electrocute": "8112", "Predator": "8124", "Dark Harvest": "8128", "Hail of Blades": "9923", "Cheap Shot": "8126", "Taste of Blood": "8139", "Sudden Impact": "8143", "Zombie Ward": "8136", "Ghost Poro": "8120", "Eyeball Collection": "8138", "Treasure Hunter": "8135", "Ingenious Hunter": "8134", "Relentless Hunter": "8105", "Ultimate Hunter": "8106" }, "Inspiration": { "Glacial Augment": "8351", "Unsealed Spellbook": "8360", "First Strike": "8369", "Hextech Flashtraption": "8306", "Magical Footwear": "8304", "Perfect Timing": "8313", "Future's Market": "8321", "Minion Dematerializer": "8316", "Biscuit Delivery": "8345", "Cosmic Insight": "8347", "Approach Velocity": "8410", "Time Warp Tonic": "8352" }, "Precision": { "Press the Attack": "8005", "Lethal Tempo": "8008", "Fleet Footwork": "8021", "Conqueror": "8010", "Overheal": "9101", "Triumph": "9111", "Presence of Mind": "8009", "Legend: Alacrity": "9104", "Legend: Tenacity": "9105", "Legend: Bloodline": "9103", "Coup de Grace": "8014", "Cut Down": "8017", "Last Stand": "8299" }, "Resolve": { "Grasp of the Undying": "8437", "Aftershock": "8439", "Guardian": "8465", "Demolish": "8446", "Font of Life": "8463", "Shield Bash": "8401", "Conditioning": "8429", "Second Wind": "8444", "Bone Plating": "8473", "Overgrowth": "8451", "Revitalize": "8453", "Unflinching": "8242" }, "Sorcery": { "Summon Aery": "8214", "Arcane Comet": "8229", "Phase Rush": "8230", "Nullifying Orb": "8224", "Manaflow Band": "8226", "Nimbus Cloak": "8275", "Transcendence": "8210", "Celerity": "8234", "Absolute Focus": "8233", "Scorch": "8237", "Waterwalking": "8232", "Gathering Storm": "8236" } };
5
+ exports.SecondaryTrees = { "Domination": { "Cheap Shot": "8126", "Taste of Blood": "8139", "Sudden Impact": "8143", "Zombie Ward": "8136", "Ghost Poro": "8120", "Eyeball Collection": "8138", "Treasure Hunter": "8135", "Ingenious Hunter": "8134", "Relentless Hunter": "8105", "Ultimate Hunter": "8106" }, "Inspiration": { "Hextech Flashtraption": "8306", "Magical Footwear": "8304", "Perfect Timing": "8313", "Future's Market": "8321", "Minion Dematerializer": "8316", "Biscuit Delivery": "8345", "Cosmic Insight": "8347", "Approach Velocity": "8410", "Time Warp Tonic": "8352" }, "Precision": { "Overheal": "9101", "Triumph": "9111", "Presence of Mind": "8009", "Legend: Alacrity": "9104", "Legend: Tenacity": "9105", "Legend: Bloodline": "9103", "Coup de Grace": "8014", "Cut Down": "8017", "Last Stand": "8299" }, "Resolve": { "Demolish": "8446", "Font of Life": "8463", "Shield Bash": "8401", "Conditioning": "8429", "Second Wind": "8444", "Bone Plating": "8473", "Overgrowth": "8451", "Revitalize": "8453", "Unflinching": "8242" }, "Sorcery": { "Nullifying Orb": "8224", "Manaflow Band": "8226", "Nimbus Cloak": "8275", "Transcendence": "8210", "Celerity": "8234", "Absolute Focus": "8233", "Scorch": "8237", "Waterwalking": "8232", "Gathering Storm": "8236" } };
6
+ exports.Keystones = { "Electrocute": "8112", "Predator": "8124", "Dark Harvest": "8128", "Hail of Blades": "9923", "Glacial Augment": "8351", "Unsealed Spellbook": "8360", "First Strike": "8369", "Press the Attack": "8005", "Lethal Tempo": "8008", "Fleet Footwork": "8021", "Conqueror": "8010", "Grasp of the Undying": "8437", "Aftershock": "8439", "Guardian": "8465", "Summon Aery": "8214", "Arcane Comet": "8229", "Phase Rush": "8230" };
7
+ exports.StatRunes = { "Defense (HP)": "5001", "Defense (AR)": "5002", "Defense (MR)": "5003", "Offense (AS)": "5005", "Offense (AH)": "5007", "Offense (AF)": "5008", "Flex (AR)": "5002f", "Flex (MR)": "5003f", "Flex (AF)": "5008f" };
8
+ exports.All = { ...exports.PrimaryTrees.Precision, ...exports.PrimaryTrees.Domination, ...exports.PrimaryTrees.Sorcery, ...exports.PrimaryTrees.Resolve, ...exports.PrimaryTrees.Inspiration, ...exports.StatRunes };
9
+ /**
10
+ * Contains all Rune IDs that are known to man in the game of League of Legends. Sorted by various useful categories. There are a total of 72 runes in the game.
11
+ */
12
+ exports.RuneSetsByRuneNames = { PrimaryTrees: exports.PrimaryTrees, SecondaryTrees: exports.SecondaryTrees, Keystones: exports.Keystones, StatRunes: exports.StatRunes, All: exports.All };
@@ -0,0 +1,6 @@
1
+ import { RuneName, RuneTreeName } from '../../types';
2
+ /**
3
+ * Bsaed on rune name,
4
+ * returns a CDN URL for the icon of that rune.
5
+ */
6
+ export declare function getRuneCDNURL(name: RuneName | RuneTreeName): string;
@@ -0,0 +1,53 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getRuneCDNURL = void 0;
4
+ const DDPaths_1 = require("../../Constants/DDPaths");
5
+ const RuneIconFileNames_1 = require("../../Constants/Runes/RuneIconFileNames");
6
+ const getRuneCategoryByRuneName_1 = require("./getRuneCategoryByRuneName");
7
+ const isRuneTreeName_1 = require("./isRuneTreeName");
8
+ const isStatRuneName_1 = require("./isStatRuneName");
9
+ /**
10
+ * Bsaed on rune name,
11
+ * returns a CDN URL for the icon of that rune.
12
+ */
13
+ function getRuneCDNURL(name) {
14
+ // Choose the appropriate base path
15
+ const base = (0, isStatRuneName_1.isStatRuneName)(name)
16
+ ? DDPaths_1.DDPaths.STAT_RUNE_ICON_BASE
17
+ : DDPaths_1.DDPaths.TREE_RUNE_ICON_BASE;
18
+ // Already sufficient enough response for a rune tree name
19
+ if ((0, isRuneTreeName_1.isRuneTreeName)(name))
20
+ return `${base}/${RuneIconFileNames_1.RuneIconFileNames[name]}.png`;
21
+ // And stat runes
22
+ if ((0, isStatRuneName_1.isStatRuneName)(name))
23
+ return `${base}/${RuneIconFileNames_1.RuneIconFileNames[name]}.png`;
24
+ // Finish for tree rune names
25
+ let category = (0, getRuneCategoryByRuneName_1.getRuneCategoryByRuneName)(name);
26
+ // Remove spaces, colons, apostrophes and make lowercase
27
+ let runeTreeFolder = category.replaceAll(' ', '').toLowerCase();
28
+ let runeFolder = name.replaceAll(/[ :']/g, '').toLowerCase();
29
+ // Some runes, for whatever reason, are displaced and badly organized.
30
+ // Therefore we are going to add special cases to these runes.
31
+ switch (name) {
32
+ case 'Triumph':
33
+ case 'Overheal':
34
+ runeFolder = '';
35
+ break;
36
+ case 'Last Stand':
37
+ runeTreeFolder = 'sorcery';
38
+ break;
39
+ case 'Aftershock':
40
+ runeFolder = 'veteranaftershock';
41
+ break;
42
+ case 'Shield Bash':
43
+ runeFolder = 'mirrorshell';
44
+ break;
45
+ case 'Unflinching':
46
+ runeTreeFolder = 'sorcery';
47
+ break;
48
+ case 'Approach Velocity':
49
+ runeTreeFolder = 'resolve';
50
+ }
51
+ return `${base}/${runeTreeFolder}/${runeFolder}/${RuneIconFileNames_1.RuneIconFileNames[name]}.png`;
52
+ }
53
+ exports.getRuneCDNURL = getRuneCDNURL;
@@ -0,0 +1,5 @@
1
+ import { RuneName, RuneTreeName, StatRunesCategory } from '../../types';
2
+ /**
3
+ * Returns the name of the Rune Tree that the Rune belongs to.
4
+ */
5
+ export declare function getRuneCategoryByRuneName(name: RuneName): RuneTreeName | StatRunesCategory;
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getRuneCategoryByRuneName = void 0;
4
+ const RuneSetsByRuneNames_1 = require("../../Constants/Runes/RuneSetsByRuneNames");
5
+ const StatRuneNames_1 = require("../../Constants/Runes/StatRuneNames");
6
+ /**
7
+ * Returns the name of the Rune Tree that the Rune belongs to.
8
+ */
9
+ function getRuneCategoryByRuneName(name) {
10
+ // Start with StatRunes because it is the tiniest of all
11
+ if (name in StatRuneNames_1.StatRuneNames)
12
+ return 'StatRunes';
13
+ // Continue on with the rest of the runes
14
+ if (name in RuneSetsByRuneNames_1.PrimaryTrees.Precision)
15
+ return 'Precision';
16
+ if (name in RuneSetsByRuneNames_1.PrimaryTrees.Domination)
17
+ return 'Domination';
18
+ if (name in RuneSetsByRuneNames_1.PrimaryTrees.Sorcery)
19
+ return 'Sorcery';
20
+ if (name in RuneSetsByRuneNames_1.PrimaryTrees.Resolve)
21
+ return 'Resolve';
22
+ if (name in RuneSetsByRuneNames_1.PrimaryTrees.Inspiration)
23
+ return 'Inspiration';
24
+ // Note: It should be impossible to reach code this far
25
+ // so long as constants are not missing any values,
26
+ // and `name` is truly of type `RuneName`.
27
+ return 'Precision';
28
+ }
29
+ exports.getRuneCategoryByRuneName = getRuneCategoryByRuneName;
@@ -20,6 +20,7 @@ import { RuneTreeTypes } from '../Constants/Runes/RuneTreeTypes';
20
20
  import { Levels } from '../Constants/Levels';
21
21
  import { Skills } from '../Constants/Skills';
22
22
  import { RuneTreeIds } from '../Constants/Runes/RuneTreeIds';
23
+ import { RuneSetsByRuneNames } from '../Constants/Runes/RuneSetsByRuneNames';
23
24
  export declare type ChampionId = typeof ChampionIds[keyof typeof ChampionIds];
24
25
  export declare type ChampionKey = typeof ChampionKeys[keyof typeof ChampionKeys];
25
26
  export declare type ChampionName = typeof ChampionNames[keyof typeof ChampionNames];
@@ -91,6 +92,7 @@ export declare type StatRuneName = typeof StatRuneNames[keyof typeof StatRuneNam
91
92
  * - `InspirationTreeRuneId`,
92
93
  */
93
94
  export declare type KeystoneRuneId = keyof typeof RuneSets.Keystones;
95
+ export declare type KeystoneRuneName = keyof typeof RuneSetsByRuneNames.Keystones;
94
96
  /**
95
97
  * There are 3 main Rune ID types:
96
98
  * - `RuneId` (all),
@@ -106,6 +108,7 @@ export declare type KeystoneRuneId = keyof typeof RuneSets.Keystones;
106
108
  * - `InspirationTreeRuneId`,
107
109
  */
108
110
  export declare type PrecisionTreeRuneId = keyof typeof RuneSets.PrimaryTrees.Precision;
111
+ export declare type PrecisionTreeRuneName = keyof typeof RuneSetsByRuneNames.PrimaryTrees.Precision;
109
112
  /**
110
113
  * There are 3 main Rune ID types:
111
114
  * - `RuneId` (all),
@@ -121,6 +124,7 @@ export declare type PrecisionTreeRuneId = keyof typeof RuneSets.PrimaryTrees.Pre
121
124
  * - `InspirationTreeRuneId`,
122
125
  */
123
126
  export declare type DominationTreeRuneId = keyof typeof RuneSets.PrimaryTrees.Domination;
127
+ export declare type DominationTreeRuneName = keyof typeof RuneSetsByRuneNames.PrimaryTrees.Domination;
124
128
  /**
125
129
  * There are 3 main Rune ID types:
126
130
  * - `RuneId` (all),
@@ -136,6 +140,7 @@ export declare type DominationTreeRuneId = keyof typeof RuneSets.PrimaryTrees.Do
136
140
  * - `InspirationTreeRuneId`,
137
141
  */
138
142
  export declare type SorceryTreeRuneId = keyof typeof RuneSets.PrimaryTrees.Sorcery;
143
+ export declare type SorceryTreeRuneName = keyof typeof RuneSetsByRuneNames.PrimaryTrees.Sorcery;
139
144
  /**
140
145
  * There are 3 main Rune ID types:
141
146
  * - `RuneId` (all),
@@ -151,6 +156,7 @@ export declare type SorceryTreeRuneId = keyof typeof RuneSets.PrimaryTrees.Sorce
151
156
  * - `InspirationTreeRuneId`,
152
157
  */
153
158
  export declare type ResolveTreeRuneId = keyof typeof RuneSets.PrimaryTrees.Resolve;
159
+ export declare type ResolveTreeRuneName = keyof typeof RuneSetsByRuneNames.PrimaryTrees.Resolve;
154
160
  /**
155
161
  * There are 3 main Rune ID types:
156
162
  * - `RuneId` (all),
@@ -166,9 +172,11 @@ export declare type ResolveTreeRuneId = keyof typeof RuneSets.PrimaryTrees.Resol
166
172
  * - `InspirationTreeRuneId`,
167
173
  */
168
174
  export declare type InspirationTreeRuneId = keyof typeof RuneSets.PrimaryTrees.Inspiration;
175
+ export declare type InspirationTreeRuneName = keyof typeof RuneSetsByRuneNames.PrimaryTrees.Inspiration;
169
176
  export declare type RuneTreeId = typeof RuneTreeIds[keyof typeof RuneTreeIds];
170
177
  export declare type RuneTreeName = typeof RuneTreeNames[keyof typeof RuneTreeNames];
171
178
  export declare type RuneTreeType = keyof typeof RuneTreeTypes;
179
+ export declare type StatRunesCategory = 'StatRunes';
172
180
  export declare type Position = keyof typeof Positions;
173
181
  export declare type Lane = keyof typeof Lanes;
174
182
  export declare type Level = keyof typeof Levels;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lol-constants",
3
- "version": "1.2.3",
3
+ "version": "1.3.1",
4
4
  "description": "League of Legends constants and data resources, such as champion, item, runes reforged, summoner spells.",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -12,10 +12,12 @@
12
12
  "scripts": {
13
13
  "clean-build": "rmdir /s /q dist && tsc",
14
14
  "clean-build-assets": "rmdir /s /q assets && cd srcAssets && tsc",
15
- "generate": "node assets/scripts/generate-all"
15
+ "generate": "node assets/scripts/generate-all",
16
+ "dev": "vite"
16
17
  },
17
18
  "devDependencies": {
18
- "@types/node": "^17.0.42"
19
+ "@types/node": "^17.0.42",
20
+ "vite": "^2.9.13"
19
21
  },
20
22
  "repository": {
21
23
  "type": "git",