warscript 0.0.1-dev.ee2345e → 0.0.1-dev.f1df135

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 (201) hide show
  1. package/attributes.d.ts +0 -1
  2. package/binaryreader.d.ts +1 -0
  3. package/binaryreader.lua +3 -0
  4. package/config.d.ts +5 -0
  5. package/config.lua +10 -0
  6. package/core/types/effect.d.ts +14 -6
  7. package/core/types/effect.lua +131 -35
  8. package/core/types/frame.d.ts +8 -1
  9. package/core/types/frame.lua +93 -1
  10. package/core/types/group.d.ts +0 -1
  11. package/core/types/image.d.ts +0 -1
  12. package/core/types/missile.d.ts +2 -2
  13. package/core/types/missile.lua +8 -2
  14. package/core/types/sound.d.ts +17 -24
  15. package/core/types/sound.lua +94 -24
  16. package/core/types/timer.d.ts +6 -7
  17. package/core/types/timer.lua +18 -21
  18. package/core/types/unit.lua +8 -0
  19. package/core/util.d.ts +1 -1
  20. package/core/util.lua +18 -1
  21. package/decl/index.d.ts +1 -0
  22. package/engine/ability.d.ts +1 -1
  23. package/engine/behavior.d.ts +10 -10
  24. package/engine/behavior.lua +6 -6
  25. package/engine/behaviour/ability/always-enabled.d.ts +7 -0
  26. package/engine/behaviour/ability/always-enabled.lua +31 -0
  27. package/engine/behaviour/ability/apply-buff.d.ts +8 -5
  28. package/engine/behaviour/ability/apply-buff.lua +32 -0
  29. package/engine/behaviour/ability/apply-unit-behavior.d.ts +6 -1
  30. package/engine/behaviour/ability/apply-unit-behavior.lua +1 -0
  31. package/engine/behaviour/ability/damage.d.ts +36 -11
  32. package/engine/behaviour/ability/damage.lua +90 -32
  33. package/engine/behaviour/ability/emulate-impact.d.ts +6 -0
  34. package/engine/behaviour/ability/emulate-impact.lua +28 -0
  35. package/engine/behaviour/ability/heal.d.ts +33 -6
  36. package/engine/behaviour/ability/heal.lua +89 -10
  37. package/engine/behaviour/ability/instant-impact.d.ts +2 -2
  38. package/engine/behaviour/ability/instant-impact.lua +4 -15
  39. package/engine/behaviour/ability/on-command-impact.d.ts +8 -0
  40. package/engine/behaviour/ability/on-command-impact.lua +25 -0
  41. package/engine/behaviour/ability/remove-buffs.d.ts +16 -0
  42. package/engine/behaviour/ability/remove-buffs.lua +28 -0
  43. package/engine/behaviour/ability/restore-mana.d.ts +15 -0
  44. package/engine/behaviour/ability/restore-mana.lua +29 -0
  45. package/engine/behaviour/ability.d.ts +27 -4
  46. package/engine/behaviour/ability.lua +152 -17
  47. package/engine/behaviour/unit/stun-immunity.d.ts +0 -1
  48. package/engine/behaviour/unit.d.ts +10 -2
  49. package/engine/behaviour/unit.lua +27 -0
  50. package/engine/buff.d.ts +103 -41
  51. package/engine/buff.lua +465 -212
  52. package/engine/game-map.d.ts +7 -0
  53. package/engine/game-map.lua +32 -0
  54. package/engine/internal/ability.d.ts +16 -13
  55. package/engine/internal/ability.lua +80 -76
  56. package/engine/internal/item/ability.lua +106 -0
  57. package/engine/internal/item+owner.lua +2 -2
  58. package/engine/internal/item.d.ts +2 -2
  59. package/engine/internal/item.lua +56 -25
  60. package/engine/internal/mechanics/ability-duration.lua +1 -1
  61. package/engine/internal/misc/ability-disable-counter.d.ts +2 -0
  62. package/engine/internal/misc/ability-disable-counter.lua +13 -0
  63. package/engine/internal/object-data/auto-attack-speed-increase.d.ts +1 -1
  64. package/engine/internal/object-data/auto-attack-speed-increase.lua +2 -0
  65. package/engine/internal/object-data/evasion-probability.d.ts +2 -0
  66. package/engine/internal/object-data/evasion-probability.lua +16 -0
  67. package/engine/internal/unit/ability.d.ts +10 -1
  68. package/engine/internal/unit/ability.lua +36 -14
  69. package/engine/internal/unit/add-item-to-slot-init.d.ts +2 -0
  70. package/engine/internal/unit/add-item-to-slot-init.lua +23 -0
  71. package/engine/internal/unit/add-item-to-slot.d.ts +2 -0
  72. package/engine/internal/unit/add-item-to-slot.lua +52 -0
  73. package/engine/internal/unit/bonus.d.ts +11 -8
  74. package/engine/internal/unit/bonus.lua +23 -1
  75. package/engine/internal/unit/ignore-events-items.d.ts +2 -0
  76. package/engine/internal/unit/ignore-events-items.lua +5 -0
  77. package/engine/internal/unit/item.d.ts +24 -0
  78. package/engine/internal/unit/item.lua +78 -0
  79. package/engine/internal/unit/main-selected.d.ts +13 -0
  80. package/engine/internal/unit/main-selected.lua +51 -0
  81. package/engine/internal/unit+ability.lua +2 -2
  82. package/engine/internal/unit+transport.lua +4 -10
  83. package/engine/internal/unit-missile-launch.lua +25 -6
  84. package/engine/internal/unit.d.ts +64 -16
  85. package/engine/internal/unit.lua +381 -134
  86. package/engine/internal/utility.lua +12 -0
  87. package/engine/lightning.d.ts +12 -5
  88. package/engine/lightning.lua +48 -14
  89. package/engine/local-client.d.ts +7 -2
  90. package/engine/local-client.lua +82 -0
  91. package/engine/object-data/auxiliary/animation-name.d.ts +1 -0
  92. package/engine/object-data/auxiliary/animation-name.lua +16 -0
  93. package/engine/object-data/auxiliary/attachment-preset.d.ts +7 -3
  94. package/engine/object-data/auxiliary/attachment-preset.lua +4 -3
  95. package/engine/object-data/auxiliary/combat-classification.d.ts +0 -2
  96. package/engine/object-data/auxiliary/sound-eax.d.ts +10 -0
  97. package/engine/object-data/auxiliary/sound-eax.lua +2 -0
  98. package/engine/object-data/auxiliary/sound-preset-name.d.ts +5 -1
  99. package/engine/object-data/auxiliary/tech-tree-dependency.d.ts +1 -1
  100. package/engine/object-data/entry/ability-type/berserk.d.ts +2 -0
  101. package/engine/object-data/entry/ability-type/berserk.lua +13 -0
  102. package/engine/object-data/entry/ability-type/blank-configurable.d.ts +0 -1
  103. package/engine/object-data/entry/ability-type/blank-configurable.lua +12 -1
  104. package/engine/object-data/entry/ability-type/blank-passive.d.ts +0 -1
  105. package/engine/object-data/entry/ability-type/carrion-swarm.d.ts +14 -0
  106. package/engine/object-data/entry/ability-type/carrion-swarm.lua +65 -0
  107. package/engine/object-data/entry/ability-type/channel.d.ts +0 -1
  108. package/engine/object-data/entry/ability-type/disease-cloud.lua +2 -2
  109. package/engine/object-data/entry/ability-type/engineering-upgrade.lua +2 -2
  110. package/engine/object-data/entry/ability-type/ensnare.d.ts +12 -0
  111. package/engine/object-data/entry/ability-type/ensnare.lua +52 -0
  112. package/engine/object-data/entry/ability-type/feral-spirit.lua +2 -2
  113. package/engine/object-data/entry/ability-type/mine.d.ts +10 -0
  114. package/engine/object-data/entry/ability-type/mine.lua +39 -0
  115. package/engine/object-data/entry/ability-type/phase-shift.d.ts +10 -0
  116. package/engine/object-data/entry/ability-type/phase-shift.lua +39 -0
  117. package/engine/object-data/entry/ability-type/phoenix-morph.lua +4 -4
  118. package/engine/object-data/entry/ability-type/raise-dead.d.ts +17 -0
  119. package/engine/object-data/entry/ability-type/raise-dead.lua +78 -0
  120. package/engine/object-data/entry/ability-type/shock-wave.d.ts +4 -0
  121. package/engine/object-data/entry/ability-type/shock-wave.lua +26 -0
  122. package/engine/object-data/entry/ability-type/spirit-touch.d.ts +2 -2
  123. package/engine/object-data/entry/ability-type/spirit-touch.lua +6 -6
  124. package/engine/object-data/entry/ability-type/summon-quilbeast.lua +2 -2
  125. package/engine/object-data/entry/ability-type/summon-water-elemental.lua +2 -2
  126. package/engine/object-data/entry/ability-type/web.d.ts +12 -0
  127. package/engine/object-data/entry/ability-type/web.lua +52 -0
  128. package/engine/object-data/entry/ability-type.d.ts +19 -18
  129. package/engine/object-data/entry/ability-type.lua +82 -33
  130. package/engine/object-data/entry/buff-type/applicable.d.ts +0 -1
  131. package/engine/object-data/entry/buff-type/applicable.lua +13 -37
  132. package/engine/object-data/entry/buff-type/blank.d.ts +0 -1
  133. package/engine/object-data/entry/buff-type.d.ts +1 -2
  134. package/engine/object-data/entry/buff-type.lua +2 -2
  135. package/engine/object-data/entry/destructible-type.d.ts +1 -2
  136. package/engine/object-data/entry/item-type/blank.d.ts +0 -1
  137. package/engine/object-data/entry/item-type.d.ts +15 -2
  138. package/engine/object-data/entry/item-type.lua +93 -2
  139. package/engine/object-data/entry/lightning-type.d.ts +1 -2
  140. package/engine/object-data/entry/sound-preset.d.ts +33 -0
  141. package/engine/object-data/entry/sound-preset.lua +140 -0
  142. package/engine/object-data/entry/unit-type.d.ts +45 -3
  143. package/engine/object-data/entry/unit-type.lua +394 -57
  144. package/engine/object-data/entry/upgrade/blank.d.ts +0 -1
  145. package/engine/object-data/entry/upgrade.d.ts +1 -2
  146. package/engine/object-data/entry/upgrade.lua +4 -4
  147. package/engine/object-data/entry.d.ts +18 -17
  148. package/engine/object-data/entry.lua +60 -32
  149. package/engine/object-data/utility/object-data-entry-id-generator.lua +7 -0
  150. package/engine/object-field/ability.d.ts +26 -3
  151. package/engine/object-field/ability.lua +54 -1
  152. package/engine/object-field.d.ts +2 -3
  153. package/engine/object-field.lua +4 -0
  154. package/engine/random.d.ts +1 -0
  155. package/engine/random.lua +9 -0
  156. package/engine/standard/entries/sound-preset.d.ts +10 -0
  157. package/engine/standard/entries/sound-preset.lua +10 -0
  158. package/engine/standard/entries/unit-type.d.ts +39 -1
  159. package/engine/standard/entries/unit-type.lua +39 -1
  160. package/engine/standard/fields/ability.d.ts +3 -1
  161. package/engine/standard/fields/ability.lua +3 -1
  162. package/engine/unit.d.ts +3 -0
  163. package/engine/unit.lua +12 -2
  164. package/event.d.ts +2 -3
  165. package/event.lua +9 -5
  166. package/index.d.ts +1 -0
  167. package/index.lua +1 -0
  168. package/lualib_bundle.lua +146 -42
  169. package/math/vec2.d.ts +2 -9
  170. package/math.d.ts +0 -2
  171. package/net/socket.d.ts +7 -1
  172. package/net/socket.lua +45 -4
  173. package/network.d.ts +1 -0
  174. package/network.lua +3 -2
  175. package/objutil/ability.d.ts +0 -1
  176. package/objutil/buff.d.ts +0 -1
  177. package/objutil/buff.lua +1 -1
  178. package/objutil/object.d.ts +0 -1
  179. package/objutil/unit.d.ts +0 -1
  180. package/objutil/unit.lua +8 -0
  181. package/package.json +13 -14
  182. package/patch-lua.d.ts +0 -0
  183. package/patch-lua.lua +10 -0
  184. package/property.d.ts +55 -0
  185. package/property.lua +374 -0
  186. package/string.d.ts +30 -0
  187. package/string.lua +14 -0
  188. package/util/stream.d.ts +0 -1
  189. package/utility/arrays.d.ts +11 -5
  190. package/utility/arrays.lua +34 -3
  191. package/utility/bit-set.d.ts +0 -2
  192. package/utility/lazy.d.ts +2 -0
  193. package/utility/lazy.lua +14 -0
  194. package/utility/linked-set.d.ts +11 -3
  195. package/utility/linked-set.lua +5 -2
  196. package/utility/lua-maps.d.ts +1 -2
  197. package/utility/lua-sets.d.ts +1 -2
  198. package/utility/reflection.lua +11 -7
  199. package/utility/types.d.ts +1 -0
  200. package/core/mapbounds.d.ts +0 -8
  201. package/core/mapbounds.lua +0 -12
