warscript 0.0.1-dev.d842bb6 → 0.0.1-dev.da5fb2e

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 (153) hide show
  1. package/attributes.d.ts +5 -0
  2. package/attributes.lua +8 -1
  3. package/config.d.ts +5 -0
  4. package/config.lua +10 -0
  5. package/core/types/effect.d.ts +1 -3
  6. package/core/types/effect.lua +26 -29
  7. package/core/types/frame.lua +10 -12
  8. package/core/types/player.lua +3 -1
  9. package/core/types/playerCamera.d.ts +2 -0
  10. package/core/types/playerCamera.lua +79 -5
  11. package/core/types/sound.d.ts +17 -25
  12. package/core/types/sound.lua +91 -46
  13. package/core/types/timer.d.ts +8 -8
  14. package/core/types/timer.lua +39 -23
  15. package/core/util.lua +6 -1
  16. package/decl/native.d.ts +844 -788
  17. package/engine/behavior.d.ts +5 -0
  18. package/engine/behavior.lua +106 -27
  19. package/engine/behaviour/ability/apply-buff.lua +1 -1
  20. package/engine/behaviour/ability/apply-unit-behavior.lua +1 -0
  21. package/engine/behaviour/ability/damage.d.ts +9 -3
  22. package/engine/behaviour/ability/damage.lua +26 -38
  23. package/engine/behaviour/ability/emulate-impact.d.ts +1 -1
  24. package/engine/behaviour/ability/emulate-impact.lua +18 -3
  25. package/engine/behaviour/ability/restore-mana.d.ts +1 -1
  26. package/engine/behaviour/ability/restore-mana.lua +6 -6
  27. package/engine/behaviour/ability.d.ts +5 -1
  28. package/engine/behaviour/ability.lua +26 -21
  29. package/engine/behaviour/unit/stun-immunity.d.ts +5 -3
  30. package/engine/behaviour/unit/stun-immunity.lua +43 -27
  31. package/engine/behaviour/unit.d.ts +32 -0
  32. package/engine/behaviour/unit.lua +185 -4
  33. package/engine/buff.d.ts +15 -12
  34. package/engine/buff.lua +133 -117
  35. package/engine/internal/ability.d.ts +7 -1
  36. package/engine/internal/ability.lua +48 -9
  37. package/engine/internal/item/ability.lua +63 -11
  38. package/engine/internal/item+owner.lua +12 -6
  39. package/engine/internal/item.d.ts +5 -2
  40. package/engine/internal/item.lua +85 -10
  41. package/engine/internal/mechanics/ability-duration.lua +1 -1
  42. package/engine/internal/misc/damage-metadata-by-target.d.ts +2 -0
  43. package/engine/internal/misc/damage-metadata-by-target.lua +5 -0
  44. package/engine/internal/misc/frame-coordinates.d.ts +2 -0
  45. package/engine/internal/misc/frame-coordinates.lua +21 -0
  46. package/engine/internal/misc/get-terrain-z.d.ts +2 -0
  47. package/engine/internal/misc/get-terrain-z.lua +11 -0
  48. package/engine/internal/misc/player-local-handle.d.ts +2 -0
  49. package/engine/internal/misc/player-local-handle.lua +5 -0
  50. package/engine/internal/unit/ability.d.ts +35 -0
  51. package/engine/internal/unit/ability.lua +62 -0
  52. package/engine/internal/unit/allowed-targets.d.ts +1 -1
  53. package/engine/internal/unit/allowed-targets.lua +9 -1
  54. package/engine/internal/unit/order.d.ts +20 -0
  55. package/engine/internal/unit/order.lua +136 -0
  56. package/engine/internal/unit+ability.lua +10 -1
  57. package/engine/internal/unit+damage.d.ts +2 -11
  58. package/engine/internal/unit+damage.lua +10 -14
  59. package/engine/internal/unit+spellSteal.lua +1 -2
  60. package/engine/internal/unit-missile-launch.lua +9 -2
  61. package/engine/internal/unit.d.ts +30 -8
  62. package/engine/internal/unit.lua +253 -107
  63. package/engine/object-data/auxiliary/armor-type.d.ts +11 -0
  64. package/engine/object-data/auxiliary/armor-type.lua +46 -0
  65. package/engine/object-data/auxiliary/attachment-preset.d.ts +7 -2
  66. package/engine/object-data/auxiliary/attachment-preset.lua +4 -3
  67. package/engine/object-data/auxiliary/attack-type.d.ts +7 -8
  68. package/engine/object-data/auxiliary/attack-type.lua +42 -0
  69. package/engine/object-data/auxiliary/movement-type.d.ts +7 -7
  70. package/engine/object-data/auxiliary/movement-type.lua +22 -0
  71. package/engine/object-data/auxiliary/sound-eax.d.ts +10 -0
  72. package/engine/object-data/auxiliary/sound-eax.lua +2 -0
  73. package/engine/object-data/auxiliary/tech-tree-dependency.d.ts +1 -1
  74. package/engine/object-data/auxiliary/unit-attribute.d.ts +6 -0
  75. package/engine/object-data/auxiliary/unit-attribute.lua +9 -0
  76. package/engine/object-data/entry/ability-type/berserk.d.ts +2 -0
  77. package/engine/object-data/entry/ability-type/berserk.lua +13 -0
  78. package/engine/object-data/entry/ability-type/blank-configurable.lua +0 -9
  79. package/engine/object-data/entry/ability-type/carrion-swarm.d.ts +14 -0
  80. package/engine/object-data/entry/ability-type/carrion-swarm.lua +65 -0
  81. package/engine/object-data/entry/ability-type/curse.lua +2 -2
  82. package/engine/object-data/entry/ability-type/disease-cloud.lua +2 -2
  83. package/engine/object-data/entry/ability-type/engineering-upgrade.lua +2 -2
  84. package/engine/object-data/entry/ability-type/ensnare.d.ts +12 -0
  85. package/engine/object-data/entry/ability-type/ensnare.lua +52 -0
  86. package/engine/object-data/entry/ability-type/feral-spirit.lua +2 -2
  87. package/engine/object-data/entry/ability-type/permanent-invisibility.d.ts +8 -0
  88. package/engine/object-data/entry/ability-type/permanent-invisibility.lua +26 -0
  89. package/engine/object-data/entry/ability-type/phase-shift.d.ts +10 -0
  90. package/engine/object-data/entry/ability-type/phase-shift.lua +39 -0
  91. package/engine/object-data/entry/ability-type/phoenix-morph.lua +4 -4
  92. package/engine/object-data/entry/ability-type/raise-dead.d.ts +17 -0
  93. package/engine/object-data/entry/ability-type/raise-dead.lua +78 -0
  94. package/engine/object-data/entry/ability-type/shock-wave.d.ts +4 -0
  95. package/engine/object-data/entry/ability-type/shock-wave.lua +26 -0
  96. package/engine/object-data/entry/ability-type/slow-poison.d.ts +10 -0
  97. package/engine/object-data/entry/ability-type/slow-poison.lua +58 -0
  98. package/engine/object-data/entry/ability-type/summon-quilbeast.lua +2 -2
  99. package/engine/object-data/entry/ability-type/summon-water-elemental.lua +2 -2
  100. package/engine/object-data/entry/ability-type/web.d.ts +12 -0
  101. package/engine/object-data/entry/ability-type/web.lua +52 -0
  102. package/engine/object-data/entry/ability-type.d.ts +19 -17
  103. package/engine/object-data/entry/ability-type.lua +82 -24
  104. package/engine/object-data/entry/buff-type/applicable.lua +9 -4
  105. package/engine/object-data/entry/buff-type.d.ts +6 -12
  106. package/engine/object-data/entry/buff-type.lua +13 -29
  107. package/engine/object-data/entry/destructible-type.d.ts +1 -1
  108. package/engine/object-data/entry/item-type.d.ts +1 -1
  109. package/engine/object-data/entry/item-type.lua +4 -4
  110. package/engine/object-data/entry/lightning-type.d.ts +1 -1
  111. package/engine/object-data/entry/sound-preset.d.ts +33 -0
  112. package/engine/object-data/entry/sound-preset.lua +140 -0
  113. package/engine/object-data/entry/unit-type.d.ts +21 -5
  114. package/engine/object-data/entry/unit-type.lua +214 -93
  115. package/engine/object-data/entry/upgrade.d.ts +1 -1
  116. package/engine/object-data/entry/upgrade.lua +4 -4
  117. package/engine/object-data/entry.d.ts +16 -14
  118. package/engine/object-data/entry.lua +60 -32
  119. package/engine/object-field/ability.d.ts +4 -4
  120. package/engine/object-field/ability.lua +7 -6
  121. package/engine/object-field/unit.d.ts +57 -3
  122. package/engine/object-field/unit.lua +207 -7
  123. package/engine/object-field.d.ts +17 -6
  124. package/engine/object-field.lua +188 -92
  125. package/engine/standard/entries/buff-type.d.ts +3 -0
  126. package/engine/standard/entries/buff-type.lua +3 -0
  127. package/engine/standard/entries/sound-preset.d.ts +10 -0
  128. package/engine/standard/entries/sound-preset.lua +10 -0
  129. package/engine/standard/fields/unit.d.ts +4 -0
  130. package/engine/standard/fields/unit.lua +7 -0
  131. package/engine/text-tag.d.ts +36 -2
  132. package/engine/text-tag.lua +249 -10
  133. package/engine/unit.d.ts +1 -0
  134. package/engine/unit.lua +1 -0
  135. package/objutil/buff.lua +1 -2
  136. package/objutil/unit.lua +8 -0
  137. package/package.json +2 -2
  138. package/patch-lualib.lua +1 -1
  139. package/utility/arrays.d.ts +1 -0
  140. package/utility/arrays.lua +3 -0
  141. package/utility/callback-array.d.ts +13 -0
  142. package/utility/callback-array.lua +46 -0
  143. package/utility/functions.d.ts +8 -0
  144. package/utility/functions.lua +13 -0
  145. package/utility/linked-set.d.ts +1 -0
  146. package/utility/linked-set.lua +3 -0
  147. package/utility/lua-maps.d.ts +4 -0
  148. package/utility/lua-maps.lua +20 -0
  149. package/utility/lua-sets.d.ts +2 -0
  150. package/utility/lua-sets.lua +7 -0
  151. package/utility/reflection.lua +11 -7
  152. package/core/types/order.d.ts +0 -25
  153. package/core/types/order.lua +0 -55
