warscript 0.0.1-dev.70e8500 → 0.0.1-dev.72620d4
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/dummy.lua +4 -2
- package/core/types/effect.d.ts +11 -1
- package/core/types/effect.lua +43 -77
- package/core/types/frame.d.ts +16 -2
- package/core/types/frame.lua +128 -67
- package/core/types/handle.lua +9 -9
- package/core/types/item.d.ts +1 -0
- package/core/types/item.lua +1 -0
- package/core/types/player.d.ts +18 -1
- package/core/types/player.lua +73 -25
- package/core/types/playerColor.lua +4 -3
- package/core/types/sound.d.ts +1 -1
- package/core/types/sound.lua +14 -9
- package/core/types/tileCell.d.ts +2 -1
- package/core/types/tileCell.lua +5 -0
- package/core/types/unit.d.ts +5 -0
- package/core/types/unit.lua +5 -0
- package/core/util.d.ts +3 -1
- package/core/util.lua +109 -3
- package/decl/native.d.ts +705 -7
- package/destroyable.d.ts +1 -0
- package/destroyable.lua +9 -0
- package/engine/behavior.d.ts +10 -2
- package/engine/behavior.lua +157 -76
- package/engine/behaviour/ability/apply-buff.lua +4 -4
- package/engine/behaviour/ability/apply-unit-behavior.lua +5 -0
- package/engine/behaviour/ability/damage.d.ts +4 -0
- package/engine/behaviour/ability/damage.lua +19 -15
- package/engine/behaviour/ability/emulate-impact.lua +5 -4
- package/engine/behaviour/ability/on-command-impact.d.ts +1 -0
- package/engine/behaviour/ability/on-command-impact.lua +1 -0
- package/engine/behaviour/ability/remove-buffs.d.ts +9 -0
- package/engine/behaviour/ability/remove-buffs.lua +21 -0
- package/engine/behaviour/ability.d.ts +13 -6
- package/engine/behaviour/ability.lua +56 -1
- package/engine/behaviour/unit/stun-immunity.d.ts +7 -5
- package/engine/behaviour/unit/stun-immunity.lua +6 -5
- package/engine/behaviour/unit.d.ts +8 -3
- package/engine/behaviour/unit.lua +102 -24
- package/engine/buff.d.ts +73 -24
- package/engine/buff.lua +418 -166
- package/engine/index.d.ts +2 -1
- package/engine/internal/ability.d.ts +7 -0
- package/engine/internal/ability.lua +65 -36
- package/engine/internal/item/fields.d.ts +12 -0
- package/engine/internal/item/fields.lua +33 -0
- package/engine/internal/item/owner-cache.d.ts +5 -0
- package/engine/internal/item/owner-cache.lua +4 -0
- package/engine/internal/item+owner.d.ts +2 -0
- package/engine/internal/item+owner.lua +27 -4
- package/engine/internal/item.d.ts +20 -5
- package/engine/internal/item.lua +146 -57
- package/engine/internal/mechanics/cast-ability.lua +6 -3
- package/engine/internal/misc/unit-ability-level-natives.lua +12 -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/health-regeneration-rate-increase.d.ts +2 -0
- package/engine/internal/object-data/health-regeneration-rate-increase.lua +48 -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.lua +15 -3
- package/engine/internal/unit/add-item-to-slot-init.lua +3 -14
- package/engine/internal/unit/add-item-to-slot.lua +53 -12
- package/engine/internal/unit/appearance.d.ts +15 -0
- package/engine/internal/unit/appearance.lua +85 -0
- package/engine/internal/unit/attributes.d.ts +17 -0
- package/engine/internal/unit/attributes.lua +46 -0
- package/engine/internal/unit/bonus.d.ts +14 -0
- package/engine/internal/unit/bonus.lua +102 -8
- package/engine/internal/unit/buff.d.ts +2 -2
- package/engine/internal/unit/buff.lua +34 -19
- package/engine/internal/unit/equipment-inventory.d.ts +44 -0
- package/engine/internal/unit/equipment-inventory.lua +233 -0
- package/engine/internal/unit/expiration-timer.lua +1 -1
- package/engine/internal/unit/extended-inventory.d.ts +25 -0
- package/engine/internal/unit/extended-inventory.lua +99 -0
- package/engine/internal/unit/fly-height.d.ts +7 -0
- package/engine/internal/unit/fly-height.lua +20 -0
- package/engine/internal/unit/ignore-events-items.lua +10 -1
- package/engine/internal/unit/interrupts.d.ts +12 -0
- package/engine/internal/unit/interrupts.lua +28 -0
- package/engine/internal/unit/{item.d.ts → inventory.d.ts} +7 -3
- package/engine/internal/unit/inventory.lua +87 -0
- package/engine/internal/unit/item-container.d.ts +25 -0
- package/engine/internal/unit/item-container.lua +11 -0
- package/engine/internal/unit/item-order-events.d.ts +17 -0
- package/engine/internal/unit/item-order-events.lua +67 -0
- package/engine/internal/unit/item-slot.d.ts +27 -0
- package/engine/internal/unit/item-slot.lua +92 -0
- package/engine/internal/unit/main-selected.lua +12 -27
- package/engine/internal/unit/order.d.ts +3 -3
- package/engine/internal/unit/order.lua +10 -10
- package/engine/internal/unit/pseudo-passive-abilities.d.ts +2 -0
- package/engine/internal/unit/pseudo-passive-abilities.lua +11 -0
- package/engine/internal/unit/range-event.d.ts +12 -0
- package/engine/internal/unit/range-event.lua +90 -0
- package/engine/internal/unit/scale.d.ts +7 -0
- package/engine/internal/unit/scale.lua +20 -0
- package/engine/internal/unit+ability.d.ts +2 -1
- package/engine/internal/unit+ability.lua +63 -2
- package/engine/internal/unit+bonus.lua +3 -3
- package/engine/internal/unit+damage.d.ts +9 -0
- package/engine/internal/unit+damage.lua +33 -0
- package/engine/internal/unit+rally.lua +9 -31
- package/engine/internal/unit-missile-data.lua +58 -32
- package/engine/internal/unit-missile-launch.lua +29 -19
- package/engine/internal/unit.d.ts +15 -29
- package/engine/internal/unit.lua +189 -272
- package/engine/local-client.d.ts +28 -0
- package/engine/local-client.lua +324 -54
- package/engine/object-data/auxiliary/attachment-preset.d.ts +7 -0
- package/engine/object-data/auxiliary/attachment-preset.lua +7 -0
- package/engine/object-data/auxiliary/equipment-slot.d.ts +12 -0
- package/engine/object-data/auxiliary/equipment-slot.lua +2 -0
- package/engine/object-data/auxiliary/equipment-type.d.ts +12 -0
- package/engine/object-data/auxiliary/equipment-type.lua +26 -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/item-class.d.ts +11 -0
- package/engine/object-data/auxiliary/item-class.lua +2 -0
- package/engine/object-data/auxiliary/item-tag.d.ts +12 -0
- package/engine/object-data/auxiliary/item-tag.lua +2 -0
- package/engine/object-data/auxiliary/order-type.d.ts +939 -0
- package/engine/object-data/auxiliary/order-type.lua +2 -0
- package/engine/object-data/auxiliary/sound-set-name.d.ts +14 -3
- package/engine/object-data/auxiliary/unit-attribute.lua +1 -1
- package/engine/object-data/entry/ability-type/apprehend.d.ts +22 -0
- package/engine/object-data/entry/ability-type/apprehend.lua +66 -0
- package/engine/object-data/entry/ability-type/armor-bonus.d.ts +8 -0
- package/engine/object-data/entry/ability-type/{armor-increase.lua → armor-bonus.lua} +9 -9
- package/engine/object-data/entry/ability-type/aura-of-blight.d.ts +13 -0
- package/engine/object-data/entry/ability-type/aura-of-blight.lua +39 -0
- package/engine/object-data/entry/ability-type/banshee.d.ts +8 -0
- package/engine/object-data/entry/ability-type/banshee.lua +13 -0
- package/engine/object-data/entry/ability-type/banshees-wail-damage-amp.d.ts +12 -0
- package/engine/object-data/entry/ability-type/banshees-wail-damage-amp.lua +27 -0
- package/engine/object-data/entry/ability-type/banshees-wail.d.ts +31 -0
- package/engine/object-data/entry/ability-type/banshees-wail.lua +117 -0
- package/engine/object-data/entry/ability-type/battering-ram.d.ts +33 -0
- package/engine/object-data/entry/ability-type/battering-ram.lua +130 -0
- package/engine/object-data/entry/ability-type/blank-configurable.d.ts +3 -0
- package/engine/object-data/entry/ability-type/blank-configurable.lua +30 -0
- package/engine/object-data/entry/ability-type/blank-passive.d.ts +4 -0
- package/engine/object-data/entry/ability-type/blank-passive.lua +27 -7
- package/engine/object-data/entry/ability-type/breath-of-fire.d.ts +11 -0
- package/engine/object-data/entry/ability-type/breath-of-fire.lua +27 -0
- package/engine/object-data/entry/ability-type/cleansing-fire.d.ts +27 -0
- package/engine/object-data/entry/ability-type/cleansing-fire.lua +104 -0
- package/engine/object-data/entry/ability-type/consecration.d.ts +15 -0
- package/engine/object-data/entry/ability-type/consecration.lua +52 -0
- package/engine/object-data/entry/ability-type/cooldown-reduction.d.ts +12 -0
- package/engine/object-data/entry/ability-type/cooldown-reduction.lua +39 -0
- package/engine/object-data/entry/ability-type/critical-strike-system.d.ts +18 -0
- package/engine/object-data/entry/ability-type/critical-strike-system.lua +65 -0
- package/engine/object-data/entry/ability-type/deathseeker-arrows.d.ts +21 -0
- package/engine/object-data/entry/ability-type/deathseeker-arrows.lua +78 -0
- package/engine/object-data/entry/ability-type/equipment-inventory-interface.d.ts +8 -0
- package/engine/object-data/entry/ability-type/equipment-inventory-interface.lua +13 -0
- package/engine/object-data/entry/ability-type/equipment-inventory.d.ts +13 -0
- package/engine/object-data/entry/ability-type/equipment-inventory.lua +27 -0
- package/engine/object-data/entry/ability-type/equipment.d.ts +13 -0
- package/engine/object-data/entry/ability-type/equipment.lua +27 -0
- package/engine/object-data/entry/ability-type/firebolt.d.ts +7 -0
- package/engine/object-data/entry/ability-type/firebolt.lua +13 -0
- package/engine/object-data/entry/ability-type/flame-strike.d.ts +25 -0
- package/engine/object-data/entry/ability-type/flame-strike.lua +92 -0
- package/engine/object-data/entry/ability-type/grant-talent-point.d.ts +8 -0
- package/engine/object-data/entry/ability-type/grant-talent-point.lua +13 -0
- package/engine/object-data/entry/ability-type/grim-conviction.d.ts +36 -0
- package/engine/object-data/entry/ability-type/grim-conviction.lua +131 -0
- package/engine/object-data/entry/ability-type/grit.d.ts +18 -0
- package/engine/object-data/entry/ability-type/grit.lua +65 -0
- package/engine/object-data/entry/ability-type/guiding-hand.d.ts +27 -0
- package/engine/object-data/entry/ability-type/guiding-hand.lua +104 -0
- package/engine/object-data/entry/ability-type/headsplitter.d.ts +27 -0
- package/engine/object-data/entry/ability-type/headsplitter.lua +104 -0
- package/engine/object-data/entry/ability-type/{armor-increase.d.ts → healing-modifier.d.ts} +4 -3
- package/engine/object-data/entry/ability-type/healing-modifier.lua +26 -0
- package/engine/object-data/entry/ability-type/healing-ward-aura.d.ts +13 -0
- package/engine/object-data/entry/ability-type/healing-ward-aura.lua +39 -0
- 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/heroic-slash.d.ts +18 -0
- package/engine/object-data/entry/ability-type/heroic-slash.lua +65 -0
- package/engine/object-data/entry/ability-type/holy-wrath.d.ts +30 -0
- package/engine/object-data/entry/ability-type/holy-wrath.lua +117 -0
- package/engine/object-data/entry/ability-type/inspire-courage.d.ts +18 -0
- package/engine/object-data/entry/ability-type/inspire-courage.lua +65 -0
- package/engine/object-data/entry/ability-type/item-life-regeneration.d.ts +10 -0
- package/engine/object-data/entry/ability-type/item-life-regeneration.lua +26 -0
- package/engine/object-data/entry/ability-type/life-drain.d.ts +37 -0
- package/engine/object-data/entry/ability-type/life-drain.lua +144 -0
- package/engine/object-data/entry/ability-type/lights-mercy.d.ts +27 -0
- package/engine/object-data/entry/ability-type/lights-mercy.lua +104 -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-efficiency.d.ts +12 -0
- package/engine/object-data/entry/ability-type/mana-efficiency.lua +39 -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/mind-control.d.ts +21 -0
- package/engine/object-data/entry/ability-type/mind-control.lua +78 -0
- package/engine/object-data/entry/ability-type/on-attack-cast-spell.d.ts +21 -0
- package/engine/object-data/entry/ability-type/on-attack-cast-spell.lua +52 -0
- package/engine/object-data/entry/ability-type/on-basic-attack-cast-spell.d.ts +19 -0
- package/engine/object-data/entry/ability-type/on-basic-attack-cast-spell.lua +65 -0
- package/engine/object-data/entry/ability-type/on-hit-cast-spell.d.ts +15 -0
- package/engine/object-data/entry/ability-type/on-hit-cast-spell.lua +26 -0
- package/engine/object-data/entry/ability-type/on-magic-attack-cast-spell.d.ts +6 -0
- package/engine/object-data/entry/ability-type/on-magic-attack-cast-spell.lua +12 -0
- package/engine/object-data/entry/ability-type/provoke.d.ts +21 -0
- package/engine/object-data/entry/ability-type/provoke.lua +66 -0
- package/engine/object-data/entry/ability-type/rain-of-fire.d.ts +7 -0
- package/engine/object-data/entry/ability-type/rain-of-fire.lua +13 -0
- package/engine/object-data/entry/ability-type/raise-the-banner.d.ts +9 -0
- package/engine/object-data/entry/ability-type/raise-the-banner.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/resolve.d.ts +12 -0
- package/engine/object-data/entry/ability-type/resolve.lua +39 -0
- package/engine/object-data/entry/ability-type/righteous-fury.d.ts +33 -0
- package/engine/object-data/entry/ability-type/righteous-fury.lua +130 -0
- package/engine/object-data/entry/ability-type/sacred-aura.d.ts +27 -0
- package/engine/object-data/entry/ability-type/sacred-aura.lua +104 -0
- package/engine/object-data/entry/ability-type/soul-burn.d.ts +22 -0
- package/engine/object-data/entry/ability-type/soul-burn.lua +79 -0
- package/engine/object-data/entry/ability-type/soul-lantern.d.ts +30 -0
- package/engine/object-data/entry/ability-type/soul-lantern.lua +117 -0
- package/engine/object-data/entry/ability-type/spell-amp.d.ts +15 -0
- package/engine/object-data/entry/ability-type/spell-amp.lua +52 -0
- package/engine/object-data/entry/ability-type/spell-critical-strike.d.ts +12 -0
- package/engine/object-data/entry/ability-type/spell-critical-strike.lua +39 -0
- package/engine/object-data/entry/ability-type/spell-vamp.d.ts +12 -0
- package/engine/object-data/entry/ability-type/spell-vamp.lua +39 -0
- package/engine/object-data/entry/ability-type/stackable-evasion.d.ts +9 -0
- package/engine/object-data/entry/ability-type/stackable-evasion.lua +13 -0
- package/engine/object-data/entry/ability-type/stackable-hardened-skin.d.ts +21 -0
- package/engine/object-data/entry/ability-type/stackable-hardened-skin.lua +78 -0
- package/engine/object-data/entry/ability-type/stackable-life-steal.d.ts +9 -0
- package/engine/object-data/entry/ability-type/stackable-life-steal.lua +26 -0
- package/engine/object-data/entry/ability-type/stackable-spell-damage-reduction.d.ts +9 -0
- package/engine/object-data/entry/ability-type/stackable-spell-damage-reduction.lua +13 -0
- package/engine/object-data/entry/ability-type/stackable-thorn-shield.d.ts +9 -0
- package/engine/object-data/entry/ability-type/stackable-thorn-shield.lua +13 -0
- package/engine/object-data/entry/ability-type/stat-details.d.ts +12 -0
- package/engine/object-data/entry/ability-type/stat-details.lua +27 -0
- package/engine/object-data/entry/ability-type/surge-of-light.d.ts +33 -0
- package/engine/object-data/entry/ability-type/surge-of-light.lua +130 -0
- package/engine/object-data/entry/ability-type/sweeping-strike.d.ts +57 -0
- package/engine/object-data/entry/ability-type/sweeping-strike.lua +234 -0
- package/engine/object-data/entry/ability-type/talents.d.ts +12 -0
- package/engine/object-data/entry/ability-type/talents.lua +27 -0
- package/engine/object-data/entry/ability-type/unyielding-guard.d.ts +30 -0
- package/engine/object-data/entry/ability-type/unyielding-guard.lua +117 -0
- package/engine/object-data/entry/ability-type/valiant-charge.d.ts +27 -0
- package/engine/object-data/entry/ability-type/valiant-charge.lua +104 -0
- package/engine/object-data/entry/ability-type/warcry.d.ts +9 -0
- package/engine/object-data/entry/ability-type/warcry.lua +26 -0
- package/engine/object-data/entry/ability-type/withering-fire.d.ts +21 -0
- package/engine/object-data/entry/ability-type/withering-fire.lua +78 -0
- package/engine/object-data/entry/ability-type.d.ts +25 -6
- package/engine/object-data/entry/ability-type.lua +244 -8
- package/engine/object-data/entry/buff-type/applicable.lua +113 -109
- package/engine/object-data/entry/buff-type.d.ts +6 -2
- package/engine/object-data/entry/buff-type.lua +26 -0
- package/engine/object-data/entry/destructible-type.d.ts +32 -2
- package/engine/object-data/entry/destructible-type.lua +181 -0
- package/engine/object-data/entry/item-type.d.ts +18 -3
- package/engine/object-data/entry/item-type.lua +84 -0
- package/engine/object-data/entry/lightning-type.d.ts +6 -8
- package/engine/object-data/entry/lightning-type.lua +1 -1
- package/engine/object-data/entry/sound-preset.d.ts +2 -2
- package/engine/object-data/entry/unit-type.d.ts +51 -2
- package/engine/object-data/entry/unit-type.lua +415 -37
- package/engine/object-data/entry/upgrade.d.ts +2 -2
- package/engine/object-data/entry.d.ts +6 -1
- package/engine/object-data/entry.lua +8 -0
- package/engine/object-field/ability.lua +2 -2
- 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 +10 -2
- package/engine/object-field.lua +268 -123
- package/engine/random.d.ts +1 -0
- package/engine/random.lua +8 -0
- package/engine/standard/entries/ability-type.d.ts +3102 -7
- package/engine/standard/entries/ability-type.lua +0 -6
- package/engine/standard/entries/buff-type.d.ts +45 -0
- package/engine/standard/entries/buff-type.lua +43 -0
- package/engine/standard/entries/item-type.d.ts +1299 -0
- package/engine/standard/entries/item-type.lua +2 -0
- package/engine/standard/entries/lightning-type.d.ts +42 -15
- package/engine/standard/entries/lightning-type.lua +0 -14
- package/engine/standard/entries/unit-type.d.ts +5 -0
- package/engine/standard/entries/unit-type.lua +5 -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.lua +2 -1
- package/engine/unit.d.ts +10 -1
- package/engine/unit.lua +10 -1
- package/event.d.ts +1 -1
- package/lualib_bundle.lua +1 -1
- package/math.d.ts +2 -0
- package/math.lua +14 -0
- package/net/socket.lua +1 -1
- package/network.lua +25 -1
- package/objutil/buff.lua +10 -8
- package/objutil/object.lua +1 -1
- package/operation.d.ts +8 -1
- package/operation.lua +38 -18
- package/package.json +3 -23
- package/patch-lua.lua +15 -0
- package/utility/arrays.d.ts +1 -0
- package/utility/arrays.lua +12 -0
- package/utility/linked-map.d.ts +35 -0
- package/utility/linked-map.lua +107 -0
- package/utility/linked-set.d.ts +4 -1
- package/utility/linked-set.lua +44 -0
- package/utility/random.d.ts +102 -0
- package/utility/random.lua +273 -0
- package/utility/records.lua +20 -1
- package/utility/unordered-map.d.ts +27 -0
- package/utility/unordered-map.lua +99 -0
- package/engine/internal/unit/item.lua +0 -78
- /package/engine/internal/{object-data/armor-increase.d.ts → misc/unit-ability-level-natives.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/operation.lua
CHANGED
|
@@ -22,10 +22,7 @@ OperationMonitor.name = "OperationMonitor"
|
|
|
22
22
|
__TS__ClassExtends(OperationMonitor, __TS__Promise)
|
|
23
23
|
function OperationMonitor.prototype.____constructor(self, operation, ...)
|
|
24
24
|
local args = {...}
|
|
25
|
-
__TS__Promise.prototype.____constructor(
|
|
26
|
-
self,
|
|
27
|
-
table.unpack(args)
|
|
28
|
-
)
|
|
25
|
+
__TS__Promise.prototype.____constructor(self, ...)
|
|
29
26
|
self.o = operation
|
|
30
27
|
end
|
|
31
28
|
function OperationMonitor.prototype.cancel(self)
|
|
@@ -38,9 +35,10 @@ local Operation = ____exports.Operation
|
|
|
38
35
|
Operation.name = "Operation"
|
|
39
36
|
function Operation.prototype.____constructor(self)
|
|
40
37
|
self.started = false
|
|
38
|
+
self.settled = false
|
|
39
|
+
self.canceled = false
|
|
41
40
|
self.progress = 0
|
|
42
41
|
self.maximum = 0
|
|
43
|
-
self.isCanceled = false
|
|
44
42
|
end
|
|
45
43
|
function Operation.prototype.execute(self)
|
|
46
44
|
if self.started then
|
|
@@ -58,6 +56,12 @@ function Operation.prototype.execute(self)
|
|
|
58
56
|
local result
|
|
59
57
|
local progress = self.progress
|
|
60
58
|
local ____try = __TS__AsyncAwaiter(function()
|
|
59
|
+
if self.canceled then
|
|
60
|
+
error(
|
|
61
|
+
__TS__New(CancellationException),
|
|
62
|
+
0
|
|
63
|
+
)
|
|
64
|
+
end
|
|
61
65
|
local maximum = __TS__Await(self:estimate())
|
|
62
66
|
self.maximum = maximum
|
|
63
67
|
if maximum ~= 0 then
|
|
@@ -68,20 +72,19 @@ function Operation.prototype.execute(self)
|
|
|
68
72
|
end
|
|
69
73
|
repeat
|
|
70
74
|
do
|
|
71
|
-
if self.
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
Event.invoke(onFailure, self, reason)
|
|
77
|
-
end
|
|
78
|
-
local onComplete = ____rawget(self, "onComplete")
|
|
79
|
-
if onComplete ~= nil then
|
|
80
|
-
Event.invoke(onComplete, self, false, reason)
|
|
81
|
-
end
|
|
82
|
-
return ____awaiter_resolve(nil)
|
|
75
|
+
if self.canceled then
|
|
76
|
+
error(
|
|
77
|
+
__TS__New(CancellationException),
|
|
78
|
+
0
|
|
79
|
+
)
|
|
83
80
|
end
|
|
84
81
|
result = __TS__Await(self:work())
|
|
82
|
+
if self.canceled then
|
|
83
|
+
error(
|
|
84
|
+
__TS__New(CancellationException),
|
|
85
|
+
0
|
|
86
|
+
)
|
|
87
|
+
end
|
|
85
88
|
if self.progress ~= progress or self.maximum ~= maximum then
|
|
86
89
|
progress = self.progress
|
|
87
90
|
maximum = self.maximum
|
|
@@ -96,6 +99,7 @@ function Operation.prototype.execute(self)
|
|
|
96
99
|
__TS__Await(____try.catch(
|
|
97
100
|
____try,
|
|
98
101
|
function(____, reason)
|
|
102
|
+
self.settled = true
|
|
99
103
|
reject(nil, reason)
|
|
100
104
|
local onFailure = ____rawget(self, "onFailure")
|
|
101
105
|
if onFailure ~= nil then
|
|
@@ -108,6 +112,7 @@ function Operation.prototype.execute(self)
|
|
|
108
112
|
return ____awaiter_resolve(nil)
|
|
109
113
|
end
|
|
110
114
|
))
|
|
115
|
+
self.settled = true
|
|
111
116
|
resolve(nil, result)
|
|
112
117
|
local onSuccess = ____rawget(self, "onSuccess")
|
|
113
118
|
if onSuccess ~= nil then
|
|
@@ -122,12 +127,27 @@ function Operation.prototype.execute(self)
|
|
|
122
127
|
)
|
|
123
128
|
end
|
|
124
129
|
function Operation.prototype.cancel(self)
|
|
130
|
+
if self.canceled then
|
|
131
|
+
return true
|
|
132
|
+
end
|
|
133
|
+
if self.settled then
|
|
134
|
+
return false
|
|
135
|
+
end
|
|
136
|
+
self.canceled = true
|
|
125
137
|
if self:doCancel() then
|
|
126
|
-
self.isCanceled = true
|
|
127
138
|
return true
|
|
128
139
|
end
|
|
140
|
+
self.canceled = false
|
|
129
141
|
return false
|
|
130
142
|
end
|
|
143
|
+
__TS__SetDescriptor(
|
|
144
|
+
Operation.prototype,
|
|
145
|
+
"isCanceled",
|
|
146
|
+
{get = function(self)
|
|
147
|
+
return self.canceled
|
|
148
|
+
end},
|
|
149
|
+
true
|
|
150
|
+
)
|
|
131
151
|
__TS__SetDescriptor(
|
|
132
152
|
Operation.prototype,
|
|
133
153
|
"isStarted",
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://json.schemastore.org/package",
|
|
3
3
|
"name": "warscript",
|
|
4
|
-
"version": "0.0.1-dev.
|
|
4
|
+
"version": "0.0.1-dev.72620d4",
|
|
5
5
|
"description": "A typescript library for Warcraft III using Warpack.",
|
|
6
6
|
"keywords": [
|
|
7
7
|
"warcraft",
|
|
@@ -13,31 +13,11 @@
|
|
|
13
13
|
"type": "git",
|
|
14
14
|
"url": "git+https://github.com/rhazarian/warscript.git"
|
|
15
15
|
},
|
|
16
|
-
"scripts": {
|
|
17
|
-
"clean": "rimraf dist",
|
|
18
|
-
"prebuild": "npm run clean",
|
|
19
|
-
"build": "tstl && copyfiles -u 1 \"src/**/*.d.ts\" \"src/**/*.lua\" dist && copyfiles LICENSE package.json dist",
|
|
20
|
-
"prepublishOnly": "echo You should run 'npm run publish' instead. && exit 1",
|
|
21
|
-
"publish": "npm run build && npm publish ./dist --ignore-scripts"
|
|
22
|
-
},
|
|
23
16
|
"peerDependencies": {
|
|
24
17
|
"@warscript/language-extensions": "^0.0.1",
|
|
25
|
-
"@warscript/tstl-plugin": "^0.0.
|
|
18
|
+
"@warscript/tstl-plugin": "^0.0.6",
|
|
26
19
|
"lua-types": "^2.13.1",
|
|
27
|
-
"warpack": "0.0.1-dev.
|
|
28
|
-
},
|
|
29
|
-
"devDependencies": {
|
|
30
|
-
"@typescript-eslint/eslint-plugin": "^8.13.0",
|
|
31
|
-
"@typescript-eslint/parser": "^8.13.0",
|
|
32
|
-
"async": "^3.2.6",
|
|
33
|
-
"copyfiles": "^2.4.1",
|
|
34
|
-
"eslint": "^9.14.0",
|
|
35
|
-
"eslint-config-prettier": "^9.1.0",
|
|
36
|
-
"eslint-plugin-prettier": "^5.2.1",
|
|
37
|
-
"prettier": "^3.3.3",
|
|
38
|
-
"rimraf": "^6.0.1",
|
|
39
|
-
"ts-node": "^10.9.2",
|
|
40
|
-
"tsc-watch": "^6.2.0"
|
|
20
|
+
"warpack": "0.0.1-dev.2e316da"
|
|
41
21
|
},
|
|
42
22
|
"publishConfig": {
|
|
43
23
|
"access": "public",
|
package/patch-lua.lua
CHANGED
|
@@ -1,5 +1,9 @@
|
|
|
1
|
+
local error = _G.error
|
|
1
2
|
local getmetatable = _G.getmetatable
|
|
2
3
|
local ipairs = _G.ipairs
|
|
4
|
+
local select = _G.select
|
|
5
|
+
local tostring = _G.tostring
|
|
6
|
+
local tableconcat = table.concat
|
|
3
7
|
|
|
4
8
|
_G.ipairs = function(t)
|
|
5
9
|
local metatable = getmetatable(t)
|
|
@@ -8,3 +12,14 @@ _G.ipairs = function(t)
|
|
|
8
12
|
end
|
|
9
13
|
return ipairs(t)
|
|
10
14
|
end
|
|
15
|
+
|
|
16
|
+
_G.assert = function(v, ...)
|
|
17
|
+
if not v then
|
|
18
|
+
local args = {}
|
|
19
|
+
for i = 1, select("#", ...) do
|
|
20
|
+
args[i] = tostring(select(i, ...))
|
|
21
|
+
end
|
|
22
|
+
error(tableconcat(args, " "))
|
|
23
|
+
end
|
|
24
|
+
return v, ...
|
|
25
|
+
end
|
package/utility/arrays.d.ts
CHANGED
|
@@ -42,6 +42,7 @@ export declare const associateByIndexed: <K extends AnyNotNil, V>(array: readonl
|
|
|
42
42
|
export declare const associateWith: <K extends AnyNotNil, V>(array: readonly K[], valueSelector: (value: K) => V) => LuaMap<K, V>;
|
|
43
43
|
export declare const associateWithIndexed: <K extends AnyNotNil, V>(array: readonly K[], valueSelector: (index: number, value: K) => V) => LuaMap<K, V>;
|
|
44
44
|
export declare const filter: <T>(array: readonly T[], predicate: (value: T) => boolean) => T[];
|
|
45
|
+
export declare const filterNot: <T>(array: readonly T[], predicate: (value: T) => boolean) => T[];
|
|
45
46
|
export declare const average: (array: readonly number[]) => number;
|
|
46
47
|
export declare const sum: (array: readonly number[]) => number;
|
|
47
48
|
export declare const product: (array: readonly number[]) => number;
|
package/utility/arrays.lua
CHANGED
|
@@ -238,6 +238,18 @@ ____exports.filter = function(array, predicate)
|
|
|
238
238
|
end
|
|
239
239
|
return result
|
|
240
240
|
end
|
|
241
|
+
____exports.filterNot = function(array, predicate)
|
|
242
|
+
local result = {}
|
|
243
|
+
local j = 1
|
|
244
|
+
for i = 1, #array do
|
|
245
|
+
local value = array[i]
|
|
246
|
+
if not predicate(value) then
|
|
247
|
+
result[j] = value
|
|
248
|
+
j = j + 1
|
|
249
|
+
end
|
|
250
|
+
end
|
|
251
|
+
return result
|
|
252
|
+
end
|
|
241
253
|
____exports.average = function(array)
|
|
242
254
|
local sum = 0
|
|
243
255
|
local count = #array
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/** @noSelfInFile */
|
|
2
|
+
import { ReadonlyLinkedSet } from "./linked-set";
|
|
3
|
+
type IteratorState<K extends AnyNotNil, V> = {
|
|
4
|
+
n?: K;
|
|
5
|
+
t: LuaMap<K, K>;
|
|
6
|
+
v: LuaMap<K, V>;
|
|
7
|
+
};
|
|
8
|
+
type OneSidedTypeGuard = {
|
|
9
|
+
readonly __oneSidedTypeGuard: unique symbol;
|
|
10
|
+
};
|
|
11
|
+
export interface ReadonlyLinkedMap<K extends AnyNotNil, V> extends LuaPairsIterable<K, V> {
|
|
12
|
+
readonly keys: ReadonlyLinkedSet<K>;
|
|
13
|
+
get(key: K): V | undefined;
|
|
14
|
+
contains(key: AnyNotNil): key is K & OneSidedTypeGuard;
|
|
15
|
+
readonly size: number;
|
|
16
|
+
}
|
|
17
|
+
export interface LinkedMap<K extends AnyNotNil, V> extends LuaPairsIterable<K, V> {
|
|
18
|
+
readonly __linkedMap: unique symbol;
|
|
19
|
+
}
|
|
20
|
+
export declare class LinkedMap<K extends AnyNotNil, V> implements ReadonlyLinkedMap<K, V> {
|
|
21
|
+
private k;
|
|
22
|
+
private v;
|
|
23
|
+
get keys(): ReadonlyLinkedSet<K>;
|
|
24
|
+
get(key: K): V | undefined;
|
|
25
|
+
getOrPut(key: K, defaultValue: (this: void) => V): V;
|
|
26
|
+
put(key: K, value: V): void;
|
|
27
|
+
remove(key: K): boolean;
|
|
28
|
+
contains(key: AnyNotNil): key is K & OneSidedTypeGuard;
|
|
29
|
+
get size(): number;
|
|
30
|
+
protected __len(): number;
|
|
31
|
+
protected __pairs(this: LinkedMap<K, V>): LuaIterator<LuaMultiReturn<[K | undefined, V | undefined]>, IteratorState<K, V>>;
|
|
32
|
+
}
|
|
33
|
+
export declare const emptyLinkedMap: <K extends AnyNotNil, V>() => ReadonlyLinkedMap<K, V>;
|
|
34
|
+
export declare const mutableLinkedMap: <K extends AnyNotNil, V>() => LinkedMap<K, V>;
|
|
35
|
+
export {};
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
local ____lualib = require("lualib_bundle")
|
|
2
|
+
local __TS__Class = ____lualib.__TS__Class
|
|
3
|
+
local __TS__New = ____lualib.__TS__New
|
|
4
|
+
local __TS__SetDescriptor = ____lualib.__TS__SetDescriptor
|
|
5
|
+
local __TS__ClassExtends = ____lualib.__TS__ClassExtends
|
|
6
|
+
local ____exports = {}
|
|
7
|
+
local ____linked_2Dset = require("utility.linked-set")
|
|
8
|
+
local LinkedSet = ____linked_2Dset.LinkedSet
|
|
9
|
+
local ____exception = require("exception")
|
|
10
|
+
local UnsupportedOperationException = ____exception.UnsupportedOperationException
|
|
11
|
+
local function linkedMapNext(state)
|
|
12
|
+
local n = state.n
|
|
13
|
+
state.n = state.t[n]
|
|
14
|
+
return n, state.v[n]
|
|
15
|
+
end
|
|
16
|
+
____exports.LinkedMap = __TS__Class()
|
|
17
|
+
local LinkedMap = ____exports.LinkedMap
|
|
18
|
+
LinkedMap.name = "LinkedMap"
|
|
19
|
+
function LinkedMap.prototype.____constructor(self)
|
|
20
|
+
self.k = __TS__New(LinkedSet)
|
|
21
|
+
self.v = {}
|
|
22
|
+
end
|
|
23
|
+
function LinkedMap.prototype.get(self, key)
|
|
24
|
+
return self.v[key]
|
|
25
|
+
end
|
|
26
|
+
function LinkedMap.prototype.getOrPut(self, key, defaultValue)
|
|
27
|
+
local value = self.v[key]
|
|
28
|
+
if value ~= nil then
|
|
29
|
+
return value
|
|
30
|
+
end
|
|
31
|
+
value = defaultValue()
|
|
32
|
+
self.k:add(key)
|
|
33
|
+
self.v[key] = value
|
|
34
|
+
return value
|
|
35
|
+
end
|
|
36
|
+
function LinkedMap.prototype.put(self, key, value)
|
|
37
|
+
self.k:add(key)
|
|
38
|
+
self.v[key] = value
|
|
39
|
+
end
|
|
40
|
+
function LinkedMap.prototype.remove(self, key)
|
|
41
|
+
if self.k:remove(key) then
|
|
42
|
+
self.v[key] = nil
|
|
43
|
+
return true
|
|
44
|
+
end
|
|
45
|
+
return false
|
|
46
|
+
end
|
|
47
|
+
function LinkedMap.prototype.contains(self, key)
|
|
48
|
+
return self.keys:contains(key)
|
|
49
|
+
end
|
|
50
|
+
function LinkedMap.prototype.__len(self)
|
|
51
|
+
return self.keys.size
|
|
52
|
+
end
|
|
53
|
+
function LinkedMap.prototype.__pairs(self)
|
|
54
|
+
return linkedMapNext, {n = self.k.f, t = self.k.n, v = self.v}, nil
|
|
55
|
+
end
|
|
56
|
+
__TS__SetDescriptor(
|
|
57
|
+
LinkedMap.prototype,
|
|
58
|
+
"keys",
|
|
59
|
+
{get = function(self)
|
|
60
|
+
return self.k
|
|
61
|
+
end},
|
|
62
|
+
true
|
|
63
|
+
)
|
|
64
|
+
__TS__SetDescriptor(
|
|
65
|
+
LinkedMap.prototype,
|
|
66
|
+
"size",
|
|
67
|
+
{get = function(self)
|
|
68
|
+
return self.keys.size
|
|
69
|
+
end},
|
|
70
|
+
true
|
|
71
|
+
)
|
|
72
|
+
local emptyIteratorState = {t = {}, v = {}}
|
|
73
|
+
local EmptyLinkedMap = __TS__Class()
|
|
74
|
+
EmptyLinkedMap.name = "EmptyLinkedMap"
|
|
75
|
+
__TS__ClassExtends(EmptyLinkedMap, ____exports.LinkedMap)
|
|
76
|
+
function EmptyLinkedMap.prototype.getOrPut(self)
|
|
77
|
+
error(
|
|
78
|
+
__TS__New(UnsupportedOperationException),
|
|
79
|
+
0
|
|
80
|
+
)
|
|
81
|
+
end
|
|
82
|
+
function EmptyLinkedMap.prototype.put(self)
|
|
83
|
+
error(
|
|
84
|
+
__TS__New(UnsupportedOperationException),
|
|
85
|
+
0
|
|
86
|
+
)
|
|
87
|
+
end
|
|
88
|
+
function EmptyLinkedMap.prototype.remove(self)
|
|
89
|
+
error(
|
|
90
|
+
__TS__New(UnsupportedOperationException),
|
|
91
|
+
0
|
|
92
|
+
)
|
|
93
|
+
end
|
|
94
|
+
function EmptyLinkedMap.prototype.__len(self)
|
|
95
|
+
return 0
|
|
96
|
+
end
|
|
97
|
+
function EmptyLinkedMap.prototype.__pairs(self)
|
|
98
|
+
return linkedMapNext, emptyIteratorState, nil
|
|
99
|
+
end
|
|
100
|
+
local EMPTY_LINKED_MAP = __TS__New(EmptyLinkedMap)
|
|
101
|
+
____exports.emptyLinkedMap = function()
|
|
102
|
+
return EMPTY_LINKED_MAP
|
|
103
|
+
end
|
|
104
|
+
____exports.mutableLinkedMap = function()
|
|
105
|
+
return __TS__New(____exports.LinkedMap)
|
|
106
|
+
end
|
|
107
|
+
return ____exports
|
package/utility/linked-set.d.ts
CHANGED
|
@@ -14,7 +14,7 @@ export interface ReadonlyLinkedSet<T extends AnyNotNil> extends LuaPairsKeyItera
|
|
|
14
14
|
next(key: T): T | undefined;
|
|
15
15
|
previous(key: T): T | undefined;
|
|
16
16
|
contains(key: AnyNotNil): key is T & OneSidedTypeGuard;
|
|
17
|
-
size: number;
|
|
17
|
+
readonly size: number;
|
|
18
18
|
forEach<Args extends any[]>(action: (value: T, ...args: Args) => void, ...args: Args): void;
|
|
19
19
|
toArray(): T[];
|
|
20
20
|
sumOf(selector: ((value: T) => number) | KeysOfType<T, number>): number;
|
|
@@ -36,9 +36,11 @@ export declare class LinkedSet<T extends AnyNotNil> implements ReadonlyLinkedSet
|
|
|
36
36
|
copyOf(): LinkedSet<T>;
|
|
37
37
|
first(): T | undefined;
|
|
38
38
|
last(): T | undefined;
|
|
39
|
+
pop(): T | undefined;
|
|
39
40
|
next(key: T): T | undefined;
|
|
40
41
|
previous(key: T): T | undefined;
|
|
41
42
|
add(key: T): boolean;
|
|
43
|
+
protected addBefore(value: T, key: T): boolean;
|
|
42
44
|
remove(key: T): boolean;
|
|
43
45
|
contains(key: AnyNotNil): key is T & OneSidedTypeGuard;
|
|
44
46
|
clear(): void;
|
|
@@ -47,6 +49,7 @@ export declare class LinkedSet<T extends AnyNotNil> implements ReadonlyLinkedSet
|
|
|
47
49
|
toArray(): T[];
|
|
48
50
|
sumOf(selector: ((value: T) => number) | KeysOfType<T, number>): number;
|
|
49
51
|
sortBy<R>(selector: ((value: T) => R) | KeysOfType<T, R>): void;
|
|
52
|
+
protected __len(): number;
|
|
50
53
|
protected __pairs(this: LinkedSet<T>): LuaIterator<T | undefined, IteratorState<T>>;
|
|
51
54
|
}
|
|
52
55
|
export declare const emptyLinkedSet: <T extends AnyNotNil>() => ReadonlyLinkedSet<T>;
|
package/utility/linked-set.lua
CHANGED
|
@@ -42,6 +42,23 @@ end
|
|
|
42
42
|
function LinkedSet.prototype.last(self)
|
|
43
43
|
return self.l
|
|
44
44
|
end
|
|
45
|
+
function LinkedSet.prototype.pop(self)
|
|
46
|
+
local f = self.f
|
|
47
|
+
if f == nil then
|
|
48
|
+
return nil
|
|
49
|
+
end
|
|
50
|
+
local n = self.n
|
|
51
|
+
local next = n[f]
|
|
52
|
+
n[f] = nil
|
|
53
|
+
self.f = next
|
|
54
|
+
if next ~= nil then
|
|
55
|
+
self.p[next] = nil
|
|
56
|
+
else
|
|
57
|
+
self.l = nil
|
|
58
|
+
end
|
|
59
|
+
self.s = self.s - 1
|
|
60
|
+
return f
|
|
61
|
+
end
|
|
45
62
|
function LinkedSet.prototype.next(self, key)
|
|
46
63
|
return self.n[key]
|
|
47
64
|
end
|
|
@@ -68,6 +85,23 @@ function LinkedSet.prototype.add(self, key)
|
|
|
68
85
|
end
|
|
69
86
|
return true
|
|
70
87
|
end
|
|
88
|
+
function LinkedSet.prototype.addBefore(self, value, key)
|
|
89
|
+
local n = self.n
|
|
90
|
+
local p = self.p
|
|
91
|
+
local previous = p[value]
|
|
92
|
+
if previous ~= nil then
|
|
93
|
+
n[previous] = key
|
|
94
|
+
p[key] = previous
|
|
95
|
+
elseif value == self.f then
|
|
96
|
+
self.f = key
|
|
97
|
+
else
|
|
98
|
+
return false
|
|
99
|
+
end
|
|
100
|
+
n[key] = value
|
|
101
|
+
p[value] = key
|
|
102
|
+
self.s = self.s + 1
|
|
103
|
+
return true
|
|
104
|
+
end
|
|
71
105
|
function LinkedSet.prototype.remove(self, key)
|
|
72
106
|
local n = self.n
|
|
73
107
|
local next = n[key]
|
|
@@ -154,6 +188,9 @@ function LinkedSet.prototype.sortBy(self, selector)
|
|
|
154
188
|
self.f = array[1]
|
|
155
189
|
self.l = array[s]
|
|
156
190
|
end
|
|
191
|
+
function LinkedSet.prototype.__len(self)
|
|
192
|
+
return self.s
|
|
193
|
+
end
|
|
157
194
|
function LinkedSet.prototype.__pairs(self)
|
|
158
195
|
return linkedSetNext, {t = self.n, n = self.f}, nil
|
|
159
196
|
end
|
|
@@ -165,6 +202,7 @@ __TS__SetDescriptor(
|
|
|
165
202
|
end},
|
|
166
203
|
true
|
|
167
204
|
)
|
|
205
|
+
local emptyIteratorState = {t = {}}
|
|
168
206
|
local EmptyLinkedSet = __TS__Class()
|
|
169
207
|
EmptyLinkedSet.name = "EmptyLinkedSet"
|
|
170
208
|
__TS__ClassExtends(EmptyLinkedSet, ____exports.LinkedSet)
|
|
@@ -174,6 +212,12 @@ function EmptyLinkedSet.prototype.add(self)
|
|
|
174
212
|
0
|
|
175
213
|
)
|
|
176
214
|
end
|
|
215
|
+
function EmptyLinkedSet.prototype.__len(self)
|
|
216
|
+
return 0
|
|
217
|
+
end
|
|
218
|
+
function EmptyLinkedSet.prototype.__pairs(self)
|
|
219
|
+
return linkedSetNext, emptyIteratorState, nil
|
|
220
|
+
end
|
|
177
221
|
local EMPTY_LINKED_SET = __TS__New(EmptyLinkedSet)
|
|
178
222
|
____exports.emptyLinkedSet = function()
|
|
179
223
|
return EMPTY_LINKED_SET
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
/** @noSelfInFile */
|
|
2
|
+
import { ReadonlyNonEmptyArray } from "./types";
|
|
3
|
+
/**
|
|
4
|
+
* A client-local pseudorandom generator that is safe to advance inside a local block.
|
|
5
|
+
*
|
|
6
|
+
* Instances are independent of each other and of the game's synchronous randomness.
|
|
7
|
+
*/
|
|
8
|
+
export declare class AsyncRandom {
|
|
9
|
+
private a;
|
|
10
|
+
private b;
|
|
11
|
+
private c;
|
|
12
|
+
private d;
|
|
13
|
+
/**
|
|
14
|
+
* Creates a generator seeded with the given `seed`,
|
|
15
|
+
* or with client-local entropy if no seed is given.
|
|
16
|
+
*/
|
|
17
|
+
constructor(seed?: number);
|
|
18
|
+
/** Resets the generator to the state defined by the given `seed`. */
|
|
19
|
+
setSeed(seed: number): void;
|
|
20
|
+
/**
|
|
21
|
+
* Folds freshly gathered client-local entropy, optionally together with the given `value`,
|
|
22
|
+
* into the current state.
|
|
23
|
+
*
|
|
24
|
+
* Useful to make streams of different clients diverge even further, e.g. by mixing in values
|
|
25
|
+
* that are local by definition, such as the local player's id or the local mouse position.
|
|
26
|
+
*/
|
|
27
|
+
addEntropy(value?: number | string): void;
|
|
28
|
+
/** Advances the state and returns the next 32-bit word. */
|
|
29
|
+
private next;
|
|
30
|
+
/** Returns a uniformly distributed value in `[0, bound)`, where `bound` is in `[1, 2^32]`. */
|
|
31
|
+
private nextBounded;
|
|
32
|
+
/** Returns the given amount (`0` to `32`) of random bits as a non-negative integer. */
|
|
33
|
+
nextBits(bitCount: number): number;
|
|
34
|
+
/**
|
|
35
|
+
* Returns a uniformly distributed integer, both bounds being inclusive:
|
|
36
|
+
* in `[0, upperBound]` when called with a single bound, in `[lowerBound, upperBound]` otherwise.
|
|
37
|
+
*/
|
|
38
|
+
nextInteger(upperBound?: number): number;
|
|
39
|
+
nextInteger(lowerBound: number, upperBound: number): number;
|
|
40
|
+
/**
|
|
41
|
+
* Returns a uniformly distributed float with 53 bits of precision, the upper bound being
|
|
42
|
+
* exclusive: in `[0, upperBound)` when called with a single bound,
|
|
43
|
+
* in `[lowerBound, upperBound)` otherwise.
|
|
44
|
+
*/
|
|
45
|
+
nextFloat(upperBound?: number): number;
|
|
46
|
+
nextFloat(lowerBound: number, upperBound: number): number;
|
|
47
|
+
/** Returns `true` with the given `probability`, or with a probability of one half by default. */
|
|
48
|
+
nextBoolean(probability?: number): boolean;
|
|
49
|
+
/** Returns a uniformly distributed angle in degrees, in `[0, 360)`. */
|
|
50
|
+
nextAngle(): number;
|
|
51
|
+
/** Returns a uniformly distributed point within `range` of the given center. */
|
|
52
|
+
nextXY(centerX: number, centerY: number, range: number): LuaMultiReturn<[x: number, y: number]>;
|
|
53
|
+
/** Returns a uniformly distributed element of the given `array`. */
|
|
54
|
+
nextElement<T>(array: ReadonlyNonEmptyArray<T>): T;
|
|
55
|
+
nextElement<T>(array: ReadonlyArray<T>): T | undefined;
|
|
56
|
+
/** Returns a uniformly distributed one of the given `elements`. */
|
|
57
|
+
nextOf<T>(element: T, ...elements: T[]): T;
|
|
58
|
+
nextOf<T>(...elements: T[]): T | undefined;
|
|
59
|
+
/** Shuffles the given `array` in place, each permutation being equally likely. */
|
|
60
|
+
shuffle(array: unknown[]): void;
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Folds freshly gathered client-local entropy, optionally together with the given `value`,
|
|
64
|
+
* into the state of the generator backing the `asyncRandom*` functions.
|
|
65
|
+
*/
|
|
66
|
+
export declare const addAsyncRandomEntropy: (value?: number | string) => void;
|
|
67
|
+
/** Returns the given amount (`0` to `32`) of random bits as a non-negative integer. */
|
|
68
|
+
export declare const asyncRandomBits: (bitCount: number) => number;
|
|
69
|
+
/**
|
|
70
|
+
* Returns a uniformly distributed integer, both bounds being inclusive:
|
|
71
|
+
* in `[0, upperBound]` when called with a single bound, in `[lowerBound, upperBound]` otherwise.
|
|
72
|
+
*/
|
|
73
|
+
export declare const asyncRandomInteger: {
|
|
74
|
+
(upperBound?: number): number;
|
|
75
|
+
(lowerBound: number, upperBound: number): number;
|
|
76
|
+
};
|
|
77
|
+
/**
|
|
78
|
+
* Returns a uniformly distributed float with 53 bits of precision, the upper bound being exclusive:
|
|
79
|
+
* in `[0, upperBound)` when called with a single bound, in `[lowerBound, upperBound)` otherwise.
|
|
80
|
+
*/
|
|
81
|
+
export declare const asyncRandomFloat: {
|
|
82
|
+
(upperBound?: number): number;
|
|
83
|
+
(lowerBound: number, upperBound: number): number;
|
|
84
|
+
};
|
|
85
|
+
/** Returns `true` with the given `probability`, or with a probability of one half by default. */
|
|
86
|
+
export declare const asyncRandomBoolean: (probability?: number) => boolean;
|
|
87
|
+
/** Returns a uniformly distributed angle in degrees, in `[0, 360)`. */
|
|
88
|
+
export declare const asyncRandomAngle: () => number;
|
|
89
|
+
/** Returns a uniformly distributed point within `range` of the given center. */
|
|
90
|
+
export declare const asyncRandomXY: (centerX: number, centerY: number, range: number) => LuaMultiReturn<[x: number, y: number]>;
|
|
91
|
+
/** Returns a uniformly distributed element of the given `array`. */
|
|
92
|
+
export declare const asyncRandomElement: {
|
|
93
|
+
<T>(array: ReadonlyNonEmptyArray<T>): T;
|
|
94
|
+
<T>(array: ReadonlyArray<T>): T | undefined;
|
|
95
|
+
};
|
|
96
|
+
/** Returns a uniformly distributed one of the given `elements`. */
|
|
97
|
+
export declare const asyncRandom: {
|
|
98
|
+
<T>(element: T, ...elements: T[]): T;
|
|
99
|
+
<T>(...elements: T[]): T | undefined;
|
|
100
|
+
};
|
|
101
|
+
/** Shuffles the given `array` in place, each permutation being equally likely. */
|
|
102
|
+
export declare const asyncShuffle: (array: unknown[]) => void;
|