warscript 0.0.1-dev.ff2a62d → 0.0.1-dev.ff5dbcd
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 +13 -3
- package/core/types/effect.lua +116 -17
- package/core/types/frame.d.ts +6 -0
- package/core/types/frame.lua +91 -1
- package/core/types/sound.d.ts +1 -0
- package/core/types/sound.lua +36 -2
- package/core/util.d.ts +1 -1
- package/core/util.lua +18 -1
- package/engine/behavior.d.ts +2 -2
- package/engine/behavior.lua +6 -6
- package/engine/behaviour/ability/always-enabled.d.ts +7 -0
- package/engine/behaviour/ability/always-enabled.lua +31 -0
- package/engine/behaviour/ability/apply-buff.d.ts +8 -5
- package/engine/behaviour/ability/apply-buff.lua +32 -0
- package/engine/behaviour/ability/emulate-impact.d.ts +6 -0
- package/engine/behaviour/ability/emulate-impact.lua +28 -0
- package/engine/behaviour/ability/instant-impact.d.ts +2 -2
- package/engine/behaviour/ability/instant-impact.lua +4 -19
- package/engine/behaviour/ability/on-command-impact.d.ts +8 -0
- package/engine/behaviour/ability/on-command-impact.lua +25 -0
- package/engine/behaviour/ability/remove-buffs.d.ts +16 -0
- package/engine/behaviour/ability/remove-buffs.lua +28 -0
- package/engine/behaviour/ability.d.ts +15 -3
- package/engine/behaviour/ability.lua +93 -34
- package/engine/behaviour/unit.d.ts +5 -0
- package/engine/behaviour/unit.lua +20 -0
- package/engine/buff.d.ts +78 -42
- package/engine/buff.lua +351 -223
- package/engine/internal/ability.d.ts +16 -13
- package/engine/internal/ability.lua +80 -76
- package/engine/internal/item/ability.lua +106 -0
- package/engine/internal/item+owner.lua +2 -2
- package/engine/internal/item.d.ts +2 -2
- package/engine/internal/item.lua +56 -25
- package/engine/internal/misc/ability-disable-counter.d.ts +2 -0
- package/engine/internal/misc/ability-disable-counter.lua +13 -0
- 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/ability.d.ts +10 -1
- package/engine/internal/unit/ability.lua +36 -14
- 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 +6 -2
- package/engine/internal/unit/bonus.lua +23 -1
- 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.d.ts +24 -0
- package/engine/internal/unit/item.lua +78 -0
- package/engine/internal/unit/main-selected.d.ts +13 -0
- package/engine/internal/unit/main-selected.lua +51 -0
- package/engine/internal/unit+ability.lua +2 -2
- package/engine/internal/unit-missile-launch.lua +24 -5
- package/engine/internal/unit.d.ts +26 -10
- package/engine/internal/unit.lua +162 -81
- package/engine/internal/utility.lua +12 -0
- package/engine/lightning.d.ts +12 -5
- package/engine/lightning.lua +48 -14
- package/engine/local-client.d.ts +7 -2
- package/engine/local-client.lua +82 -0
- 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/sound-preset-name.d.ts +5 -1
- package/engine/object-data/auxiliary/tech-tree-dependency.d.ts +1 -1
- package/engine/object-data/entry/ability-type/blank-configurable.lua +12 -1
- 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/feral-spirit.lua +2 -2
- package/engine/object-data/entry/ability-type/phoenix-morph.lua +4 -4
- 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.d.ts +8 -6
- package/engine/object-data/entry/ability-type.lua +62 -27
- package/engine/object-data/entry/buff-type/applicable.lua +13 -37
- 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 +15 -1
- package/engine/object-data/entry/item-type.lua +93 -2
- package/engine/object-data/entry/lightning-type.d.ts +1 -1
- package/engine/object-data/entry/sound-preset.d.ts +16 -0
- package/engine/object-data/entry/sound-preset.lua +36 -0
- package/engine/object-data/entry/unit-type.d.ts +8 -1
- package/engine/object-data/entry/unit-type.lua +61 -8
- 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-data/utility/object-data-entry-id-generator.lua +7 -0
- package/engine/object-field/ability.d.ts +26 -3
- package/engine/object-field/ability.lua +54 -1
- package/engine/object-field.d.ts +2 -2
- package/engine/object-field.lua +4 -0
- package/engine/standard/entries/sound-preset.d.ts +10 -0
- package/engine/standard/entries/sound-preset.lua +10 -0
- package/engine/standard/fields/ability.d.ts +2 -0
- package/engine/standard/fields/ability.lua +2 -0
- package/engine/unit.d.ts +3 -0
- package/engine/unit.lua +3 -0
- package/index.d.ts +1 -0
- package/index.lua +1 -0
- package/net/socket.d.ts +7 -1
- package/net/socket.lua +45 -4
- package/network.d.ts +1 -0
- package/network.lua +3 -2
- package/objutil/buff.lua +1 -1
- package/objutil/unit.lua +8 -0
- package/package.json +2 -2
- package/patch-lua.d.ts +0 -0
- package/patch-lua.lua +10 -0
- package/utility/arrays.d.ts +8 -1
- package/utility/arrays.lua +34 -3
- package/utility/lazy.d.ts +2 -0
- package/utility/lazy.lua +14 -0
- package/utility/linked-set.d.ts +11 -2
- package/utility/linked-set.lua +5 -2
- package/utility/reflection.lua +11 -7
- package/utility/types.d.ts +1 -0
|
@@ -19,6 +19,8 @@ local ____entry = require("engine.object-data.entry")
|
|
|
19
19
|
local ObjectDataEntry = ____entry.ObjectDataEntry
|
|
20
20
|
local ____object_2Ddata_2Dentry_2Did_2Dgenerator = require("engine.object-data.utility.object-data-entry-id-generator")
|
|
21
21
|
local ObjectDataEntryIdGenerator = ____object_2Ddata_2Dentry_2Did_2Dgenerator.ObjectDataEntryIdGenerator
|
|
22
|
+
local ____config = require("config")
|
|
23
|
+
local WarscriptConfig = ____config.WarscriptConfig
|
|
22
24
|
local getOrCreateUnitTypeWeapons
|
|
23
25
|
____exports.UnitTypeWeapon = __TS__Class()
|
|
24
26
|
local UnitTypeWeapon = ____exports.UnitTypeWeapon
|
|
@@ -345,10 +347,10 @@ __TS__SetDescriptor(
|
|
|
345
347
|
"abilityTypeIds",
|
|
346
348
|
{
|
|
347
349
|
get = function(self)
|
|
348
|
-
return self:
|
|
350
|
+
return self:getObjectDataEntryNumericIdsField("uabi")
|
|
349
351
|
end,
|
|
350
352
|
set = function(self, abilityTypeIds)
|
|
351
|
-
self:
|
|
353
|
+
self:setObjectDataEntryNumericIdsField("uabi", abilityTypeIds)
|
|
352
354
|
end
|
|
353
355
|
},
|
|
354
356
|
true
|
|
@@ -358,10 +360,10 @@ __TS__SetDescriptor(
|
|
|
358
360
|
"defaultActiveAbilityTypeId",
|
|
359
361
|
{
|
|
360
362
|
get = function(self)
|
|
361
|
-
return self:
|
|
363
|
+
return self:getObjectDataEntryNumericIdsField("udaa")[1]
|
|
362
364
|
end,
|
|
363
365
|
set = function(self, abilityTypeId)
|
|
364
|
-
self:
|
|
366
|
+
self:setObjectDataEntryNumericIdsField(
|
|
365
367
|
"udaa",
|
|
366
368
|
arrayOfNotNull(abilityTypeId)
|
|
367
369
|
)
|
|
@@ -807,6 +809,9 @@ __TS__SetDescriptor(
|
|
|
807
809
|
end,
|
|
808
810
|
set = function(self, modelPath)
|
|
809
811
|
self:setStringField("umdl", modelPath)
|
|
812
|
+
if not self.isPortraitModelPathSet and WarscriptConfig.AUTOMATICALLY_SET_UNIT_TYPE_PORTRAIT_MODEL_PATH then
|
|
813
|
+
self:setStringField("upor", "")
|
|
814
|
+
end
|
|
810
815
|
end
|
|
811
816
|
},
|
|
812
817
|
true
|
|
@@ -820,6 +825,9 @@ __TS__SetDescriptor(
|
|
|
820
825
|
end,
|
|
821
826
|
set = function(self, modelPathSD)
|
|
822
827
|
self:setStringField("umdl:sd", modelPathSD)
|
|
828
|
+
if not self.isPortraitModelPathSet and WarscriptConfig.AUTOMATICALLY_SET_UNIT_TYPE_PORTRAIT_MODEL_PATH then
|
|
829
|
+
self:setStringField("upor:sd", "")
|
|
830
|
+
end
|
|
823
831
|
end
|
|
824
832
|
},
|
|
825
833
|
true
|
|
@@ -833,6 +841,51 @@ __TS__SetDescriptor(
|
|
|
833
841
|
end,
|
|
834
842
|
set = function(self, modelPathHD)
|
|
835
843
|
self:setStringField("umdl:hd", modelPathHD)
|
|
844
|
+
if not self.isPortraitModelPathSet and WarscriptConfig.AUTOMATICALLY_SET_UNIT_TYPE_PORTRAIT_MODEL_PATH then
|
|
845
|
+
self:setStringField("upor:hd", "")
|
|
846
|
+
end
|
|
847
|
+
end
|
|
848
|
+
},
|
|
849
|
+
true
|
|
850
|
+
)
|
|
851
|
+
__TS__SetDescriptor(
|
|
852
|
+
UnitType.prototype,
|
|
853
|
+
"portraitModelPath",
|
|
854
|
+
{
|
|
855
|
+
get = function(self)
|
|
856
|
+
return self:getStringField("upor")
|
|
857
|
+
end,
|
|
858
|
+
set = function(self, portraitModelPath)
|
|
859
|
+
self:setStringField("upor", portraitModelPath)
|
|
860
|
+
self.isPortraitModelPathSet = true
|
|
861
|
+
end
|
|
862
|
+
},
|
|
863
|
+
true
|
|
864
|
+
)
|
|
865
|
+
__TS__SetDescriptor(
|
|
866
|
+
UnitType.prototype,
|
|
867
|
+
"portraitModelPathSD",
|
|
868
|
+
{
|
|
869
|
+
get = function(self)
|
|
870
|
+
return self:getStringField("upor:sd")
|
|
871
|
+
end,
|
|
872
|
+
set = function(self, portraitModelPathSD)
|
|
873
|
+
self:setStringField("upor:sd", portraitModelPathSD)
|
|
874
|
+
self.isPortraitModelPathSet = true
|
|
875
|
+
end
|
|
876
|
+
},
|
|
877
|
+
true
|
|
878
|
+
)
|
|
879
|
+
__TS__SetDescriptor(
|
|
880
|
+
UnitType.prototype,
|
|
881
|
+
"portraitModelPathHD",
|
|
882
|
+
{
|
|
883
|
+
get = function(self)
|
|
884
|
+
return self:getStringField("upor:hd")
|
|
885
|
+
end,
|
|
886
|
+
set = function(self, portraitModelPathHD)
|
|
887
|
+
self:setStringField("upor:hd", portraitModelPathHD)
|
|
888
|
+
self.isPortraitModelPathSet = true
|
|
836
889
|
end
|
|
837
890
|
},
|
|
838
891
|
true
|
|
@@ -1496,10 +1549,10 @@ __TS__SetDescriptor(
|
|
|
1496
1549
|
"affectingUpgradeIds",
|
|
1497
1550
|
{
|
|
1498
1551
|
get = function(self)
|
|
1499
|
-
return self:
|
|
1552
|
+
return self:getObjectDataEntryNumericIdsField("upgr")
|
|
1500
1553
|
end,
|
|
1501
1554
|
set = function(self, affectingUpgradeIds)
|
|
1502
|
-
self:
|
|
1555
|
+
self:setObjectDataEntryNumericIdsField("upgr", affectingUpgradeIds)
|
|
1503
1556
|
end
|
|
1504
1557
|
},
|
|
1505
1558
|
true
|
|
@@ -1582,10 +1635,10 @@ __TS__SetDescriptor(
|
|
|
1582
1635
|
"heroAbilityTypeIds",
|
|
1583
1636
|
{
|
|
1584
1637
|
get = function(self)
|
|
1585
|
-
return self:
|
|
1638
|
+
return self:getObjectDataEntryNumericIdsField("uhab")
|
|
1586
1639
|
end,
|
|
1587
1640
|
set = function(self, heroAbilityTypeIds)
|
|
1588
|
-
self:
|
|
1641
|
+
self:setObjectDataEntryNumericIdsField("uhab", heroAbilityTypeIds)
|
|
1589
1642
|
end
|
|
1590
1643
|
},
|
|
1591
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
|
}
|
|
@@ -7,10 +7,11 @@ local __TS__ClassExtends = ____lualib.__TS__ClassExtends
|
|
|
7
7
|
local __TS__InstanceOf = ____lualib.__TS__InstanceOf
|
|
8
8
|
local __TS__ArrayMap = ____lualib.__TS__ArrayMap
|
|
9
9
|
local __TS__SetDescriptor = ____lualib.__TS__SetDescriptor
|
|
10
|
+
local __TS__ObjectDefineProperty = ____lualib.__TS__ObjectDefineProperty
|
|
10
11
|
local __TS__StringSplit = ____lualib.__TS__StringSplit
|
|
11
12
|
local __TS__ArrayFilter = ____lualib.__TS__ArrayFilter
|
|
12
13
|
local ____exports = {}
|
|
13
|
-
local booleanToData, dataToBoolean, numberToData, dataToNumber, stringToData, dataToString, objectDataEntryIdToData, dataToObjectDataEntryId, booleansToData, dataToBooleans, numbersToData, dataToNumbers, stringsToData, dataToStrings,
|
|
14
|
+
local booleanToData, dataToBoolean, numberToData, dataToNumber, stringToData, dataToString, objectDataEntryNumericIdToData, dataToObjectDataEntryNumericId, objectDataEntryIdToData, dataToObjectDataEntryId, booleansToData, dataToBooleans, numbersToData, dataToNumbers, stringsToData, dataToStrings, objectDataEntryNumericIdsToData, dataToObjectDataEntryNumericIds, isDataNotBlank
|
|
14
15
|
local ____attachment_2Dpreset = require("engine.object-data.auxiliary.attachment-preset")
|
|
15
16
|
local extractAttachmentPresetInputModelPath = ____attachment_2Dpreset.extractAttachmentPresetInputModelPath
|
|
16
17
|
local extractAttachmentPresetInputNodeFQN = ____attachment_2Dpreset.extractAttachmentPresetInputNodeFQN
|
|
@@ -124,7 +125,7 @@ function ObjectDataEntry.getAllByBaseIds(self, baseIds)
|
|
|
124
125
|
local constructor = self
|
|
125
126
|
for id, object in pairs(constructor:getObjectData(currentMap).all) do
|
|
126
127
|
if dataBaseIds[object.parentId or id] ~= nil then
|
|
127
|
-
local objectDataEntry = self:of(dataToObjectDataEntryId(id))
|
|
128
|
+
local objectDataEntry = self:of(dataToObjectDataEntryId(id, self.idType))
|
|
128
129
|
if objectDataEntry ~= nil and not objectDataEntry.isInternal then
|
|
129
130
|
result[#result + 1] = objectDataEntry
|
|
130
131
|
end
|
|
@@ -139,7 +140,7 @@ function ObjectDataEntry.getAll(self)
|
|
|
139
140
|
local constructor = self
|
|
140
141
|
local result = {}
|
|
141
142
|
for id in pairs(constructor:getObjectData(currentMap).all) do
|
|
142
|
-
local objectDataEntry = self:of(dataToObjectDataEntryId(id))
|
|
143
|
+
local objectDataEntry = self:of(dataToObjectDataEntryId(id, self.idType))
|
|
143
144
|
if objectDataEntry ~= nil and not objectDataEntry.isInternal then
|
|
144
145
|
result[#result + 1] = objectDataEntry
|
|
145
146
|
end
|
|
@@ -156,9 +157,9 @@ function ObjectDataEntry.of(self, id)
|
|
|
156
157
|
if object == nil then
|
|
157
158
|
return nil
|
|
158
159
|
end
|
|
159
|
-
local objectDataEntry = objectDataEntryByObjectDataEntryId[dataToObjectDataEntryId(object.id)]
|
|
160
|
+
local objectDataEntry = objectDataEntryByObjectDataEntryId[dataToObjectDataEntryId(object.id, self.idType)]
|
|
160
161
|
if objectDataEntry == nil then
|
|
161
|
-
if not constructor.IS_SYNTHETIC and (self.BASE_ID == 0 or dataToObjectDataEntryId(object.parentId) == self.BASE_ID) then
|
|
162
|
+
if not constructor.IS_SYNTHETIC and (self.BASE_ID == 0 or dataToObjectDataEntryId(object.parentId, self.idType) == self.BASE_ID) then
|
|
162
163
|
local AbstractObjectDataEntryView = __TS__Class()
|
|
163
164
|
AbstractObjectDataEntryView.name = "AbstractObjectDataEntryView"
|
|
164
165
|
__TS__ClassExtends(AbstractObjectDataEntryView, constructor)
|
|
@@ -231,13 +232,13 @@ function ObjectDataEntry.prototype.setStringField(self, field, value)
|
|
|
231
232
|
stringToData(value)
|
|
232
233
|
)
|
|
233
234
|
end
|
|
234
|
-
function ObjectDataEntry.prototype.
|
|
235
|
-
return
|
|
235
|
+
function ObjectDataEntry.prototype.getObjectDataEntryNumericIdField(self, field)
|
|
236
|
+
return dataToObjectDataEntryNumericId(self.object:getField(field))
|
|
236
237
|
end
|
|
237
|
-
function ObjectDataEntry.prototype.
|
|
238
|
+
function ObjectDataEntry.prototype.setObjectDataEntryNumericIdField(self, field, value)
|
|
238
239
|
self.object:setField(
|
|
239
240
|
field,
|
|
240
|
-
|
|
241
|
+
objectDataEntryNumericIdToData(value)
|
|
241
242
|
)
|
|
242
243
|
end
|
|
243
244
|
function ObjectDataEntry.prototype.getAttachmentPresetField(self, modelPathField, nodeFQNField)
|
|
@@ -285,13 +286,13 @@ function ObjectDataEntry.prototype.setStringsField(self, field, values)
|
|
|
285
286
|
stringsToData(values)
|
|
286
287
|
)
|
|
287
288
|
end
|
|
288
|
-
function ObjectDataEntry.prototype.
|
|
289
|
-
return
|
|
289
|
+
function ObjectDataEntry.prototype.getObjectDataEntryNumericIdsField(self, field)
|
|
290
|
+
return dataToObjectDataEntryNumericIds(self.object:getField(field))
|
|
290
291
|
end
|
|
291
|
-
function ObjectDataEntry.prototype.
|
|
292
|
+
function ObjectDataEntry.prototype.setObjectDataEntryNumericIdsField(self, field, values)
|
|
292
293
|
self.object:setField(
|
|
293
294
|
field,
|
|
294
|
-
|
|
295
|
+
objectDataEntryNumericIdsToData(values)
|
|
295
296
|
)
|
|
296
297
|
end
|
|
297
298
|
function ObjectDataEntry.prototype.getAttachmentPresetListField(self, modelPathListField, nodeFQNFields)
|
|
@@ -369,16 +370,16 @@ function ObjectDataEntry.prototype.setStringLevelField(self, field, values)
|
|
|
369
370
|
stringToData
|
|
370
371
|
)
|
|
371
372
|
end
|
|
372
|
-
function ObjectDataEntry.prototype.
|
|
373
|
-
return self:getLevelField(field,
|
|
373
|
+
function ObjectDataEntry.prototype.getObjectDataEntryNumericIdLevelField(self, field)
|
|
374
|
+
return self:getLevelField(field, dataToObjectDataEntryNumericId)
|
|
374
375
|
end
|
|
375
|
-
function ObjectDataEntry.prototype.
|
|
376
|
+
function ObjectDataEntry.prototype.setObjectDataEntryNumericIdLevelField(self, field, values)
|
|
376
377
|
self:setLevelField(
|
|
377
378
|
field,
|
|
378
379
|
values,
|
|
379
380
|
____exports.extractObjectDataEntryLevelFieldValue,
|
|
380
|
-
|
|
381
|
-
|
|
381
|
+
dataToObjectDataEntryNumericId,
|
|
382
|
+
objectDataEntryNumericIdToData
|
|
382
383
|
)
|
|
383
384
|
end
|
|
384
385
|
function ObjectDataEntry.prototype.getBooleansLevelField(self, field)
|
|
@@ -417,23 +418,26 @@ function ObjectDataEntry.prototype.setStringsLevelField(self, field, values)
|
|
|
417
418
|
stringsToData
|
|
418
419
|
)
|
|
419
420
|
end
|
|
420
|
-
function ObjectDataEntry.prototype.
|
|
421
|
-
return self:getLevelField(field,
|
|
421
|
+
function ObjectDataEntry.prototype.getObjectDataEntryNumericIdsLevelField(self, field)
|
|
422
|
+
return self:getLevelField(field, dataToObjectDataEntryNumericIds)
|
|
422
423
|
end
|
|
423
|
-
function ObjectDataEntry.prototype.
|
|
424
|
+
function ObjectDataEntry.prototype.setObjectDataEntryNumericIdsLevelField(self, field, values)
|
|
424
425
|
self:setLevelField(
|
|
425
426
|
field,
|
|
426
427
|
values,
|
|
427
428
|
____exports.extractObjectDataEntryLevelArrayFieldValue,
|
|
428
|
-
|
|
429
|
-
|
|
429
|
+
dataToObjectDataEntryNumericIds,
|
|
430
|
+
objectDataEntryNumericIdsToData
|
|
430
431
|
)
|
|
431
432
|
end
|
|
432
433
|
function ObjectDataEntry.prototype.getLevelField(self, field, dataToValue)
|
|
433
434
|
local values = {}
|
|
434
435
|
local object = self.object
|
|
435
436
|
for level = 1, tonumber(object:getField("levels")) or 1 do
|
|
436
|
-
values[level] = dataToValue(
|
|
437
|
+
values[level] = dataToValue(
|
|
438
|
+
object:getField((field .. "+") .. tostring(level)),
|
|
439
|
+
"number"
|
|
440
|
+
)
|
|
437
441
|
end
|
|
438
442
|
return values
|
|
439
443
|
end
|
|
@@ -473,6 +477,14 @@ function ObjectDataEntry.prototype.setLevelField(self, field, supplier, extracto
|
|
|
473
477
|
end
|
|
474
478
|
ObjectDataEntry.BASE_ID = 0
|
|
475
479
|
ObjectDataEntry.IS_SYNTHETIC = false
|
|
480
|
+
__TS__SetDescriptor(
|
|
481
|
+
ObjectDataEntry.prototype,
|
|
482
|
+
"type",
|
|
483
|
+
{get = function(self)
|
|
484
|
+
return self.constructor
|
|
485
|
+
end},
|
|
486
|
+
true
|
|
487
|
+
)
|
|
476
488
|
__TS__SetDescriptor(
|
|
477
489
|
ObjectDataEntry.prototype,
|
|
478
490
|
"isInternal",
|
|
@@ -491,11 +503,18 @@ __TS__SetDescriptor(
|
|
|
491
503
|
},
|
|
492
504
|
true
|
|
493
505
|
)
|
|
506
|
+
__TS__ObjectDefineProperty(
|
|
507
|
+
ObjectDataEntry,
|
|
508
|
+
"idType",
|
|
509
|
+
{get = function(self)
|
|
510
|
+
return type(self.BASE_ID) == "number" and "number" or "string"
|
|
511
|
+
end}
|
|
512
|
+
)
|
|
494
513
|
__TS__SetDescriptor(
|
|
495
514
|
ObjectDataEntry.prototype,
|
|
496
515
|
"id",
|
|
497
516
|
{get = function(self)
|
|
498
|
-
return dataToObjectDataEntryId(self.object.id)
|
|
517
|
+
return dataToObjectDataEntryId(self.object.id, self.type.idType)
|
|
499
518
|
end},
|
|
500
519
|
true
|
|
501
520
|
)
|
|
@@ -503,7 +522,7 @@ __TS__SetDescriptor(
|
|
|
503
522
|
ObjectDataEntry.prototype,
|
|
504
523
|
"baseId",
|
|
505
524
|
{get = function(self)
|
|
506
|
-
return dataToObjectDataEntryId(self.object.parentId or self.object.id)
|
|
525
|
+
return dataToObjectDataEntryId(self.object.parentId or self.object.id, self.type.idType)
|
|
507
526
|
end},
|
|
508
527
|
true
|
|
509
528
|
)
|
|
@@ -533,10 +552,10 @@ end
|
|
|
533
552
|
dataToString = function(data)
|
|
534
553
|
return tostring(data or "")
|
|
535
554
|
end
|
|
536
|
-
|
|
555
|
+
objectDataEntryNumericIdToData = function(value)
|
|
537
556
|
return value == 0 and "" or string.pack(">I4", value)
|
|
538
557
|
end
|
|
539
|
-
|
|
558
|
+
dataToObjectDataEntryNumericId = function(data)
|
|
540
559
|
local dataString = dataToString(data)
|
|
541
560
|
if isDataNotBlank(nil, dataString) then
|
|
542
561
|
return (string.unpack(">I4", dataString))
|
|
@@ -544,6 +563,15 @@ dataToObjectDataEntryId = function(data)
|
|
|
544
563
|
return 0
|
|
545
564
|
end
|
|
546
565
|
end
|
|
566
|
+
objectDataEntryIdToData = function(value)
|
|
567
|
+
return type(value) == "number" and objectDataEntryNumericIdToData(value) or value
|
|
568
|
+
end
|
|
569
|
+
dataToObjectDataEntryId = function(data, ____type)
|
|
570
|
+
if ____type == "number" then
|
|
571
|
+
return dataToObjectDataEntryNumericId(data)
|
|
572
|
+
end
|
|
573
|
+
return dataToString(data)
|
|
574
|
+
end
|
|
547
575
|
booleansToData = function(value)
|
|
548
576
|
return table.concat(
|
|
549
577
|
__TS__ArrayMap(
|
|
@@ -607,16 +635,16 @@ dataToStrings = function(data)
|
|
|
607
635
|
function(____, data) return dataToString(data) end
|
|
608
636
|
)
|
|
609
637
|
end
|
|
610
|
-
|
|
638
|
+
objectDataEntryNumericIdsToData = function(value)
|
|
611
639
|
return table.concat(
|
|
612
640
|
__TS__ArrayMap(
|
|
613
641
|
value,
|
|
614
|
-
function(____, objectDataEntryId) return
|
|
642
|
+
function(____, objectDataEntryId) return objectDataEntryNumericIdToData(objectDataEntryId) end
|
|
615
643
|
),
|
|
616
644
|
","
|
|
617
645
|
)
|
|
618
646
|
end
|
|
619
|
-
|
|
647
|
+
dataToObjectDataEntryNumericIds = function(data)
|
|
620
648
|
return __TS__ArrayMap(
|
|
621
649
|
__TS__ArrayFilter(
|
|
622
650
|
__TS__StringSplit(
|
|
@@ -625,7 +653,7 @@ dataToObjectDataEntryIds = function(data)
|
|
|
625
653
|
),
|
|
626
654
|
isDataNotBlank
|
|
627
655
|
),
|
|
628
|
-
function(____, data) return
|
|
656
|
+
function(____, data) return dataToObjectDataEntryNumericId(data) end
|
|
629
657
|
)
|
|
630
658
|
end
|
|
631
659
|
isDataNotBlank = function(self, data)
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
local ____lualib = require("lualib_bundle")
|
|
2
2
|
local __TS__Class = ____lualib.__TS__Class
|
|
3
|
+
local __TS__New = ____lualib.__TS__New
|
|
3
4
|
local ____exports = {}
|
|
4
5
|
local ____preconditions = require("utility.preconditions")
|
|
5
6
|
local checkNotNull = ____preconditions.checkNotNull
|
|
@@ -60,4 +61,10 @@ function ObjectDataEntryIdGenerator.prototype.next(self)
|
|
|
60
61
|
self.id = id
|
|
61
62
|
return id
|
|
62
63
|
end
|
|
64
|
+
---
|
|
65
|
+
-- @internal For use by internal systems only.
|
|
66
|
+
____exports.abilityTypeIdGenerator = __TS__New(
|
|
67
|
+
____exports.ObjectDataEntryIdGenerator,
|
|
68
|
+
fourCC("A000")
|
|
69
|
+
)
|
|
63
70
|
return ____exports
|
|
@@ -6,6 +6,9 @@ import { ObjectDataEntryId } from "../object-data/entry";
|
|
|
6
6
|
import { LightningTypeId } from "../object-data/entry/lightning-type";
|
|
7
7
|
import { CombatClassifications } from "../object-data/auxiliary/combat-classification";
|
|
8
8
|
import { UnitTypeId } from "../object-data/entry/unit-type";
|
|
9
|
+
import { BuffResistanceType } from "../object-data/auxiliary/buff-resistance-type";
|
|
10
|
+
import { BuffPolarity } from "../object-data/auxiliary/buff-polarity";
|
|
11
|
+
import { ReadonlyNonEmptyLinkedSet } from "../../utility/linked-set";
|
|
9
12
|
export declare abstract class AbilityField<ValueType extends number | string | boolean = number | string | boolean, NativeFieldType extends jabilityfield = jabilityfield> extends ObjectField<AbilityType, Ability, ValueType, NativeFieldType> {
|
|
10
13
|
protected get instanceClass(): typeof Ability;
|
|
11
14
|
protected getObjectDataEntryId(instance: Ability): AbilityTypeId;
|
|
@@ -42,9 +45,10 @@ export declare class AbilityStringField extends AbilityField<string, jabilitystr
|
|
|
42
45
|
protected setNativeFieldValue(instance: Ability, value: string): boolean;
|
|
43
46
|
static get valueChangeEvent(): ObjectFieldValueChangeEvent<AbilityStringField>;
|
|
44
47
|
}
|
|
45
|
-
export declare abstract class AbilityArrayField<ValueType extends number | string | boolean = number | string | boolean, NativeFieldType =
|
|
48
|
+
export declare abstract class AbilityArrayField<ValueType extends number | string | boolean = number | string | boolean, NativeFieldType extends jabilityfield = jabilityfield> extends ObjectArrayField<AbilityType, Ability, ValueType, NativeFieldType> {
|
|
46
49
|
protected get instanceClass(): typeof Ability;
|
|
47
50
|
protected getObjectDataEntryId(instance: Ability): AbilityTypeId;
|
|
51
|
+
protected hasNativeFieldValue(instance: Ability): boolean;
|
|
48
52
|
}
|
|
49
53
|
export declare class AbilityStringArrayField extends AbilityArrayField<string, jabilitystringlevelfield> {
|
|
50
54
|
protected get defaultValue(): string;
|
|
@@ -107,11 +111,30 @@ export declare class AbilityAbilityTypeIdLevelField extends AbilityObjectDataEnt
|
|
|
107
111
|
}
|
|
108
112
|
export declare class AbilityUnitTypeIdLevelField extends AbilityObjectDataEntryIdLevelField<UnitTypeId> {
|
|
109
113
|
}
|
|
114
|
+
export declare abstract class AbilityEnumLevelField<T extends number> extends AbilityLevelField<T, T, jabilityintegerlevelfield> {
|
|
115
|
+
protected abstract values: ReadonlyNonEmptyLinkedSet<T>;
|
|
116
|
+
protected get defaultValue(): T;
|
|
117
|
+
protected getNativeFieldById(id: number): jabilityintegerlevelfield;
|
|
118
|
+
protected getNativeFieldValue(instance: Ability, level: number): T;
|
|
119
|
+
protected setNativeFieldValue(instance: Ability, level: number, value: T): boolean;
|
|
120
|
+
static get valueChangeEvent(): ObjectLevelFieldValueChangeEvent<AbilityBooleanLevelField>;
|
|
121
|
+
}
|
|
122
|
+
export declare class AbilityBuffPolarityLevelField extends AbilityEnumLevelField<BuffPolarity> {
|
|
123
|
+
protected values: ReadonlyNonEmptyLinkedSet<BuffPolarity>;
|
|
124
|
+
}
|
|
125
|
+
export declare class AbilityBuffResistanceTypeLevelField extends AbilityEnumLevelField<BuffResistanceType> {
|
|
126
|
+
protected values: ReadonlyNonEmptyLinkedSet<BuffResistanceType>;
|
|
127
|
+
}
|
|
110
128
|
export declare class AbilityCombatClassificationsLevelField extends AbilityLevelField<CombatClassifications, CombatClassifications, jabilityintegerlevelfield> {
|
|
111
129
|
protected get defaultValue(): CombatClassifications;
|
|
112
130
|
protected getNativeFieldById(id: number): jabilityintegerlevelfield;
|
|
113
131
|
protected getNativeFieldValue(instance: Ability, level: number): CombatClassifications;
|
|
114
132
|
protected setNativeFieldValue(instance: Ability, level: number, value: CombatClassifications): boolean;
|
|
115
133
|
}
|
|
116
|
-
export type
|
|
117
|
-
export
|
|
134
|
+
export type ReadonlySubscribableAbilityDependentValue<ValueType extends boolean | number | string> = ValueType | ReadonlyObjectFieldType<AbilityField<ValueType>> | ReadonlyObjectLevelFieldType<AbilityLevelField<ValueType>>;
|
|
135
|
+
export type SubscribableAbilityDependentValue<ValueType extends boolean | number | string> = ValueType | AbilityField<ValueType> | AbilityLevelField<ValueType>;
|
|
136
|
+
export type AbilityDependentValue<ValueType extends boolean | number | string> = SubscribableAbilityDependentValue<ValueType> | ((ability: Ability) => ValueType);
|
|
137
|
+
export declare const resolveCurrentAbilityDependentValue: {
|
|
138
|
+
<ValueType extends boolean | number | string>(ability: Ability, value: AbilityDependentValue<ValueType>): ValueType;
|
|
139
|
+
<ValueType extends boolean | number | string>(ability: Ability, value?: AbilityDependentValue<ValueType>): ValueType | undefined;
|
|
140
|
+
};
|
|
@@ -13,6 +13,8 @@ local ObjectField = ____object_2Dfield.ObjectField
|
|
|
13
13
|
local ObjectLevelField = ____object_2Dfield.ObjectLevelField
|
|
14
14
|
local ____ability_2Dtype = require("engine.object-data.entry.ability-type")
|
|
15
15
|
local AbilityType = ____ability_2Dtype.AbilityType
|
|
16
|
+
local ____linked_2Dset = require("utility.linked-set")
|
|
17
|
+
local nonEmptyLinkedSetOf = ____linked_2Dset.nonEmptyLinkedSetOf
|
|
16
18
|
local convertAbilityBooleanField = _G.ConvertAbilityBooleanField
|
|
17
19
|
local convertAbilityIntegerField = _G.ConvertAbilityIntegerField
|
|
18
20
|
local convertAbilityRealField = _G.ConvertAbilityRealField
|
|
@@ -195,6 +197,9 @@ __TS__ClassExtends(AbilityArrayField, ObjectArrayField)
|
|
|
195
197
|
function AbilityArrayField.prototype.getObjectDataEntryId(self, instance)
|
|
196
198
|
return instance.typeId
|
|
197
199
|
end
|
|
200
|
+
function AbilityArrayField.prototype.hasNativeFieldValue(self, instance)
|
|
201
|
+
return instance:hasField(self.nativeField)
|
|
202
|
+
end
|
|
198
203
|
__TS__SetDescriptor(
|
|
199
204
|
AbilityArrayField.prototype,
|
|
200
205
|
"instanceClass",
|
|
@@ -259,7 +264,7 @@ local AbilityLevelField = ____exports.AbilityLevelField
|
|
|
259
264
|
AbilityLevelField.name = "AbilityLevelField"
|
|
260
265
|
__TS__ClassExtends(AbilityLevelField, ObjectLevelField)
|
|
261
266
|
function AbilityLevelField.prototype.getLevelCount(self, entry)
|
|
262
|
-
return
|
|
267
|
+
return entry.levelCount
|
|
263
268
|
end
|
|
264
269
|
function AbilityLevelField.prototype.getObjectDataEntryId(self, instance)
|
|
265
270
|
return instance.typeId
|
|
@@ -431,6 +436,54 @@ ____exports.AbilityUnitTypeIdLevelField = __TS__Class()
|
|
|
431
436
|
local AbilityUnitTypeIdLevelField = ____exports.AbilityUnitTypeIdLevelField
|
|
432
437
|
AbilityUnitTypeIdLevelField.name = "AbilityUnitTypeIdLevelField"
|
|
433
438
|
__TS__ClassExtends(AbilityUnitTypeIdLevelField, ____exports.AbilityObjectDataEntryIdLevelField)
|
|
439
|
+
____exports.AbilityEnumLevelField = __TS__Class()
|
|
440
|
+
local AbilityEnumLevelField = ____exports.AbilityEnumLevelField
|
|
441
|
+
AbilityEnumLevelField.name = "AbilityEnumLevelField"
|
|
442
|
+
__TS__ClassExtends(AbilityEnumLevelField, ____exports.AbilityLevelField)
|
|
443
|
+
function AbilityEnumLevelField.prototype.getNativeFieldById(self, id)
|
|
444
|
+
return convertAbilityIntegerLevelField(id)
|
|
445
|
+
end
|
|
446
|
+
function AbilityEnumLevelField.prototype.getNativeFieldValue(self, instance, level)
|
|
447
|
+
local value = instance:getField(self.nativeField, level)
|
|
448
|
+
if self.values:contains(value) then
|
|
449
|
+
return value
|
|
450
|
+
end
|
|
451
|
+
return self.values:first()
|
|
452
|
+
end
|
|
453
|
+
function AbilityEnumLevelField.prototype.setNativeFieldValue(self, instance, level, value)
|
|
454
|
+
return instance:setField(self.nativeField, level, value)
|
|
455
|
+
end
|
|
456
|
+
__TS__SetDescriptor(
|
|
457
|
+
AbilityEnumLevelField.prototype,
|
|
458
|
+
"defaultValue",
|
|
459
|
+
{get = function(self)
|
|
460
|
+
return self.values:first()
|
|
461
|
+
end},
|
|
462
|
+
true
|
|
463
|
+
)
|
|
464
|
+
__TS__ObjectDefineProperty(
|
|
465
|
+
AbilityEnumLevelField,
|
|
466
|
+
"valueChangeEvent",
|
|
467
|
+
{get = function(self)
|
|
468
|
+
return self:getOrCreateValueChangeEvent()
|
|
469
|
+
end}
|
|
470
|
+
)
|
|
471
|
+
____exports.AbilityBuffPolarityLevelField = __TS__Class()
|
|
472
|
+
local AbilityBuffPolarityLevelField = ____exports.AbilityBuffPolarityLevelField
|
|
473
|
+
AbilityBuffPolarityLevelField.name = "AbilityBuffPolarityLevelField"
|
|
474
|
+
__TS__ClassExtends(AbilityBuffPolarityLevelField, ____exports.AbilityEnumLevelField)
|
|
475
|
+
function AbilityBuffPolarityLevelField.prototype.____constructor(self, ...)
|
|
476
|
+
AbilityBuffPolarityLevelField.____super.prototype.____constructor(self, ...)
|
|
477
|
+
self.values = nonEmptyLinkedSetOf(0, 1, 2)
|
|
478
|
+
end
|
|
479
|
+
____exports.AbilityBuffResistanceTypeLevelField = __TS__Class()
|
|
480
|
+
local AbilityBuffResistanceTypeLevelField = ____exports.AbilityBuffResistanceTypeLevelField
|
|
481
|
+
AbilityBuffResistanceTypeLevelField.name = "AbilityBuffResistanceTypeLevelField"
|
|
482
|
+
__TS__ClassExtends(AbilityBuffResistanceTypeLevelField, ____exports.AbilityEnumLevelField)
|
|
483
|
+
function AbilityBuffResistanceTypeLevelField.prototype.____constructor(self, ...)
|
|
484
|
+
AbilityBuffResistanceTypeLevelField.____super.prototype.____constructor(self, ...)
|
|
485
|
+
self.values = nonEmptyLinkedSetOf(1, 2, 3)
|
|
486
|
+
end
|
|
434
487
|
local allowedTargetCombatClassificationsByLevelByAbilityTypeId = postcompile(function()
|
|
435
488
|
local allowedTargetCombatClassificationsByLevelByAbilityTypeId = {}
|
|
436
489
|
for ____, abilityType in ipairs(AbilityType:getAll()) do
|