warscript 0.0.1-dev.f9efacb → 0.0.1-dev.fa24390

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 (157) 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 +14 -6
  6. package/core/types/effect.lua +131 -35
  7. package/core/types/order.d.ts +1 -0
  8. package/core/types/order.lua +11 -1
  9. package/core/types/sound.d.ts +17 -24
  10. package/core/types/sound.lua +99 -24
  11. package/core/types/timer.d.ts +6 -7
  12. package/core/types/timer.lua +18 -21
  13. package/core/util.d.ts +1 -1
  14. package/core/util.lua +12 -1
  15. package/decl/native.d.ts +840 -786
  16. package/engine/behaviour/ability/always-enabled.d.ts +7 -0
  17. package/engine/behaviour/ability/always-enabled.lua +31 -0
  18. package/engine/behaviour/ability/apply-buff.d.ts +5 -0
  19. package/engine/behaviour/ability/apply-buff.lua +32 -0
  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 +6 -0
  24. package/engine/behaviour/ability/emulate-impact.lua +35 -0
  25. package/engine/behaviour/ability/instant-impact.d.ts +2 -2
  26. package/engine/behaviour/ability/instant-impact.lua +4 -19
  27. package/engine/behaviour/ability/on-command-impact.d.ts +8 -0
  28. package/engine/behaviour/ability/on-command-impact.lua +25 -0
  29. package/engine/behaviour/ability/remove-buffs.d.ts +16 -0
  30. package/engine/behaviour/ability/remove-buffs.lua +28 -0
  31. package/engine/behaviour/ability.d.ts +20 -4
  32. package/engine/behaviour/ability.lua +111 -38
  33. package/engine/behaviour/unit.d.ts +2 -0
  34. package/engine/buff.d.ts +62 -42
  35. package/engine/buff.lua +312 -234
  36. package/engine/internal/ability.d.ts +15 -2
  37. package/engine/internal/ability.lua +84 -4
  38. package/engine/internal/item/ability.lua +106 -0
  39. package/engine/internal/item.d.ts +4 -3
  40. package/engine/internal/item.lua +56 -25
  41. package/engine/internal/mechanics/ability-duration.lua +1 -1
  42. package/engine/internal/misc/ability-disable-counter.d.ts +2 -0
  43. package/engine/internal/misc/ability-disable-counter.lua +13 -0
  44. package/engine/internal/misc/damage-metadata-by-target.d.ts +2 -0
  45. package/engine/internal/misc/damage-metadata-by-target.lua +5 -0
  46. package/engine/internal/object-data/auto-attack-speed-increase.d.ts +1 -1
  47. package/engine/internal/object-data/auto-attack-speed-increase.lua +2 -0
  48. package/engine/internal/object-data/evasion-probability.d.ts +2 -0
  49. package/engine/internal/object-data/evasion-probability.lua +16 -0
  50. package/engine/internal/unit/ability.d.ts +10 -1
  51. package/engine/internal/unit/ability.lua +36 -14
  52. package/engine/internal/unit/add-item-to-slot-init.d.ts +2 -0
  53. package/engine/internal/unit/add-item-to-slot-init.lua +23 -0
  54. package/engine/internal/unit/add-item-to-slot.d.ts +2 -0
  55. package/engine/internal/unit/add-item-to-slot.lua +52 -0
  56. package/engine/internal/unit/bonus.d.ts +2 -0
  57. package/engine/internal/unit/bonus.lua +17 -0
  58. package/engine/internal/unit/ignore-events-items.d.ts +2 -0
  59. package/engine/internal/unit/ignore-events-items.lua +5 -0
  60. package/engine/internal/unit/item.lua +6 -12
  61. package/engine/internal/unit/main-selected.d.ts +6 -0
  62. package/engine/internal/unit/main-selected.lua +12 -1
  63. package/engine/internal/unit+damage.d.ts +2 -11
  64. package/engine/internal/unit+damage.lua +10 -14
  65. package/engine/internal/unit+spellSteal.lua +1 -2
  66. package/engine/internal/unit.d.ts +25 -5
  67. package/engine/internal/unit.lua +195 -61
  68. package/engine/internal/utility.lua +12 -0
  69. package/engine/lightning.d.ts +12 -5
  70. package/engine/lightning.lua +48 -14
  71. package/engine/object-data/auxiliary/animation-name.d.ts +1 -0
  72. package/engine/object-data/auxiliary/animation-name.lua +16 -0
  73. package/engine/object-data/auxiliary/attachment-preset.d.ts +7 -2
  74. package/engine/object-data/auxiliary/attachment-preset.lua +4 -3
  75. package/engine/object-data/auxiliary/attack-type.d.ts +7 -8
  76. package/engine/object-data/auxiliary/attack-type.lua +42 -0
  77. package/engine/object-data/auxiliary/movement-type.d.ts +7 -7
  78. package/engine/object-data/auxiliary/movement-type.lua +22 -0
  79. package/engine/object-data/auxiliary/sound-eax.d.ts +10 -0
  80. package/engine/object-data/auxiliary/sound-eax.lua +2 -0
  81. package/engine/object-data/auxiliary/sound-preset-name.d.ts +5 -1
  82. package/engine/object-data/auxiliary/tech-tree-dependency.d.ts +1 -1
  83. package/engine/object-data/auxiliary/unit-attribute.d.ts +6 -0
  84. package/engine/object-data/auxiliary/unit-attribute.lua +9 -0
  85. package/engine/object-data/entry/ability-type/berserk.d.ts +2 -0
  86. package/engine/object-data/entry/ability-type/berserk.lua +13 -0
  87. package/engine/object-data/entry/ability-type/blank-configurable.lua +12 -1
  88. package/engine/object-data/entry/ability-type/carrion-swarm.d.ts +14 -0
  89. package/engine/object-data/entry/ability-type/carrion-swarm.lua +65 -0
  90. package/engine/object-data/entry/ability-type/disease-cloud.lua +2 -2
  91. package/engine/object-data/entry/ability-type/engineering-upgrade.lua +2 -2
  92. package/engine/object-data/entry/ability-type/ensnare.d.ts +12 -0
  93. package/engine/object-data/entry/ability-type/ensnare.lua +52 -0
  94. package/engine/object-data/entry/ability-type/feral-spirit.lua +2 -2
  95. package/engine/object-data/entry/ability-type/permanent-invisibility.d.ts +8 -0
  96. package/engine/object-data/entry/ability-type/permanent-invisibility.lua +26 -0
  97. package/engine/object-data/entry/ability-type/phase-shift.d.ts +10 -0
  98. package/engine/object-data/entry/ability-type/phase-shift.lua +39 -0
  99. package/engine/object-data/entry/ability-type/phoenix-morph.lua +4 -4
  100. package/engine/object-data/entry/ability-type/raise-dead.d.ts +17 -0
  101. package/engine/object-data/entry/ability-type/raise-dead.lua +78 -0
  102. package/engine/object-data/entry/ability-type/shock-wave.d.ts +4 -0
  103. package/engine/object-data/entry/ability-type/shock-wave.lua +26 -0
  104. package/engine/object-data/entry/ability-type/slow-poison.d.ts +10 -0
  105. package/engine/object-data/entry/ability-type/slow-poison.lua +58 -0
  106. package/engine/object-data/entry/ability-type/summon-quilbeast.lua +2 -2
  107. package/engine/object-data/entry/ability-type/summon-water-elemental.lua +2 -2
  108. package/engine/object-data/entry/ability-type/web.d.ts +12 -0
  109. package/engine/object-data/entry/ability-type/web.lua +52 -0
  110. package/engine/object-data/entry/ability-type.d.ts +19 -17
  111. package/engine/object-data/entry/ability-type.lua +89 -33
  112. package/engine/object-data/entry/buff-type/applicable.lua +18 -37
  113. package/engine/object-data/entry/buff-type.d.ts +6 -12
  114. package/engine/object-data/entry/buff-type.lua +13 -29
  115. package/engine/object-data/entry/destructible-type.d.ts +1 -1
  116. package/engine/object-data/entry/item-type.d.ts +3 -1
  117. package/engine/object-data/entry/item-type.lua +15 -2
  118. package/engine/object-data/entry/lightning-type.d.ts +1 -1
  119. package/engine/object-data/entry/sound-preset.d.ts +33 -0
  120. package/engine/object-data/entry/sound-preset.lua +140 -0
  121. package/engine/object-data/entry/unit-type.d.ts +10 -3
  122. package/engine/object-data/entry/unit-type.lua +155 -92
  123. package/engine/object-data/entry/upgrade.d.ts +1 -1
  124. package/engine/object-data/entry/upgrade.lua +4 -4
  125. package/engine/object-data/entry.d.ts +16 -14
  126. package/engine/object-data/entry.lua +60 -32
  127. package/engine/object-data/utility/object-data-entry-id-generator.lua +7 -0
  128. package/engine/object-field/ability.d.ts +10 -4
  129. package/engine/object-field/ability.lua +3 -0
  130. package/engine/object-field/unit.d.ts +46 -3
  131. package/engine/object-field/unit.lua +173 -7
  132. package/engine/object-field.d.ts +11 -3
  133. package/engine/object-field.lua +162 -76
  134. package/engine/standard/entries/buff-type.d.ts +3 -0
  135. package/engine/standard/entries/buff-type.lua +3 -0
  136. package/engine/standard/entries/sound-preset.d.ts +10 -0
  137. package/engine/standard/entries/sound-preset.lua +10 -0
  138. package/engine/standard/fields/ability.d.ts +2 -0
  139. package/engine/standard/fields/ability.lua +2 -0
  140. package/engine/unit.d.ts +1 -0
  141. package/engine/unit.lua +1 -0
  142. package/objutil/buff.lua +1 -2
  143. package/objutil/unit.lua +8 -0
  144. package/package.json +2 -2
  145. package/utility/arrays.d.ts +9 -1
  146. package/utility/arrays.lua +37 -3
  147. package/utility/functions.d.ts +1 -0
  148. package/utility/functions.lua +1 -0
  149. package/utility/lazy.d.ts +2 -0
  150. package/utility/lazy.lua +14 -0
  151. package/utility/linked-set.d.ts +1 -0
  152. package/utility/linked-set.lua +3 -0
  153. package/utility/lua-maps.d.ts +3 -0
  154. package/utility/lua-maps.lua +16 -0
  155. package/utility/lua-sets.d.ts +1 -0
  156. package/utility/lua-sets.lua +3 -0
  157. package/utility/reflection.lua +11 -7
