warscript 0.0.1-dev.9048d45 → 0.0.1-dev.90f1d49

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 (82) hide show
  1. package/attributes.d.ts +7 -0
  2. package/attributes.lua +8 -1
  3. package/core/types/effect.d.ts +1 -3
  4. package/core/types/effect.lua +26 -29
  5. package/core/types/sound.d.ts +17 -25
  6. package/core/types/sound.lua +85 -44
  7. package/core/types/timer.d.ts +6 -7
  8. package/core/types/timer.lua +18 -21
  9. package/decl/native.d.ts +840 -786
  10. package/engine/behaviour/ability/apply-unit-behavior.lua +1 -0
  11. package/engine/behaviour/ability/damage.d.ts +9 -3
  12. package/engine/behaviour/ability/damage.lua +26 -38
  13. package/engine/behaviour/ability/emulate-impact.lua +7 -0
  14. package/engine/behaviour/ability.d.ts +5 -1
  15. package/engine/behaviour/ability.lua +18 -4
  16. package/engine/behaviour/unit.d.ts +2 -0
  17. package/engine/buff.d.ts +13 -8
  18. package/engine/buff.lua +81 -50
  19. package/engine/internal/item.d.ts +2 -1
  20. package/engine/internal/mechanics/ability-duration.lua +1 -1
  21. package/engine/internal/misc/damage-metadata-by-target.d.ts +2 -0
  22. package/engine/internal/misc/damage-metadata-by-target.lua +5 -0
  23. package/engine/internal/unit+damage.d.ts +2 -11
  24. package/engine/internal/unit+damage.lua +10 -14
  25. package/engine/internal/unit+spellSteal.lua +1 -2
  26. package/engine/internal/unit.d.ts +18 -3
  27. package/engine/internal/unit.lua +94 -33
  28. package/engine/object-data/auxiliary/attachment-preset.d.ts +7 -2
  29. package/engine/object-data/auxiliary/attachment-preset.lua +4 -3
  30. package/engine/object-data/auxiliary/attack-type.d.ts +7 -8
  31. package/engine/object-data/auxiliary/attack-type.lua +42 -0
  32. package/engine/object-data/auxiliary/movement-type.d.ts +7 -7
  33. package/engine/object-data/auxiliary/movement-type.lua +22 -0
  34. package/engine/object-data/auxiliary/sound-eax.d.ts +10 -0
  35. package/engine/object-data/auxiliary/sound-eax.lua +2 -0
  36. package/engine/object-data/auxiliary/unit-attribute.d.ts +6 -0
  37. package/engine/object-data/auxiliary/unit-attribute.lua +9 -0
  38. package/engine/object-data/entry/ability-type/berserk.d.ts +2 -0
  39. package/engine/object-data/entry/ability-type/berserk.lua +13 -0
  40. package/engine/object-data/entry/ability-type/carrion-swarm.d.ts +14 -0
  41. package/engine/object-data/entry/ability-type/carrion-swarm.lua +65 -0
  42. package/engine/object-data/entry/ability-type/curse.lua +2 -2
  43. package/engine/object-data/entry/ability-type/ensnare.d.ts +12 -0
  44. package/engine/object-data/entry/ability-type/ensnare.lua +52 -0
  45. package/engine/object-data/entry/ability-type/phase-shift.d.ts +10 -0
  46. package/engine/object-data/entry/ability-type/phase-shift.lua +39 -0
  47. package/engine/object-data/entry/ability-type/raise-dead.d.ts +17 -0
  48. package/engine/object-data/entry/ability-type/raise-dead.lua +78 -0
  49. package/engine/object-data/entry/ability-type/shock-wave.d.ts +4 -0
  50. package/engine/object-data/entry/ability-type/shock-wave.lua +26 -0
  51. package/engine/object-data/entry/ability-type/slow-poison.d.ts +10 -0
  52. package/engine/object-data/entry/ability-type/slow-poison.lua +58 -0
  53. package/engine/object-data/entry/ability-type/web.d.ts +12 -0
  54. package/engine/object-data/entry/ability-type/web.lua +52 -0
  55. package/engine/object-data/entry/ability-type.d.ts +11 -11
  56. package/engine/object-data/entry/ability-type.lua +31 -10
  57. package/engine/object-data/entry/buff-type/applicable.lua +5 -0
  58. package/engine/object-data/entry/buff-type.d.ts +5 -11
  59. package/engine/object-data/entry/buff-type.lua +11 -27
  60. package/engine/object-data/entry/sound-preset.d.ts +17 -0
  61. package/engine/object-data/entry/sound-preset.lua +104 -0
  62. package/engine/object-data/entry/unit-type.d.ts +2 -2
  63. package/engine/object-data/entry/unit-type.lua +94 -84
  64. package/engine/object-field/ability.d.ts +1 -1
  65. package/engine/object-field/unit.d.ts +46 -3
  66. package/engine/object-field/unit.lua +173 -7
  67. package/engine/object-field.d.ts +9 -1
  68. package/engine/object-field.lua +158 -76
  69. package/engine/standard/entries/buff-type.d.ts +3 -0
  70. package/engine/standard/entries/buff-type.lua +3 -0
  71. package/objutil/buff.lua +1 -2
  72. package/package.json +2 -2
  73. package/utility/arrays.d.ts +1 -0
  74. package/utility/arrays.lua +3 -0
  75. package/utility/functions.d.ts +1 -0
  76. package/utility/functions.lua +1 -0
  77. package/utility/linked-set.d.ts +1 -0
  78. package/utility/linked-set.lua +3 -0
  79. package/utility/lua-maps.d.ts +3 -0
  80. package/utility/lua-maps.lua +16 -0
  81. package/utility/lua-sets.d.ts +1 -0
  82. package/utility/lua-sets.lua +3 -0
