warscript 0.0.1-dev.671d3cf → 0.0.1-dev.69da8a0
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/core/types/frame.d.ts +1 -0
- package/core/types/frame.lua +12 -0
- package/core/util.d.ts +1 -1
- package/core/util.lua +6 -0
- package/engine/behavior.d.ts +2 -2
- package/engine/behavior.lua +6 -6
- package/engine/behaviour/ability/apply-buff.d.ts +3 -5
- package/engine/behaviour/unit.d.ts +5 -0
- package/engine/behaviour/unit.lua +20 -0
- package/engine/buff.d.ts +32 -11
- package/engine/buff.lua +142 -61
- package/engine/internal/ability.d.ts +1 -11
- package/engine/internal/ability.lua +2 -78
- package/engine/internal/item+owner.lua +2 -2
- package/engine/internal/unit/bonus.d.ts +4 -2
- package/engine/internal/unit/bonus.lua +6 -1
- package/engine/internal/unit/item.d.ts +23 -0
- package/engine/internal/unit/item.lua +74 -0
- package/engine/internal/unit+ability.lua +2 -2
- package/engine/internal/unit-missile-launch.lua +24 -5
- package/engine/internal/unit.d.ts +6 -4
- package/engine/internal/unit.lua +16 -7
- package/engine/local-client.d.ts +7 -2
- package/engine/local-client.lua +77 -0
- package/engine/object-data/entry/item-type.d.ts +12 -0
- package/engine/object-data/entry/item-type.lua +78 -0
- package/engine/object-field/ability.d.ts +17 -0
- package/engine/object-field/ability.lua +51 -1
- package/engine/unit.d.ts +1 -0
- package/engine/unit.lua +1 -0
- package/index.d.ts +1 -0
- package/index.lua +1 -0
- package/net/socket.d.ts +7 -1
- package/net/socket.lua +45 -4
- package/network.d.ts +1 -0
- package/network.lua +3 -2
- package/objutil/buff.lua +1 -1
- package/package.json +1 -1
- package/patch-lua.d.ts +0 -0
- package/patch-lua.lua +10 -0
- package/utility/linked-set.d.ts +11 -2
- package/utility/linked-set.lua +5 -2
- package/utility/types.d.ts +1 -0
package/core/types/frame.d.ts
CHANGED
|
@@ -108,6 +108,7 @@ export declare class Frame extends Handle<jframehandle> {
|
|
|
108
108
|
enable(): void;
|
|
109
109
|
addText(text: string): void;
|
|
110
110
|
clearAllPoints(): void;
|
|
111
|
+
get children(): Frame[];
|
|
111
112
|
getChild(index: number): Frame;
|
|
112
113
|
getChildrenCount(): number;
|
|
113
114
|
setSize(width: number, height: number): void;
|
package/core/types/frame.lua
CHANGED
|
@@ -720,6 +720,18 @@ __TS__SetDescriptor(
|
|
|
720
720
|
end},
|
|
721
721
|
true
|
|
722
722
|
)
|
|
723
|
+
__TS__SetDescriptor(
|
|
724
|
+
Frame.prototype,
|
|
725
|
+
"children",
|
|
726
|
+
{get = function(self)
|
|
727
|
+
local children = {}
|
|
728
|
+
for i = 0, self:getChildrenCount() - 1 do
|
|
729
|
+
children[i + 1] = self:getChild(i)
|
|
730
|
+
end
|
|
731
|
+
return children
|
|
732
|
+
end},
|
|
733
|
+
true
|
|
734
|
+
)
|
|
723
735
|
__TS__ObjectDefineProperty(
|
|
724
736
|
Frame,
|
|
725
737
|
"onKeyPress",
|
package/core/util.d.ts
CHANGED
|
@@ -54,7 +54,7 @@ declare global {
|
|
|
54
54
|
function fourCC(id: string): number;
|
|
55
55
|
}
|
|
56
56
|
declare namespace inner {
|
|
57
|
-
const orderId: (id: "blink" | "stop" | "load" | "sleep" | "absorb" | "acidbomb" | "acolyteharvest" | "ambush" | "ancestralspirit" | "ancestralspirittarget" | "animatedead" | "antimagicshell" | "attack" | "attackground" | "attackonce" | "attributemodskill" | "auraunholy" | "auravampiric" | "autodispel" | "autodispeloff" | "autodispelon" | "autoentangle" | "autoentangleinstant" | "autoharvestgold" | "autoharvestlumber" | "avatar" | "avengerform" | "awaken" | "banish" | "barkskin" | "barkskinoff" | "barkskinon" | "battleroar" | "battlestations" | "bearform" | "berserk" | "blackarrow" | "blackarrowoff" | "blackarrowon" | "blight" | "blizzard" | "bloodlust" | "bloodlustoff" | "bloodluston" | "board" | "breathoffire" | "breathoffrost" | "build" | "burrow" | "cannibalize" | "carrionscarabs" | "carrionscarabsinstant" | "carrionscarabsoff" | "carrionscarabson" | "carrionswarm" | "chainlightning" | "channel" | "charm" | "chemicalrage" | "cloudoffog" | "clusterrockets" | "coldarrows" | "coldarrowstarg" | "controlmagic" | "corporealform" | "corrosivebreath" | "coupleinstant" | "coupletarget" | "creepanimatedead" | "creepdevour" | "creepheal" | "creephealoff" | "creephealon" | "creepthunderbolt" | "creepthunderclap" | "cripple" | "curse" | "curseoff" | "curseon" | "cyclone" | "darkconversion" | "darkportal" | "darkritual" | "darksummoning" | "deathanddecay" | "deathcoil" | "deathpact" | "decouple" | "defend" | "detectaoe" | "detonate" | "devour" | "devourmagic" | "disassociate" | "disenchant" | "dismount" | "dispel" | "divineshield" | "doom" | "drain" | "dreadlordinferno" | "dropitem" | "drunkenhaze" | "earthquake" | "eattree" | "elementalfury" | "ensnare" | "ensnareoff" | "ensnareon" | "entangle" | "entangleinstant" | "entanglingroots" | "etherealform" | "evileye" | "faeriefire" | "faeriefireoff" | "faeriefireon" | "fanofknives" | "farsight" | "fingerofdeath" | "firebolt" | "flamestrike" | "flamingarrows" | "flamingarrowstarg" | "flamingattack" | "flamingattacktarg" | "flare" | "forceboard" | "forceofnature" | "forkedlightning" | "freezingbreath" | "frenzy" | "frenzyoff" | "frenzyon" | "frostarmor" | "frostarmoroff" | "frostarmoron" | "frostnova" | "getitem" | "gold2lumber" | "grabtree" | "harvest" | "heal" | "healingspray" | "healingward" | "healingwave" | "healoff" | "healon" | "hex" | "holdposition" | "holybolt" | "howlofterror" | "humanbuild" | "immolation" | "impale" | "incineratearrow" | "incineratearrowoff" | "incineratearrowon" | "inferno" | "innerfire" | "innerfireoff" | "innerfireon" | "instant" | "invisibility" | "lavamonster" | "lightningshield" | "loadarcher" | "loadcorpse" | "loadcorpseinstant" | "locustswarm" | "lumber2gold" | "magicdefense" | "magicleash" | "magicundefense" | "manaburn" | "manaflareoff" | "manaflareon" | "manashieldoff" | "manashieldon" | "massteleport" | "mechanicalcritter" | "metamorphosis" | "militia" | "militiaconvert" | "militiaoff" | "militiaunconvert" | "mindrot" | "mirrorimage" | "monsoon" | "mount" | "mounthippogryph" | "move" | "moveAI" | "nagabuild" | "neutraldetectaoe" | "neutralinteract" | "neutralspell" | "nightelfbuild" | "orcbuild" | "parasite" | "parasiteoff" | "parasiteon" | "patrol" | "patrolAI" | "phaseshift" | "phaseshiftinstant" | "phaseshiftoff" | "phaseshifton" | "phoenixfire" | "phoenixmorph" | "poisonarrows" | "poisonarrowstarg" | "polymorph" | "possession" | "preservation" | "purge" | "rainofchaos" | "rainoffire" | "raisedead" | "raisedeadoff" | "raisedeadon" | "ravenform" | "recharge" | "rechargeoff" | "rechargeon" | "rejuvination" | "renew" | "renewoff" | "renewon" | "repair" | "repairoff" | "repairon" | "replenish" | "replenishlife" | "replenishlifeoff" | "replenishlifeon" | "replenishmana" | "replenishmanaoff" | "replenishmanaon" | "replenishoff" | "replenishon" | "request_hero" | "requestsacrifice" | "restoration" | "restorationoff" | "restorationon" | "resumebuild" | "resumeharvesting" | "resurrection" | "returnresources" | "revenge" | "revive" | "roar" | "robogoblin" | "root" | "sacrifice" | "sanctuary" | "scout" | "selfdestruct" | "selfdestructoff" | "selfdestructon" | "sentinel" | "follow" | "smart" | "setrally" | "shadowsight" | "shadowstrike" | "shockwave" | "silence" | "slow" | "slowoff" | "slowon" | "soulburn" | "soulpreservation" | "spellshield" | "spellshieldaoe" | "spellsteal" | "spellstealoff" | "spellstealon" | "spies" | "spiritlink" | "spiritofvengeance" | "spirittroll" | "spiritwolf" | "stampede" | "standdown" | "starfall" | "stasistrap" | "steal" | "stomp" | "stoneform" | "stunned" | "submerge" | "summonfactory" | "summongrizzly" | "summonphoenix" | "summonquillbeast" | "summonwareagle" | "tankdroppilot" | "tankloadpilot" | "tankpilot" | "taunt" | "thunderbolt" | "thunderclap" | "tornado" | "townbelloff" | "townbellon" | "tranquility" | "transmute" | "unavatar" | "unavengerform" | "unbearform" | "unburrow" | "uncoldarrows" | "uncorporealform" | "undeadbuild" | "undefend" | "undivineshield" | "unetherealform" | "unflamingarrows" | "unflamingattack" | "unholyfrenzy" | "unimmolation" | "unload" | "unloadall" | "unloadallcorpses" | "unloadallinstant" | "unpoisonarrows" | "unravenform" | "unrobogoblin" | "unroot" | "unstableconcoction" | "unstoneform" | "unsubmerge" | "unsummon" | "unwindwalk" | "vengeance" | "vengeanceinstant" | "vengeanceoff" | "vengeanceon" | "volcano" | "voodoo" | "ward" | "waterelemental" | "wateryminion" | "web" | "weboff" | "webon" | "whirlwind" | "windwalk" | "wispharvest") => number;
|
|
57
|
+
const orderId: (id: "blink" | "stop" | "load" | "sleep" | "absorb" | "acidbomb" | "acolyteharvest" | "ambush" | "ancestralspirit" | "ancestralspirittarget" | "animatedead" | "antimagicshell" | "attack" | "attackground" | "attackonce" | "attributemodskill" | "auraunholy" | "auravampiric" | "autodispel" | "autodispeloff" | "autodispelon" | "autoentangle" | "autoentangleinstant" | "autoharvestgold" | "autoharvestlumber" | "avatar" | "avengerform" | "awaken" | "banish" | "barkskin" | "barkskinoff" | "barkskinon" | "battleroar" | "battlestations" | "bearform" | "berserk" | "blackarrow" | "blackarrowoff" | "blackarrowon" | "blight" | "blizzard" | "bloodlust" | "bloodlustoff" | "bloodluston" | "board" | "breathoffire" | "breathoffrost" | "build" | "burrow" | "cannibalize" | "carrionscarabs" | "carrionscarabsinstant" | "carrionscarabsoff" | "carrionscarabson" | "carrionswarm" | "chainlightning" | "channel" | "charm" | "chemicalrage" | "cloudoffog" | "clusterrockets" | "coldarrows" | "coldarrowstarg" | "controlmagic" | "corporealform" | "corrosivebreath" | "coupleinstant" | "coupletarget" | "creepanimatedead" | "creepdevour" | "creepheal" | "creephealoff" | "creephealon" | "creepthunderbolt" | "creepthunderclap" | "cripple" | "curse" | "curseoff" | "curseon" | "cyclone" | "darkconversion" | "darkportal" | "darkritual" | "darksummoning" | "deathanddecay" | "deathcoil" | "deathpact" | "decouple" | "defend" | "detectaoe" | "detonate" | "devour" | "devourmagic" | "disassociate" | "disenchant" | "dismount" | "dispel" | "divineshield" | "doom" | "drain" | "dreadlordinferno" | "dropitem" | "moveslot0" | "moveslot1" | "moveslot2" | "moveslot3" | "moveslot4" | "moveslot5" | "drunkenhaze" | "earthquake" | "eattree" | "elementalfury" | "ensnare" | "ensnareoff" | "ensnareon" | "entangle" | "entangleinstant" | "entanglingroots" | "etherealform" | "evileye" | "faeriefire" | "faeriefireoff" | "faeriefireon" | "fanofknives" | "farsight" | "fingerofdeath" | "firebolt" | "flamestrike" | "flamingarrows" | "flamingarrowstarg" | "flamingattack" | "flamingattacktarg" | "flare" | "forceboard" | "forceofnature" | "forkedlightning" | "freezingbreath" | "frenzy" | "frenzyoff" | "frenzyon" | "frostarmor" | "frostarmoroff" | "frostarmoron" | "frostnova" | "getitem" | "gold2lumber" | "grabtree" | "harvest" | "heal" | "healingspray" | "healingward" | "healingwave" | "healoff" | "healon" | "hex" | "holdposition" | "holybolt" | "howlofterror" | "humanbuild" | "immolation" | "impale" | "incineratearrow" | "incineratearrowoff" | "incineratearrowon" | "inferno" | "innerfire" | "innerfireoff" | "innerfireon" | "instant" | "invisibility" | "lavamonster" | "lightningshield" | "loadarcher" | "loadcorpse" | "loadcorpseinstant" | "locustswarm" | "lumber2gold" | "magicdefense" | "magicleash" | "magicundefense" | "manaburn" | "manaflareoff" | "manaflareon" | "manashieldoff" | "manashieldon" | "massteleport" | "mechanicalcritter" | "metamorphosis" | "militia" | "militiaconvert" | "militiaoff" | "militiaunconvert" | "mindrot" | "mirrorimage" | "monsoon" | "mount" | "mounthippogryph" | "move" | "moveAI" | "nagabuild" | "neutraldetectaoe" | "neutralinteract" | "neutralspell" | "nightelfbuild" | "orcbuild" | "parasite" | "parasiteoff" | "parasiteon" | "patrol" | "patrolAI" | "phaseshift" | "phaseshiftinstant" | "phaseshiftoff" | "phaseshifton" | "phoenixfire" | "phoenixmorph" | "poisonarrows" | "poisonarrowstarg" | "polymorph" | "possession" | "preservation" | "purge" | "rainofchaos" | "rainoffire" | "raisedead" | "raisedeadoff" | "raisedeadon" | "ravenform" | "recharge" | "rechargeoff" | "rechargeon" | "rejuvination" | "renew" | "renewoff" | "renewon" | "repair" | "repairoff" | "repairon" | "replenish" | "replenishlife" | "replenishlifeoff" | "replenishlifeon" | "replenishmana" | "replenishmanaoff" | "replenishmanaon" | "replenishoff" | "replenishon" | "request_hero" | "requestsacrifice" | "restoration" | "restorationoff" | "restorationon" | "resumebuild" | "resumeharvesting" | "resurrection" | "returnresources" | "revenge" | "revive" | "roar" | "robogoblin" | "root" | "sacrifice" | "sanctuary" | "scout" | "selfdestruct" | "selfdestructoff" | "selfdestructon" | "sentinel" | "follow" | "smart" | "setrally" | "shadowsight" | "shadowstrike" | "shockwave" | "silence" | "slow" | "slowoff" | "slowon" | "soulburn" | "soulpreservation" | "spellshield" | "spellshieldaoe" | "spellsteal" | "spellstealoff" | "spellstealon" | "spies" | "spiritlink" | "spiritofvengeance" | "spirittroll" | "spiritwolf" | "stampede" | "standdown" | "starfall" | "stasistrap" | "steal" | "stomp" | "stoneform" | "stunned" | "submerge" | "summonfactory" | "summongrizzly" | "summonphoenix" | "summonquillbeast" | "summonwareagle" | "tankdroppilot" | "tankloadpilot" | "tankpilot" | "taunt" | "thunderbolt" | "thunderclap" | "tornado" | "townbelloff" | "townbellon" | "tranquility" | "transmute" | "unavatar" | "unavengerform" | "unbearform" | "unburrow" | "uncoldarrows" | "uncorporealform" | "undeadbuild" | "undefend" | "undivineshield" | "unetherealform" | "unflamingarrows" | "unflamingattack" | "unholyfrenzy" | "unimmolation" | "unload" | "unloadall" | "unloadallcorpses" | "unloadallinstant" | "unpoisonarrows" | "unravenform" | "unrobogoblin" | "unroot" | "unstableconcoction" | "unstoneform" | "unsubmerge" | "unsummon" | "unwindwalk" | "vengeance" | "vengeanceinstant" | "vengeanceoff" | "vengeanceon" | "volcano" | "voodoo" | "ward" | "waterelemental" | "wateryminion" | "web" | "weboff" | "webon" | "whirlwind" | "windwalk" | "wispharvest") => number;
|
|
58
58
|
}
|
|
59
59
|
declare global {
|
|
60
60
|
function orderId(...args: Parameters<typeof inner.orderId>): ReturnType<typeof inner.orderId>;
|
package/core/util.lua
CHANGED
|
@@ -196,6 +196,12 @@ do
|
|
|
196
196
|
drain = 852487,
|
|
197
197
|
dreadlordinferno = 852224,
|
|
198
198
|
dropitem = 852001,
|
|
199
|
+
moveslot0 = 852002,
|
|
200
|
+
moveslot1 = 852003,
|
|
201
|
+
moveslot2 = 852004,
|
|
202
|
+
moveslot3 = 852005,
|
|
203
|
+
moveslot4 = 852006,
|
|
204
|
+
moveslot5 = 852007,
|
|
199
205
|
drunkenhaze = 852585,
|
|
200
206
|
earthquake = 852121,
|
|
201
207
|
eattree = 852146,
|
package/engine/behavior.d.ts
CHANGED
|
@@ -17,9 +17,9 @@ export declare abstract class Behavior<T extends AnyNotNil, PeriodicActionParame
|
|
|
17
17
|
protected startPeriodicAction(interval: number, ...parameters: PeriodicActionParameters): void;
|
|
18
18
|
protected stopPeriodicAction(): void;
|
|
19
19
|
static count<T extends Behavior<AnyNotNil>, ConstructorParameters extends any[]>(this: BehaviorConstructor<T, ConstructorParameters>, object: T extends Behavior<infer Object> ? Object : never, limit?: number): number;
|
|
20
|
-
static getFirst<T extends Behavior<AnyNotNil>, ConstructorParameters extends any[],
|
|
20
|
+
static getFirst<T extends Behavior<AnyNotNil>, ConstructorParameters extends any[], CountOrPredicate extends [number] | [] | [(behavior: T, ...args: PredicateArgs) => boolean, ...PredicateArgs], PredicateArgs extends any[]>(this: BehaviorConstructor<T, ConstructorParameters>, object: T extends Behavior<infer Object> ? Object : never, ...[countOrPredicate]: CountOrPredicate): CountOrPredicate extends [number] ? T[] : T | undefined;
|
|
21
21
|
static getLast<T extends Behavior<AnyNotNil>, ConstructorParameters extends any[]>(this: BehaviorConstructor<T, ConstructorParameters>, object: T extends Behavior<infer Object> ? Object : never): T | undefined;
|
|
22
|
-
static getAll<T extends Behavior<AnyNotNil>, ConstructorParameters extends any[]>(this: BehaviorConstructor<T, ConstructorParameters>, object: T extends Behavior<infer Object> ? Object : never): T[];
|
|
22
|
+
static getAll<T extends Behavior<AnyNotNil>, ConstructorParameters extends any[], PredicateArgs extends any[]>(this: BehaviorConstructor<T, ConstructorParameters>, object: T extends Behavior<infer Object> ? Object : never, predicate?: (this: void, behavior: T, ...args: PredicateArgs) => boolean, ...predicateArgs: PredicateArgs): T[];
|
|
23
23
|
static forFirst<T extends Behavior<AnyNotNil>, ConstructorParameters extends any[], ConsumerParameters extends any[]>(this: BehaviorConstructor<T, ConstructorParameters>, object: T extends Behavior<infer Object> ? Object : never, count: number, consumer: (this: void, behavior: T, ...parameters: ConsumerParameters) => any, ...parameters: ConsumerParameters): number;
|
|
24
24
|
static forFirst<T extends Behavior<AnyNotNil>, ConstructorParameters extends any[], K extends KeysOfType<T, (this: T, ...args: any) => any>>(this: BehaviorConstructor<T, ConstructorParameters>, object: T extends Behavior<infer Object> ? Object : never, count: number, key: K, ...parameters: T[K] extends (this: T, ...args: any) => any ? Parameters<T[K]> : never): number;
|
|
25
25
|
static forAll<T extends Behavior<AnyNotNil>, ConstructorParameters extends any[], ConsumerParameters extends any[]>(this: BehaviorConstructor<T, ConstructorParameters>, object: T extends Behavior<infer Object> ? Object : never, consumer: (this: void, behavior: T, ...parameters: ConsumerParameters) => unknown, ...parameters: ConsumerParameters): number;
|
package/engine/behavior.lua
CHANGED
|
@@ -83,11 +83,11 @@ function Behavior.count(self, object, limit)
|
|
|
83
83
|
end
|
|
84
84
|
return behaviorsCount
|
|
85
85
|
end
|
|
86
|
-
function Behavior.getFirst(self, object,
|
|
86
|
+
function Behavior.getFirst(self, object, countOrPredicate, ...)
|
|
87
87
|
local behavior = firstBehaviorByObject[object]
|
|
88
|
-
if
|
|
88
|
+
if type(countOrPredicate) ~= "number" then
|
|
89
89
|
while behavior ~= nil do
|
|
90
|
-
if __TS__InstanceOf(behavior, self) then
|
|
90
|
+
if __TS__InstanceOf(behavior, self) and (countOrPredicate == nil or countOrPredicate(behavior, ...)) then
|
|
91
91
|
return behavior
|
|
92
92
|
end
|
|
93
93
|
behavior = behavior[1]
|
|
@@ -96,7 +96,7 @@ function Behavior.getFirst(self, object, count)
|
|
|
96
96
|
end
|
|
97
97
|
local behaviors = {}
|
|
98
98
|
local behaviorsCount = 0
|
|
99
|
-
while behavior ~= nil and behaviorsCount <
|
|
99
|
+
while behavior ~= nil and behaviorsCount < countOrPredicate do
|
|
100
100
|
if __TS__InstanceOf(behavior, self) then
|
|
101
101
|
behaviorsCount = behaviorsCount + 1
|
|
102
102
|
behaviors[behaviorsCount] = behavior
|
|
@@ -115,12 +115,12 @@ function Behavior.getLast(self, object)
|
|
|
115
115
|
end
|
|
116
116
|
return nil
|
|
117
117
|
end
|
|
118
|
-
function Behavior.getAll(self, object)
|
|
118
|
+
function Behavior.getAll(self, object, predicate, ...)
|
|
119
119
|
local behaviors = {}
|
|
120
120
|
local behaviorsCount = 0
|
|
121
121
|
local behavior = firstBehaviorByObject[object]
|
|
122
122
|
while behavior ~= nil do
|
|
123
|
-
if __TS__InstanceOf(behavior, self) then
|
|
123
|
+
if __TS__InstanceOf(behavior, self) and (predicate == nil or predicate(behavior, ...)) then
|
|
124
124
|
behaviorsCount = behaviorsCount + 1
|
|
125
125
|
behaviors[behaviorsCount] = behavior
|
|
126
126
|
end
|
|
@@ -1,11 +1,9 @@
|
|
|
1
1
|
/** @noSelfInFile */
|
|
2
2
|
import { AbilityBehavior } from "../ability";
|
|
3
3
|
import { Ability } from "../../internal/ability";
|
|
4
|
-
import { Buff, BuffConstructor, BuffParameters, BuffTypeIdSelectionPolicy } from "../../buff";
|
|
4
|
+
import { Buff, BuffConstructor, BuffParameters, BuffPolarityParameterType, BuffResistanceTypeParameterType, BuffTypeIdSelectionPolicy } from "../../buff";
|
|
5
5
|
import { Unit } from "../../internal/unit";
|
|
6
6
|
import { ApplicableBuffTypeId } from "../../object-data/entry/buff-type/applicable";
|
|
7
|
-
import { BuffResistanceType } from "../../object-data/auxiliary/buff-resistance-type";
|
|
8
|
-
import { BuffPolarity } from "../../object-data/auxiliary/buff-polarity";
|
|
9
7
|
import { Widget } from "../../../core/types/widget";
|
|
10
8
|
type BuffParametersType<T extends BuffConstructor> = BuffParameters & Omit<BuffAdditionalParametersType<T>, keyof BuffParameters>;
|
|
11
9
|
type BuffAdditionalParametersType<T extends BuffConstructor> = T extends BuffConstructor<Buff<infer AdditionalParameters>> ? AdditionalParameters : never;
|
|
@@ -17,8 +15,8 @@ export declare abstract class ApplyBuffAbilityBehavior<T extends BuffConstructor
|
|
|
17
15
|
typeIds: [ApplicableBuffTypeId, ...ApplicableBuffTypeId[]],
|
|
18
16
|
typeIdSelectionPolicy: BuffTypeIdSelectionPolicy
|
|
19
17
|
],
|
|
20
|
-
polarity:
|
|
21
|
-
resistanceType:
|
|
18
|
+
polarity: BuffPolarityParameterType,
|
|
19
|
+
resistanceType: BuffResistanceTypeParameterType,
|
|
22
20
|
parameters?: BuffParametersType<T>
|
|
23
21
|
]);
|
|
24
22
|
}
|
|
@@ -4,6 +4,7 @@ import { Ability } from "../internal/ability";
|
|
|
4
4
|
import { DamageEvent, DamagingEvent, Unit } from "../internal/unit";
|
|
5
5
|
import "../internal/unit+ability";
|
|
6
6
|
import "../internal/unit-missile-launch";
|
|
7
|
+
import { Item } from "../internal/item";
|
|
7
8
|
export type UnitBehaviorConstructor<Args extends any[]> = new (unit: Unit, ...args: Args) => UnitBehavior;
|
|
8
9
|
export declare abstract class UnitBehavior<PeriodicActionParameters extends any[] = any[]> extends Behavior<Unit, PeriodicActionParameters> {
|
|
9
10
|
constructor(unit: Unit);
|
|
@@ -16,6 +17,10 @@ export declare abstract class UnitBehavior<PeriodicActionParameters extends any[
|
|
|
16
17
|
onDamageReceived(source: Unit | undefined, event: DamageEvent): void;
|
|
17
18
|
onAbilityGained(ability: Ability): void;
|
|
18
19
|
onAbilityLost(ability: Ability): void;
|
|
20
|
+
onItemDropped(item: Item): void;
|
|
21
|
+
onItemPickedUp(item: Item): void;
|
|
22
|
+
onItemUsed(item: Item): void;
|
|
23
|
+
onItemStacked(item: Item): void;
|
|
19
24
|
onKill(target: Unit): void;
|
|
20
25
|
onDeath(source: Unit | undefined): void;
|
|
21
26
|
}
|
|
@@ -32,6 +32,14 @@ function UnitBehavior.prototype.onAbilityGained(self, ability)
|
|
|
32
32
|
end
|
|
33
33
|
function UnitBehavior.prototype.onAbilityLost(self, ability)
|
|
34
34
|
end
|
|
35
|
+
function UnitBehavior.prototype.onItemDropped(self, item)
|
|
36
|
+
end
|
|
37
|
+
function UnitBehavior.prototype.onItemPickedUp(self, item)
|
|
38
|
+
end
|
|
39
|
+
function UnitBehavior.prototype.onItemUsed(self, item)
|
|
40
|
+
end
|
|
41
|
+
function UnitBehavior.prototype.onItemStacked(self, item)
|
|
42
|
+
end
|
|
35
43
|
function UnitBehavior.prototype.onKill(self, target)
|
|
36
44
|
end
|
|
37
45
|
function UnitBehavior.prototype.onDeath(self, source)
|
|
@@ -75,6 +83,18 @@ __TS__SetDescriptor(
|
|
|
75
83
|
end
|
|
76
84
|
____exports.UnitBehavior:forAll(target, "onDeath", source)
|
|
77
85
|
end)
|
|
86
|
+
Unit.itemDroppedEvent:addListener(function(unit, item)
|
|
87
|
+
____exports.UnitBehavior:forAll(unit, "onItemDropped", item)
|
|
88
|
+
end)
|
|
89
|
+
Unit.itemPickedUpEvent:addListener(function(unit, item)
|
|
90
|
+
____exports.UnitBehavior:forAll(unit, "onItemPickedUp", item)
|
|
91
|
+
end)
|
|
92
|
+
Unit.itemUsedEvent:addListener(function(unit, item)
|
|
93
|
+
____exports.UnitBehavior:forAll(unit, "onItemUsed", item)
|
|
94
|
+
end)
|
|
95
|
+
Unit.itemStackedEvent:addListener(function(unit, item)
|
|
96
|
+
____exports.UnitBehavior:forAll(unit, "onItemStacked", item)
|
|
97
|
+
end)
|
|
78
98
|
end)(UnitBehavior)
|
|
79
99
|
Unit.destroyEvent:addListener(function(unit)
|
|
80
100
|
____exports.UnitBehavior:forAll(unit, "destroy")
|
package/engine/buff.d.ts
CHANGED
|
@@ -5,16 +5,19 @@ import { Ability } from "./internal/ability";
|
|
|
5
5
|
import { AbilityTypeId } from "./object-data/entry/ability-type";
|
|
6
6
|
import { BuffPolarity } from "./object-data/auxiliary/buff-polarity";
|
|
7
7
|
import { BuffResistanceType } from "./object-data/auxiliary/buff-resistance-type";
|
|
8
|
-
import { AbilityBooleanField, AbilityBooleanLevelField, AbilityCombatClassificationsLevelField, AbilityDependentValue, AbilityIntegerField, AbilityIntegerLevelField, AbilityNumberField, AbilityNumberLevelField } from "./object-field/ability";
|
|
8
|
+
import { AbilityBooleanField, AbilityBooleanLevelField, AbilityCombatClassificationsLevelField, AbilityDependentValue, AbilityEnumLevelField, AbilityIntegerField, AbilityIntegerLevelField, AbilityNumberField, AbilityNumberLevelField } from "./object-field/ability";
|
|
9
9
|
import { CombatClassifications } from "./object-data/auxiliary/combat-classification";
|
|
10
|
-
import { IsExactlyAny,
|
|
10
|
+
import { IsExactlyAny, Prohibit, ReadonlyNonEmptyArray } from "../utility/types";
|
|
11
11
|
import { UnitBehavior } from "./behaviour/unit";
|
|
12
12
|
import type { Widget } from "../core/types/widget";
|
|
13
13
|
import { Destructor } from "../destroyable";
|
|
14
14
|
export type BuffConstructor<T extends Buff<any> = Buff<any>, Args extends any[] = any> = OmitConstructor<typeof Buff<any>> & (new (...args: Args) => T);
|
|
15
|
+
type EnumParameterValueType<T extends number> = T | AbilityEnumLevelField<T>;
|
|
15
16
|
type NumberParameterValueType = number | AbilityNumberField | AbilityNumberLevelField;
|
|
16
17
|
type IntegerParameterValueType = number | AbilityIntegerField | AbilityIntegerLevelField;
|
|
17
18
|
type BooleanParameterValueType = boolean | AbilityBooleanField | AbilityBooleanLevelField;
|
|
19
|
+
export type BuffPolarityParameterType = EnumParameterValueType<BuffPolarity>;
|
|
20
|
+
export type BuffResistanceTypeParameterType = EnumParameterValueType<BuffResistanceType>;
|
|
18
21
|
export declare class BuffUniqueGroup {
|
|
19
22
|
}
|
|
20
23
|
export type BuffParameters<T extends Buff<any> = Buff> = Buff extends T ? {
|
|
@@ -51,6 +54,7 @@ export type BuffParameters<T extends Buff<any> = Buff> = Buff extends T ? {
|
|
|
51
54
|
armorIncreaseFactor?: NumberParameterValueType;
|
|
52
55
|
attackSpeedIncreaseFactor?: NumberParameterValueType;
|
|
53
56
|
movementSpeedIncreaseFactor?: NumberParameterValueType;
|
|
57
|
+
damageFactor?: NumberParameterValueType;
|
|
54
58
|
receivedDamageFactor?: NumberParameterValueType;
|
|
55
59
|
receivedMagicDamageFactor?: NumberParameterValueType;
|
|
56
60
|
durationIncreaseOnAutoAttack?: NumberParameterValueType;
|
|
@@ -64,6 +68,8 @@ export type BuffParameters<T extends Buff<any> = Buff> = Buff extends T ? {
|
|
|
64
68
|
disablesAutoAttack?: BooleanParameterValueType;
|
|
65
69
|
destroysOnDamage?: BooleanParameterValueType;
|
|
66
70
|
maximumAutoAttackCount?: IntegerParameterValueType;
|
|
71
|
+
maximumDamageDealtEventCount?: IntegerParameterValueType;
|
|
72
|
+
maximumDamageReceivedEventCount?: IntegerParameterValueType;
|
|
67
73
|
damageOnExpiration?: NumberParameterValueType;
|
|
68
74
|
healingOnExpiration?: NumberParameterValueType;
|
|
69
75
|
killsOnExpiration?: BooleanParameterValueType;
|
|
@@ -101,12 +107,16 @@ declare const enum BuffPropertyKey {
|
|
|
101
107
|
SMALL_DAMAGE_UPON_DEATH_RANGE = 127,
|
|
102
108
|
AUTO_ATTACK_COUNT = 128,
|
|
103
109
|
MAXIMUM_AUTO_ATTACK_COUNT = 129,
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
+
DAMAGE_DEALT_EVENT_COUNT = 130,
|
|
111
|
+
MAXIMUM_DAMAGE_DEALT_EVENT_COUNT = 131,
|
|
112
|
+
DAMAGE_RECEIVED_EVENT_COUNT = 132,
|
|
113
|
+
MAXIMUM_DAMAGE_RECEIVED_EVENT_COUNT = 133,
|
|
114
|
+
STUNS = 134,
|
|
115
|
+
IGNORES_STUN_IMMUNITY = 135,
|
|
116
|
+
DISABLES_AUTO_ATTACK = 136,
|
|
117
|
+
PROVIDES_INVULNERABILITY = 137,
|
|
118
|
+
KILLS_ON_EXPIRATION = 138,
|
|
119
|
+
EXPLODES_ON_EXPIRATION = 139
|
|
110
120
|
}
|
|
111
121
|
export declare const enum BuffTypeIdSelectionPolicy {
|
|
112
122
|
LEAST_DURATION = 0
|
|
@@ -114,11 +124,11 @@ export declare const enum BuffTypeIdSelectionPolicy {
|
|
|
114
124
|
export type BuffAdditionalParameters = Prohibit<Record<string, any>, keyof BuffParameters>;
|
|
115
125
|
export type BuffConstructorParameters<AdditionalParameters extends BuffAdditionalParameters> = [
|
|
116
126
|
...typeId: [ApplicableBuffTypeId] | [
|
|
117
|
-
typeIds:
|
|
127
|
+
typeIds: ReadonlyNonEmptyArray<ApplicableBuffTypeId>,
|
|
118
128
|
typeIdSelectionPolicy: BuffTypeIdSelectionPolicy
|
|
119
129
|
],
|
|
120
|
-
polarity:
|
|
121
|
-
resistanceType:
|
|
130
|
+
polarity: BuffPolarityParameterType,
|
|
131
|
+
resistanceType: BuffResistanceTypeParameterType,
|
|
122
132
|
...abilityOrParameters: [
|
|
123
133
|
ability: Ability,
|
|
124
134
|
parameters?: BuffParameters & Omit<AdditionalParameters, keyof BuffParameters>
|
|
@@ -157,6 +167,10 @@ export declare class Buff<AdditionalParameters extends Prohibit<Record<string, a
|
|
|
157
167
|
private [BuffPropertyKey.SMALL_DAMAGE_UPON_DEATH_RANGE]?;
|
|
158
168
|
private [BuffPropertyKey.MAXIMUM_AUTO_ATTACK_COUNT]?;
|
|
159
169
|
private [BuffPropertyKey.AUTO_ATTACK_COUNT]?;
|
|
170
|
+
private [BuffPropertyKey.MAXIMUM_DAMAGE_DEALT_EVENT_COUNT]?;
|
|
171
|
+
private [BuffPropertyKey.DAMAGE_DEALT_EVENT_COUNT]?;
|
|
172
|
+
private [BuffPropertyKey.MAXIMUM_DAMAGE_RECEIVED_EVENT_COUNT]?;
|
|
173
|
+
private [BuffPropertyKey.DAMAGE_RECEIVED_EVENT_COUNT]?;
|
|
160
174
|
private [BuffPropertyKey.STUNS]?;
|
|
161
175
|
private [BuffPropertyKey.IGNORES_STUN_IMMUNITY]?;
|
|
162
176
|
private [BuffPropertyKey.DISABLES_AUTO_ATTACK]?;
|
|
@@ -203,6 +217,8 @@ export declare class Buff<AdditionalParameters extends Prohibit<Record<string, a
|
|
|
203
217
|
set damageOnExpiration(damageOnExpiration: number);
|
|
204
218
|
get healingOnExpiration(): number;
|
|
205
219
|
set healingOnExpiration(healingOnExpiration: number);
|
|
220
|
+
get damageFactor(): number;
|
|
221
|
+
set damageFactor(damageFactor: number);
|
|
206
222
|
get receivedDamageFactor(): number;
|
|
207
223
|
set receivedDamageFactor(receivedDamageFactor: number);
|
|
208
224
|
get armorIncrease(): number;
|
|
@@ -219,6 +235,10 @@ export declare class Buff<AdditionalParameters extends Prohibit<Record<string, a
|
|
|
219
235
|
set killsOnExpiration(killsOnExpiration: boolean);
|
|
220
236
|
get explodesOnExpiration(): boolean;
|
|
221
237
|
set explodesOnExpiration(killsOnExpiration: boolean);
|
|
238
|
+
get maximumDamageDealtEventCount(): number;
|
|
239
|
+
set maximumDamageDealtEventCount(maximumDamageDealtEventCount: number);
|
|
240
|
+
get maximumDamageReceivedEventCount(): number;
|
|
241
|
+
set maximumDamageReceivedEventCount(maximumDamageReceivedEventCount: number);
|
|
222
242
|
get maximumAutoAttackCount(): number;
|
|
223
243
|
set maximumAutoAttackCount(maximumAutoAttackCount: number);
|
|
224
244
|
get durationIncreaseOnAutoAttack(): number;
|
|
@@ -238,5 +258,6 @@ export declare class Buff<AdditionalParameters extends Prohibit<Record<string, a
|
|
|
238
258
|
onExpiration(): void;
|
|
239
259
|
onDeath(source: Unit | undefined): void;
|
|
240
260
|
onDamageDealt(target: Unit, event: DamageEvent): void;
|
|
261
|
+
onDamageReceived(source: Unit | undefined, event: DamageEvent): void;
|
|
241
262
|
}
|
|
242
263
|
export {};
|