warscript 0.0.1-dev.aaf0a9d → 0.0.1-dev.ac556d2
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/attributes.d.ts +12 -0
- package/attributes.lua +16 -0
- package/binaryreader.d.ts +1 -0
- package/binaryreader.lua +3 -0
- package/core/types/effect.d.ts +13 -3
- package/core/types/effect.lua +116 -17
- package/core/types/frame.d.ts +8 -1
- package/core/types/frame.lua +93 -1
- package/core/types/group.d.ts +0 -1
- package/core/types/handle.d.ts +2 -1
- package/core/types/handle.lua +5 -0
- package/core/types/image.d.ts +0 -1
- package/core/types/missile.d.ts +2 -2
- package/core/types/missile.lua +8 -2
- package/core/types/unit.lua +8 -0
- package/core/util.d.ts +1 -1
- package/core/util.lua +12 -0
- package/decl/index.d.ts +1 -0
- package/engine/ability.d.ts +1 -1
- package/engine/behavior.d.ts +10 -10
- 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 +3 -5
- package/engine/behaviour/ability/apply-unit-behavior.d.ts +13 -4
- package/engine/behaviour/ability/apply-unit-behavior.lua +31 -9
- package/engine/behaviour/ability/damage.d.ts +33 -11
- package/engine/behaviour/ability/damage.lua +89 -31
- package/engine/behaviour/ability/emulate-impact.d.ts +6 -0
- package/engine/behaviour/ability/emulate-impact.lua +29 -0
- package/engine/behaviour/ability/heal.d.ts +33 -6
- package/engine/behaviour/ability/heal.lua +89 -10
- package/engine/behaviour/ability/instant-impact.d.ts +2 -2
- package/engine/behaviour/ability/instant-impact.lua +4 -15
- 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/restore-mana.d.ts +15 -0
- package/engine/behaviour/ability/restore-mana.lua +29 -0
- package/engine/behaviour/ability.d.ts +16 -2
- package/engine/behaviour/ability.lua +88 -12
- package/engine/behaviour/unit/stun-immunity.d.ts +0 -1
- package/engine/behaviour/unit.d.ts +8 -2
- package/engine/behaviour/unit.lua +27 -0
- package/engine/buff.d.ts +68 -21
- package/engine/buff.lua +276 -90
- package/engine/game-map.d.ts +7 -0
- package/engine/game-map.lua +32 -0
- package/engine/internal/ability.d.ts +17 -14
- package/engine/internal/ability.lua +79 -76
- package/engine/internal/item/ability.lua +90 -0
- package/engine/internal/item+owner.lua +2 -2
- package/engine/internal/mechanics/ability-duration.d.ts +1 -3
- package/engine/internal/mechanics/ability-duration.lua +2 -0
- package/engine/internal/mechanics/cast-ability.d.ts +2 -0
- package/engine/internal/mechanics/cast-ability.lua +86 -0
- package/engine/internal/misc/ability-disable-counter.d.ts +2 -0
- package/engine/internal/misc/ability-disable-counter.lua +13 -0
- package/engine/internal/unit/ability.d.ts +10 -1
- package/engine/internal/unit/ability.lua +36 -14
- package/engine/internal/unit/bonus.d.ts +9 -8
- package/engine/internal/unit/bonus.lua +6 -1
- package/engine/internal/unit/detach-missiles.d.ts +7 -0
- package/engine/internal/unit/detach-missiles.lua +30 -0
- package/engine/internal/unit/item.d.ts +24 -0
- package/engine/internal/unit/item.lua +79 -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+transport.lua +4 -10
- package/engine/internal/unit-missile-launch.lua +25 -6
- package/engine/internal/unit.d.ts +58 -16
- package/engine/internal/unit.lua +346 -126
- package/engine/internal/utility.lua +12 -0
- package/engine/local-client.d.ts +7 -2
- package/engine/local-client.lua +82 -0
- package/engine/object-data/auxiliary/attachment-preset.d.ts +0 -1
- package/engine/object-data/auxiliary/combat-classification.d.ts +0 -2
- package/engine/object-data/auxiliary/sound-preset-name.d.ts +5 -1
- package/engine/object-data/entry/ability-type/blank-configurable.d.ts +0 -1
- package/engine/object-data/entry/ability-type/blank-passive.d.ts +0 -1
- package/engine/object-data/entry/ability-type/blink.d.ts +10 -0
- package/engine/object-data/entry/ability-type/blink.lua +39 -0
- package/engine/object-data/entry/ability-type/channel.d.ts +0 -1
- package/engine/object-data/entry/ability-type/mine.d.ts +10 -0
- package/engine/object-data/entry/ability-type/mine.lua +39 -0
- package/engine/object-data/entry/ability-type/spirit-touch.d.ts +2 -2
- package/engine/object-data/entry/ability-type/spirit-touch.lua +6 -6
- package/engine/object-data/entry/ability-type.d.ts +1 -1
- package/engine/object-data/entry/ability-type.lua +9 -12
- package/engine/object-data/entry/buff-type/applicable.d.ts +0 -1
- package/engine/object-data/entry/buff-type/applicable.lua +27 -71
- package/engine/object-data/entry/buff-type/blank.d.ts +0 -1
- package/engine/object-data/entry/buff-type.d.ts +0 -1
- package/engine/object-data/entry/destructible-type.d.ts +0 -1
- package/engine/object-data/entry/item-type/blank.d.ts +0 -1
- package/engine/object-data/entry/item-type.d.ts +14 -1
- package/engine/object-data/entry/item-type.lua +91 -0
- package/engine/object-data/entry/lightning-type.d.ts +0 -1
- package/engine/object-data/entry/unit-type.d.ts +42 -2
- package/engine/object-data/entry/unit-type.lua +378 -50
- package/engine/object-data/entry/upgrade/blank.d.ts +0 -1
- package/engine/object-data/entry/upgrade.d.ts +0 -1
- package/engine/object-data/entry.d.ts +2 -3
- package/engine/object-data/utility/object-data-entry-id-generator.lua +7 -0
- package/engine/object-field/ability.d.ts +28 -6
- package/engine/object-field/ability.lua +57 -1
- package/engine/object-field/unit.d.ts +1 -0
- package/engine/object-field/unit.lua +3 -0
- package/engine/object-field.d.ts +6 -5
- package/engine/object-field.lua +37 -15
- package/engine/random.d.ts +1 -0
- package/engine/random.lua +9 -0
- package/engine/standard/entries/unit-type.d.ts +42 -1
- package/engine/standard/entries/unit-type.lua +42 -1
- package/engine/standard/fields/ability.d.ts +3 -1
- package/engine/standard/fields/ability.lua +3 -1
- package/engine/unit.d.ts +3 -0
- package/engine/unit.lua +12 -2
- package/event.d.ts +2 -3
- package/event.lua +9 -5
- package/global/vec2.lua +1 -0
- package/index.d.ts +1 -0
- package/index.lua +1 -0
- package/lualib_bundle.lua +146 -42
- package/math/vec2.d.ts +2 -9
- package/math.d.ts +0 -2
- 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/ability.d.ts +0 -1
- package/objutil/buff.d.ts +0 -1
- package/objutil/buff.lua +1 -1
- package/objutil/object.d.ts +0 -1
- package/objutil/unit.d.ts +0 -1
- package/package.json +13 -14
- package/patch-lua.d.ts +0 -0
- package/patch-lua.lua +10 -0
- package/property.d.ts +55 -0
- package/property.lua +374 -0
- package/string.d.ts +30 -0
- package/string.lua +14 -0
- package/util/stream.d.ts +0 -1
- package/utility/arrays.d.ts +11 -5
- package/utility/arrays.lua +34 -3
- package/utility/bit-set.d.ts +0 -2
- package/utility/lazy.d.ts +2 -0
- package/utility/lazy.lua +14 -0
- package/utility/linked-set.d.ts +12 -3
- package/utility/linked-set.lua +21 -2
- package/utility/lua-maps.d.ts +1 -2
- package/utility/lua-sets.d.ts +1 -2
- package/utility/types.d.ts +3 -2
- package/core/mapbounds.d.ts +0 -8
- package/core/mapbounds.lua +0 -12
|
@@ -1,14 +1,18 @@
|
|
|
1
1
|
/** @noSelfInFile */
|
|
2
|
-
import { Ability } from "../internal/ability";
|
|
2
|
+
import { Ability, jabilityfield } from "../internal/ability";
|
|
3
3
|
import { ObjectArrayField, ObjectField, ObjectFieldValueChangeEvent, ObjectLevelField, ObjectLevelFieldValueChangeEvent, ReadonlyObjectFieldType, ReadonlyObjectLevelFieldType } from "../object-field";
|
|
4
4
|
import { AbilityType, AbilityTypeId } from "../object-data/entry/ability-type";
|
|
5
5
|
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
|
-
|
|
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";
|
|
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;
|
|
15
|
+
protected hasNativeFieldValue(instance: Ability): boolean;
|
|
12
16
|
static get valueChangeEvent(): ObjectFieldValueChangeEvent<ReadonlyObjectFieldType<AbilityField>>;
|
|
13
17
|
}
|
|
14
18
|
export declare class AbilityBooleanField extends AbilityField<boolean, jabilitybooleanfield> {
|
|
@@ -18,7 +22,7 @@ export declare class AbilityBooleanField extends AbilityField<boolean, jabilityb
|
|
|
18
22
|
protected setNativeFieldValue(instance: Ability, value: boolean): boolean;
|
|
19
23
|
static get valueChangeEvent(): ObjectFieldValueChangeEvent<AbilityBooleanField>;
|
|
20
24
|
}
|
|
21
|
-
export declare abstract class AbilityNumberField<NativeFieldType =
|
|
25
|
+
export declare abstract class AbilityNumberField<NativeFieldType extends jabilityfield = jabilityfield> extends AbilityField<number, NativeFieldType> {
|
|
22
26
|
protected get defaultValue(): number;
|
|
23
27
|
static get valueChangeEvent(): ObjectFieldValueChangeEvent<AbilityNumberField>;
|
|
24
28
|
}
|
|
@@ -59,10 +63,11 @@ export declare abstract class AbilityObjectDataEntryIdArrayField<T extends Objec
|
|
|
59
63
|
}
|
|
60
64
|
export declare class AbilityLightningTypeIdArrayField extends AbilityObjectDataEntryIdArrayField<LightningTypeId> {
|
|
61
65
|
}
|
|
62
|
-
export declare abstract class AbilityLevelField<ValueType extends number | string | boolean = number | string | boolean, InputValueType extends ValueType = never, NativeFieldType =
|
|
66
|
+
export declare abstract class AbilityLevelField<ValueType extends number | string | boolean = number | string | boolean, InputValueType extends ValueType = never, NativeFieldType extends jabilityfield = jabilityfield> extends ObjectLevelField<AbilityType, Ability, ValueType, InputValueType, NativeFieldType> {
|
|
63
67
|
protected get instanceClass(): typeof Ability;
|
|
64
68
|
protected getLevelCount(entry: AbilityType | Ability): number;
|
|
65
69
|
protected getObjectDataEntryId(instance: Ability): AbilityTypeId;
|
|
70
|
+
protected hasNativeFieldValue(instance: Ability): boolean;
|
|
66
71
|
static get valueChangeEvent(): ObjectLevelFieldValueChangeEvent<ReadonlyObjectLevelFieldType<AbilityLevelField>>;
|
|
67
72
|
}
|
|
68
73
|
export declare class AbilityBooleanLevelField extends AbilityLevelField<boolean, boolean, jabilityintegerlevelfield> {
|
|
@@ -72,7 +77,7 @@ export declare class AbilityBooleanLevelField extends AbilityLevelField<boolean,
|
|
|
72
77
|
protected setNativeFieldValue(instance: Ability, level: number, value: boolean): boolean;
|
|
73
78
|
static get valueChangeEvent(): ObjectLevelFieldValueChangeEvent<AbilityBooleanLevelField>;
|
|
74
79
|
}
|
|
75
|
-
export declare abstract class AbilityNumberLevelField<NativeFieldType =
|
|
80
|
+
export declare abstract class AbilityNumberLevelField<NativeFieldType extends jabilityfield = jabilityfield> extends AbilityLevelField<number, number, NativeFieldType> {
|
|
76
81
|
protected get defaultValue(): number;
|
|
77
82
|
static get valueChangeEvent(): ObjectLevelFieldValueChangeEvent<AbilityNumberLevelField>;
|
|
78
83
|
}
|
|
@@ -105,6 +110,20 @@ export declare class AbilityAbilityTypeIdLevelField extends AbilityObjectDataEnt
|
|
|
105
110
|
}
|
|
106
111
|
export declare class AbilityUnitTypeIdLevelField extends AbilityObjectDataEntryIdLevelField<UnitTypeId> {
|
|
107
112
|
}
|
|
113
|
+
export declare abstract class AbilityEnumLevelField<T extends number> extends AbilityLevelField<T, T, jabilityintegerlevelfield> {
|
|
114
|
+
protected abstract values: ReadonlyNonEmptyLinkedSet<T>;
|
|
115
|
+
protected get defaultValue(): T;
|
|
116
|
+
protected getNativeFieldById(id: number): jabilityintegerlevelfield;
|
|
117
|
+
protected getNativeFieldValue(instance: Ability, level: number): T;
|
|
118
|
+
protected setNativeFieldValue(instance: Ability, level: number, value: T): boolean;
|
|
119
|
+
static get valueChangeEvent(): ObjectLevelFieldValueChangeEvent<AbilityBooleanLevelField>;
|
|
120
|
+
}
|
|
121
|
+
export declare class AbilityBuffPolarityLevelField extends AbilityEnumLevelField<BuffPolarity> {
|
|
122
|
+
protected values: ReadonlyNonEmptyLinkedSet<BuffPolarity>;
|
|
123
|
+
}
|
|
124
|
+
export declare class AbilityBuffResistanceTypeLevelField extends AbilityEnumLevelField<BuffResistanceType> {
|
|
125
|
+
protected values: ReadonlyNonEmptyLinkedSet<BuffResistanceType>;
|
|
126
|
+
}
|
|
108
127
|
export declare class AbilityCombatClassificationsLevelField extends AbilityLevelField<CombatClassifications, CombatClassifications, jabilityintegerlevelfield> {
|
|
109
128
|
protected get defaultValue(): CombatClassifications;
|
|
110
129
|
protected getNativeFieldById(id: number): jabilityintegerlevelfield;
|
|
@@ -112,4 +131,7 @@ export declare class AbilityCombatClassificationsLevelField extends AbilityLevel
|
|
|
112
131
|
protected setNativeFieldValue(instance: Ability, level: number, value: CombatClassifications): boolean;
|
|
113
132
|
}
|
|
114
133
|
export type AbilityDependentValue<ValueType extends boolean | number | string> = ValueType | AbilityField<ValueType> | AbilityLevelField<ValueType> | ((ability: Ability) => ValueType);
|
|
115
|
-
export declare const resolveCurrentAbilityDependentValue:
|
|
134
|
+
export declare const resolveCurrentAbilityDependentValue: {
|
|
135
|
+
<ValueType extends boolean | number | string>(ability: Ability, value: AbilityDependentValue<ValueType>): ValueType;
|
|
136
|
+
<ValueType extends boolean | number | string>(ability: Ability, value?: AbilityDependentValue<ValueType>): ValueType | undefined;
|
|
137
|
+
};
|
|
@@ -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
|
|
@@ -27,6 +29,9 @@ __TS__ClassExtends(AbilityField, ObjectField)
|
|
|
27
29
|
function AbilityField.prototype.getObjectDataEntryId(self, instance)
|
|
28
30
|
return instance.typeId
|
|
29
31
|
end
|
|
32
|
+
function AbilityField.prototype.hasNativeFieldValue(self, instance)
|
|
33
|
+
return instance:hasField(self.nativeField)
|
|
34
|
+
end
|
|
30
35
|
__TS__SetDescriptor(
|
|
31
36
|
AbilityField.prototype,
|
|
32
37
|
"instanceClass",
|
|
@@ -256,11 +261,14 @@ local AbilityLevelField = ____exports.AbilityLevelField
|
|
|
256
261
|
AbilityLevelField.name = "AbilityLevelField"
|
|
257
262
|
__TS__ClassExtends(AbilityLevelField, ObjectLevelField)
|
|
258
263
|
function AbilityLevelField.prototype.getLevelCount(self, entry)
|
|
259
|
-
return
|
|
264
|
+
return entry.levelCount
|
|
260
265
|
end
|
|
261
266
|
function AbilityLevelField.prototype.getObjectDataEntryId(self, instance)
|
|
262
267
|
return instance.typeId
|
|
263
268
|
end
|
|
269
|
+
function AbilityLevelField.prototype.hasNativeFieldValue(self, instance)
|
|
270
|
+
return instance:hasField(self.nativeField)
|
|
271
|
+
end
|
|
264
272
|
__TS__SetDescriptor(
|
|
265
273
|
AbilityLevelField.prototype,
|
|
266
274
|
"instanceClass",
|
|
@@ -425,6 +433,54 @@ ____exports.AbilityUnitTypeIdLevelField = __TS__Class()
|
|
|
425
433
|
local AbilityUnitTypeIdLevelField = ____exports.AbilityUnitTypeIdLevelField
|
|
426
434
|
AbilityUnitTypeIdLevelField.name = "AbilityUnitTypeIdLevelField"
|
|
427
435
|
__TS__ClassExtends(AbilityUnitTypeIdLevelField, ____exports.AbilityObjectDataEntryIdLevelField)
|
|
436
|
+
____exports.AbilityEnumLevelField = __TS__Class()
|
|
437
|
+
local AbilityEnumLevelField = ____exports.AbilityEnumLevelField
|
|
438
|
+
AbilityEnumLevelField.name = "AbilityEnumLevelField"
|
|
439
|
+
__TS__ClassExtends(AbilityEnumLevelField, ____exports.AbilityLevelField)
|
|
440
|
+
function AbilityEnumLevelField.prototype.getNativeFieldById(self, id)
|
|
441
|
+
return convertAbilityIntegerLevelField(id)
|
|
442
|
+
end
|
|
443
|
+
function AbilityEnumLevelField.prototype.getNativeFieldValue(self, instance, level)
|
|
444
|
+
local value = instance:getField(self.nativeField, level)
|
|
445
|
+
if self.values:contains(value) then
|
|
446
|
+
return value
|
|
447
|
+
end
|
|
448
|
+
return self.values:first()
|
|
449
|
+
end
|
|
450
|
+
function AbilityEnumLevelField.prototype.setNativeFieldValue(self, instance, level, value)
|
|
451
|
+
return instance:setField(self.nativeField, level, value)
|
|
452
|
+
end
|
|
453
|
+
__TS__SetDescriptor(
|
|
454
|
+
AbilityEnumLevelField.prototype,
|
|
455
|
+
"defaultValue",
|
|
456
|
+
{get = function(self)
|
|
457
|
+
return self.values:first()
|
|
458
|
+
end},
|
|
459
|
+
true
|
|
460
|
+
)
|
|
461
|
+
__TS__ObjectDefineProperty(
|
|
462
|
+
AbilityEnumLevelField,
|
|
463
|
+
"valueChangeEvent",
|
|
464
|
+
{get = function(self)
|
|
465
|
+
return self:getOrCreateValueChangeEvent()
|
|
466
|
+
end}
|
|
467
|
+
)
|
|
468
|
+
____exports.AbilityBuffPolarityLevelField = __TS__Class()
|
|
469
|
+
local AbilityBuffPolarityLevelField = ____exports.AbilityBuffPolarityLevelField
|
|
470
|
+
AbilityBuffPolarityLevelField.name = "AbilityBuffPolarityLevelField"
|
|
471
|
+
__TS__ClassExtends(AbilityBuffPolarityLevelField, ____exports.AbilityEnumLevelField)
|
|
472
|
+
function AbilityBuffPolarityLevelField.prototype.____constructor(self, ...)
|
|
473
|
+
AbilityBuffPolarityLevelField.____super.prototype.____constructor(self, ...)
|
|
474
|
+
self.values = nonEmptyLinkedSetOf(0, 1, 2)
|
|
475
|
+
end
|
|
476
|
+
____exports.AbilityBuffResistanceTypeLevelField = __TS__Class()
|
|
477
|
+
local AbilityBuffResistanceTypeLevelField = ____exports.AbilityBuffResistanceTypeLevelField
|
|
478
|
+
AbilityBuffResistanceTypeLevelField.name = "AbilityBuffResistanceTypeLevelField"
|
|
479
|
+
__TS__ClassExtends(AbilityBuffResistanceTypeLevelField, ____exports.AbilityEnumLevelField)
|
|
480
|
+
function AbilityBuffResistanceTypeLevelField.prototype.____constructor(self, ...)
|
|
481
|
+
AbilityBuffResistanceTypeLevelField.____super.prototype.____constructor(self, ...)
|
|
482
|
+
self.values = nonEmptyLinkedSetOf(1, 2, 3)
|
|
483
|
+
end
|
|
428
484
|
local allowedTargetCombatClassificationsByLevelByAbilityTypeId = postcompile(function()
|
|
429
485
|
local allowedTargetCombatClassificationsByLevelByAbilityTypeId = {}
|
|
430
486
|
for ____, abilityType in ipairs(AbilityType:getAll()) do
|
|
@@ -9,6 +9,7 @@ export declare abstract class UnitField<ValueType extends number | string | bool
|
|
|
9
9
|
export declare class UnitStringField extends UnitField<string, junitstringfield> {
|
|
10
10
|
protected get defaultValue(): string;
|
|
11
11
|
protected getNativeFieldById(id: number): junitstringfield;
|
|
12
|
+
protected hasNativeFieldValue(): boolean;
|
|
12
13
|
protected getNativeFieldValue(instance: Unit): string;
|
|
13
14
|
protected getObjectDataEntryId(instance: Unit): UnitTypeId;
|
|
14
15
|
protected setNativeFieldValue(instance: Unit, value: string): boolean;
|
|
@@ -29,6 +29,9 @@ __TS__ClassExtends(UnitStringField, ____exports.UnitField)
|
|
|
29
29
|
function UnitStringField.prototype.getNativeFieldById(self, id)
|
|
30
30
|
return ConvertUnitStringField(id)
|
|
31
31
|
end
|
|
32
|
+
function UnitStringField.prototype.hasNativeFieldValue(self)
|
|
33
|
+
return true
|
|
34
|
+
end
|
|
32
35
|
function UnitStringField.prototype.getNativeFieldValue(self, instance)
|
|
33
36
|
return instance:getField(self.nativeField)
|
|
34
37
|
end
|
package/engine/object-field.d.ts
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
/// <reference types="@typescript-to-lua/language-extensions" />
|
|
2
1
|
/** @noSelfInFile */
|
|
3
2
|
import { DispatchingEvent } from "../event";
|
|
4
3
|
import { AbstractConstructor } from "../utility/types";
|
|
@@ -9,7 +8,6 @@ export type ObjectFieldId = number & {
|
|
|
9
8
|
export type ObjectFieldConstructor<T extends ObjectFieldBase<any, any, any, any>> = OmitConstructor<typeof ObjectFieldBase> & (new (id: number) => T);
|
|
10
9
|
export type ObjectFieldAbstractConstructor<T extends ObjectFieldBase<any, any, any, any>> = OmitConstructor<typeof ObjectFieldBase> & (abstract new (id: number) => T);
|
|
11
10
|
declare abstract class ObjectFieldBase<ObjectDataEntryType extends ObjectDataEntry, InstanceType extends AnyNotNil, ValueType, NativeFieldType> {
|
|
12
|
-
protected readonly valueByInstance: LuaMap<InstanceType, ValueType>;
|
|
13
11
|
protected abstract readonly instanceClass: AbstractConstructor<InstanceType> | Function;
|
|
14
12
|
supports(instance: AnyNotNil): instance is InstanceType & {
|
|
15
13
|
readonly __oneSidedTypeGuard: unique symbol;
|
|
@@ -33,22 +31,23 @@ export type ObjectFieldValueChangeEvent<T extends ObjectField<any, any, any, any
|
|
|
33
31
|
previousValue: ValueType,
|
|
34
32
|
newValue: ValueType
|
|
35
33
|
]> : never;
|
|
36
|
-
export type ReadonlyObjectFieldType<T extends ObjectField<any, any, any, any>> = Omit<T, "setValue" | "removeValue">;
|
|
34
|
+
export type ReadonlyObjectFieldType<T extends ObjectField<any, any, any, any>> = Omit<T, "setValue" | "removeValue" | "trySetValue">;
|
|
37
35
|
type ReadonlyObjectFieldConstructor<T extends ObjectField> = OmitConstructor<typeof ObjectField> & (abstract new (...args: any[]) => ReadonlyObjectFieldType<T>);
|
|
38
36
|
export declare abstract class ObjectField<ObjectDataEntryType extends ObjectDataEntry = ObjectDataEntry, InstanceType extends AnyNotNil = AnyNotNil, ValueType extends number | string | boolean = number | string | boolean, NativeFieldType = unknown> extends ObjectFieldBase<ObjectDataEntryType, InstanceType, ValueType, NativeFieldType> {
|
|
39
37
|
protected abstract readonly defaultValue: ValueType;
|
|
40
|
-
|
|
38
|
+
protected abstract hasNativeFieldValue(instance: InstanceType): boolean;
|
|
41
39
|
protected abstract getNativeFieldValue(instance: InstanceType): ValueType;
|
|
42
40
|
protected abstract setNativeFieldValue(instance: InstanceType, value: ValueType): boolean;
|
|
43
41
|
getValue(entry: ObjectDataEntryType | InstanceType): ValueType;
|
|
44
42
|
setValue(entry: ObjectDataEntryType | InstanceType, value: ValueType): boolean;
|
|
45
43
|
removeValue(entry: ObjectDataEntryType): boolean;
|
|
44
|
+
trySetValue(entry: ObjectDataEntryType | InstanceType, value: unknown): boolean;
|
|
46
45
|
private invokeValueChangeEvent;
|
|
47
46
|
private invokeValueChangeEventRecursive;
|
|
48
47
|
protected static getOrCreateValueChangeEvent<T extends ObjectField, R extends ReadonlyObjectFieldType<T>>(this: ReadonlyObjectFieldConstructor<T>): ObjectFieldValueChangeEvent<R>;
|
|
49
48
|
static get valueChangeEvent(): ObjectFieldValueChangeEvent<ReadonlyObjectFieldType<ObjectField>>;
|
|
50
49
|
}
|
|
51
|
-
export type ReadonlyObjectLevelFieldType<T extends ObjectLevelField<any, any, any, any>> = Omit<T, "setValue">;
|
|
50
|
+
export type ReadonlyObjectLevelFieldType<T extends ObjectLevelField<any, any, any, any>> = Omit<T, "setValue" | "trySetValue">;
|
|
52
51
|
export type ObjectLevelFieldValueChangeEvent<T extends ObjectLevelField<any, any, any, any> | ReadonlyObjectLevelFieldType<ObjectLevelField<any, any, any, any>>> = T extends ObjectLevelField<any, infer InstanceType, infer ValueType, any, any> ? DispatchingEvent<[
|
|
53
52
|
instance: InstanceType,
|
|
54
53
|
field: T,
|
|
@@ -72,11 +71,13 @@ export declare abstract class ObjectArrayField<ObjectDataEntryType extends Objec
|
|
|
72
71
|
}
|
|
73
72
|
export declare abstract class ObjectLevelField<ObjectDataEntryType extends ObjectDataEntry = ObjectDataEntry, InstanceType extends AnyNotNil = AnyNotNil, ValueType extends number | string | boolean = number | string | boolean, InputValueType extends ValueType = never, NativeFieldType = unknown> extends ObjectFieldBase<ObjectDataEntryType, InstanceType, ValueType[], NativeFieldType> {
|
|
74
73
|
protected abstract readonly defaultValue: ValueType;
|
|
74
|
+
protected abstract hasNativeFieldValue(instance: InstanceType): boolean;
|
|
75
75
|
protected abstract getNativeFieldValue(instance: InstanceType, level: number): ValueType;
|
|
76
76
|
protected abstract setNativeFieldValue(instance: InstanceType, level: number, value: ValueType): boolean;
|
|
77
77
|
protected abstract getLevelCount(entry: ObjectDataEntryType | InstanceType): number;
|
|
78
78
|
getValue<LevelType extends [number] | []>(entry: ObjectDataEntryType | InstanceType, ...[level]: LevelType): LevelType extends [number] ? ValueType : ValueType[];
|
|
79
79
|
setValue(entry: ObjectDataEntryType | InstanceType, ...[levelOrValue, value]: [value: ObjectDataEntryLevelFieldValueSupplier<InputValueType, ValueType>] | [level: number, value: InputValueType]): boolean;
|
|
80
|
+
trySetValue(entry: ObjectDataEntryType | InstanceType, levelOrValue: number | unknown, value?: unknown): boolean;
|
|
80
81
|
private invokeValueChangeEvent;
|
|
81
82
|
private invokeValueChangeEventRecursive;
|
|
82
83
|
protected static getOrCreateValueChangeEvent<T extends ObjectLevelField, R extends ReadonlyObjectLevelFieldType<T>>(this: ReadonlyObjectLevelFieldConstructor<T>): ObjectLevelFieldValueChangeEvent<R>;
|
package/engine/object-field.lua
CHANGED
|
@@ -71,9 +71,6 @@ ____exports.ObjectField = __TS__Class()
|
|
|
71
71
|
local ObjectField = ____exports.ObjectField
|
|
72
72
|
ObjectField.name = "ObjectField"
|
|
73
73
|
__TS__ClassExtends(ObjectField, ObjectFieldBase)
|
|
74
|
-
function ObjectField.prototype.accepts(self, value)
|
|
75
|
-
return __TS__TypeOf(value) == __TS__TypeOf(self.defaultValue)
|
|
76
|
-
end
|
|
77
74
|
function ObjectField.prototype.getValue(self, entry)
|
|
78
75
|
if __TS__InstanceOf(entry, ObjectDataEntry) then
|
|
79
76
|
local defaultValueByObjectDataEntryId = (warpack.compiletime and compiletimeDefaultValueByObjectDataEntryIdByObjectFieldId or defaultValueByObjectDataEntryIdByObjectFieldId)[self.id]
|
|
@@ -135,13 +132,15 @@ function ObjectField.prototype.setValue(self, entry, value)
|
|
|
135
132
|
return true
|
|
136
133
|
end
|
|
137
134
|
end
|
|
135
|
+
if not self:hasNativeFieldValue(entry) then
|
|
136
|
+
return false
|
|
137
|
+
end
|
|
138
138
|
local previousValue = self:getNativeFieldValue(entry)
|
|
139
139
|
if value ~= previousValue then
|
|
140
|
-
if self:setNativeFieldValue(entry, value) then
|
|
141
|
-
self:invokeValueChangeEvent(entry, self, previousValue, value)
|
|
142
|
-
else
|
|
140
|
+
if not self:setNativeFieldValue(entry, value) then
|
|
143
141
|
return false
|
|
144
142
|
end
|
|
143
|
+
self:invokeValueChangeEvent(entry, self, previousValue, value)
|
|
145
144
|
end
|
|
146
145
|
return true
|
|
147
146
|
end
|
|
@@ -159,6 +158,12 @@ function ObjectField.prototype.removeValue(self, entry)
|
|
|
159
158
|
end
|
|
160
159
|
return false
|
|
161
160
|
end
|
|
161
|
+
function ObjectField.prototype.trySetValue(self, entry, value)
|
|
162
|
+
if __TS__TypeOf(value) ~= __TS__TypeOf(self.defaultValue) then
|
|
163
|
+
return false
|
|
164
|
+
end
|
|
165
|
+
return self:setValue(entry, value)
|
|
166
|
+
end
|
|
162
167
|
function ObjectField.prototype.invokeValueChangeEvent(self, ...)
|
|
163
168
|
self:invokeValueChangeEventRecursive(
|
|
164
169
|
getClass(self),
|
|
@@ -387,22 +392,39 @@ function ObjectLevelField.prototype.setValue(self, entry, levelOrValue, value)
|
|
|
387
392
|
return true
|
|
388
393
|
end
|
|
389
394
|
end
|
|
395
|
+
if not self:hasNativeFieldValue(entry) then
|
|
396
|
+
return false
|
|
397
|
+
end
|
|
390
398
|
local previousValue = self:getNativeFieldValue(entry, level)
|
|
391
399
|
if value ~= previousValue then
|
|
392
|
-
if self:setNativeFieldValue(entry, level, value) then
|
|
393
|
-
self:invokeValueChangeEvent(
|
|
394
|
-
entry,
|
|
395
|
-
self,
|
|
396
|
-
level,
|
|
397
|
-
previousValue,
|
|
398
|
-
value
|
|
399
|
-
)
|
|
400
|
-
else
|
|
400
|
+
if not self:setNativeFieldValue(entry, level, value) then
|
|
401
401
|
return false
|
|
402
402
|
end
|
|
403
|
+
self:invokeValueChangeEvent(
|
|
404
|
+
entry,
|
|
405
|
+
self,
|
|
406
|
+
level,
|
|
407
|
+
previousValue,
|
|
408
|
+
value
|
|
409
|
+
)
|
|
403
410
|
end
|
|
404
411
|
return true
|
|
405
412
|
end
|
|
413
|
+
function ObjectLevelField.prototype.trySetValue(self, entry, levelOrValue, value)
|
|
414
|
+
if value ~= nil then
|
|
415
|
+
if __TS__TypeOf(value) ~= __TS__TypeOf(self.defaultValue) then
|
|
416
|
+
return false
|
|
417
|
+
end
|
|
418
|
+
if type(levelOrValue) ~= "number" then
|
|
419
|
+
return false
|
|
420
|
+
end
|
|
421
|
+
return self:setValue(entry, levelOrValue, value)
|
|
422
|
+
end
|
|
423
|
+
if __TS__TypeOf(levelOrValue) ~= __TS__TypeOf(self.defaultValue) then
|
|
424
|
+
return false
|
|
425
|
+
end
|
|
426
|
+
return self:setValue(entry, levelOrValue)
|
|
427
|
+
end
|
|
406
428
|
function ObjectLevelField.prototype.invokeValueChangeEvent(self, ...)
|
|
407
429
|
self:invokeValueChangeEventRecursive(
|
|
408
430
|
getClass(self),
|
package/engine/random.d.ts
CHANGED
package/engine/random.lua
CHANGED
|
@@ -1,9 +1,18 @@
|
|
|
1
1
|
local ____exports = {}
|
|
2
2
|
local ____math = require("math")
|
|
3
3
|
local MAXIMUM_INTEGER = ____math.MAXIMUM_INTEGER
|
|
4
|
+
local PI = ____math.PI
|
|
4
5
|
local getRandomInt = GetRandomInt
|
|
5
6
|
local getRandomReal = GetRandomReal
|
|
7
|
+
local cos = math.cos
|
|
8
|
+
local sin = math.sin
|
|
9
|
+
local sqrt = math.sqrt
|
|
6
10
|
____exports.randomAngle = function() return getRandomReal(0, 360) end
|
|
7
11
|
____exports.randomInteger = function(m, n) return n ~= nil and getRandomInt(m, n) or getRandomInt(0, m or MAXIMUM_INTEGER) end
|
|
8
12
|
____exports.randomFloat = function(m, n) return n ~= nil and getRandomReal(m, n) or getRandomReal(0, m or MAXIMUM_INTEGER) end
|
|
13
|
+
____exports.randomXY = function(centerX, centerY, range)
|
|
14
|
+
local r = range * sqrt(getRandomReal(0, 1))
|
|
15
|
+
local t = getRandomReal(0, 1) * 2 * PI
|
|
16
|
+
return centerX + r * cos(t), centerY + r * sin(t)
|
|
17
|
+
end
|
|
9
18
|
return ____exports
|
|
@@ -9,11 +9,33 @@ export declare const RIFLEMAN_UNIT_TYPE_ID: StandardUnitTypeId;
|
|
|
9
9
|
export declare const SIEGE_ENGINE_UNIT_TYPE_ID: StandardUnitTypeId;
|
|
10
10
|
export declare const SORCERESS_UNIT_TYPE_ID: StandardUnitTypeId;
|
|
11
11
|
export declare const SPELLBREAKER_UNIT_TYPE_ID: StandardUnitTypeId;
|
|
12
|
-
export declare const PALADIN_HERO_UNIT_TYPE_ID: StandardHeroUnitTypeId;
|
|
13
12
|
export declare const ARCHMAGE_HERO_UNIT_TYPE_ID: StandardHeroUnitTypeId;
|
|
13
|
+
export declare const BLOOD_MAGE_HERO_UNIT_TYPE_ID: StandardHeroUnitTypeId;
|
|
14
|
+
export declare const MOUNTAIN_KING_HERO_UNIT_TYPE_ID: StandardHeroUnitTypeId;
|
|
15
|
+
export declare const PALADIN_HERO_UNIT_TYPE_ID: StandardHeroUnitTypeId;
|
|
16
|
+
export declare const ARCHER_HIGH_ELF_UNIT_TYPE_ID: StandardUnitTypeId;
|
|
14
17
|
export declare const CAPTAIN_UNIT_TYPE_ID: StandardUnitTypeId;
|
|
18
|
+
export declare const SWORDSMAN_UNIT_TYPE_ID: StandardUnitTypeId;
|
|
19
|
+
export declare const ADMIRAL_PROUDMOORE_HERO_UNIT_TYPE_ID: StandardHeroUnitTypeId;
|
|
20
|
+
export declare const ANASTERIAN_SUNSTRIDER_HERO_UNIT_TYPE_ID: StandardHeroUnitTypeId;
|
|
21
|
+
export declare const ANTONIDAS_HERO_UNIT_TYPE_ID: StandardHeroUnitTypeId;
|
|
22
|
+
export declare const ANTONIDAS_GHOST_HERO_UNIT_TYPE_ID: StandardHeroUnitTypeId;
|
|
15
23
|
export declare const ARTHAS_HERO_UNIT_TYPE_ID: StandardHeroUnitTypeId;
|
|
16
24
|
export declare const ARTHAS_WITH_FROSTMOURNE_HERO_UNIT_TYPE_ID: StandardHeroUnitTypeId;
|
|
25
|
+
export declare const DAGREN_THE_ORCSLAYER_HERO_UNIT_TYPE_ID: StandardHeroUnitTypeId;
|
|
26
|
+
export declare const HALAHK_THE_LIFEBRINGER_HERO_UNIT_TYPE_ID: StandardHeroUnitTypeId;
|
|
27
|
+
export declare const JAINA_HERO_UNIT_TYPE_ID: StandardHeroUnitTypeId;
|
|
28
|
+
export declare const JENNALLA_DEEMSPRING_HERO_UNIT_TYPE_ID: StandardHeroUnitTypeId;
|
|
29
|
+
export declare const KAEL_HERO_UNIT_TYPE_ID: StandardHeroUnitTypeId;
|
|
30
|
+
export declare const KELEN_THE_SEEKER_HERO_UNIT_TYPE_ID: StandardHeroUnitTypeId;
|
|
31
|
+
export declare const LORD_GARITHOS_HERO_UNIT_TYPE_ID: StandardHeroUnitTypeId;
|
|
32
|
+
export declare const LORD_NICHOLAS_BUZAN_HERO_UNIT_TYPE_ID: StandardHeroUnitTypeId;
|
|
33
|
+
export declare const MAGROTH_THE_DEFENDER_HERO_UNIT_TYPE_ID: StandardHeroUnitTypeId;
|
|
34
|
+
export declare const MURADIN_BRONZEBEARD_HERO_UNIT_TYPE_ID: StandardHeroUnitTypeId;
|
|
35
|
+
export declare const SIR_GREGORY_EDMUNSON_HERO_UNIT_TYPE_ID: StandardHeroUnitTypeId;
|
|
36
|
+
export declare const SYLVANAS_WINDRUNNER_HERO_UNIT_TYPE_ID: StandardHeroUnitTypeId;
|
|
37
|
+
export declare const THALORIEN_DAWNSEEKER_HERO_UNIT_TYPE_ID: StandardHeroUnitTypeId;
|
|
38
|
+
export declare const UTHER_HERO_UNIT_TYPE_ID: StandardHeroUnitTypeId;
|
|
17
39
|
export declare const BATRIDER_UNIT_TYPE_ID: StandardUnitTypeId;
|
|
18
40
|
export declare const DEMOLISHER_UNIT_TYPE_ID: StandardUnitTypeId;
|
|
19
41
|
export declare const GRUNT_UNIT_TYPE_ID: StandardUnitTypeId;
|
|
@@ -25,11 +47,29 @@ export declare const SPIRIT_WALKER_UNIT_TYPE_ID: StandardUnitTypeId;
|
|
|
25
47
|
export declare const TAUREN_UNIT_TYPE_ID: StandardUnitTypeId;
|
|
26
48
|
export declare const WIND_RIDER_UNIT_TYPE_ID: StandardUnitTypeId;
|
|
27
49
|
export declare const WITCH_DOCTOR_UNIT_TYPE_ID: StandardUnitTypeId;
|
|
50
|
+
export declare const ARCHER_UNIT_TYPE_ID: StandardUnitTypeId;
|
|
51
|
+
export declare const CHIMAERA_UNIT_TYPE_ID: StandardUnitTypeId;
|
|
52
|
+
export declare const DRUID_OF_THE_CLAW_UNIT_TYPE_ID: StandardUnitTypeId;
|
|
53
|
+
export declare const DRUID_OF_THE_TALON_UNIT_TYPE_ID: StandardUnitTypeId;
|
|
54
|
+
export declare const DRYAD_UNIT_TYPE_ID: StandardUnitTypeId;
|
|
55
|
+
export declare const FAERIE_DRAGON_UNIT_TYPE_ID: StandardUnitTypeId;
|
|
56
|
+
export declare const GLAIVE_THROWER_UNIT_TYPE_ID: StandardUnitTypeId;
|
|
57
|
+
export declare const HIPPOGRYPH_UNIT_TYPE_ID: StandardUnitTypeId;
|
|
58
|
+
export declare const HIPPOGRYPH_RIDER_UNIT_TYPE_ID: StandardUnitTypeId;
|
|
59
|
+
export declare const HUNTRESS_UNIT_TYPE_ID: StandardUnitTypeId;
|
|
60
|
+
export declare const MOUNTAIN_GIANT_THROWER_UNIT_TYPE_ID: StandardUnitTypeId;
|
|
61
|
+
export declare const WISP_UNIT_TYPE_ID: StandardUnitTypeId;
|
|
28
62
|
export declare const DEMON_HUNTER_HERO_UNIT_TYPE_ID: StandardHeroUnitTypeId;
|
|
63
|
+
export declare const KEEPER_OF_THE_GROVE_HERO_UNIT_TYPE_ID: StandardHeroUnitTypeId;
|
|
64
|
+
export declare const MOON_PRIESTESS_HERO_UNIT_TYPE_ID: StandardHeroUnitTypeId;
|
|
65
|
+
export declare const WARDEN_HERO_UNIT_TYPE_ID: StandardHeroUnitTypeId;
|
|
29
66
|
export declare const DEMON_HUNTER_DEMON_FORM_HERO_UNIT_TYPE_ID: StandardHeroUnitTypeId;
|
|
30
67
|
export declare const ABOMINATION_UNIT_TYPE_ID: StandardUnitTypeId;
|
|
31
68
|
export declare const GHOUL_UNIT_TYPE_ID: StandardUnitTypeId;
|
|
32
69
|
export declare const DEATH_KNIGHT_HERO_UNIT_TYPE_ID: StandardHeroUnitTypeId;
|
|
70
|
+
export declare const ZOMBIE_UNIT_TYPE_ID: StandardUnitTypeId;
|
|
71
|
+
export declare const ZOMBIE_FEMALE_UNIT_TYPE_ID: StandardUnitTypeId;
|
|
72
|
+
export declare const ARTHAS_EVIL_HERO_UNIT_TYPE_ID: StandardHeroUnitTypeId;
|
|
33
73
|
export declare const DIRE_MAMMOTH_UNIT_TYPE_ID: StandardUnitTypeId;
|
|
34
74
|
export declare const ELDER_JUNGLE_STALKER_UNIT_TYPE_ID: StandardUnitTypeId;
|
|
35
75
|
export declare const ENRAGED_ELEMENTAL_UNIT_TYPE_ID: StandardUnitTypeId;
|
|
@@ -58,6 +98,7 @@ export declare const WENDIGO_UNIT_TYPE_ID: StandardUnitTypeId;
|
|
|
58
98
|
export declare const WENDIGO_SHAMAN_UNIT_TYPE_ID: StandardUnitTypeId;
|
|
59
99
|
export declare const WILDKIN_UNIT_TYPE_ID: StandardUnitTypeId;
|
|
60
100
|
export declare const WRAITH_UNIT_TYPE_ID: StandardUnitTypeId;
|
|
101
|
+
export declare const GOBLIN_LAND_MINE_UNIT_TYPE_ID: StandardUnitTypeId;
|
|
61
102
|
export declare const CIRCLE_OF_POWER_UNIT_TYPE_ID: StandardUnitTypeId;
|
|
62
103
|
export declare const CIRCLE_OF_POWER_MEDIUM_UNIT_TYPE_ID: StandardUnitTypeId;
|
|
63
104
|
export declare const CIRCLE_OF_POWER_LARGE_UNIT_TYPE_ID: StandardUnitTypeId;
|
|
@@ -8,11 +8,33 @@ ____exports.RIFLEMAN_UNIT_TYPE_ID = fourCC("hrif")
|
|
|
8
8
|
____exports.SIEGE_ENGINE_UNIT_TYPE_ID = fourCC("hmtt")
|
|
9
9
|
____exports.SORCERESS_UNIT_TYPE_ID = fourCC("hsor")
|
|
10
10
|
____exports.SPELLBREAKER_UNIT_TYPE_ID = fourCC("hspt")
|
|
11
|
-
____exports.PALADIN_HERO_UNIT_TYPE_ID = fourCC("Hpal")
|
|
12
11
|
____exports.ARCHMAGE_HERO_UNIT_TYPE_ID = fourCC("Hamg")
|
|
12
|
+
____exports.BLOOD_MAGE_HERO_UNIT_TYPE_ID = fourCC("Hblm")
|
|
13
|
+
____exports.MOUNTAIN_KING_HERO_UNIT_TYPE_ID = fourCC("Hmkg")
|
|
14
|
+
____exports.PALADIN_HERO_UNIT_TYPE_ID = fourCC("Hpal")
|
|
15
|
+
____exports.ARCHER_HIGH_ELF_UNIT_TYPE_ID = fourCC("nhea")
|
|
13
16
|
____exports.CAPTAIN_UNIT_TYPE_ID = fourCC("hcth")
|
|
17
|
+
____exports.SWORDSMAN_UNIT_TYPE_ID = fourCC("hhes")
|
|
18
|
+
____exports.ADMIRAL_PROUDMOORE_HERO_UNIT_TYPE_ID = fourCC("Hapm")
|
|
19
|
+
____exports.ANASTERIAN_SUNSTRIDER_HERO_UNIT_TYPE_ID = fourCC("Hssa")
|
|
20
|
+
____exports.ANTONIDAS_HERO_UNIT_TYPE_ID = fourCC("Hant")
|
|
21
|
+
____exports.ANTONIDAS_GHOST_HERO_UNIT_TYPE_ID = fourCC("Hgam")
|
|
14
22
|
____exports.ARTHAS_HERO_UNIT_TYPE_ID = fourCC("Hart")
|
|
15
23
|
____exports.ARTHAS_WITH_FROSTMOURNE_HERO_UNIT_TYPE_ID = fourCC("Harf")
|
|
24
|
+
____exports.DAGREN_THE_ORCSLAYER_HERO_UNIT_TYPE_ID = fourCC("Hdgo")
|
|
25
|
+
____exports.HALAHK_THE_LIFEBRINGER_HERO_UNIT_TYPE_ID = fourCC("Hhkl")
|
|
26
|
+
____exports.JAINA_HERO_UNIT_TYPE_ID = fourCC("Hjai")
|
|
27
|
+
____exports.JENNALLA_DEEMSPRING_HERO_UNIT_TYPE_ID = fourCC("Hjnd")
|
|
28
|
+
____exports.KAEL_HERO_UNIT_TYPE_ID = fourCC("Hkal")
|
|
29
|
+
____exports.KELEN_THE_SEEKER_HERO_UNIT_TYPE_ID = fourCC("Haah")
|
|
30
|
+
____exports.LORD_GARITHOS_HERO_UNIT_TYPE_ID = fourCC("Hlgr")
|
|
31
|
+
____exports.LORD_NICHOLAS_BUZAN_HERO_UNIT_TYPE_ID = fourCC("Hpb1")
|
|
32
|
+
____exports.MAGROTH_THE_DEFENDER_HERO_UNIT_TYPE_ID = fourCC("Hmgd")
|
|
33
|
+
____exports.MURADIN_BRONZEBEARD_HERO_UNIT_TYPE_ID = fourCC("Hmbr")
|
|
34
|
+
____exports.SIR_GREGORY_EDMUNSON_HERO_UNIT_TYPE_ID = fourCC("Hpb2")
|
|
35
|
+
____exports.SYLVANAS_WINDRUNNER_HERO_UNIT_TYPE_ID = fourCC("Hvwd")
|
|
36
|
+
____exports.THALORIEN_DAWNSEEKER_HERO_UNIT_TYPE_ID = fourCC("Hddt")
|
|
37
|
+
____exports.UTHER_HERO_UNIT_TYPE_ID = fourCC("Huth")
|
|
16
38
|
____exports.BATRIDER_UNIT_TYPE_ID = fourCC("otbr")
|
|
17
39
|
____exports.DEMOLISHER_UNIT_TYPE_ID = fourCC("ocat")
|
|
18
40
|
____exports.GRUNT_UNIT_TYPE_ID = fourCC("ogru")
|
|
@@ -24,11 +46,29 @@ ____exports.SPIRIT_WALKER_UNIT_TYPE_ID = fourCC("ospw")
|
|
|
24
46
|
____exports.TAUREN_UNIT_TYPE_ID = fourCC("otau")
|
|
25
47
|
____exports.WIND_RIDER_UNIT_TYPE_ID = fourCC("owyv")
|
|
26
48
|
____exports.WITCH_DOCTOR_UNIT_TYPE_ID = fourCC("odoc")
|
|
49
|
+
____exports.ARCHER_UNIT_TYPE_ID = fourCC("earc")
|
|
50
|
+
____exports.CHIMAERA_UNIT_TYPE_ID = fourCC("echm")
|
|
51
|
+
____exports.DRUID_OF_THE_CLAW_UNIT_TYPE_ID = fourCC("edoc")
|
|
52
|
+
____exports.DRUID_OF_THE_TALON_UNIT_TYPE_ID = fourCC("edot")
|
|
53
|
+
____exports.DRYAD_UNIT_TYPE_ID = fourCC("edry")
|
|
54
|
+
____exports.FAERIE_DRAGON_UNIT_TYPE_ID = fourCC("efdr")
|
|
55
|
+
____exports.GLAIVE_THROWER_UNIT_TYPE_ID = fourCC("ebal")
|
|
56
|
+
____exports.HIPPOGRYPH_UNIT_TYPE_ID = fourCC("ehip")
|
|
57
|
+
____exports.HIPPOGRYPH_RIDER_UNIT_TYPE_ID = fourCC("ehpr")
|
|
58
|
+
____exports.HUNTRESS_UNIT_TYPE_ID = fourCC("esen")
|
|
59
|
+
____exports.MOUNTAIN_GIANT_THROWER_UNIT_TYPE_ID = fourCC("emtg")
|
|
60
|
+
____exports.WISP_UNIT_TYPE_ID = fourCC("ewsp")
|
|
27
61
|
____exports.DEMON_HUNTER_HERO_UNIT_TYPE_ID = fourCC("Edem")
|
|
62
|
+
____exports.KEEPER_OF_THE_GROVE_HERO_UNIT_TYPE_ID = fourCC("Ekee")
|
|
63
|
+
____exports.MOON_PRIESTESS_HERO_UNIT_TYPE_ID = fourCC("Emoo")
|
|
64
|
+
____exports.WARDEN_HERO_UNIT_TYPE_ID = fourCC("Ewar")
|
|
28
65
|
____exports.DEMON_HUNTER_DEMON_FORM_HERO_UNIT_TYPE_ID = fourCC("Edmm")
|
|
29
66
|
____exports.ABOMINATION_UNIT_TYPE_ID = fourCC("uabo")
|
|
30
67
|
____exports.GHOUL_UNIT_TYPE_ID = fourCC("ugho")
|
|
31
68
|
____exports.DEATH_KNIGHT_HERO_UNIT_TYPE_ID = fourCC("Udea")
|
|
69
|
+
____exports.ZOMBIE_UNIT_TYPE_ID = fourCC("nzom")
|
|
70
|
+
____exports.ZOMBIE_FEMALE_UNIT_TYPE_ID = fourCC("nzof")
|
|
71
|
+
____exports.ARTHAS_EVIL_HERO_UNIT_TYPE_ID = fourCC("Uear")
|
|
32
72
|
____exports.DIRE_MAMMOTH_UNIT_TYPE_ID = fourCC("nmdr")
|
|
33
73
|
____exports.ELDER_JUNGLE_STALKER_UNIT_TYPE_ID = fourCC("njga")
|
|
34
74
|
____exports.ENRAGED_ELEMENTAL_UNIT_TYPE_ID = fourCC("nele")
|
|
@@ -57,6 +97,7 @@ ____exports.WENDIGO_UNIT_TYPE_ID = fourCC("nwen")
|
|
|
57
97
|
____exports.WENDIGO_SHAMAN_UNIT_TYPE_ID = fourCC("nwns")
|
|
58
98
|
____exports.WILDKIN_UNIT_TYPE_ID = fourCC("nowb")
|
|
59
99
|
____exports.WRAITH_UNIT_TYPE_ID = fourCC("ngh2")
|
|
100
|
+
____exports.GOBLIN_LAND_MINE_UNIT_TYPE_ID = fourCC("nglm")
|
|
60
101
|
____exports.CIRCLE_OF_POWER_UNIT_TYPE_ID = fourCC("ncop")
|
|
61
102
|
____exports.CIRCLE_OF_POWER_MEDIUM_UNIT_TYPE_ID = fourCC("ncp2")
|
|
62
103
|
____exports.CIRCLE_OF_POWER_LARGE_UNIT_TYPE_ID = fourCC("ncp3")
|
|
@@ -16,7 +16,7 @@ export declare const LEVEL_SKIP_REQUIREMENT_ABILITY_INTEGER_FIELD: AbilityIntege
|
|
|
16
16
|
export declare const HERO_ABILITY_ABILITY_BOOLEAN_FIELD: AbilityBooleanField & symbol;
|
|
17
17
|
export declare const ITEM_ABILITY_ABILITY_BOOLEAN_FIELD: AbilityBooleanField & symbol;
|
|
18
18
|
export declare const CHECK_DEPENDENCIES_ABILITY_BOOLEAN_FIELD: AbilityBooleanField & symbol;
|
|
19
|
-
export declare const
|
|
19
|
+
export declare const MISSILE_ARC_ABILITY_FLOAT_FIELD: AbilityFloatField & symbol;
|
|
20
20
|
export declare const NAME_ABILITY_STRING_FIELD: AbilityStringField & symbol;
|
|
21
21
|
export declare const ICON_ACTIVATED_ABILITY_STRING_FIELD: AbilityStringField & symbol;
|
|
22
22
|
export declare const ICON_RESEARCH_ABILITY_STRING_FIELD: AbilityStringField & symbol;
|
|
@@ -687,6 +687,8 @@ export declare const DISABLE_OTHER_ABILITIES_ABILITY_BOOLEAN_LEVEL_FIELD: Abilit
|
|
|
687
687
|
export declare const ALLOW_BOUNTY_ABILITY_BOOLEAN_LEVEL_FIELD: AbilityBooleanLevelField & symbol;
|
|
688
688
|
export declare const ICON_NORMAL_ABILITY_STRING_LEVEL_FIELD: AbilityStringLevelField & symbol;
|
|
689
689
|
export declare const CASTER_EFFECT_MODEL_PATHS_ABILITY_STRING_ARRAY_FIELD: AbilityStringArrayField & symbol;
|
|
690
|
+
export declare const CASTER_EFFECT_FIRST_ATTACHMENT_POINT_STRING_FIELD: AbilityStringField & symbol;
|
|
691
|
+
export declare const CASTER_EFFECT_SECOND_ATTACHMENT_POINT_STRING_FIELD: AbilityStringField & symbol;
|
|
690
692
|
export declare const TARGET_EFFECT_MODEL_PATHS_ABILITY_STRING_ARRAY_FIELD: AbilityStringArrayField & symbol;
|
|
691
693
|
export declare const TARGET_EFFECT_FIRST_ATTACHMENT_POINT_STRING_FIELD: AbilityStringField & symbol;
|
|
692
694
|
export declare const TARGET_EFFECT_SECOND_ATTACHMENT_POINT_STRING_FIELD: AbilityStringField & symbol;
|
|
@@ -27,7 +27,7 @@ ____exports.LEVEL_SKIP_REQUIREMENT_ABILITY_INTEGER_FIELD = AbilityIntegerField:c
|
|
|
27
27
|
____exports.HERO_ABILITY_ABILITY_BOOLEAN_FIELD = AbilityBooleanField:create(fourCC("aher"))
|
|
28
28
|
____exports.ITEM_ABILITY_ABILITY_BOOLEAN_FIELD = AbilityBooleanField:create(fourCC("aite"))
|
|
29
29
|
____exports.CHECK_DEPENDENCIES_ABILITY_BOOLEAN_FIELD = AbilityBooleanField:create(fourCC("achd"))
|
|
30
|
-
____exports.
|
|
30
|
+
____exports.MISSILE_ARC_ABILITY_FLOAT_FIELD = AbilityFloatField:create(fourCC("amac"))
|
|
31
31
|
____exports.NAME_ABILITY_STRING_FIELD = AbilityStringField:create(fourCC("anam"))
|
|
32
32
|
____exports.ICON_ACTIVATED_ABILITY_STRING_FIELD = AbilityStringField:create(fourCC("auar"))
|
|
33
33
|
____exports.ICON_RESEARCH_ABILITY_STRING_FIELD = AbilityStringField:create(fourCC("arar"))
|
|
@@ -698,6 +698,8 @@ ____exports.DISABLE_OTHER_ABILITIES_ABILITY_BOOLEAN_LEVEL_FIELD = AbilityBoolean
|
|
|
698
698
|
____exports.ALLOW_BOUNTY_ABILITY_BOOLEAN_LEVEL_FIELD = AbilityBooleanLevelField:create(fourCC("Ntm4"))
|
|
699
699
|
____exports.ICON_NORMAL_ABILITY_STRING_LEVEL_FIELD = AbilityStringLevelField:create(fourCC("aart"))
|
|
700
700
|
____exports.CASTER_EFFECT_MODEL_PATHS_ABILITY_STRING_ARRAY_FIELD = AbilityStringArrayField:create(fourCC("acat"))
|
|
701
|
+
____exports.CASTER_EFFECT_FIRST_ATTACHMENT_POINT_STRING_FIELD = AbilityStringField:create(fourCC("acap"))
|
|
702
|
+
____exports.CASTER_EFFECT_SECOND_ATTACHMENT_POINT_STRING_FIELD = AbilityStringField:create(fourCC("aca1"))
|
|
701
703
|
____exports.TARGET_EFFECT_MODEL_PATHS_ABILITY_STRING_ARRAY_FIELD = AbilityStringArrayField:create(fourCC("atat"))
|
|
702
704
|
____exports.TARGET_EFFECT_FIRST_ATTACHMENT_POINT_STRING_FIELD = AbilityStringField:create(fourCC("ata0"))
|
|
703
705
|
____exports.TARGET_EFFECT_SECOND_ATTACHMENT_POINT_STRING_FIELD = AbilityStringField:create(fourCC("ata1"))
|
package/engine/unit.d.ts
CHANGED
|
@@ -4,6 +4,7 @@ import "./internal/unit/ability";
|
|
|
4
4
|
import "./internal/unit/allowed-targets";
|
|
5
5
|
import "./internal/unit/buff";
|
|
6
6
|
import "./internal/unit/expiration-timer";
|
|
7
|
+
import "./internal/unit/item";
|
|
7
8
|
import "./internal/unit+ability";
|
|
8
9
|
import "./internal/unit+damage";
|
|
9
10
|
import "./internal/unit+rally";
|
|
@@ -14,6 +15,8 @@ import "./internal/unit/missile";
|
|
|
14
15
|
import "./internal/unit-missile-launch";
|
|
15
16
|
import "./internal/unit/ghost-counter";
|
|
16
17
|
import "./internal/unit/invulnerability-counter";
|
|
18
|
+
import "./internal/unit/detach-missiles";
|
|
19
|
+
import "./internal/unit/main-selected";
|
|
17
20
|
import "./internal/unit/band-aids/ancestral-spirit-cannibalize";
|
|
18
21
|
export { Unit, DamagingEvent, DamageEvent } from "./internal/unit";
|
|
19
22
|
export * from "./internal/unit+damage";
|
package/engine/unit.lua
CHANGED
|
@@ -4,6 +4,7 @@ require("engine.internal.unit.ability")
|
|
|
4
4
|
require("engine.internal.unit.allowed-targets")
|
|
5
5
|
require("engine.internal.unit.buff")
|
|
6
6
|
require("engine.internal.unit.expiration-timer")
|
|
7
|
+
require("engine.internal.unit.item")
|
|
7
8
|
require("engine.internal.unit+ability")
|
|
8
9
|
require("engine.internal.unit+damage")
|
|
9
10
|
require("engine.internal.unit+rally")
|
|
@@ -14,11 +15,12 @@ require("engine.internal.unit.missile")
|
|
|
14
15
|
require("engine.internal.unit-missile-launch")
|
|
15
16
|
require("engine.internal.unit.ghost-counter")
|
|
16
17
|
require("engine.internal.unit.invulnerability-counter")
|
|
18
|
+
require("engine.internal.unit.detach-missiles")
|
|
19
|
+
require("engine.internal.unit.main-selected")
|
|
17
20
|
require("engine.internal.unit.band-aids.ancestral-spirit-cannibalize")
|
|
18
21
|
do
|
|
19
22
|
local ____unit = require("engine.internal.unit")
|
|
20
|
-
|
|
21
|
-
____exports.Unit = Unit
|
|
23
|
+
____exports.Unit = ____unit.Unit
|
|
22
24
|
end
|
|
23
25
|
do
|
|
24
26
|
local ____export = require("engine.internal.unit+damage")
|
|
@@ -28,4 +30,12 @@ do
|
|
|
28
30
|
end
|
|
29
31
|
end
|
|
30
32
|
end
|
|
33
|
+
do
|
|
34
|
+
local ____export = require("engine.internal.unit+rally")
|
|
35
|
+
for ____exportKey, ____exportValue in pairs(____export) do
|
|
36
|
+
if ____exportKey ~= "default" then
|
|
37
|
+
____exports[____exportKey] = ____exportValue
|
|
38
|
+
end
|
|
39
|
+
end
|
|
40
|
+
end
|
|
31
41
|
return ____exports
|
package/event.d.ts
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
/// <reference types="@typescript-to-lua/language-extensions" />
|
|
2
1
|
/** @noSelfInFile */
|
|
3
|
-
export type EventListener<T extends any[]> = (...args: T) => void;
|
|
2
|
+
export type EventListener<T extends any[]> = (this: void, ...args: T) => void;
|
|
4
3
|
export declare const enum EventListenerPriority {
|
|
5
4
|
LOWEST = 0,
|
|
6
5
|
LOW = 1,
|
|
@@ -38,7 +37,7 @@ export type EventDispatchTable<EventType extends Event<any>, KeyType extends num
|
|
|
38
37
|
};
|
|
39
38
|
export type DispatchingEvent<P extends any[], T extends Event<P> = Event<P>, S extends Event<P> = Event<P>> = T & EventDispatchTable<S>;
|
|
40
39
|
export declare const createDispatchingEvent: {
|
|
41
|
-
<T extends Event<any>, S extends Event<EventParameters<T>>>(underlyingEvent: T, extractKey: (...args: EventParameters<T>) => number, ...createEvent: [...(Event<any> extends S ? [(() => S)?] : [() => S])]): DispatchingEvent<EventParameters<T>, T>;
|
|
40
|
+
<T extends Event<any>, S extends Event<EventParameters<T>>>(underlyingEvent: T, extractKey: (this: void, ...args: EventParameters<T>) => number, invokeEvent?: (this: void, event: S, ...args: EventParameters<T>) => unknown, ...createEvent: [...(Event<any> extends S ? [((this: void) => S)?] : [(this: void) => S])]): DispatchingEvent<EventParameters<T>, T, S>;
|
|
42
41
|
};
|
|
43
42
|
export declare class DependentInitializingEvent<T extends any[], R extends any[]> extends InitializingEvent<R, EventListener<T>> {
|
|
44
43
|
constructor(underlyingEvent: Event<T>, priority: EventListenerPriority, collector: (...args: T) => LuaMultiReturn<[false] | [true, ...R]>);
|