warscript 0.0.1-dev.ea69747 → 0.0.1-dev.fa6dee5
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/core/types/frame.d.ts +0 -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.lua +1 -1
- package/engine/ability.d.ts +1 -1
- package/engine/behavior.d.ts +6 -6
- 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/instant-impact.lua +4 -0
- package/engine/behaviour/ability.d.ts +8 -1
- package/engine/behaviour/ability.lua +62 -0
- package/engine/behaviour/unit/stun-immunity.d.ts +0 -1
- package/engine/buff.d.ts +2 -2
- package/engine/internal/ability.d.ts +1 -1
- 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/unit/bonus.d.ts +5 -6
- package/engine/internal/unit/detach-missiles.d.ts +7 -0
- package/engine/internal/unit/detach-missiles.lua +30 -0
- package/engine/internal/unit-missile-launch.lua +1 -1
- package/engine/internal/unit.d.ts +36 -9
- package/engine/internal/unit.lua +215 -63
- 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/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/engineering-upgrade.lua +2 -2
- 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 +1 -0
- 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 +0 -1
- 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-field/ability.d.ts +8 -6
- package/engine/object-field/ability.lua +6 -0
- package/engine/object-field/unit.d.ts +1 -0
- package/engine/object-field/unit.lua +3 -0
- package/engine/object-field.d.ts +6 -4
- package/engine/object-field.lua +38 -12
- 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 +1 -1
- package/engine/standard/fields/ability.lua +1 -1
- package/engine/unit.d.ts +1 -0
- package/engine/unit.lua +10 -2
- package/event.d.ts +0 -1
- package/exception.d.ts +2 -0
- package/exception.lua +4 -0
- package/global/vec2.lua +1 -0
- package/lualib_bundle.lua +139 -40
- package/math/vec2.d.ts +2 -9
- package/math.d.ts +0 -2
- package/objutil/ability.d.ts +0 -1
- package/objutil/buff.d.ts +0 -1
- package/objutil/object.d.ts +0 -1
- package/objutil/unit.d.ts +0 -1
- package/package.json +13 -14
- package/string.d.ts +30 -0
- package/string.lua +14 -0
- package/util/stream.d.ts +0 -1
- package/utility/arrays.d.ts +4 -5
- package/utility/arrays.lua +4 -1
- package/utility/bit-set.d.ts +0 -2
- package/utility/linked-set.d.ts +21 -8
- package/utility/linked-set.lua +16 -0
- package/utility/lua-maps.d.ts +1 -2
- package/utility/lua-sets.d.ts +1 -2
- package/utility/types.d.ts +2 -2
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
/// <reference types="@typescript-to-lua/language-extensions" />
|
|
2
1
|
/** @noSelfInFile */
|
|
3
2
|
import { Handle, HandleDestructor } from "../../core/types/handle";
|
|
4
3
|
import { Player } from "../../core/types/player";
|
|
@@ -68,23 +67,44 @@ declare const modifiers: {
|
|
|
68
67
|
speed: (unit: junit, value: number) => void;
|
|
69
68
|
armor: (unit: junit, value: number) => void;
|
|
70
69
|
};
|
|
71
|
-
|
|
70
|
+
export declare class UnitWeapon {
|
|
71
|
+
readonly unit: Unit;
|
|
72
72
|
readonly index: 0 | 1;
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
73
|
+
constructor(unit: Unit, index: 0 | 1);
|
|
74
|
+
get cooldown(): number;
|
|
75
|
+
set cooldown(cooldown: number);
|
|
76
|
+
get damage(): [minimumDamage: number, maximumDamage: number];
|
|
77
|
+
set damage([minimumDamage, maximumDamage]: [number, number]);
|
|
78
|
+
get damageBase(): number;
|
|
79
|
+
set damageBase(damageBase: number);
|
|
80
|
+
get damageDiceCount(): number;
|
|
81
|
+
set damageDiceCount(damageDiceCount: number);
|
|
82
|
+
get damageDiceSideCount(): number;
|
|
83
|
+
set damageDiceSideCount(damageDiceSideCount: number);
|
|
84
|
+
get range(): number;
|
|
85
|
+
set range(range: number);
|
|
86
|
+
get impactDelay(): number;
|
|
87
|
+
set impactDelay(impactDelay: number);
|
|
88
|
+
get missileArc(): number;
|
|
89
|
+
set missileArc(missileArc: number);
|
|
90
|
+
get missileModelPath(): string;
|
|
91
|
+
set missileModelPath(missileModelPath: string);
|
|
92
|
+
get missileSpeed(): number;
|
|
93
|
+
set missileSpeed(missileSpeed: number);
|
|
78
94
|
}
|
|
79
95
|
declare const enum UnitPropertyKey {
|
|
80
96
|
IS_PAUSED = 100,
|
|
81
97
|
STUN_COUNTER = 101,
|
|
82
|
-
|
|
83
|
-
|
|
98
|
+
DELAY_HEALTH_CHECKS_COUNTER = 102,
|
|
99
|
+
DELAY_HEALTH_CHECKS_HEALTH_BONUS = 103,
|
|
100
|
+
PREVENT_DEATH_HEALTH_BONUS = 104,
|
|
101
|
+
IS_TEAM_GLOW_HIDDEN = 105
|
|
84
102
|
}
|
|
85
103
|
export declare class Unit extends Handle<junit> {
|
|
86
104
|
private [UnitPropertyKey.IS_PAUSED]?;
|
|
87
105
|
private [UnitPropertyKey.STUN_COUNTER]?;
|
|
106
|
+
private [UnitPropertyKey.DELAY_HEALTH_CHECKS_COUNTER]?;
|
|
107
|
+
private [UnitPropertyKey.DELAY_HEALTH_CHECKS_HEALTH_BONUS]?;
|
|
88
108
|
private [UnitPropertyKey.PREVENT_DEATH_HEALTH_BONUS]?;
|
|
89
109
|
private [UnitPropertyKey.IS_TEAM_GLOW_HIDDEN]?;
|
|
90
110
|
private _owner?;
|
|
@@ -123,6 +143,8 @@ export declare class Unit extends Handle<junit> {
|
|
|
123
143
|
playAnimation(animation: number): void;
|
|
124
144
|
queueAnimation(animation: string): void;
|
|
125
145
|
get weapons(): [UnitWeapon, UnitWeapon];
|
|
146
|
+
get firstWeapon(): UnitWeapon;
|
|
147
|
+
get secondWeapon(): UnitWeapon;
|
|
126
148
|
get level(): number;
|
|
127
149
|
set level(v: number);
|
|
128
150
|
get xp(): number;
|
|
@@ -148,6 +170,10 @@ export declare class Unit extends Handle<junit> {
|
|
|
148
170
|
set color(color: PlayerColor);
|
|
149
171
|
get acquisitionRange(): number;
|
|
150
172
|
set acquisitionRange(v: number);
|
|
173
|
+
/**
|
|
174
|
+
* Keeps this unit alive even if its health becomes negative until the current game thread yields.
|
|
175
|
+
*/
|
|
176
|
+
delayHealthChecks(): void;
|
|
151
177
|
get maxHealth(): number;
|
|
152
178
|
set maxHealth(maxHealth: number);
|
|
153
179
|
get healthRegenerationRate(): number;
|
|
@@ -222,6 +248,7 @@ export declare class Unit extends Handle<junit> {
|
|
|
222
248
|
getAbilityById(abilityId: number): UnitAbility | undefined;
|
|
223
249
|
removeAbility(abilityId: number): boolean;
|
|
224
250
|
hideAbility(abilityId: number, flag: boolean): void;
|
|
251
|
+
getAbilityRemainingCooldown(abilityId: number): number;
|
|
225
252
|
startAbilityCooldown(abilityId: number, cooldown: number): void;
|
|
226
253
|
endAbilityCooldown(abilityId: number): void;
|
|
227
254
|
interruptAttack(): void;
|
package/engine/internal/unit.lua
CHANGED
|
@@ -5,9 +5,9 @@ local __TS__ArrayMap = ____lualib.__TS__ArrayMap
|
|
|
5
5
|
local __TS__New = ____lualib.__TS__New
|
|
6
6
|
local __TS__Class = ____lualib.__TS__Class
|
|
7
7
|
local __TS__ClassExtends = ____lualib.__TS__ClassExtends
|
|
8
|
+
local __TS__SetDescriptor = ____lualib.__TS__SetDescriptor
|
|
8
9
|
local __TS__ArraySetLength = ____lualib.__TS__ArraySetLength
|
|
9
10
|
local __TS__InstanceOf = ____lualib.__TS__InstanceOf
|
|
10
|
-
local __TS__SetDescriptor = ____lualib.__TS__SetDescriptor
|
|
11
11
|
local __TS__ObjectDefineProperty = ____lualib.__TS__ObjectDefineProperty
|
|
12
12
|
local Set = ____lualib.Set
|
|
13
13
|
local __TS__Spread = ____lualib.__TS__Spread
|
|
@@ -92,6 +92,10 @@ local isUnitInRangeXY = IsUnitInRangeXY
|
|
|
92
92
|
local isUnitInRange = IsUnitInRange
|
|
93
93
|
local setResourceAmount = SetResourceAmount
|
|
94
94
|
local getResourceAmount = GetResourceAmount
|
|
95
|
+
local getUnitWeaponRealField = BlzGetUnitWeaponRealField
|
|
96
|
+
local setUnitWeaponRealField = BlzSetUnitWeaponRealField
|
|
97
|
+
local getUnitWeaponStringField = BlzGetUnitWeaponStringField
|
|
98
|
+
local setUnitWeaponStringField = BlzSetUnitWeaponStringField
|
|
95
99
|
local getUnitAbilityLevel = GetUnitAbilityLevel
|
|
96
100
|
local unitDisableAbility = BlzUnitDisableAbility
|
|
97
101
|
local unitInterruptAttack = BlzUnitInterruptAttack
|
|
@@ -387,51 +391,158 @@ local getters = {
|
|
|
387
391
|
return BlzGetUnitArmor(unit)
|
|
388
392
|
end
|
|
389
393
|
}
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
394
|
+
____exports.UnitWeapon = __TS__Class()
|
|
395
|
+
local UnitWeapon = ____exports.UnitWeapon
|
|
396
|
+
UnitWeapon.name = "UnitWeapon"
|
|
397
|
+
function UnitWeapon.prototype.____constructor(self, unit, index)
|
|
398
|
+
self.unit = unit
|
|
399
|
+
self.index = index
|
|
400
|
+
end
|
|
401
|
+
__TS__SetDescriptor(
|
|
402
|
+
UnitWeapon.prototype,
|
|
403
|
+
"cooldown",
|
|
404
|
+
{
|
|
405
|
+
get = function(self)
|
|
406
|
+
return getUnitWeaponRealField(self.unit.handle, UNIT_WEAPON_RF_ATTACK_BASE_COOLDOWN, self.index)
|
|
407
|
+
end,
|
|
408
|
+
set = function(self, cooldown)
|
|
409
|
+
setUnitWeaponRealField(self.unit.handle, UNIT_WEAPON_RF_ATTACK_BASE_COOLDOWN, self.index, cooldown)
|
|
410
|
+
end
|
|
411
|
+
},
|
|
412
|
+
true
|
|
413
|
+
)
|
|
414
|
+
__TS__SetDescriptor(
|
|
415
|
+
UnitWeapon.prototype,
|
|
416
|
+
"damage",
|
|
417
|
+
{
|
|
418
|
+
get = function(self)
|
|
419
|
+
local minimumDamage = self.damageBase + self.damageDiceCount
|
|
420
|
+
local maximumDamage = self.damageBase + self.damageDiceCount * self.damageDiceSideCount
|
|
421
|
+
return {minimumDamage, maximumDamage}
|
|
422
|
+
end,
|
|
423
|
+
set = function(self, ____bindingPattern0)
|
|
424
|
+
local maximumDamage
|
|
425
|
+
local minimumDamage
|
|
426
|
+
minimumDamage = ____bindingPattern0[1]
|
|
427
|
+
maximumDamage = ____bindingPattern0[2]
|
|
428
|
+
self.damageBase = minimumDamage - 1
|
|
429
|
+
self.damageDiceCount = 1
|
|
430
|
+
self.damageDiceSideCount = maximumDamage - minimumDamage + 1
|
|
431
|
+
end
|
|
432
|
+
},
|
|
433
|
+
true
|
|
434
|
+
)
|
|
435
|
+
__TS__SetDescriptor(
|
|
436
|
+
UnitWeapon.prototype,
|
|
437
|
+
"damageBase",
|
|
438
|
+
{
|
|
439
|
+
get = function(self)
|
|
440
|
+
return BlzGetUnitBaseDamage(self.unit.handle, self.index)
|
|
441
|
+
end,
|
|
442
|
+
set = function(self, damageBase)
|
|
443
|
+
BlzSetUnitBaseDamage(self.unit.handle, self.index, damageBase)
|
|
444
|
+
end
|
|
445
|
+
},
|
|
446
|
+
true
|
|
447
|
+
)
|
|
448
|
+
__TS__SetDescriptor(
|
|
449
|
+
UnitWeapon.prototype,
|
|
450
|
+
"damageDiceCount",
|
|
451
|
+
{
|
|
452
|
+
get = function(self)
|
|
453
|
+
return BlzGetUnitDiceNumber(self.unit.handle, self.index)
|
|
454
|
+
end,
|
|
455
|
+
set = function(self, damageDiceCount)
|
|
456
|
+
BlzSetUnitDiceNumber(self.unit.handle, self.index, damageDiceCount)
|
|
457
|
+
end
|
|
458
|
+
},
|
|
459
|
+
true
|
|
460
|
+
)
|
|
461
|
+
__TS__SetDescriptor(
|
|
462
|
+
UnitWeapon.prototype,
|
|
463
|
+
"damageDiceSideCount",
|
|
464
|
+
{
|
|
465
|
+
get = function(self)
|
|
466
|
+
return BlzGetUnitDiceSides(self.unit.handle, self.index)
|
|
467
|
+
end,
|
|
468
|
+
set = function(self, damageDiceSideCount)
|
|
469
|
+
BlzSetUnitDiceSides(self.unit.handle, self.index, damageDiceSideCount)
|
|
470
|
+
end
|
|
471
|
+
},
|
|
472
|
+
true
|
|
473
|
+
)
|
|
474
|
+
__TS__SetDescriptor(
|
|
475
|
+
UnitWeapon.prototype,
|
|
476
|
+
"range",
|
|
477
|
+
{
|
|
478
|
+
get = function(self)
|
|
479
|
+
return getUnitWeaponRealField(self.unit.handle, UNIT_WEAPON_RF_ATTACK_RANGE, self.index)
|
|
480
|
+
end,
|
|
481
|
+
set = function(self, range)
|
|
482
|
+
local handle = self.unit.handle
|
|
483
|
+
local index = self.index
|
|
484
|
+
setUnitWeaponRealField(
|
|
485
|
+
handle,
|
|
486
|
+
UNIT_WEAPON_RF_ATTACK_RANGE,
|
|
487
|
+
index + 1,
|
|
488
|
+
getUnitWeaponRealField(handle, UNIT_WEAPON_RF_ATTACK_RANGE, index + 1) + (range - getUnitWeaponRealField(handle, UNIT_WEAPON_RF_ATTACK_RANGE, index))
|
|
489
|
+
)
|
|
490
|
+
end
|
|
491
|
+
},
|
|
492
|
+
true
|
|
493
|
+
)
|
|
494
|
+
__TS__SetDescriptor(
|
|
495
|
+
UnitWeapon.prototype,
|
|
496
|
+
"impactDelay",
|
|
497
|
+
{
|
|
498
|
+
get = function(self)
|
|
499
|
+
return getUnitWeaponRealField(self.unit.handle, UNIT_WEAPON_RF_ATTACK_DAMAGE_POINT, self.index)
|
|
500
|
+
end,
|
|
501
|
+
set = function(self, impactDelay)
|
|
502
|
+
setUnitWeaponRealField(self.unit.handle, UNIT_WEAPON_RF_ATTACK_DAMAGE_POINT, self.index, impactDelay)
|
|
503
|
+
end
|
|
504
|
+
},
|
|
505
|
+
true
|
|
506
|
+
)
|
|
507
|
+
__TS__SetDescriptor(
|
|
508
|
+
UnitWeapon.prototype,
|
|
509
|
+
"missileArc",
|
|
510
|
+
{
|
|
511
|
+
get = function(self)
|
|
512
|
+
return getUnitWeaponRealField(self.unit.handle, UNIT_WEAPON_RF_ATTACK_PROJECTILE_ARC, self.index)
|
|
513
|
+
end,
|
|
514
|
+
set = function(self, missileArc)
|
|
515
|
+
setUnitWeaponRealField(self.unit.handle, UNIT_WEAPON_RF_ATTACK_PROJECTILE_ARC, self.index, missileArc)
|
|
516
|
+
end
|
|
517
|
+
},
|
|
518
|
+
true
|
|
519
|
+
)
|
|
520
|
+
__TS__SetDescriptor(
|
|
521
|
+
UnitWeapon.prototype,
|
|
522
|
+
"missileModelPath",
|
|
523
|
+
{
|
|
524
|
+
get = function(self)
|
|
525
|
+
return getUnitWeaponStringField(self.unit.handle, UNIT_WEAPON_SF_ATTACK_PROJECTILE_ART, self.index)
|
|
526
|
+
end,
|
|
527
|
+
set = function(self, missileModelPath)
|
|
528
|
+
setUnitWeaponStringField(self.unit.handle, UNIT_WEAPON_SF_ATTACK_PROJECTILE_ART, self.index, missileModelPath)
|
|
529
|
+
end
|
|
530
|
+
},
|
|
531
|
+
true
|
|
532
|
+
)
|
|
533
|
+
__TS__SetDescriptor(
|
|
534
|
+
UnitWeapon.prototype,
|
|
535
|
+
"missileSpeed",
|
|
536
|
+
{
|
|
537
|
+
get = function(self)
|
|
538
|
+
return getUnitWeaponRealField(self.unit.handle, UNIT_WEAPON_RF_ATTACK_PROJECTILE_SPEED, self.index)
|
|
539
|
+
end,
|
|
540
|
+
set = function(self, missileSpeed)
|
|
541
|
+
setUnitWeaponRealField(self.unit.handle, UNIT_WEAPON_RF_ATTACK_PROJECTILE_SPEED, self.index, missileSpeed)
|
|
542
|
+
end
|
|
543
|
+
},
|
|
544
|
+
true
|
|
545
|
+
)
|
|
435
546
|
local unitInventorySize = UnitInventorySize
|
|
436
547
|
local unitItemInSlot = UnitItemInSlot
|
|
437
548
|
local getItemAbility = BlzGetItemAbility
|
|
@@ -442,8 +553,6 @@ local getAbilityName = GetAbilityName
|
|
|
442
553
|
local unitAddAbility = UnitAddAbility
|
|
443
554
|
local getUnitGoldCost = GetUnitGoldCost
|
|
444
555
|
local getUnitLumberCost = GetUnitWoodCost
|
|
445
|
-
local unitMakeAbilityPermanent = UnitMakeAbilityPermanent
|
|
446
|
-
local unitAddItem = UnitAddItem
|
|
447
556
|
local unitRemoveAbility = UnitRemoveAbility
|
|
448
557
|
local function retrieveAbility(unit, ability, abilityId)
|
|
449
558
|
if ability == nil then
|
|
@@ -520,6 +629,23 @@ for ____, player in ipairs(Player.all) do
|
|
|
520
629
|
ShowUnit(dummy, false)
|
|
521
630
|
dummies[player] = dummy
|
|
522
631
|
end
|
|
632
|
+
local function delayHealthChecksCallback(unit)
|
|
633
|
+
local counter = (unit[102] or 0) - 1
|
|
634
|
+
if counter ~= 0 then
|
|
635
|
+
unit[102] = counter
|
|
636
|
+
return
|
|
637
|
+
end
|
|
638
|
+
unit[102] = nil
|
|
639
|
+
local healthBonus = unit[103]
|
|
640
|
+
if healthBonus ~= nil then
|
|
641
|
+
unit[103] = nil
|
|
642
|
+
local handle = unit.handle
|
|
643
|
+
BlzSetUnitMaxHP(
|
|
644
|
+
handle,
|
|
645
|
+
BlzGetUnitMaxHP(handle) - healthBonus
|
|
646
|
+
)
|
|
647
|
+
end
|
|
648
|
+
end
|
|
523
649
|
____exports.Unit = __TS__Class()
|
|
524
650
|
local Unit = ____exports.Unit
|
|
525
651
|
Unit.name = "Unit"
|
|
@@ -674,6 +800,10 @@ end
|
|
|
674
800
|
function Unit.prototype.queueAnimation(self, animation)
|
|
675
801
|
queueUnitAnimation(self.handle, animation)
|
|
676
802
|
end
|
|
803
|
+
function Unit.prototype.delayHealthChecks(self)
|
|
804
|
+
self[102] = (self[102] or 0) + 1
|
|
805
|
+
Timer:run(delayHealthChecksCallback, self)
|
|
806
|
+
end
|
|
677
807
|
function Unit.prototype.setPosition(self, x, y)
|
|
678
808
|
setUnitPosition(self.handle, x, y)
|
|
679
809
|
end
|
|
@@ -784,6 +914,9 @@ end
|
|
|
784
914
|
function Unit.prototype.hideAbility(self, abilityId, flag)
|
|
785
915
|
BlzUnitHideAbility(self.handle, abilityId, flag)
|
|
786
916
|
end
|
|
917
|
+
function Unit.prototype.getAbilityRemainingCooldown(self, abilityId)
|
|
918
|
+
return BlzGetUnitAbilityCooldownRemaining(self.handle, abilityId)
|
|
919
|
+
end
|
|
787
920
|
function Unit.prototype.startAbilityCooldown(self, abilityId, cooldown)
|
|
788
921
|
BlzStartUnitAbilityCooldown(self.handle, abilityId, cooldown)
|
|
789
922
|
end
|
|
@@ -1071,12 +1204,27 @@ __TS__SetDescriptor(
|
|
|
1071
1204
|
Unit.prototype,
|
|
1072
1205
|
"weapons",
|
|
1073
1206
|
{get = function(self)
|
|
1074
|
-
|
|
1075
|
-
|
|
1076
|
-
|
|
1077
|
-
|
|
1078
|
-
|
|
1079
|
-
|
|
1207
|
+
return {self.firstWeapon, self.secondWeapon}
|
|
1208
|
+
end},
|
|
1209
|
+
true
|
|
1210
|
+
)
|
|
1211
|
+
__TS__SetDescriptor(
|
|
1212
|
+
Unit.prototype,
|
|
1213
|
+
"firstWeapon",
|
|
1214
|
+
{get = function(self)
|
|
1215
|
+
local weapon = __TS__New(____exports.UnitWeapon, self, 0)
|
|
1216
|
+
rawset(self, "firstWeapon", weapon)
|
|
1217
|
+
return weapon
|
|
1218
|
+
end},
|
|
1219
|
+
true
|
|
1220
|
+
)
|
|
1221
|
+
__TS__SetDescriptor(
|
|
1222
|
+
Unit.prototype,
|
|
1223
|
+
"secondWeapon",
|
|
1224
|
+
{get = function(self)
|
|
1225
|
+
local weapon = __TS__New(____exports.UnitWeapon, self, 1)
|
|
1226
|
+
rawset(self, "secondWeapon", weapon)
|
|
1227
|
+
return weapon
|
|
1080
1228
|
end},
|
|
1081
1229
|
true
|
|
1082
1230
|
)
|
|
@@ -1233,7 +1381,7 @@ __TS__SetDescriptor(
|
|
|
1233
1381
|
"isTeamGlowVisible",
|
|
1234
1382
|
{
|
|
1235
1383
|
get = function(self)
|
|
1236
|
-
return not self[
|
|
1384
|
+
return not self[105]
|
|
1237
1385
|
end,
|
|
1238
1386
|
set = function(self, isTeamGlowVisible)
|
|
1239
1387
|
showUnitTeamGlow(self.handle, isTeamGlowVisible)
|
|
@@ -1243,7 +1391,7 @@ __TS__SetDescriptor(
|
|
|
1243
1391
|
else
|
|
1244
1392
|
____temp_2 = nil
|
|
1245
1393
|
end
|
|
1246
|
-
self[
|
|
1394
|
+
self[105] = ____temp_2
|
|
1247
1395
|
end
|
|
1248
1396
|
},
|
|
1249
1397
|
true
|
|
@@ -1253,7 +1401,7 @@ __TS__SetDescriptor(
|
|
|
1253
1401
|
"color",
|
|
1254
1402
|
{set = function(self, color)
|
|
1255
1403
|
setUnitColor(self.handle, color.handle)
|
|
1256
|
-
if self[
|
|
1404
|
+
if self[105] then
|
|
1257
1405
|
showUnitTeamGlow(self.handle, false)
|
|
1258
1406
|
end
|
|
1259
1407
|
end},
|
|
@@ -1277,10 +1425,14 @@ __TS__SetDescriptor(
|
|
|
1277
1425
|
"maxHealth",
|
|
1278
1426
|
{
|
|
1279
1427
|
get = function(self)
|
|
1280
|
-
return BlzGetUnitMaxHP(self.handle) - (self[
|
|
1428
|
+
return BlzGetUnitMaxHP(self.handle) - (self[103] or 0) - (self[104] or 0)
|
|
1281
1429
|
end,
|
|
1282
1430
|
set = function(self, maxHealth)
|
|
1283
|
-
|
|
1431
|
+
if maxHealth < 1 and self[102] ~= nil then
|
|
1432
|
+
self[103] = (self[103] or 0) + (1 - maxHealth)
|
|
1433
|
+
maxHealth = 1
|
|
1434
|
+
end
|
|
1435
|
+
BlzSetUnitMaxHP(self.handle, maxHealth + (self[104] or 0))
|
|
1284
1436
|
end
|
|
1285
1437
|
},
|
|
1286
1438
|
true
|
|
@@ -1322,10 +1474,10 @@ __TS__SetDescriptor(
|
|
|
1322
1474
|
"health",
|
|
1323
1475
|
{
|
|
1324
1476
|
get = function(self)
|
|
1325
|
-
return GetWidgetLife(self.handle) - (self[
|
|
1477
|
+
return GetWidgetLife(self.handle) - (self[104] or 0)
|
|
1326
1478
|
end,
|
|
1327
1479
|
set = function(self, health)
|
|
1328
|
-
SetWidgetLife(self.handle, health + (self[
|
|
1480
|
+
SetWidgetLife(self.handle, health + (self[104] or 0))
|
|
1329
1481
|
end
|
|
1330
1482
|
},
|
|
1331
1483
|
true
|
|
@@ -2308,7 +2460,7 @@ Unit.onDamage = __TS__New(
|
|
|
2308
2460
|
invoke(event, source, target, evData)
|
|
2309
2461
|
if evData[0] ~= nil and target.health - evData.amount < 0.405 then
|
|
2310
2462
|
local bonusHealth = math.ceil(evData.amount)
|
|
2311
|
-
target[
|
|
2463
|
+
target[104] = (target[104] or 0) + bonusHealth
|
|
2312
2464
|
BlzSetUnitMaxHP(
|
|
2313
2465
|
target.handle,
|
|
2314
2466
|
BlzGetUnitMaxHP(target.handle) + bonusHealth
|
|
@@ -2322,7 +2474,7 @@ Unit.onDamage = __TS__New(
|
|
|
2322
2474
|
evData[0],
|
|
2323
2475
|
table.unpack(evData, 1 + 1, 1 + (evData[1] or 0))
|
|
2324
2476
|
)
|
|
2325
|
-
target[
|
|
2477
|
+
target[104] = (target[104] or 0) - bonusHealth
|
|
2326
2478
|
SetWidgetLife(
|
|
2327
2479
|
target.handle,
|
|
2328
2480
|
GetWidgetLife(target.handle) - bonusHealth
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/** @noSelfInFile */
|
|
2
|
+
import { AbilityType, AbilityTypeId } from "../ability-type";
|
|
3
|
+
import { ObjectDataEntryLevelFieldValueSupplier } from "../../entry";
|
|
4
|
+
export declare class BlinkAbilityType extends AbilityType {
|
|
5
|
+
static readonly BASE_ID: AbilityTypeId;
|
|
6
|
+
get maximumRange(): number[];
|
|
7
|
+
set maximumRange(maximumRange: ObjectDataEntryLevelFieldValueSupplier<number>);
|
|
8
|
+
get minimumRange(): number[];
|
|
9
|
+
set minimumRange(minimumRange: ObjectDataEntryLevelFieldValueSupplier<number>);
|
|
10
|
+
}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
local ____lualib = require("lualib_bundle")
|
|
2
|
+
local __TS__Class = ____lualib.__TS__Class
|
|
3
|
+
local __TS__ClassExtends = ____lualib.__TS__ClassExtends
|
|
4
|
+
local __TS__SetDescriptor = ____lualib.__TS__SetDescriptor
|
|
5
|
+
local ____exports = {}
|
|
6
|
+
local ____ability_2Dtype = require("engine.object-data.entry.ability-type")
|
|
7
|
+
local AbilityType = ____ability_2Dtype.AbilityType
|
|
8
|
+
____exports.BlinkAbilityType = __TS__Class()
|
|
9
|
+
local BlinkAbilityType = ____exports.BlinkAbilityType
|
|
10
|
+
BlinkAbilityType.name = "BlinkAbilityType"
|
|
11
|
+
__TS__ClassExtends(BlinkAbilityType, AbilityType)
|
|
12
|
+
BlinkAbilityType.BASE_ID = fourCC("AEbl")
|
|
13
|
+
__TS__SetDescriptor(
|
|
14
|
+
BlinkAbilityType.prototype,
|
|
15
|
+
"maximumRange",
|
|
16
|
+
{
|
|
17
|
+
get = function(self)
|
|
18
|
+
return self:getNumberLevelField("Ebl1")
|
|
19
|
+
end,
|
|
20
|
+
set = function(self, maximumRange)
|
|
21
|
+
self:setNumberLevelField("Ebl1", maximumRange)
|
|
22
|
+
end
|
|
23
|
+
},
|
|
24
|
+
true
|
|
25
|
+
)
|
|
26
|
+
__TS__SetDescriptor(
|
|
27
|
+
BlinkAbilityType.prototype,
|
|
28
|
+
"minimumRange",
|
|
29
|
+
{
|
|
30
|
+
get = function(self)
|
|
31
|
+
return self:getNumberLevelField("Ebl2")
|
|
32
|
+
end,
|
|
33
|
+
set = function(self, minimumRange)
|
|
34
|
+
self:setNumberLevelField("Ebl2", minimumRange)
|
|
35
|
+
end
|
|
36
|
+
},
|
|
37
|
+
true
|
|
38
|
+
)
|
|
39
|
+
return ____exports
|
|
@@ -7,7 +7,7 @@ local ____exports = {}
|
|
|
7
7
|
local ____ability_2Dtype = require("engine.object-data.entry.ability-type")
|
|
8
8
|
local AbilityType = ____ability_2Dtype.AbilityType
|
|
9
9
|
local ____arrays = require("utility.arrays")
|
|
10
|
-
local
|
|
10
|
+
local emptyArray = ____arrays.emptyArray
|
|
11
11
|
local map = ____arrays.map
|
|
12
12
|
local ____buff_2Dtype = require("engine.object-data.entry.buff-type")
|
|
13
13
|
local BuffType = ____buff_2Dtype.BuffType
|
|
@@ -78,7 +78,7 @@ __TS__SetDescriptor(
|
|
|
78
78
|
function(levelAbilityUpgrades)
|
|
79
79
|
return levelAbilityUpgrades[i + 1]
|
|
80
80
|
end
|
|
81
|
-
) or (abilityUpgrades[i + 1] or
|
|
81
|
+
) or (abilityUpgrades[i + 1] or emptyArray())
|
|
82
82
|
)
|
|
83
83
|
end
|
|
84
84
|
end
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/** @noSelfInFile */
|
|
2
|
+
import { AbilityType, AbilityTypeId } from "../ability-type";
|
|
3
|
+
import { ObjectDataEntryLevelFieldValueSupplier } from "../../entry";
|
|
4
|
+
export declare class MineAbilityType extends AbilityType {
|
|
5
|
+
static readonly BASE_ID: AbilityTypeId;
|
|
6
|
+
get activationDelay(): number[];
|
|
7
|
+
set activationDelay(activationDelay: ObjectDataEntryLevelFieldValueSupplier<number>);
|
|
8
|
+
get invisibilityDelay(): number[];
|
|
9
|
+
set invisibilityDelay(invisibilityDelay: ObjectDataEntryLevelFieldValueSupplier<number>);
|
|
10
|
+
}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
local ____lualib = require("lualib_bundle")
|
|
2
|
+
local __TS__Class = ____lualib.__TS__Class
|
|
3
|
+
local __TS__ClassExtends = ____lualib.__TS__ClassExtends
|
|
4
|
+
local __TS__SetDescriptor = ____lualib.__TS__SetDescriptor
|
|
5
|
+
local ____exports = {}
|
|
6
|
+
local ____ability_2Dtype = require("engine.object-data.entry.ability-type")
|
|
7
|
+
local AbilityType = ____ability_2Dtype.AbilityType
|
|
8
|
+
____exports.MineAbilityType = __TS__Class()
|
|
9
|
+
local MineAbilityType = ____exports.MineAbilityType
|
|
10
|
+
MineAbilityType.name = "MineAbilityType"
|
|
11
|
+
__TS__ClassExtends(MineAbilityType, AbilityType)
|
|
12
|
+
MineAbilityType.BASE_ID = fourCC("Amin")
|
|
13
|
+
__TS__SetDescriptor(
|
|
14
|
+
MineAbilityType.prototype,
|
|
15
|
+
"activationDelay",
|
|
16
|
+
{
|
|
17
|
+
get = function(self)
|
|
18
|
+
return self:getNumberLevelField("Min1")
|
|
19
|
+
end,
|
|
20
|
+
set = function(self, activationDelay)
|
|
21
|
+
self:setNumberLevelField("Min1", activationDelay)
|
|
22
|
+
end
|
|
23
|
+
},
|
|
24
|
+
true
|
|
25
|
+
)
|
|
26
|
+
__TS__SetDescriptor(
|
|
27
|
+
MineAbilityType.prototype,
|
|
28
|
+
"invisibilityDelay",
|
|
29
|
+
{
|
|
30
|
+
get = function(self)
|
|
31
|
+
return self:getNumberLevelField("Min2")
|
|
32
|
+
end,
|
|
33
|
+
set = function(self, invisibilityDelay)
|
|
34
|
+
self:setNumberLevelField("Min2", invisibilityDelay)
|
|
35
|
+
end
|
|
36
|
+
},
|
|
37
|
+
true
|
|
38
|
+
)
|
|
39
|
+
return ____exports
|
|
@@ -7,8 +7,8 @@ export declare class SpiritTouchAbilityType extends AbilityType {
|
|
|
7
7
|
set manaGain(manaGain: ObjectDataEntryLevelFieldValueSupplier<number>);
|
|
8
8
|
get manaRequirement(): number[];
|
|
9
9
|
set manaRequirement(manaRequirement: ObjectDataEntryLevelFieldValueSupplier<number>);
|
|
10
|
-
get maximumTargetCount(): number[];
|
|
11
|
-
set maximumTargetCount(maximumTargetCount: ObjectDataEntryLevelFieldValueSupplier<number>);
|
|
12
10
|
get maximumManaCostFactor(): number[];
|
|
13
11
|
set maximumManaCostFactor(maximumManaCostFactor: ObjectDataEntryLevelFieldValueSupplier<number>);
|
|
12
|
+
get maximumTargetCount(): number[];
|
|
13
|
+
set maximumTargetCount(maximumTargetCount: ObjectDataEntryLevelFieldValueSupplier<number>);
|
|
14
14
|
}
|
|
@@ -38,26 +38,26 @@ __TS__SetDescriptor(
|
|
|
38
38
|
)
|
|
39
39
|
__TS__SetDescriptor(
|
|
40
40
|
SpiritTouchAbilityType.prototype,
|
|
41
|
-
"
|
|
41
|
+
"maximumManaCostFactor",
|
|
42
42
|
{
|
|
43
43
|
get = function(self)
|
|
44
44
|
return self:getNumberLevelField("Rpb5")
|
|
45
45
|
end,
|
|
46
|
-
set = function(self,
|
|
47
|
-
self:setNumberLevelField("Rpb5",
|
|
46
|
+
set = function(self, maximumManaCostFactor)
|
|
47
|
+
self:setNumberLevelField("Rpb5", maximumManaCostFactor)
|
|
48
48
|
end
|
|
49
49
|
},
|
|
50
50
|
true
|
|
51
51
|
)
|
|
52
52
|
__TS__SetDescriptor(
|
|
53
53
|
SpiritTouchAbilityType.prototype,
|
|
54
|
-
"
|
|
54
|
+
"maximumTargetCount",
|
|
55
55
|
{
|
|
56
56
|
get = function(self)
|
|
57
57
|
return self:getNumberLevelField("Rpb6")
|
|
58
58
|
end,
|
|
59
|
-
set = function(self,
|
|
60
|
-
self:setNumberLevelField("Rpb6",
|
|
59
|
+
set = function(self, maximumTargetCount)
|
|
60
|
+
self:setNumberLevelField("Rpb6", maximumTargetCount)
|
|
61
61
|
end
|
|
62
62
|
},
|
|
63
63
|
true
|