warscript 0.0.1-dev.9eab2af → 0.0.1-dev.9ee7706

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 (67) hide show
  1. package/config.d.ts +5 -0
  2. package/config.lua +10 -0
  3. package/core/types/sound.d.ts +17 -24
  4. package/core/types/sound.lua +94 -24
  5. package/core/util.lua +6 -1
  6. package/engine/behaviour/ability/apply-buff.d.ts +5 -0
  7. package/engine/behaviour/ability/apply-buff.lua +32 -0
  8. package/engine/behaviour/ability/apply-unit-behavior.lua +1 -0
  9. package/engine/behaviour/ability/damage.d.ts +3 -0
  10. package/engine/behaviour/ability/damage.lua +2 -2
  11. package/engine/behaviour/ability.d.ts +1 -0
  12. package/engine/behaviour/ability.lua +14 -1
  13. package/engine/behaviour/unit.d.ts +2 -0
  14. package/engine/buff.d.ts +53 -41
  15. package/engine/buff.lua +280 -228
  16. package/engine/internal/item.d.ts +2 -2
  17. package/engine/internal/item.lua +56 -25
  18. package/engine/internal/mechanics/ability-duration.lua +1 -1
  19. package/engine/internal/unit/add-item-to-slot.lua +4 -2
  20. package/engine/internal/unit.d.ts +6 -1
  21. package/engine/internal/unit.lua +8 -2
  22. package/engine/lightning.d.ts +4 -3
  23. package/engine/lightning.lua +21 -12
  24. package/engine/object-data/auxiliary/animation-name.d.ts +1 -0
  25. package/engine/object-data/auxiliary/animation-name.lua +16 -0
  26. package/engine/object-data/auxiliary/sound-eax.d.ts +10 -0
  27. package/engine/object-data/auxiliary/sound-eax.lua +2 -0
  28. package/engine/object-data/auxiliary/tech-tree-dependency.d.ts +1 -1
  29. package/engine/object-data/entry/ability-type/blank-configurable.lua +12 -1
  30. package/engine/object-data/entry/ability-type/carrion-swarm.d.ts +14 -0
  31. package/engine/object-data/entry/ability-type/carrion-swarm.lua +65 -0
  32. package/engine/object-data/entry/ability-type/disease-cloud.lua +2 -2
  33. package/engine/object-data/entry/ability-type/engineering-upgrade.lua +2 -2
  34. package/engine/object-data/entry/ability-type/ensnare.d.ts +12 -0
  35. package/engine/object-data/entry/ability-type/ensnare.lua +52 -0
  36. package/engine/object-data/entry/ability-type/feral-spirit.lua +2 -2
  37. package/engine/object-data/entry/ability-type/phoenix-morph.lua +4 -4
  38. package/engine/object-data/entry/ability-type/raise-dead.d.ts +17 -0
  39. package/engine/object-data/entry/ability-type/raise-dead.lua +78 -0
  40. package/engine/object-data/entry/ability-type/shock-wave.d.ts +4 -0
  41. package/engine/object-data/entry/ability-type/shock-wave.lua +26 -0
  42. package/engine/object-data/entry/ability-type/summon-quilbeast.lua +2 -2
  43. package/engine/object-data/entry/ability-type/summon-water-elemental.lua +2 -2
  44. package/engine/object-data/entry/ability-type/web.d.ts +12 -0
  45. package/engine/object-data/entry/ability-type/web.lua +52 -0
  46. package/engine/object-data/entry/ability-type.d.ts +8 -6
  47. package/engine/object-data/entry/ability-type.lua +54 -15
  48. package/engine/object-data/entry/buff-type/applicable.lua +13 -37
  49. package/engine/object-data/entry/buff-type.d.ts +1 -1
  50. package/engine/object-data/entry/buff-type.lua +2 -2
  51. package/engine/object-data/entry/destructible-type.d.ts +1 -1
  52. package/engine/object-data/entry/item-type.d.ts +1 -1
  53. package/engine/object-data/entry/item-type.lua +4 -4
  54. package/engine/object-data/entry/lightning-type.d.ts +1 -1
  55. package/engine/object-data/entry/sound-preset.d.ts +33 -0
  56. package/engine/object-data/entry/sound-preset.lua +140 -0
  57. package/engine/object-data/entry/unit-type.d.ts +8 -1
  58. package/engine/object-data/entry/unit-type.lua +61 -8
  59. package/engine/object-data/entry/upgrade.d.ts +1 -1
  60. package/engine/object-data/entry/upgrade.lua +4 -4
  61. package/engine/object-data/entry.d.ts +16 -14
  62. package/engine/object-data/entry.lua +60 -32
  63. package/engine/standard/entries/sound-preset.d.ts +10 -0
  64. package/engine/standard/entries/sound-preset.lua +10 -0
  65. package/objutil/unit.lua +8 -0
  66. package/package.json +2 -2
  67. package/utility/reflection.lua +11 -7
