warscript 0.0.1-dev.fcc9d08 → 0.0.1-dev.fe0aeea
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.
- package/core/types/effect.d.ts +1 -3
- package/core/types/effect.lua +26 -29
- package/core/types/sound.d.ts +17 -25
- package/core/types/sound.lua +86 -46
- package/core/util.lua +6 -1
- package/engine/behaviour/ability/apply-unit-behavior.lua +1 -0
- package/engine/behaviour/ability/damage.d.ts +3 -0
- package/engine/behaviour/ability/damage.lua +2 -2
- package/engine/behaviour/ability.d.ts +5 -1
- package/engine/behaviour/ability.lua +18 -4
- package/engine/behaviour/unit.d.ts +2 -0
- package/engine/buff.d.ts +13 -8
- package/engine/buff.lua +81 -50
- package/engine/internal/mechanics/ability-duration.lua +1 -1
- package/engine/internal/unit.d.ts +6 -1
- package/engine/internal/unit.lua +8 -2
- package/engine/object-data/auxiliary/attachment-preset.d.ts +7 -2
- package/engine/object-data/auxiliary/attachment-preset.lua +4 -3
- package/engine/object-data/auxiliary/sound-eax.d.ts +10 -0
- package/engine/object-data/auxiliary/sound-eax.lua +2 -0
- package/engine/object-data/auxiliary/tech-tree-dependency.d.ts +1 -1
- package/engine/object-data/entry/ability-type/blank-configurable.lua +0 -9
- package/engine/object-data/entry/ability-type/carrion-swarm.d.ts +14 -0
- package/engine/object-data/entry/ability-type/carrion-swarm.lua +65 -0
- package/engine/object-data/entry/ability-type/curse.lua +2 -2
- package/engine/object-data/entry/ability-type/disease-cloud.lua +2 -2
- package/engine/object-data/entry/ability-type/engineering-upgrade.lua +2 -2
- package/engine/object-data/entry/ability-type/ensnare.d.ts +12 -0
- package/engine/object-data/entry/ability-type/ensnare.lua +52 -0
- package/engine/object-data/entry/ability-type/feral-spirit.lua +2 -2
- package/engine/object-data/entry/ability-type/phase-shift.d.ts +10 -0
- package/engine/object-data/entry/ability-type/phase-shift.lua +39 -0
- package/engine/object-data/entry/ability-type/phoenix-morph.lua +4 -4
- package/engine/object-data/entry/ability-type/raise-dead.d.ts +17 -0
- package/engine/object-data/entry/ability-type/raise-dead.lua +78 -0
- package/engine/object-data/entry/ability-type/shock-wave.d.ts +4 -0
- package/engine/object-data/entry/ability-type/shock-wave.lua +26 -0
- package/engine/object-data/entry/ability-type/summon-quilbeast.lua +2 -2
- package/engine/object-data/entry/ability-type/summon-water-elemental.lua +2 -2
- package/engine/object-data/entry/ability-type/web.d.ts +12 -0
- package/engine/object-data/entry/ability-type/web.lua +52 -0
- package/engine/object-data/entry/ability-type.d.ts +19 -17
- package/engine/object-data/entry/ability-type.lua +74 -21
- package/engine/object-data/entry/buff-type/applicable.lua +4 -4
- package/engine/object-data/entry/buff-type.d.ts +1 -1
- package/engine/object-data/entry/buff-type.lua +2 -2
- package/engine/object-data/entry/destructible-type.d.ts +1 -1
- package/engine/object-data/entry/item-type.d.ts +1 -1
- package/engine/object-data/entry/item-type.lua +4 -4
- package/engine/object-data/entry/lightning-type.d.ts +1 -1
- package/engine/object-data/entry/sound-preset.d.ts +33 -0
- package/engine/object-data/entry/sound-preset.lua +140 -0
- package/engine/object-data/entry/unit-type.d.ts +1 -1
- package/engine/object-data/entry/unit-type.lua +11 -11
- package/engine/object-data/entry/upgrade.d.ts +1 -1
- package/engine/object-data/entry/upgrade.lua +4 -4
- package/engine/object-data/entry.d.ts +16 -14
- package/engine/object-data/entry.lua +60 -32
- package/engine/standard/entries/sound-preset.d.ts +10 -0
- package/engine/standard/entries/sound-preset.lua +10 -0
- package/objutil/unit.lua +2 -2
- package/package.json +2 -2
- package/utility/reflection.lua +11 -7
|
@@ -74,7 +74,7 @@ local applicatorAbilityTypeIdByApplicatorTypeByApplicableBuffTypeId, applicatorU
|
|
|
74
74
|
abilityType.buttonPositionY = -11
|
|
75
75
|
abilityType.casterAttachmentPresets = {}
|
|
76
76
|
abilityType.targetEffectPresets = {}
|
|
77
|
-
abilityType.
|
|
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[
|
|
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)
|
|
@@ -222,7 +222,7 @@ Unit.abilityCastingStartEvent[SEARING_ARROWS_DUMMY_ABILITY_TYPE_ID]:addListener(
|
|
|
222
222
|
---
|
|
223
223
|
-- @internal For use by internal systems only.
|
|
224
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
|
|
225
|
+
local applicatorType = polarity == 1 and (resistanceType == 1 and 852101 or 852100) or (polarity == 2 and (resistanceType == 1 and 852190 or 852173) or 0)
|
|
226
226
|
local ____opt_1 = applicatorAbilityTypeIdByApplicatorTypeByApplicableBuffTypeId[applicableBuffTypeId]
|
|
227
227
|
local applicatorAbilityTypeId = ____opt_1 and ____opt_1[applicatorType]
|
|
228
228
|
if applicatorAbilityTypeId == nil then
|
|
@@ -274,7 +274,7 @@ ____exports.internalApplyBuff = function(unit, applicableBuffTypeId, polarity, r
|
|
|
274
274
|
ability:setField(ABILITY_RLF_DURATION_HERO, level, actualDuration)
|
|
275
275
|
ability:setField(ABILITY_IF_PRIORITY, spellStealPriority or 0)
|
|
276
276
|
ability:setField(ABILITY_IF_REQUIRED_LEVEL, learnLevelMinimum or 6)
|
|
277
|
-
if missProbability ~= nil and applicatorType ==
|
|
277
|
+
if missProbability ~= nil and applicatorType == 852190 then
|
|
278
278
|
ability:setField(ABILITY_RLF_CHANCE_TO_MISS_CRS, missProbability)
|
|
279
279
|
end
|
|
280
280
|
end,
|
|
@@ -5,7 +5,7 @@ import { Race } from "../auxiliary/race";
|
|
|
5
5
|
import { SoundPresetName } from "../auxiliary/sound-preset-name";
|
|
6
6
|
import { ObjectDataEntry, 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
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:
|
|
97
|
+
return self:getObjectDataEntryNumericIdsField("flig")
|
|
98
98
|
end,
|
|
99
99
|
set = function(self, lightningTypeIds)
|
|
100
|
-
self:
|
|
100
|
+
self:setObjectDataEntryNumericIdsField("flig", lightningTypeIds)
|
|
101
101
|
end
|
|
102
102
|
},
|
|
103
103
|
true
|
|
@@ -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:
|
|
30
|
+
return self:getObjectDataEntryNumericIdsField("iabi")
|
|
31
31
|
end,
|
|
32
32
|
set = function(self, abilityTypeIds)
|
|
33
|
-
self:
|
|
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:
|
|
264
|
+
return self:getObjectDataEntryNumericIdField("icid")
|
|
265
265
|
end,
|
|
266
266
|
set = function(self, cooldownGroupId)
|
|
267
|
-
self:
|
|
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,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 & {
|
|
@@ -347,10 +347,10 @@ __TS__SetDescriptor(
|
|
|
347
347
|
"abilityTypeIds",
|
|
348
348
|
{
|
|
349
349
|
get = function(self)
|
|
350
|
-
return self:
|
|
350
|
+
return self:getObjectDataEntryNumericIdsField("uabi")
|
|
351
351
|
end,
|
|
352
352
|
set = function(self, abilityTypeIds)
|
|
353
|
-
self:
|
|
353
|
+
self:setObjectDataEntryNumericIdsField("uabi", abilityTypeIds)
|
|
354
354
|
end
|
|
355
355
|
},
|
|
356
356
|
true
|
|
@@ -360,10 +360,10 @@ __TS__SetDescriptor(
|
|
|
360
360
|
"defaultActiveAbilityTypeId",
|
|
361
361
|
{
|
|
362
362
|
get = function(self)
|
|
363
|
-
return self:
|
|
363
|
+
return self:getObjectDataEntryNumericIdsField("udaa")[1]
|
|
364
364
|
end,
|
|
365
365
|
set = function(self, abilityTypeId)
|
|
366
|
-
self:
|
|
366
|
+
self:setObjectDataEntryNumericIdsField(
|
|
367
367
|
"udaa",
|
|
368
368
|
arrayOfNotNull(abilityTypeId)
|
|
369
369
|
)
|
|
@@ -810,7 +810,7 @@ __TS__SetDescriptor(
|
|
|
810
810
|
set = function(self, modelPath)
|
|
811
811
|
self:setStringField("umdl", modelPath)
|
|
812
812
|
if not self.isPortraitModelPathSet and WarscriptConfig.AUTOMATICALLY_SET_UNIT_TYPE_PORTRAIT_MODEL_PATH then
|
|
813
|
-
self:setStringField("upor",
|
|
813
|
+
self:setStringField("upor", "")
|
|
814
814
|
end
|
|
815
815
|
end
|
|
816
816
|
},
|
|
@@ -826,7 +826,7 @@ __TS__SetDescriptor(
|
|
|
826
826
|
set = function(self, modelPathSD)
|
|
827
827
|
self:setStringField("umdl:sd", modelPathSD)
|
|
828
828
|
if not self.isPortraitModelPathSet and WarscriptConfig.AUTOMATICALLY_SET_UNIT_TYPE_PORTRAIT_MODEL_PATH then
|
|
829
|
-
self:setStringField("upor:sd",
|
|
829
|
+
self:setStringField("upor:sd", "")
|
|
830
830
|
end
|
|
831
831
|
end
|
|
832
832
|
},
|
|
@@ -842,7 +842,7 @@ __TS__SetDescriptor(
|
|
|
842
842
|
set = function(self, modelPathHD)
|
|
843
843
|
self:setStringField("umdl:hd", modelPathHD)
|
|
844
844
|
if not self.isPortraitModelPathSet and WarscriptConfig.AUTOMATICALLY_SET_UNIT_TYPE_PORTRAIT_MODEL_PATH then
|
|
845
|
-
self:setStringField("upor:hd",
|
|
845
|
+
self:setStringField("upor:hd", "")
|
|
846
846
|
end
|
|
847
847
|
end
|
|
848
848
|
},
|
|
@@ -1549,10 +1549,10 @@ __TS__SetDescriptor(
|
|
|
1549
1549
|
"affectingUpgradeIds",
|
|
1550
1550
|
{
|
|
1551
1551
|
get = function(self)
|
|
1552
|
-
return self:
|
|
1552
|
+
return self:getObjectDataEntryNumericIdsField("upgr")
|
|
1553
1553
|
end,
|
|
1554
1554
|
set = function(self, affectingUpgradeIds)
|
|
1555
|
-
self:
|
|
1555
|
+
self:setObjectDataEntryNumericIdsField("upgr", affectingUpgradeIds)
|
|
1556
1556
|
end
|
|
1557
1557
|
},
|
|
1558
1558
|
true
|
|
@@ -1635,10 +1635,10 @@ __TS__SetDescriptor(
|
|
|
1635
1635
|
"heroAbilityTypeIds",
|
|
1636
1636
|
{
|
|
1637
1637
|
get = function(self)
|
|
1638
|
-
return self:
|
|
1638
|
+
return self:getObjectDataEntryNumericIdsField("uhab")
|
|
1639
1639
|
end,
|
|
1640
1640
|
set = function(self, heroAbilityTypeIds)
|
|
1641
|
-
self:
|
|
1641
|
+
self:setObjectDataEntryNumericIdsField("uhab", heroAbilityTypeIds)
|
|
1642
1642
|
end
|
|
1643
1643
|
},
|
|
1644
1644
|
true
|
|
@@ -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 {
|
|
@@ -32,7 +32,7 @@ function Upgrade.prototype.getEffect(self, i)
|
|
|
32
32
|
type = effectType,
|
|
33
33
|
bonusBase = self:getNumberField("gba" .. tostring(i)),
|
|
34
34
|
bonusIncrement = self:getNumberField("gmo" .. tostring(i)),
|
|
35
|
-
abilityTypeId = self:
|
|
35
|
+
abilityTypeId = self:getObjectDataEntryNumericIdField("gco" .. tostring(i))
|
|
36
36
|
}
|
|
37
37
|
end
|
|
38
38
|
return nil
|
|
@@ -51,7 +51,7 @@ function Upgrade.prototype.setEffect(self, i, effect)
|
|
|
51
51
|
effect and effect.bonusIncrement or 0
|
|
52
52
|
)
|
|
53
53
|
if (effect and effect.abilityTypeId) ~= nil then
|
|
54
|
-
self:
|
|
54
|
+
self:setObjectDataEntryNumericIdField(
|
|
55
55
|
"gco" .. tostring(i),
|
|
56
56
|
effect and effect.abilityTypeId
|
|
57
57
|
)
|
|
@@ -145,7 +145,7 @@ __TS__SetDescriptor(
|
|
|
145
145
|
"techTreeDependencies",
|
|
146
146
|
{
|
|
147
147
|
get = function(self)
|
|
148
|
-
local techTreeDependencyIds = self:
|
|
148
|
+
local techTreeDependencyIds = self:getObjectDataEntryNumericIdsLevelField("greq")
|
|
149
149
|
local techTreeDependencyInternalLevels = self:getNumbersLevelField("grqc")
|
|
150
150
|
return mapIndexed(
|
|
151
151
|
techTreeDependencyIds,
|
|
@@ -177,7 +177,7 @@ __TS__SetDescriptor(
|
|
|
177
177
|
function(level) return level + 1 end
|
|
178
178
|
)
|
|
179
179
|
end
|
|
180
|
-
self:
|
|
180
|
+
self:setObjectDataEntryNumericIdsLevelField("greq", techTreeDependencyIds)
|
|
181
181
|
self:setNumbersLevelField("grqc", techTreeDependencyInternalLevels)
|
|
182
182
|
end
|
|
183
183
|
},
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/** @noSelfInFile */
|
|
2
2
|
import { AttachmentPreset, AttachmentPresetInput } from "./auxiliary/attachment-preset";
|
|
3
3
|
import { MutableKeys } from "../../utility/types";
|
|
4
|
-
export type ObjectDataEntryId = number & {
|
|
4
|
+
export type ObjectDataEntryId = (number | string) & {
|
|
5
5
|
readonly __objectDataEntryId: unique symbol;
|
|
6
6
|
};
|
|
7
7
|
export type ObjectDataEntryIdType<T extends ObjectDataEntry> = T extends ObjectDataEntry<infer Id> ? Id : never;
|
|
@@ -18,14 +18,16 @@ export declare abstract class ObjectDataEntry<Id extends ObjectDataEntryId = Obj
|
|
|
18
18
|
private readonly levelFieldParametersByField;
|
|
19
19
|
private readonly maxAffectedLevelByField;
|
|
20
20
|
private _isInternal;
|
|
21
|
+
private get type();
|
|
21
22
|
get isInternal(): boolean;
|
|
22
|
-
|
|
23
|
+
static get idType(): "number" | "string";
|
|
24
|
+
protected static generateId(): number | string;
|
|
23
25
|
protected static getObjectData(map: WarMap): WarObjects;
|
|
24
|
-
static getAllIdsByBaseIds<T extends ObjectDataEntry>(this: ObjectDataEntryAbstractConstructor<T>, baseIds: number | number[]): ObjectDataEntryIdType<T>[];
|
|
25
|
-
static create<T extends ObjectDataEntry>(this: ObjectDataEntryConstructor<T>, ...args: [id?: number, properties?: ObjectDataEntryProperties<T>] | [properties: ObjectDataEntryProperties<T>]): T;
|
|
26
|
-
static getAllByBaseIds<T extends ObjectDataEntry>(this: ObjectDataEntryAbstractConstructor<T>, baseIds: number | number[]): T[];
|
|
26
|
+
static getAllIdsByBaseIds<T extends ObjectDataEntry>(this: ObjectDataEntryAbstractConstructor<T>, baseIds: number | number[] | string | string[]): ObjectDataEntryIdType<T>[];
|
|
27
|
+
static create<T extends ObjectDataEntry>(this: ObjectDataEntryConstructor<T>, ...args: [id?: number | string, properties?: ObjectDataEntryProperties<T>] | [properties: ObjectDataEntryProperties<T>]): T;
|
|
28
|
+
static getAllByBaseIds<T extends ObjectDataEntry>(this: ObjectDataEntryAbstractConstructor<T>, baseIds: number | number[] | string | string[]): T[];
|
|
27
29
|
static getAll<T extends ObjectDataEntry>(this: ObjectDataEntryAbstractConstructor<T>): T[];
|
|
28
|
-
static of<T extends ObjectDataEntry>(this: ObjectDataEntryAbstractConstructor<T>, id: number): T | undefined;
|
|
30
|
+
static of<T extends ObjectDataEntry>(this: ObjectDataEntryAbstractConstructor<T>, id: number | string): T | undefined;
|
|
29
31
|
constructor(object: WarObject);
|
|
30
32
|
get id(): Id;
|
|
31
33
|
get baseId(): Id;
|
|
@@ -42,8 +44,8 @@ export declare abstract class ObjectDataEntry<Id extends ObjectDataEntryId = Obj
|
|
|
42
44
|
protected setNumberField(field: string, value: number): void;
|
|
43
45
|
protected getStringField(field: string): string;
|
|
44
46
|
protected setStringField(field: string, value: string): void;
|
|
45
|
-
protected
|
|
46
|
-
protected
|
|
47
|
+
protected getObjectDataEntryNumericIdField<Id extends ObjectDataEntryId & number>(field: string): Id;
|
|
48
|
+
protected setObjectDataEntryNumericIdField<Id extends ObjectDataEntryId & number>(field: string, value: Id): void;
|
|
47
49
|
protected getAttachmentPresetField(modelPathField: string, nodeFQNField: string): AttachmentPreset | undefined;
|
|
48
50
|
protected setAttachmentPresetField(modelPathField: string, nodeFQNField: string, attachmentPreset: AttachmentPresetInput | undefined): void;
|
|
49
51
|
protected getBooleansField(field: string): boolean[];
|
|
@@ -52,8 +54,8 @@ export declare abstract class ObjectDataEntry<Id extends ObjectDataEntryId = Obj
|
|
|
52
54
|
protected setNumbersField(field: string, values: number[]): void;
|
|
53
55
|
protected getStringsField(field: string): string[];
|
|
54
56
|
protected setStringsField(field: string, values: string[]): void;
|
|
55
|
-
protected
|
|
56
|
-
protected
|
|
57
|
+
protected getObjectDataEntryNumericIdsField<Id extends ObjectDataEntryId & number>(field: string): Id[];
|
|
58
|
+
protected setObjectDataEntryNumericIdsField<Id extends ObjectDataEntryId & number>(field: string, values: Id[]): void;
|
|
57
59
|
protected getAttachmentPresetListField(modelPathListField: string, nodeFQNFields: string[]): AttachmentPreset[];
|
|
58
60
|
protected setAttachmentPresetListField(modelPathListField: string, nodeFQNFields: string[], lengthField: string, attachmentPresets: AttachmentPresetInput[]): void;
|
|
59
61
|
protected setFlagLevelFieldValue(fieldId: string, flag: 1 | 2 | 4 | 8 | 16, supplier: ObjectDataEntryLevelFieldValueSupplier<boolean>): void;
|
|
@@ -64,16 +66,16 @@ export declare abstract class ObjectDataEntry<Id extends ObjectDataEntryId = Obj
|
|
|
64
66
|
protected setNumberLevelField(field: string, values: ObjectDataEntryLevelFieldValueSupplier<number>): void;
|
|
65
67
|
protected getStringLevelField(field: string): string[];
|
|
66
68
|
protected setStringLevelField(field: string, values: ObjectDataEntryLevelFieldValueSupplier<string>): void;
|
|
67
|
-
protected
|
|
68
|
-
protected
|
|
69
|
+
protected getObjectDataEntryNumericIdLevelField<Id extends ObjectDataEntryId & number>(field: string): Id[];
|
|
70
|
+
protected setObjectDataEntryNumericIdLevelField<Id extends ObjectDataEntryId & number>(field: string, values: ObjectDataEntryLevelFieldValueSupplier<Id>): void;
|
|
69
71
|
protected getBooleansLevelField(field: string): boolean[][];
|
|
70
72
|
protected setBooleansLevelField(field: string, values: ObjectDataEntryLevelFieldValueSupplier<boolean[]>): void;
|
|
71
73
|
protected getNumbersLevelField(field: string): number[][];
|
|
72
74
|
protected setNumbersLevelField(field: string, values: ObjectDataEntryLevelFieldValueSupplier<number[]>): void;
|
|
73
75
|
protected getStringsLevelField(field: string): string[][];
|
|
74
76
|
protected setStringsLevelField(field: string, values: ObjectDataEntryLevelFieldValueSupplier<string[]>): void;
|
|
75
|
-
protected
|
|
76
|
-
protected
|
|
77
|
+
protected getObjectDataEntryNumericIdsLevelField<T extends ObjectDataEntryId & number>(field: string): T[][];
|
|
78
|
+
protected setObjectDataEntryNumericIdsLevelField<T extends ObjectDataEntryId & number>(field: string, values: ObjectDataEntryLevelFieldValueSupplier<T[]>): void;
|
|
77
79
|
private getLevelField;
|
|
78
80
|
private setLevelField;
|
|
79
81
|
}
|