@@ -1,8 +1,8 @@
1
1
  local ____lualib = require("lualib_bundle")
2
2
  local __TS__Class = ____lualib.__TS__Class
3
3
  local __TS__ClassExtends = ____lualib.__TS__ClassExtends
4
- local __TS__New = ____lualib.__TS__New
5
4
  local __TS__SetDescriptor = ____lualib.__TS__SetDescriptor
5
+ local __TS__InstanceOf = ____lualib.__TS__InstanceOf
6
6
  local ____exports = {}
7
7
  local ____unit = require("engine.internal.unit")
8
8
  local Unit = ____unit.Unit
@@ -20,7 +20,7 @@ local mapIndexed = ____arrays.mapIndexed
20
20
  local ____attachment_2Dpreset = require("engine.object-data.auxiliary.attachment-preset")
21
21
  local extractAttachmentPresetInputModelPath = ____attachment_2Dpreset.extractAttachmentPresetInputModelPath
22
22
  local extractAttachmentPresetInputNodeFQN = ____attachment_2Dpreset.extractAttachmentPresetInputNodeFQN
23
- local toAttachmentPreset = ____attachment_2Dpreset.toAttachmentPreset
23
+ local toEffectPreset = ____attachment_2Dpreset.toEffectPreset
24
24
  local ____combat_2Dclassification = require("engine.object-data.auxiliary.combat-classification")
