warscript 0.0.1-dev.a58cc52 → 0.0.1-dev.a5a2f5e
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 +6 -0
- package/attributes.lua +17 -1
- package/core/types/frame.lua +71 -22
- package/core/types/item.d.ts +1 -0
- package/core/types/item.lua +1 -0
- package/core/types/player.d.ts +17 -1
- package/core/types/player.lua +70 -24
- package/core/types/playerCamera.d.ts +2 -0
- package/core/types/playerCamera.lua +123 -5
- package/core/types/sound.lua +1 -1
- package/core/types/tileCell.d.ts +11 -1
- package/core/types/tileCell.lua +97 -0
- package/core/types/timer.d.ts +3 -1
- package/core/types/timer.lua +27 -2
- package/decl/native.d.ts +6 -4
- package/destroyable.d.ts +1 -0
- package/destroyable.lua +9 -0
- package/engine/behavior.d.ts +14 -1
- package/engine/behavior.lua +230 -70
- package/engine/behaviour/ability/apply-buff.lua +5 -5
- package/engine/behaviour/ability/damage.d.ts +7 -2
- package/engine/behaviour/ability/damage.lua +31 -37
- package/engine/behaviour/ability/emulate-impact.d.ts +1 -1
- package/engine/behaviour/ability/emulate-impact.lua +16 -7
- package/engine/behaviour/ability/remove-buffs.d.ts +9 -0
- package/engine/behaviour/ability/remove-buffs.lua +21 -0
- package/engine/behaviour/ability/restore-mana.d.ts +1 -1
- package/engine/behaviour/ability/restore-mana.lua +6 -6
- package/engine/behaviour/ability.d.ts +11 -6
- package/engine/behaviour/ability.lua +38 -17
- package/engine/behaviour/unit/stun-immunity.d.ts +12 -6
- package/engine/behaviour/unit/stun-immunity.lua +57 -31
- package/engine/behaviour/unit.d.ts +39 -3
- package/engine/behaviour/unit.lua +269 -6
- package/engine/buff.d.ts +67 -22
- package/engine/buff.lua +371 -182
- package/engine/internal/ability.d.ts +7 -1
- package/engine/internal/ability.lua +64 -24
- package/engine/internal/item/ability.lua +63 -11
- package/engine/internal/item/fields.d.ts +12 -0
- package/engine/internal/item/fields.lua +33 -0
- package/engine/internal/item+owner.lua +12 -6
- package/engine/internal/item.d.ts +12 -16
- package/engine/internal/item.lua +118 -69
- package/engine/internal/mechanics/cast-ability.lua +6 -3
- package/engine/internal/misc/damage-metadata-by-target.lua +5 -0
- package/engine/internal/misc/frame-coordinates.d.ts +2 -0
- package/engine/internal/misc/frame-coordinates.lua +21 -0
- package/engine/internal/misc/get-terrain-z.d.ts +2 -0
- package/engine/internal/misc/get-terrain-z.lua +11 -0
- package/engine/internal/misc/player-local-handle.d.ts +2 -0
- package/engine/internal/misc/player-local-handle.lua +5 -0
- package/engine/internal/object-data/armor-bonus.d.ts +2 -0
- package/engine/internal/object-data/attribute-bonus.lua +2 -2
- package/engine/internal/object-data/health-bonus.d.ts +2 -0
- package/engine/internal/object-data/health-bonus.lua +16 -0
- package/engine/internal/object-data/mana-bonus.d.ts +2 -0
- package/engine/internal/object-data/mana-bonus.lua +16 -0
- package/engine/internal/object-data/mana-regeneration-rate-increase-factor.d.ts +2 -0
- package/engine/internal/object-data/mana-regeneration-rate-increase-factor.lua +16 -0
- package/engine/internal/unit/ability.d.ts +35 -0
- package/engine/internal/unit/ability.lua +98 -9
- package/engine/internal/unit/allowed-targets.d.ts +1 -1
- package/engine/internal/unit/allowed-targets.lua +9 -1
- package/engine/internal/unit/attributes.d.ts +17 -0
- package/engine/internal/unit/attributes.lua +46 -0
- package/engine/internal/unit/bonus.d.ts +6 -0
- package/engine/internal/unit/bonus.lua +33 -3
- package/engine/internal/unit/fly-height.d.ts +7 -0
- package/engine/internal/unit/fly-height.lua +20 -0
- package/engine/internal/unit/interrupts.d.ts +12 -0
- package/engine/internal/unit/interrupts.lua +28 -0
- package/engine/internal/unit/main-selected.lua +12 -27
- package/engine/internal/unit/order.d.ts +20 -0
- package/engine/internal/unit/order.lua +136 -0
- package/engine/internal/unit/range-event.d.ts +12 -0
- package/engine/internal/unit/range-event.lua +90 -0
- package/engine/internal/unit/scale.d.ts +7 -0
- package/engine/internal/unit/scale.lua +20 -0
- package/engine/internal/unit+ability.lua +10 -1
- package/engine/internal/unit+bonus.lua +3 -3
- package/engine/internal/unit+damage.d.ts +1 -1
- package/engine/internal/unit+damage.lua +6 -1
- package/engine/internal/unit-missile-launch.lua +52 -14
- package/engine/internal/unit.d.ts +32 -26
- package/engine/internal/unit.lua +351 -269
- package/engine/local-client.d.ts +7 -0
- package/engine/local-client.lua +86 -1
- package/engine/object-data/auxiliary/armor-type.d.ts +11 -0
- package/engine/object-data/auxiliary/armor-type.lua +46 -0
- package/engine/object-data/auxiliary/health-regeneration-type.d.ts +8 -0
- package/engine/object-data/auxiliary/health-regeneration-type.lua +2 -0
- package/engine/object-data/auxiliary/unit-attribute.lua +1 -1
- package/engine/object-data/entry/ability-type/{armor-increase.d.ts → armor-bonus.d.ts} +3 -3
- package/engine/object-data/entry/ability-type/{armor-increase.lua → armor-bonus.lua} +9 -9
- package/engine/object-data/entry/ability-type/health-bonus.d.ts +8 -0
- package/engine/object-data/entry/ability-type/health-bonus.lua +26 -0
- package/engine/object-data/entry/ability-type/mana-bonus.d.ts +8 -0
- package/engine/object-data/entry/ability-type/mana-bonus.lua +26 -0
- package/engine/object-data/entry/ability-type/mana-regeneration.d.ts +8 -0
- package/engine/object-data/entry/ability-type/mana-regeneration.lua +26 -0
- package/engine/object-data/entry/ability-type/permanent-invisibility.d.ts +8 -0
- package/engine/object-data/entry/ability-type/permanent-invisibility.lua +26 -0
- package/engine/object-data/entry/ability-type/reincarnation.d.ts +8 -0
- package/engine/object-data/entry/ability-type/reincarnation.lua +26 -0
- package/engine/object-data/entry/ability-type.d.ts +2 -0
- package/engine/object-data/entry/ability-type.lua +89 -8
- package/engine/object-data/entry/buff-type/applicable.lua +113 -109
- package/engine/object-data/entry/destructible-type.d.ts +27 -1
- package/engine/object-data/entry/destructible-type.lua +155 -0
- package/engine/object-data/entry/unit-type.d.ts +15 -2
- package/engine/object-data/entry/unit-type.lua +135 -33
- package/engine/object-field/ability.d.ts +3 -3
- package/engine/object-field/ability.lua +9 -8
- package/engine/object-field/item.d.ts +22 -0
- package/engine/object-field/item.lua +118 -0
- package/engine/object-field/unit.d.ts +31 -5
- package/engine/object-field/unit.lua +95 -0
- package/engine/object-field.d.ts +18 -7
- package/engine/object-field.lua +294 -135
- package/engine/random.d.ts +10 -0
- package/engine/random.lua +21 -0
- package/engine/standard/fields/ability.d.ts +2 -2
- package/engine/standard/fields/ability.lua +2 -2
- package/engine/standard/fields/item.d.ts +4 -0
- package/engine/standard/fields/item.lua +6 -0
- package/engine/standard/fields/unit.d.ts +12 -0
- package/engine/standard/fields/unit.lua +20 -0
- package/engine/synchronization.d.ts +11 -0
- package/engine/synchronization.lua +77 -0
- package/engine/text-tag.d.ts +36 -2
- package/engine/text-tag.lua +250 -10
- package/engine/unit.d.ts +6 -0
- package/engine/unit.lua +6 -0
- package/lualib_bundle.lua +1 -1
- package/math.d.ts +2 -0
- package/math.lua +14 -0
- package/net/socket.lua +1 -1
- package/objutil/buff.lua +10 -8
- package/objutil/object.lua +1 -1
- package/operation.lua +1 -4
- package/package.json +5 -5
- package/patch-lua.lua +15 -0
- package/patch-lualib.lua +1 -1
- package/utility/arrays.d.ts +1 -0
- package/utility/arrays.lua +8 -0
- package/utility/callback-array.d.ts +17 -0
- package/utility/callback-array.lua +61 -0
- package/utility/functions.d.ts +7 -0
- package/utility/functions.lua +12 -0
- package/utility/linked-map.d.ts +35 -0
- package/utility/linked-map.lua +107 -0
- package/utility/linked-set.d.ts +4 -1
- package/utility/linked-set.lua +46 -1
- package/utility/lua-maps.d.ts +12 -2
- package/utility/lua-maps.lua +37 -2
- package/utility/lua-sets.d.ts +1 -0
- package/utility/lua-sets.lua +4 -0
- package/utility/records.lua +20 -1
- package/utility/types.d.ts +3 -0
- package/utility/unordered-map.d.ts +27 -0
- package/utility/unordered-map.lua +99 -0
- package/core/types/order.d.ts +0 -25
- package/core/types/order.lua +0 -55
- /package/engine/internal/{object-data/armor-increase.d.ts → misc/damage-metadata-by-target.d.ts} +0 -0
- /package/engine/internal/object-data/{armor-increase.lua → armor-bonus.lua} +0 -0
- /package/engine/object-data/entry/ability-type/{attribute-increase.d.ts → attribute-bonus.d.ts} +0 -0
- /package/engine/object-data/entry/ability-type/{attribute-increase.lua → attribute-bonus.lua} +0 -0
|
@@ -9,6 +9,8 @@ local ____dummy = require("objutil.dummy")
|
|
|
9
9
|
local dummyUnitId = ____dummy.dummyUnitId
|
|
10
10
|
local ____attack_2Dtype = require("engine.object-data.auxiliary.attack-type")
|
|
11
11
|
local attackTypeToNative = ____attack_2Dtype.attackTypeToNative
|
|
12
|
+
local ____damage_2Dmetadata_2Dby_2Dtarget = require("engine.internal.misc.damage-metadata-by-target")
|
|
13
|
+
local damageMetadataByTarget = ____damage_2Dmetadata_2Dby_2Dtarget.damageMetadataByTarget
|
|
12
14
|
local createUnit = CreateUnit
|
|
13
15
|
local getOwningPlayer = GetOwningPlayer
|
|
14
16
|
local showUnit = ShowUnit
|
|
@@ -79,7 +81,7 @@ for ____, player in ipairs(Player.all) do
|
|
|
79
81
|
showUnit(dummy, false)
|
|
80
82
|
dummies[player] = dummy
|
|
81
83
|
end
|
|
82
|
-
Unit.prototype.damageTarget = function(self, target, amount, attack, ranged, attackType, damageType, weaponType)
|
|
84
|
+
Unit.prototype.damageTarget = function(self, target, amount, attack, ranged, attackType, damageType, weaponType, metadata)
|
|
83
85
|
if attack == nil then
|
|
84
86
|
attack = false
|
|
85
87
|
end
|
|
@@ -100,6 +102,9 @@ Unit.prototype.damageTarget = function(self, target, amount, attack, ranged, att
|
|
|
100
102
|
if not getOwningPlayer(handle) then
|
|
101
103
|
handle = dummies[__TS__InstanceOf(target, Unit) and target.owner or (self._owner or Player.neutralAggressive)]
|
|
102
104
|
end
|
|
105
|
+
if __TS__InstanceOf(target, Unit) then
|
|
106
|
+
damageMetadataByTarget[target] = metadata
|
|
107
|
+
end
|
|
103
108
|
return unitDamageTarget(
|
|
104
109
|
handle,
|
|
105
110
|
targetHandle,
|
|
@@ -9,9 +9,18 @@ local ____timer = require("core.types.timer")
|
|
|
9
9
|
local Timer = ____timer.Timer
|
|
10
10
|
local ____lua_2Dsets = require("utility.lua-sets")
|
|
11
11
|
local luaSetOf = ____lua_2Dsets.luaSetOf
|
|
12
|
+
local ____attributes = require("attributes")
|
|
13
|
+
local attribute = ____attributes.attribute
|
|
14
|
+
local ____linked_2Dset = require("utility.linked-set")
|
|
15
|
+
local LinkedSet = ____linked_2Dset.LinkedSet
|
|
16
|
+
local ____math = require("math")
|
|
17
|
+
local ceil = ____math.ceil
|
|
12
18
|
local autoAttackFinishEvent = __TS__New(Event)
|
|
13
19
|
rawset(Unit, "autoAttackFinishEvent", autoAttackFinishEvent)
|
|
14
|
-
local
|
|
20
|
+
local units = __TS__New(LinkedSet)
|
|
21
|
+
local targetAttribute = attribute()
|
|
22
|
+
local impactDelayAttribute = attribute()
|
|
23
|
+
local passedTimeAttribute = attribute()
|
|
15
24
|
local instantOrderIds = luaSetOf(
|
|
16
25
|
orderId("avatar"),
|
|
17
26
|
orderId("berserk"),
|
|
@@ -27,25 +36,54 @@ local instantOrderIds = luaSetOf(
|
|
|
27
36
|
orderId("undivineshield"),
|
|
28
37
|
orderId("unimmolation")
|
|
29
38
|
)
|
|
30
|
-
|
|
39
|
+
---
|
|
40
|
+
-- @internal For use by internal systems only.
|
|
41
|
+
____exports.resetAutoAttackTimer = function(unit)
|
|
42
|
+
if units:remove(unit) then
|
|
43
|
+
unit[targetAttribute] = nil
|
|
44
|
+
unit[impactDelayAttribute] = nil
|
|
45
|
+
unit[passedTimeAttribute] = nil
|
|
46
|
+
end
|
|
47
|
+
end
|
|
48
|
+
local function reset(unit, orderId)
|
|
31
49
|
if not (instantOrderIds[orderId] ~= nil) then
|
|
32
|
-
|
|
33
|
-
if eventTimer then
|
|
34
|
-
eventTimer:destroy()
|
|
35
|
-
eventTimerByUnit[source] = nil
|
|
36
|
-
end
|
|
50
|
+
____exports.resetAutoAttackTimer(unit)
|
|
37
51
|
end
|
|
38
52
|
end
|
|
39
53
|
Unit.onImmediateOrder:addListener(reset)
|
|
40
54
|
Unit.onPointOrder:addListener(reset)
|
|
41
55
|
Unit.onTargetOrder:addListener(reset)
|
|
42
|
-
local
|
|
43
|
-
|
|
44
|
-
|
|
56
|
+
local timerPeriod = 1 / 64
|
|
57
|
+
local function invokeEvent(unit)
|
|
58
|
+
units:remove(unit)
|
|
59
|
+
local target = unit[targetAttribute]
|
|
60
|
+
unit[targetAttribute] = nil
|
|
61
|
+
unit[impactDelayAttribute] = nil
|
|
62
|
+
unit[passedTimeAttribute] = nil
|
|
63
|
+
Event.invoke(autoAttackFinishEvent, unit, target)
|
|
64
|
+
end
|
|
65
|
+
local function checkUnit(unit)
|
|
66
|
+
local passedTime = unit[passedTimeAttribute] + timerPeriod
|
|
67
|
+
local impactDelay = unit[impactDelayAttribute]
|
|
68
|
+
if passedTime >= impactDelay and ceil(passedTime / 0.02) >= ceil(impactDelay / 0.02) then
|
|
69
|
+
invokeEvent(unit)
|
|
70
|
+
else
|
|
71
|
+
unit[passedTimeAttribute] = passedTime
|
|
72
|
+
end
|
|
45
73
|
end
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
local timer = Timer:simple(attackPoint, timerCallback, source, target)
|
|
49
|
-
eventTimerByUnit[source] = timer
|
|
74
|
+
Timer.onPeriod[timerPeriod]:addListener(function()
|
|
75
|
+
units:forEach(checkUnit)
|
|
50
76
|
end)
|
|
77
|
+
Unit.autoAttackStartEvent:addListener(
|
|
78
|
+
999999,
|
|
79
|
+
function(source, target)
|
|
80
|
+
if source[targetAttribute] ~= nil then
|
|
81
|
+
invokeEvent(source)
|
|
82
|
+
end
|
|
83
|
+
source[targetAttribute] = target
|
|
84
|
+
source[impactDelayAttribute] = (source:chooseWeapon(target) or source.firstWeapon).impactDelay
|
|
85
|
+
source[passedTimeAttribute] = -timerPeriod
|
|
86
|
+
units:add(source)
|
|
87
|
+
end
|
|
88
|
+
)
|
|
51
89
|
return ____exports
|
|
@@ -14,6 +14,7 @@ import { CombatClassification, CombatClassifications } from "../object-data/auxi
|
|
|
14
14
|
import { MovementType } from "../object-data/auxiliary/movement-type";
|
|
15
15
|
import { UnitAttribute } from "../object-data/auxiliary/unit-attribute";
|
|
16
16
|
import { AttackType } from "../object-data/auxiliary/attack-type";
|
|
17
|
+
import { AttributesHolder } from "../../attributes";
|
|
17
18
|
export type UnitClassification = junittype;
|
|
18
19
|
export declare namespace UnitClassification {
|
|
19
20
|
const STRUCTURE: junittype;
|
|
@@ -22,6 +23,7 @@ export declare namespace UnitClassification {
|
|
|
22
23
|
const GROUND: junittype;
|
|
23
24
|
const SUMMONED: junittype;
|
|
24
25
|
const MECHANICAL: junittype;
|
|
26
|
+
const WORKER: junittype;
|
|
25
27
|
const ANCIENT: junittype;
|
|
26
28
|
const SUICIDAL: junittype;
|
|
27
29
|
const TAUREN: junittype;
|
|
@@ -39,15 +41,18 @@ type AbilityDispatcherTable<T extends any[] = []> = {
|
|
|
39
41
|
readonly [id: number]: Event<[Unit, Ability, ...T]>;
|
|
40
42
|
};
|
|
41
43
|
type AbilityEventDispatcher<T extends any[] = []> = Event<[Unit, Ability, ...T]> & AbilityDispatcherTable<T>;
|
|
42
|
-
export interface DamagingEvent {
|
|
44
|
+
export interface DamagingEvent extends AttributesHolder {
|
|
43
45
|
amount: number;
|
|
44
46
|
attackType: AttackType;
|
|
45
47
|
damageType: jdamagetype;
|
|
46
48
|
weaponType: jweapontype;
|
|
49
|
+
metadata: unknown;
|
|
47
50
|
readonly isAttack: boolean;
|
|
48
51
|
readonly originalAmount: number;
|
|
52
|
+
readonly originalMetadata: unknown;
|
|
53
|
+
preventRetaliation(this: DamagingEvent): void;
|
|
49
54
|
}
|
|
50
|
-
export type DamageEvent = DamagingEvent & {
|
|
55
|
+
export type DamageEvent = Omit<DamagingEvent, "preventRetaliation"> & {
|
|
51
56
|
preventDeath<P extends any[]>(this: DamageEvent, callback: (this: void, ...parameters: P) => any, ...parameters: P): void;
|
|
52
57
|
};
|
|
53
58
|
export type AttackDamageEvent = DamagingEvent & {
|
|
@@ -75,10 +80,14 @@ export declare class UnitWeapon {
|
|
|
75
80
|
readonly unit: Unit;
|
|
76
81
|
readonly index: 0 | 1;
|
|
77
82
|
constructor(unit: Unit, index: 0 | 1);
|
|
83
|
+
get isEnabled(): boolean;
|
|
84
|
+
set isEnabled(isEnabled: boolean);
|
|
78
85
|
get cooldown(): number;
|
|
79
86
|
set cooldown(cooldown: number);
|
|
80
87
|
get damage(): [minimumDamage: number, maximumDamage: number];
|
|
81
88
|
set damage([minimumDamage, maximumDamage]: [number, number]);
|
|
89
|
+
get allowedTargetCombatClassifications(): CombatClassifications;
|
|
90
|
+
set allowedTargetCombatClassifications(allowedTargetCombatClassifications: CombatClassifications);
|
|
82
91
|
get damageBase(): number;
|
|
83
92
|
set damageBase(damageBase: number);
|
|
84
93
|
get damageDiceCount(): number;
|
|
@@ -100,12 +109,13 @@ declare const enum UnitPropertyKey {
|
|
|
100
109
|
SYNC_ID = 100,
|
|
101
110
|
IS_PAUSED = 101,
|
|
102
111
|
STUN_COUNTER = 102,
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
112
|
+
FORCE_STUN_COUNTER = 103,
|
|
113
|
+
DELAY_HEALTH_CHECKS_COUNTER = 104,
|
|
114
|
+
DELAY_HEALTH_CHECKS_HEALTH_BONUS = 105,
|
|
115
|
+
PREVENT_DEATH_HEALTH_BONUS = 106,
|
|
116
|
+
IS_TEAM_GLOW_HIDDEN = 107,
|
|
117
|
+
LAST_X = 108,
|
|
118
|
+
LAST_Y = 109
|
|
109
119
|
}
|
|
110
120
|
export type UnitSyncId = number & {
|
|
111
121
|
readonly __unitSyncId: unique symbol;
|
|
@@ -114,6 +124,7 @@ export declare class Unit extends Handle<junit> {
|
|
|
114
124
|
readonly syncId: UnitSyncId;
|
|
115
125
|
private [UnitPropertyKey.IS_PAUSED]?;
|
|
116
126
|
private [UnitPropertyKey.STUN_COUNTER]?;
|
|
127
|
+
private [UnitPropertyKey.FORCE_STUN_COUNTER]?;
|
|
117
128
|
private [UnitPropertyKey.DELAY_HEALTH_CHECKS_COUNTER]?;
|
|
118
129
|
private [UnitPropertyKey.DELAY_HEALTH_CHECKS_HEALTH_BONUS]?;
|
|
119
130
|
private [UnitPropertyKey.PREVENT_DEATH_HEALTH_BONUS]?;
|
|
@@ -128,6 +139,7 @@ export declare class Unit extends Handle<junit> {
|
|
|
128
139
|
private _fields?;
|
|
129
140
|
private getEvent;
|
|
130
141
|
constructor(handle: junit);
|
|
142
|
+
private saveData;
|
|
131
143
|
protected onDestroy(): HandleDestructor;
|
|
132
144
|
addAttackHandler(condition: AttackHandlerCondition, action: AttackHandlerAction): AttackHandler;
|
|
133
145
|
removeAttackHandler(handler: AttackHandler): boolean;
|
|
@@ -153,29 +165,23 @@ export declare class Unit extends Handle<junit> {
|
|
|
153
165
|
isInRangeOf(unit: Unit, range: number): boolean;
|
|
154
166
|
isAllyOf(unit: Unit): boolean;
|
|
155
167
|
isEnemyOf(unit: Unit): boolean;
|
|
156
|
-
playAnimation(animation: string, rarity?: jraritycontrol): void;
|
|
157
|
-
playAnimation(animation: number): void;
|
|
168
|
+
playAnimation(...parameters: [animation: number] | [animation: string, rarity?: jraritycontrol]): void;
|
|
158
169
|
resetAnimation(): void;
|
|
159
170
|
queueAnimation(animation: string): void;
|
|
160
171
|
get weapons(): [UnitWeapon, UnitWeapon];
|
|
161
172
|
get firstWeapon(): UnitWeapon;
|
|
162
173
|
get secondWeapon(): UnitWeapon;
|
|
174
|
+
chooseWeapon(target: Unit): UnitWeapon | undefined;
|
|
163
175
|
get level(): number;
|
|
164
176
|
set level(v: number);
|
|
165
177
|
get xp(): number;
|
|
166
178
|
set xp(v: number);
|
|
167
179
|
get primaryAttribute(): UnitAttribute;
|
|
168
180
|
set primaryAttribute(primaryAttribute: UnitAttribute);
|
|
169
|
-
get strengthBase(): number;
|
|
170
|
-
set strengthBase(strengthBase: number);
|
|
171
181
|
get strengthBonus(): number;
|
|
172
182
|
get strength(): number;
|
|
173
|
-
get agilityBase(): number;
|
|
174
|
-
set agilityBase(agilityBase: number);
|
|
175
183
|
get agilityBonus(): number;
|
|
176
184
|
get agility(): number;
|
|
177
|
-
get intelligenceBase(): number;
|
|
178
|
-
set intelligenceBase(intelligenceBase: number);
|
|
179
185
|
get intelligenceBonus(): number;
|
|
180
186
|
get intelligence(): number;
|
|
181
187
|
get name(): string;
|
|
@@ -209,8 +215,6 @@ export declare class Unit extends Handle<junit> {
|
|
|
209
215
|
set facing(v: number);
|
|
210
216
|
get speed(): number;
|
|
211
217
|
set speed(v: number);
|
|
212
|
-
get flyHeight(): number;
|
|
213
|
-
set flyHeight(v: number);
|
|
214
218
|
get x(): number;
|
|
215
219
|
set x(v: number);
|
|
216
220
|
get y(): number;
|
|
@@ -234,8 +238,6 @@ export declare class Unit extends Handle<junit> {
|
|
|
234
238
|
get isInvulnerable(): boolean;
|
|
235
239
|
get vertexColor(): Color;
|
|
236
240
|
set vertexColor(v: Color);
|
|
237
|
-
get scale(): number;
|
|
238
|
-
set scale(v: number);
|
|
239
241
|
get timeScale(): number;
|
|
240
242
|
set timeScale(v: number);
|
|
241
243
|
get collisionSize(): number;
|
|
@@ -259,18 +261,17 @@ export declare class Unit extends Handle<junit> {
|
|
|
259
261
|
dropItemTarget(item: Item, target: Widget): boolean;
|
|
260
262
|
dropItemSlot(item: Item, slot: number): boolean;
|
|
261
263
|
itemInSlot(slot: number): Item | null;
|
|
262
|
-
addAbility(abilityId: number): UnitAbility |
|
|
264
|
+
addAbility(abilityId: number): UnitAbility | undefined;
|
|
263
265
|
makeAbilityPermanent(abilityId: number, permanent: true): boolean;
|
|
264
266
|
setAbilityLevel(abilityId: number, level: number): number;
|
|
265
267
|
getAbilityLevel(abilityId: number): number;
|
|
266
268
|
hasAbility(abilityId: number): boolean;
|
|
267
|
-
|
|
268
|
-
removeAbility(
|
|
269
|
+
getAbility(abilityId: number): UnitAbility | undefined;
|
|
270
|
+
removeAbility(abilityTypeId: number): boolean;
|
|
269
271
|
hideAbility(abilityId: number, flag: boolean): void;
|
|
270
272
|
getAbilityRemainingCooldown(abilityId: number): number;
|
|
271
273
|
startAbilityCooldown(abilityId: number, cooldown: number): void;
|
|
272
274
|
endAbilityCooldown(abilityId: number): void;
|
|
273
|
-
interruptAttack(): void;
|
|
274
275
|
interruptCast(abilityId: number): void;
|
|
275
276
|
getDistanceTo(target: Unit | Vec2): number;
|
|
276
277
|
getCollisionDistanceTo(...target: [Unit] | [targetX: number, targetY: number]): number;
|
|
@@ -284,14 +285,16 @@ export declare class Unit extends Handle<junit> {
|
|
|
284
285
|
unpauseEx(): void;
|
|
285
286
|
incrementStunCounter(): void;
|
|
286
287
|
decrementStunCounter(): void;
|
|
288
|
+
incrementForceStunCounter(): void;
|
|
289
|
+
decrementForceStunCounter(): void;
|
|
287
290
|
set waygateActive(v: boolean);
|
|
288
291
|
get waygateActive(): boolean;
|
|
289
292
|
set waygateDestination(v: Vec2);
|
|
290
293
|
get waygateDestination(): Vec2;
|
|
291
294
|
get abilities(): ReadonlyArray<UnitAbility>;
|
|
292
|
-
get onUnitInRange(): Record<number, Event<[Unit]>>;
|
|
293
295
|
get onManaEqual(): Record<number, Event<[Unit, number]>>;
|
|
294
296
|
get manaEvent(): Record<Operator, Record<number, Event<[Unit]>>>;
|
|
297
|
+
get targetAcquiredEvent(): Event;
|
|
295
298
|
get onSelect(): Event;
|
|
296
299
|
get onDeselect(): Event;
|
|
297
300
|
get onImmediateOrder(): Event<[number]>;
|
|
@@ -307,6 +310,7 @@ export declare class Unit extends Handle<junit> {
|
|
|
307
310
|
static getInCollisionRange(x: number, y: number, range: number, predicate?: (unit: Unit) => boolean): Unit[];
|
|
308
311
|
static getInSector(pos: Vec2, range: number, offsetAngle: number, centralAngle: number): Unit[];
|
|
309
312
|
static getSelectionOf(player: Player, target?: Unit[]): Unit[];
|
|
313
|
+
static readonly levelChangedEvent: UnitTriggerEvent<[]>;
|
|
310
314
|
static readonly deathEvent: UnitTriggerEvent<[Unit]>;
|
|
311
315
|
static readonly onDecay: UnitTriggerEvent<[]>;
|
|
312
316
|
static readonly onResurrect: InitializingEvent<[Unit], void>;
|
|
@@ -344,7 +348,8 @@ export declare class Unit extends Handle<junit> {
|
|
|
344
348
|
static itemDroppedEvent: UnitTriggerEvent<[Item]>;
|
|
345
349
|
static itemPickedUpEvent: UnitTriggerEvent<[Item]>;
|
|
346
350
|
static itemUsedEvent: UnitTriggerEvent<[Item]>;
|
|
347
|
-
static itemStackedEvent: UnitTriggerEvent<[Item]>;
|
|
351
|
+
static itemStackedEvent: UnitTriggerEvent<[target: Item, source: Item]>;
|
|
352
|
+
static get itemChargesChangedEvent(): Event<[unit: Unit, item: Item]>;
|
|
348
353
|
static get itemUseOrderEvent(): Event<[unit: Unit, item: Item]>;
|
|
349
354
|
static get itemMoveOrderEvent(): Event<[
|
|
350
355
|
unit: Unit,
|
|
@@ -363,5 +368,6 @@ export declare class Unit extends Handle<junit> {
|
|
|
363
368
|
setField(field: junitstringfield, value: string): boolean;
|
|
364
369
|
toString(): string;
|
|
365
370
|
static getBySyncId(syncId: UnitSyncId): Unit | undefined;
|
|
371
|
+
static synchronize: (player: Player, object: Unit | undefined) => Promise<Unit | undefined>;
|
|
366
372
|
}
|
|
367
373
|
export {};
|