@@ -74,7 +74,7 @@ local applicatorAbilityTypeIdByApplicatorTypeByApplicableBuffTypeId, applicatorU
74
74
  abilityType.buttonPositionY = -11
75
75
  abilityType.casterAttachmentPresets = {}
76
76
  abilityType.targetEffectPresets = {}
77
- abilityType.soundPresetName = ""
77
+ abilityType.casterEffectSoundPresetId = nil
78
78
  abilityType.learnLevelMinimum = 6
79
79
  abilityType.race = "other"
80
80
  abilityType.shouldCheckTechTreeDependencies = false
@@ -104,7 +104,7 @@ local applicatorAbilityTypeIdByApplicatorTypeByApplicableBuffTypeId, applicatorU
104
104
  local applicatorAbilityType = prepareAbilityType(CurseAbilityType, applicableBuffType)
105
105
  applicatorAbilityType.missProbability = 0
106
106
  applicatorAbilityType.buffTypeIds = {applicableBuffType.id}
107
- applicatorAbilityTypeIdByApplicatorType[852189] = applicatorAbilityType.id
107
+ applicatorAbilityTypeIdByApplicatorType[852190] = applicatorAbilityType.id
108
108
  end
109
109
  if applicableBuffType.polarity == 1 or applicableBuffType.polarity == nil then