@@ -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
@@ -35,8 +35,9 @@ local abilityTypeIdGenerator = ____object_2Ddata_2Dentry_2Did_2Dgenerator.abilit
35
35
  local ____upgrade = require("engine.object-data.entry.upgrade")
36
36
  local Upgrade = ____upgrade.Upgrade
37
37
  local ____sound = require("core.types.sound")
38
+ local isSoundLabelCustom = ____sound.isSoundLabelCustom
38
39
  local Sound3D = ____sound.Sound3D
39
- local SoundPreset = ____sound.SoundPreset
40
+ local SoundSettings = ____sound.SoundSettings
40
41
  local castAnimationFQNByAbilityTypeId = {}
41
42
  local isButtonVisibleFalseAbilityTypes = {}
42
43
  local casterCastingEffectPresetsByAbilityTypeId = {}
@@ -118,7 +119,7 @@ __TS__SetDescriptor(
118
119
  return casterCastingEffectPresetsByAbilityTypeId[self.id] or ({})
119
120
  end,
120
121
  set = function(self, casterCastingEffectPresets)
121
- casterCastingEffectPresetsByAbilityTypeId[self.id] = map(casterCastingEffectPresets, toAttachmentPreset)
122
+ casterCastingEffectPresetsByAbilityTypeId[self.id] = map(casterCastingEffectPresets, toEffectPreset)
122
123
  end
123
124
  },
124
125
  true
@@ -131,7 +132,7 @@ __TS__SetDescriptor(
131
132
  return casterChannelingEffectPresetsByAbilityTypeId[self.id] or ({})
132
133
  end,
133
134
  set = function(self, casterChannelingEffectPresets)
134
- casterChannelingEffectPresetsByAbilityTypeId[self.id] = map(casterChannelingEffectPresets, toAttachmentPreset)
135
+ casterChannelingEffectPresetsByAbilityTypeId[self.id] = map(casterChannelingEffectPresets, toEffectPreset)
135
136
  end
136
137
  },
137
138
  true
@@ -370,7 +371,7 @@ __TS__SetDescriptor(
370
371
  return targetCastingEffectPresetsByAbilityTypeId[self.id] or ({})
371
372
  end,
372
373
  set = function(self, targetCastingEffectPresets)
373
- targetCastingEffectPresetsByAbilityTypeId[self.id] = map(targetCastingEffectPresets, toAttachmentPreset)
374
+ targetCastingEffectPresetsByAbilityTypeId[self.id] = map(targetCastingEffectPresets, toEffectPreset)
374
375
  end
375
376
  },
