warscript 0.0.1-dev.9b0216a → 0.0.1-dev.9cbb1ff
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/config.d.ts +5 -0
- package/config.lua +10 -0
- package/core/types/effect.d.ts +1 -3
- package/core/types/effect.lua +26 -29
- package/core/types/sound.d.ts +17 -24
- package/core/types/sound.lua +99 -24
- package/core/types/timer.d.ts +6 -7
- package/core/types/timer.lua +18 -21
- package/core/util.lua +6 -1
- package/engine/behaviour/ability/apply-buff.d.ts +5 -0
- package/engine/behaviour/ability/apply-buff.lua +32 -0
- 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/emulate-impact.lua +11 -5
- package/engine/behaviour/ability.d.ts +12 -3
- package/engine/behaviour/ability.lua +66 -7
- package/engine/behaviour/unit.d.ts +2 -0
- package/engine/buff.d.ts +56 -41
- package/engine/buff.lua +295 -228
- package/engine/internal/ability.lua +16 -15
- package/engine/internal/item/ability.lua +29 -4
- package/engine/internal/item.d.ts +2 -2
- package/engine/internal/item.lua +56 -25
- package/engine/internal/mechanics/ability-duration.lua +1 -1
- package/engine/internal/object-data/auto-attack-speed-increase.d.ts +1 -1
- package/engine/internal/object-data/auto-attack-speed-increase.lua +2 -0
- package/engine/internal/object-data/evasion-probability.d.ts +2 -0
- package/engine/internal/object-data/evasion-probability.lua +16 -0
- package/engine/internal/unit/add-item-to-slot-init.d.ts +2 -0
- package/engine/internal/unit/add-item-to-slot-init.lua +23 -0
- package/engine/internal/unit/add-item-to-slot.d.ts +2 -0
- package/engine/internal/unit/add-item-to-slot.lua +52 -0
- package/engine/internal/unit/bonus.d.ts +2 -0
- package/engine/internal/unit/bonus.lua +17 -0
- package/engine/internal/unit/ignore-events-items.d.ts +2 -0
- package/engine/internal/unit/ignore-events-items.lua +5 -0
- package/engine/internal/unit/item.lua +3 -4
- package/engine/internal/unit.d.ts +13 -1
- package/engine/internal/unit.lua +74 -13
- package/engine/lightning.d.ts +12 -5
- package/engine/lightning.lua +48 -14
- package/engine/object-data/auxiliary/animation-name.d.ts +1 -0
- package/engine/object-data/auxiliary/animation-name.lua +16 -0
- 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/movement-type.d.ts +7 -7
- package/engine/object-data/auxiliary/movement-type.lua +22 -0
- 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/auxiliary/unit-attribute.d.ts +6 -0
- package/engine/object-data/auxiliary/unit-attribute.lua +9 -0
- package/engine/object-data/entry/ability-type/berserk.d.ts +2 -0
- package/engine/object-data/entry/ability-type/berserk.lua +13 -0
- package/engine/object-data/entry/ability-type/blank-configurable.lua +12 -1
- 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/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/slow-poison.d.ts +10 -0
- package/engine/object-data/entry/ability-type/slow-poison.lua +58 -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 +81 -21
- package/engine/object-data/entry/buff-type/applicable.lua +18 -37
- package/engine/object-data/entry/buff-type.d.ts +6 -12
- package/engine/object-data/entry/buff-type.lua +13 -29
- 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 +8 -1
- package/engine/object-data/entry/unit-type.lua +69 -10
- 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/object-field/ability.d.ts +5 -2
- package/engine/object-field/ability.lua +3 -0
- package/engine/object-field.d.ts +11 -3
- package/engine/object-field.lua +162 -76
- package/engine/standard/entries/buff-type.d.ts +3 -0
- package/engine/standard/entries/buff-type.lua +3 -0
- package/engine/standard/entries/sound-preset.d.ts +10 -0
- package/engine/standard/entries/sound-preset.lua +10 -0
- package/engine/unit.d.ts +1 -0
- package/engine/unit.lua +1 -0
- package/objutil/unit.lua +8 -0
- package/package.json +2 -2
- package/utility/linked-set.d.ts +1 -0
- package/utility/linked-set.lua +3 -0
- package/utility/lua-maps.d.ts +3 -0
- package/utility/lua-maps.lua +16 -0
- package/utility/lua-sets.d.ts +1 -0
- package/utility/lua-sets.lua +3 -0
- 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 & {
|
|
@@ -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,8 @@ 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 ____config = require("config")
|
|
26
|
+
local WarscriptConfig = ____config.WarscriptConfig
|
|
22
27
|
local getOrCreateUnitTypeWeapons
|
|
23
28
|
____exports.UnitTypeWeapon = __TS__Class()
|
|
24
29
|
local UnitTypeWeapon = ____exports.UnitTypeWeapon
|
|
@@ -345,10 +350,10 @@ __TS__SetDescriptor(
|
|
|
345
350
|
"abilityTypeIds",
|
|
346
351
|
{
|
|
347
352
|
get = function(self)
|
|
348
|
-
return self:
|
|
353
|
+
return self:getObjectDataEntryNumericIdsField("uabi")
|
|
349
354
|
end,
|
|
350
355
|
set = function(self, abilityTypeIds)
|
|
351
|
-
self:
|
|
356
|
+
self:setObjectDataEntryNumericIdsField("uabi", abilityTypeIds)
|
|
352
357
|
end
|
|
353
358
|
},
|
|
354
359
|
true
|
|
@@ -358,10 +363,10 @@ __TS__SetDescriptor(
|
|
|
358
363
|
"defaultActiveAbilityTypeId",
|
|
359
364
|
{
|
|
360
365
|
get = function(self)
|
|
361
|
-
return self:
|
|
366
|
+
return self:getObjectDataEntryNumericIdsField("udaa")[1]
|
|
362
367
|
end,
|
|
363
368
|
set = function(self, abilityTypeId)
|
|
364
|
-
self:
|
|
369
|
+
self:setObjectDataEntryNumericIdsField(
|
|
365
370
|
"udaa",
|
|
366
371
|
arrayOfNotNull(abilityTypeId)
|
|
367
372
|
)
|
|
@@ -807,6 +812,9 @@ __TS__SetDescriptor(
|
|
|
807
812
|
end,
|
|
808
813
|
set = function(self, modelPath)
|
|
809
814
|
self:setStringField("umdl", modelPath)
|
|
815
|
+
if not self.isPortraitModelPathSet and WarscriptConfig.AUTOMATICALLY_SET_UNIT_TYPE_PORTRAIT_MODEL_PATH then
|
|
816
|
+
self:setStringField("upor", "")
|
|
817
|
+
end
|
|
810
818
|
end
|
|
811
819
|
},
|
|
812
820
|
true
|
|
@@ -820,6 +828,9 @@ __TS__SetDescriptor(
|
|
|
820
828
|
end,
|
|
821
829
|
set = function(self, modelPathSD)
|
|
822
830
|
self:setStringField("umdl:sd", modelPathSD)
|
|
831
|
+
if not self.isPortraitModelPathSet and WarscriptConfig.AUTOMATICALLY_SET_UNIT_TYPE_PORTRAIT_MODEL_PATH then
|
|
832
|
+
self:setStringField("upor:sd", "")
|
|
833
|
+
end
|
|
823
834
|
end
|
|
824
835
|
},
|
|
825
836
|
true
|
|
@@ -833,6 +844,51 @@ __TS__SetDescriptor(
|
|
|
833
844
|
end,
|
|
834
845
|
set = function(self, modelPathHD)
|
|
835
846
|
self:setStringField("umdl:hd", modelPathHD)
|
|
847
|
+
if not self.isPortraitModelPathSet and WarscriptConfig.AUTOMATICALLY_SET_UNIT_TYPE_PORTRAIT_MODEL_PATH then
|
|
848
|
+
self:setStringField("upor:hd", "")
|
|
849
|
+
end
|
|
850
|
+
end
|
|
851
|
+
},
|
|
852
|
+
true
|
|
853
|
+
)
|
|
854
|
+
__TS__SetDescriptor(
|
|
855
|
+
UnitType.prototype,
|
|
856
|
+
"portraitModelPath",
|
|
857
|
+
{
|
|
858
|
+
get = function(self)
|
|
859
|
+
return self:getStringField("upor")
|
|
860
|
+
end,
|
|
861
|
+
set = function(self, portraitModelPath)
|
|
862
|
+
self:setStringField("upor", portraitModelPath)
|
|
863
|
+
self.isPortraitModelPathSet = true
|
|
864
|
+
end
|
|
865
|
+
},
|
|
866
|
+
true
|
|
867
|
+
)
|
|
868
|
+
__TS__SetDescriptor(
|
|
869
|
+
UnitType.prototype,
|
|
870
|
+
"portraitModelPathSD",
|
|
871
|
+
{
|
|
872
|
+
get = function(self)
|
|
873
|
+
return self:getStringField("upor:sd")
|
|
874
|
+
end,
|
|
875
|
+
set = function(self, portraitModelPathSD)
|
|
876
|
+
self:setStringField("upor:sd", portraitModelPathSD)
|
|
877
|
+
self.isPortraitModelPathSet = true
|
|
878
|
+
end
|
|
879
|
+
},
|
|
880
|
+
true
|
|
881
|
+
)
|
|
882
|
+
__TS__SetDescriptor(
|
|
883
|
+
UnitType.prototype,
|
|
884
|
+
"portraitModelPathHD",
|
|
885
|
+
{
|
|
886
|
+
get = function(self)
|
|
887
|
+
return self:getStringField("upor:hd")
|
|
888
|
+
end,
|
|
889
|
+
set = function(self, portraitModelPathHD)
|
|
890
|
+
self:setStringField("upor:hd", portraitModelPathHD)
|
|
891
|
+
self.isPortraitModelPathSet = true
|
|
836
892
|
end
|
|
837
893
|
},
|
|
838
894
|
true
|
|
@@ -1288,10 +1344,13 @@ __TS__SetDescriptor(
|
|
|
1288
1344
|
"movementType",
|
|
1289
1345
|
{
|
|
1290
1346
|
get = function(self)
|
|
1291
|
-
return self:getStringField("umvt")
|
|
1347
|
+
return stringToMovementType(self:getStringField("umvt"))
|
|
1292
1348
|
end,
|
|
1293
1349
|
set = function(self, movementType)
|
|
1294
|
-
self:setStringField(
|
|
1350
|
+
self:setStringField(
|
|
1351
|
+
"umvt",
|
|
1352
|
+
movementTypeToString(movementType)
|
|
1353
|
+
)
|
|
1295
1354
|
end
|
|
1296
1355
|
},
|
|
1297
1356
|
true
|
|
@@ -1496,10 +1555,10 @@ __TS__SetDescriptor(
|
|
|
1496
1555
|
"affectingUpgradeIds",
|
|
1497
1556
|
{
|
|
1498
1557
|
get = function(self)
|
|
1499
|
-
return self:
|
|
1558
|
+
return self:getObjectDataEntryNumericIdsField("upgr")
|
|
1500
1559
|
end,
|
|
1501
1560
|
set = function(self, affectingUpgradeIds)
|
|
1502
|
-
self:
|
|
1561
|
+
self:setObjectDataEntryNumericIdsField("upgr", affectingUpgradeIds)
|
|
1503
1562
|
end
|
|
1504
1563
|
},
|
|
1505
1564
|
true
|
|
@@ -1582,10 +1641,10 @@ __TS__SetDescriptor(
|
|
|
1582
1641
|
"heroAbilityTypeIds",
|
|
1583
1642
|
{
|
|
1584
1643
|
get = function(self)
|
|
1585
|
-
return self:
|
|
1644
|
+
return self:getObjectDataEntryNumericIdsField("uhab")
|
|
1586
1645
|
end,
|
|
1587
1646
|
set = function(self, heroAbilityTypeIds)
|
|
1588
|
-
self:
|
|
1647
|
+
self:setObjectDataEntryNumericIdsField("uhab", heroAbilityTypeIds)
|
|
1589
1648
|
end
|
|
1590
1649
|
},
|
|
1591
1650
|
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
|
}
|