@cabin-icarus/tooltip_generator 1.7.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.
package/.gitattributes ADDED
@@ -0,0 +1,2 @@
1
+ # Auto detect text files and perform LF normalization
2
+ * text=auto
@@ -0,0 +1,30 @@
1
+ # This workflow will run tests using node and then publish a package to GitHub Packages when a release is created
2
+ # For more information see: https://help.github.com/actions/language-and-framework-guides/publishing-nodejs-packages
3
+
4
+ name: Node.js Package
5
+
6
+ on:
7
+ release:
8
+ types: [created]
9
+
10
+ jobs:
11
+ build:
12
+ runs-on: ubuntu-latest
13
+ steps:
14
+ - uses: actions/checkout@v3
15
+ - uses: actions/setup-node@v3
16
+ with:
17
+ node-version: 14
18
+
19
+ publish-npm:
20
+ needs: build
21
+ runs-on: ubuntu-latest
22
+ steps:
23
+ - uses: actions/checkout@v3
24
+ - uses: actions/setup-node@v3
25
+ with:
26
+ node-version: 14
27
+ registry-url: https://registry.npmjs.org/
28
+ - run: npm publish --access=public
29
+ env:
30
+ NODE_AUTH_TOKEN: ${{secrets.npm_token}}
@@ -0,0 +1,237 @@
1
+ declare const enum LocalizationModifierProperty
2
+ {
3
+ PREATTACK_BONUS_DAMAGE = "MODIFIER_PROPERTY_PREATTACK_BONUS_DAMAGE",
4
+ PREATTACK_BONUS_DAMAGE_TARGET = "MODIFIER_PROPERTY_PREATTACK_BONUS_DAMAGE_TARGET",
5
+ PREATTACK_BONUS_DAMAGE_PROC = "MODIFIER_PROPERTY_PREATTACK_BONUS_DAMAGE_PROC",
6
+ PREATTACK_BONUS_DAMAGE_POST_CRIT = "MODIFIER_PROPERTY_PREATTACK_BONUS_DAMAGE_POST_CRIT",
7
+ BASEATTACK_BONUSDAMAGE = "MODIFIER_PROPERTY_BASEATTACK_BONUSDAMAGE",
8
+ PROCATTACK_BONUS_DAMAGE_PHYSICAL = "MODIFIER_PROPERTY_PROCATTACK_BONUS_DAMAGE_PHYSICAL",
9
+ PROCATTACK_BONUS_DAMAGE_MAGICAL = "MODIFIER_PROPERTY_PROCATTACK_BONUS_DAMAGE_MAGICAL",
10
+ PROCATTACK_BONUS_DAMAGE_PURE = "MODIFIER_PROPERTY_PROCATTACK_BONUS_DAMAGE_PURE",
11
+ PROCATTACK_FEEDBACK = "MODIFIER_PROPERTY_PROCATTACK_FEEDBACK",
12
+ OVERRIDE_ATTACK_DAMAGE = "MODIFIER_PROPERTY_OVERRIDE_ATTACK_DAMAGE",
13
+ PRE_ATTACK = "MODIFIER_PROPERTY_PRE_ATTACK",
14
+ INVISIBILITY_LEVEL = "MODIFIER_PROPERTY_INVISIBILITY_LEVEL",
15
+ INVISIBILITY_ATTACK_BEHAVIOR_EXCEPTION = "MODIFIER_PROPERTY_INVISIBILITY_ATTACK_BEHAVIOR_EXCEPTION",
16
+ PERSISTENT_INVISIBILITY = "MODIFIER_PROPERTY_PERSISTENT_INVISIBILITY",
17
+ MOVESPEED_BONUS_CONSTANT = "MODIFIER_PROPERTY_MOVESPEED_BONUS_CONSTANT",
18
+ MOVESPEED_BASE_OVERRIDE = "MODIFIER_PROPERTY_MOVESPEED_BASE_OVERRIDE",
19
+ MOVESPEED_BONUS_PERCENTAGE = "MODIFIER_PROPERTY_MOVESPEED_BONUS_PERCENTAGE",
20
+ MOVESPEED_BONUS_PERCENTAGE_UNIQUE = "MODIFIER_PROPERTY_MOVESPEED_BONUS_PERCENTAGE_UNIQUE",
21
+ MOVESPEED_BONUS_PERCENTAGE_UNIQUE_2 = "MODIFIER_PROPERTY_MOVESPEED_BONUS_PERCENTAGE_UNIQUE_2",
22
+ MOVESPEED_BONUS_UNIQUE = "MODIFIER_PROPERTY_MOVESPEED_BONUS_UNIQUE",
23
+ MOVESPEED_BONUS_UNIQUE_2 = "MODIFIER_PROPERTY_MOVESPEED_BONUS_UNIQUE_2",
24
+ MOVESPEED_BONUS_CONSTANT_UNIQUE = "MODIFIER_PROPERTY_MOVESPEED_BONUS_CONSTANT_UNIQUE",
25
+ MOVESPEED_BONUS_CONSTANT_UNIQUE_2 = "MODIFIER_PROPERTY_MOVESPEED_BONUS_CONSTANT_UNIQUE_2",
26
+ MOVESPEED_ABSOLUTE = "MODIFIER_PROPERTY_MOVESPEED_ABSOLUTE",
27
+ MOVESPEED_ABSOLUTE_MIN = "MODIFIER_PROPERTY_MOVESPEED_ABSOLUTE_MIN",
28
+ MOVESPEED_ABSOLUTE_MAX = "MODIFIER_PROPERTY_MOVESPEED_ABSOLUTE_MAX",
29
+ IGNORE_MOVESPEED_LIMIT = "MODIFIER_PROPERTY_IGNORE_MOVESPEED_LIMIT",
30
+ MOVESPEED_LIMIT = "MODIFIER_PROPERTY_MOVESPEED_LIMIT",
31
+ ATTACKSPEED_BASE_OVERRIDE = "MODIFIER_PROPERTY_ATTACKSPEED_BASE_OVERRIDE",
32
+ FIXED_ATTACK_RATE = "MODIFIER_PROPERTY_FIXED_ATTACK_RATE",
33
+ ATTACKSPEED_BONUS_CONSTANT = "MODIFIER_PROPERTY_ATTACKSPEED_BONUS_CONSTANT",
34
+ COOLDOWN_REDUCTION_CONSTANT = "MODIFIER_PROPERTY_COOLDOWN_REDUCTION_CONSTANT",
35
+ MANACOST_REDUCTION_CONSTANT = "MODIFIER_PROPERTY_MANACOST_REDUCTION_CONSTANT",
36
+ BASE_ATTACK_TIME_CONSTANT = "MODIFIER_PROPERTY_BASE_ATTACK_TIME_CONSTANT",
37
+ BASE_ATTACK_TIME_CONSTANT_ADJUST = "MODIFIER_PROPERTY_BASE_ATTACK_TIME_CONSTANT_ADJUST",
38
+ ATTACK_POINT_CONSTANT = "MODIFIER_PROPERTY_ATTACK_POINT_CONSTANT",
39
+ BONUSDAMAGEOUTGOING_PERCENTAGE = "MODIFIER_PROPERTY_BONUSDAMAGEOUTGOING_PERCENTAGE",
40
+ DAMAGEOUTGOING_PERCENTAGE = "MODIFIER_PROPERTY_DAMAGEOUTGOING_PERCENTAGE",
41
+ DAMAGEOUTGOING_PERCENTAGE_ILLUSION = "MODIFIER_PROPERTY_DAMAGEOUTGOING_PERCENTAGE_ILLUSION",
42
+ DAMAGEOUTGOING_PERCENTAGE_ILLUSION_AMPLIFY = "MODIFIER_PROPERTY_DAMAGEOUTGOING_PERCENTAGE_ILLUSION_AMPLIFY",
43
+ TOTALDAMAGEOUTGOING_PERCENTAGE = "MODIFIER_PROPERTY_TOTALDAMAGEOUTGOING_PERCENTAGE",
44
+ SPELL_AMPLIFY_PERCENTAGE = "MODIFIER_PROPERTY_SPELL_AMPLIFY_PERCENTAGE",
45
+ SPELL_AMPLIFY_PERCENTAGE_UNIQUE = "MODIFIER_PROPERTY_SPELL_AMPLIFY_PERCENTAGE_UNIQUE",
46
+ HEAL_AMPLIFY_PERCENTAGE_SOURCE = "MODIFIER_PROPERTY_HEAL_AMPLIFY_PERCENTAGE_SOURCE",
47
+ HEAL_AMPLIFY_PERCENTAGE_TARGET = "MODIFIER_PROPERTY_HEAL_AMPLIFY_PERCENTAGE_TARGET",
48
+ HP_REGEN_AMPLIFY_PERCENTAGE = "MODIFIER_PROPERTY_HP_REGEN_AMPLIFY_PERCENTAGE",
49
+ LIFESTEAL_AMPLIFY_PERCENTAGE = "MODIFIER_PROPERTY_LIFESTEAL_AMPLIFY_PERCENTAGE",
50
+ SPELL_LIFESTEAL_AMPLIFY_PERCENTAGE = "MODIFIER_PROPERTY_SPELL_LIFESTEAL_AMPLIFY_PERCENTAGE",
51
+ MP_REGEN_AMPLIFY_PERCENTAGE = "MODIFIER_PROPERTY_MP_REGEN_AMPLIFY_PERCENTAGE",
52
+ MANA_DRAIN_AMPLIFY_PERCENTAGE = "MODIFIER_PROPERTY_MANA_DRAIN_AMPLIFY_PERCENTAGE",
53
+ MP_RESTORE_AMPLIFY_PERCENTAGE = "MODIFIER_PROPERTY_MP_RESTORE_AMPLIFY_PERCENTAGE",
54
+ BASEDAMAGEOUTGOING_PERCENTAGE = "MODIFIER_PROPERTY_BASEDAMAGEOUTGOING_PERCENTAGE",
55
+ BASEDAMAGEOUTGOING_PERCENTAGE_UNIQUE = "MODIFIER_PROPERTY_BASEDAMAGEOUTGOING_PERCENTAGE_UNIQUE",
56
+ INCOMING_DAMAGE_PERCENTAGE = "MODIFIER_PROPERTY_INCOMING_DAMAGE_PERCENTAGE",
57
+ INCOMING_PHYSICAL_DAMAGE_PERCENTAGE = "MODIFIER_PROPERTY_INCOMING_PHYSICAL_DAMAGE_PERCENTAGE",
58
+ INCOMING_PHYSICAL_DAMAGE_CONSTANT = "MODIFIER_PROPERTY_INCOMING_PHYSICAL_DAMAGE_CONSTANT",
59
+ INCOMING_SPELL_DAMAGE_CONSTANT = "MODIFIER_PROPERTY_INCOMING_SPELL_DAMAGE_CONSTANT",
60
+ EVASION_CONSTANT = "MODIFIER_PROPERTY_EVASION_CONSTANT",
61
+ NEGATIVE_EVASION_CONSTANT = "MODIFIER_PROPERTY_NEGATIVE_EVASION_CONSTANT",
62
+ STATUS_RESISTANCE = "MODIFIER_PROPERTY_STATUS_RESISTANCE",
63
+ STATUS_RESISTANCE_STACKING = "MODIFIER_PROPERTY_STATUS_RESISTANCE_STACKING",
64
+ STATUS_RESISTANCE_CASTER = "MODIFIER_PROPERTY_STATUS_RESISTANCE_CASTER",
65
+ AVOID_DAMAGE = "MODIFIER_PROPERTY_AVOID_DAMAGE",
66
+ AVOID_SPELL = "MODIFIER_PROPERTY_AVOID_SPELL",
67
+ MISS_PERCENTAGE = "MODIFIER_PROPERTY_MISS_PERCENTAGE",
68
+ PHYSICAL_ARMOR_BASE_PERCENTAGE = "MODIFIER_PROPERTY_PHYSICAL_ARMOR_BASE_PERCENTAGE",
69
+ PHYSICAL_ARMOR_TOTAL_PERCENTAGE = "MODIFIER_PROPERTY_PHYSICAL_ARMOR_TOTAL_PERCENTAGE",
70
+ PHYSICAL_ARMOR_BONUS = "MODIFIER_PROPERTY_PHYSICAL_ARMOR_BONUS",
71
+ PHYSICAL_ARMOR_BONUS_UNIQUE = "MODIFIER_PROPERTY_PHYSICAL_ARMOR_BONUS_UNIQUE",
72
+ PHYSICAL_ARMOR_BONUS_UNIQUE_ACTIVE = "MODIFIER_PROPERTY_PHYSICAL_ARMOR_BONUS_UNIQUE_ACTIVE",
73
+ IGNORE_PHYSICAL_ARMOR = "MODIFIER_PROPERTY_IGNORE_PHYSICAL_ARMOR",
74
+ MAGICAL_RESISTANCE_BASE_REDUCTION = "MODIFIER_PROPERTY_MAGICAL_RESISTANCE_BASE_REDUCTION",
75
+ MAGICAL_RESISTANCE_DIRECT_MODIFICATION = "MODIFIER_PROPERTY_MAGICAL_RESISTANCE_DIRECT_MODIFICATION",
76
+ MAGICAL_RESISTANCE_BONUS = "MODIFIER_PROPERTY_MAGICAL_RESISTANCE_BONUS",
77
+ MAGICAL_RESISTANCE_BONUS_ILLUSIONS = "MODIFIER_PROPERTY_MAGICAL_RESISTANCE_BONUS_ILLUSIONS",
78
+ MAGICAL_RESISTANCE_DECREPIFY_UNIQUE = "MODIFIER_PROPERTY_MAGICAL_RESISTANCE_DECREPIFY_UNIQUE",
79
+ BASE_MANA_REGEN = "MODIFIER_PROPERTY_BASE_MANA_REGEN",
80
+ MANA_REGEN_CONSTANT = "MODIFIER_PROPERTY_MANA_REGEN_CONSTANT",
81
+ MANA_REGEN_CONSTANT_UNIQUE = "MODIFIER_PROPERTY_MANA_REGEN_CONSTANT_UNIQUE",
82
+ MANA_REGEN_TOTAL_PERCENTAGE = "MODIFIER_PROPERTY_MANA_REGEN_TOTAL_PERCENTAGE",
83
+ HEALTH_REGEN_CONSTANT = "MODIFIER_PROPERTY_HEALTH_REGEN_CONSTANT",
84
+ HEALTH_REGEN_PERCENTAGE = "MODIFIER_PROPERTY_HEALTH_REGEN_PERCENTAGE",
85
+ HEALTH_REGEN_PERCENTAGE_UNIQUE = "MODIFIER_PROPERTY_HEALTH_REGEN_PERCENTAGE_UNIQUE",
86
+ HEALTH_BONUS = "MODIFIER_PROPERTY_HEALTH_BONUS",
87
+ MANA_BONUS = "MODIFIER_PROPERTY_MANA_BONUS",
88
+ EXTRA_STRENGTH_BONUS = "MODIFIER_PROPERTY_EXTRA_STRENGTH_BONUS",
89
+ EXTRA_HEALTH_BONUS = "MODIFIER_PROPERTY_EXTRA_HEALTH_BONUS",
90
+ EXTRA_MANA_BONUS = "MODIFIER_PROPERTY_EXTRA_MANA_BONUS",
91
+ EXTRA_HEALTH_PERCENTAGE = "MODIFIER_PROPERTY_EXTRA_HEALTH_PERCENTAGE",
92
+ EXTRA_MANA_PERCENTAGE = "MODIFIER_PROPERTY_EXTRA_MANA_PERCENTAGE",
93
+ STATS_STRENGTH_BONUS = "MODIFIER_PROPERTY_STATS_STRENGTH_BONUS",
94
+ STATS_AGILITY_BONUS = "MODIFIER_PROPERTY_STATS_AGILITY_BONUS",
95
+ STATS_INTELLECT_BONUS = "MODIFIER_PROPERTY_STATS_INTELLECT_BONUS",
96
+ STATS_STRENGTH_BONUS_PERCENTAGE = "MODIFIER_PROPERTY_STATS_STRENGTH_BONUS_PERCENTAGE",
97
+ STATS_AGILITY_BONUS_PERCENTAGE = "MODIFIER_PROPERTY_STATS_AGILITY_BONUS_PERCENTAGE",
98
+ STATS_INTELLECT_BONUS_PERCENTAGE = "MODIFIER_PROPERTY_STATS_INTELLECT_BONUS_PERCENTAGE",
99
+ CAST_RANGE_BONUS = "MODIFIER_PROPERTY_CAST_RANGE_BONUS",
100
+ CAST_RANGE_BONUS_TARGET = "MODIFIER_PROPERTY_CAST_RANGE_BONUS_TARGET",
101
+ CAST_RANGE_BONUS_STACKING = "MODIFIER_PROPERTY_CAST_RANGE_BONUS_STACKING",
102
+ ATTACK_RANGE_BASE_OVERRIDE = "MODIFIER_PROPERTY_ATTACK_RANGE_BASE_OVERRIDE",
103
+ ATTACK_RANGE_BONUS = "MODIFIER_PROPERTY_ATTACK_RANGE_BONUS",
104
+ ATTACK_RANGE_BONUS_UNIQUE = "MODIFIER_PROPERTY_ATTACK_RANGE_BONUS_UNIQUE",
105
+ ATTACK_RANGE_BONUS_PERCENTAGE = "MODIFIER_PROPERTY_ATTACK_RANGE_BONUS_PERCENTAGE",
106
+ MAX_ATTACK_RANGE = "MODIFIER_PROPERTY_MAX_ATTACK_RANGE",
107
+ PROJECTILE_SPEED_BONUS = "MODIFIER_PROPERTY_PROJECTILE_SPEED_BONUS",
108
+ PROJECTILE_SPEED_BONUS_PERCENTAGE = "MODIFIER_PROPERTY_PROJECTILE_SPEED_BONUS_PERCENTAGE",
109
+ PROJECTILE_NAME = "MODIFIER_PROPERTY_PROJECTILE_NAME",
110
+ REINCARNATION = "MODIFIER_PROPERTY_REINCARNATION",
111
+ RESPAWNTIME = "MODIFIER_PROPERTY_RESPAWNTIME",
112
+ RESPAWNTIME_PERCENTAGE = "MODIFIER_PROPERTY_RESPAWNTIME_PERCENTAGE",
113
+ RESPAWNTIME_STACKING = "MODIFIER_PROPERTY_RESPAWNTIME_STACKING",
114
+ COOLDOWN_PERCENTAGE = "MODIFIER_PROPERTY_COOLDOWN_PERCENTAGE",
115
+ COOLDOWN_PERCENTAGE_ONGOING = "MODIFIER_PROPERTY_COOLDOWN_PERCENTAGE_ONGOING",
116
+ CASTTIME_PERCENTAGE = "MODIFIER_PROPERTY_CASTTIME_PERCENTAGE",
117
+ MANACOST_PERCENTAGE = "MODIFIER_PROPERTY_MANACOST_PERCENTAGE",
118
+ MANACOST_PERCENTAGE_STACKING = "MODIFIER_PROPERTY_MANACOST_PERCENTAGE_STACKING",
119
+ DEATHGOLDCOST = "MODIFIER_PROPERTY_DEATHGOLDCOST",
120
+ EXP_RATE_BOOST = "MODIFIER_PROPERTY_EXP_RATE_BOOST",
121
+ PREATTACK_CRITICALSTRIKE = "MODIFIER_PROPERTY_PREATTACK_CRITICALSTRIKE",
122
+ PREATTACK_TARGET_CRITICALSTRIKE = "MODIFIER_PROPERTY_PREATTACK_TARGET_CRITICALSTRIKE",
123
+ MAGICAL_CONSTANT_BLOCK = "MODIFIER_PROPERTY_MAGICAL_CONSTANT_BLOCK",
124
+ PHYSICAL_CONSTANT_BLOCK = "MODIFIER_PROPERTY_PHYSICAL_CONSTANT_BLOCK",
125
+ PHYSICAL_CONSTANT_BLOCK_SPECIAL = "MODIFIER_PROPERTY_PHYSICAL_CONSTANT_BLOCK_SPECIAL",
126
+ TOTAL_CONSTANT_BLOCK_UNAVOIDABLE_PRE_ARMOR = "MODIFIER_PROPERTY_TOTAL_CONSTANT_BLOCK_UNAVOIDABLE_PRE_ARMOR",
127
+ TOTAL_CONSTANT_BLOCK = "MODIFIER_PROPERTY_TOTAL_CONSTANT_BLOCK",
128
+ OVERRIDE_ANIMATION = "MODIFIER_PROPERTY_OVERRIDE_ANIMATION",
129
+ OVERRIDE_ANIMATION_WEIGHT = "MODIFIER_PROPERTY_OVERRIDE_ANIMATION_WEIGHT",
130
+ OVERRIDE_ANIMATION_RATE = "MODIFIER_PROPERTY_OVERRIDE_ANIMATION_RATE",
131
+ ABSORB_SPELL = "MODIFIER_PROPERTY_ABSORB_SPELL",
132
+ REFLECT_SPELL = "MODIFIER_PROPERTY_REFLECT_SPELL",
133
+ DISABLE_AUTOATTACK = "MODIFIER_PROPERTY_DISABLE_AUTOATTACK",
134
+ BONUS_DAY_VISION = "MODIFIER_PROPERTY_BONUS_DAY_VISION",
135
+ BONUS_NIGHT_VISION = "MODIFIER_PROPERTY_BONUS_NIGHT_VISION",
136
+ BONUS_NIGHT_VISION_UNIQUE = "MODIFIER_PROPERTY_BONUS_NIGHT_VISION_UNIQUE",
137
+ BONUS_VISION_PERCENTAGE = "MODIFIER_PROPERTY_BONUS_VISION_PERCENTAGE",
138
+ FIXED_DAY_VISION = "MODIFIER_PROPERTY_FIXED_DAY_VISION",
139
+ FIXED_NIGHT_VISION = "MODIFIER_PROPERTY_FIXED_NIGHT_VISION",
140
+ MIN_HEALTH = "MODIFIER_PROPERTY_MIN_HEALTH",
141
+ ABSOLUTE_NO_DAMAGE_PHYSICAL = "MODIFIER_PROPERTY_ABSOLUTE_NO_DAMAGE_PHYSICAL",
142
+ ABSOLUTE_NO_DAMAGE_MAGICAL = "MODIFIER_PROPERTY_ABSOLUTE_NO_DAMAGE_MAGICAL",
143
+ ABSOLUTE_NO_DAMAGE_PURE = "MODIFIER_PROPERTY_ABSOLUTE_NO_DAMAGE_PURE",
144
+ IS_ILLUSION = "MODIFIER_PROPERTY_IS_ILLUSION",
145
+ ILLUSION_LABEL = "MODIFIER_PROPERTY_ILLUSION_LABEL",
146
+ STRONG_ILLUSION = "MODIFIER_PROPERTY_STRONG_ILLUSION",
147
+ SUPER_ILLUSION = "MODIFIER_PROPERTY_SUPER_ILLUSION",
148
+ SUPER_ILLUSION_WITH_ULTIMATE = "MODIFIER_PROPERTY_SUPER_ILLUSION_WITH_ULTIMATE",
149
+ TURN_RATE_PERCENTAGE = "MODIFIER_PROPERTY_TURN_RATE_PERCENTAGE",
150
+ TURN_RATE_OVERRIDE = "MODIFIER_PROPERTY_TURN_RATE_OVERRIDE",
151
+ DISABLE_HEALING = "MODIFIER_PROPERTY_DISABLE_HEALING",
152
+ ALWAYS_ALLOW_ATTACK = "MODIFIER_PROPERTY_ALWAYS_ALLOW_ATTACK",
153
+ ALWAYS_ETHEREAL_ATTACK = "MODIFIER_PROPERTY_ALWAYS_ETHEREAL_ATTACK",
154
+ OVERRIDE_ATTACK_MAGICAL = "MODIFIER_PROPERTY_OVERRIDE_ATTACK_MAGICAL",
155
+ UNIT_STATS_NEEDS_REFRESH = "MODIFIER_PROPERTY_UNIT_STATS_NEEDS_REFRESH",
156
+ BOUNTY_CREEP_MULTIPLIER = "MODIFIER_PROPERTY_BOUNTY_CREEP_MULTIPLIER",
157
+ BOUNTY_OTHER_MULTIPLIER = "MODIFIER_PROPERTY_BOUNTY_OTHER_MULTIPLIER",
158
+ UNIT_DISALLOW_UPGRADING = "MODIFIER_PROPERTY_UNIT_DISALLOW_UPGRADING",
159
+ DODGE_PROJECTILE = "MODIFIER_PROPERTY_DODGE_PROJECTILE",
160
+ TRIGGER_COSMETIC_AND_END_ATTACK = "MODIFIER_PROPERTY_TRIGGER_COSMETIC_AND_END_ATTACK",
161
+ MODIFIER_EVENT_ON_SPELL_TARGET_READY = "MODIFIER_EVENT_ON_SPELL_TARGET_READY",
162
+ MODIFIER_EVENT_ON_ATTACK_RECORD = "MODIFIER_EVENT_ON_ATTACK_RECORD",
163
+ MODIFIER_EVENT_ON_ATTACK_START = "MODIFIER_EVENT_ON_ATTACK_START",
164
+ MODIFIER_EVENT_ON_ATTACK = "MODIFIER_EVENT_ON_ATTACK",
165
+ MODIFIER_EVENT_ON_ATTACK_LANDED = "MODIFIER_EVENT_ON_ATTACK_LANDED",
166
+ MODIFIER_EVENT_ON_ATTACK_FAIL = "MODIFIER_EVENT_ON_ATTACK_FAIL",
167
+ MODIFIER_EVENT_ON_ATTACK_ALLIED = "MODIFIER_EVENT_ON_ATTACK_ALLIED",
168
+ MODIFIER_EVENT_ON_PROJECTILE_DODGE = "MODIFIER_EVENT_ON_PROJECTILE_DODGE",
169
+ MODIFIER_EVENT_ON_ORDER = "MODIFIER_EVENT_ON_ORDER",
170
+ MODIFIER_EVENT_ON_UNIT_MOVED = "MODIFIER_EVENT_ON_UNIT_MOVED",
171
+ MODIFIER_EVENT_ON_ABILITY_START = "MODIFIER_EVENT_ON_ABILITY_START",
172
+ MODIFIER_EVENT_ON_ABILITY_EXECUTED = "MODIFIER_EVENT_ON_ABILITY_EXECUTED",
173
+ MODIFIER_EVENT_ON_ABILITY_FULLY_CAST = "MODIFIER_EVENT_ON_ABILITY_FULLY_CAST",
174
+ MODIFIER_EVENT_ON_BREAK_INVISIBILITY = "MODIFIER_EVENT_ON_BREAK_INVISIBILITY",
175
+ MODIFIER_EVENT_ON_ABILITY_END_CHANNEL = "MODIFIER_EVENT_ON_ABILITY_END_CHANNEL",
176
+ MODIFIER_EVENT_ON_PROCESS_UPGRADE = "MODIFIER_EVENT_ON_PROCESS_UPGRADE",
177
+ MODIFIER_EVENT_ON_REFRESH = "MODIFIER_EVENT_ON_REFRESH",
178
+ MODIFIER_EVENT_ON_TAKEDAMAGE = "MODIFIER_EVENT_ON_TAKEDAMAGE",
179
+ MODIFIER_EVENT_ON_DEATH_PREVENTED = "MODIFIER_EVENT_ON_DEATH_PREVENTED",
180
+ MODIFIER_EVENT_ON_STATE_CHANGED = "MODIFIER_EVENT_ON_STATE_CHANGED",
181
+ MODIFIER_EVENT_ON_ORB_EFFECT = "MODIFIER_EVENT_ON_ORB_EFFECT",
182
+ MODIFIER_EVENT_ON_PROCESS_CLEAVE = "MODIFIER_EVENT_ON_PROCESS_CLEAVE",
183
+ MODIFIER_EVENT_ON_DAMAGE_CALCULATED = "MODIFIER_EVENT_ON_DAMAGE_CALCULATED",
184
+ MODIFIER_EVENT_ON_ATTACKED = "MODIFIER_EVENT_ON_ATTACKED",
185
+ MODIFIER_EVENT_ON_DEATH = "MODIFIER_EVENT_ON_DEATH",
186
+ MODIFIER_EVENT_ON_RESPAWN = "MODIFIER_EVENT_ON_RESPAWN",
187
+ MODIFIER_EVENT_ON_SPENT_MANA = "MODIFIER_EVENT_ON_SPENT_MANA",
188
+ MODIFIER_EVENT_ON_TELEPORTING = "MODIFIER_EVENT_ON_TELEPORTING",
189
+ MODIFIER_EVENT_ON_TELEPORTED = "MODIFIER_EVENT_ON_TELEPORTED",
190
+ MODIFIER_EVENT_ON_SET_LOCATION = "MODIFIER_EVENT_ON_SET_LOCATION",
191
+ MODIFIER_EVENT_ON_HEALTH_GAINED = "MODIFIER_EVENT_ON_HEALTH_GAINED",
192
+ MODIFIER_EVENT_ON_MANA_GAINED = "MODIFIER_EVENT_ON_MANA_GAINED",
193
+ MODIFIER_EVENT_ON_TAKEDAMAGE_KILLCREDIT = "MODIFIER_EVENT_ON_TAKEDAMAGE_KILLCREDIT",
194
+ MODIFIER_EVENT_ON_HERO_KILLED = "MODIFIER_EVENT_ON_HERO_KILLED",
195
+ MODIFIER_EVENT_ON_HEAL_RECEIVED = "MODIFIER_EVENT_ON_HEAL_RECEIVED",
196
+ MODIFIER_EVENT_ON_BUILDING_KILLED = "MODIFIER_EVENT_ON_BUILDING_KILLED",
197
+ MODIFIER_EVENT_ON_MODEL_CHANGED = "MODIFIER_EVENT_ON_MODEL_CHANGED",
198
+ MODIFIER_EVENT_ON_MODIFIER_ADDED = "MODIFIER_EVENT_ON_MODIFIER_ADDED",
199
+ TOOLTIP = "MODIFIER_PROPERTY_TOOLTIP",
200
+ MODEL_CHANGE = "MODIFIER_PROPERTY_MODEL_CHANGE",
201
+ MODEL_SCALE = "MODIFIER_PROPERTY_MODEL_SCALE",
202
+ IS_SCEPTER = "MODIFIER_PROPERTY_IS_SCEPTER",
203
+ RADAR_COOLDOWN_REDUCTION = "MODIFIER_PROPERTY_RADAR_COOLDOWN_REDUCTION",
204
+ TRANSLATE_ACTIVITY_MODIFIERS = "MODIFIER_PROPERTY_TRANSLATE_ACTIVITY_MODIFIERS",
205
+ TRANSLATE_ATTACK_SOUND = "MODIFIER_PROPERTY_TRANSLATE_ATTACK_SOUND",
206
+ LIFETIME_FRACTION = "MODIFIER_PROPERTY_LIFETIME_FRACTION",
207
+ PROVIDES_FOW_POSITION = "MODIFIER_PROPERTY_PROVIDES_FOW_POSITION",
208
+ SPELLS_REQUIRE_HP = "MODIFIER_PROPERTY_SPELLS_REQUIRE_HP",
209
+ FORCE_DRAW_MINIMAP = "MODIFIER_PROPERTY_FORCE_DRAW_MINIMAP",
210
+ DISABLE_TURNING = "MODIFIER_PROPERTY_DISABLE_TURNING",
211
+ IGNORE_CAST_ANGLE = "MODIFIER_PROPERTY_IGNORE_CAST_ANGLE",
212
+ CHANGE_ABILITY_VALUE = "MODIFIER_PROPERTY_CHANGE_ABILITY_VALUE",
213
+ OVERRIDE_ABILITY_SPECIAL = "MODIFIER_PROPERTY_OVERRIDE_ABILITY_SPECIAL",
214
+ OVERRIDE_ABILITY_SPECIAL_VALUE = "MODIFIER_PROPERTY_OVERRIDE_ABILITY_SPECIAL_VALUE",
215
+ ABILITY_LAYOUT = "MODIFIER_PROPERTY_ABILITY_LAYOUT",
216
+ MODIFIER_EVENT_ON_DOMINATED = "MODIFIER_EVENT_ON_DOMINATED",
217
+ TEMPEST_DOUBLE = "MODIFIER_PROPERTY_TEMPEST_DOUBLE",
218
+ PRESERVE_PARTICLES_ON_MODEL_CHANGE = "MODIFIER_PROPERTY_PRESERVE_PARTICLES_ON_MODEL_CHANGE",
219
+ MODIFIER_EVENT_ON_ATTACK_FINISHED = "MODIFIER_EVENT_ON_ATTACK_FINISHED",
220
+ IGNORE_COOLDOWN = "MODIFIER_PROPERTY_IGNORE_COOLDOWN",
221
+ CAN_ATTACK_TREES = "MODIFIER_PROPERTY_CAN_ATTACK_TREES",
222
+ VISUAL_Z_DELTA = "MODIFIER_PROPERTY_VISUAL_Z_DELTA",
223
+ INCOMING_DAMAGE_ILLUSION = "MODIFIER_PROPERTY_INCOMING_DAMAGE_ILLUSION",
224
+ DONT_GIVE_VISION_OF_ATTACKER = "MODIFIER_PROPERTY_DONT_GIVE_VISION_OF_ATTACKER",
225
+ TOOLTIP2 = "MODIFIER_PROPERTY_TOOLTIP2",
226
+ MODIFIER_EVENT_ON_ATTACK_RECORD_DESTROY = "MODIFIER_EVENT_ON_ATTACK_RECORD_DESTROY",
227
+ MODIFIER_EVENT_ON_PROJECTILE_OBSTRUCTION_HIT = "MODIFIER_EVENT_ON_PROJECTILE_OBSTRUCTION_HIT",
228
+ SUPPRESS_TELEPORT = "MODIFIER_PROPERTY_SUPPRESS_TELEPORT",
229
+ MODIFIER_EVENT_ON_ATTACK_CANCELLED = "MODIFIER_EVENT_ON_ATTACK_CANCELLED",
230
+ SUPPRESS_CLEAVE = "MODIFIER_PROPERTY_SUPPRESS_CLEAVE",
231
+ BOT_ATTACK_SCORE_BONUS = "MODIFIER_PROPERTY_BOT_ATTACK_SCORE_BONUS",
232
+ ATTACKSPEED_REDUCTION_PERCENTAGE = "MODIFIER_PROPERTY_ATTACKSPEED_REDUCTION_PERCENTAGE",
233
+ MOVESPEED_REDUCTION_PERCENTAGE = "MODIFIER_PROPERTY_MOVESPEED_REDUCTION_PERCENTAGE",
234
+ ATTACK_WHILE_MOVING_TARGET = "MODIFIER_PROPERTY_ATTACK_WHILE_MOVING_TARGET",
235
+ MODIFIER_FUNCTION_LAST = "MODIFIER_FUNCTION_LAST",
236
+ MODIFIER_FUNCTION_INVALID = "MODIFIER_FUNCTION_INVALID"
237
+ }
package/README.md ADDED
@@ -0,0 +1,39 @@
1
+ # Dota 2 Custom Game Tooltip Generator
2
+ A utility that converts Typescript code to localization that Dota 2 custom games can use.
3
+
4
+ # That's Typescript. Can it work with lua addons?
5
+ Yes! The code is typescript, but it doesn't force the entire project to be typescript as well.
6
+
7
+ # What do I need to use this repo?
8
+ In order to make Typescript compile at all, [NodeJS](https://nodejs.org/en/) must be installed on your system. Install the latest stable version shown in the link.
9
+ I heavily recommend using VSCode, not only because of its internal support of NodeJS, but also because it's a great editor. Also, not all editors support NodeJS and/or Typescript, which, depending on the editor, will make it inconvenient to work with the tooltip generator.
10
+
11
+ # Installation Instructions
12
+ * Install NodeJS.
13
+ * Install this module with `npm i @shushishtok/tooltip_generator` (please wait until you receive a message, that the adjustments are successful)
14
+ * If your resource directory is NOT `/resource`, then you need to change the path in `package.json`: `"~resource": "YOUR_PATH/resource"`
15
+
16
+ # Initialize the module!
17
+ * Run `npm run init` to initialize the module
18
+
19
+ # Build Instructions
20
+ You have several ways to start the build command.
21
+
22
+ To test: in the resource folder, go to `resource/localization`, open `localizationData.ts`, change one or more characters in the localization, and save. The terminal should show updates, and addon_english should update with that change.
23
+
24
+ ## Running build task with console
25
+ * Open your console and type `npm run dev`
26
+
27
+ ## Running build task with Visual Studio
28
+ * Run build task: `CTRL+SHIFT+B` on VSCode
29
+
30
+ ## Running build task with Sublime:
31
+ * Tools > Build System > New Build System...
32
+ * Type:
33
+ ```
34
+ {
35
+ "shell_cmd": "npm run dev"
36
+ }
37
+ ```
38
+ * Save as any name like `dota_ts.sublime-build`
39
+ * Have `fsWatcher.ts` or `package.json` or any other file from the project open -> press Ctrl + Shift + B -> select `dota_ts` -> console opens and it is run, is closed with esc, will still continue to compile everything until sublime is closed.
package/_package.json ADDED
@@ -0,0 +1,30 @@
1
+ {
2
+ "name": "tooltip_generator",
3
+ "version": "1.3.14",
4
+ "scripts": {
5
+ "build": "run-p build:*",
6
+ "dev": "run-p dev:*",
7
+ "dev:localizationCompiler": "tsc --project node_modules/~resource/tsconfig.json",
8
+ "dev:localizationCompilerWatcher": "tsc --project node_modules/~resource/tsconfig.json --watch",
9
+ "dev:runlocalizationWatcher": "node node_modules/~generator/fsWatcher.js",
10
+ "dev:localizationGeneratorWatcher": "tsc --project node_modules/~generator/tsconfig.json",
11
+ "init": "link-module-alias && node node_modules/~generator/init.js"
12
+ },
13
+ "_moduleAliases": {
14
+ "~resource": "resource",
15
+ "~generator": "node_modules/@shushishtok/tooltip_generator"
16
+ },
17
+ "devDependencies": {
18
+ "@types/node": "^14.14.20",
19
+ "fs-extra": "^9.0.1",
20
+ "ts-node": "^9.1.1"
21
+ },
22
+ "dependencies": {
23
+ "@shushishtok/tooltip_generator": "^1.2.3",
24
+ "link-module-alias": "^1.2.0",
25
+ "node-watch": "^0.7.1",
26
+ "npm-run-all": "^4.1.5",
27
+ "typescript": "^4.1.3",
28
+ "valve-kv": "^1.0.1"
29
+ }
30
+ }
package/fsWatcher.js ADDED
@@ -0,0 +1,81 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
+ }) : (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ o[k2] = m[k];
8
+ }));
9
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
10
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
11
+ }) : function(o, v) {
12
+ o["default"] = v;
13
+ });
14
+ var __importStar = (this && this.__importStar) || function (mod) {
15
+ if (mod && mod.__esModule) return mod;
16
+ var result = {};
17
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18
+ __setModuleDefault(result, mod);
19
+ return result;
20
+ };
21
+ Object.defineProperty(exports, "__esModule", { value: true });
22
+ var fs = __importStar(require("fs"));
23
+ var watch = require("node-watch");
24
+ var completeData = {};
25
+ var resourcePath = "node_modules/~resource";
26
+ var generatorPath = "node_modules/~generator";
27
+ console.log(fs.realpathSync(generatorPath));
28
+ var watcher = watch([resourcePath + "/localization", generatorPath + "/localizationCompiler.js"], { recursive: true });
29
+ watcher.on("change", function (eventType, filePath) {
30
+ if (!filePath)
31
+ return;
32
+ if (filePath.includes("localizationCompiler.js")) {
33
+ compiler = loadCompiler();
34
+ }
35
+ var match = /(node_modules[\\/])?(.*[\/|\\](\w+)).js/g.exec(filePath);
36
+ if (eventType == "update" && filePath && match) {
37
+ var curpath = match[2];
38
+ var data = getDataFromFile(curpath + ".js");
39
+ if (data) {
40
+ completeData[curpath] = data;
41
+ combineData();
42
+ }
43
+ }
44
+ else if (eventType == "remove" && match) {
45
+ if (completeData.hasOwnProperty(match[2])) {
46
+ delete completeData[match[2]];
47
+ combineData();
48
+ }
49
+ }
50
+ });
51
+ // not really neccessarry:
52
+ watcher.on("error", function (error) {
53
+ console.log("\x1b[31m%s\x1b[0m", "Something went wrong!");
54
+ console.log(error);
55
+ });
56
+ watcher.on("ready", function () {
57
+ console.log("\x1b[32m%s\x1b[0m", "Ready!");
58
+ });
59
+ var compiler = loadCompiler();
60
+ function getDataFromFile(filePath) {
61
+ if (!fs.existsSync("node_modules/" + filePath)) {
62
+ return;
63
+ }
64
+ delete require.cache[require.resolve(filePath)];
65
+ var file = require(filePath);
66
+ if (file["GenerateLocalizationData"]) {
67
+ var localizationArr = file["GenerateLocalizationData"]();
68
+ return localizationArr;
69
+ }
70
+ return;
71
+ }
72
+ function combineData() {
73
+ compiler.OnLocalizationDataChanged(completeData);
74
+ }
75
+ function loadCompiler() {
76
+ // Clear require cache
77
+ delete require.cache[require.resolve("~generator/localizationCompiler")];
78
+ // Require latest compiler version
79
+ var compilerClass = require("~generator/localizationCompiler").LocalizationCompiler;
80
+ return new compilerClass();
81
+ }
package/fsWatcher.ts ADDED
@@ -0,0 +1,70 @@
1
+ import * as fs from 'fs';
2
+ import { LocalizationCompiler } from './localizationCompiler';
3
+ import { LocalizationData} from './localizationInterfaces';
4
+ const watch = require("node-watch");
5
+
6
+ let completeData: {[path: string]: LocalizationData} = {};
7
+ const resourcePath = "node_modules/~resource";
8
+ const generatorPath = "node_modules/~generator";
9
+
10
+ console.log(fs.realpathSync(generatorPath));
11
+
12
+ let watcher = watch([resourcePath + "/localization", generatorPath + "/localizationCompiler.ts"], {recursive: true})
13
+ watcher.on("change", (eventType ?: 'update' | 'remove' | undefined, filePath ?: string) => {
14
+ if (!filePath) return;
15
+ if (filePath.includes("localizationCompiler.ts")) {
16
+ compiler = loadCompiler();
17
+ }
18
+ let match = /(node_modules[\\/])?(.*[\/|\\](\w+)).js/g.exec(filePath);
19
+ if (eventType == "update" && filePath && match) {
20
+ const curpath = match[2];
21
+ const data = getDataFromFile(curpath + ".ts");
22
+ if (data) {
23
+ completeData[curpath] = data;
24
+ combineData();
25
+ }
26
+ } else if (eventType == "remove" && match) {
27
+ if (completeData.hasOwnProperty(match[2])) {
28
+ delete completeData[match[2]];
29
+ combineData();
30
+ }
31
+ }
32
+ })
33
+
34
+ // not really neccessarry:
35
+ watcher.on("error", (error: Error) => {
36
+ console.log("\x1b[31m%s\x1b[0m", "Something went wrong!");
37
+ console.log(error);
38
+ })
39
+
40
+ watcher.on("ready", () => {
41
+ console.log("\x1b[32m%s\x1b[0m", "Ready!");
42
+ })
43
+
44
+ let compiler = loadCompiler();
45
+
46
+ function getDataFromFile(filePath: string): LocalizationData | undefined {
47
+ if (!fs.existsSync("node_modules/" + filePath)){
48
+ return;
49
+ }
50
+ delete require.cache[require.resolve(filePath)]
51
+ let file = require(filePath);
52
+ if (file["GenerateLocalizationData"]) {
53
+ const localizationArr: LocalizationData = file["GenerateLocalizationData"]();
54
+ return localizationArr;
55
+ }
56
+ return;
57
+ }
58
+
59
+ function combineData() {
60
+ compiler.OnLocalizationDataChanged(completeData);
61
+ }
62
+
63
+ function loadCompiler(): LocalizationCompiler
64
+ {
65
+ // Clear require cache
66
+ delete require.cache[require.resolve("~generator/localizationCompiler")]
67
+ // Require latest compiler version
68
+ const compilerClass: new () => LocalizationCompiler = require("~generator/localizationCompiler").LocalizationCompiler;
69
+ return new compilerClass();
70
+ }
package/init.js ADDED
@@ -0,0 +1,146 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
+ }) : (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ o[k2] = m[k];
8
+ }));
9
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
10
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
11
+ }) : function(o, v) {
12
+ o["default"] = v;
13
+ });
14
+ var __importStar = (this && this.__importStar) || function (mod) {
15
+ if (mod && mod.__esModule) return mod;
16
+ var result = {};
17
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18
+ __setModuleDefault(result, mod);
19
+ return result;
20
+ };
21
+ Object.defineProperty(exports, "__esModule", { value: true });
22
+ var fs = __importStar(require("fs"));
23
+ function copyFiles() {
24
+ console.log("Copying initial files...");
25
+ var resourcePath = "node_modules/~resource";
26
+ var filePath = __dirname + "/tsconfig.json";
27
+ if (fs.existsSync(resourcePath)) {
28
+ filePath = __dirname + "/tsconfig.json";
29
+ var resultPath = resourcePath + "/tsconfig.json";
30
+ console.log("Checking if tsconfig.json exists in " + filePath);
31
+ if (fs.existsSync(resultPath)) {
32
+ console.log("tsconfig.json found!");
33
+ }
34
+ else {
35
+ fs.copyFileSync(filePath, resultPath);
36
+ console.log("Not found, tsconfig.json copied to " + resultPath + " folder");
37
+ }
38
+ filePath = __dirname + "/ModifierProperties.d.ts";
39
+ resultPath = resourcePath + "/ModifierProperties.d.ts";
40
+ console.log("Checking if ModifierProperties.d.ts exists in " + filePath);
41
+ if (fs.existsSync(resultPath)) {
42
+ console.log("ModifierProperties.d.ts found!");
43
+ }
44
+ else {
45
+ fs.copyFileSync(filePath, resultPath);
46
+ console.log("Not found, ModifierProperties.d.ts copied to " + resultPath + " folder");
47
+ }
48
+ filePath = __dirname + "/languages.ts";
49
+ resultPath = resourcePath + "/languages.ts";
50
+ console.log("Checking if languages.ts exsts in " + filePath);
51
+ if (fs.existsSync(resultPath)) {
52
+ console.log("languages.ts found!");
53
+ }
54
+ else {
55
+ fs.copyFileSync(filePath, resultPath);
56
+ console.log("Not found, languages.ts copied to " + resultPath + " folder");
57
+ }
58
+ filePath = __dirname + "/languages.js";
59
+ resultPath = resourcePath + "/languages.js";
60
+ console.log("Checking if languages.js exsts in " + filePath);
61
+ if (fs.existsSync(resultPath)) {
62
+ console.log("languages.js found!");
63
+ }
64
+ else {
65
+ fs.copyFileSync(filePath, resultPath);
66
+ console.log("Not found, languages.js copied to " + resultPath + " folder");
67
+ }
68
+ }
69
+ var dirPath = __dirname + "/localization";
70
+ if (fs.existsSync(filePath) && fs.existsSync(resourcePath)) {
71
+ var resultPath = resourcePath + "/localization";
72
+ console.log("Checking if localization folder exists in " + resultPath);
73
+ if (!fs.existsSync(resultPath)) {
74
+ fs.mkdirSync(resultPath);
75
+ console.log("localization folder not found, creating the folder.");
76
+ }
77
+ console.log("Checking if localization folder is empty");
78
+ if (fs.readdirSync(resultPath).length === 0) {
79
+ console.log("Localization folder is empty, copying example files.");
80
+ if (!fs.existsSync(resultPath + "/localizationData.ts")) {
81
+ fs.copyFileSync(dirPath + "/localizationData.ts", resultPath + "/localizationData.ts");
82
+ }
83
+ if (!fs.existsSync(resultPath + "/localizationData.js")) {
84
+ fs.copyFileSync(dirPath + "/localizationData.js", resultPath + "/localizationData.js");
85
+ }
86
+ }
87
+ }
88
+ console.log("\x1b[36m%s\x1b[0m", "Finished copy process!");
89
+ }
90
+ function changeImports() {
91
+ var resourcePath = "node_modules/~resource";
92
+ var compilerFilePath = __dirname + "/localizationCompiler.ts";
93
+ if (fs.existsSync(compilerFilePath)) {
94
+ fs.readFile(compilerFilePath, 'utf8', function (err, data) {
95
+ if (err) {
96
+ return console.log(err);
97
+ }
98
+ var result = data.replace('import { Language } from "./languages"', 'import { Language } from "~resource/languages"');
99
+ fs.writeFile(compilerFilePath, result, 'utf8', function (err) {
100
+ if (err)
101
+ return console.log(err);
102
+ });
103
+ });
104
+ }
105
+ var compilerJSFilePath = __dirname + "/localizationCompiler.js";
106
+ if (fs.existsSync(compilerJSFilePath)) {
107
+ fs.readFile(compilerJSFilePath, 'utf8', function (err, data) {
108
+ if (err) {
109
+ return console.log(err);
110
+ }
111
+ var result = data.replace('languages_1 = require("./languages");', 'languages_1 = require("~resource/languages");');
112
+ fs.writeFile(compilerJSFilePath, result, 'utf8', function (err) {
113
+ if (err)
114
+ return console.log(err);
115
+ });
116
+ });
117
+ }
118
+ var interfacesFilePath = __dirname + "/localizationInterfaces.ts";
119
+ if (fs.existsSync(interfacesFilePath)) {
120
+ fs.readFile(interfacesFilePath, 'utf8', function (err, data) {
121
+ if (err) {
122
+ return console.log(err);
123
+ }
124
+ var stringResult = data.replace('import { Language } from "./languages"', 'import { Language } from "~resource/languages"');
125
+ fs.writeFile(interfacesFilePath, stringResult, 'utf8', function (err) {
126
+ if (err)
127
+ return console.log(err);
128
+ });
129
+ });
130
+ }
131
+ var exampleFilePath = resourcePath + "/localization/localizationData.ts";
132
+ if (fs.existsSync(exampleFilePath)) {
133
+ fs.readFile(exampleFilePath, 'utf8', function (err, data) {
134
+ if (err) {
135
+ return console.log(err);
136
+ }
137
+ var stringResult = data.replace('import { AbilityLocalization, LocalizationData, ModifierLocalization, StandardLocalization } from "../localizationInterfaces";', 'import { AbilityLocalization, LocalizationData, ModifierLocalization, StandardLocalization } from "~generator/localizationInterfaces";');
138
+ fs.writeFile(exampleFilePath, stringResult, 'utf8', function (err) {
139
+ if (err)
140
+ return console.log(err);
141
+ });
142
+ });
143
+ }
144
+ }
145
+ copyFiles();
146
+ changeImports();