@@ -0,0 +1,10 @@
1
+ local ____exports = {}
2
+ ____exports.ABOMINATION_PISSED_SOUND_PRESET_ID = "AbominationPissed"
3
+ ____exports.ABOMINATION_READY_SOUND_PRESET_ID = "AbominationReady"
4
+ ____exports.ABOMINATION_WAR_CRY_SOUND_PRESET_ID = "AbominationWarcry"
5
+ ____exports.AXE_MEDIUM_CHOP_WOOD_SOUND_PRESET_ID = "AxeMediumChopWood"
6
+ ____exports.IMPALE_SOUND_PRESET_ID = "Impale"
7
+ ____exports.IMPALE_HIT_SOUND_PRESET_ID = "ImpaleHit"
8
+ ____exports.IMPALE_LAND_SOUND_PRESET_ID = "ImpaleLand"
9
+ ____exports.IMPALE_CAST_SOUND_PRESET_ID = "ImpaleCast"
10
+ return ____exports
package/objutil/unit.lua CHANGED
@@ -11,6 +11,8 @@ local ____exports = {}
11
11
  local ____object = require("objutil.object")
12
12
  local ObjectDefinition = ____object.ObjectDefinition
13
13
  local idgen = require("objutil.idgen")
14
+ local ____config = require("config")
15
+ local WarscriptConfig = ____config.WarscriptConfig
14
16
  local attackTypes = setmetatable(
15
17
  {
16
18
  normal = "normal",
@@ -593,6 +595,9 @@ __TS__SetDescriptor(
593
595
  end,
594
596
  set = function(self, v)
595
597
  self:setStringField("umdl", v)
598
+ if WarscriptConfig.AUTOMATICALLY_SET_UNIT_TYPE_PORTRAIT_MODEL_PATH then
599
+ self:setStringField("upor", "")
600
+ end
596
601
  end
597
602
  },
598
603
  true
@@ -606,6 +611,9 @@ __TS__SetDescriptor(
606
611
  end,
607
612
  set = function(self, v)
608
613
  self.object:setField("umdl:hd", v)
614
+ if WarscriptConfig.AUTOMATICALLY_SET_UNIT_TYPE_PORTRAIT_MODEL_PATH then
615
+ self.object:setField("upor:hd", "")
616
+ end
609
617
  end
610
618
  },
611
619
  true
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "https://json.schemastore.org/package",
3
3
  "name": "warscript",
4
- "version": "0.0.1-dev.9eab2af",
4
+ "version": "0.0.1-dev.9ee7706",
5
5
  "description": "A typescript library for Warcraft III using Warpack.",
6
6
  "keywords": [
7
7
  "warcraft",
@@ -24,7 +24,7 @@
24
24
  "@warscript/language-extensions": "^0.0.1",
25
25
  "@warscript/tstl-plugin": "^0.0.4",
26
26
  "lua-types": "^2.13.1",
27
- "warpack": "0.0.1-dev.1830aad"
27
+ "warpack": "0.0.1-dev.9a8d1de"
28
28
  },
29
29
  "devDependencies": {
30
30
  "@typescript-eslint/eslint-plugin": "^8.13.0",
@@ -5,21 +5,25 @@ local checkNotNull = ____preconditions.checkNotNull
5
5
  -- @internal For use by internal systems only.
6
6
  ____exports.implementReadonlyNumberIndexSupplier = function(clazz, supplier)
7
7
  local metatable = checkNotNull(getmetatable(clazz))
8
- local originalIndex = checkNotNull(metatable.__index)
8
+ local originalIndex = checkNotNull(rawget(metatable, "__index"))
9
9
  local memoizedValueByKey = {}
10
- metatable.__index = setmetatable(
11
- memoizedValueByKey,
12
- {__index = function(self, key)
10
+ rawset(
11
+ metatable,
12
+ "__index",
13
+ function(self, key)
13
14
  if type(key) == "number" then
14
- local value = supplier(key)
15
- memoizedValueByKey[key] = value
15
+ local value = memoizedValueByKey[key]
16
+ if value == nil then
17
+ value = supplier(key)
18
+ memoizedValueByKey[key] = value
19
+ end
16
20
  return value
17
21
  end
18
22
  if type(originalIndex) == "function" then
19
23
  return originalIndex(self, key)
20
24
  end
21
25
  return originalIndex[key]
22
- end}
26
+ end
23
27
  )
24
28
  end
25
29
  ____exports.getClass = function(object)