376
377
  true
@@ -991,20 +992,26 @@ for abilityTypeId, soundPresetId in pairs(postcompile(function() return targetEf
991
992
  4,
992
993
  function(caster, ability, target)
993
994
  if __TS__InstanceOf(target, Unit) then
994
- Sound3D:playFromLabel(soundPresetId, SoundPreset.Ability, target)
995
+ Sound3D:playFromLabel(soundPresetId, SoundSettings.Ability, target)
995
996
  else
996
- Sound3D:playFromLabel(soundPresetId, SoundPreset.Ability, target.x, target.y)
997
+ Sound3D:playFromLabel(soundPresetId, SoundSettings.Ability, target.x, target.y)
997
998
  end
998
999
  end
999
1000
  )
1000
1001
  Unit.abilityPointTargetChannelingStartEvent[abilityTypeId]:addListener(
1001
1002
  4,
1002
1003
  function(caster, ability, x, y)
1003
- Sound3D:playFromLabel(soundPresetId, SoundPreset.Ability, x, y)
1004
+ Sound3D:playFromLabel(soundPresetId, SoundSettings.Ability, x, y)
1004
1005
  end
1005
1006
  )
1006
1007
  end
1007
1008
  end
1009
+ Unit.abilityChannelingStartEvent:addListener(function(caster, ability)
1010
+ local soundPresetId = ability:getField(ABILITY_SF_EFFECT_SOUND)
1011
+ if isSoundLabelCustom(soundPresetId) then
1012
+ Sound3D:playFromLabel(soundPresetId, SoundSettings.Ability, caster)
1013
+ end
1014
+ end)
1008
1015
  local casterCastingEffectModelPathsByAbilityTypeId = postcompile(function()
1009
1016
  return mapValues(
1010
1017
  casterCastingEffectPresetsByAbilityTypeId,
@@ -1017,10 +1024,17 @@ local casterCastingEffectAttachmentPointsByAbilityTypeId = postcompile(function(
1017
1024
  function(casterCastingEffectPresets) return map(casterCastingEffectPresets, extractAttachmentPresetInputNodeFQN) end
1018
1025
  )
1019
1026
  end)
1027
+ local casterCastingEffectParametersByAbilityTypeId = postcompile(function()
1028
+ return mapValues(
1029
+ casterCastingEffectPresetsByAbilityTypeId,
1030
+ function(casterCastingEffectPresets) return map(casterCastingEffectPresets, "parameters") end
1031
+ )
1032
+ end)
1020
1033
  local casterCastingEffectsByCaster = {}
1021
1034
  local function handleAbilityCastingStartEvent(caster, ability)
1022
1035
  local effectModelPaths = casterCastingEffectModelPathsByAbilityTypeId[ability.typeId]
1023
1036
  local attachmentPoints = casterCastingEffectAttachmentPointsByAbilityTypeId[ability.typeId]
1037
+ local parameters = casterCastingEffectParametersByAbilityTypeId[ability.typeId]
1024
1038
  local effects = {}
1025
1039
  if effectModelPaths ~= nil then
1026
1040
  for i = 1, #effectModelPaths do
@@ -1029,7 +1043,7 @@ local function handleAbilityCastingStartEvent(caster, ability)
1029
1043
  if attachmentPoint == nil or attachmentPoint == "" then
1030
1044
  attachmentPoint = "origin"
1031
1045
  end
1032
- effects[i] = Effect:createTarget(effectModelPath, caster, attachmentPoint)
1046
+ effects[i] = Effect:create(effectModelPath, caster, attachmentPoint, parameters and parameters[i])
1033
1047
  end
1034
1048
  end
1035
1049
  casterCastingEffectsByCaster[caster] = effects
@@ -1060,10 +1074,17 @@ local casterChannelingEffectAttachmentPointsByAbilityTypeId = postcompile(functi
1060
1074
  function(casterChannelingEffectPresets) return map(casterChannelingEffectPresets, extractAttachmentPresetInputNodeFQN) end
1061
1075
  )
1062
1076
  end)
1077
+ local casterChannelingEffectParametersByAbilityTypeId = postcompile(function()
1078
+ return mapValues(
1079
+ casterChannelingEffectPresetsByAbilityTypeId,
1080
+ function(casterChannelingEffectPresets) return map(casterChannelingEffectPresets, "parameters") end
1081
+ )
1082
+ end)
1063
1083
  local casterChannelingEffectsByCaster = {}
1064
1084
  local function handleAbilityChannelingStartEvent(caster, ability)
1065
1085
  local effectModelPaths = casterChannelingEffectModelPathsByAbilityTypeId[ability.typeId]
1066
1086
  local attachmentPoints = casterChannelingEffectAttachmentPointsByAbilityTypeId[ability.typeId]
1087
+ local parameters = casterChannelingEffectParametersByAbilityTypeId[ability.typeId]
1067
1088
  local effects = {}
1068
1089
  if effectModelPaths ~= nil then
1069
1090
  for i = 1, #effectModelPaths do
@@ -1072,7 +1093,7 @@ local function handleAbilityChannelingStartEvent(caster, ability)
1072
1093
  if attachmentPoint == nil or attachmentPoint == "" then
1073
1094
  attachmentPoint = "origin"
1074
1095
  end
1075
- effects[i] = Effect:createTarget(effectModelPath, caster, attachmentPoint)
1096
+ effects[i] = Effect:create(effectModelPath, caster, attachmentPoint, parameters and parameters[i])
1076
1097
  end
1077
1098
  end
1078
1099
  casterChannelingEffectsByCaster[caster] = effects
@@ -121,6 +121,10 @@ local applicatorAbilityTypeIdByApplicatorTypeByApplicableBuffTypeId, applicatorU
121
121
  applicatorAbilityType.damagePerSecond = 0
122
122
  applicatorAbilityType.movementSpeedDecreaseFactor = 0
123
123
  applicatorAbilityType.attackSpeedDecreaseFactor = 0
124
+ applicatorAbilityType.isDamageStacking = false
125
+ applicatorAbilityType.isMovementSpeedFactorStacking = false
126
+ applicatorAbilityType.isAttackSpeedFactorStacking = false
127
+ applicatorAbilityType.isAbleToKill = false
124
128
  applicatorAbilityType.buffTypeIds = {applicableBuffType.id, applicableBuffType.id}
125
129
  applicatorAbilityTypeIdByApplicatorType[852173] = applicatorAbilityType.id
126
130
  end
@@ -128,6 +132,7 @@ local applicatorAbilityTypeIdByApplicatorTypeByApplicableBuffTypeId, applicatorU
128
132
  local applicatorAbilityType = prepareAbilityType(BerserkAbilityType, applicableBuffType)
129
133
  applicatorAbilityType.attackSpeedIncreaseFactor = 0
130
134
  applicatorAbilityType.movementSpeedIncreaseFactor = 0
135
+ applicatorAbilityType.receivedDamageIncreaseFactor = 0
131
136
  applicatorAbilityType.buffTypeIds = {applicableBuffType.id}
132
137
  if applicatorAbilityType.levelCount > 1 then
133
138
  multilevelPhysicalPositiveApplicatorAbilityTypes[#multilevelPhysicalPositiveApplicatorAbilityTypes + 1] = applicatorAbilityType
@@ -3,12 +3,16 @@ import { TupleOf } from "../../../utility/types";
3
3
  import { AttachmentPreset, AttachmentPresetInput } from "../auxiliary/attachment-preset";
4
4
  import { Race } from "../auxiliary/race";
5
5
  import { SoundPresetName } from "../auxiliary/sound-preset-name";
6
- import { ObjectDataEntry, ObjectDataEntryId } from "../entry";
6
+ import { ObjectDataEntry, ObjectDataEntryConstructor, ObjectDataEntryId } from "../entry";
7
7
  import { LightningTypeId } from "./lightning-type";
8
8
  export type BuffTypeId = ObjectDataEntryId & number & {
9
9
  readonly __buffTypeId: unique symbol;
10
10
  };
11
+ export type StandardBuffTypeId = BuffTypeId & {
12
+ readonly __standardBuffTypeId: unique symbol;
13
+ };
11
14
  export declare abstract class BuffType<Id extends BuffTypeId = BuffTypeId> extends ObjectDataEntry<Id> {
15
+ static readonly [id: StandardBuffTypeId]: ObjectDataEntryConstructor<BuffType>;
12
16
  private static readonly idGenerator;
13
17
  protected static generateId(): number;
14
18
  protected static getObjectData(map: WarMap): WarObjects;
@@ -51,13 +55,3 @@ export declare abstract class BuffType<Id extends BuffTypeId = BuffTypeId> exten
51
55
  get tooltipExtendedText(): string;
52
56
  set tooltipExtendedText(tooltipText: string);
53
57
  }
54
- declare const AvatarBuffType_base: typeof BuffType;
55
- export declare class AvatarBuffType extends AvatarBuffType_base {
56
- }
57
- declare const DevotionAuraBuffType_base: typeof BuffType;
58
- export declare class DevotionAuraBuffType extends DevotionAuraBuffType_base {
59
- }
60
- declare const DivineShieldBuffType_base: typeof BuffType;
61
- export declare class DivineShieldBuffType extends DivineShieldBuffType_base {
62
- }
63
- export {};
@@ -6,6 +6,8 @@ local __TS__SetDescriptor = ____lualib.__TS__SetDescriptor
6
6
  local ____exports = {}
7
7
  local ____arrays = require("utility.arrays")
8
8
  local array = ____arrays.array
9
+ local ____reflection = require("utility.reflection")
10
+ local implementReadonlyNumberIndexSupplier = ____reflection.implementReadonlyNumberIndexSupplier
9
11
  local ____entry = require("engine.object-data.entry")
10
12
  local ObjectDataEntry = ____entry.ObjectDataEntry
11
13
  local ____object_2Ddata_2Dentry_2Did_2Dgenerator = require("engine.object-data.utility.object-data-entry-id-generator")
@@ -285,32 +287,14 @@ __TS__SetDescriptor(
285
287
  },
286
288
  true
287
289
  )
288
- local function makeBaseBuffType(id)
289
- local BaseBuffType = __TS__Class()
290
- BaseBuffType.name = "BaseBuffType"
291
- __TS__ClassExtends(BaseBuffType, ____exports.BuffType)
292
- BaseBuffType.BASE_ID = id
293
- return BaseBuffType
294
- end
295
- ____exports.AvatarBuffType = __TS__Class()
296
- local AvatarBuffType = ____exports.AvatarBuffType
297
- AvatarBuffType.name = "AvatarBuffType"
298
- __TS__ClassExtends(
299
- AvatarBuffType,
300
- makeBaseBuffType(fourCC("BHav"))
301
- )
302
- ____exports.DevotionAuraBuffType = __TS__Class()
303
- local DevotionAuraBuffType = ____exports.DevotionAuraBuffType
304
- DevotionAuraBuffType.name = "DevotionAuraBuffType"
305
- __TS__ClassExtends(
306
- DevotionAuraBuffType,
307
- makeBaseBuffType(fourCC("BHad"))
308
- )
309
- ____exports.DivineShieldBuffType = __TS__Class()
310
- local DivineShieldBuffType = ____exports.DivineShieldBuffType
311
- DivineShieldBuffType.name = "DivineShieldBuffType"
312
- __TS__ClassExtends(
313
- DivineShieldBuffType,
314
- makeBaseBuffType(fourCC("BHds"))
290
+ implementReadonlyNumberIndexSupplier(
291
+ ____exports.BuffType,
292
+ function(id)
293
+ local ____class_0 = __TS__Class()
294
+ ____class_0.name = ____class_0.name
295
+ __TS__ClassExtends(____class_0, ____exports.BuffType)
296
+ ____class_0.BASE_ID = id
297
+ return ____class_0
298
+ end
315
299
  )
316
300
  return ____exports
@@ -1,5 +1,6 @@
1
1
  /** @noSelfInFile */
2
2
  import { ObjectDataEntry, ObjectDataEntryId } from "../entry";
3
+ import { SoundEax } from "../auxiliary/sound-eax";
3
4
  export type SoundPresetId = ObjectDataEntryId & string & {
4
5
  readonly __soundPresetId: unique symbol;
5
6
  };
@@ -13,4 +14,20 @@ export declare class SoundPreset extends ObjectDataEntry<SoundPresetId> {
13
14
  protected static getObjectData(map: WarMap): WarObjects;
14
15
  get filePaths(): string[];
15
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);
16
33
  }
@@ -33,4 +33,108 @@ __TS__SetDescriptor(
33
33
  },
34
34
  true
35
35
  )
36
+ __TS__SetDescriptor(
37
+ SoundPreset.prototype,
38
+ "volume",
39
+ {
40
+ get = function(self)
41
+ return self:getNumberField("Volume")
42
+ end,
43
+ set = function(self, volume)
44
+ self:setNumberField("Volume", volume)
45
+ end
46
+ },
47
+ true
48
+ )
49
+ __TS__SetDescriptor(
50
+ SoundPreset.prototype,
51
+ "pitch",
52
+ {
53
+ get = function(self)
54
+ return self:getNumberField("Pitch")
55
+ end,
56
+ set = function(self, pitch)
57
+ self:setNumberField("Pitch", pitch)
58
+ end
59
+ },
60
+ true
61
+ )
62
+ __TS__SetDescriptor(
63
+ SoundPreset.prototype,
64
+ "priority",
65
+ {
66
+ get = function(self)
67
+ return self:getNumberField("Priority")
68
+ end,
69
+ set = function(self, priority)
70
+ self:setNumberField("Priority", priority)
71
+ end
72
+ },
73
+ true
74
+ )
75
+ __TS__SetDescriptor(
76
+ SoundPreset.prototype,
77
+ "channel",
78
+ {
79
+ get = function(self)
80
+ return self:getNumberField("Channel")
81
+ end,
82
+ set = function(self, channel)
83
+ self:setNumberField("Channel", channel)
84
+ end
85
+ },
86
+ true
87
+ )
88
+ __TS__SetDescriptor(
89
+ SoundPreset.prototype,
90
+ "minimumDistance",
91
+ {
92
+ get = function(self)
93
+ return self:getNumberField("MinDistance")
94
+ end,
95
+ set = function(self, minimumDistance)
96
+ self:setNumberField("MinDistance", minimumDistance)
97
+ end
98
+ },
99
+ true
100
+ )
101
+ __TS__SetDescriptor(
102
+ SoundPreset.prototype,
103
+ "maximumDistance",
104
+ {
105
+ get = function(self)
106
+ return self:getNumberField("MaxDistance")
107
+ end,
108
+ set = function(self, maximumDistance)
109
+ self:setNumberField("MaxDistance", maximumDistance)
110
+ end
111
+ },
112
+ true
113
+ )
114
+ __TS__SetDescriptor(
115
+ SoundPreset.prototype,
116
+ "distanceCutoff",
117
+ {
118
+ get = function(self)
119
+ return self:getNumberField("DistanceCutoff")
120
+ end,
121
+ set = function(self, distanceCutoff)
122
+ self:setNumberField("DistanceCutoff", distanceCutoff)
123
+ end
124
+ },
125
+ true
126
+ )
127
+ __TS__SetDescriptor(
128
+ SoundPreset.prototype,
129
+ "eax",
130
+ {
131
+ get = function(self)
132
+ return self:getStringField("EAXFlags")
133
+ end,
134
+ set = function(self, eax)
135
+ self:setStringField("EAXFlags", eax)
136
+ end
137
+ },
138
+ true
139
+ )
36
140
  return ____exports
@@ -23,8 +23,8 @@ export declare class UnitTypeWeapon {
23
23
  private readonly unitType;
24
24
  private readonly index;
25
25
  private constructor();
26
- get attackType(): AttackType;
27
- set attackType(attackType: AttackType);
26
+ get attackType(): AttackType | undefined;
27
+ set attackType(attackType: AttackType | undefined);
28
28
  get backSwingDuration(): number;
29
29
  set backSwingDuration(backSwingDuration: number);
30
30
  get cooldown(): number;