@@ -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,7 @@ 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
+ export type UnitTypeId = ObjectDataEntryId & number & {
17
17
  readonly __unitTypeId: unique symbol;
18
18
  };
19
19
  export type StandardUnitTypeId = UnitTypeId & {
@@ -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;
@@ -55,6 +55,7 @@ export declare abstract class UnitType<Id extends UnitTypeId = UnitTypeId> exten
55
55
  protected static readonly idGenerator: ObjectDataEntryIdGenerator;
56
56
  protected static generateId(): number;
57
57
  protected static getObjectData(map: WarMap): WarObjects;
58
+ private isPortraitModelPathSet?;
58
59
  get abilityTypeIds(): AbilityTypeId[];
59
60
  set abilityTypeIds(abilityTypeIds: AbilityTypeId[]);
60
61
  get defaultActiveAbilityTypeId(): AbilityTypeId | undefined;
@@ -131,6 +132,12 @@ export declare abstract class UnitType<Id extends UnitTypeId = UnitTypeId> exten
131
132
  set modelPathSD(modelPathSD: string);
132
133
  get modelPathHD(): string;
133
134
  set modelPathHD(modelPathHD: string);
135
+ get portraitModelPath(): string;
136
+ set portraitModelPath(portraitModelPath: string);
137
+ get portraitModelPathSD(): string;
138
+ set portraitModelPathSD(portraitModelPathSD: string);
139
+ get portraitModelPathHD(): string;
140
+ set portraitModelPathHD(portraitModelPathHD: string);
134
141
  get runSpeed(): number;
135
142
  set runSpeed(runSpeed: number);
136
143
  get runSpeedSD(): number;
@@ -12,6 +12,9 @@ local implementReadonlyNumberIndexSupplier = ____reflection.implementReadonlyNum
12
12
  local ____combat_2Dclassification = require("engine.object-data.auxiliary.combat-classification")
13
13
  local combatClassificationsToStringArray = ____combat_2Dclassification.combatClassificationsToStringArray
14
14
  local stringArrayToCombatClassifications = ____combat_2Dclassification.stringArrayToCombatClassifications
15
+ local ____movement_2Dtype = require("engine.object-data.auxiliary.movement-type")
16
+ local movementTypeToString = ____movement_2Dtype.movementTypeToString
17
+ local stringToMovementType = ____movement_2Dtype.stringToMovementType
15
18
  local ____unit_2Dclassification = require("engine.object-data.auxiliary.unit-classification")
16
19
  local stringArrayToUnitClassifications = ____unit_2Dclassification.stringArrayToUnitClassifications
17
20
  local unitClassificationsToStringArray = ____unit_2Dclassification.unitClassificationsToStringArray
@@ -19,6 +22,11 @@ local ____entry = require("engine.object-data.entry")
19
22
  local ObjectDataEntry = ____entry.ObjectDataEntry
20
23
  local ____object_2Ddata_2Dentry_2Did_2Dgenerator = require("engine.object-data.utility.object-data-entry-id-generator")
21
24
  local ObjectDataEntryIdGenerator = ____object_2Ddata_2Dentry_2Did_2Dgenerator.ObjectDataEntryIdGenerator
25
+ local ____attack_2Dtype = require("engine.object-data.auxiliary.attack-type")
26
+ local attackTypeToString = ____attack_2Dtype.attackTypeToString
27
+ local stringToAttackType = ____attack_2Dtype.stringToAttackType
28
+ local ____config = require("config")
29
+ local WarscriptConfig = ____config.WarscriptConfig
22
30
  local getOrCreateUnitTypeWeapons
23
31
  ____exports.UnitTypeWeapon = __TS__Class()
24
32
  local UnitTypeWeapon = ____exports.UnitTypeWeapon
@@ -32,18 +40,19 @@ __TS__SetDescriptor(
32
40
  "attackType",
33
41
  {
34
42
  get = function(self)
43
+ local ____stringToAttackType_1 = stringToAttackType
35
44
  local ____self_0 = self.unitType
36
- return ____self_0.getStringField(
45
+ return ____stringToAttackType_1(____self_0.getStringField(
37
46
  ____self_0,
38
47
  ("ua" .. tostring(self.index)) .. "t"
39
- )
48
+ ))
40
49
  end,
41
50
  set = function(self, attackType)
42
- local ____self_1 = self.unitType
43
- ____self_1.setStringField(
44
- ____self_1,
51
+ local ____self_2 = self.unitType
52
+ ____self_2.setStringField(
53
+ ____self_2,
45
54
  ("ua" .. tostring(self.index)) .. "t",
46
- attackType
55
+ attackTypeToString(attackType)
47
56
  )
48
57
  end
49
58
  },
@@ -54,16 +63,16 @@ __TS__SetDescriptor(
54
63
  "backSwingDuration",
55
64
  {
56
65
  get = function(self)
57
- local ____self_2 = self.unitType
58
- return ____self_2.getNumberField(
59
- ____self_2,
66
+ local ____self_3 = self.unitType
67
+ return ____self_3.getNumberField(
68
+ ____self_3,
60
69
  "ubs" .. tostring(self.index)
61
70
  )
62
71
  end,
63
72
  set = function(self, backSwingDuration)
64
- local ____self_3 = self.unitType
65
- ____self_3.setNumberField(
66
- ____self_3,
73
+ local ____self_4 = self.unitType
74
+ ____self_4.setNumberField(
75
+ ____self_4,
67
76
  "ubs" .. tostring(self.index),
68
77
  backSwingDuration
69
78
  )
@@ -76,16 +85,16 @@ __TS__SetDescriptor(
76
85
  "cooldown",
77
86
  {
78
87
  get = function(self)
79
- local ____self_4 = self.unitType
80
- return ____self_4.getNumberField(
81
- ____self_4,
88
+ local ____self_5 = self.unitType
89
+ return ____self_5.getNumberField(
90
+ ____self_5,
82
91
  ("ua" .. tostring(self.index)) .. "c"
83
92
  )
84
93
  end,
85
94
  set = function(self, cooldown)
86
- local ____self_5 = self.unitType
87
- ____self_5.setNumberField(
88
- ____self_5,
95
+ local ____self_6 = self.unitType
96
+ ____self_6.setNumberField(
97
+ ____self_6,
89
98
  ("ua" .. tostring(self.index)) .. "c",
90
99
  cooldown
91
100
  )
@@ -119,16 +128,16 @@ __TS__SetDescriptor(
119
128
  "damageBase",
120
129
  {
121
130
  get = function(self)
122
- local ____self_6 = self.unitType
123
- return ____self_6.getNumberField(
124
- ____self_6,
131
+ local ____self_7 = self.unitType
132
+ return ____self_7.getNumberField(
133
+ ____self_7,
125
134
  ("ua" .. tostring(self.index)) .. "b"
126
135
  )
127
136
  end,
128
137
  set = function(self, damageBase)
129
- local ____self_7 = self.unitType
130
- ____self_7.setNumberField(
131
- ____self_7,
138
+ local ____self_8 = self.unitType
139
+ ____self_8.setNumberField(
140
+ ____self_8,
132
141
  ("ua" .. tostring(self.index)) .. "b",
133
142
  damageBase
134
143
  )
@@ -141,16 +150,16 @@ __TS__SetDescriptor(
141
150
  "damageDiceCount",
142
151
  {
143
152
  get = function(self)
144
- local ____self_8 = self.unitType
145
- return ____self_8.getNumberField(
146
- ____self_8,
153
+ local ____self_9 = self.unitType
154
+ return ____self_9.getNumberField(
155
+ ____self_9,
147
156
  ("ua" .. tostring(self.index)) .. "d"
148
157
  )
149
158
  end,
150
159
  set = function(self, damageDiceNumber)
151
- local ____self_9 = self.unitType
152
- ____self_9.setNumberField(
153
- ____self_9,
160
+ local ____self_10 = self.unitType
161
+ ____self_10.setNumberField(
162
+ ____self_10,
154
163
  ("ua" .. tostring(self.index)) .. "d",
155
164
  damageDiceNumber
156
165
  )
@@ -163,16 +172,16 @@ __TS__SetDescriptor(
163
172
  "damageDiceSideCount",
164
173
  {
165
174
  get = function(self)
166
- local ____self_10 = self.unitType
167
- return ____self_10.getNumberField(
168
- ____self_10,
175
+ local ____self_11 = self.unitType
176
+ return ____self_11.getNumberField(
177
+ ____self_11,
169
178
  ("ua" .. tostring(self.index)) .. "s"
170
179
  )
171
180
  end,
172
181
  set = function(self, damageDiceSideCount)
173
- local ____self_11 = self.unitType
174
- ____self_11.setNumberField(
175
- ____self_11,
182
+ local ____self_12 = self.unitType
183
+ ____self_12.setNumberField(
184
+ ____self_12,
176
185
  ("ua" .. tostring(self.index)) .. "s",
177
186
  damageDiceSideCount
178
187
  )
@@ -185,16 +194,16 @@ __TS__SetDescriptor(
185
194
  "impactDelay",
186
195
  {
187
196
  get = function(self)
188
- local ____self_12 = self.unitType
189
- return ____self_12.getNumberField(
190
- ____self_12,
197
+ local ____self_13 = self.unitType
198
+ return ____self_13.getNumberField(
199
+ ____self_13,
191
200
  "udp" .. tostring(self.index)
192
201
  )
193
202
  end,
194
203
  set = function(self, impactDelay)
195
- local ____self_13 = self.unitType
196
- ____self_13.setNumberField(
197
- ____self_13,
204
+ local ____self_14 = self.unitType
205
+ ____self_14.setNumberField(
206
+ ____self_14,
198
207
  "udp" .. tostring(self.index),
199
208
  impactDelay
200
209
  )
@@ -207,16 +216,16 @@ __TS__SetDescriptor(
207
216
  "missileModelPath",
208
217
  {
209
218
  get = function(self)
210
- local ____self_14 = self.unitType
211
- return ____self_14.getStringField(
212
- ____self_14,
219
+ local ____self_15 = self.unitType
220
+ return ____self_15.getStringField(
221
+ ____self_15,
213
222
  ("ua" .. tostring(self.index)) .. "m"
214
223
  )
215
224
  end,
216
225
  set = function(self, missileModelPath)
217
- local ____self_15 = self.unitType
218
- ____self_15.setStringField(
219
- ____self_15,
226
+ local ____self_16 = self.unitType
227
+ ____self_16.setStringField(
228
+ ____self_16,
220
229
  ("ua" .. tostring(self.index)) .. "m",
221
230
  missileModelPath
222
231
  )
@@ -229,16 +238,16 @@ __TS__SetDescriptor(
229
238
  "range",
230
239
  {
231
240
  get = function(self)
232
- local ____self_16 = self.unitType
233
- return ____self_16.getNumberField(
234
- ____self_16,
241
+ local ____self_17 = self.unitType
242
+ return ____self_17.getNumberField(
243
+ ____self_17,
235
244
  ("ua" .. tostring(self.index)) .. "r"
236
245
  )
237
246
  end,
238
247
  set = function(self, range)
239
- local ____self_17 = self.unitType
240
- ____self_17.setNumberField(
241
- ____self_17,
248
+ local ____self_18 = self.unitType
249
+ ____self_18.setNumberField(
250
+ ____self_18,
242
251
  ("ua" .. tostring(self.index)) .. "r",
243
252
  range
244
253
  )
@@ -251,16 +260,16 @@ __TS__SetDescriptor(
251
260
  "soundType",
252
261
  {
253
262
  get = function(self)
254
- local ____self_18 = self.unitType
255
- return ____self_18.getStringField(
256
- ____self_18,
263
+ local ____self_19 = self.unitType
264
+ return ____self_19.getStringField(
265
+ ____self_19,
257
266
  "ucs" .. tostring(self.index)
258
267
  )
259
268
  end,
260
269
  set = function(self, soundType)
261
- local ____self_19 = self.unitType
262
- ____self_19.setStringField(
263
- ____self_19,
270
+ local ____self_20 = self.unitType
271
+ ____self_20.setStringField(
272
+ ____self_20,
264
273
  "ucs" .. tostring(self.index),
265
274
  soundType
266
275
  )
@@ -273,16 +282,16 @@ __TS__SetDescriptor(
273
282
  "soundTypeSD",
274
283
  {
275
284
  get = function(self)
276
- local ____self_20 = self.unitType
277
- return ____self_20.getStringField(
278
- ____self_20,
285
+ local ____self_21 = self.unitType
286
+ return ____self_21.getStringField(
287
+ ____self_21,
279
288
  ("ucs" .. tostring(self.index)) .. ":sd"
280
289
  )
281
290
  end,
282
291
  set = function(self, soundTypeSD)
283
- local ____self_21 = self.unitType
284
- ____self_21.setStringField(
285
- ____self_21,
292
+ local ____self_22 = self.unitType
293
+ ____self_22.setStringField(
294
+ ____self_22,
286
295
  ("ucs" .. tostring(self.index)) .. ":sd",
287
296
  soundTypeSD
288
297
  )
@@ -295,16 +304,16 @@ __TS__SetDescriptor(
295
304
  "soundTypeHD",
296
305
  {
297
306
  get = function(self)
298
- local ____self_22 = self.unitType
299
- return ____self_22.getStringField(
300
- ____self_22,
307
+ local ____self_23 = self.unitType
308
+ return ____self_23.getStringField(
309
+ ____self_23,
301
310
  ("ucs" .. tostring(self.index)) .. ":hd"
302
311
  )
303
312
  end,
304
313
  set = function(self, soundTypeHD)
305
- local ____self_23 = self.unitType
306
- ____self_23.setStringField(
307
- ____self_23,
314
+ local ____self_24 = self.unitType
315
+ ____self_24.setStringField(
316
+ ____self_24,
308
317
  ("ucs" .. tostring(self.index)) .. ":hd",
309
318
  soundTypeHD
310
319
  )
@@ -345,10 +354,10 @@ __TS__SetDescriptor(
345
354
  "abilityTypeIds",
346
355
  {
347
356
  get = function(self)
348
- return self:getObjectDataEntryIdsField("uabi")
357
+ return self:getObjectDataEntryNumericIdsField("uabi")
349
358
  end,
350
359
  set = function(self, abilityTypeIds)
351
- self:setObjectDataEntryIdsField("uabi", abilityTypeIds)
360
+ self:setObjectDataEntryNumericIdsField("uabi", abilityTypeIds)
352
361
  end
353
362
  },
354
363
  true
@@ -358,10 +367,10 @@ __TS__SetDescriptor(
358
367
  "defaultActiveAbilityTypeId",
359
368
  {
360
369
  get = function(self)
361
- return self:getObjectDataEntryIdsField("udaa")[1]
370
+ return self:getObjectDataEntryNumericIdsField("udaa")[1]
362
371
  end,
363
372
  set = function(self, abilityTypeId)
364
- self:setObjectDataEntryIdsField(
373
+ self:setObjectDataEntryNumericIdsField(
365
374
  "udaa",
366
375
  arrayOfNotNull(abilityTypeId)
367
376
  )
@@ -807,6 +816,9 @@ __TS__SetDescriptor(
807
816
  end,
808
817
  set = function(self, modelPath)
809
818
  self:setStringField("umdl", modelPath)
819
+ if not self.isPortraitModelPathSet and WarscriptConfig.AUTOMATICALLY_SET_UNIT_TYPE_PORTRAIT_MODEL_PATH then
820
+ self:setStringField("upor", "")
821
+ end
810
822
  end
811
823
  },
812
824
  true
@@ -820,6 +832,9 @@ __TS__SetDescriptor(
820
832
  end,
821
833
  set = function(self, modelPathSD)
822
834
  self:setStringField("umdl:sd", modelPathSD)
835
+ if not self.isPortraitModelPathSet and WarscriptConfig.AUTOMATICALLY_SET_UNIT_TYPE_PORTRAIT_MODEL_PATH then
836
+ self:setStringField("upor:sd", "")
837
+ end
823
838
  end
824
839
  },
825
840
  true
@@ -833,6 +848,51 @@ __TS__SetDescriptor(
833
848
  end,
834
849
  set = function(self, modelPathHD)
835
850
  self:setStringField("umdl:hd", modelPathHD)
851
+ if not self.isPortraitModelPathSet and WarscriptConfig.AUTOMATICALLY_SET_UNIT_TYPE_PORTRAIT_MODEL_PATH then
852
+ self:setStringField("upor:hd", "")
853
+ end
854
+ end
855
+ },
856
+ true
857
+ )
858
+ __TS__SetDescriptor(
859
+ UnitType.prototype,
860
+ "portraitModelPath",
861
+ {
862
+ get = function(self)
863
+ return self:getStringField("upor")
864
+ end,
865
+ set = function(self, portraitModelPath)
866
+ self:setStringField("upor", portraitModelPath)
867
+ self.isPortraitModelPathSet = true
868
+ end
869
+ },
870
+ true
871
+ )
872
+ __TS__SetDescriptor(
873
+ UnitType.prototype,
874
+ "portraitModelPathSD",
875
+ {
876
+ get = function(self)
877
+ return self:getStringField("upor:sd")
878
+ end,
879
+ set = function(self, portraitModelPathSD)
880
+ self:setStringField("upor:sd", portraitModelPathSD)
881
+ self.isPortraitModelPathSet = true
882
+ end
883
+ },
884
+ true
885
+ )
886
+ __TS__SetDescriptor(
887
+ UnitType.prototype,
888
+ "portraitModelPathHD",
889
+ {
890
+ get = function(self)
891
+ return self:getStringField("upor:hd")
892
+ end,
893
+ set = function(self, portraitModelPathHD)
894
+ self:setStringField("upor:hd", portraitModelPathHD)
895
+ self.isPortraitModelPathSet = true
836
896
  end
837
897
  },
838
898
  true
@@ -1288,10 +1348,13 @@ __TS__SetDescriptor(
1288
1348
  "movementType",
1289
1349
  {
1290
1350
  get = function(self)
1291
- return self:getStringField("umvt")
1351
+ return stringToMovementType(self:getStringField("umvt"))
1292
1352
  end,
1293
1353
  set = function(self, movementType)
1294
- self:setStringField("umvt", movementType)
1354
+ self:setStringField(
1355
+ "umvt",
1356
+ movementTypeToString(movementType)
1357
+ )
1295
1358
  end
1296
1359
  },
1297
1360
  true
@@ -1496,10 +1559,10 @@ __TS__SetDescriptor(
1496
1559
  "affectingUpgradeIds",
1497
1560
  {
1498
1561
  get = function(self)
1499
- return self:getObjectDataEntryIdsField("upgr")
1562
+ return self:getObjectDataEntryNumericIdsField("upgr")
1500
1563
  end,
1501
1564
  set = function(self, affectingUpgradeIds)
1502
- self:setObjectDataEntryIdsField("upgr", affectingUpgradeIds)
1565
+ self:setObjectDataEntryNumericIdsField("upgr", affectingUpgradeIds)
1503
1566
  end
1504
1567
  },
1505
1568
  true
@@ -1559,11 +1622,11 @@ __TS__SetDescriptor(
1559
1622
  implementReadonlyNumberIndexSupplier(
1560
1623
  ____exports.UnitType,
1561
1624
  function(id)
1562
- local ____class_24 = __TS__Class()
1563
- ____class_24.name = ____class_24.name
1564
- __TS__ClassExtends(____class_24, ____exports.UnitType)
1565
- ____class_24.BASE_ID = id
1566
- return ____class_24
1625
+ local ____class_25 = __TS__Class()
1626
+ ____class_25.name = ____class_25.name
1627
+ __TS__ClassExtends(____class_25, ____exports.UnitType)
1628
+ ____class_25.BASE_ID = id
1629
+ return ____class_25
1567
1630
  end
1568
1631
  )
1569
1632
  ____exports.HeroUnitType = __TS__Class()
@@ -1582,10 +1645,10 @@ __TS__SetDescriptor(
1582
1645
  "heroAbilityTypeIds",
1583
1646
  {
1584
1647
  get = function(self)
1585
- return self:getObjectDataEntryIdsField("uhab")
1648
+ return self:getObjectDataEntryNumericIdsField("uhab")
1586
1649
  end,
1587
1650
  set = function(self, heroAbilityTypeIds)
1588
- self:setObjectDataEntryIdsField("uhab", heroAbilityTypeIds)
1651
+ self:setObjectDataEntryNumericIdsField("uhab", heroAbilityTypeIds)
1589
1652
  end
1590
1653
  },
1591
1654
  true
@@ -1624,11 +1687,11 @@ __TS__SetDescriptor(
1624
1687
  implementReadonlyNumberIndexSupplier(
1625
1688
  ____exports.HeroUnitType,
1626
1689
  function(id)
1627
- local ____class_25 = __TS__Class()
1628
- ____class_25.name = ____class_25.name
1629
- __TS__ClassExtends(____class_25, ____exports.HeroUnitType)
1630
- ____class_25.BASE_ID = id
1631
- return ____class_25
1690
+ local ____class_26 = __TS__Class()
1691
+ ____class_26.name = ____class_26.name
1692
+ __TS__ClassExtends(____class_26, ____exports.HeroUnitType)
1693
+ ____class_26.BASE_ID = id
1694
+ return ____class_26
1632
1695
  end
1633
1696
  )
1634
1697
  return ____exports
@@ -3,7 +3,7 @@ import { TupleOf } from "../../../utility/types";
3
3
  import { TechTreeDependency, TechTreeDependencyInput } from "../auxiliary/tech-tree-dependency";
4
4
  import { ObjectDataEntry, ObjectDataEntryId, ObjectDataEntryLevelFieldValueSupplier } from "../entry";
5
5
  import { AbilityTypeId } from "./ability-type";
6
- export type UpgradeId = ObjectDataEntryId & {
6
+ export type UpgradeId = ObjectDataEntryId & number & {
7
7
  readonly __upgradeId: unique symbol;
8
8
  };
9
9
  export declare const enum UpgradeEffectType {