warscript 0.0.1-dev.404878c
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/LICENSE +23 -0
- package/binaryreader.d.ts +20 -0
- package/binaryreader.lua +50 -0
- package/binarywriter.d.ts +21 -0
- package/binarywriter.lua +90 -0
- package/core/dummy.d.ts +22 -0
- package/core/dummy.lua +133 -0
- package/core/game.d.ts +3 -0
- package/core/game.lua +24 -0
- package/core/mapbounds.d.ts +8 -0
- package/core/mapbounds.lua +12 -0
- package/core/thread.d.ts +8 -0
- package/core/thread.lua +40 -0
- package/core/types/ability.d.ts +4 -0
- package/core/types/ability.lua +10 -0
- package/core/types/async.d.ts +3 -0
- package/core/types/async.lua +2 -0
- package/core/types/camera.d.ts +4 -0
- package/core/types/camera.lua +21 -0
- package/core/types/cameraField.d.ts +15 -0
- package/core/types/cameraField.lua +38 -0
- package/core/types/color.d.ts +16 -0
- package/core/types/color.lua +93 -0
- package/core/types/destructable.d.ts +31 -0
- package/core/types/destructable.lua +245 -0
- package/core/types/effect.d.ts +31 -0
- package/core/types/effect.lua +209 -0
- package/core/types/frame.d.ts +140 -0
- package/core/types/frame.lua +882 -0
- package/core/types/game.d.ts +8 -0
- package/core/types/game.lua +41 -0
- package/core/types/group.d.ts +22 -0
- package/core/types/group.lua +94 -0
- package/core/types/handle.d.ts +48 -0
- package/core/types/handle.lua +169 -0
- package/core/types/image.d.ts +30 -0
- package/core/types/image.lua +121 -0
- package/core/types/internal/ability+cooldownRemaining.d.ts +1 -0
- package/core/types/internal/ability+cooldownRemaining.lua +0 -0
- package/core/types/item.d.ts +4 -0
- package/core/types/item.lua +6 -0
- package/core/types/missile.d.ts +22 -0
- package/core/types/missile.lua +233 -0
- package/core/types/order.d.ts +25 -0
- package/core/types/order.lua +55 -0
- package/core/types/player.d.ts +71 -0
- package/core/types/player.lua +448 -0
- package/core/types/playerCamera.d.ts +32 -0
- package/core/types/playerCamera.lua +162 -0
- package/core/types/playerColor.d.ts +40 -0
- package/core/types/playerColor.lua +203 -0
- package/core/types/rect.d.ts +39 -0
- package/core/types/rect.lua +152 -0
- package/core/types/region.d.ts +14 -0
- package/core/types/region.lua +84 -0
- package/core/types/sound.d.ts +69 -0
- package/core/types/sound.lua +247 -0
- package/core/types/tileCell.d.ts +13 -0
- package/core/types/tileCell.lua +100 -0
- package/core/types/timer.d.ts +36 -0
- package/core/types/timer.lua +230 -0
- package/core/types/timerDialog.d.ts +19 -0
- package/core/types/timerDialog.lua +95 -0
- package/core/types/unit.d.ts +10 -0
- package/core/types/unit.lua +24 -0
- package/core/types/widget.d.ts +5 -0
- package/core/types/widget.lua +2 -0
- package/core/util.d.ts +62 -0
- package/core/util.lua +464 -0
- package/core/vecmath/common.d.ts +18 -0
- package/core/vecmath/common.lua +29 -0
- package/core/vecmath/mat2.d.ts +73 -0
- package/core/vecmath/mat2.lua +261 -0
- package/core/vecmath/vec3.d.ts +47 -0
- package/core/vecmath/vec3.lua +350 -0
- package/core/vecmath/vec4.d.ts +54 -0
- package/core/vecmath/vec4.lua +400 -0
- package/crypto/ecc.d.ts +6 -0
- package/crypto/ecc.lua +1734 -0
- package/decl/index.d.ts +116 -0
- package/decl/native.d.ts +8198 -0
- package/destroyable.d.ts +20 -0
- package/destroyable.lua +31 -0
- package/engine/ability.d.ts +5 -0
- package/engine/ability.lua +7 -0
- package/engine/behavior.d.ts +28 -0
- package/engine/behavior.lua +181 -0
- package/engine/behaviour/ability/apply-buff.d.ts +38 -0
- package/engine/behaviour/ability/apply-buff.lua +126 -0
- package/engine/behaviour/ability/apply-unit-behavior.d.ts +12 -0
- package/engine/behaviour/ability/apply-unit-behavior.lua +36 -0
- package/engine/behaviour/ability/damage.d.ts +25 -0
- package/engine/behaviour/ability/damage.lua +75 -0
- package/engine/behaviour/ability/heal.d.ts +16 -0
- package/engine/behaviour/ability/heal.lua +35 -0
- package/engine/behaviour/ability/instant-impact.d.ts +6 -0
- package/engine/behaviour/ability/instant-impact.lua +25 -0
- package/engine/behaviour/ability.d.ts +40 -0
- package/engine/behaviour/ability.lua +175 -0
- package/engine/behaviour/unit/stun-immunity.d.ts +19 -0
- package/engine/behaviour/unit/stun-immunity.lua +67 -0
- package/engine/behaviour/unit.d.ts +20 -0
- package/engine/behaviour/unit.lua +75 -0
- package/engine/buff.d.ts +221 -0
- package/engine/buff.lua +1093 -0
- package/engine/constants.d.ts +7 -0
- package/engine/constants.lua +8 -0
- package/engine/index.d.ts +5 -0
- package/engine/index.lua +2 -0
- package/engine/internal/ability.d.ts +91 -0
- package/engine/internal/ability.lua +531 -0
- package/engine/internal/item/ability.d.ts +2 -0
- package/engine/internal/item/ability.lua +48 -0
- package/engine/internal/item+owner.d.ts +7 -0
- package/engine/internal/item+owner.lua +22 -0
- package/engine/internal/item.d.ts +86 -0
- package/engine/internal/item.lua +580 -0
- package/engine/internal/mechanics/ability-duration.d.ts +4 -0
- package/engine/internal/mechanics/ability-duration.lua +11 -0
- package/engine/internal/mechanics/area-damage.d.ts +2 -0
- package/engine/internal/mechanics/area-damage.lua +33 -0
- package/engine/internal/misc/dummy-units.d.ts +2 -0
- package/engine/internal/misc/dummy-units.lua +14 -0
- package/engine/internal/object-data/armor-increase.d.ts +2 -0
- package/engine/internal/object-data/armor-increase.lua +19 -0
- package/engine/internal/object-data/attribute-bonus.d.ts +2 -0
- package/engine/internal/object-data/attribute-bonus.lua +15 -0
- package/engine/internal/object-data/auto-attack-damage-increase.d.ts +2 -0
- package/engine/internal/object-data/auto-attack-damage-increase.lua +17 -0
- package/engine/internal/object-data/auto-attack-speed-increase.d.ts +2 -0
- package/engine/internal/object-data/auto-attack-speed-increase.lua +14 -0
- package/engine/internal/object-data/dummy-inventory.d.ts +2 -0
- package/engine/internal/object-data/dummy-inventory.lua +16 -0
- package/engine/internal/object-data/dummy-item.d.ts +2 -0
- package/engine/internal/object-data/dummy-item.lua +10 -0
- package/engine/internal/object-data/ghost-visible.d.ts +2 -0
- package/engine/internal/object-data/ghost-visible.lua +15 -0
- package/engine/internal/object-data/invulnerable.d.ts +2 -0
- package/engine/internal/object-data/invulnerable.lua +11 -0
- package/engine/internal/object-data/movement-speed-increase-factor.d.ts +2 -0
- package/engine/internal/object-data/movement-speed-increase-factor.lua +18 -0
- package/engine/internal/unit/ability.d.ts +143 -0
- package/engine/internal/unit/ability.lua +369 -0
- package/engine/internal/unit/allowed-targets.d.ts +17 -0
- package/engine/internal/unit/allowed-targets.lua +19 -0
- package/engine/internal/unit/band-aids/ancestral-spirit-cannibalize.d.ts +2 -0
- package/engine/internal/unit/band-aids/ancestral-spirit-cannibalize.lua +21 -0
- package/engine/internal/unit/bonus.d.ts +41 -0
- package/engine/internal/unit/bonus.lua +188 -0
- package/engine/internal/unit/buff.d.ts +38 -0
- package/engine/internal/unit/buff.lua +81 -0
- package/engine/internal/unit/expiration-timer.d.ts +22 -0
- package/engine/internal/unit/expiration-timer.lua +44 -0
- package/engine/internal/unit/ghost-counter.d.ts +12 -0
- package/engine/internal/unit/ghost-counter.lua +26 -0
- package/engine/internal/unit/invulnerability-counter.d.ts +12 -0
- package/engine/internal/unit/invulnerability-counter.lua +26 -0
- package/engine/internal/unit/missile.d.ts +42 -0
- package/engine/internal/unit/missile.lua +70 -0
- package/engine/internal/unit/movement-speed.d.ts +18 -0
- package/engine/internal/unit/movement-speed.lua +42 -0
- package/engine/internal/unit/summon-event.d.ts +12 -0
- package/engine/internal/unit/summon-event.lua +50 -0
- package/engine/internal/unit+ability.d.ts +9 -0
- package/engine/internal/unit+ability.lua +59 -0
- package/engine/internal/unit+bonus.d.ts +8 -0
- package/engine/internal/unit+bonus.lua +40 -0
- package/engine/internal/unit+damage.d.ts +69 -0
- package/engine/internal/unit+damage.lua +123 -0
- package/engine/internal/unit+rally.d.ts +10 -0
- package/engine/internal/unit+rally.lua +159 -0
- package/engine/internal/unit+spellSteal.d.ts +7 -0
- package/engine/internal/unit+spellSteal.lua +64 -0
- package/engine/internal/unit+transport.d.ts +12 -0
- package/engine/internal/unit+transport.lua +102 -0
- package/engine/internal/unit-missile-data.d.ts +2 -0
- package/engine/internal/unit-missile-data.lua +107 -0
- package/engine/internal/unit-missile-launch.d.ts +7 -0
- package/engine/internal/unit-missile-launch.lua +32 -0
- package/engine/internal/unit.d.ts +312 -0
- package/engine/internal/unit.lua +2430 -0
- package/engine/internal/utility.d.ts +2 -0
- package/engine/internal/utility.lua +13 -0
- package/engine/lightning.d.ts +51 -0
- package/engine/lightning.lua +303 -0
- package/engine/local-client.d.ts +16 -0
- package/engine/local-client.lua +86 -0
- package/engine/object-data/auxiliary/animation-name.d.ts +14 -0
- package/engine/object-data/auxiliary/animation-name.lua +2 -0
- package/engine/object-data/auxiliary/animation-qualifier.d.ts +53 -0
- package/engine/object-data/auxiliary/animation-qualifier.lua +2 -0
- package/engine/object-data/auxiliary/armor-sound-type.d.ts +8 -0
- package/engine/object-data/auxiliary/armor-sound-type.lua +2 -0
- package/engine/object-data/auxiliary/attachment-preset.d.ts +15 -0
- package/engine/object-data/auxiliary/attachment-preset.lua +29 -0
- package/engine/object-data/auxiliary/attack-type.d.ts +11 -0
- package/engine/object-data/auxiliary/attack-type.lua +2 -0
- package/engine/object-data/auxiliary/buff-polarity.d.ts +6 -0
- package/engine/object-data/auxiliary/buff-polarity.lua +2 -0
- package/engine/object-data/auxiliary/buff-resistance-type.d.ts +6 -0
- package/engine/object-data/auxiliary/buff-resistance-type.lua +2 -0
- package/engine/object-data/auxiliary/combat-classification.d.ts +46 -0
- package/engine/object-data/auxiliary/combat-classification.lua +206 -0
- package/engine/object-data/auxiliary/detection-type.d.ts +7 -0
- package/engine/object-data/auxiliary/detection-type.lua +2 -0
- package/engine/object-data/auxiliary/model-node-name.d.ts +12 -0
- package/engine/object-data/auxiliary/model-node-name.lua +2 -0
- package/engine/object-data/auxiliary/model-node-qualifier.d.ts +21 -0
- package/engine/object-data/auxiliary/model-node-qualifier.lua +2 -0
- package/engine/object-data/auxiliary/movement-type.d.ts +10 -0
- package/engine/object-data/auxiliary/movement-type.lua +2 -0
- package/engine/object-data/auxiliary/race.d.ts +14 -0
- package/engine/object-data/auxiliary/race.lua +2 -0
- package/engine/object-data/auxiliary/sound-preset-name.d.ts +8 -0
- package/engine/object-data/auxiliary/sound-preset-name.lua +2 -0
- package/engine/object-data/auxiliary/sound-set-name.d.ts +35 -0
- package/engine/object-data/auxiliary/sound-set-name.lua +2 -0
- package/engine/object-data/auxiliary/targeting-type.d.ts +8 -0
- package/engine/object-data/auxiliary/targeting-type.lua +2 -0
- package/engine/object-data/auxiliary/tech-tree-dependency.d.ts +16 -0
- package/engine/object-data/auxiliary/tech-tree-dependency.lua +8 -0
- package/engine/object-data/auxiliary/unit-classification.d.ts +19 -0
- package/engine/object-data/auxiliary/unit-classification.lua +50 -0
- package/engine/object-data/auxiliary/weapon-sound-type.d.ts +17 -0
- package/engine/object-data/auxiliary/weapon-sound-type.lua +2 -0
- package/engine/object-data/entry/ability-type/armor-increase.d.ts +8 -0
- package/engine/object-data/entry/ability-type/armor-increase.lua +26 -0
- package/engine/object-data/entry/ability-type/attribute-increase.d.ts +12 -0
- package/engine/object-data/entry/ability-type/attribute-increase.lua +52 -0
- package/engine/object-data/entry/ability-type/auto-attack-damage-increase.d.ts +8 -0
- package/engine/object-data/entry/ability-type/auto-attack-damage-increase.lua +26 -0
- package/engine/object-data/entry/ability-type/auto-attack-heal-reduction-effect.d.ts +12 -0
- package/engine/object-data/entry/ability-type/auto-attack-heal-reduction-effect.lua +52 -0
- package/engine/object-data/entry/ability-type/auto-attack-speed-increase.d.ts +8 -0
- package/engine/object-data/entry/ability-type/auto-attack-speed-increase.lua +26 -0
- package/engine/object-data/entry/ability-type/bash.d.ts +16 -0
- package/engine/object-data/entry/ability-type/bash.lua +78 -0
- package/engine/object-data/entry/ability-type/berserk.d.ts +10 -0
- package/engine/object-data/entry/ability-type/berserk.lua +39 -0
- package/engine/object-data/entry/ability-type/blank-configurable.d.ts +21 -0
- package/engine/object-data/entry/ability-type/blank-configurable.lua +249 -0
- package/engine/object-data/entry/ability-type/blank-passive.d.ts +7 -0
- package/engine/object-data/entry/ability-type/blank-passive.lua +28 -0
- package/engine/object-data/entry/ability-type/blizzard.d.ts +16 -0
- package/engine/object-data/entry/ability-type/blizzard.lua +78 -0
- package/engine/object-data/entry/ability-type/blood-lust.d.ts +12 -0
- package/engine/object-data/entry/ability-type/blood-lust.lua +52 -0
- package/engine/object-data/entry/ability-type/chain-lightning.d.ts +12 -0
- package/engine/object-data/entry/ability-type/chain-lightning.lua +52 -0
- package/engine/object-data/entry/ability-type/channel.d.ts +48 -0
- package/engine/object-data/entry/ability-type/channel.lua +140 -0
- package/engine/object-data/entry/ability-type/charge-gold-and-lumber.d.ts +14 -0
- package/engine/object-data/entry/ability-type/charge-gold-and-lumber.lua +65 -0
- package/engine/object-data/entry/ability-type/cleaving-attack.d.ts +8 -0
- package/engine/object-data/entry/ability-type/cleaving-attack.lua +26 -0
- package/engine/object-data/entry/ability-type/cluster-rockets.d.ts +18 -0
- package/engine/object-data/entry/ability-type/cluster-rockets.lua +91 -0
- package/engine/object-data/entry/ability-type/cripple.d.ts +12 -0
- package/engine/object-data/entry/ability-type/cripple.lua +52 -0
- package/engine/object-data/entry/ability-type/critical-strike.d.ts +18 -0
- package/engine/object-data/entry/ability-type/critical-strike.lua +91 -0
- package/engine/object-data/entry/ability-type/curse.d.ts +8 -0
- package/engine/object-data/entry/ability-type/curse.lua +26 -0
- package/engine/object-data/entry/ability-type/dark-summoning.d.ts +10 -0
- package/engine/object-data/entry/ability-type/dark-summoning.lua +39 -0
- package/engine/object-data/entry/ability-type/death-coil.d.ts +8 -0
- package/engine/object-data/entry/ability-type/death-coil.lua +26 -0
- package/engine/object-data/entry/ability-type/disease-cloud.d.ts +15 -0
- package/engine/object-data/entry/ability-type/disease-cloud.lua +65 -0
- package/engine/object-data/entry/ability-type/divine-shield.d.ts +5 -0
- package/engine/object-data/entry/ability-type/divine-shield.lua +12 -0
- package/engine/object-data/entry/ability-type/endurance-aura.d.ts +10 -0
- package/engine/object-data/entry/ability-type/endurance-aura.lua +39 -0
- package/engine/object-data/entry/ability-type/engineering-upgrade.d.ts +13 -0
- package/engine/object-data/entry/ability-type/engineering-upgrade.lua +88 -0
- package/engine/object-data/entry/ability-type/evasion.d.ts +8 -0
- package/engine/object-data/entry/ability-type/evasion.lua +26 -0
- package/engine/object-data/entry/ability-type/faerie-fire.d.ts +10 -0
- package/engine/object-data/entry/ability-type/faerie-fire.lua +39 -0
- package/engine/object-data/entry/ability-type/far-sight.d.ts +9 -0
- package/engine/object-data/entry/ability-type/far-sight.lua +26 -0
- package/engine/object-data/entry/ability-type/feral-spirit.d.ts +11 -0
- package/engine/object-data/entry/ability-type/feral-spirit.lua +39 -0
- package/engine/object-data/entry/ability-type/frenzy.d.ts +12 -0
- package/engine/object-data/entry/ability-type/frenzy.lua +52 -0
- package/engine/object-data/entry/ability-type/frost-nova.d.ts +12 -0
- package/engine/object-data/entry/ability-type/frost-nova.lua +52 -0
- package/engine/object-data/entry/ability-type/ghost-visible.d.ts +10 -0
- package/engine/object-data/entry/ability-type/ghost-visible.lua +39 -0
- package/engine/object-data/entry/ability-type/gold-mine.d.ts +12 -0
- package/engine/object-data/entry/ability-type/gold-mine.lua +52 -0
- package/engine/object-data/entry/ability-type/heal.d.ts +8 -0
- package/engine/object-data/entry/ability-type/heal.lua +26 -0
- package/engine/object-data/entry/ability-type/healing-salve.d.ts +22 -0
- package/engine/object-data/entry/ability-type/healing-salve.lua +78 -0
- package/engine/object-data/entry/ability-type/healing-spray.d.ts +18 -0
- package/engine/object-data/entry/ability-type/healing-spray.lua +91 -0
- package/engine/object-data/entry/ability-type/healing-wave.d.ts +12 -0
- package/engine/object-data/entry/ability-type/healing-wave.lua +52 -0
- package/engine/object-data/entry/ability-type/holy-light.d.ts +8 -0
- package/engine/object-data/entry/ability-type/holy-light.lua +26 -0
- package/engine/object-data/entry/ability-type/incinerate.d.ts +18 -0
- package/engine/object-data/entry/ability-type/incinerate.lua +91 -0
- package/engine/object-data/entry/ability-type/inner-fire.d.ts +14 -0
- package/engine/object-data/entry/ability-type/inner-fire.lua +65 -0
- package/engine/object-data/entry/ability-type/inventory.d.ts +16 -0
- package/engine/object-data/entry/ability-type/inventory.lua +78 -0
- package/engine/object-data/entry/ability-type/invulnerable.d.ts +5 -0
- package/engine/object-data/entry/ability-type/invulnerable.lua +12 -0
- package/engine/object-data/entry/ability-type/lightning-shield.d.ts +8 -0
- package/engine/object-data/entry/ability-type/lightning-shield.lua +26 -0
- package/engine/object-data/entry/ability-type/movement-speed-increase.d.ts +8 -0
- package/engine/object-data/entry/ability-type/movement-speed-increase.lua +26 -0
- package/engine/object-data/entry/ability-type/permanent-immolation.d.ts +8 -0
- package/engine/object-data/entry/ability-type/permanent-immolation.lua +26 -0
- package/engine/object-data/entry/ability-type/phoenix-morph.d.ts +25 -0
- package/engine/object-data/entry/ability-type/phoenix-morph.lua +130 -0
- package/engine/object-data/entry/ability-type/recall.d.ts +10 -0
- package/engine/object-data/entry/ability-type/recall.lua +39 -0
- package/engine/object-data/entry/ability-type/rejuvenation.d.ts +20 -0
- package/engine/object-data/entry/ability-type/rejuvenation.lua +65 -0
- package/engine/object-data/entry/ability-type/searing-arrows.d.ts +8 -0
- package/engine/object-data/entry/ability-type/searing-arrows.lua +26 -0
- package/engine/object-data/entry/ability-type/shock-wave.d.ts +10 -0
- package/engine/object-data/entry/ability-type/shock-wave.lua +39 -0
- package/engine/object-data/entry/ability-type/slow-poison.d.ts +12 -0
- package/engine/object-data/entry/ability-type/slow-poison.lua +52 -0
- package/engine/object-data/entry/ability-type/slow.d.ts +12 -0
- package/engine/object-data/entry/ability-type/slow.lua +52 -0
- package/engine/object-data/entry/ability-type/spell-damage-reduction.d.ts +10 -0
- package/engine/object-data/entry/ability-type/spell-damage-reduction.lua +39 -0
- package/engine/object-data/entry/ability-type/spiked-carapace.d.ts +12 -0
- package/engine/object-data/entry/ability-type/spiked-carapace.lua +52 -0
- package/engine/object-data/entry/ability-type/spirit-touch.d.ts +14 -0
- package/engine/object-data/entry/ability-type/spirit-touch.lua +65 -0
- package/engine/object-data/entry/ability-type/storm-bolt.d.ts +8 -0
- package/engine/object-data/entry/ability-type/storm-bolt.lua +26 -0
- package/engine/object-data/entry/ability-type/summon-quilbeast.d.ts +11 -0
- package/engine/object-data/entry/ability-type/summon-quilbeast.lua +39 -0
- package/engine/object-data/entry/ability-type/summon-water-elemental.d.ts +11 -0
- package/engine/object-data/entry/ability-type/summon-water-elemental.lua +39 -0
- package/engine/object-data/entry/ability-type.d.ts +148 -0
- package/engine/object-data/entry/ability-type.lua +1058 -0
- package/engine/object-data/entry/buff-type/applicable.d.ts +16 -0
- package/engine/object-data/entry/buff-type/applicable.lua +377 -0
- package/engine/object-data/entry/buff-type/blank.d.ts +8 -0
- package/engine/object-data/entry/buff-type/blank.lua +17 -0
- package/engine/object-data/entry/buff-type.d.ts +64 -0
- package/engine/object-data/entry/buff-type.lua +316 -0
- package/engine/object-data/entry/destructible-type.d.ts +21 -0
- package/engine/object-data/entry/destructible-type.lua +83 -0
- package/engine/object-data/entry/item-type/blank.d.ts +8 -0
- package/engine/object-data/entry/item-type/blank.lua +21 -0
- package/engine/object-data/entry/item-type.d.ts +49 -0
- package/engine/object-data/entry/item-type.lua +259 -0
- package/engine/object-data/entry/lightning-type.d.ts +37 -0
- package/engine/object-data/entry/lightning-type.lua +191 -0
- package/engine/object-data/entry/unit-type/blank.d.ts +6 -0
- package/engine/object-data/entry/unit-type/blank.lua +13 -0
- package/engine/object-data/entry/unit-type.d.ts +218 -0
- package/engine/object-data/entry/unit-type.lua +1306 -0
- package/engine/object-data/entry/upgrade/blank.d.ts +8 -0
- package/engine/object-data/entry/upgrade/blank.lua +22 -0
- package/engine/object-data/entry/upgrade.d.ts +59 -0
- package/engine/object-data/entry/upgrade.lua +238 -0
- package/engine/object-data/entry.d.ts +80 -0
- package/engine/object-data/entry.lua +634 -0
- package/engine/object-data/utility/object-data-entry-id-generator.d.ts +6 -0
- package/engine/object-data/utility/object-data-entry-id-generator.lua +63 -0
- package/engine/object-data/utility/order-type-string-id-factory.d.ts +9 -0
- package/engine/object-data/utility/order-type-string-id-factory.lua +368 -0
- package/engine/object-field/ability.d.ts +115 -0
- package/engine/object-field/ability.lua +471 -0
- package/engine/object-field/unit.d.ts +15 -0
- package/engine/object-field/unit.lua +49 -0
- package/engine/object-field.d.ts +84 -0
- package/engine/object-field.lua +444 -0
- package/engine/random.d.ts +10 -0
- package/engine/random.lua +9 -0
- package/engine/standard/entries/ability-type.d.ts +8 -0
- package/engine/standard/entries/ability-type.lua +8 -0
- package/engine/standard/entries/lightning-type.d.ts +16 -0
- package/engine/standard/entries/lightning-type.lua +16 -0
- package/engine/standard/entries/unit-type.d.ts +63 -0
- package/engine/standard/entries/unit-type.lua +63 -0
- package/engine/standard/entries/upgrade.d.ts +92 -0
- package/engine/standard/entries/upgrade.lua +92 -0
- package/engine/standard/fields/ability.d.ts +737 -0
- package/engine/standard/fields/ability.lua +749 -0
- package/engine/standard/pathing-textures.d.ts +6 -0
- package/engine/standard/pathing-textures.lua +7 -0
- package/engine/text-tag.d.ts +25 -0
- package/engine/text-tag.lua +109 -0
- package/engine/unit.d.ts +20 -0
- package/engine/unit.lua +31 -0
- package/event.d.ts +53 -0
- package/event.lua +269 -0
- package/exception.d.ts +17 -0
- package/exception.lua +53 -0
- package/file.d.ts +4 -0
- package/file.lua +42 -0
- package/global/math.d.ts +21 -0
- package/global/math.lua +72 -0
- package/global/vec2.d.ts +66 -0
- package/global/vec2.lua +159 -0
- package/index.d.ts +8 -0
- package/index.lua +9 -0
- package/lualib_bundle.lua +2629 -0
- package/math/vec2.d.ts +18 -0
- package/math/vec2.lua +42 -0
- package/math.d.ts +39 -0
- package/math.lua +91 -0
- package/net/signal.d.ts +11 -0
- package/net/signal.lua +56 -0
- package/net/socket.d.ts +9 -0
- package/net/socket.lua +26 -0
- package/network.d.ts +31 -0
- package/network.lua +194 -0
- package/objutil/ability.d.ts +710 -0
- package/objutil/ability.lua +3781 -0
- package/objutil/buff.d.ts +110 -0
- package/objutil/buff.lua +769 -0
- package/objutil/dummy.d.ts +2 -0
- package/objutil/dummy.lua +49 -0
- package/objutil/idgen.d.ts +9 -0
- package/objutil/idgen.lua +92 -0
- package/objutil/item.d.ts +38 -0
- package/objutil/item.lua +254 -0
- package/objutil/object.d.ts +43 -0
- package/objutil/object.lua +213 -0
- package/objutil/unit.d.ts +134 -0
- package/objutil/unit.lua +913 -0
- package/objutil/upgrade.d.ts +22 -0
- package/objutil/upgrade.lua +127 -0
- package/operation.d.ts +35 -0
- package/operation.lua +179 -0
- package/package.json +47 -0
- package/patch-lualib.d.ts +2 -0
- package/patch-lualib.lua +67 -0
- package/patch-natives.d.ts +11 -0
- package/patch-natives.lua +14 -0
- package/string.d.ts +106 -0
- package/string.lua +34 -0
- package/time/dayOfWeek.d.ts +97 -0
- package/time/dayOfWeek.lua +53 -0
- package/time/localDate.d.ts +145 -0
- package/time/localDate.lua +236 -0
- package/time/localDateTime.d.ts +133 -0
- package/time/localDateTime.lua +154 -0
- package/time/localTime.d.ts +87 -0
- package/time/localTime.lua +91 -0
- package/time/month.d.ts +146 -0
- package/time/month.lua +129 -0
- package/time/year.d.ts +117 -0
- package/time/year.lua +81 -0
- package/types.d.ts +13 -0
- package/types.lua +0 -0
- package/util/objectPool.d.ts +6 -0
- package/util/objectPool.lua +28 -0
- package/util/stream.d.ts +29 -0
- package/util/stream.lua +453 -0
- package/util/stringBuilder.d.ts +8 -0
- package/util/stringBuilder.lua +25 -0
- package/utility/arrays.d.ts +57 -0
- package/utility/arrays.lua +369 -0
- package/utility/base64.d.ts +23 -0
- package/utility/base64.lua +177 -0
- package/utility/bit-set.d.ts +18 -0
- package/utility/bit-set.lua +12 -0
- package/utility/functions.d.ts +5 -0
- package/utility/functions.lua +90 -0
- package/utility/json.d.ts +2 -0
- package/utility/json.lua +400 -0
- package/utility/linked-set.d.ts +49 -0
- package/utility/linked-set.lua +181 -0
- package/utility/lua-maps.d.ts +6 -0
- package/utility/lua-maps.lua +25 -0
- package/utility/lua-sets.d.ts +6 -0
- package/utility/lua-sets.lua +37 -0
- package/utility/lzw.d.ts +2 -0
- package/utility/lzw.lua +161 -0
- package/utility/observable-array.d.ts +17 -0
- package/utility/observable-array.lua +30 -0
- package/utility/preconditions.d.ts +23 -0
- package/utility/preconditions.lua +58 -0
- package/utility/records.d.ts +3 -0
- package/utility/records.lua +9 -0
- package/utility/reflection.d.ts +4 -0
- package/utility/reflection.lua +31 -0
- package/utility/strings.d.ts +2 -0
- package/utility/strings.lua +44 -0
- package/utility/types.d.ts +39 -0
- package/utility/types.lua +2 -0
package/math/vec2.d.ts
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/// <reference types="@typescript-to-lua/language-extensions" />
|
|
2
|
+
/** @noSelfInFile */
|
|
3
|
+
/** Gets the height of the terrain at the position specified by the vector. */
|
|
4
|
+
export declare const getTerrainZ: (x: number, y: number) => number;
|
|
5
|
+
/** Returns the unsigned angle in degrees between from and to. */
|
|
6
|
+
export declare const angleBetweenPoints: (x1: number, y1: number, x2: number, y2: number) => number;
|
|
7
|
+
/** Returns the distance between a and b. */
|
|
8
|
+
export declare const distance: (x1: number, y1: number, x2: number, y2: number) => number;
|
|
9
|
+
/** Moves a point current towards target. */
|
|
10
|
+
export declare const moveTowards: (x1: number, y1: number, x2: number, y2: number, distance: number) => LuaMultiReturn<[
|
|
11
|
+
number,
|
|
12
|
+
number
|
|
13
|
+
]>;
|
|
14
|
+
/** Gets a polar offset from this vector. Angle should be specified in degrees. */
|
|
15
|
+
export declare const polarOffset: (x: number, y: number, angle: number, distance: number) => LuaMultiReturn<[
|
|
16
|
+
number,
|
|
17
|
+
number
|
|
18
|
+
]>;
|
package/math/vec2.lua
ADDED
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
local ____exports = {}
|
|
2
|
+
local atan = math.atan
|
|
3
|
+
local cos = math.cos
|
|
4
|
+
local deg = math.deg
|
|
5
|
+
local rad = math.rad
|
|
6
|
+
local sin = math.sin
|
|
7
|
+
local sqrt = math.sqrt
|
|
8
|
+
local getLocationZ = _G.GetLocationZ
|
|
9
|
+
local moveLocation = _G.MoveLocation
|
|
10
|
+
local location = _G.Location(0, 0)
|
|
11
|
+
--- Gets the height of the terrain at the position specified by the vector.
|
|
12
|
+
____exports.getTerrainZ = function(x, y)
|
|
13
|
+
moveLocation(location, x, y)
|
|
14
|
+
return getLocationZ(location)
|
|
15
|
+
end
|
|
16
|
+
--- Returns the unsigned angle in degrees between from and to.
|
|
17
|
+
____exports.angleBetweenPoints = function(x1, y1, x2, y2)
|
|
18
|
+
return deg(atan(y2 - y1, x2 - x1))
|
|
19
|
+
end
|
|
20
|
+
--- Returns the distance between a and b.
|
|
21
|
+
____exports.distance = function(x1, y1, x2, y2)
|
|
22
|
+
local dx = x2 - x1
|
|
23
|
+
local dy = y2 - y1
|
|
24
|
+
return sqrt(dx * dx + dy * dy)
|
|
25
|
+
end
|
|
26
|
+
--- Moves a point current towards target.
|
|
27
|
+
____exports.moveTowards = function(x1, y1, x2, y2, distance)
|
|
28
|
+
local dx = x2 - x1
|
|
29
|
+
local dy = y2 - y1
|
|
30
|
+
local d = sqrt(dx * dx + dy * dy)
|
|
31
|
+
if d ~= 0 then
|
|
32
|
+
local ratio = distance / d
|
|
33
|
+
return x1 + dx * ratio, y1 + dy * ratio
|
|
34
|
+
end
|
|
35
|
+
return x1 + distance, y1
|
|
36
|
+
end
|
|
37
|
+
--- Gets a polar offset from this vector. Angle should be specified in degrees.
|
|
38
|
+
____exports.polarOffset = function(x, y, angle, distance)
|
|
39
|
+
angle = rad(angle)
|
|
40
|
+
return x + cos(angle) * distance, y + sin(angle) * distance
|
|
41
|
+
end
|
|
42
|
+
return ____exports
|
package/math.d.ts
ADDED
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/// <reference types="lua-types/5.3" />
|
|
2
|
+
/// <reference types="lua-types/5.3" />
|
|
3
|
+
/** @noSelfInFile */
|
|
4
|
+
export declare const MINIMUM_POSITIVE_NORMALIZED_FLOAT: number;
|
|
5
|
+
export declare const MINIMUM_POSITIVE_FLOAT: number;
|
|
6
|
+
export declare const MAXIMUM_INTEGER = 2147483647;
|
|
7
|
+
export declare const MINIMUM_INTEGER = -2147483648;
|
|
8
|
+
export declare const POSITIVE_INFINITY: number;
|
|
9
|
+
export declare const NEGATIVE_INFINITY: number;
|
|
10
|
+
export declare const E: number;
|
|
11
|
+
export declare const LN10: number;
|
|
12
|
+
export declare const LN2: number;
|
|
13
|
+
export declare const LOG2E: number;
|
|
14
|
+
export declare const LOG10E: number;
|
|
15
|
+
export declare const PI: number;
|
|
16
|
+
export declare const SQRT1_2: number;
|
|
17
|
+
export declare const SQRT2: number;
|
|
18
|
+
export declare const ceil: typeof math.ceil;
|
|
19
|
+
/** Clamps the value to fit between min and max. */
|
|
20
|
+
export declare const clamp: (value: number, min: number, max: number) => number;
|
|
21
|
+
export declare const abs: typeof math.abs;
|
|
22
|
+
export declare const cos: typeof math.cos;
|
|
23
|
+
export declare const exp: typeof math.exp;
|
|
24
|
+
export declare const floor: typeof math.floor;
|
|
25
|
+
export declare const log: typeof math.log;
|
|
26
|
+
export declare const max: typeof math.max;
|
|
27
|
+
export declare const min: typeof math.min;
|
|
28
|
+
/** Returns the signum function of the argument;
|
|
29
|
+
* zero if the argument is zero,
|
|
30
|
+
* 1.0 if the argument is greater than zero,
|
|
31
|
+
* -1.0 if the argument is less than zero. */
|
|
32
|
+
export declare const signum: (value: number) => number;
|
|
33
|
+
/** Returns the trigonometric sine of an angle (assumed to be in radians). */
|
|
34
|
+
export declare const sin: typeof math.sin;
|
|
35
|
+
/** Returns the positive square root of a value. */
|
|
36
|
+
export declare const sqrt: typeof math.sqrt;
|
|
37
|
+
export declare const nextUp: (value: number) => number;
|
|
38
|
+
export declare const nextDown: (value: number) => number;
|
|
39
|
+
export declare const nextAfter: (start: number, direction: number) => number;
|
package/math.lua
ADDED
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
local ____exports = {}
|
|
2
|
+
local pack = string.pack
|
|
3
|
+
local ____unpack = string.unpack
|
|
4
|
+
local function intBitsToFloat(intBits)
|
|
5
|
+
return (____unpack(
|
|
6
|
+
"<f",
|
|
7
|
+
pack("<i4", intBits)
|
|
8
|
+
))
|
|
9
|
+
end
|
|
10
|
+
local function floatToIntBits(float)
|
|
11
|
+
return (____unpack(
|
|
12
|
+
"<i4",
|
|
13
|
+
pack("<f", float)
|
|
14
|
+
))
|
|
15
|
+
end
|
|
16
|
+
____exports.MINIMUM_POSITIVE_NORMALIZED_FLOAT = intBitsToFloat(8388608)
|
|
17
|
+
____exports.MINIMUM_POSITIVE_FLOAT = intBitsToFloat(1)
|
|
18
|
+
____exports.MAXIMUM_INTEGER = 2147483647
|
|
19
|
+
____exports.MINIMUM_INTEGER = -2147483648
|
|
20
|
+
____exports.POSITIVE_INFINITY = math.huge
|
|
21
|
+
____exports.NEGATIVE_INFINITY = -math.huge
|
|
22
|
+
____exports.E = 2.718281828459045
|
|
23
|
+
____exports.LN10 = 2.302585092994046
|
|
24
|
+
____exports.LN2 = 0.6931471805599453
|
|
25
|
+
____exports.LOG2E = 1.4426950408889634
|
|
26
|
+
____exports.LOG10E = 0.4342944819032518
|
|
27
|
+
____exports.PI = math.pi
|
|
28
|
+
____exports.SQRT1_2 = 0.7071067811865476
|
|
29
|
+
____exports.SQRT2 = 1.4142135623730951
|
|
30
|
+
____exports.ceil = math.ceil
|
|
31
|
+
--- Clamps the value to fit between min and max.
|
|
32
|
+
____exports.clamp = function(value, min, max)
|
|
33
|
+
return value < min and min or (value > max and max or value)
|
|
34
|
+
end
|
|
35
|
+
____exports.abs = math.abs
|
|
36
|
+
____exports.cos = math.cos
|
|
37
|
+
____exports.exp = math.exp
|
|
38
|
+
____exports.floor = math.floor
|
|
39
|
+
____exports.log = math.log
|
|
40
|
+
____exports.max = math.max
|
|
41
|
+
____exports.min = math.min
|
|
42
|
+
--- Returns the signum function of the argument;
|
|
43
|
+
-- zero if the argument is zero,
|
|
44
|
+
-- 1.0 if the argument is greater than zero,
|
|
45
|
+
-- -1.0 if the argument is less than zero.
|
|
46
|
+
____exports.signum = function(value)
|
|
47
|
+
return value == 0 and 0 or (value > 0 and 1 or -1)
|
|
48
|
+
end
|
|
49
|
+
--- Returns the trigonometric sine of an angle (assumed to be in radians).
|
|
50
|
+
____exports.sin = math.sin
|
|
51
|
+
--- Returns the positive square root of a value.
|
|
52
|
+
____exports.sqrt = math.sqrt
|
|
53
|
+
____exports.nextUp = function(value)
|
|
54
|
+
value = value + .0
|
|
55
|
+
if value < ____exports.POSITIVE_INFINITY then
|
|
56
|
+
local transducer = floatToIntBits(value)
|
|
57
|
+
return intBitsToFloat(transducer + (transducer >= 0 and 1 or -1))
|
|
58
|
+
else
|
|
59
|
+
return value
|
|
60
|
+
end
|
|
61
|
+
end
|
|
62
|
+
____exports.nextDown = function(value)
|
|
63
|
+
value = value + .0
|
|
64
|
+
if value ~= value or value == ____exports.NEGATIVE_INFINITY then
|
|
65
|
+
return value
|
|
66
|
+
elseif value == 0 then
|
|
67
|
+
return -____exports.MINIMUM_POSITIVE_FLOAT
|
|
68
|
+
else
|
|
69
|
+
return intBitsToFloat(floatToIntBits(value) + (value > 0 and -1 or 1))
|
|
70
|
+
end
|
|
71
|
+
end
|
|
72
|
+
____exports.nextAfter = function(start, direction)
|
|
73
|
+
start = start + .0
|
|
74
|
+
direction = direction + .0
|
|
75
|
+
if start > direction then
|
|
76
|
+
if start ~= 0 then
|
|
77
|
+
local transducer = floatToIntBits(start)
|
|
78
|
+
return intBitsToFloat(transducer + (transducer > 0 and -1 or 1))
|
|
79
|
+
else
|
|
80
|
+
return -____exports.MINIMUM_POSITIVE_FLOAT
|
|
81
|
+
end
|
|
82
|
+
elseif start < direction then
|
|
83
|
+
local transducer = floatToIntBits(start)
|
|
84
|
+
return intBitsToFloat(transducer + (transducer >= 0 and 1 or -1))
|
|
85
|
+
elseif start == direction then
|
|
86
|
+
return direction
|
|
87
|
+
else
|
|
88
|
+
return start + direction
|
|
89
|
+
end
|
|
90
|
+
end
|
|
91
|
+
return ____exports
|
package/net/signal.d.ts
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/** @noSelfInFile */
|
|
2
|
+
import { Player } from "../core/types/player";
|
|
3
|
+
import { Event } from "../event";
|
|
4
|
+
export declare class Signal {
|
|
5
|
+
private readonly frame;
|
|
6
|
+
private readonly trigger;
|
|
7
|
+
readonly onReceive: Event<[Player]>;
|
|
8
|
+
constructor();
|
|
9
|
+
send(): void;
|
|
10
|
+
destroy(): void;
|
|
11
|
+
}
|
package/net/signal.lua
ADDED
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
local ____lualib = require("lualib_bundle")
|
|
2
|
+
local __TS__Class = ____lualib.__TS__Class
|
|
3
|
+
local __TS__New = ____lualib.__TS__New
|
|
4
|
+
local ____exports = {}
|
|
5
|
+
local ____player = require("core.types.player")
|
|
6
|
+
local Player = ____player.Player
|
|
7
|
+
local ____event = require("event")
|
|
8
|
+
local Event = ____event.Event
|
|
9
|
+
local eventInvoke = Event.invoke
|
|
10
|
+
local condition = Condition
|
|
11
|
+
local createTrigger = CreateTrigger
|
|
12
|
+
local triggerAddCondition = TriggerAddCondition
|
|
13
|
+
local triggerClearConditions = TriggerClearConditions
|
|
14
|
+
local destroyTrigger = DestroyTrigger
|
|
15
|
+
local getTriggerPlayer = GetTriggerPlayer
|
|
16
|
+
local triggerRegisterFrameEvent = BlzTriggerRegisterFrameEvent
|
|
17
|
+
local createFrameByType = BlzCreateFrameByType
|
|
18
|
+
local frameClick = BlzFrameClick
|
|
19
|
+
local destroyFrame = BlzDestroyFrame
|
|
20
|
+
local worldFrame = BlzGetOriginFrame(ORIGIN_FRAME_WORLD_FRAME, 0)
|
|
21
|
+
____exports.Signal = __TS__Class()
|
|
22
|
+
local Signal = ____exports.Signal
|
|
23
|
+
Signal.name = "Signal"
|
|
24
|
+
function Signal.prototype.____constructor(self)
|
|
25
|
+
local frame = createFrameByType(
|
|
26
|
+
"BUTTON",
|
|
27
|
+
"SignalButton",
|
|
28
|
+
worldFrame,
|
|
29
|
+
"",
|
|
30
|
+
0
|
|
31
|
+
)
|
|
32
|
+
local trigger = createTrigger()
|
|
33
|
+
triggerRegisterFrameEvent(trigger, frame, FRAMEEVENT_CONTROL_CLICK)
|
|
34
|
+
local onReceive = __TS__New(Event)
|
|
35
|
+
triggerAddCondition(
|
|
36
|
+
trigger,
|
|
37
|
+
condition(function()
|
|
38
|
+
eventInvoke(
|
|
39
|
+
onReceive,
|
|
40
|
+
Player:of(getTriggerPlayer())
|
|
41
|
+
)
|
|
42
|
+
end)
|
|
43
|
+
)
|
|
44
|
+
self.frame = frame
|
|
45
|
+
self.trigger = trigger
|
|
46
|
+
self.onReceive = onReceive
|
|
47
|
+
end
|
|
48
|
+
function Signal.prototype.send(self)
|
|
49
|
+
frameClick(self.frame)
|
|
50
|
+
end
|
|
51
|
+
function Signal.prototype.destroy(self)
|
|
52
|
+
triggerClearConditions(self.trigger)
|
|
53
|
+
destroyTrigger(self.trigger)
|
|
54
|
+
destroyFrame(self.frame)
|
|
55
|
+
end
|
|
56
|
+
return ____exports
|
package/net/socket.d.ts
ADDED
package/net/socket.lua
ADDED
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
local ____lualib = require("lualib_bundle")
|
|
2
|
+
local __TS__Class = ____lualib.__TS__Class
|
|
3
|
+
local __TS__New = ____lualib.__TS__New
|
|
4
|
+
local ____exports = {}
|
|
5
|
+
local ____event = require("event")
|
|
6
|
+
local Event = ____event.Event
|
|
7
|
+
local ____network = require("network")
|
|
8
|
+
local send = ____network.send
|
|
9
|
+
local onReceive = ____network.onReceive
|
|
10
|
+
local nextId = 0
|
|
11
|
+
____exports.Socket = __TS__Class()
|
|
12
|
+
local Socket = ____exports.Socket
|
|
13
|
+
Socket.name = "Socket"
|
|
14
|
+
function Socket.prototype.____constructor(self)
|
|
15
|
+
local ____tostring_0 = tostring
|
|
16
|
+
nextId = nextId + 1
|
|
17
|
+
self.id = ____tostring_0(nextId)
|
|
18
|
+
self.onMessage = __TS__New(Event)
|
|
19
|
+
onReceive[self.id]:addListener(function(sender, data)
|
|
20
|
+
Event.invoke(self.onMessage, sender, data)
|
|
21
|
+
end)
|
|
22
|
+
end
|
|
23
|
+
function Socket.prototype.send(self, data)
|
|
24
|
+
send(self.id, data)
|
|
25
|
+
end
|
|
26
|
+
return ____exports
|
package/network.d.ts
ADDED
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/** @noSelfInFile */
|
|
2
|
+
import { Event } from "./event";
|
|
3
|
+
import { Player } from "./core/types/player";
|
|
4
|
+
import { Operation, OperationContinue, OperationMonitor } from "./operation";
|
|
5
|
+
export declare const onReceive: {
|
|
6
|
+
[prefix: string]: Event<[Player, string]>;
|
|
7
|
+
} & {
|
|
8
|
+
[x: string]: Event<[Player, string]>;
|
|
9
|
+
};
|
|
10
|
+
export declare function send(id: string, payload: string): void;
|
|
11
|
+
export declare class SyncOperation extends Operation<string> {
|
|
12
|
+
private readonly player;
|
|
13
|
+
private readonly x;
|
|
14
|
+
private readonly p;
|
|
15
|
+
private readonly c;
|
|
16
|
+
private readonly d;
|
|
17
|
+
private readonly l;
|
|
18
|
+
private e?;
|
|
19
|
+
private w?;
|
|
20
|
+
private r?;
|
|
21
|
+
private i;
|
|
22
|
+
private s;
|
|
23
|
+
static get packetsPerRound(): number;
|
|
24
|
+
static set packetsPerRound(value: number);
|
|
25
|
+
constructor(player: Player, data: string);
|
|
26
|
+
protected estimate(): Promise<number>;
|
|
27
|
+
protected work(): string | Promise<OperationContinue | string>;
|
|
28
|
+
protected doCancel(): boolean;
|
|
29
|
+
private static readonly _;
|
|
30
|
+
}
|
|
31
|
+
export declare function synchronize(player: Player, data: string): OperationMonitor<string>;
|
package/network.lua
ADDED
|
@@ -0,0 +1,194 @@
|
|
|
1
|
+
local ____lualib = require("lualib_bundle")
|
|
2
|
+
local __TS__New = ____lualib.__TS__New
|
|
3
|
+
local __TS__Class = ____lualib.__TS__Class
|
|
4
|
+
local __TS__ClassExtends = ____lualib.__TS__ClassExtends
|
|
5
|
+
local __TS__Promise = ____lualib.__TS__Promise
|
|
6
|
+
local __TS__ObjectDefineProperty = ____lualib.__TS__ObjectDefineProperty
|
|
7
|
+
local ____exports = {}
|
|
8
|
+
local ____event = require("event")
|
|
9
|
+
local TriggerEvent = ____event.TriggerEvent
|
|
10
|
+
local ____exception = require("exception")
|
|
11
|
+
local IllegalArgumentException = ____exception.IllegalArgumentException
|
|
12
|
+
local ____player = require("core.types.player")
|
|
13
|
+
local Player = ____player.Player
|
|
14
|
+
local ____operation = require("operation")
|
|
15
|
+
local Operation = ____operation.Operation
|
|
16
|
+
local OperationContinue = ____operation.OperationContinue
|
|
17
|
+
local ____base64 = require("utility.base64")
|
|
18
|
+
local decode = ____base64.decode
|
|
19
|
+
local encode = ____base64.encode
|
|
20
|
+
local getTriggerPlayer = GetTriggerPlayer
|
|
21
|
+
local getTriggerSyncData = BlzGetTriggerSyncData
|
|
22
|
+
local sendSyncData = BlzSendSyncData
|
|
23
|
+
local triggerRegisterPlayerSyncEvent = BlzTriggerRegisterPlayerSyncEvent
|
|
24
|
+
local concat = table.concat
|
|
25
|
+
local pack = string.pack
|
|
26
|
+
local sub = string.sub
|
|
27
|
+
local ____unpack = string.unpack
|
|
28
|
+
____exports.onReceive = setmetatable(
|
|
29
|
+
{},
|
|
30
|
+
{__index = function(self, prefix)
|
|
31
|
+
local event = __TS__New(
|
|
32
|
+
TriggerEvent,
|
|
33
|
+
function(trigger)
|
|
34
|
+
for ____, player in ipairs(Player.all) do
|
|
35
|
+
triggerRegisterPlayerSyncEvent(trigger, player.handle, prefix, false)
|
|
36
|
+
end
|
|
37
|
+
end,
|
|
38
|
+
function() return Player:of(getTriggerPlayer()), getTriggerSyncData() end
|
|
39
|
+
)
|
|
40
|
+
self[prefix] = event
|
|
41
|
+
return event
|
|
42
|
+
end}
|
|
43
|
+
)
|
|
44
|
+
function ____exports.send(id, payload)
|
|
45
|
+
if #payload > 255 then
|
|
46
|
+
error(
|
|
47
|
+
__TS__New(
|
|
48
|
+
IllegalArgumentException,
|
|
49
|
+
"payload length must be <= 256, but was " .. tostring(#payload)
|
|
50
|
+
),
|
|
51
|
+
0
|
|
52
|
+
)
|
|
53
|
+
end
|
|
54
|
+
sendSyncData(id, payload)
|
|
55
|
+
end
|
|
56
|
+
local packetsPerRound = 4
|
|
57
|
+
local syncOperation
|
|
58
|
+
local preparePromiseExecutor
|
|
59
|
+
local syncPromiseExecutor
|
|
60
|
+
local syncOperationNextId = 1
|
|
61
|
+
local syncOperationById = setmetatable({}, {__mode = "v"})
|
|
62
|
+
____exports.SyncOperation = __TS__Class()
|
|
63
|
+
local SyncOperation = ____exports.SyncOperation
|
|
64
|
+
SyncOperation.name = "SyncOperation"
|
|
65
|
+
__TS__ClassExtends(SyncOperation, Operation)
|
|
66
|
+
function SyncOperation.prototype.____constructor(self, player, data)
|
|
67
|
+
Operation.prototype.____constructor(self)
|
|
68
|
+
self.player = player
|
|
69
|
+
self.c = {}
|
|
70
|
+
self.i = 1
|
|
71
|
+
self.s = 0
|
|
72
|
+
if not player.isUser or not player.isPlaying then
|
|
73
|
+
error(
|
|
74
|
+
__TS__New(IllegalArgumentException),
|
|
75
|
+
0
|
|
76
|
+
)
|
|
77
|
+
end
|
|
78
|
+
local ____syncOperationNextId_0 = syncOperationNextId
|
|
79
|
+
syncOperationNextId = ____syncOperationNextId_0 + 1
|
|
80
|
+
local id = ____syncOperationNextId_0
|
|
81
|
+
syncOperationById[id] = self
|
|
82
|
+
self.x = id
|
|
83
|
+
self.p = encode(pack(">i4", id))
|
|
84
|
+
self.d = encode(data)
|
|
85
|
+
self.l = #self.d
|
|
86
|
+
end
|
|
87
|
+
function SyncOperation.prototype.estimate(self)
|
|
88
|
+
if self.player.isLocal then
|
|
89
|
+
sendSyncData(
|
|
90
|
+
"__oh",
|
|
91
|
+
encode(pack(">i4I4", self.x, self.l)) .. sub(self.d, 1, 243)
|
|
92
|
+
)
|
|
93
|
+
self.i = 244
|
|
94
|
+
end
|
|
95
|
+
syncOperation = self
|
|
96
|
+
return __TS__New(__TS__Promise, preparePromiseExecutor)
|
|
97
|
+
end
|
|
98
|
+
function SyncOperation.prototype.work(self)
|
|
99
|
+
if self.progress >= self.maximum then
|
|
100
|
+
return decode(concat(self.c))
|
|
101
|
+
end
|
|
102
|
+
self.s = packetsPerRound
|
|
103
|
+
if self.player.isLocal then
|
|
104
|
+
local i = self.i
|
|
105
|
+
for _ = 1, packetsPerRound do
|
|
106
|
+
sendSyncData(
|
|
107
|
+
"__oc",
|
|
108
|
+
self.p .. sub(self.d, i, i + 246)
|
|
109
|
+
)
|
|
110
|
+
i = i + 247
|
|
111
|
+
end
|
|
112
|
+
self.i = i
|
|
113
|
+
end
|
|
114
|
+
syncOperation = self
|
|
115
|
+
return __TS__New(__TS__Promise, syncPromiseExecutor)
|
|
116
|
+
end
|
|
117
|
+
function SyncOperation.prototype.doCancel(self)
|
|
118
|
+
return false
|
|
119
|
+
end
|
|
120
|
+
__TS__ObjectDefineProperty(
|
|
121
|
+
SyncOperation,
|
|
122
|
+
"packetsPerRound",
|
|
123
|
+
{
|
|
124
|
+
get = function(self)
|
|
125
|
+
return packetsPerRound
|
|
126
|
+
end,
|
|
127
|
+
set = function(self, value)
|
|
128
|
+
if value <= 0 or math.type(value) ~= "integer" then
|
|
129
|
+
error(
|
|
130
|
+
__TS__New(IllegalArgumentException),
|
|
131
|
+
0
|
|
132
|
+
)
|
|
133
|
+
end
|
|
134
|
+
packetsPerRound = value
|
|
135
|
+
end
|
|
136
|
+
}
|
|
137
|
+
)
|
|
138
|
+
SyncOperation._ = (function()
|
|
139
|
+
preparePromiseExecutor = function(____, resolve, reject)
|
|
140
|
+
syncOperation.e = resolve
|
|
141
|
+
syncOperation.r = reject
|
|
142
|
+
end
|
|
143
|
+
syncPromiseExecutor = function(____, resolve, reject)
|
|
144
|
+
syncOperation.w = resolve
|
|
145
|
+
syncOperation.r = reject
|
|
146
|
+
end
|
|
147
|
+
____exports.onReceive.__oh:addListener(function(player, data)
|
|
148
|
+
local id, length = ____unpack(
|
|
149
|
+
">i4I4",
|
|
150
|
+
decode(sub(data, 1, 12))
|
|
151
|
+
)
|
|
152
|
+
local syncOperation = syncOperationById[id]
|
|
153
|
+
if syncOperation then
|
|
154
|
+
local chunk = sub(data, 13)
|
|
155
|
+
local chunks = syncOperation.c
|
|
156
|
+
chunks[#chunks + 1] = chunk
|
|
157
|
+
syncOperation.progress = syncOperation.progress + #chunk
|
|
158
|
+
local resolveEstimate = syncOperation.e
|
|
159
|
+
if resolveEstimate then
|
|
160
|
+
resolveEstimate(nil, length)
|
|
161
|
+
end
|
|
162
|
+
end
|
|
163
|
+
end)
|
|
164
|
+
____exports.onReceive.__oc:addListener(function(player, data)
|
|
165
|
+
local id = ____unpack(
|
|
166
|
+
">i4",
|
|
167
|
+
decode(sub(data, 1, 8))
|
|
168
|
+
)
|
|
169
|
+
local syncOperation = syncOperationById[id]
|
|
170
|
+
if syncOperation then
|
|
171
|
+
local chunk = sub(data, 9)
|
|
172
|
+
local chunks = syncOperation.c
|
|
173
|
+
chunks[#chunks + 1] = chunk
|
|
174
|
+
syncOperation.progress = syncOperation.progress + #chunk
|
|
175
|
+
local packetsLeft = syncOperation.s - 1
|
|
176
|
+
syncOperation.s = packetsLeft
|
|
177
|
+
local resolveWork = syncOperation.w
|
|
178
|
+
if resolveWork then
|
|
179
|
+
if syncOperation.progress >= syncOperation.maximum then
|
|
180
|
+
resolveWork(
|
|
181
|
+
nil,
|
|
182
|
+
decode(concat(chunks))
|
|
183
|
+
)
|
|
184
|
+
elseif packetsLeft == 0 then
|
|
185
|
+
resolveWork(nil, OperationContinue)
|
|
186
|
+
end
|
|
187
|
+
end
|
|
188
|
+
end
|
|
189
|
+
end)
|
|
190
|
+
end)()
|
|
191
|
+
function ____exports.synchronize(player, data)
|
|
192
|
+
return __TS__New(____exports.SyncOperation, player, data):execute()
|
|
193
|
+
end
|
|
194
|
+
return ____exports
|