warscript 0.0.1-dev.a73c979 → 0.0.1-dev.a856ae3
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 +1 -0
- package/attributes.lua +9 -0
- 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 +16 -0
- package/core/types/player.lua +60 -15
- 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 +12 -1
- package/engine/behavior.lua +199 -65
- package/engine/behaviour/ability/apply-buff.lua +4 -4
- package/engine/behaviour/ability/damage.d.ts +3 -0
- package/engine/behaviour/ability/damage.lua +8 -2
- 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 +31 -1
- package/engine/behaviour/unit/stun-immunity.d.ts +9 -5
- package/engine/behaviour/unit/stun-immunity.lua +17 -7
- package/engine/behaviour/unit.d.ts +15 -5
- package/engine/behaviour/unit.lua +126 -22
- package/engine/buff.d.ts +65 -21
- package/engine/buff.lua +362 -179
- package/engine/internal/ability.d.ts +3 -1
- package/engine/internal/ability.lua +26 -9
- 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 +9 -15
- package/engine/internal/item.lua +46 -69
- package/engine/internal/mechanics/cast-ability.lua +6 -3
- 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 +14 -14
- package/engine/internal/unit/ability.lua +72 -45
- 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/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-missile-launch.lua +52 -14
- package/engine/internal/unit.d.ts +19 -24
- package/engine/internal/unit.lua +179 -200
- 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/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 +20 -5
- package/engine/object-field/unit.lua +61 -0
- package/engine/object-field.d.ts +12 -4
- package/engine/object-field.lua +273 -126
- 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 +11 -3
- package/engine/standard/fields/unit.lua +15 -2
- package/engine/synchronization.d.ts +11 -0
- package/engine/synchronization.lua +77 -0
- package/engine/text-tag.d.ts +1 -1
- package/engine/text-tag.lua +92 -17
- package/engine/unit.d.ts +5 -0
- package/engine/unit.lua +5 -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 +2 -0
- package/utility/functions.lua +7 -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 +11 -2
- package/utility/lua-maps.lua +33 -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/engine/internal/{object-data/armor-increase.d.ts → misc/frame-coordinates.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
package/attributes.d.ts
CHANGED
|
@@ -13,5 +13,6 @@ export declare namespace Attribute {
|
|
|
13
13
|
export declare class AttributesHolder {
|
|
14
14
|
readonly get: (<T>(attribute: Attribute<T>) => T | undefined) & LuaExtension<"TableGetMethod">;
|
|
15
15
|
readonly set: (<T>(attribute: Attribute<T>, value: T | undefined) => void) & LuaExtension<"TableSetMethod">;
|
|
16
|
+
getOrPut<T>(attribute: Attribute<T>, defaultValue: () => T): T;
|
|
16
17
|
}
|
|
17
18
|
export {};
|
package/attributes.lua
CHANGED
|
@@ -20,4 +20,13 @@ local AttributesHolder = ____exports.AttributesHolder
|
|
|
20
20
|
AttributesHolder.name = "AttributesHolder"
|
|
21
21
|
function AttributesHolder.prototype.____constructor(self)
|
|
22
22
|
end
|
|
23
|
+
function AttributesHolder.prototype.getOrPut(self, attribute, defaultValue)
|
|
24
|
+
local value = self[attribute]
|
|
25
|
+
if value ~= nil then
|
|
26
|
+
return value
|
|
27
|
+
end
|
|
28
|
+
value = defaultValue()
|
|
29
|
+
self[attribute] = value
|
|
30
|
+
return value
|
|
31
|
+
end
|
|
23
32
|
return ____exports
|
package/core/types/frame.lua
CHANGED
|
@@ -15,13 +15,32 @@ local Event = ____event.Event
|
|
|
15
15
|
local TriggerEvent = ____event.TriggerEvent
|
|
16
16
|
local ____timer = require("core.types.timer")
|
|
17
17
|
local Timer = ____timer.Timer
|
|
18
|
+
local ____frame_2Dcoordinates = require("engine.internal.misc.frame-coordinates")
|
|
19
|
+
local FRAME_MAX_Y = ____frame_2Dcoordinates.FRAME_MAX_Y
|
|
20
|
+
local FRAME_MIN_Y = ____frame_2Dcoordinates.FRAME_MIN_Y
|
|
21
|
+
local getFrameMinXMaxX = ____frame_2Dcoordinates.getFrameMinXMaxX
|
|
22
|
+
local ____playerCamera = require("core.types.playerCamera")
|
|
23
|
+
local frameCoordinatesToWorld = ____playerCamera.frameCoordinatesToWorld
|
|
24
|
+
local worldCoordinatesToFrame = ____playerCamera.worldCoordinatesToFrame
|
|
25
|
+
local ____get_2Dterrain_2Dz = require("engine.internal.misc.get-terrain-z")
|
|
26
|
+
local getTerrainZ = ____get_2Dterrain_2Dz.getTerrainZ
|
|
27
|
+
local ____lua_2Dsets = require("utility.lua-sets")
|
|
28
|
+
local mutableLuaSet = ____lua_2Dsets.mutableLuaSet
|
|
29
|
+
local ____socket = require("net.socket")
|
|
30
|
+
local Socket = ____socket.Socket
|
|
31
|
+
local ____lua_2Dmaps = require("utility.lua-maps")
|
|
32
|
+
local getOrPut = ____lua_2Dmaps.getOrPut
|
|
33
|
+
local luaMapInvert = ____lua_2Dmaps.luaMapInvert
|
|
34
|
+
local luaMapOf = ____lua_2Dmaps.luaMapOf
|
|
35
|
+
local mutableLuaMap = ____lua_2Dmaps.mutableLuaMap
|
|
18
36
|
local frameClick = BlzFrameClick
|
|
19
37
|
local frameGetEnable = BlzFrameGetEnable
|
|
20
38
|
local frameIsVisible = BlzFrameIsVisible
|
|
21
39
|
local frameSetEnable = BlzFrameSetEnable
|
|
22
40
|
local frameSetScale = BlzFrameSetScale
|
|
23
|
-
local
|
|
24
|
-
local
|
|
41
|
+
local getHandleId = GetHandleId
|
|
42
|
+
local getOriginFrame = BlzGetOriginFrame
|
|
43
|
+
local location = Location
|
|
25
44
|
local ____rawget = _G.rawget
|
|
26
45
|
local rawset = _G.rawset
|
|
27
46
|
local invoke = Event.invoke
|
|
@@ -123,6 +142,30 @@ do
|
|
|
123
142
|
FramePoint.BOTTOM_RIGHT = FRAMEPOINT_BOTTOMRIGHT
|
|
124
143
|
end
|
|
125
144
|
local tooltipByFrame = setmetatable({}, {__mode = "k"})
|
|
145
|
+
local keyByAsyncInitOriginFrameType = luaMapOf(ORIGIN_FRAME_PORTRAIT_HP_TEXT, "hp", ORIGIN_FRAME_PORTRAIT_MANA_TEXT, "mana")
|
|
146
|
+
local asyncInitOriginFrameTypeByKey = luaMapInvert(keyByAsyncInitOriginFrameType)
|
|
147
|
+
local seenAsyncInitOriginFrameTypes = mutableLuaSet()
|
|
148
|
+
local seenAsyncInitOriginFrameTypesSocket = __TS__New(Socket)
|
|
149
|
+
local seenPlayersByAsyncInitOriginFrameType = mutableLuaMap()
|
|
150
|
+
seenAsyncInitOriginFrameTypesSocket.onMessage:addListener(function(player, key)
|
|
151
|
+
local asyncInitOriginFrameType = asyncInitOriginFrameTypeByKey[key]
|
|
152
|
+
if asyncInitOriginFrameType ~= nil then
|
|
153
|
+
getOrPut(seenPlayersByAsyncInitOriginFrameType, asyncInitOriginFrameType, mutableLuaSet)[player] = true
|
|
154
|
+
end
|
|
155
|
+
end)
|
|
156
|
+
local function haveAllPlayersSeenAsyncInitOriginFrameType(frame)
|
|
157
|
+
local players = seenPlayersByAsyncInitOriginFrameType[frame]
|
|
158
|
+
if players == nil then
|
|
159
|
+
return false
|
|
160
|
+
end
|
|
161
|
+
for ____, player in ipairs(Player.all) do
|
|
162
|
+
if player.isUser and player.isPlaying and not (players[player] ~= nil) then
|
|
163
|
+
return false
|
|
164
|
+
end
|
|
165
|
+
end
|
|
166
|
+
keyByAsyncInitOriginFrameType[frame] = nil
|
|
167
|
+
return true
|
|
168
|
+
end
|
|
126
169
|
____exports.Frame = __TS__Class()
|
|
127
170
|
local Frame = ____exports.Frame
|
|
128
171
|
Frame.name = "Frame"
|
|
@@ -301,7 +344,17 @@ function Frame.byOrigin(self, frameType, index)
|
|
|
301
344
|
if index == nil then
|
|
302
345
|
index = 0
|
|
303
346
|
end
|
|
304
|
-
|
|
347
|
+
local frame = getOriginFrame(frameType, index)
|
|
348
|
+
local asyncInitOriginFrameTypeKey = keyByAsyncInitOriginFrameType[frameType]
|
|
349
|
+
if index == 0 and asyncInitOriginFrameTypeKey ~= nil and not haveAllPlayersSeenAsyncInitOriginFrameType(frameType) then
|
|
350
|
+
if getHandleId(frame) == 0 or seenAsyncInitOriginFrameTypes[frameType] ~= nil then
|
|
351
|
+
location(0, 0)
|
|
352
|
+
else
|
|
353
|
+
seenAsyncInitOriginFrameTypes[frameType] = true
|
|
354
|
+
seenAsyncInitOriginFrameTypesSocket:send(asyncInitOriginFrameTypeKey)
|
|
355
|
+
end
|
|
356
|
+
end
|
|
357
|
+
return self:of(frame)
|
|
305
358
|
end
|
|
306
359
|
Frame.GAME_UI = ____exports.Frame:byOrigin(ORIGIN_FRAME_GAME_UI)
|
|
307
360
|
Frame.CONSOLE_UI = ____exports.Frame:byOrigin(ORIGIN_FRAME_SIMPLE_UI_PARENT)
|
|
@@ -344,27 +397,21 @@ __TS__ObjectDefineProperty(
|
|
|
344
397
|
Frame,
|
|
345
398
|
"minX",
|
|
346
399
|
{get = function(self)
|
|
347
|
-
local
|
|
348
|
-
|
|
349
|
-
local width4by3 = (w - h / 600 * 800) / 2
|
|
350
|
-
local pxtodpi = 0.6 / h
|
|
351
|
-
return -width4by3 * pxtodpi
|
|
400
|
+
local minX = getFrameMinXMaxX()
|
|
401
|
+
return minX
|
|
352
402
|
end}
|
|
353
403
|
)
|
|
354
404
|
__TS__ObjectDefineProperty(
|
|
355
405
|
Frame,
|
|
356
406
|
"maxX",
|
|
357
407
|
{get = function(self)
|
|
358
|
-
local
|
|
359
|
-
|
|
360
|
-
local width4by3 = (w - h / 600 * 800) / 2
|
|
361
|
-
local pxtodpi = 0.6 / h
|
|
362
|
-
return (-width4by3 + w) * pxtodpi
|
|
408
|
+
local ____, maxX = getFrameMinXMaxX()
|
|
409
|
+
return maxX
|
|
363
410
|
end}
|
|
364
411
|
)
|
|
365
412
|
Frame.centerX = 0.4
|
|
366
|
-
Frame.minY =
|
|
367
|
-
Frame.maxY =
|
|
413
|
+
Frame.minY = FRAME_MIN_Y
|
|
414
|
+
Frame.maxY = FRAME_MAX_Y
|
|
368
415
|
Frame.centerY = 0.3
|
|
369
416
|
__TS__SetDescriptor(
|
|
370
417
|
Frame.prototype,
|
|
@@ -938,16 +985,19 @@ __TS__ObjectDefineProperty(
|
|
|
938
985
|
local event = __TS__New(Event)
|
|
939
986
|
local syncX = 0
|
|
940
987
|
local syncY = 0
|
|
941
|
-
local
|
|
942
|
-
local
|
|
988
|
+
local syncFrameX = 0
|
|
989
|
+
local syncFrameY = 0
|
|
943
990
|
local lastX = syncX
|
|
944
991
|
local lastY = syncY
|
|
945
992
|
self.onMouseMove:addListener(function(player, x, y)
|
|
946
993
|
if player.isLocal then
|
|
947
994
|
syncX = x
|
|
948
995
|
syncY = y
|
|
949
|
-
|
|
950
|
-
|
|
996
|
+
syncFrameX, syncFrameY = worldCoordinatesToFrame(
|
|
997
|
+
x,
|
|
998
|
+
y,
|
|
999
|
+
getTerrainZ(x, y)
|
|
1000
|
+
)
|
|
951
1001
|
lastX = x
|
|
952
1002
|
lastY = y
|
|
953
1003
|
invoke(event, x, y)
|
|
@@ -957,9 +1007,8 @@ __TS__ObjectDefineProperty(
|
|
|
957
1007
|
if syncX == 0 and syncY == 0 then
|
|
958
1008
|
return
|
|
959
1009
|
end
|
|
960
|
-
local x
|
|
961
|
-
|
|
962
|
-
if x ~= lastX or y ~= lastY then
|
|
1010
|
+
local x, y, ____, isDefinite = frameCoordinatesToWorld(syncFrameX, syncFrameY)
|
|
1011
|
+
if isDefinite and (x ~= lastX or y ~= lastY) then
|
|
963
1012
|
lastX = x
|
|
964
1013
|
lastY = y
|
|
965
1014
|
invoke(event, x, y)
|
package/core/types/item.d.ts
CHANGED
package/core/types/item.lua
CHANGED
package/core/types/player.d.ts
CHANGED
|
@@ -7,6 +7,18 @@ import { UpgradeId } from "../../engine/object-data/entry/upgrade";
|
|
|
7
7
|
interface Unit {
|
|
8
8
|
handle: junit;
|
|
9
9
|
}
|
|
10
|
+
export declare const enum PlayerAllianceType {
|
|
11
|
+
PASSIVE = 0,
|
|
12
|
+
RESCUABLE = 1,
|
|
13
|
+
HELP_REQUEST = 2,
|
|
14
|
+
HELP_RESPONSE = 3,
|
|
15
|
+
SHARED_XP = 4,
|
|
16
|
+
SHARED_SPELLS = 5,
|
|
17
|
+
SHARED_VISION = 6,
|
|
18
|
+
SHARED_VISION_FORCED = 7,
|
|
19
|
+
SHARED_CONTROL = 8,
|
|
20
|
+
SHARED_ADVANCED_CONTROL = 9
|
|
21
|
+
}
|
|
10
22
|
export declare class Player extends Handle<jplayer> {
|
|
11
23
|
static readonly all: Player[];
|
|
12
24
|
static readonly local: Player;
|
|
@@ -42,6 +54,8 @@ export declare class Player extends Handle<jplayer> {
|
|
|
42
54
|
forceUICancel(): void;
|
|
43
55
|
isAllyOf(other: Player): boolean;
|
|
44
56
|
isEnemyOf(other: Player): boolean;
|
|
57
|
+
setAlliance(other: Player, type: PlayerAllianceType, value: boolean): void;
|
|
58
|
+
getAlliance(other: Player, type: PlayerAllianceType): boolean;
|
|
45
59
|
setAbilityAvailable(abilityId: number, available: boolean): void;
|
|
46
60
|
getMaximumUpgradeLevel(upgradeId: UpgradeId): number;
|
|
47
61
|
setMaximumUpgradeLevel(upgradeId: UpgradeId, maximumLevel: number): void;
|
|
@@ -50,6 +64,7 @@ export declare class Player extends Handle<jplayer> {
|
|
|
50
64
|
setUpgradeLevel(upgradeId: UpgradeId, level: number): void;
|
|
51
65
|
private static getEvent;
|
|
52
66
|
private static getMouseEvent;
|
|
67
|
+
static get allianceChangedEvent(): Readonly<Record<PlayerAllianceType, Event<[Player]>>>;
|
|
53
68
|
static get onLeave(): Event<[Player]>;
|
|
54
69
|
static get onMouseDown(): Event<[Player, jmousebuttontype]>;
|
|
55
70
|
static get onMouseUp(): Event<[Player, jmousebuttontype]>;
|
|
@@ -66,6 +81,7 @@ export declare class Player extends Handle<jplayer> {
|
|
|
66
81
|
};
|
|
67
82
|
};
|
|
68
83
|
static get onChat(): Event<[player: Player, message: string]>;
|
|
84
|
+
static readonly colorChangedEvent: Event<[Player]>;
|
|
69
85
|
static byId(id: number): Player | undefined;
|
|
70
86
|
}
|
|
71
87
|
export {};
|
package/core/types/player.lua
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
local ____lualib = require("lualib_bundle")
|
|
2
|
+
local __TS__New = ____lualib.__TS__New
|
|
2
3
|
local __TS__Class = ____lualib.__TS__Class
|
|
3
4
|
local __TS__ClassExtends = ____lualib.__TS__ClassExtends
|
|
4
|
-
local __TS__New = ____lualib.__TS__New
|
|
5
5
|
local __TS__SetDescriptor = ____lualib.__TS__SetDescriptor
|
|
6
6
|
local __TS__ObjectDefineProperty = ____lualib.__TS__ObjectDefineProperty
|
|
7
7
|
local ____exports = {}
|
|
@@ -21,14 +21,35 @@ local ____exception = require("exception")
|
|
|
21
21
|
local IllegalStateException = ____exception.IllegalStateException
|
|
22
22
|
local ____math = require("math")
|
|
23
23
|
local MAXIMUM_INTEGER = ____math.MAXIMUM_INTEGER
|
|
24
|
+
local ____player_2Dlocal_2Dhandle = require("engine.internal.misc.player-local-handle")
|
|
25
|
+
local PLAYER_LOCAL_HANDLE = ____player_2Dlocal_2Dhandle.PLAYER_LOCAL_HANDLE
|
|
26
|
+
local ____lazy = require("utility.lazy")
|
|
27
|
+
local lazyRecord = ____lazy.lazyRecord
|
|
28
|
+
local getPlayerAlliance = GetPlayerAlliance
|
|
24
29
|
local getPlayerColor = GetPlayerColor
|
|
25
30
|
local getPlayerName = GetPlayerName
|
|
26
31
|
local getPlayerTechCount = GetPlayerTechCount
|
|
27
32
|
local getPlayerTechMaxAllowed = GetPlayerTechMaxAllowed
|
|
33
|
+
local getTriggerPlayer = GetTriggerPlayer
|
|
34
|
+
local setPlayerAlliance = SetPlayerAlliance
|
|
28
35
|
local setPlayerTechMaxAllowed = SetPlayerTechMaxAllowed
|
|
29
36
|
local setPlayerTechResearched = SetPlayerTechResearched
|
|
30
37
|
local setPlayerAbilityAvailable = SetPlayerAbilityAvailable
|
|
38
|
+
local triggerRegisterPlayerAllianceChange = TriggerRegisterPlayerAllianceChange
|
|
31
39
|
local playerNative = _G.Player
|
|
40
|
+
local nativeByPlayerAllianceType = {
|
|
41
|
+
[0] = ALLIANCE_PASSIVE,
|
|
42
|
+
[1] = ALLIANCE_RESCUABLE,
|
|
43
|
+
[2] = ALLIANCE_HELP_REQUEST,
|
|
44
|
+
[3] = ALLIANCE_HELP_RESPONSE,
|
|
45
|
+
[4] = ALLIANCE_SHARED_XP,
|
|
46
|
+
[5] = ALLIANCE_SHARED_SPELLS,
|
|
47
|
+
[6] = ALLIANCE_SHARED_VISION,
|
|
48
|
+
[7] = ALLIANCE_SHARED_VISION_FORCED,
|
|
49
|
+
[8] = ALLIANCE_SHARED_CONTROL,
|
|
50
|
+
[9] = ALLIANCE_SHARED_ADVANCED_CONTROL
|
|
51
|
+
}
|
|
52
|
+
local playerColorChangedEvent = __TS__New(Event)
|
|
32
53
|
____exports.Player = __TS__Class()
|
|
33
54
|
local Player = ____exports.Player
|
|
34
55
|
Player.name = "Player"
|
|
@@ -83,6 +104,12 @@ end
|
|
|
83
104
|
function Player.prototype.isEnemyOf(self, other)
|
|
84
105
|
return IsPlayerEnemy(self.handle, other.handle)
|
|
85
106
|
end
|
|
107
|
+
function Player.prototype.setAlliance(self, other, ____type, value)
|
|
108
|
+
setPlayerAlliance(self.handle, other.handle, nativeByPlayerAllianceType[____type], value)
|
|
109
|
+
end
|
|
110
|
+
function Player.prototype.getAlliance(self, other, ____type)
|
|
111
|
+
return getPlayerAlliance(self.handle, other.handle, nativeByPlayerAllianceType[____type])
|
|
112
|
+
end
|
|
86
113
|
function Player.prototype.setAbilityAvailable(self, abilityId, available)
|
|
87
114
|
setPlayerAbilityAvailable(self.handle, abilityId, available)
|
|
88
115
|
end
|
|
@@ -122,14 +149,11 @@ function Player.getMouseEvent(self, event, collector)
|
|
|
122
149
|
self.events[eventId] = __TS__New(
|
|
123
150
|
TriggerEvent,
|
|
124
151
|
function(trigger)
|
|
125
|
-
Timer:
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
for ____, player in ipairs(____exports.Player.all) do
|
|
129
|
-
TriggerRegisterPlayerEvent(trigger, player.handle, event)
|
|
130
|
-
end
|
|
152
|
+
Timer:run(function()
|
|
153
|
+
for ____, player in ipairs(____exports.Player.all) do
|
|
154
|
+
TriggerRegisterPlayerEvent(trigger, player.handle, event)
|
|
131
155
|
end
|
|
132
|
-
)
|
|
156
|
+
end)
|
|
133
157
|
end,
|
|
134
158
|
collector or (function() return {} end)
|
|
135
159
|
)
|
|
@@ -178,7 +202,7 @@ function Player.getKeyEvent(self, isDown)
|
|
|
178
202
|
TriggerAddCondition(
|
|
179
203
|
trigger,
|
|
180
204
|
Condition(function()
|
|
181
|
-
local player = ____exports.Player:of(
|
|
205
|
+
local player = ____exports.Player:of(getTriggerPlayer())
|
|
182
206
|
local key = BlzGetTriggerPlayerKey()
|
|
183
207
|
local metaKey = BlzGetTriggerPlayerMetaKey()
|
|
184
208
|
Event.invoke(event, player, key, metaKey)
|
|
@@ -249,7 +273,7 @@ Player.all = (function()
|
|
|
249
273
|
end
|
|
250
274
|
return all
|
|
251
275
|
end)()
|
|
252
|
-
Player["local"] = ____exports.Player:of(
|
|
276
|
+
Player["local"] = ____exports.Player:of(PLAYER_LOCAL_HANDLE)
|
|
253
277
|
Player.neutralPassive = ____exports.Player.all[PLAYER_NEUTRAL_PASSIVE + 1]
|
|
254
278
|
Player.neutralAggressive = ____exports.Player.all[PLAYER_NEUTRAL_AGGRESSIVE + 1]
|
|
255
279
|
Player.neutralVictim = ____exports.Player.all[bj_PLAYER_NEUTRAL_VICTIM + 1]
|
|
@@ -277,6 +301,7 @@ __TS__SetDescriptor(
|
|
|
277
301
|
end,
|
|
278
302
|
set = function(self, color)
|
|
279
303
|
SetPlayerColor(self.handle, color.handle)
|
|
304
|
+
Event.invoke(playerColorChangedEvent, self)
|
|
280
305
|
end
|
|
281
306
|
},
|
|
282
307
|
true
|
|
@@ -367,13 +392,32 @@ __TS__SetDescriptor(
|
|
|
367
392
|
end},
|
|
368
393
|
true
|
|
369
394
|
)
|
|
395
|
+
__TS__ObjectDefineProperty(
|
|
396
|
+
Player,
|
|
397
|
+
"allianceChangedEvent",
|
|
398
|
+
{get = function(self)
|
|
399
|
+
local event = lazyRecord(function(____type)
|
|
400
|
+
return __TS__New(
|
|
401
|
+
TriggerEvent,
|
|
402
|
+
function(trigger)
|
|
403
|
+
for ____, player in ipairs(____exports.Player.all) do
|
|
404
|
+
triggerRegisterPlayerAllianceChange(trigger, player.handle, nativeByPlayerAllianceType[____type])
|
|
405
|
+
end
|
|
406
|
+
end,
|
|
407
|
+
function() return ____exports.Player:of(getTriggerPlayer()) end
|
|
408
|
+
)
|
|
409
|
+
end)
|
|
410
|
+
rawset(self, "allianceChangedEvent", event)
|
|
411
|
+
return event
|
|
412
|
+
end}
|
|
413
|
+
)
|
|
370
414
|
__TS__ObjectDefineProperty(
|
|
371
415
|
Player,
|
|
372
416
|
"onLeave",
|
|
373
417
|
{get = function(self)
|
|
374
418
|
return ____exports.Player:getEvent(
|
|
375
419
|
EVENT_PLAYER_LEAVE,
|
|
376
|
-
function() return ____exports.Player:of(
|
|
420
|
+
function() return ____exports.Player:of(getTriggerPlayer()) end
|
|
377
421
|
)
|
|
378
422
|
end}
|
|
379
423
|
)
|
|
@@ -383,7 +427,7 @@ __TS__ObjectDefineProperty(
|
|
|
383
427
|
{get = function(self)
|
|
384
428
|
return ____exports.Player:getMouseEvent(
|
|
385
429
|
EVENT_PLAYER_MOUSE_DOWN,
|
|
386
|
-
function() return ____exports.Player:of(
|
|
430
|
+
function() return ____exports.Player:of(getTriggerPlayer()), BlzGetTriggerPlayerMouseButton() end
|
|
387
431
|
)
|
|
388
432
|
end}
|
|
389
433
|
)
|
|
@@ -393,7 +437,7 @@ __TS__ObjectDefineProperty(
|
|
|
393
437
|
{get = function(self)
|
|
394
438
|
return ____exports.Player:getMouseEvent(
|
|
395
439
|
EVENT_PLAYER_MOUSE_UP,
|
|
396
|
-
function() return ____exports.Player:of(
|
|
440
|
+
function() return ____exports.Player:of(getTriggerPlayer()), BlzGetTriggerPlayerMouseButton() end
|
|
397
441
|
)
|
|
398
442
|
end}
|
|
399
443
|
)
|
|
@@ -403,7 +447,7 @@ __TS__ObjectDefineProperty(
|
|
|
403
447
|
{get = function(self)
|
|
404
448
|
return ____exports.Player:getMouseEvent(
|
|
405
449
|
EVENT_PLAYER_MOUSE_MOVE,
|
|
406
|
-
function() return ____exports.Player:of(
|
|
450
|
+
function() return ____exports.Player:of(getTriggerPlayer()), vec2(
|
|
407
451
|
BlzGetTriggerPlayerMouseX(),
|
|
408
452
|
BlzGetTriggerPlayerMouseY()
|
|
409
453
|
) end
|
|
@@ -439,10 +483,11 @@ __TS__ObjectDefineProperty(
|
|
|
439
483
|
TriggerRegisterPlayerChatEvent(trigger, player.handle, "", false)
|
|
440
484
|
end
|
|
441
485
|
end,
|
|
442
|
-
function() return ____exports.Player:of(
|
|
486
|
+
function() return ____exports.Player:of(getTriggerPlayer()), GetEventPlayerChatString() end
|
|
443
487
|
)
|
|
444
488
|
rawset(self, "onChat", event)
|
|
445
489
|
return event
|
|
446
490
|
end}
|
|
447
491
|
)
|
|
492
|
+
Player.colorChangedEvent = playerColorChangedEvent
|
|
448
493
|
return ____exports
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
/** @noSelfInFile */
|
|
2
|
+
import type { Unit } from "../../engine/internal/unit";
|
|
2
3
|
export declare class PlayerCamera {
|
|
3
4
|
private readonly player;
|
|
4
5
|
private readonly isLocal;
|
|
@@ -28,5 +29,6 @@ export declare class PlayerCamera {
|
|
|
28
29
|
get roll(): number;
|
|
29
30
|
set roll(v: number);
|
|
30
31
|
reset(): void;
|
|
32
|
+
static isUnitInView(unit: Unit): boolean;
|
|
31
33
|
static of(player: jplayer): PlayerCamera;
|
|
32
34
|
}
|
|
@@ -3,33 +3,52 @@ local __TS__Class = ____lualib.__TS__Class
|
|
|
3
3
|
local __TS__New = ____lualib.__TS__New
|
|
4
4
|
local __TS__SetDescriptor = ____lualib.__TS__SetDescriptor
|
|
5
5
|
local ____exports = {}
|
|
6
|
+
local ____timer = require("core.types.timer")
|
|
7
|
+
local Timer = ____timer.Timer
|
|
8
|
+
local ____player_2Dlocal_2Dhandle = require("engine.internal.misc.player-local-handle")
|
|
9
|
+
local PLAYER_LOCAL_HANDLE = ____player_2Dlocal_2Dhandle.PLAYER_LOCAL_HANDLE
|
|
10
|
+
local ____preconditions = require("utility.preconditions")
|
|
11
|
+
local check = ____preconditions.check
|
|
12
|
+
local ____frame_2Dcoordinates = require("engine.internal.misc.frame-coordinates")
|
|
13
|
+
local FRAME_MAX_Y = ____frame_2Dcoordinates.FRAME_MAX_Y
|
|
14
|
+
local FRAME_MIN_Y = ____frame_2Dcoordinates.FRAME_MIN_Y
|
|
15
|
+
local getFrameMinXMaxX = ____frame_2Dcoordinates.getFrameMinXMaxX
|
|
16
|
+
local ____get_2Dterrain_2Dz = require("engine.internal.misc.get-terrain-z")
|
|
17
|
+
local getTerrainZ = ____get_2Dterrain_2Dz.getTerrainZ
|
|
6
18
|
local getHandleId = GetHandleId
|
|
7
19
|
local setCameraField = SetCameraField
|
|
8
20
|
local getCameraField = GetCameraField
|
|
9
21
|
local setCameraPosition = SetCameraPosition
|
|
22
|
+
local getCameraEyePositionX = GetCameraEyePositionX
|
|
23
|
+
local getCameraEyePositionY = GetCameraEyePositionY
|
|
24
|
+
local getCameraEyePositionZ = GetCameraEyePositionZ
|
|
10
25
|
local getCameraTargetPositionX = GetCameraTargetPositionX
|
|
11
26
|
local getCameraTargetPositionY = GetCameraTargetPositionY
|
|
12
27
|
local resetToGameCamera = ResetToGameCamera
|
|
28
|
+
local cos = math.cos
|
|
13
29
|
local deg = math.deg
|
|
14
|
-
local
|
|
30
|
+
local sin = math.sin
|
|
31
|
+
local sqrt = math.sqrt
|
|
15
32
|
local memoized = {}
|
|
16
33
|
____exports.PlayerCamera = __TS__Class()
|
|
17
34
|
local PlayerCamera = ____exports.PlayerCamera
|
|
18
35
|
PlayerCamera.name = "PlayerCamera"
|
|
19
36
|
function PlayerCamera.prototype.____constructor(self, player)
|
|
20
37
|
local id = getHandleId(player)
|
|
21
|
-
|
|
22
|
-
error("Double-constructor run player camera!")
|
|
23
|
-
end
|
|
38
|
+
check(memoized[id] == nil)
|
|
24
39
|
memoized[id] = self
|
|
25
40
|
self.player = player
|
|
26
|
-
self.isLocal = player ==
|
|
41
|
+
self.isLocal = player == PLAYER_LOCAL_HANDLE
|
|
27
42
|
end
|
|
28
43
|
function PlayerCamera.prototype.reset(self)
|
|
29
44
|
if self.isLocal then
|
|
30
45
|
resetToGameCamera(0)
|
|
31
46
|
end
|
|
32
47
|
end
|
|
48
|
+
function PlayerCamera.isUnitInView(self, unit)
|
|
49
|
+
local ____, ____, isInView = ____exports.worldCoordinatesToFrame(unit.x, unit.y, unit.z)
|
|
50
|
+
return isInView
|
|
51
|
+
end
|
|
33
52
|
function PlayerCamera.of(self, player)
|
|
34
53
|
return memoized[getHandleId(player)] or __TS__New(____exports.PlayerCamera, player)
|
|
35
54
|
end
|
|
@@ -159,4 +178,103 @@ __TS__SetDescriptor(
|
|
|
159
178
|
},
|
|
160
179
|
true
|
|
161
180
|
)
|
|
181
|
+
local cameraEyeX = 0
|
|
182
|
+
local cameraEyeY = 0
|
|
183
|
+
local cameraEyeZ = 0
|
|
184
|
+
local cameraAngleOfAttack = 0
|
|
185
|
+
local cameraAngleOfAttackCos = 0
|
|
186
|
+
local cameraAngleOfAttackSin = 0
|
|
187
|
+
local cameraRotation = 0
|
|
188
|
+
local cameraRotationCos = 0
|
|
189
|
+
local cameraRotationSin = 0
|
|
190
|
+
local cameraAngleOfAttackCosRotationCos = 0
|
|
191
|
+
local cameraAngleOfAttackCosRotationSin = 0
|
|
192
|
+
local cameraAngleOfAttackSinRotationCos = 0
|
|
193
|
+
local cameraAngleOfAttackSinRotationSin = 0
|
|
194
|
+
local yCenterScreenShift = 0
|
|
195
|
+
local scaleFactor = 0
|
|
196
|
+
local frameMinX = 0
|
|
197
|
+
local frameMaxX = 0
|
|
198
|
+
local isCameraViewPrecalculated = false
|
|
199
|
+
local function precalculateCameraView()
|
|
200
|
+
cameraEyeX = getCameraEyePositionX()
|
|
201
|
+
cameraEyeY = getCameraEyePositionY()
|
|
202
|
+
cameraEyeZ = getCameraEyePositionZ()
|
|
203
|
+
cameraAngleOfAttack = getCameraField(CAMERA_FIELD_ANGLE_OF_ATTACK)
|
|
204
|
+
cameraAngleOfAttackCos = cos(cameraAngleOfAttack)
|
|
205
|
+
cameraAngleOfAttackSin = sin(cameraAngleOfAttack)
|
|
206
|
+
cameraRotation = getCameraField(CAMERA_FIELD_ROTATION)
|
|
207
|
+
cameraRotationCos = cos(cameraRotation)
|
|
208
|
+
cameraRotationSin = sin(cameraRotation)
|
|
209
|
+
cameraAngleOfAttackCosRotationCos = cameraAngleOfAttackCos * cameraRotationCos
|
|
210
|
+
cameraAngleOfAttackCosRotationSin = cameraAngleOfAttackCos * cameraRotationSin
|
|
211
|
+
cameraAngleOfAttackSinRotationCos = cameraAngleOfAttackSin * cameraRotationCos
|
|
212
|
+
cameraAngleOfAttackSinRotationSin = cameraAngleOfAttackSin * cameraRotationSin
|
|
213
|
+
yCenterScreenShift = 0.1284 * cameraAngleOfAttackCos
|
|
214
|
+
local cameraFieldOfView = getCameraField(CAMERA_FIELD_FIELD_OF_VIEW)
|
|
215
|
+
scaleFactor = 0.0524 * cameraFieldOfView ^ 3 - 0.0283 * cameraFieldOfView ^ 2 + 1.061 * cameraFieldOfView
|
|
216
|
+
frameMinX, frameMaxX = getFrameMinXMaxX()
|
|
217
|
+
isCameraViewPrecalculated = true
|
|
218
|
+
end
|
|
219
|
+
Timer.onPeriod[1 / 64]:addListener(
|
|
220
|
+
4,
|
|
221
|
+
function()
|
|
222
|
+
isCameraViewPrecalculated = false
|
|
223
|
+
end
|
|
224
|
+
)
|
|
225
|
+
---
|
|
226
|
+
-- @internal For use by internal systems only.
|
|
227
|
+
____exports.worldCoordinatesToFrame = function(x, y, z)
|
|
228
|
+
if not isCameraViewPrecalculated then
|
|
229
|
+
precalculateCameraView()
|
|
230
|
+
end
|
|
231
|
+
local dx = x - cameraEyeX
|
|
232
|
+
local dy = y - cameraEyeY
|
|
233
|
+
local dz = z - cameraEyeZ
|
|
234
|
+
local xPrime = scaleFactor * (-cameraAngleOfAttackCosRotationCos * dx - cameraAngleOfAttackCosRotationSin * dy - cameraAngleOfAttackSin * dz)
|
|
235
|
+
local frameX = 0.4 + (cameraRotationCos * dy - cameraRotationSin * dx) / xPrime
|
|
236
|
+
local frameY = 0.42625 - yCenterScreenShift + (cameraAngleOfAttackSinRotationCos * dx + cameraAngleOfAttackSinRotationSin * dy - cameraAngleOfAttackCos * dz) / xPrime
|
|
237
|
+
return frameX, frameY, xPrime < 0 and frameX >= frameMinX and frameX <= frameMaxX and frameY >= FRAME_MIN_Y and frameY <= FRAME_MAX_Y
|
|
238
|
+
end
|
|
239
|
+
---
|
|
240
|
+
-- @internal For use by internal systems only.
|
|
241
|
+
____exports.frameCoordinatesToWorld = function(x, y)
|
|
242
|
+
if not isCameraViewPrecalculated then
|
|
243
|
+
precalculateCameraView()
|
|
244
|
+
end
|
|
245
|
+
local a = (x - 0.4) * scaleFactor
|
|
246
|
+
local b = (0.42625 - yCenterScreenShift - y) * scaleFactor
|
|
247
|
+
local nx = 1 / sqrt(1 + a * a + b * b)
|
|
248
|
+
local ny = sqrt(1 - (1 + b * b) * nx * nx)
|
|
249
|
+
local nz = sqrt(1 - nx * nx - ny * ny)
|
|
250
|
+
if a > 0 then
|
|
251
|
+
ny = -ny
|
|
252
|
+
end
|
|
253
|
+
if b < 0 then
|
|
254
|
+
nz = -nz
|
|
255
|
+
end
|
|
256
|
+
local nxPrime = cameraAngleOfAttackCosRotationCos * nx - cameraRotationSin * ny + cameraAngleOfAttackSinRotationCos * nz
|
|
257
|
+
local nyPrime = cameraAngleOfAttackCosRotationSin * nx + cameraRotationCos * ny + cameraAngleOfAttackSinRotationSin * nz
|
|
258
|
+
local nzPrime = -cameraAngleOfAttackSin * nx + cameraAngleOfAttackCos * nz
|
|
259
|
+
local zGuess = getTerrainZ(cameraEyeX, cameraEyeY)
|
|
260
|
+
local xGuess = cameraEyeX + nxPrime * (cameraEyeZ - zGuess) / nzPrime
|
|
261
|
+
local yGuess = cameraEyeY + nyPrime * (cameraEyeZ - zGuess) / nzPrime
|
|
262
|
+
local zWorld = getTerrainZ(xGuess, yGuess)
|
|
263
|
+
local deltaZ = zWorld - zGuess
|
|
264
|
+
zGuess = zWorld
|
|
265
|
+
local zWorldOld = zWorld
|
|
266
|
+
local deltaZOld = deltaZ
|
|
267
|
+
local i = 0
|
|
268
|
+
while (deltaZ > 1 or deltaZ < -1) and i < 50 do
|
|
269
|
+
xGuess = cameraEyeX + nxPrime * (cameraEyeZ - zGuess) / nzPrime
|
|
270
|
+
yGuess = cameraEyeY + nyPrime * (cameraEyeZ - zGuess) / nzPrime
|
|
271
|
+
zWorld = getTerrainZ(xGuess, yGuess)
|
|
272
|
+
deltaZ = zWorld - zGuess
|
|
273
|
+
zGuess = (deltaZOld * zWorld - deltaZ * zWorldOld) / (deltaZOld - deltaZ)
|
|
274
|
+
zWorldOld = zWorld
|
|
275
|
+
deltaZOld = deltaZ
|
|
276
|
+
i = i + 1
|
|
277
|
+
end
|
|
278
|
+
return xGuess, yGuess, zWorld, i < 50
|
|
279
|
+
end
|
|
162
280
|
return ____exports
|
package/core/types/sound.lua
CHANGED
|
@@ -22,7 +22,7 @@ local setSoundPlayPosition = SetSoundPlayPosition
|
|
|
22
22
|
local stopSound = StopSound
|
|
23
23
|
local attachSoundToUnit = AttachSoundToUnit
|
|
24
24
|
local killSoundWhenDone = KillSoundWhenDone
|
|
25
|
-
____exports.SoundChannel = SoundChannel or ({})
|
|
25
|
+
____exports.SoundChannel = ____exports.SoundChannel or ({})
|
|
26
26
|
____exports.SoundChannel.General = 0
|
|
27
27
|
____exports.SoundChannel[____exports.SoundChannel.General] = "General"
|
|
28
28
|
____exports.SoundChannel.UnitSelection = 1
|
package/core/types/tileCell.d.ts
CHANGED
|
@@ -1,10 +1,20 @@
|
|
|
1
1
|
/** @noSelfInFile */
|
|
2
|
-
|
|
2
|
+
import { AttributesHolder } from "../../attributes";
|
|
3
|
+
export declare class TileCell extends AttributesHolder implements Readonly<Vec2> {
|
|
3
4
|
private readonly id;
|
|
4
5
|
readonly x: number;
|
|
5
6
|
readonly y: number;
|
|
6
7
|
readonly z: undefined;
|
|
7
8
|
protected constructor(id: number, x: number, y: number, z: undefined);
|
|
9
|
+
get up(): TileCell;
|
|
10
|
+
get down(): TileCell;
|
|
11
|
+
get left(): TileCell;
|
|
12
|
+
get right(): TileCell;
|
|
13
|
+
get terrainTypeId(): number;
|
|
14
|
+
set terrainTypeId(terrainTypeId: number);
|
|
15
|
+
get terrainVariance(): number;
|
|
16
|
+
set terrainVariance(terrainVariance: number);
|
|
17
|
+
randomizeTerrainVariance(): void;
|
|
8
18
|
isInRangeOf(x: number, y: number, range: number): boolean;
|
|
9
19
|
isInRangeOf(tileCell: TileCell, range: number): boolean;
|
|
10
20
|
static getInRect(minX: number, minY: number, maxX: number, maxY: number): TileCell[];
|