25
25
  local combatClassificationsToStringArray = ____combat_2Dclassification.combatClassificationsToStringArray
26
26
  local stringArrayToCombatClassifications = ____combat_2Dclassification.stringArrayToCombatClassifications
@@ -31,14 +31,18 @@ local ____entry = require("engine.object-data.entry")
31
31
  local extractObjectDataEntryLevelFieldValue = ____entry.extractObjectDataEntryLevelFieldValue
32
32
  local ObjectDataEntry = ____entry.ObjectDataEntry
33
33
  local ____object_2Ddata_2Dentry_2Did_2Dgenerator = require("engine.object-data.utility.object-data-entry-id-generator")
34
- local ObjectDataEntryIdGenerator = ____object_2Ddata_2Dentry_2Did_2Dgenerator.ObjectDataEntryIdGenerator
34
+ local abilityTypeIdGenerator = ____object_2Ddata_2Dentry_2Did_2Dgenerator.abilityTypeIdGenerator
35
35
  local ____upgrade = require("engine.object-data.entry.upgrade")
36
36
  local Upgrade = ____upgrade.Upgrade
37
+ local ____sound = require("core.types.sound")
38
+ local Sound3D = ____sound.Sound3D
39
+ local SoundSettings = ____sound.SoundSettings
37
40
  local castAnimationFQNByAbilityTypeId = {}
38
41
  local isButtonVisibleFalseAbilityTypes = {}
39
42
  local casterCastingEffectPresetsByAbilityTypeId = {}
40
43
  local casterChannelingEffectPresetsByAbilityTypeId = {}
41
44
  local targetCastingEffectPresetsByAbilityTypeId = {}
45
+ local targetEffectSoundPresetByAbilityTypeId = {}
42
46
  ____exports.AbilityType = __TS__Class()
43
47
  local AbilityType = ____exports.AbilityType
44
48
  AbilityType.name = "AbilityType"
@@ -53,10 +57,7 @@ end
53
57
  function AbilityType.getObjectData(self, map)
54
58
  return map.objects.ability
55
59
  end
