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
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/** @noSelfInFile */
|
|
2
|
+
export declare const DAMAGE_BONUS_PER_PRIMARY_ATTRIBUTE_POINT = 1;
|
|
3
|
+
export declare const MAX_HEALTH_BONUS_PER_STRENGTH_POINT = 25;
|
|
4
|
+
export declare const HEALTH_REGENERATION_RATE_BONUS_PER_STRENGTH_POINT = 0.05;
|
|
5
|
+
export declare const ARMOR_BONUS_PER_AGILITY_POINT = 0.3;
|
|
6
|
+
export declare const MAX_MANA_BONUS_PER_INTELLIGENCE_POINT = 15;
|
|
7
|
+
export declare const MANA_REGENERATION_RATE_BONUS_PER_INTELLIGENCE_POINT = 0.05;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
local ____exports = {}
|
|
2
|
+
____exports.DAMAGE_BONUS_PER_PRIMARY_ATTRIBUTE_POINT = 1
|
|
3
|
+
____exports.MAX_HEALTH_BONUS_PER_STRENGTH_POINT = 25
|
|
4
|
+
____exports.HEALTH_REGENERATION_RATE_BONUS_PER_STRENGTH_POINT = 0.05
|
|
5
|
+
____exports.ARMOR_BONUS_PER_AGILITY_POINT = 0.3
|
|
6
|
+
____exports.MAX_MANA_BONUS_PER_INTELLIGENCE_POINT = 15
|
|
7
|
+
____exports.MANA_REGENERATION_RATE_BONUS_PER_INTELLIGENCE_POINT = 0.05
|
|
8
|
+
return ____exports
|
package/engine/index.lua
ADDED
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
/** @noSelfInFile */
|
|
2
|
+
import { Handle } from "../../core/types/handle";
|
|
3
|
+
import { Event } from "../../event";
|
|
4
|
+
import type { Item } from "../../core/types/item";
|
|
5
|
+
import type { Unit } from "./unit";
|
|
6
|
+
import type { AbilityTypeId } from "../object-data/entry/ability-type";
|
|
7
|
+
interface Fields<K, V> {
|
|
8
|
+
set(field: K, value: V): boolean;
|
|
9
|
+
get(field: K): V;
|
|
10
|
+
has(field: K): boolean;
|
|
11
|
+
}
|
|
12
|
+
interface AbilityLevel {
|
|
13
|
+
realFields: Fields<jabilityreallevelfield, number>;
|
|
14
|
+
}
|
|
15
|
+
type jabilityfield = jabilityintegerfield | jabilityrealfield | jabilitybooleanfield | jabilitystringfield | jabilityintegerlevelfield | jabilityreallevelfield | jabilitybooleanlevelfield | jabilitystringlevelfield;
|
|
16
|
+
export declare class AbilitySnapshot {
|
|
17
|
+
}
|
|
18
|
+
export declare abstract class Ability extends Handle<jability> {
|
|
19
|
+
readonly typeId: AbilityTypeId;
|
|
20
|
+
protected constructor(handle: jability, typeId: number);
|
|
21
|
+
toString(): string;
|
|
22
|
+
get parentTypeId(): number;
|
|
23
|
+
get orderId(): number;
|
|
24
|
+
abstract readonly owner: Unit | Item;
|
|
25
|
+
getSnapshot(): AbilitySnapshot;
|
|
26
|
+
hasField(field: jabilityfield | number): boolean;
|
|
27
|
+
getField(field: jabilityintegerfield | jabilityrealfield): number;
|
|
28
|
+
getField(field: jabilitybooleanfield): boolean;
|
|
29
|
+
getField(field: jabilitystringfield): string;
|
|
30
|
+
getField(field: jabilityintegerlevelfield | jabilityreallevelfield, level?: number): number;
|
|
31
|
+
getField(field: jabilitybooleanlevelfield, level?: number): boolean;
|
|
32
|
+
getField(field: jabilitystringlevelfield, level?: number): string;
|
|
33
|
+
setField(field: jabilityintegerfield | jabilityrealfield, value: number): boolean;
|
|
34
|
+
setField(field: jabilitybooleanfield, value: boolean): boolean;
|
|
35
|
+
setField(field: jabilitystringfield, value: string): boolean;
|
|
36
|
+
setField(field: jabilityintegerlevelfield, value: number): boolean;
|
|
37
|
+
setField(field: jabilityreallevelfield, value: number): boolean;
|
|
38
|
+
setField(field: jabilitybooleanlevelfield, value: boolean): boolean;
|
|
39
|
+
setField(field: jabilitystringlevelfield, value: string): boolean;
|
|
40
|
+
setField(field: jabilityintegerlevelfield | jabilityreallevelfield, level: number, value: number): boolean;
|
|
41
|
+
setField(field: jabilitybooleanlevelfield, level: number, value: boolean): boolean;
|
|
42
|
+
setField(field: jabilitystringlevelfield, level: number, value: string): boolean;
|
|
43
|
+
get realFields(): Fields<jabilityrealfield, number>;
|
|
44
|
+
get levels(): readonly AbilityLevel[];
|
|
45
|
+
abstract get level(): number;
|
|
46
|
+
static get onCreate(): Event<[Ability]>;
|
|
47
|
+
static get destroyEvent(): Event<[Ability]>;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Can happen in extreme edge cases such as removing an ability from a unit during a chain of ability events.
|
|
51
|
+
*/
|
|
52
|
+
export declare class UnrecognizedAbility extends Ability {
|
|
53
|
+
readonly owner: Unit;
|
|
54
|
+
constructor(typeId: number, owner: Unit);
|
|
55
|
+
get level(): number;
|
|
56
|
+
}
|
|
57
|
+
export declare class UnitAbility extends Ability {
|
|
58
|
+
readonly owner: Unit;
|
|
59
|
+
private readonly u;
|
|
60
|
+
constructor(handle: jability, typeId: number, owner: Unit);
|
|
61
|
+
get level(): number;
|
|
62
|
+
set level(v: number);
|
|
63
|
+
get cooldownRemaining(): number;
|
|
64
|
+
set cooldownRemaining(v: number);
|
|
65
|
+
static get onCreate(): Event<[UnitAbility]>;
|
|
66
|
+
static get onDestroy(): Event<[UnitAbility]>;
|
|
67
|
+
}
|
|
68
|
+
export declare class ItemAbility extends Ability {
|
|
69
|
+
readonly owner: Item;
|
|
70
|
+
constructor(handle: jability, typeId: number, owner: Item);
|
|
71
|
+
getField(field: jabilityintegerfield | jabilityrealfield): number;
|
|
72
|
+
getField(field: jabilitybooleanfield): boolean;
|
|
73
|
+
getField(field: jabilitystringfield): string;
|
|
74
|
+
getField(field: jabilityintegerlevelfield | jabilityreallevelfield, level?: number): number;
|
|
75
|
+
getField(field: jabilitybooleanlevelfield, level?: number): boolean;
|
|
76
|
+
getField(field: jabilitystringlevelfield, level?: number): string;
|
|
77
|
+
setField(field: jabilityintegerfield | jabilityrealfield, value: number): boolean;
|
|
78
|
+
setField(field: jabilitybooleanfield, value: boolean): boolean;
|
|
79
|
+
setField(field: jabilitystringfield, value: string): boolean;
|
|
80
|
+
setField(field: jabilityintegerlevelfield, value: number): boolean;
|
|
81
|
+
setField(field: jabilityreallevelfield, value: number): boolean;
|
|
82
|
+
setField(field: jabilitybooleanlevelfield, value: boolean): boolean;
|
|
83
|
+
setField(field: jabilitystringlevelfield, value: string): boolean;
|
|
84
|
+
setField(field: jabilityintegerlevelfield | jabilityreallevelfield, level: number, value: number): boolean;
|
|
85
|
+
setField(field: jabilitybooleanlevelfield, level: number, value: boolean): boolean;
|
|
86
|
+
setField(field: jabilitystringlevelfield, level: number, value: string): boolean;
|
|
87
|
+
get level(): number;
|
|
88
|
+
static get onCreate(): Event<[ItemAbility]>;
|
|
89
|
+
static get onDestroy(): Event<[ItemAbility]>;
|
|
90
|
+
}
|
|
91
|
+
export {};
|
|
@@ -0,0 +1,531 @@
|
|
|
1
|
+
local ____lualib = require("lualib_bundle")
|
|
2
|
+
local __TS__ArrayMap = ____lualib.__TS__ArrayMap
|
|
3
|
+
local __TS__ArrayFilter = ____lualib.__TS__ArrayFilter
|
|
4
|
+
local __TS__Class = ____lualib.__TS__Class
|
|
5
|
+
local __TS__New = ____lualib.__TS__New
|
|
6
|
+
local __TS__ClassExtends = ____lualib.__TS__ClassExtends
|
|
7
|
+
local __TS__InstanceOf = ____lualib.__TS__InstanceOf
|
|
8
|
+
local __TS__SetDescriptor = ____lualib.__TS__SetDescriptor
|
|
9
|
+
local __TS__ObjectDefineProperty = ____lualib.__TS__ObjectDefineProperty
|
|
10
|
+
local ____exports = {}
|
|
11
|
+
local ____handle = require("core.types.handle")
|
|
12
|
+
local Handle = ____handle.Handle
|
|
13
|
+
local ____ability = require("engine.internal.item.ability")
|
|
14
|
+
local doAbilityAction = ____ability.doAbilityAction
|
|
15
|
+
local getUnitAbilityLevel = GetUnitAbilityLevel
|
|
16
|
+
local setUnitAbilityLevel = SetUnitAbilityLevel
|
|
17
|
+
local setAbilityIntegerField = BlzSetAbilityIntegerField
|
|
18
|
+
local setAbilityRealField = BlzSetAbilityRealField
|
|
19
|
+
local setAbilityBooleanField = BlzSetAbilityBooleanField
|
|
20
|
+
local setAbilityStringField = BlzSetAbilityStringField
|
|
21
|
+
local setAbilityIntegerLevelField = BlzSetAbilityIntegerLevelField
|
|
22
|
+
local setAbilityRealLevelField = BlzSetAbilityRealLevelField
|
|
23
|
+
local setAbilityBooleanLevelField = BlzSetAbilityBooleanLevelField
|
|
24
|
+
local setAbilityStringLevelField = BlzSetAbilityStringLevelField
|
|
25
|
+
local getAbilityIntegerField = BlzGetAbilityIntegerField
|
|
26
|
+
local getAbilityRealField = BlzGetAbilityRealField
|
|
27
|
+
local getAbilityBooleanField = BlzGetAbilityBooleanField
|
|
28
|
+
local getAbilityStringField = BlzGetAbilityStringField
|
|
29
|
+
local getAbilityIntegerLevelField = BlzGetAbilityIntegerLevelField
|
|
30
|
+
local getAbilityRealLevelField = BlzGetAbilityRealLevelField
|
|
31
|
+
local getAbilityBooleanLevelField = BlzGetAbilityBooleanLevelField
|
|
32
|
+
local getAbilityStringLevelField = BlzGetAbilityStringLevelField
|
|
33
|
+
local getUnitAbilityCooldownRemaining = BlzGetUnitAbilityCooldownRemaining
|
|
34
|
+
local startUnitAbilityCooldown = BlzStartUnitAbilityCooldown
|
|
35
|
+
local getHandleId = GetHandleId
|
|
36
|
+
local getItemAbility = BlzGetItemAbility
|
|
37
|
+
local match = string.match
|
|
38
|
+
local ____type = _G.type
|
|
39
|
+
local ____tostring = _G.tostring
|
|
40
|
+
local commonFields = compiletime(function()
|
|
41
|
+
local commonFields = {}
|
|
42
|
+
for ____, id in ipairs({
|
|
43
|
+
"anam",
|
|
44
|
+
"ansf",
|
|
45
|
+
"aher",
|
|
46
|
+
"aite",
|
|
47
|
+
"arac",
|
|
48
|
+
"abpx",
|
|
49
|
+
"abpy",
|
|
50
|
+
"aubx",
|
|
51
|
+
"auby",
|
|
52
|
+
"arpx",
|
|
53
|
+
"arpy",
|
|
54
|
+
"aart",
|
|
55
|
+
"auar",
|
|
56
|
+
"arar",
|
|
57
|
+
"acat",
|
|
58
|
+
"atat",
|
|
59
|
+
"asat",
|
|
60
|
+
"aeat",
|
|
61
|
+
"aaea",
|
|
62
|
+
"alig",
|
|
63
|
+
"amat",
|
|
64
|
+
"amsp",
|
|
65
|
+
"amac",
|
|
66
|
+
"amho",
|
|
67
|
+
"atac",
|
|
68
|
+
"ata0",
|
|
69
|
+
"ata1",
|
|
70
|
+
"ata2",
|
|
71
|
+
"ata3",
|
|
72
|
+
"ata4",
|
|
73
|
+
"ata5",
|
|
74
|
+
"acac",
|
|
75
|
+
"acap",
|
|
76
|
+
"aca1",
|
|
77
|
+
"aspt",
|
|
78
|
+
"aani",
|
|
79
|
+
"atp1",
|
|
80
|
+
"aut1",
|
|
81
|
+
"aub1",
|
|
82
|
+
"auu1",
|
|
83
|
+
"aret",
|
|
84
|
+
"arut",
|
|
85
|
+
"arhk",
|
|
86
|
+
"ahky",
|
|
87
|
+
"auhk",
|
|
88
|
+
"areq",
|
|
89
|
+
"arqa",
|
|
90
|
+
"achd",
|
|
91
|
+
"apri",
|
|
92
|
+
"aord",
|
|
93
|
+
"aoru",
|
|
94
|
+
"aoro",
|
|
95
|
+
"aorf",
|
|
96
|
+
"aefs",
|
|
97
|
+
"aefl",
|
|
98
|
+
"alev",
|
|
99
|
+
"arlv",
|
|
100
|
+
"alsk",
|
|
101
|
+
"atar",
|
|
102
|
+
"acas",
|
|
103
|
+
"adur",
|
|
104
|
+
"ahdu",
|
|
105
|
+
"acdn",
|
|
106
|
+
"amcs",
|
|
107
|
+
"aare",
|
|
108
|
+
"aran",
|
|
109
|
+
"abuf",
|
|
110
|
+
"aeff",
|
|
111
|
+
"ausk"
|
|
112
|
+
}) do
|
|
113
|
+
commonFields[fourCC(id)] = true
|
|
114
|
+
end
|
|
115
|
+
return commonFields
|
|
116
|
+
end)
|
|
117
|
+
local availableFields = postcompile(function()
|
|
118
|
+
local availableFields = {}
|
|
119
|
+
if currentMap then
|
|
120
|
+
for id, ability in pairs(currentMap.objects.ability.all) do
|
|
121
|
+
if ability.parentId then
|
|
122
|
+
availableFields[fourCC(id)] = fourCC(ability.parentId)
|
|
123
|
+
else
|
|
124
|
+
local fields = __TS__ArrayFilter(
|
|
125
|
+
__TS__ArrayMap(
|
|
126
|
+
ability.all,
|
|
127
|
+
function(____, id) return fourCC(id) end
|
|
128
|
+
),
|
|
129
|
+
function(____, id) return not commonFields[id] end
|
|
130
|
+
)
|
|
131
|
+
if #fields ~= 0 then
|
|
132
|
+
local set = {}
|
|
133
|
+
for ____, field in ipairs(fields) do
|
|
134
|
+
set[field] = true
|
|
135
|
+
end
|
|
136
|
+
availableFields[fourCC(id)] = set
|
|
137
|
+
end
|
|
138
|
+
end
|
|
139
|
+
end
|
|
140
|
+
end
|
|
141
|
+
return availableFields
|
|
142
|
+
end)
|
|
143
|
+
local orders = postcompile(function()
|
|
144
|
+
local orders = {}
|
|
145
|
+
if currentMap then
|
|
146
|
+
for id, ability in pairs(currentMap.objects.ability.all) do
|
|
147
|
+
if not ability.parentId then
|
|
148
|
+
orders[fourCC(id)] = ability.aord
|
|
149
|
+
end
|
|
150
|
+
end
|
|
151
|
+
end
|
|
152
|
+
return orders
|
|
153
|
+
end)
|
|
154
|
+
local RealFields = __TS__Class()
|
|
155
|
+
RealFields.name = "RealFields"
|
|
156
|
+
function RealFields.prototype.____constructor(self, handle)
|
|
157
|
+
self.handle = handle
|
|
158
|
+
end
|
|
159
|
+
function RealFields.prototype.set(self, field, value)
|
|
160
|
+
return BlzSetAbilityRealField(self.handle, field, value)
|
|
161
|
+
end
|
|
162
|
+
function RealFields.prototype.get(self, field)
|
|
163
|
+
return BlzGetAbilityRealField(self.handle, field)
|
|
164
|
+
end
|
|
165
|
+
function RealFields.prototype.has(self, field)
|
|
166
|
+
local handle = self.handle
|
|
167
|
+
return BlzSetAbilityRealField(
|
|
168
|
+
handle,
|
|
169
|
+
field,
|
|
170
|
+
BlzGetAbilityRealField(handle, field)
|
|
171
|
+
)
|
|
172
|
+
end
|
|
173
|
+
local RealLevelFields = __TS__Class()
|
|
174
|
+
RealLevelFields.name = "RealLevelFields"
|
|
175
|
+
function RealLevelFields.prototype.____constructor(self, handle, level)
|
|
176
|
+
self.handle = handle
|
|
177
|
+
self.level = level
|
|
178
|
+
end
|
|
179
|
+
function RealLevelFields.prototype.set(self, field, value)
|
|
180
|
+
return BlzSetAbilityRealLevelField(self.handle, field, self.level, value)
|
|
181
|
+
end
|
|
182
|
+
function RealLevelFields.prototype.get(self, field)
|
|
183
|
+
return BlzGetAbilityRealLevelField(self.handle, field, self.level)
|
|
184
|
+
end
|
|
185
|
+
function RealLevelFields.prototype.has(self, field)
|
|
186
|
+
local handle = self.handle
|
|
187
|
+
return BlzSetAbilityRealLevelField(
|
|
188
|
+
handle,
|
|
189
|
+
field,
|
|
190
|
+
0,
|
|
191
|
+
BlzGetAbilityRealLevelField(handle, field, 0)
|
|
192
|
+
)
|
|
193
|
+
end
|
|
194
|
+
local realLevelMetatable = {__index = self}
|
|
195
|
+
local levelDescriptors = {realFields = function(self, handle, level)
|
|
196
|
+
return __TS__New(RealLevelFields, handle, level)
|
|
197
|
+
end}
|
|
198
|
+
local levelMetatable = {__index = function(self, key)
|
|
199
|
+
local fields = levelDescriptors[key](levelDescriptors, self.handle, self.level)
|
|
200
|
+
rawset(self, key, fields)
|
|
201
|
+
return fields
|
|
202
|
+
end}
|
|
203
|
+
local fieldGetters = {
|
|
204
|
+
abilityintegerfield = function(ability, field)
|
|
205
|
+
return getAbilityIntegerField(ability.handle, field)
|
|
206
|
+
end,
|
|
207
|
+
abilityrealfield = function(ability, field)
|
|
208
|
+
return getAbilityRealField(ability.handle, field)
|
|
209
|
+
end,
|
|
210
|
+
abilitybooleanfield = function(ability, field)
|
|
211
|
+
return getAbilityBooleanField(ability.handle, field)
|
|
212
|
+
end,
|
|
213
|
+
abilitystringfield = function(ability, field)
|
|
214
|
+
return getAbilityStringField(ability.handle, field)
|
|
215
|
+
end,
|
|
216
|
+
abilityintegerlevelfield = function(ability, field, level)
|
|
217
|
+
return getAbilityIntegerLevelField(ability.handle, field, level or ability.level)
|
|
218
|
+
end,
|
|
219
|
+
abilityreallevelfield = function(ability, field, level)
|
|
220
|
+
return getAbilityRealLevelField(ability.handle, field, level or ability.level)
|
|
221
|
+
end,
|
|
222
|
+
abilitybooleanlevelfield = function(ability, field, level)
|
|
223
|
+
return getAbilityBooleanLevelField(ability.handle, field, level or ability.level)
|
|
224
|
+
end,
|
|
225
|
+
abilitystringlevelfield = function(ability, field, level)
|
|
226
|
+
return getAbilityStringLevelField(ability.handle, field, level or ability.level)
|
|
227
|
+
end
|
|
228
|
+
}
|
|
229
|
+
local fieldSetters = {
|
|
230
|
+
abilityintegerfield = function(ability, field, value)
|
|
231
|
+
return setAbilityIntegerField(ability.handle, field, value)
|
|
232
|
+
end,
|
|
233
|
+
abilityrealfield = function(ability, field, value)
|
|
234
|
+
return setAbilityRealField(ability.handle, field, value)
|
|
235
|
+
end,
|
|
236
|
+
abilitybooleanfield = function(ability, field, value)
|
|
237
|
+
return setAbilityBooleanField(ability.handle, field, value)
|
|
238
|
+
end,
|
|
239
|
+
abilitystringfield = function(ability, field, value)
|
|
240
|
+
return setAbilityStringField(ability.handle, field, value)
|
|
241
|
+
end,
|
|
242
|
+
abilityintegerlevelfield = function(ability, field, value, level)
|
|
243
|
+
return setAbilityIntegerLevelField(ability.handle, field, level or ability.level, value)
|
|
244
|
+
end,
|
|
245
|
+
abilityreallevelfield = function(ability, field, value, level)
|
|
246
|
+
return setAbilityRealLevelField(ability.handle, field, level or ability.level, value)
|
|
247
|
+
end,
|
|
248
|
+
abilitybooleanlevelfield = function(ability, field, value, level)
|
|
249
|
+
return setAbilityBooleanLevelField(ability.handle, field, level or ability.level, value)
|
|
250
|
+
end,
|
|
251
|
+
abilitystringlevelfield = function(ability, field, value, level)
|
|
252
|
+
return setAbilityStringLevelField(ability.handle, field, level or ability.level, value)
|
|
253
|
+
end
|
|
254
|
+
}
|
|
255
|
+
local levelRefreshFields = {
|
|
256
|
+
[fourCC("Isx1")] = true,
|
|
257
|
+
[fourCC("Idam")] = true,
|
|
258
|
+
[fourCC("Iob5")] = true,
|
|
259
|
+
[fourCC("Neg1")] = true
|
|
260
|
+
}
|
|
261
|
+
local levelsField = ABILITY_IF_LEVELS
|
|
262
|
+
local order2orderId = _G.OrderId
|
|
263
|
+
local orderIdFieldByParentTypeId = {
|
|
264
|
+
[fourCC("ANcl")] = ABILITY_SLF_BASE_ORDER_ID_NCL6,
|
|
265
|
+
[fourCC("Aspb")] = ABILITY_SLF_BASE_ORDER_ID_SPB5,
|
|
266
|
+
[fourCC("AAns")] = ABILITY_SLF_BASE_ORDER_ID_ANS5
|
|
267
|
+
}
|
|
268
|
+
____exports.AbilitySnapshot = __TS__Class()
|
|
269
|
+
local AbilitySnapshot = ____exports.AbilitySnapshot
|
|
270
|
+
AbilitySnapshot.name = "AbilitySnapshot"
|
|
271
|
+
function AbilitySnapshot.prototype.____constructor(self)
|
|
272
|
+
end
|
|
273
|
+
---
|
|
274
|
+
-- @internal For use by internal systems only.
|
|
275
|
+
____exports.getOrderIdByAbilityTypeId = function(abilityTypeId)
|
|
276
|
+
local parentTypeId = availableFields[abilityTypeId]
|
|
277
|
+
return order2orderId(orders[____type(parentTypeId) == "number" and parentTypeId or abilityTypeId] or "")
|
|
278
|
+
end
|
|
279
|
+
____exports.Ability = __TS__Class()
|
|
280
|
+
local Ability = ____exports.Ability
|
|
281
|
+
Ability.name = "Ability"
|
|
282
|
+
__TS__ClassExtends(Ability, Handle)
|
|
283
|
+
function Ability.prototype.____constructor(self, handle, typeId)
|
|
284
|
+
Handle.prototype.____constructor(self, handle)
|
|
285
|
+
self.typeId = typeId
|
|
286
|
+
end
|
|
287
|
+
function Ability.prototype.__tostring(self)
|
|
288
|
+
return (((self.constructor.name .. "$") .. util.id2s(self.typeId)) .. "@") .. tostring(getHandleId(self.handle))
|
|
289
|
+
end
|
|
290
|
+
function Ability.prototype.getSnapshot(self)
|
|
291
|
+
return nil
|
|
292
|
+
end
|
|
293
|
+
function Ability.prototype.hasField(self, field)
|
|
294
|
+
field = ____type(field) == "number" and field or getHandleId(field)
|
|
295
|
+
if commonFields[field] then
|
|
296
|
+
return true
|
|
297
|
+
end
|
|
298
|
+
local id = availableFields[self.typeId]
|
|
299
|
+
if ____type(id) == "number" then
|
|
300
|
+
id = availableFields[id]
|
|
301
|
+
end
|
|
302
|
+
return not not (id and id[field])
|
|
303
|
+
end
|
|
304
|
+
function Ability.prototype.getField(self, field, level)
|
|
305
|
+
local fieldType = match(
|
|
306
|
+
____tostring(field),
|
|
307
|
+
"^(.-):"
|
|
308
|
+
)
|
|
309
|
+
return fieldGetters[fieldType](self, field, level)
|
|
310
|
+
end
|
|
311
|
+
function Ability.prototype.setField(self, field, levelOrValue, value)
|
|
312
|
+
local fieldType = match(
|
|
313
|
+
____tostring(field),
|
|
314
|
+
"^(.-):"
|
|
315
|
+
)
|
|
316
|
+
local ____temp_0
|
|
317
|
+
if value ~= nil then
|
|
318
|
+
____temp_0 = fieldSetters[fieldType](self, field, value, levelOrValue)
|
|
319
|
+
else
|
|
320
|
+
____temp_0 = fieldSetters[fieldType](self, field, levelOrValue)
|
|
321
|
+
end
|
|
322
|
+
local success = ____temp_0
|
|
323
|
+
if levelRefreshFields[getHandleId(field)] and success and __TS__InstanceOf(self, ____exports.UnitAbility) then
|
|
324
|
+
local unit = self.owner.handle
|
|
325
|
+
local ability = self.handle
|
|
326
|
+
local typeId = self.typeId
|
|
327
|
+
local levels = getAbilityIntegerField(ability, levelsField)
|
|
328
|
+
setAbilityIntegerField(ability, levelsField, levels + 1)
|
|
329
|
+
local level = getUnitAbilityLevel(unit, typeId)
|
|
330
|
+
setUnitAbilityLevel(unit, typeId, levels + 1)
|
|
331
|
+
setUnitAbilityLevel(unit, typeId, level)
|
|
332
|
+
setAbilityIntegerField(ability, levelsField, levels)
|
|
333
|
+
end
|
|
334
|
+
return success
|
|
335
|
+
end
|
|
336
|
+
__TS__SetDescriptor(
|
|
337
|
+
Ability.prototype,
|
|
338
|
+
"parentTypeId",
|
|
339
|
+
{get = function(self)
|
|
340
|
+
local parentTypeId = availableFields[self.typeId]
|
|
341
|
+
parentTypeId = ____type(parentTypeId) == "number" and parentTypeId or self.typeId
|
|
342
|
+
rawset(self, "parentTypeId", parentTypeId)
|
|
343
|
+
return parentTypeId
|
|
344
|
+
end},
|
|
345
|
+
true
|
|
346
|
+
)
|
|
347
|
+
__TS__SetDescriptor(
|
|
348
|
+
Ability.prototype,
|
|
349
|
+
"orderId",
|
|
350
|
+
{get = function(self)
|
|
351
|
+
local field = orderIdFieldByParentTypeId[self.parentTypeId]
|
|
352
|
+
return order2orderId(field ~= nil and getAbilityStringLevelField(self.handle, ABILITY_SLF_BASE_ORDER_ID_NCL6, self.level) or (orders[self.parentTypeId] or ""))
|
|
353
|
+
end},
|
|
354
|
+
true
|
|
355
|
+
)
|
|
356
|
+
__TS__SetDescriptor(
|
|
357
|
+
Ability.prototype,
|
|
358
|
+
"realFields",
|
|
359
|
+
{get = function(self)
|
|
360
|
+
local realFields = __TS__New(RealFields, self.handle)
|
|
361
|
+
rawset(self, "realFields", realFields)
|
|
362
|
+
return realFields
|
|
363
|
+
end},
|
|
364
|
+
true
|
|
365
|
+
)
|
|
366
|
+
__TS__SetDescriptor(
|
|
367
|
+
Ability.prototype,
|
|
368
|
+
"levels",
|
|
369
|
+
{get = function(self)
|
|
370
|
+
local handle = self.handle
|
|
371
|
+
local levels = setmetatable(
|
|
372
|
+
{},
|
|
373
|
+
{
|
|
374
|
+
__len = function(self)
|
|
375
|
+
return BlzGetAbilityIntegerField(handle, ABILITY_IF_LEVELS)
|
|
376
|
+
end,
|
|
377
|
+
__index = function(self, i)
|
|
378
|
+
local level = setmetatable({handle = handle, level = i - 1}, levelMetatable)
|
|
379
|
+
self[i] = level
|
|
380
|
+
return level
|
|
381
|
+
end
|
|
382
|
+
}
|
|
383
|
+
)
|
|
384
|
+
rawset(self, "levels", levels)
|
|
385
|
+
return levels
|
|
386
|
+
end},
|
|
387
|
+
true
|
|
388
|
+
)
|
|
389
|
+
__TS__SetDescriptor(
|
|
390
|
+
Ability.prototype,
|
|
391
|
+
"level",
|
|
392
|
+
{get = function(self)
|
|
393
|
+
end},
|
|
394
|
+
true
|
|
395
|
+
)
|
|
396
|
+
__TS__ObjectDefineProperty(
|
|
397
|
+
Ability,
|
|
398
|
+
"onCreate",
|
|
399
|
+
{get = function(self)
|
|
400
|
+
return self.onCreateEvent
|
|
401
|
+
end}
|
|
402
|
+
)
|
|
403
|
+
__TS__ObjectDefineProperty(
|
|
404
|
+
Ability,
|
|
405
|
+
"destroyEvent",
|
|
406
|
+
{get = function(self)
|
|
407
|
+
return self.onDestroyEvent
|
|
408
|
+
end}
|
|
409
|
+
)
|
|
410
|
+
--- Can happen in extreme edge cases such as removing an ability from a unit during a chain of ability events.
|
|
411
|
+
____exports.UnrecognizedAbility = __TS__Class()
|
|
412
|
+
local UnrecognizedAbility = ____exports.UnrecognizedAbility
|
|
413
|
+
UnrecognizedAbility.name = "UnrecognizedAbility"
|
|
414
|
+
__TS__ClassExtends(UnrecognizedAbility, ____exports.Ability)
|
|
415
|
+
function UnrecognizedAbility.prototype.____constructor(self, typeId, owner)
|
|
416
|
+
UnrecognizedAbility.____super.prototype.____constructor(self, nil, typeId)
|
|
417
|
+
self.owner = owner
|
|
418
|
+
end
|
|
419
|
+
__TS__SetDescriptor(
|
|
420
|
+
UnrecognizedAbility.prototype,
|
|
421
|
+
"level",
|
|
422
|
+
{get = function(self)
|
|
423
|
+
return 0
|
|
424
|
+
end},
|
|
425
|
+
true
|
|
426
|
+
)
|
|
427
|
+
____exports.UnitAbility = __TS__Class()
|
|
428
|
+
local UnitAbility = ____exports.UnitAbility
|
|
429
|
+
UnitAbility.name = "UnitAbility"
|
|
430
|
+
__TS__ClassExtends(UnitAbility, ____exports.Ability)
|
|
431
|
+
function UnitAbility.prototype.____constructor(self, handle, typeId, owner)
|
|
432
|
+
UnitAbility.____super.prototype.____constructor(self, handle, typeId)
|
|
433
|
+
self.owner = owner
|
|
434
|
+
self.u = owner.handle
|
|
435
|
+
end
|
|
436
|
+
__TS__SetDescriptor(
|
|
437
|
+
UnitAbility.prototype,
|
|
438
|
+
"level",
|
|
439
|
+
{
|
|
440
|
+
get = function(self)
|
|
441
|
+
return getUnitAbilityLevel(self.u, self.typeId) - 1
|
|
442
|
+
end,
|
|
443
|
+
set = function(self, v)
|
|
444
|
+
setUnitAbilityLevel(self.u, self.typeId, v + 1)
|
|
445
|
+
end
|
|
446
|
+
},
|
|
447
|
+
true
|
|
448
|
+
)
|
|
449
|
+
__TS__SetDescriptor(
|
|
450
|
+
UnitAbility.prototype,
|
|
451
|
+
"cooldownRemaining",
|
|
452
|
+
{
|
|
453
|
+
get = function(self)
|
|
454
|
+
return getUnitAbilityCooldownRemaining(self.u, self.typeId)
|
|
455
|
+
end,
|
|
456
|
+
set = function(self, v)
|
|
457
|
+
startUnitAbilityCooldown(self.u, self.typeId, v)
|
|
458
|
+
end
|
|
459
|
+
},
|
|
460
|
+
true
|
|
461
|
+
)
|
|
462
|
+
__TS__ObjectDefineProperty(
|
|
463
|
+
UnitAbility,
|
|
464
|
+
"onCreate",
|
|
465
|
+
{get = function(self)
|
|
466
|
+
return self.onCreateEvent
|
|
467
|
+
end}
|
|
468
|
+
)
|
|
469
|
+
__TS__ObjectDefineProperty(
|
|
470
|
+
UnitAbility,
|
|
471
|
+
"onDestroy",
|
|
472
|
+
{get = function(self)
|
|
473
|
+
return self.onDestroyEvent
|
|
474
|
+
end}
|
|
475
|
+
)
|
|
476
|
+
local function getAbilityField(_, ability, field, level)
|
|
477
|
+
return ____exports.Ability.prototype.getField(ability, field, level)
|
|
478
|
+
end
|
|
479
|
+
local function setAbilityField(_, ability, field, levelOrValue, value)
|
|
480
|
+
return ____exports.Ability.prototype.setField(ability, field, levelOrValue, value)
|
|
481
|
+
end
|
|
482
|
+
____exports.ItemAbility = __TS__Class()
|
|
483
|
+
local ItemAbility = ____exports.ItemAbility
|
|
484
|
+
ItemAbility.name = "ItemAbility"
|
|
485
|
+
__TS__ClassExtends(ItemAbility, ____exports.Ability)
|
|
486
|
+
function ItemAbility.prototype.____constructor(self, handle, typeId, owner)
|
|
487
|
+
ItemAbility.____super.prototype.____constructor(self, handle, typeId)
|
|
488
|
+
self.owner = owner
|
|
489
|
+
end
|
|
490
|
+
function ItemAbility.prototype.getField(self, field, level)
|
|
491
|
+
return doAbilityAction(
|
|
492
|
+
self.owner.handle,
|
|
493
|
+
getAbilityField,
|
|
494
|
+
self,
|
|
495
|
+
field,
|
|
496
|
+
level
|
|
497
|
+
)
|
|
498
|
+
end
|
|
499
|
+
function ItemAbility.prototype.setField(self, field, levelOrValue, value)
|
|
500
|
+
return doAbilityAction(
|
|
501
|
+
self.owner.handle,
|
|
502
|
+
setAbilityField,
|
|
503
|
+
self,
|
|
504
|
+
field,
|
|
505
|
+
levelOrValue,
|
|
506
|
+
value
|
|
507
|
+
)
|
|
508
|
+
end
|
|
509
|
+
__TS__SetDescriptor(
|
|
510
|
+
ItemAbility.prototype,
|
|
511
|
+
"level",
|
|
512
|
+
{get = function(self)
|
|
513
|
+
return 0
|
|
514
|
+
end},
|
|
515
|
+
true
|
|
516
|
+
)
|
|
517
|
+
__TS__ObjectDefineProperty(
|
|
518
|
+
ItemAbility,
|
|
519
|
+
"onCreate",
|
|
520
|
+
{get = function(self)
|
|
521
|
+
return self.onCreateEvent
|
|
522
|
+
end}
|
|
523
|
+
)
|
|
524
|
+
__TS__ObjectDefineProperty(
|
|
525
|
+
ItemAbility,
|
|
526
|
+
"onDestroy",
|
|
527
|
+
{get = function(self)
|
|
528
|
+
return self.onDestroyEvent
|
|
529
|
+
end}
|
|
530
|
+
)
|
|
531
|
+
return ____exports
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
local ____exports = {}
|
|
2
|
+
local ____player = require("core.types.player")
|
|
3
|
+
local Player = ____player.Player
|
|
4
|
+
local ____dummy = require("objutil.dummy")
|
|
5
|
+
local dummyUnitId = ____dummy.dummyUnitId
|
|
6
|
+
local isItemOwned = IsItemOwned
|
|
7
|
+
local isItemPowerup = IsItemPowerup
|
|
8
|
+
local getItemX = GetItemX
|
|
9
|
+
local getItemY = GetItemY
|
|
10
|
+
local setItemBooleanField = BlzSetItemBooleanField
|
|
11
|
+
local setItemPosition = SetItemPosition
|
|
12
|
+
local unitAddItem = UnitAddItem
|
|
13
|
+
local unitRemoveItem = UnitRemoveItem
|
|
14
|
+
local dummy = assert(CreateUnit(
|
|
15
|
+
Player.neutralVictim.handle,
|
|
16
|
+
dummyUnitId,
|
|
17
|
+
0,
|
|
18
|
+
0,
|
|
19
|
+
270
|
|
20
|
+
))
|
|
21
|
+
ShowUnit(dummy, false)
|
|
22
|
+
---
|
|
23
|
+
-- @internal For use by internal systems only.
|
|
24
|
+
____exports.doAbilityAction = function(handle, action, ...)
|
|
25
|
+
local isOwned = isItemOwned(handle)
|
|
26
|
+
local isPowerup
|
|
27
|
+
local x
|
|
28
|
+
local y
|
|
29
|
+
if not isOwned then
|
|
30
|
+
if isItemPowerup(handle) then
|
|
31
|
+
setItemBooleanField(handle, ITEM_BF_USE_AUTOMATICALLY_WHEN_ACQUIRED, false)
|
|
32
|
+
isPowerup = true
|
|
33
|
+
end
|
|
34
|
+
x = getItemX(handle)
|
|
35
|
+
y = getItemY(handle)
|
|
36
|
+
unitAddItem(dummy, handle)
|
|
37
|
+
end
|
|
38
|
+
local result = action(handle, ...)
|
|
39
|
+
if not isOwned then
|
|
40
|
+
unitRemoveItem(dummy, handle)
|
|
41
|
+
setItemPosition(handle, x, y)
|
|
42
|
+
if isPowerup then
|
|
43
|
+
setItemBooleanField(handle, ITEM_BF_USE_AUTOMATICALLY_WHEN_ACQUIRED, true)
|
|
44
|
+
end
|
|
45
|
+
end
|
|
46
|
+
return result
|
|
47
|
+
end
|
|
48
|
+
return ____exports
|