110
110
  local applicatorAbilityType = prepareAbilityType(BloodLustAbilityType, applicableBuffType)
@@ -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
@@ -222,7 +227,7 @@ Unit.abilityCastingStartEvent[SEARING_ARROWS_DUMMY_ABILITY_TYPE_ID]:addListener(
222
227
  ---
223
228
  -- @internal For use by internal systems only.
224
229
  ____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 852189 or 852173) or 0)
230
+ local applicatorType = polarity == 1 and (resistanceType == 1 and 852101 or 852100) or (polarity == 2 and (resistanceType == 1 and 852190 or 852173) or 0)
226
231
  local ____opt_1 = applicatorAbilityTypeIdByApplicatorTypeByApplicableBuffTypeId[applicableBuffTypeId]
227
232
  local applicatorAbilityTypeId = ____opt_1 and ____opt_1[applicatorType]
228
233
  if applicatorAbilityTypeId == nil then
@@ -274,7 +279,7 @@ ____exports.internalApplyBuff = function(unit, applicableBuffTypeId, polarity, r
274
279
  ability:setField(ABILITY_RLF_DURATION_HERO, level, actualDuration)
275
280
  ability:setField(ABILITY_IF_PRIORITY, spellStealPriority or 0)
276
281
  ability:setField(ABILITY_IF_REQUIRED_LEVEL, learnLevelMinimum or 6)
277
- if missProbability ~= nil and applicatorType == 852189 then
282
+ if missProbability ~= nil and applicatorType == 852190 then
278
283
  ability:setField(ABILITY_RLF_CHANCE_TO_MISS_CRS, missProbability)
279
284
  end
280
285
  end,
@@ -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
- export type BuffTypeId = ObjectDataEntryId & {
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")
@@ -94,10 +96,10 @@ __TS__SetDescriptor(
94
96
  "lightningTypeIds",
95
97
  {
96
98
  get = function(self)
97
- return self:getObjectDataEntryIdsField("flig")
99
+ return self:getObjectDataEntryNumericIdsField("flig")
98
100
  end,
99
101
  set = function(self, lightningTypeIds)
100
- self:setObjectDataEntryIdsField("flig", lightningTypeIds)
102
+ self:setObjectDataEntryNumericIdsField("flig", lightningTypeIds)
101
103
  end
102
104
  },
103
105
  true
@@ -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
@@ -2,7 +2,7 @@
2
2
  import { ArmorSoundType } from "../auxiliary/armor-sound-type";
3
3
  import { CombatClassifications } from "../auxiliary/combat-classification";
4
4
  import { ObjectDataEntry, ObjectDataEntryId } from "../entry";
5
- export type DestructibleTypeId = ObjectDataEntryId & {
5
+ export type DestructibleTypeId = ObjectDataEntryId & number & {
6
6
  readonly __destructibleTypeId: unique symbol;
7
7
  };
8
8
  export declare abstract class DestructibleType extends ObjectDataEntry<DestructibleTypeId> {
@@ -2,7 +2,7 @@
2
2
  import { ArmorSoundType } from "../auxiliary/armor-sound-type";
3
3
  import { ObjectDataEntry, ObjectDataEntryId } from "../entry";
4
4
  import type { AbilityTypeId } from "./ability-type";
5
- export type ItemTypeId = ObjectDataEntryId & {
5
+ export type ItemTypeId = ObjectDataEntryId & number & {
6
6
  readonly __itemTypeId: unique symbol;
7
7
  };
8
8
  export declare class ItemType extends ObjectDataEntry<ItemTypeId> {
@@ -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
@@ -261,10 +261,10 @@ __TS__SetDescriptor(
261
261
  "cooldownGroupId",
262
262
  {
263
263
  get = function(self)
264
- return self:getObjectDataEntryIdField("icid")
264
+ return self:getObjectDataEntryNumericIdField("icid")
265
265
  end,
266
266
  set = function(self, cooldownGroupId)
267
- self:setObjectDataEntryIdField("icid", cooldownGroupId)
267
+ self:setObjectDataEntryNumericIdField("icid", cooldownGroupId)
268
268
  end
269
269
  },
270
270
  true
@@ -1,7 +1,7 @@
1
1
  /** @noSelfInFile */
2
2
  import { ObjectDataEntry, ObjectDataEntryConstructor, ObjectDataEntryId } from "../entry";
3
3
  import { Color } from "../../../core/types/color";
4
- export type LightningTypeId = ObjectDataEntryId & {
4
+ export type LightningTypeId = ObjectDataEntryId & number & {
5
5
  readonly __lightningTypeId: unique symbol;
6
6
  };
7
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
+ }
@@ -0,0 +1,140 @@
1
+ local ____lualib = require("lualib_bundle")
2
+ local __TS__Class = ____lualib.__TS__Class
3
+ local __TS__ClassExtends = ____lualib.__TS__ClassExtends
4
+ local __TS__SetDescriptor = ____lualib.__TS__SetDescriptor
5
+ local ____exports = {}
6
+ local ____entry = require("engine.object-data.entry")
7
+ local ObjectDataEntry = ____entry.ObjectDataEntry
8
+ ____exports.SoundPreset = __TS__Class()
9
+ local SoundPreset = ____exports.SoundPreset
10
+ SoundPreset.name = "SoundPreset"
11
+ __TS__ClassExtends(SoundPreset, ObjectDataEntry)
12
+ function SoundPreset.generateId(self)
13
+ local ____self_0, ____nextId_1 = self, "nextId"
14
+ local ____self_nextId_2 = ____self_0[____nextId_1]
15
+ ____self_0[____nextId_1] = ____self_nextId_2 + 1
16
+ return "CustomSound" .. tostring(____self_nextId_2)
17
+ end
18
+ function SoundPreset.getObjectData(self, map)
19
+ return map.objects.sound
20
+ end
21
+ SoundPreset.BASE_ID = "BlizzardWave"
22
+ SoundPreset.nextId = 0
23
+ __TS__SetDescriptor(
24
+ SoundPreset.prototype,
25
+ "filePaths",
26
+ {
27
+ get = function(self)
28
+ return self:getStringsField("FileNames")
29
+ end,
30
+ set = function(self, filePaths)
31
+ self:setStringsField("FileNames", filePaths)
32
+ end
33
+ },
34
+ true
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
+ )
140
+ return ____exports
@@ -13,7 +13,8 @@ import type { AbilityTypeId } from "./ability-type";
13
13
  import type { UpgradeId } from "./upgrade";
14
14
  import { AnimationQualifier } from "../auxiliary/animation-qualifier";
15
15
  import { AttackType } from "../auxiliary/attack-type";
16
- export type UnitTypeId = ObjectDataEntryId & {
16
+ import { ArmorType } from "../auxiliary/armor-type";
17
+ export type UnitTypeId = ObjectDataEntryId & number & {
17
18
  readonly __unitTypeId: unique symbol;
18
19
  };
19
20
  export type StandardUnitTypeId = UnitTypeId & {
@@ -23,8 +24,8 @@ export declare class UnitTypeWeapon {
23
24
  private readonly unitType;
24
25
  private readonly index;
25
26
  private constructor();
26
- get attackType(): AttackType;
27
- set attackType(attackType: AttackType);
27
+ get attackType(): AttackType | undefined;
28
+ set attackType(attackType: AttackType | undefined);
28
29
  get backSwingDuration(): number;
29
30
  set backSwingDuration(backSwingDuration: number);
30
31
  get cooldown(): number;
@@ -55,6 +56,7 @@ export declare abstract class UnitType<Id extends UnitTypeId = UnitTypeId> exten
55
56
  protected static readonly idGenerator: ObjectDataEntryIdGenerator;
56
57
  protected static generateId(): number;
57
58
  protected static getObjectData(map: WarMap): WarObjects;
59
+ private isPortraitModelPathSet?;
58
60
  get abilityTypeIds(): AbilityTypeId[];
59
61
  set abilityTypeIds(abilityTypeIds: AbilityTypeId[]);
60
62
  get defaultActiveAbilityTypeId(): AbilityTypeId | undefined;
@@ -131,12 +133,20 @@ export declare abstract class UnitType<Id extends UnitTypeId = UnitTypeId> exten
131
133
  set modelPathSD(modelPathSD: string);
132
134
  get modelPathHD(): string;
133
135
  set modelPathHD(modelPathHD: string);
136
+ get portraitModelPath(): string;
137
+ set portraitModelPath(portraitModelPath: string);
138
+ get portraitModelPathSD(): string;
139
+ set portraitModelPathSD(portraitModelPathSD: string);
140
+ get portraitModelPathHD(): string;
141
+ set portraitModelPathHD(portraitModelPathHD: string);
134
142
  get runSpeed(): number;
135
143
  set runSpeed(runSpeed: number);
136
144
  get runSpeedSD(): number;
137
145
  set runSpeedSD(runSpeedSD: number);
138
146
  get runSpeedHD(): number;
139
147
  set runSpeedHD(runSpeedHD: number);
148
+ get selectionCircleHeight(): number;
149
+ set selectionCircleHeight(height: number);
140
150
  get selectionCircleScale(): number;
141
151
  set selectionCircleScale(selectionCircleScale: number);
142
152
  get selectionCircleScaleSD(): number;
@@ -175,16 +185,20 @@ export declare abstract class UnitType<Id extends UnitTypeId = UnitTypeId> exten
175
185
  set walkSpeedSD(walkSpeedSD: number);
176
186
  get walkSpeedHD(): number;
177
187
  set walkSpeedHD(walkSpeedHD: number);
188
+ get armor(): number;
189
+ set armor(armor: number);
178
190
  get armorSoundType(): ArmorSoundType;
179
191
  set armorSoundType(armorSoundType: ArmorSoundType);
180
192
  get armorSoundTypeSD(): ArmorSoundType;
181
193
  set armorSoundTypeSD(armorSoundTypeSD: ArmorSoundType);
182
194
  get armorSoundTypeHD(): ArmorSoundType;
183
195
  set armorSoundTypeHD(armorSoundTypeHD: ArmorSoundType);
196
+ get armorType(): ArmorType;
197
+ set armorType(armorType: ArmorType);
184
198
  get combatClassifications(): CombatClassifications;
185
199
  set combatClassifications(combatClassifications: CombatClassifications);
186
- get unitClassifications(): UnitClassifications;
187
- set unitClassifications(unitClassifications: UnitClassifications);
200
+ get classifications(): UnitClassifications;
201
+ set classifications(unitClassifications: UnitClassifications);
188
202
  get weapons(): TupleOf<UnitTypeWeapon, 2>;
189
203
  get firstWeapon(): UnitTypeWeapon;
190
204
  get secondWeapon(): UnitTypeWeapon;
@@ -218,6 +232,8 @@ export declare abstract class UnitType<Id extends UnitTypeId = UnitTypeId> exten
218
232
  set goldCost(goldCost: number);
219
233
  get healthRegenerationRate(): number;
220
234
  set healthRegenerationRate(healthRegenerationRate: number);
235
+ get level(): number;
236
+ set level(level: number);
221
237
  get manaRegenerationRate(): number;
222
238
  set manaRegenerationRate(manaRegenerationRate: number);
223
239
  get maximumHealth(): number;