56
- AbilityType.idGenerator = __TS__New(
57
- ObjectDataEntryIdGenerator,
58
- fourCC("A000")
59
- )
60
+ AbilityType.idGenerator = abilityTypeIdGenerator
60
61
  __TS__SetDescriptor(
61
62
  AbilityType.prototype,
62
63
  "channelingAnimation",
@@ -117,7 +118,7 @@ __TS__SetDescriptor(
117
118
  return casterCastingEffectPresetsByAbilityTypeId[self.id] or ({})
118
119
  end,
119
120
  set = function(self, casterCastingEffectPresets)
120
- casterCastingEffectPresetsByAbilityTypeId[self.id] = map(casterCastingEffectPresets, toAttachmentPreset)
121
+ casterCastingEffectPresetsByAbilityTypeId[self.id] = map(casterCastingEffectPresets, toEffectPreset)
121
122
  end
122
123
  },
123
124
  true
@@ -130,7 +131,7 @@ __TS__SetDescriptor(
130
131
  return casterChannelingEffectPresetsByAbilityTypeId[self.id] or ({})
131
132
  end,
132
133
  set = function(self, casterChannelingEffectPresets)
133
- casterChannelingEffectPresetsByAbilityTypeId[self.id] = map(casterChannelingEffectPresets, toAttachmentPreset)
134
+ casterChannelingEffectPresetsByAbilityTypeId[self.id] = map(casterChannelingEffectPresets, toEffectPreset)
134
135
  end
135
136
  },
136
137
  true
@@ -275,10 +276,10 @@ __TS__SetDescriptor(
275
276
  "lightningTypeIds",
276
277
  {
277
278
  get = function(self)
278
- return self:getObjectDataEntryIdsField("alig")
279
+ return self:getObjectDataEntryNumericIdsField("alig")
279
280
  end,
280
281
  set = function(self, lightningTypeIds)
281
- self:setObjectDataEntryIdsField("alig", lightningTypeIds)
282
+ self:setObjectDataEntryNumericIdsField("alig", lightningTypeIds)
282
283
  end
283
284
  },
284
285
  true
@@ -369,7 +370,7 @@ __TS__SetDescriptor(
369
370
  return targetCastingEffectPresetsByAbilityTypeId[self.id] or ({})
370
371
  end,
371
372
  set = function(self, targetCastingEffectPresets)
372
- targetCastingEffectPresetsByAbilityTypeId[self.id] = map(targetCastingEffectPresets, toAttachmentPreset)
373
+ targetCastingEffectPresetsByAbilityTypeId[self.id] = map(targetCastingEffectPresets, toEffectPreset)
373
374
  end
374
375
  },
375
376
  true
@@ -512,7 +513,7 @@ __TS__SetDescriptor(
512
513
  "techTreeDependencies",
513
514
  {
514
515
  get = function(self)
515
- local techTreeDependencyIds = self:getObjectDataEntryIdsField("areq")
516
+ local techTreeDependencyIds = self:getObjectDataEntryNumericIdsField("areq")
516
517
  local techTreeDependencyInternalLevels = self:getNumbersField("arqa")
517
518
  return mapIndexed(
518
519
  techTreeDependencyIds,
@@ -532,7 +533,7 @@ __TS__SetDescriptor(
532
533
  map(techTreeDependencies, extractTechTreeDependencyInputLevel),
533
534
  function(techTreeDependencyLevel) return techTreeDependencyLevel + 1 end
534
535
  )
535
- self:setObjectDataEntryIdsField("areq", techTreeDependencyIds)
536
+ self:setObjectDataEntryNumericIdsField("areq", techTreeDependencyIds)
536
537
  self:setNumbersField("arqa", techTreeDependencyInternalLevels)
537
538
  end
538
539
  },
@@ -722,26 +723,40 @@ __TS__SetDescriptor(
722
723
  )
723
724
  __TS__SetDescriptor(
724
725
  AbilityType.prototype,
725
- "soundPresetName",
726
+ "casterEffectSoundPresetId",
726
727
  {
727
728
  get = function(self)
728
- return self:getStringField("aefs")
729
+ local casterEffectSoundPresetId = self:getStringField("aefs")
730
+ return casterEffectSoundPresetId ~= "" and casterEffectSoundPresetId or nil
729
731
  end,
730
- set = function(self, soundPresetName)
731
- self:setStringField("aefs", soundPresetName)
732
+ set = function(self, casterEffectSoundPresetId)
733
+ self:setStringField("aefs", casterEffectSoundPresetId or "")
732
734
  end
733
735
  },
734
736
  true
735
737
  )
736
738
  __TS__SetDescriptor(
737
739
  AbilityType.prototype,
738
- "loopingSoundPresetName",
740
+ "casterEffectLoopingSoundPresetId",
739
741
  {
740
742
  get = function(self)
741
743
  return self:getStringField("aefl")
742
744
  end,
743
- set = function(self, loopingSoundPresetName)
744
- self:setStringField("aefl", loopingSoundPresetName)
745
+ set = function(self, casterEffectLoopingSoundPresetId)
746
+ self:setStringField("aefl", casterEffectLoopingSoundPresetId)
747
+ end
748
+ },
749
+ true
750
+ )
751
+ __TS__SetDescriptor(
752
+ AbilityType.prototype,
753
+ "targetEffectSoundPresetId",
754
+ {
755
+ get = function(self)
756
+ return targetEffectSoundPresetByAbilityTypeId[self.id]
757
+ end,
758
+ set = function(self, targetEffectSoundPresetId)
759
+ targetEffectSoundPresetByAbilityTypeId[self.id] = targetEffectSoundPresetId
745
760
  end
746
761
  },
747
762
  true
@@ -800,10 +815,10 @@ __TS__SetDescriptor(
800
815
  "buffTypeIds",
801
816
  {
802
817
  get = function(self)
803
- return self:getObjectDataEntryIdsLevelField("abuf")
818
+ return self:getObjectDataEntryNumericIdsLevelField("abuf")
804
819
  end,
805
820
  set = function(self, buffTypeIds)
806
- self:setObjectDataEntryIdsLevelField("abuf", buffTypeIds)
821
+ self:setObjectDataEntryNumericIdsLevelField("abuf", buffTypeIds)
807
822
  end
808
823
  },
809
824
  true
@@ -852,10 +867,10 @@ __TS__SetDescriptor(
852
867
  "effectBuffTypeIds",
853
868
  {
854
869
  get = function(self)
855
- return self:getObjectDataEntryIdsLevelField("aeff")
870
+ return self:getObjectDataEntryNumericIdsLevelField("aeff")
856
871
  end,
857
872
  set = function(self, effectBuffTypeIds)
858
- self:setObjectDataEntryIdsLevelField("aeff", effectBuffTypeIds)
873
+ self:setObjectDataEntryNumericIdsLevelField("aeff", effectBuffTypeIds)
859
874
  end
860
875
  },
861
876
  true
@@ -970,6 +985,26 @@ for abilityTypeId, animationFQN in pairs(postcompile(function() return castAnima
970
985
  end
971
986
  )
972
987
  end
988
+ for abilityTypeId, soundPresetId in pairs(postcompile(function() return targetEffectSoundPresetByAbilityTypeId end)) do
989
+ if soundPresetId ~= nil then
990
+ Unit.abilityWidgetTargetChannelingStartEvent[abilityTypeId]:addListener(
991
+ 4,
992
+ function(caster, ability, target)
993
+ if __TS__InstanceOf(target, Unit) then
994
+ Sound3D:playFromLabel(soundPresetId, SoundSettings.Ability, target)
995
+ else
996
+ Sound3D:playFromLabel(soundPresetId, SoundSettings.Ability, target.x, target.y)
997
+ end
998
+ end
999
+ )
1000
+ Unit.abilityPointTargetChannelingStartEvent[abilityTypeId]:addListener(
1001
+ 4,
1002
+ function(caster, ability, x, y)
1003
+ Sound3D:playFromLabel(soundPresetId, SoundSettings.Ability, x, y)
1004
+ end
1005
+ )
1006
+ end
1007
+ end
973
1008
  local casterCastingEffectModelPathsByAbilityTypeId = postcompile(function()
974
1009
  return mapValues(
975
1010
  casterCastingEffectPresetsByAbilityTypeId,
@@ -982,10 +1017,17 @@ local casterCastingEffectAttachmentPointsByAbilityTypeId = postcompile(function(
982
1017
  function(casterCastingEffectPresets) return map(casterCastingEffectPresets, extractAttachmentPresetInputNodeFQN) end
983
1018
  )
984
1019
  end)
1020
+ local casterCastingEffectParametersByAbilityTypeId = postcompile(function()
1021
+ return mapValues(
1022
+ casterCastingEffectPresetsByAbilityTypeId,
1023
+ function(casterCastingEffectPresets) return map(casterCastingEffectPresets, "parameters") end
1024
+ )
1025
+ end)
985
1026
  local casterCastingEffectsByCaster = {}
986
1027
  local function handleAbilityCastingStartEvent(caster, ability)
987
1028
  local effectModelPaths = casterCastingEffectModelPathsByAbilityTypeId[ability.typeId]
988
1029
  local attachmentPoints = casterCastingEffectAttachmentPointsByAbilityTypeId[ability.typeId]
1030
+ local parameters = casterCastingEffectParametersByAbilityTypeId[ability.typeId]
989
1031
  local effects = {}
990
1032
  if effectModelPaths ~= nil then
991
1033
  for i = 1, #effectModelPaths do
@@ -994,12 +1036,12 @@ local function handleAbilityCastingStartEvent(caster, ability)
994
1036
  if attachmentPoint == nil or attachmentPoint == "" then
995
1037
  attachmentPoint = "origin"
996
1038
  end
997
- effects[i] = Effect:createTarget(effectModelPath, caster, attachmentPoint)
1039
+ effects[i] = Effect:create(effectModelPath, caster, attachmentPoint, parameters and parameters[i])
998
1040
  end
999
1041
  end
1000
1042
  casterCastingEffectsByCaster[caster] = effects
1001
1043
  end
1002
- local function handleAbilityStopEvent(caster)
1044
+ local function handleAbilityStopCastingEvent(caster)
1003
1045
  local effects = casterCastingEffectsByCaster[caster]
1004
1046
  if effects ~= nil then
1005
1047
  for i = 1, #effects do
@@ -1010,8 +1052,8 @@ local function handleAbilityStopEvent(caster)
1010
1052
  end
1011
1053
  for abilityTypeId in pairs(casterCastingEffectModelPathsByAbilityTypeId) do
1012
1054
  Unit.abilityCastingStartEvent[abilityTypeId]:addListener(4, handleAbilityCastingStartEvent)
1013
- Unit.abilityChannelingStartEvent[abilityTypeId]:addListener(4, handleAbilityStopEvent)
1014
- Unit.abilityStopEvent[abilityTypeId]:addListener(4, handleAbilityStopEvent)
1055
+ Unit.abilityChannelingStartEvent[abilityTypeId]:addListener(4, handleAbilityStopCastingEvent)
1056
+ Unit.abilityStopEvent[abilityTypeId]:addListener(4, handleAbilityStopCastingEvent)
1015
1057
  end
1016
1058
  local casterChannelingEffectModelPathsByAbilityTypeId = postcompile(function()
1017
1059
  return mapValues(
@@ -1025,10 +1067,17 @@ local casterChannelingEffectAttachmentPointsByAbilityTypeId = postcompile(functi
1025
1067
  function(casterChannelingEffectPresets) return map(casterChannelingEffectPresets, extractAttachmentPresetInputNodeFQN) end
1026
1068
  )
1027
1069
  end)
1070
+ local casterChannelingEffectParametersByAbilityTypeId = postcompile(function()
1071
+ return mapValues(
1072
+ casterChannelingEffectPresetsByAbilityTypeId,
1073
+ function(casterChannelingEffectPresets) return map(casterChannelingEffectPresets, "parameters") end
1074
+ )
1075
+ end)
1028
1076
  local casterChannelingEffectsByCaster = {}
1029
1077
  local function handleAbilityChannelingStartEvent(caster, ability)
1030
1078
  local effectModelPaths = casterChannelingEffectModelPathsByAbilityTypeId[ability.typeId]
1031
1079
  local attachmentPoints = casterChannelingEffectAttachmentPointsByAbilityTypeId[ability.typeId]
1080
+ local parameters = casterChannelingEffectParametersByAbilityTypeId[ability.typeId]
1032
1081
  local effects = {}
1033
1082
  if effectModelPaths ~= nil then
1034
1083
  for i = 1, #effectModelPaths do
@@ -1037,12 +1086,12 @@ local function handleAbilityChannelingStartEvent(caster, ability)
1037
1086
  if attachmentPoint == nil or attachmentPoint == "" then
1038
1087
  attachmentPoint = "origin"
1039
1088
  end
1040
- effects[i] = Effect:createTarget(effectModelPath, caster, attachmentPoint)
1089
+ effects[i] = Effect:create(effectModelPath, caster, attachmentPoint, parameters and parameters[i])
1041
1090
  end
1042
1091
  end
1043
1092
  casterChannelingEffectsByCaster[caster] = effects
1044
1093
  end
1045
- local function handleAbilityStopEventV2(caster)
1094
+ local function handleAbilityStopChannelingEvent(caster)
1046
1095
  local effects = casterChannelingEffectsByCaster[caster]
1047
1096
  if effects ~= nil then
1048
1097
  for i = 1, #effects do
@@ -1053,7 +1102,7 @@ local function handleAbilityStopEventV2(caster)
1053
1102
  end
1054
1103
  for abilityTypeId in pairs(casterChannelingEffectModelPathsByAbilityTypeId) do
1055
1104
  Unit.abilityChannelingStartEvent[abilityTypeId]:addListener(4, handleAbilityChannelingStartEvent)
1056
- Unit.abilityChannelingFinishEvent[abilityTypeId]:addListener(4, handleAbilityStopEventV2)
1057
- Unit.abilityStopEvent[abilityTypeId]:addListener(4, handleAbilityStopEventV2)
1105
+ Unit.abilityChannelingFinishEvent[abilityTypeId]:addListener(4, handleAbilityStopChannelingEvent)
1106
+ Unit.abilityStopEvent[abilityTypeId]:addListener(4, handleAbilityStopChannelingEvent)
1058
1107
  end
1059
1108
  return ____exports
@@ -1,4 +1,3 @@
1
- /// <reference types="warpack-types/warpack" />
2
1
  /** @noSelfInFile */
3
2
  import { BuffPolarity } from "../../auxiliary/buff-polarity";
4
3
  import { BuffResistanceType } from "../../auxiliary/buff-resistance-type";
@@ -10,8 +10,8 @@ local ____exports = {}
10
10
  local preparePhysicalPositiveApplicatorAbility
11
11
  local ____ability_2Dtype = require("engine.object-data.entry.ability-type")
12
12
  local AbilityType = ____ability_2Dtype.AbilityType
13
- local ____cripple = require("engine.object-data.entry.ability-type.cripple")
14
- local CrippleAbilityType = ____cripple.CrippleAbilityType
13
+ local ____curse = require("engine.object-data.entry.ability-type.curse")
14
+ local CurseAbilityType = ____curse.CurseAbilityType
15
15
  local ____searing_2Darrows = require("engine.object-data.entry.ability-type.searing-arrows")
16
16
  local SearingArrowsAbilityType = ____searing_2Darrows.SearingArrowsAbilityType
17
17
  local ____slow_2Dpoison = require("engine.object-data.entry.ability-type.slow-poison")
@@ -30,7 +30,6 @@ local ____arrays = require("utility.arrays")
30
30
  local chunked = ____arrays.chunked
31
31
  local map = ____arrays.map
32
32
  local max = ____arrays.max
33
- local toLuaSet = ____arrays.toLuaSet
34
33
  local ____blood_2Dlust = require("engine.object-data.entry.ability-type.blood-lust")
35
34
  local BloodLustAbilityType = ____blood_2Dlust.BloodLustAbilityType
36
35
  local ____berserk = require("engine.object-data.entry.ability-type.berserk")
@@ -43,22 +42,11 @@ local ____permanent_2Dimmolation = require("engine.object-data.entry.ability-typ
43
42
  local PermanentImmolationAbilityType = ____permanent_2Dimmolation.PermanentImmolationAbilityType
44
43
  local ____cast_2Dability = require("engine.internal.mechanics.cast-ability")
45
44
  local castAbility = ____cast_2Dability.castAbility
46
- local createItem = CreateItem
47
- local getAbilityId = BlzGetAbilityId
48
- local getItemAbility = BlzGetItemAbility
49
- local getOwningPlayer = GetOwningPlayer
50
- local getUnitAbilityByIndex = BlzGetUnitAbilityByIndex
51
- local itemAddAbility = BlzItemAddAbility
52
- local removeItem = RemoveItem
53
45
  local setAbilityIntegerField = BlzSetAbilityIntegerField
54
46
  local setAbilityRealLevelField = BlzSetAbilityRealLevelField
55
- local setItemBooleanField = BlzSetItemBooleanField
56
47
  local setPlayerTechResearched = SetPlayerTechResearched
57
48
  local unitAddAbility = UnitAddAbility
58
- local unitAddItem = UnitAddItem
59
49
  local unitDisableAbility = BlzUnitDisableAbility
60
- local unitDropItemSlot = UnitDropItemSlot
61
- local unitInventorySize = UnitInventorySize
62
50
  local unitRemoveAbility = UnitRemoveAbility
63
51
  local compiletimeApplicableBuffTypes = {}
64
52
  ____exports.ApplicableBuffType = __TS__Class()
@@ -86,7 +74,7 @@ local applicatorAbilityTypeIdByApplicatorTypeByApplicableBuffTypeId, applicatorU
86
74
  abilityType.buttonPositionY = -11
87
75
  abilityType.casterAttachmentPresets = {}
88
76
  abilityType.targetEffectPresets = {}
89
- abilityType.soundPresetName = ""
77
+ abilityType.casterEffectSoundPresetId = nil
90
78
  abilityType.learnLevelMinimum = 6
91
79
  abilityType.race = "other"
92
80
  abilityType.shouldCheckTechTreeDependencies = false
@@ -113,12 +101,10 @@ local applicatorAbilityTypeIdByApplicatorTypeByApplicableBuffTypeId, applicatorU
113
101
  local applicatorAbilityTypeIdByApplicatorType = {}
114
102
  if applicableBuffType.resistanceType == 1 or applicableBuffType.resistanceType == nil then
115
103
  if applicableBuffType.polarity == 2 or applicableBuffType.polarity == nil then
116
- local applicatorAbilityType = prepareAbilityType(CrippleAbilityType, applicableBuffType)
117
- applicatorAbilityType.movementSpeedDecreaseFactor = 0
118
- applicatorAbilityType.attackSpeedDecreaseFactor = 0
119
- applicatorAbilityType.damageDecreaseFactor = 0
104
+ local applicatorAbilityType = prepareAbilityType(CurseAbilityType, applicableBuffType)
105
+ applicatorAbilityType.missProbability = 0
120
106
  applicatorAbilityType.buffTypeIds = {applicableBuffType.id}
121
- applicatorAbilityTypeIdByApplicatorType[852189] = applicatorAbilityType.id
107
+ applicatorAbilityTypeIdByApplicatorType[852190] = applicatorAbilityType.id
122
108
  end
123
109
  if applicableBuffType.polarity == 1 or applicableBuffType.polarity == nil then
124
110
  local applicatorAbilityType = prepareAbilityType(BloodLustAbilityType, applicableBuffType)
@@ -204,15 +190,6 @@ local EVASION_ABILITY_TYPE_IDS = postcompile(function()
204
190
  "AIcs"
205
191
  }, fourCC))
206
192
  end)
207
- local INVENTORY_ABILITY_TYPE_IDS = postcompile(function()
208
- return toLuaSet(AbilityType:getAllIdsByBaseIds(map({
209
- "AInv",
210
- "Aihn",
211
- "Aien",
212
- "Aion",
213
- "Aiun"
214
- }, fourCC)))
215
- end)
216
193
  local SEARING_ARROWS_DUMMY_ABILITY_TYPE_ID = compiletime(function()
217
194
  local abilityType = SearingArrowsAbilityType:create()
218
195
  abilityType.isInternal = true
@@ -244,8 +221,8 @@ Unit.abilityCastingStartEvent[SEARING_ARROWS_DUMMY_ABILITY_TYPE_ID]:addListener(
244
221
  )
245
222
  ---
246
223
  -- @internal For use by internal systems only.
247
- ____exports.internalApplyBuff = function(unit, applicableBuffTypeId, polarity, resistanceType, level, duration, spellStealPriority, learnLevelMinimum, movementSpeedIncreaseFactor)
248
- local applicatorType = polarity == 1 and (resistanceType == 1 and 852101 or 852100) or (polarity == 2 and (resistanceType == 1 and 852189 or 852173) or 0)
224
+ ____exports.internalApplyBuff = function(unit, applicableBuffTypeId, polarity, resistanceType, level, duration, spellStealPriority, learnLevelMinimum, missProbability)
225
+ local applicatorType = polarity == 1 and (resistanceType == 1 and 852101 or 852100) or (polarity == 2 and (resistanceType == 1 and 852190 or 852173) or 0)
249
226
  local ____opt_1 = applicatorAbilityTypeIdByApplicatorTypeByApplicableBuffTypeId[applicableBuffTypeId]
250
227
  local applicatorAbilityTypeId = ____opt_1 and ____opt_1[applicatorType]
251
228
  if applicatorAbilityTypeId == nil then
@@ -267,8 +244,7 @@ ____exports.internalApplyBuff = function(unit, applicableBuffTypeId, polarity, r
267
244
  applicatorAbilityTypeId,
268
245
  preparePhysicalPositiveApplicatorAbility,
269
246
  level,
270
- duration or 0,
271
- movementSpeedIncreaseFactor
247
+ duration or 0
272
248
  )
273
249
  if level ~= nil and level > 0 then
274
250
  local upgradeId = applicatorUpgradeIdByApplicatorAbilityTypeId[applicatorAbilityTypeId]
@@ -298,6 +274,9 @@ ____exports.internalApplyBuff = function(unit, applicableBuffTypeId, polarity, r
298
274
  ability:setField(ABILITY_RLF_DURATION_HERO, level, actualDuration)
299
275
  ability:setField(ABILITY_IF_PRIORITY, spellStealPriority or 0)
300
276
  ability:setField(ABILITY_IF_REQUIRED_LEVEL, learnLevelMinimum or 6)
277
+ if missProbability ~= nil and applicatorType == 852190 then
278
+ ability:setField(ABILITY_RLF_CHANCE_TO_MISS_CRS, missProbability)
279
+ end
301
280
  end,
302
281
  applicatorType,
303
282
  unit
@@ -309,16 +288,13 @@ ____exports.internalApplyBuff = function(unit, applicableBuffTypeId, polarity, r
309
288
  end
310
289
  return success
311
290
  end
312
- preparePhysicalPositiveApplicatorAbility = function(ability, level, duration, movementSpeedIncreaseFactor)
291
+ preparePhysicalPositiveApplicatorAbility = function(ability, level, duration)
313
292
  if level == nil then
314
293
  setAbilityIntegerField(ability, ABILITY_IF_LEVELS, 1)
315
294
  level = 1
316
295
  end
317
296
  setAbilityRealLevelField(ability, ABILITY_RLF_DURATION_NORMAL, level, duration)
318
297
  setAbilityRealLevelField(ability, ABILITY_RLF_DURATION_HERO, level, duration)
319
- if movementSpeedIncreaseFactor ~= nil then
320
- setAbilityRealLevelField(ability, ABILITY_RLF_MOVEMENT_SPEED_INCREASE_BSK1, level, movementSpeedIncreaseFactor)
321
- end
322
298
  end
323
299
  ---
324
300
  -- @internal For use by internal systems only.
@@ -1,4 +1,3 @@
1
- /// <reference types="warpack-types/warpack" />
2
1
  /** @noSelfInFile */
3
2
  import { BuffType, BuffTypeId } from "../buff-type";
4
3
  export declare class BlankBuffType extends BuffType {
@@ -1,4 +1,3 @@
1
- /// <reference types="warpack-types/warpack" />
2
1
  /** @noSelfInFile */
3
2
  import { TupleOf } from "../../../utility/types";
4
3
  import { AttachmentPreset, AttachmentPresetInput } from "../auxiliary/attachment-preset";
@@ -6,7 +5,7 @@ import { Race } from "../auxiliary/race";
6
5
  import { SoundPresetName } from "../auxiliary/sound-preset-name";
7
6
  import { ObjectDataEntry, ObjectDataEntryId } from "../entry";
8
7
  import { LightningTypeId } from "./lightning-type";
9
- export type BuffTypeId = ObjectDataEntryId & {
8
+ export type BuffTypeId = ObjectDataEntryId & number & {
10
9
  readonly __buffTypeId: unique symbol;
11
10
  };
12
11
  export declare abstract class BuffType<Id extends BuffTypeId = BuffTypeId> extends ObjectDataEntry<Id> {
@@ -94,10 +94,10 @@ __TS__SetDescriptor(
94
94
  "lightningTypeIds",
95
95
  {
96
96
  get = function(self)
97
- return self:getObjectDataEntryIdsField("flig")
97
+ return self:getObjectDataEntryNumericIdsField("flig")
98
98
  end,
99
99
  set = function(self, lightningTypeIds)
100
- self:setObjectDataEntryIdsField("flig", lightningTypeIds)
100
+ self:setObjectDataEntryNumericIdsField("flig", lightningTypeIds)
101
101
  end
102
102
  },
103
103
  true
@@ -1,9 +1,8 @@
1
- /// <reference types="warpack-types/warpack" />
2
1
  /** @noSelfInFile */
3
2
  import { ArmorSoundType } from "../auxiliary/armor-sound-type";
4
3
  import { CombatClassifications } from "../auxiliary/combat-classification";
5
4
  import { ObjectDataEntry, ObjectDataEntryId } from "../entry";
6
- export type DestructibleTypeId = ObjectDataEntryId & {
5
+ export type DestructibleTypeId = ObjectDataEntryId & number & {
7
6
  readonly __destructibleTypeId: unique symbol;
8
7
  };
9
8
  export declare abstract class DestructibleType extends ObjectDataEntry<DestructibleTypeId> {
@@ -1,4 +1,3 @@
1
- /// <reference types="warpack-types/warpack" />
2
1
  /** @noSelfInFile */
3
2
  import { ItemType, ItemTypeId } from "../item-type";
4
3
  export declare class BlankItemType extends ItemType {
@@ -1,9 +1,8 @@
1
- /// <reference types="warpack-types/warpack" />
2
1
  /** @noSelfInFile */
3
2
  import { ArmorSoundType } from "../auxiliary/armor-sound-type";
4
3
  import { ObjectDataEntry, ObjectDataEntryId } from "../entry";
5
4
  import type { AbilityTypeId } from "./ability-type";
6
- export type ItemTypeId = ObjectDataEntryId & {
5
+ export type ItemTypeId = ObjectDataEntryId & number & {
7
6
  readonly __itemTypeId: unique symbol;
8
7
  };
9
8
  export declare class ItemType extends ObjectDataEntry<ItemTypeId> {
@@ -46,4 +45,18 @@ export declare class ItemType extends ObjectDataEntry<ItemTypeId> {
46
45
  set tooltipText(tooltipText: string);
47
46
  get tooltipExtendedText(): string;
48
47
  set tooltipExtendedText(tooltipText: string);
48
+ get cooldownGroupId(): number;
49
+ set cooldownGroupId(cooldownGroupId: number);
50
+ get goldCost(): number;
51
+ set goldCost(goldCost: number);
52
+ get lumberCost(): number;
53
+ set lumberCost(lumberCost: number);
54
+ get activelyUsed(): boolean;
55
+ set activelyUsed(activelyUsed: boolean);
56
+ get perishable(): boolean;
57
+ set perishable(perishable: boolean);
58
+ get initialStackSize(): number;
59
+ set initialStackSize(initialStackSize: number);
60
+ get maximumStackSize(): number;
61
+ set maximumStackSize(maximumStackSize: number);
49
62
  }
@@ -27,10 +27,10 @@ __TS__SetDescriptor(
27
27
  "abilityTypeIds",
28
28
  {
29
29
  get = function(self)
30
- return self:getObjectDataEntryIdsField("iabi")
30
+ return self:getObjectDataEntryNumericIdsField("iabi")
31
31
  end,
32
32
  set = function(self, abilityTypeIds)
33
- self:setObjectDataEntryIdsField("iabi", abilityTypeIds)
33
+ self:setObjectDataEntryNumericIdsField("iabi", abilityTypeIds)
34
34
  end
35
35
  },
36
36
  true
@@ -256,4 +256,95 @@ __TS__SetDescriptor(
256
256
  },
257
257
  true
258
258
  )
259
+ __TS__SetDescriptor(
260
+ ItemType.prototype,
261
+ "cooldownGroupId",
262
+ {
263
+ get = function(self)
264
+ return self:getObjectDataEntryNumericIdField("icid")
265
+ end,
266
+ set = function(self, cooldownGroupId)
267
+ self:setObjectDataEntryNumericIdField("icid", cooldownGroupId)
268
+ end
269
+ },
270
+ true
271
+ )
272
+ __TS__SetDescriptor(
273
+ ItemType.prototype,
274
+ "goldCost",
275
+ {
276
+ get = function(self)
277
+ return self:getNumberField("igol")
278
+ end,
279
+ set = function(self, goldCost)
280
+ self:setNumberField("igol", goldCost)
281
+ end
282
+ },
283
+ true
284
+ )
285
+ __TS__SetDescriptor(
286
+ ItemType.prototype,
287
+ "lumberCost",
288
+ {
289
+ get = function(self)
290
+ return self:getNumberField("ilum")
291
+ end,
292
+ set = function(self, lumberCost)
293
+ self:setNumberField("ilum", lumberCost)
294
+ end
295
+ },
296
+ true
297
+ )
298
+ __TS__SetDescriptor(
299
+ ItemType.prototype,
300
+ "activelyUsed",
301
+ {
302
+ get = function(self)
303
+ return self:getBooleanField("iusa")
304
+ end,
305
+ set = function(self, activelyUsed)
306
+ self:setBooleanField("iusa", activelyUsed)
307
+ end
308
+ },
309
+ true
310
+ )
311
+ __TS__SetDescriptor(
312
+ ItemType.prototype,
313
+ "perishable",
314
+ {
315
+ get = function(self)
316
+ return self:getBooleanField("iper")
317
+ end,
318
+ set = function(self, perishable)
319
+ self:setBooleanField("iper", perishable)
320
+ end
321
+ },
322
+ true
323
+ )
324
+ __TS__SetDescriptor(
325
+ ItemType.prototype,
326
+ "initialStackSize",
327
+ {
328
+ get = function(self)
329
+ return self:getNumberField("iuse")
330
+ end,
331
+ set = function(self, initialStackSize)
332
+ self:setNumberField("iuse", initialStackSize)
333
+ end
334
+ },
335
+ true
336
+ )
337
+ __TS__SetDescriptor(
338
+ ItemType.prototype,
339
+ "maximumStackSize",
340
+ {
341
+ get = function(self)
342
+ return self:getNumberField("ista")
343
+ end,
344
+ set = function(self, maximumStackSize)
345
+ self:setNumberField("ista", maximumStackSize)
346
+ end
347
+ },
348
+ true
349
+ )
259
350
  return ____exports
@@ -1,8 +1,7 @@
1
- /// <reference types="warpack-types/warpack" />
2
1
  /** @noSelfInFile */
3
2
  import { ObjectDataEntry, ObjectDataEntryConstructor, ObjectDataEntryId } from "../entry";
4
3
  import { Color } from "../../../core/types/color";
5
- export type LightningTypeId = ObjectDataEntryId & {
4
+ export type LightningTypeId = ObjectDataEntryId & number & {
6
5
  readonly __lightningTypeId: unique symbol;
7
6
  };
8
7
  export type StandardLightningTypeId = LightningTypeId & {
@@ -0,0 +1,33 @@
1
+ /** @noSelfInFile */
2
+ import { ObjectDataEntry, ObjectDataEntryId } from "../entry";
3
+ import { SoundEax } from "../auxiliary/sound-eax";
4
+ export type SoundPresetId = ObjectDataEntryId & string & {
5
+ readonly __soundPresetId: unique symbol;
6
+ };
7
+ export type StandardSoundPresetId = SoundPresetId & {
8
+ readonly __standardSoundPresetId: unique symbol;
9
+ };
10
+ export declare class SoundPreset extends ObjectDataEntry<SoundPresetId> {
11
+ static readonly BASE_ID: SoundPresetId;
12
+ private static nextId;
13
+ protected static generateId(): string;
14
+ protected static getObjectData(map: WarMap): WarObjects;
15
+ get filePaths(): string[];
16
+ set filePaths(filePaths: string[]);
17
+ get volume(): number;
18
+ set volume(volume: number);
19
+ get pitch(): number;
20
+ set pitch(pitch: number);
21
+ get priority(): number;
22
+ set priority(priority: number);
23
+ get channel(): number;
24
+ set channel(channel: number);
25
+ get minimumDistance(): number;
26
+ set minimumDistance(minimumDistance: number);
27
+ get maximumDistance(): number;
28
+ set maximumDistance(maximumDistance: number);
29
+ get distanceCutoff(): number;
30
+ set distanceCutoff(distanceCutoff: number);
31
+ get eax(): SoundEax;
32
+ set eax(eax: SoundEax);
33
+ }