warscript 0.0.1-dev.c362181 → 0.0.1-dev.c47d565
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/attributes.d.ts +6 -0
- package/attributes.lua +17 -1
- package/core/dummy.lua +4 -2
- package/core/types/effect.d.ts +12 -4
- package/core/types/effect.lua +67 -104
- package/core/types/frame.d.ts +16 -2
- package/core/types/frame.lua +141 -77
- package/core/types/handle.lua +9 -9
- package/core/types/item.d.ts +1 -0
- package/core/types/item.lua +1 -0
- package/core/types/player.d.ts +18 -1
- package/core/types/player.lua +76 -26
- package/core/types/playerCamera.d.ts +2 -0
- package/core/types/playerCamera.lua +123 -5
- package/core/types/playerColor.lua +4 -3
- package/core/types/sound.d.ts +1 -1
- package/core/types/sound.lua +19 -9
- package/core/types/tileCell.d.ts +18 -3
- package/core/types/tileCell.lua +108 -0
- package/core/types/timer.d.ts +9 -8
- package/core/types/timer.lua +45 -23
- package/core/types/unit.d.ts +5 -0
- package/core/types/unit.lua +5 -0
- package/core/util.d.ts +3 -1
- package/core/util.lua +109 -3
- package/decl/native.d.ts +1718 -964
- package/destroyable.d.ts +1 -0
- package/destroyable.lua +9 -0
- package/engine/ability-type-extended-tooltip.d.ts +8 -0
- package/engine/ability-type-extended-tooltip.lua +44 -0
- package/engine/behavior.d.ts +14 -1
- package/engine/behavior.lua +230 -70
- package/engine/behaviour/ability/apply-buff.lua +5 -5
- package/engine/behaviour/ability/apply-unit-behavior.lua +5 -0
- package/engine/behaviour/ability/damage.d.ts +10 -3
- package/engine/behaviour/ability/damage.lua +41 -49
- package/engine/behaviour/ability/emulate-impact.d.ts +1 -1
- package/engine/behaviour/ability/emulate-impact.lua +23 -7
- package/engine/behaviour/ability/on-command-impact.d.ts +1 -0
- package/engine/behaviour/ability/on-command-impact.lua +1 -0
- package/engine/behaviour/ability/remove-buffs.d.ts +9 -0
- package/engine/behaviour/ability/remove-buffs.lua +21 -0
- package/engine/behaviour/ability/restore-mana.d.ts +1 -1
- package/engine/behaviour/ability/restore-mana.lua +6 -6
- package/engine/behaviour/ability.d.ts +16 -6
- package/engine/behaviour/ability.lua +69 -21
- package/engine/behaviour/unit/stun-immunity.d.ts +12 -6
- package/engine/behaviour/unit/stun-immunity.lua +57 -31
- package/engine/behaviour/unit.d.ts +40 -3
- package/engine/behaviour/unit.lua +270 -6
- package/engine/buff.d.ts +114 -58
- package/engine/buff.lua +564 -303
- package/engine/index.d.ts +2 -1
- package/engine/internal/ability.d.ts +14 -1
- package/engine/internal/ability.lua +113 -44
- package/engine/internal/item/ability.lua +63 -11
- package/engine/internal/item/fields.d.ts +12 -0
- package/engine/internal/item/fields.lua +33 -0
- package/engine/internal/item/owner-cache.d.ts +5 -0
- package/engine/internal/item/owner-cache.lua +4 -0
- package/engine/internal/item+owner.d.ts +2 -0
- package/engine/internal/item+owner.lua +37 -8
- package/engine/internal/item.d.ts +32 -16
- package/engine/internal/item.lua +257 -82
- package/engine/internal/mechanics/ability-duration.lua +1 -1
- package/engine/internal/mechanics/cast-ability.lua +6 -3
- package/engine/internal/misc/damage-metadata-by-target.lua +5 -0
- package/engine/internal/misc/frame-coordinates.d.ts +2 -0
- package/engine/internal/misc/frame-coordinates.lua +21 -0
- package/engine/internal/misc/get-terrain-z.d.ts +2 -0
- package/engine/internal/misc/get-terrain-z.lua +11 -0
- package/engine/internal/misc/player-local-handle.d.ts +2 -0
- package/engine/internal/misc/player-local-handle.lua +5 -0
- package/engine/internal/misc/unit-ability-level-natives.d.ts +2 -0
- package/engine/internal/misc/unit-ability-level-natives.lua +12 -0
- package/engine/internal/object-data/armor-bonus.d.ts +2 -0
- package/engine/internal/object-data/attribute-bonus.lua +2 -2
- package/engine/internal/object-data/health-bonus.d.ts +2 -0
- package/engine/internal/object-data/health-bonus.lua +16 -0
- package/engine/internal/object-data/health-regeneration-rate-increase.d.ts +2 -0
- package/engine/internal/object-data/health-regeneration-rate-increase.lua +48 -0
- package/engine/internal/object-data/mana-bonus.d.ts +2 -0
- package/engine/internal/object-data/mana-bonus.lua +16 -0
- package/engine/internal/object-data/mana-regeneration-rate-increase-factor.d.ts +2 -0
- package/engine/internal/object-data/mana-regeneration-rate-increase-factor.lua +16 -0
- package/engine/internal/object-data/returned-melee-damage-factor.d.ts +2 -0
- package/engine/internal/object-data/returned-melee-damage-factor.lua +21 -0
- package/engine/internal/unit/ability.d.ts +35 -0
- package/engine/internal/unit/ability.lua +98 -9
- package/engine/internal/unit/add-item-to-slot-init.lua +3 -14
- package/engine/internal/unit/add-item-to-slot.lua +53 -12
- package/engine/internal/unit/allowed-targets.d.ts +1 -1
- package/engine/internal/unit/allowed-targets.lua +9 -1
- package/engine/internal/unit/appearance.d.ts +15 -0
- package/engine/internal/unit/appearance.lua +85 -0
- package/engine/internal/unit/attributes.d.ts +17 -0
- package/engine/internal/unit/attributes.lua +46 -0
- package/engine/internal/unit/bonus.d.ts +17 -0
- package/engine/internal/unit/bonus.lua +113 -8
- package/engine/internal/unit/buff.d.ts +2 -2
- package/engine/internal/unit/buff.lua +34 -19
- package/engine/internal/unit/equipment-inventory.d.ts +44 -0
- package/engine/internal/unit/equipment-inventory.lua +233 -0
- package/engine/internal/unit/expiration-timer.lua +1 -1
- package/engine/internal/unit/extended-inventory.d.ts +25 -0
- package/engine/internal/unit/extended-inventory.lua +99 -0
- package/engine/internal/unit/fly-height.d.ts +7 -0
- package/engine/internal/unit/fly-height.lua +20 -0
- package/engine/internal/unit/ignore-events-items.lua +10 -1
- package/engine/internal/unit/interrupts.d.ts +12 -0
- package/engine/internal/unit/interrupts.lua +28 -0
- package/engine/internal/unit/{item.d.ts → inventory.d.ts} +7 -3
- package/engine/internal/unit/inventory.lua +87 -0
- package/engine/internal/unit/item-container.d.ts +25 -0
- package/engine/internal/unit/item-container.lua +11 -0
- package/engine/internal/unit/item-order-events.d.ts +17 -0
- package/engine/internal/unit/item-order-events.lua +67 -0
- package/engine/internal/unit/item-slot.d.ts +27 -0
- package/engine/internal/unit/item-slot.lua +92 -0
- package/engine/internal/unit/main-selected.lua +12 -27
- package/engine/internal/unit/order.d.ts +20 -0
- package/engine/internal/unit/order.lua +136 -0
- package/engine/internal/unit/range-event.d.ts +12 -0
- package/engine/internal/unit/range-event.lua +90 -0
- package/engine/internal/unit/scale.d.ts +7 -0
- package/engine/internal/unit/scale.lua +20 -0
- package/engine/internal/unit+ability.d.ts +2 -1
- package/engine/internal/unit+ability.lua +73 -3
- package/engine/internal/unit+bonus.lua +3 -3
- package/engine/internal/unit+damage.d.ts +11 -11
- package/engine/internal/unit+damage.lua +43 -14
- package/engine/internal/unit+rally.lua +9 -31
- package/engine/internal/unit+spellSteal.lua +1 -2
- package/engine/internal/unit-missile-data.lua +58 -32
- package/engine/internal/unit-missile-launch.lua +65 -27
- package/engine/internal/unit.d.ts +41 -36
- package/engine/internal/unit.lua +398 -327
- package/engine/local-client.d.ts +28 -0
- package/engine/local-client.lua +324 -54
- package/engine/object-data/auxiliary/armor-type.d.ts +11 -0
- package/engine/object-data/auxiliary/armor-type.lua +46 -0
- package/engine/object-data/auxiliary/attachment-preset.d.ts +14 -2
- package/engine/object-data/auxiliary/attachment-preset.lua +11 -3
- package/engine/object-data/auxiliary/attack-type.d.ts +7 -8
- package/engine/object-data/auxiliary/attack-type.lua +42 -0
- package/engine/object-data/auxiliary/equipment-slot.d.ts +12 -0
- package/engine/object-data/auxiliary/equipment-slot.lua +2 -0
- package/engine/object-data/auxiliary/equipment-type.d.ts +12 -0
- package/engine/object-data/auxiliary/equipment-type.lua +26 -0
- package/engine/object-data/auxiliary/health-regeneration-type.d.ts +8 -0
- package/engine/object-data/auxiliary/health-regeneration-type.lua +2 -0
- package/engine/object-data/auxiliary/item-class.d.ts +11 -0
- package/engine/object-data/auxiliary/item-class.lua +2 -0
- package/engine/object-data/auxiliary/item-tag.d.ts +12 -0
- package/engine/object-data/auxiliary/item-tag.lua +2 -0
- package/engine/object-data/auxiliary/movement-type.d.ts +7 -7
- package/engine/object-data/auxiliary/movement-type.lua +22 -0
- package/engine/object-data/auxiliary/order-type.d.ts +939 -0
- package/engine/object-data/auxiliary/order-type.lua +2 -0
- package/engine/object-data/auxiliary/sound-set-name.d.ts +14 -3
- package/engine/object-data/auxiliary/unit-attribute.d.ts +6 -0
- package/engine/object-data/auxiliary/unit-attribute.lua +9 -0
- package/engine/object-data/entry/ability-type/apprehend.d.ts +22 -0
- package/engine/object-data/entry/ability-type/apprehend.lua +66 -0
- package/engine/object-data/entry/ability-type/armor-bonus.d.ts +8 -0
- package/engine/object-data/entry/ability-type/{armor-increase.lua → armor-bonus.lua} +9 -9
- package/engine/object-data/entry/ability-type/aura-of-blight.d.ts +13 -0
- package/engine/object-data/entry/ability-type/aura-of-blight.lua +39 -0
- package/engine/object-data/entry/ability-type/banshee.d.ts +8 -0
- package/engine/object-data/entry/ability-type/banshee.lua +13 -0
- package/engine/object-data/entry/ability-type/banshees-wail-damage-amp.d.ts +12 -0
- package/engine/object-data/entry/ability-type/banshees-wail-damage-amp.lua +27 -0
- package/engine/object-data/entry/ability-type/banshees-wail.d.ts +31 -0
- package/engine/object-data/entry/ability-type/banshees-wail.lua +117 -0
- package/engine/object-data/entry/ability-type/battering-ram.d.ts +33 -0
- package/engine/object-data/entry/ability-type/battering-ram.lua +130 -0
- package/engine/object-data/entry/ability-type/berserk.d.ts +2 -0
- package/engine/object-data/entry/ability-type/berserk.lua +13 -0
- package/engine/object-data/entry/ability-type/blank-passive-with-cooldown.d.ts +23 -0
- package/engine/object-data/entry/ability-type/blank-passive-with-cooldown.lua +112 -0
- package/engine/object-data/entry/ability-type/blank-passive.d.ts +4 -0
- package/engine/object-data/entry/ability-type/blank-passive.lua +27 -7
- package/engine/object-data/entry/ability-type/breath-of-fire.d.ts +11 -0
- package/engine/object-data/entry/ability-type/breath-of-fire.lua +27 -0
- package/engine/object-data/entry/ability-type/carrion-swarm.d.ts +14 -0
- package/engine/object-data/entry/ability-type/carrion-swarm.lua +65 -0
- package/engine/object-data/entry/ability-type/cleansing-fire.d.ts +27 -0
- package/engine/object-data/entry/ability-type/cleansing-fire.lua +104 -0
- package/engine/object-data/entry/ability-type/consecration.d.ts +15 -0
- package/engine/object-data/entry/ability-type/consecration.lua +52 -0
- package/engine/object-data/entry/ability-type/cooldown-reduction.d.ts +12 -0
- package/engine/object-data/entry/ability-type/cooldown-reduction.lua +39 -0
- package/engine/object-data/entry/ability-type/critical-strike-system.d.ts +18 -0
- package/engine/object-data/entry/ability-type/critical-strike-system.lua +65 -0
- package/engine/object-data/entry/ability-type/deathseeker-arrows.d.ts +21 -0
- package/engine/object-data/entry/ability-type/deathseeker-arrows.lua +78 -0
- package/engine/object-data/entry/ability-type/equipment-inventory-interface.d.ts +8 -0
- package/engine/object-data/entry/ability-type/equipment-inventory-interface.lua +13 -0
- package/engine/object-data/entry/ability-type/equipment-inventory.d.ts +13 -0
- package/engine/object-data/entry/ability-type/equipment-inventory.lua +27 -0
- package/engine/object-data/entry/ability-type/equipment.d.ts +13 -0
- package/engine/object-data/entry/ability-type/equipment.lua +27 -0
- package/engine/object-data/entry/ability-type/exhume-corpses.d.ts +14 -0
- package/engine/object-data/entry/ability-type/exhume-corpses.lua +40 -0
- package/engine/object-data/entry/ability-type/firebolt.d.ts +7 -0
- package/engine/object-data/entry/ability-type/firebolt.lua +13 -0
- package/engine/object-data/entry/ability-type/flame-strike.d.ts +25 -0
- package/engine/object-data/entry/ability-type/flame-strike.lua +92 -0
- package/engine/object-data/entry/ability-type/grant-talent-point.d.ts +8 -0
- package/engine/object-data/entry/ability-type/grant-talent-point.lua +13 -0
- package/engine/object-data/entry/ability-type/grim-conviction.d.ts +36 -0
- package/engine/object-data/entry/ability-type/grim-conviction.lua +131 -0
- package/engine/object-data/entry/ability-type/grit.d.ts +18 -0
- package/engine/object-data/entry/ability-type/grit.lua +65 -0
- package/engine/object-data/entry/ability-type/guiding-hand.d.ts +27 -0
- package/engine/object-data/entry/ability-type/guiding-hand.lua +104 -0
- package/engine/object-data/entry/ability-type/headsplitter.d.ts +27 -0
- package/engine/object-data/entry/ability-type/headsplitter.lua +104 -0
- package/engine/object-data/entry/ability-type/{armor-increase.d.ts → healing-modifier.d.ts} +4 -3
- package/engine/object-data/entry/ability-type/healing-modifier.lua +26 -0
- package/engine/object-data/entry/ability-type/healing-ward-aura.d.ts +13 -0
- package/engine/object-data/entry/ability-type/healing-ward-aura.lua +39 -0
- package/engine/object-data/entry/ability-type/health-bonus.d.ts +8 -0
- package/engine/object-data/entry/ability-type/health-bonus.lua +26 -0
- package/engine/object-data/entry/ability-type/heroic-slash.d.ts +18 -0
- package/engine/object-data/entry/ability-type/heroic-slash.lua +65 -0
- package/engine/object-data/entry/ability-type/holy-wrath.d.ts +30 -0
- package/engine/object-data/entry/ability-type/holy-wrath.lua +117 -0
- package/engine/object-data/entry/ability-type/inspire-courage.d.ts +18 -0
- package/engine/object-data/entry/ability-type/inspire-courage.lua +65 -0
- package/engine/object-data/entry/ability-type/item-life-regeneration.d.ts +10 -0
- package/engine/object-data/entry/ability-type/item-life-regeneration.lua +26 -0
- package/engine/object-data/entry/ability-type/life-drain.d.ts +37 -0
- package/engine/object-data/entry/ability-type/life-drain.lua +144 -0
- package/engine/object-data/entry/ability-type/lights-mercy.d.ts +27 -0
- package/engine/object-data/entry/ability-type/lights-mercy.lua +104 -0
- package/engine/object-data/entry/ability-type/mana-bonus.d.ts +8 -0
- package/engine/object-data/entry/ability-type/mana-bonus.lua +26 -0
- package/engine/object-data/entry/ability-type/mana-efficiency.d.ts +12 -0
- package/engine/object-data/entry/ability-type/mana-efficiency.lua +39 -0
- package/engine/object-data/entry/ability-type/mana-regeneration.d.ts +8 -0
- package/engine/object-data/entry/ability-type/mana-regeneration.lua +26 -0
- package/engine/object-data/entry/ability-type/mind-control.d.ts +21 -0
- package/engine/object-data/entry/ability-type/mind-control.lua +78 -0
- package/engine/object-data/entry/ability-type/on-attack-cast-spell.d.ts +21 -0
- package/engine/object-data/entry/ability-type/on-attack-cast-spell.lua +52 -0
- package/engine/object-data/entry/ability-type/on-basic-attack-cast-spell.d.ts +19 -0
- package/engine/object-data/entry/ability-type/on-basic-attack-cast-spell.lua +65 -0
- package/engine/object-data/entry/ability-type/on-hit-cast-spell.d.ts +15 -0
- package/engine/object-data/entry/ability-type/on-hit-cast-spell.lua +26 -0
- package/engine/object-data/entry/ability-type/on-magic-attack-cast-spell.d.ts +6 -0
- package/engine/object-data/entry/ability-type/on-magic-attack-cast-spell.lua +12 -0
- package/engine/object-data/entry/ability-type/permanent-invisibility.d.ts +8 -0
- package/engine/object-data/entry/ability-type/permanent-invisibility.lua +26 -0
- package/engine/object-data/entry/ability-type/phase-shift.d.ts +10 -0
- package/engine/object-data/entry/ability-type/phase-shift.lua +39 -0
- package/engine/object-data/entry/ability-type/provoke.d.ts +21 -0
- package/engine/object-data/entry/ability-type/provoke.lua +66 -0
- package/engine/object-data/entry/ability-type/rain-of-fire.d.ts +7 -0
- package/engine/object-data/entry/ability-type/rain-of-fire.lua +13 -0
- package/engine/object-data/entry/ability-type/raise-the-banner.d.ts +9 -0
- package/engine/object-data/entry/ability-type/raise-the-banner.lua +26 -0
- package/engine/object-data/entry/ability-type/reincarnation.d.ts +8 -0
- package/engine/object-data/entry/ability-type/reincarnation.lua +26 -0
- package/engine/object-data/entry/ability-type/resolve.d.ts +12 -0
- package/engine/object-data/entry/ability-type/resolve.lua +39 -0
- package/engine/object-data/entry/ability-type/righteous-fury.d.ts +33 -0
- package/engine/object-data/entry/ability-type/righteous-fury.lua +130 -0
- package/engine/object-data/entry/ability-type/sacred-aura.d.ts +27 -0
- package/engine/object-data/entry/ability-type/sacred-aura.lua +104 -0
- package/engine/object-data/entry/ability-type/shock-wave.d.ts +4 -0
- package/engine/object-data/entry/ability-type/shock-wave.lua +26 -0
- package/engine/object-data/entry/ability-type/slow-poison.d.ts +10 -0
- package/engine/object-data/entry/ability-type/slow-poison.lua +58 -0
- package/engine/object-data/entry/ability-type/soul-burn.d.ts +22 -0
- package/engine/object-data/entry/ability-type/soul-burn.lua +79 -0
- package/engine/object-data/entry/ability-type/soul-lantern.d.ts +30 -0
- package/engine/object-data/entry/ability-type/soul-lantern.lua +117 -0
- package/engine/object-data/entry/ability-type/spell-amp.d.ts +15 -0
- package/engine/object-data/entry/ability-type/spell-amp.lua +52 -0
- package/engine/object-data/entry/ability-type/spell-critical-strike.d.ts +12 -0
- package/engine/object-data/entry/ability-type/spell-critical-strike.lua +39 -0
- package/engine/object-data/entry/ability-type/spell-vamp.d.ts +12 -0
- package/engine/object-data/entry/ability-type/spell-vamp.lua +39 -0
- package/engine/object-data/entry/ability-type/stackable-evasion.d.ts +9 -0
- package/engine/object-data/entry/ability-type/stackable-evasion.lua +13 -0
- package/engine/object-data/entry/ability-type/stackable-hardened-skin.d.ts +21 -0
- package/engine/object-data/entry/ability-type/stackable-hardened-skin.lua +78 -0
- package/engine/object-data/entry/ability-type/stackable-life-steal.d.ts +9 -0
- package/engine/object-data/entry/ability-type/stackable-life-steal.lua +26 -0
- package/engine/object-data/entry/ability-type/stackable-spell-damage-reduction.d.ts +9 -0
- package/engine/object-data/entry/ability-type/stackable-spell-damage-reduction.lua +13 -0
- package/engine/object-data/entry/ability-type/stackable-thorn-shield.d.ts +9 -0
- package/engine/object-data/entry/ability-type/stackable-thorn-shield.lua +13 -0
- package/engine/object-data/entry/ability-type/stat-details.d.ts +12 -0
- package/engine/object-data/entry/ability-type/stat-details.lua +27 -0
- package/engine/object-data/entry/ability-type/surge-of-light.d.ts +33 -0
- package/engine/object-data/entry/ability-type/surge-of-light.lua +130 -0
- package/engine/object-data/entry/ability-type/sweeping-strike.d.ts +57 -0
- package/engine/object-data/entry/ability-type/sweeping-strike.lua +234 -0
- package/engine/object-data/entry/ability-type/talents.d.ts +12 -0
- package/engine/object-data/entry/ability-type/talents.lua +27 -0
- package/engine/object-data/entry/ability-type/unyielding-guard.d.ts +30 -0
- package/engine/object-data/entry/ability-type/unyielding-guard.lua +117 -0
- package/engine/object-data/entry/ability-type/valiant-charge.d.ts +27 -0
- package/engine/object-data/entry/ability-type/valiant-charge.lua +104 -0
- package/engine/object-data/entry/ability-type/warcry.d.ts +9 -0
- package/engine/object-data/entry/ability-type/warcry.lua +26 -0
- package/engine/object-data/entry/ability-type/web.d.ts +12 -0
- package/engine/object-data/entry/ability-type/web.lua +52 -0
- package/engine/object-data/entry/ability-type/withering-fire.d.ts +21 -0
- package/engine/object-data/entry/ability-type/withering-fire.lua +78 -0
- package/engine/object-data/entry/ability-type.d.ts +40 -15
- package/engine/object-data/entry/ability-type.lua +314 -17
- package/engine/object-data/entry/buff-type/applicable.lua +113 -104
- package/engine/object-data/entry/buff-type.d.ts +10 -12
- package/engine/object-data/entry/buff-type.lua +37 -27
- package/engine/object-data/entry/destructible-type.d.ts +32 -2
- package/engine/object-data/entry/destructible-type.lua +181 -0
- package/engine/object-data/entry/item-type.d.ts +18 -3
- package/engine/object-data/entry/item-type.lua +84 -0
- package/engine/object-data/entry/lightning-type.d.ts +6 -8
- package/engine/object-data/entry/lightning-type.lua +1 -1
- package/engine/object-data/entry/sound-preset.d.ts +2 -2
- package/engine/object-data/entry/unit-type.d.ts +74 -6
- package/engine/object-data/entry/unit-type.lua +560 -100
- package/engine/object-data/entry/upgrade.d.ts +2 -2
- package/engine/object-data/entry.d.ts +6 -1
- package/engine/object-data/entry.lua +8 -0
- package/engine/object-field/ability.d.ts +4 -4
- package/engine/object-field/ability.lua +9 -8
- package/engine/object-field/item.d.ts +22 -0
- package/engine/object-field/item.lua +118 -0
- package/engine/object-field/unit.d.ts +72 -3
- package/engine/object-field/unit.lua +268 -7
- package/engine/object-field.d.ts +26 -7
- package/engine/object-field.lua +360 -119
- package/engine/random.d.ts +10 -0
- package/engine/random.lua +21 -0
- package/engine/standard/entries/ability-type.d.ts +3102 -7
- package/engine/standard/entries/ability-type.lua +0 -6
- package/engine/standard/entries/buff-type.d.ts +48 -0
- package/engine/standard/entries/buff-type.lua +46 -0
- package/engine/standard/entries/item-type.d.ts +1299 -0
- package/engine/standard/entries/item-type.lua +2 -0
- package/engine/standard/entries/lightning-type.d.ts +42 -15
- package/engine/standard/entries/lightning-type.lua +0 -14
- package/engine/standard/entries/unit-type.d.ts +5 -0
- package/engine/standard/entries/unit-type.lua +5 -0
- package/engine/standard/fields/ability.d.ts +2 -2
- package/engine/standard/fields/ability.lua +2 -2
- package/engine/standard/fields/item.d.ts +4 -0
- package/engine/standard/fields/item.lua +6 -0
- package/engine/standard/fields/unit.d.ts +12 -0
- package/engine/standard/fields/unit.lua +20 -0
- package/engine/synchronization.d.ts +11 -0
- package/engine/synchronization.lua +77 -0
- package/engine/text-tag.d.ts +36 -2
- package/engine/text-tag.lua +250 -10
- package/engine/unit.d.ts +11 -1
- package/engine/unit.lua +11 -1
- package/event.d.ts +1 -1
- package/lualib_bundle.lua +1 -1
- package/math.d.ts +2 -0
- package/math.lua +14 -0
- package/net/socket.lua +1 -1
- package/network.lua +25 -1
- package/objutil/buff.lua +12 -11
- package/objutil/object.lua +1 -1
- package/operation.d.ts +8 -1
- package/operation.lua +38 -18
- package/package.json +3 -23
- package/patch-lua.lua +15 -0
- package/patch-lualib.lua +1 -1
- package/utility/arrays.d.ts +9 -1
- package/utility/arrays.lua +28 -0
- package/utility/callback-array.d.ts +17 -0
- package/utility/callback-array.lua +61 -0
- package/utility/functions.d.ts +8 -0
- package/utility/functions.lua +13 -0
- package/utility/linked-map.d.ts +35 -0
- package/utility/linked-map.lua +107 -0
- package/utility/linked-set.d.ts +5 -1
- package/utility/linked-set.lua +49 -1
- package/utility/lua-maps.d.ts +15 -2
- package/utility/lua-maps.lua +53 -2
- package/utility/lua-sets.d.ts +2 -0
- package/utility/lua-sets.lua +7 -0
- package/utility/random.d.ts +102 -0
- package/utility/random.lua +273 -0
- package/utility/records.lua +20 -1
- package/utility/types.d.ts +3 -0
- package/utility/unordered-map.d.ts +27 -0
- package/utility/unordered-map.lua +99 -0
- package/core/types/order.d.ts +0 -25
- package/core/types/order.lua +0 -55
- package/engine/internal/unit/item.lua +0 -78
- /package/engine/internal/{object-data/armor-increase.d.ts → misc/damage-metadata-by-target.d.ts} +0 -0
- /package/engine/internal/object-data/{armor-increase.lua → armor-bonus.lua} +0 -0
- /package/engine/object-data/entry/ability-type/{attribute-increase.d.ts → attribute-bonus.d.ts} +0 -0
- /package/engine/object-data/entry/ability-type/{attribute-increase.lua → attribute-bonus.lua} +0 -0
package/engine/unit.d.ts
CHANGED
|
@@ -1,10 +1,15 @@
|
|
|
1
1
|
/** @noSelfInFile */
|
|
2
2
|
import "./internal/unit";
|
|
3
|
+
import "./internal/unit/order";
|
|
3
4
|
import "./internal/unit/ability";
|
|
5
|
+
import "./internal/unit/appearance";
|
|
6
|
+
import "./internal/unit/extended-inventory";
|
|
7
|
+
import "./internal/unit/equipment-inventory";
|
|
4
8
|
import "./internal/unit/allowed-targets";
|
|
5
9
|
import "./internal/unit/buff";
|
|
6
10
|
import "./internal/unit/expiration-timer";
|
|
7
|
-
import "./internal/unit/
|
|
11
|
+
import "./internal/unit/inventory";
|
|
12
|
+
import "./internal/unit/item-order-events";
|
|
8
13
|
import "./internal/unit+ability";
|
|
9
14
|
import "./internal/unit+damage";
|
|
10
15
|
import "./internal/unit+rally";
|
|
@@ -18,6 +23,11 @@ import "./internal/unit/invulnerability-counter";
|
|
|
18
23
|
import "./internal/unit/detach-missiles";
|
|
19
24
|
import "./internal/unit/main-selected";
|
|
20
25
|
import "./internal/unit/add-item-to-slot-init";
|
|
26
|
+
import "./internal/unit/attributes";
|
|
27
|
+
import "./internal/unit/fly-height";
|
|
28
|
+
import "./internal/unit/scale";
|
|
29
|
+
import "./internal/unit/interrupts";
|
|
30
|
+
import "./internal/unit/range-event";
|
|
21
31
|
import "./internal/unit/band-aids/ancestral-spirit-cannibalize";
|
|
22
32
|
export { Unit, DamagingEvent, DamageEvent } from "./internal/unit";
|
|
23
33
|
export * from "./internal/unit+damage";
|
package/engine/unit.lua
CHANGED
|
@@ -1,10 +1,15 @@
|
|
|
1
1
|
local ____exports = {}
|
|
2
2
|
require("engine.internal.unit")
|
|
3
|
+
require("engine.internal.unit.order")
|
|
3
4
|
require("engine.internal.unit.ability")
|
|
5
|
+
require("engine.internal.unit.appearance")
|
|
6
|
+
require("engine.internal.unit.extended-inventory")
|
|
7
|
+
require("engine.internal.unit.equipment-inventory")
|
|
4
8
|
require("engine.internal.unit.allowed-targets")
|
|
5
9
|
require("engine.internal.unit.buff")
|
|
6
10
|
require("engine.internal.unit.expiration-timer")
|
|
7
|
-
require("engine.internal.unit.
|
|
11
|
+
require("engine.internal.unit.inventory")
|
|
12
|
+
require("engine.internal.unit.item-order-events")
|
|
8
13
|
require("engine.internal.unit+ability")
|
|
9
14
|
require("engine.internal.unit+damage")
|
|
10
15
|
require("engine.internal.unit+rally")
|
|
@@ -18,6 +23,11 @@ require("engine.internal.unit.invulnerability-counter")
|
|
|
18
23
|
require("engine.internal.unit.detach-missiles")
|
|
19
24
|
require("engine.internal.unit.main-selected")
|
|
20
25
|
require("engine.internal.unit.add-item-to-slot-init")
|
|
26
|
+
require("engine.internal.unit.attributes")
|
|
27
|
+
require("engine.internal.unit.fly-height")
|
|
28
|
+
require("engine.internal.unit.scale")
|
|
29
|
+
require("engine.internal.unit.interrupts")
|
|
30
|
+
require("engine.internal.unit.range-event")
|
|
21
31
|
require("engine.internal.unit.band-aids.ancestral-spirit-cannibalize")
|
|
22
32
|
do
|
|
23
33
|
local ____unit = require("engine.internal.unit")
|
package/event.d.ts
CHANGED
|
@@ -40,7 +40,7 @@ export declare const createDispatchingEvent: {
|
|
|
40
40
|
<T extends Event<any>, S extends Event<EventParameters<T>>>(underlyingEvent: T, extractKey: (this: void, ...args: EventParameters<T>) => number, invokeEvent?: (this: void, event: S, ...args: EventParameters<T>) => unknown, ...createEvent: [...(Event<any> extends S ? [((this: void) => S)?] : [(this: void) => S])]): DispatchingEvent<EventParameters<T>, T, S>;
|
|
41
41
|
};
|
|
42
42
|
export declare class DependentInitializingEvent<T extends any[], R extends any[]> extends InitializingEvent<R, EventListener<T>> {
|
|
43
|
-
constructor(underlyingEvent: Event<T>, priority: EventListenerPriority, collector: (...args: T) => LuaMultiReturn<[false] | [
|
|
43
|
+
constructor(underlyingEvent: Event<T>, priority: EventListenerPriority, collector: (...args: T) => LuaMultiReturn<[false, ...unknown[]] | [boolean, ...R]>);
|
|
44
44
|
}
|
|
45
45
|
export declare class EventParametersCaptor<T extends any[]> {
|
|
46
46
|
private readonly event;
|
package/lualib_bundle.lua
CHANGED
|
@@ -2241,7 +2241,7 @@ local function __TS__SourceMapTraceBack(fileName, sourceMap)
|
|
|
2241
2241
|
end
|
|
2242
2242
|
local result = string.gsub(
|
|
2243
2243
|
trace,
|
|
2244
|
-
"(
|
|
2244
|
+
"([^%s<]+)%.lua:(%d+)",
|
|
2245
2245
|
function(file, line) return replacer(nil, file .. ".lua", file .. ".ts", line) end
|
|
2246
2246
|
)
|
|
2247
2247
|
local function stringReplacer(____, file, line)
|
package/math.d.ts
CHANGED
|
@@ -23,6 +23,8 @@ export declare const floor: typeof math.floor;
|
|
|
23
23
|
export declare const log: typeof math.log;
|
|
24
24
|
export declare const max: typeof math.max;
|
|
25
25
|
export declare const min: typeof math.min;
|
|
26
|
+
export declare const sum: (x: number, ...numbers: number[]) => number;
|
|
27
|
+
export declare const product: (x: number, ...numbers: number[]) => number;
|
|
26
28
|
/** Returns the signum function of the argument;
|
|
27
29
|
* zero if the argument is zero,
|
|
28
30
|
* 1.0 if the argument is greater than zero,
|
package/math.lua
CHANGED
|
@@ -39,6 +39,20 @@ ____exports.floor = math.floor
|
|
|
39
39
|
____exports.log = math.log
|
|
40
40
|
____exports.max = math.max
|
|
41
41
|
____exports.min = math.min
|
|
42
|
+
____exports.sum = function(x, ...)
|
|
43
|
+
for i = 1, select("#", ...) do
|
|
44
|
+
local number = select(i, ...)
|
|
45
|
+
x = x + number
|
|
46
|
+
end
|
|
47
|
+
return x
|
|
48
|
+
end
|
|
49
|
+
____exports.product = function(x, ...)
|
|
50
|
+
for i = 1, select("#", ...) do
|
|
51
|
+
local number = select(i, ...)
|
|
52
|
+
x = x * number
|
|
53
|
+
end
|
|
54
|
+
return x
|
|
55
|
+
end
|
|
42
56
|
--- Returns the signum function of the argument;
|
|
43
57
|
-- zero if the argument is zero,
|
|
44
58
|
-- 1.0 if the argument is greater than zero,
|
package/net/socket.lua
CHANGED
|
@@ -28,13 +28,13 @@ function Socket.prototype.____constructor(self)
|
|
|
28
28
|
onReceive[self[0]]:addListener(function(sender, data)
|
|
29
29
|
local chunks = chunksByPlayer[sender]
|
|
30
30
|
if chunks ~= nil then
|
|
31
|
+
chunksByPlayer[sender] = nil
|
|
31
32
|
chunks[#chunks + 1] = data
|
|
32
33
|
Event.invoke(
|
|
33
34
|
self.onMessage,
|
|
34
35
|
sender,
|
|
35
36
|
tableConcat(chunks)
|
|
36
37
|
)
|
|
37
|
-
chunksByPlayer[sender] = nil
|
|
38
38
|
else
|
|
39
39
|
Event.invoke(self.onMessage, sender, data)
|
|
40
40
|
end
|
package/network.lua
CHANGED
|
@@ -8,6 +8,7 @@ local ____exports = {}
|
|
|
8
8
|
local ____event = require("event")
|
|
9
9
|
local TriggerEvent = ____event.TriggerEvent
|
|
10
10
|
local ____exception = require("exception")
|
|
11
|
+
local CancellationException = ____exception.CancellationException
|
|
11
12
|
local IllegalArgumentException = ____exception.IllegalArgumentException
|
|
12
13
|
local ____player = require("core.types.player")
|
|
13
14
|
local Player = ____player.Player
|
|
@@ -86,6 +87,9 @@ function SyncOperation.prototype.____constructor(self, player, data)
|
|
|
86
87
|
self.l = #self.d
|
|
87
88
|
end
|
|
88
89
|
function SyncOperation.prototype.estimate(self)
|
|
90
|
+
if self.isCanceled or not self.player.isPlaying then
|
|
91
|
+
return __TS__Promise.reject(__TS__New(CancellationException))
|
|
92
|
+
end
|
|
89
93
|
if self.player.isLocal then
|
|
90
94
|
sendSyncData(
|
|
91
95
|
"__oh",
|
|
@@ -98,6 +102,7 @@ function SyncOperation.prototype.estimate(self)
|
|
|
98
102
|
end
|
|
99
103
|
function SyncOperation.prototype.work(self)
|
|
100
104
|
if self.progress >= self.maximum then
|
|
105
|
+
syncOperationById[self.x] = nil
|
|
101
106
|
return decode(concat(self.c))
|
|
102
107
|
end
|
|
103
108
|
self.s = packetsPerRound
|
|
@@ -116,7 +121,18 @@ function SyncOperation.prototype.work(self)
|
|
|
116
121
|
return __TS__New(__TS__Promise, syncPromiseExecutor)
|
|
117
122
|
end
|
|
118
123
|
function SyncOperation.prototype.doCancel(self)
|
|
119
|
-
|
|
124
|
+
if not (syncOperationById[self.x] ~= nil) then
|
|
125
|
+
return false
|
|
126
|
+
end
|
|
127
|
+
syncOperationById[self.x] = nil
|
|
128
|
+
local ____opt_1 = self.r
|
|
129
|
+
if ____opt_1 ~= nil then
|
|
130
|
+
____opt_1(
|
|
131
|
+
self,
|
|
132
|
+
__TS__New(CancellationException)
|
|
133
|
+
)
|
|
134
|
+
end
|
|
135
|
+
return true
|
|
120
136
|
end
|
|
121
137
|
__TS__ObjectDefineProperty(
|
|
122
138
|
SyncOperation,
|
|
@@ -178,6 +194,7 @@ SyncOperation._ = (function()
|
|
|
178
194
|
local resolveWork = syncOperation.w
|
|
179
195
|
if resolveWork then
|
|
180
196
|
if syncOperation.progress >= syncOperation.maximum then
|
|
197
|
+
syncOperationById[id] = nil
|
|
181
198
|
resolveWork(
|
|
182
199
|
nil,
|
|
183
200
|
decode(concat(chunks))
|
|
@@ -188,6 +205,13 @@ SyncOperation._ = (function()
|
|
|
188
205
|
end
|
|
189
206
|
end
|
|
190
207
|
end)
|
|
208
|
+
Player.onLeave:addListener(function(player)
|
|
209
|
+
for ____, operation in pairs(syncOperationById) do
|
|
210
|
+
if operation.player == player then
|
|
211
|
+
operation:cancel()
|
|
212
|
+
end
|
|
213
|
+
end
|
|
214
|
+
end)
|
|
191
215
|
end)()
|
|
192
216
|
function ____exports.synchronize(player, data)
|
|
193
217
|
return __TS__New(____exports.SyncOperation, player, data):execute()
|
package/objutil/buff.lua
CHANGED
|
@@ -20,7 +20,6 @@ local AbilityDefinitionInnerFire = ____ability.AbilityDefinitionInnerFire
|
|
|
20
20
|
local AbilityDefinitionSearingArrows = ____ability.AbilityDefinitionSearingArrows
|
|
21
21
|
local AbilityDefinitionSlowPoison = ____ability.AbilityDefinitionSlowPoison
|
|
22
22
|
local ____unit = require("core.types.unit")
|
|
23
|
-
local AttackType = ____unit.AttackType
|
|
24
23
|
local DamageType = ____unit.DamageType
|
|
25
24
|
local Unit = ____unit.Unit
|
|
26
25
|
local ____dummy = require("core.dummy")
|
|
@@ -30,6 +29,8 @@ local ____timer = require("core.types.timer")
|
|
|
30
29
|
local Timer = ____timer.Timer
|
|
31
30
|
local ____exception = require("exception")
|
|
32
31
|
local IllegalStateException = ____exception.IllegalStateException
|
|
32
|
+
local ____linked_2Dmap = require("utility.linked-map")
|
|
33
|
+
local LinkedMap = ____linked_2Dmap.LinkedMap
|
|
33
34
|
local ____assert = _G.assert
|
|
34
35
|
local ____pairs = _G.pairs
|
|
35
36
|
____exports.BuffDefinition = __TS__Class()
|
|
@@ -462,7 +463,7 @@ local buffs = setmetatable(
|
|
|
462
463
|
{
|
|
463
464
|
__mode = "k",
|
|
464
465
|
__index = function(self, unit)
|
|
465
|
-
local ____table =
|
|
466
|
+
local ____table = __TS__New(LinkedMap)
|
|
466
467
|
self[unit] = ____table
|
|
467
468
|
return ____table
|
|
468
469
|
end
|
|
@@ -495,7 +496,7 @@ function Buff.prototype.____constructor(self, unit, source, duration, level, pre
|
|
|
495
496
|
end
|
|
496
497
|
local constructor = self.constructor
|
|
497
498
|
local instances = buffs[unit]
|
|
498
|
-
local instance = instances
|
|
499
|
+
local instance = instances:get(constructor)
|
|
499
500
|
if instance then
|
|
500
501
|
instance:destroy()
|
|
501
502
|
if not instance.destroyed then
|
|
@@ -508,7 +509,7 @@ function Buff.prototype.____constructor(self, unit, source, duration, level, pre
|
|
|
508
509
|
)
|
|
509
510
|
end
|
|
510
511
|
end
|
|
511
|
-
instances
|
|
512
|
+
instances:put(constructor, self)
|
|
512
513
|
if preset then
|
|
513
514
|
local unitHandle = unit.handle
|
|
514
515
|
local slowPoisonMethod = not preset.positive and not preset.magic
|
|
@@ -526,7 +527,7 @@ function Buff.prototype.____constructor(self, unit, source, duration, level, pre
|
|
|
526
527
|
ability:setField(ABILITY_RLF_DURATION_NORMAL, level, actualDuration)
|
|
527
528
|
ability:setField(ABILITY_RLF_DURATION_HERO, level, actualDuration)
|
|
528
529
|
end,
|
|
529
|
-
preset.positive and (preset.magic and
|
|
530
|
+
preset.positive and (preset.magic and 852066 or 852609) or (preset.magic and 852189 or 852173),
|
|
530
531
|
unit
|
|
531
532
|
)
|
|
532
533
|
if slowPoisonMethod then
|
|
@@ -587,13 +588,13 @@ function Buff.apply(self, ...)
|
|
|
587
588
|
end
|
|
588
589
|
end
|
|
589
590
|
function Buff.getInstance(self, unit)
|
|
590
|
-
return buffs[unit]
|
|
591
|
+
return buffs[unit]:get(self)
|
|
591
592
|
end
|
|
592
593
|
function Buff.isApplied(self, unit)
|
|
593
|
-
return buffs[unit]
|
|
594
|
+
return buffs[unit]:get(self) ~= nil
|
|
594
595
|
end
|
|
595
596
|
function Buff.ifApplied(self, unit, action)
|
|
596
|
-
local instance = buffs[unit]
|
|
597
|
+
local instance = buffs[unit]:get(self)
|
|
597
598
|
if instance then
|
|
598
599
|
____assert(__TS__InstanceOf(instance, self))
|
|
599
600
|
action(instance)
|
|
@@ -616,7 +617,7 @@ function Buff.prototype.destroy(self)
|
|
|
616
617
|
if self.preset then
|
|
617
618
|
self.unit:removeAbility(self.preset.buffId)
|
|
618
619
|
end
|
|
619
|
-
buffs[self.unit]
|
|
620
|
+
buffs[self.unit]:remove(self.constructor)
|
|
620
621
|
self.destroyed = true
|
|
621
622
|
end
|
|
622
623
|
function Buff.prototype.onDispel(self, source)
|
|
@@ -756,14 +757,14 @@ for ____, pointDispelAbilityId in ipairs(pointDispelAbilityIds) do
|
|
|
756
757
|
end)
|
|
757
758
|
end
|
|
758
759
|
Unit.onDamaging:addListener(function(source, target, event)
|
|
759
|
-
if event.amount == 0 and event.attackType ==
|
|
760
|
+
if event.amount == 0 and event.attackType == 0 and event.damageType == DamageType.NORMAL and not event.isAttack then
|
|
760
761
|
Timer:run(function()
|
|
761
762
|
checkBuffs(target, true, source)
|
|
762
763
|
end)
|
|
763
764
|
end
|
|
764
765
|
end)
|
|
765
766
|
Unit.itemPickedUpEvent:addListener(function(unit, item)
|
|
766
|
-
if item.
|
|
767
|
+
if item.isPowerUp and item:hasAbility(fourCC("APdi")) then
|
|
767
768
|
end
|
|
768
769
|
end)
|
|
769
770
|
return ____exports
|
package/objutil/object.lua
CHANGED
|
@@ -153,7 +153,7 @@ end
|
|
|
153
153
|
function ObjectDefinition.getLevelArrayFieldValue(self, level, value, values)
|
|
154
154
|
return type(values) == "function" and values(level, value) or (__TS__ArrayIsArray(values[1]) and values[1] or values)
|
|
155
155
|
end
|
|
156
|
-
____exports.ObjectType = ObjectType or ({})
|
|
156
|
+
____exports.ObjectType = ____exports.ObjectType or ({})
|
|
157
157
|
____exports.ObjectType.ABILITY = 0
|
|
158
158
|
____exports.ObjectType[____exports.ObjectType.ABILITY] = "ABILITY"
|
|
159
159
|
____exports.ObjectType.ITEM = 1
|
package/operation.d.ts
CHANGED
|
@@ -16,9 +16,11 @@ export { OperationContinue };
|
|
|
16
16
|
export declare abstract class Operation<T> {
|
|
17
17
|
protected constructor();
|
|
18
18
|
private started;
|
|
19
|
+
private settled;
|
|
20
|
+
private canceled;
|
|
19
21
|
protected progress: number;
|
|
20
22
|
protected maximum: number;
|
|
21
|
-
isCanceled: boolean;
|
|
23
|
+
get isCanceled(): boolean;
|
|
22
24
|
get isStarted(): boolean;
|
|
23
25
|
execute(): OperationMonitor<T>;
|
|
24
26
|
protected abstract estimate(): number | Promise<number>;
|
|
@@ -30,6 +32,11 @@ export declare abstract class Operation<T> {
|
|
|
30
32
|
...result: [success: true, result: T] | [success: false, reason?: any]
|
|
31
33
|
]>;
|
|
32
34
|
get onProgress(): Event<[operation: Operation<T>]>;
|
|
35
|
+
/**
|
|
36
|
+
* Invoked with `isCanceled` already set. Should unblock any pending `estimate`/`work` promise
|
|
37
|
+
* (e.g. by rejecting it) and return whether cancellation is possible; on `false` the canceled
|
|
38
|
+
* state is reverted.
|
|
39
|
+
*/
|
|
33
40
|
protected abstract doCancel(): boolean;
|
|
34
41
|
cancel(): boolean;
|
|
35
42
|
}
|
package/operation.lua
CHANGED
|
@@ -22,10 +22,7 @@ OperationMonitor.name = "OperationMonitor"
|
|
|
22
22
|
__TS__ClassExtends(OperationMonitor, __TS__Promise)
|
|
23
23
|
function OperationMonitor.prototype.____constructor(self, operation, ...)
|
|
24
24
|
local args = {...}
|
|
25
|
-
__TS__Promise.prototype.____constructor(
|
|
26
|
-
self,
|
|
27
|
-
table.unpack(args)
|
|
28
|
-
)
|
|
25
|
+
__TS__Promise.prototype.____constructor(self, ...)
|
|
29
26
|
self.o = operation
|
|
30
27
|
end
|
|
31
28
|
function OperationMonitor.prototype.cancel(self)
|
|
@@ -38,9 +35,10 @@ local Operation = ____exports.Operation
|
|
|
38
35
|
Operation.name = "Operation"
|
|
39
36
|
function Operation.prototype.____constructor(self)
|
|
40
37
|
self.started = false
|
|
38
|
+
self.settled = false
|
|
39
|
+
self.canceled = false
|
|
41
40
|
self.progress = 0
|
|
42
41
|
self.maximum = 0
|
|
43
|
-
self.isCanceled = false
|
|
44
42
|
end
|
|
45
43
|
function Operation.prototype.execute(self)
|
|
46
44
|
if self.started then
|
|
@@ -58,6 +56,12 @@ function Operation.prototype.execute(self)
|
|
|
58
56
|
local result
|
|
59
57
|
local progress = self.progress
|
|
60
58
|
local ____try = __TS__AsyncAwaiter(function()
|
|
59
|
+
if self.canceled then
|
|
60
|
+
error(
|
|
61
|
+
__TS__New(CancellationException),
|
|
62
|
+
0
|
|
63
|
+
)
|
|
64
|
+
end
|
|
61
65
|
local maximum = __TS__Await(self:estimate())
|
|
62
66
|
self.maximum = maximum
|
|
63
67
|
if maximum ~= 0 then
|
|
@@ -68,20 +72,19 @@ function Operation.prototype.execute(self)
|
|
|
68
72
|
end
|
|
69
73
|
repeat
|
|
70
74
|
do
|
|
71
|
-
if self.
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
Event.invoke(onFailure, self, reason)
|
|
77
|
-
end
|
|
78
|
-
local onComplete = ____rawget(self, "onComplete")
|
|
79
|
-
if onComplete ~= nil then
|
|
80
|
-
Event.invoke(onComplete, self, false, reason)
|
|
81
|
-
end
|
|
82
|
-
return ____awaiter_resolve(nil)
|
|
75
|
+
if self.canceled then
|
|
76
|
+
error(
|
|
77
|
+
__TS__New(CancellationException),
|
|
78
|
+
0
|
|
79
|
+
)
|
|
83
80
|
end
|
|
84
81
|
result = __TS__Await(self:work())
|
|
82
|
+
if self.canceled then
|
|
83
|
+
error(
|
|
84
|
+
__TS__New(CancellationException),
|
|
85
|
+
0
|
|
86
|
+
)
|
|
87
|
+
end
|
|
85
88
|
if self.progress ~= progress or self.maximum ~= maximum then
|
|
86
89
|
progress = self.progress
|
|
87
90
|
maximum = self.maximum
|
|
@@ -96,6 +99,7 @@ function Operation.prototype.execute(self)
|
|
|
96
99
|
__TS__Await(____try.catch(
|
|
97
100
|
____try,
|
|
98
101
|
function(____, reason)
|
|
102
|
+
self.settled = true
|
|
99
103
|
reject(nil, reason)
|
|
100
104
|
local onFailure = ____rawget(self, "onFailure")
|
|
101
105
|
if onFailure ~= nil then
|
|
@@ -108,6 +112,7 @@ function Operation.prototype.execute(self)
|
|
|
108
112
|
return ____awaiter_resolve(nil)
|
|
109
113
|
end
|
|
110
114
|
))
|
|
115
|
+
self.settled = true
|
|
111
116
|
resolve(nil, result)
|
|
112
117
|
local onSuccess = ____rawget(self, "onSuccess")
|
|
113
118
|
if onSuccess ~= nil then
|
|
@@ -122,12 +127,27 @@ function Operation.prototype.execute(self)
|
|
|
122
127
|
)
|
|
123
128
|
end
|
|
124
129
|
function Operation.prototype.cancel(self)
|
|
130
|
+
if self.canceled then
|
|
131
|
+
return true
|
|
132
|
+
end
|
|
133
|
+
if self.settled then
|
|
134
|
+
return false
|
|
135
|
+
end
|
|
136
|
+
self.canceled = true
|
|
125
137
|
if self:doCancel() then
|
|
126
|
-
self.isCanceled = true
|
|
127
138
|
return true
|
|
128
139
|
end
|
|
140
|
+
self.canceled = false
|
|
129
141
|
return false
|
|
130
142
|
end
|
|
143
|
+
__TS__SetDescriptor(
|
|
144
|
+
Operation.prototype,
|
|
145
|
+
"isCanceled",
|
|
146
|
+
{get = function(self)
|
|
147
|
+
return self.canceled
|
|
148
|
+
end},
|
|
149
|
+
true
|
|
150
|
+
)
|
|
131
151
|
__TS__SetDescriptor(
|
|
132
152
|
Operation.prototype,
|
|
133
153
|
"isStarted",
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://json.schemastore.org/package",
|
|
3
3
|
"name": "warscript",
|
|
4
|
-
"version": "0.0.1-dev.
|
|
4
|
+
"version": "0.0.1-dev.c47d565",
|
|
5
5
|
"description": "A typescript library for Warcraft III using Warpack.",
|
|
6
6
|
"keywords": [
|
|
7
7
|
"warcraft",
|
|
@@ -13,31 +13,11 @@
|
|
|
13
13
|
"type": "git",
|
|
14
14
|
"url": "git+https://github.com/rhazarian/warscript.git"
|
|
15
15
|
},
|
|
16
|
-
"scripts": {
|
|
17
|
-
"clean": "rimraf dist",
|
|
18
|
-
"prebuild": "npm run clean",
|
|
19
|
-
"build": "tstl && copyfiles -u 1 \"src/**/*.d.ts\" \"src/**/*.lua\" dist && copyfiles LICENSE package.json dist",
|
|
20
|
-
"prepublishOnly": "echo You should run 'npm run publish' instead. && exit 1",
|
|
21
|
-
"publish": "npm run build && npm publish ./dist --ignore-scripts"
|
|
22
|
-
},
|
|
23
16
|
"peerDependencies": {
|
|
24
17
|
"@warscript/language-extensions": "^0.0.1",
|
|
25
|
-
"@warscript/tstl-plugin": "^0.0.
|
|
18
|
+
"@warscript/tstl-plugin": "^0.0.6",
|
|
26
19
|
"lua-types": "^2.13.1",
|
|
27
|
-
"warpack": "0.0.1-dev.
|
|
28
|
-
},
|
|
29
|
-
"devDependencies": {
|
|
30
|
-
"@typescript-eslint/eslint-plugin": "^8.13.0",
|
|
31
|
-
"@typescript-eslint/parser": "^8.13.0",
|
|
32
|
-
"async": "^3.2.6",
|
|
33
|
-
"copyfiles": "^2.4.1",
|
|
34
|
-
"eslint": "^9.14.0",
|
|
35
|
-
"eslint-config-prettier": "^9.1.0",
|
|
36
|
-
"eslint-plugin-prettier": "^5.2.1",
|
|
37
|
-
"prettier": "^3.3.3",
|
|
38
|
-
"rimraf": "^6.0.1",
|
|
39
|
-
"ts-node": "^10.9.2",
|
|
40
|
-
"tsc-watch": "^6.2.0"
|
|
20
|
+
"warpack": "0.0.1-dev.eb3e92a"
|
|
41
21
|
},
|
|
42
22
|
"publishConfig": {
|
|
43
23
|
"access": "public",
|
package/patch-lua.lua
CHANGED
|
@@ -1,5 +1,9 @@
|
|
|
1
|
+
local error = _G.error
|
|
1
2
|
local getmetatable = _G.getmetatable
|
|
2
3
|
local ipairs = _G.ipairs
|
|
4
|
+
local select = _G.select
|
|
5
|
+
local tostring = _G.tostring
|
|
6
|
+
local tableconcat = table.concat
|
|
3
7
|
|
|
4
8
|
_G.ipairs = function(t)
|
|
5
9
|
local metatable = getmetatable(t)
|
|
@@ -8,3 +12,14 @@ _G.ipairs = function(t)
|
|
|
8
12
|
end
|
|
9
13
|
return ipairs(t)
|
|
10
14
|
end
|
|
15
|
+
|
|
16
|
+
_G.assert = function(v, ...)
|
|
17
|
+
if not v then
|
|
18
|
+
local args = {}
|
|
19
|
+
for i = 1, select("#", ...) do
|
|
20
|
+
args[i] = tostring(select(i, ...))
|
|
21
|
+
end
|
|
22
|
+
error(tableconcat(args, " "))
|
|
23
|
+
end
|
|
24
|
+
return v, ...
|
|
25
|
+
end
|
package/patch-lualib.lua
CHANGED
|
@@ -3,7 +3,7 @@ local lualib = _G.require("lualib_bundle")
|
|
|
3
3
|
local next = _G.next
|
|
4
4
|
local ____type = _G.type
|
|
5
5
|
lualib.__TS__ArrayIsArray = function(value)
|
|
6
|
-
return ____type(value) == "table" and (value[1] ~= nil or (
|
|
6
|
+
return ____type(value) == "table" and (value[1] ~= nil or (next(value)) == nil) and value.constructor == nil
|
|
7
7
|
end
|
|
8
8
|
local __TS__SetDescriptor = lualib.__TS__SetDescriptor
|
|
9
9
|
lualib.__TS__ObjectDefineProperty = function(target, key, desc)
|
package/utility/arrays.d.ts
CHANGED
|
@@ -1,10 +1,16 @@
|
|
|
1
1
|
/** @noSelfInFile */
|
|
2
|
-
import { TupleOf } from "./types";
|
|
2
|
+
import { NonEmptyArray, ReadonlyNonEmptyArray, TupleOf } from "./types";
|
|
3
3
|
export declare const emptyArray: <T>() => readonly T[];
|
|
4
|
+
/** Checks for any element with `next` instead of computing the length. */
|
|
5
|
+
export declare const isNonEmptyArray: {
|
|
6
|
+
<T>(array: T[]): array is NonEmptyArray<T>;
|
|
7
|
+
<T>(array: readonly T[]): array is ReadonlyNonEmptyArray<T>;
|
|
8
|
+
};
|
|
4
9
|
export declare const joinToString: <T>(array: readonly T[], separator: string, transform?: (element: T) => string) => string;
|
|
5
10
|
export declare const arrayOfNotNull: <T>(...elements: readonly (T | undefined | null)[]) => T[];
|
|
6
11
|
export declare const array: <T, N extends number>(length: N, initialize: (index: number) => T) => TupleOf<T, N>;
|
|
7
12
|
export declare const toLuaSet: <T extends AnyNotNil>(array: readonly T[]) => LuaSet<T>;
|
|
13
|
+
export declare const contains: <T>(array: readonly T[], element: T) => boolean;
|
|
8
14
|
export declare const forEach: <T, Args extends any[]>(array: readonly T[], consumerOrKey: ((value: T, ...args: Args) => void) | KeysOfType<T, (this: T, ...args: Args) => void>, ...args: Args) => void;
|
|
9
15
|
export declare const all: {
|
|
10
16
|
<T>(array: readonly T[], transform: (value: T) => boolean): boolean;
|
|
@@ -22,6 +28,7 @@ export declare const mapToLuaSet: {
|
|
|
22
28
|
<T, R extends AnyNotNil>(array: readonly T[], transform: (value: T) => R): LuaSet<R>;
|
|
23
29
|
<T, K extends KeysOfType<T, AnyNotNil>>(array: readonly T[], key: K): LuaSet<T[K] extends AnyNotNil ? T[K] : never>;
|
|
24
30
|
};
|
|
31
|
+
export declare const flatten: <T>(array: readonly (readonly T[])[]) => T[];
|
|
25
32
|
export declare const flatMap: {
|
|
26
33
|
<T, R>(array: readonly T[], transform: (value: T) => readonly R[]): R[];
|
|
27
34
|
<T, K extends KeysOfType<T, readonly any[]>>(array: readonly T[], key: K): (T[K] extends readonly (infer R)[] ? R : never)[];
|
|
@@ -40,6 +47,7 @@ export declare const associateByIndexed: <K extends AnyNotNil, V>(array: readonl
|
|
|
40
47
|
export declare const associateWith: <K extends AnyNotNil, V>(array: readonly K[], valueSelector: (value: K) => V) => LuaMap<K, V>;
|
|
41
48
|
export declare const associateWithIndexed: <K extends AnyNotNil, V>(array: readonly K[], valueSelector: (index: number, value: K) => V) => LuaMap<K, V>;
|
|
42
49
|
export declare const filter: <T>(array: readonly T[], predicate: (value: T) => boolean) => T[];
|
|
50
|
+
export declare const filterNot: <T>(array: readonly T[], predicate: (value: T) => boolean) => T[];
|
|
43
51
|
export declare const average: (array: readonly number[]) => number;
|
|
44
52
|
export declare const sum: (array: readonly number[]) => number;
|
|
45
53
|
export declare const product: (array: readonly number[]) => number;
|
package/utility/arrays.lua
CHANGED
|
@@ -3,8 +3,11 @@ local __TS__New = ____lualib.__TS__New
|
|
|
3
3
|
local ____exports = {}
|
|
4
4
|
local ____exception = require("exception")
|
|
5
5
|
local IllegalArgumentException = ____exception.IllegalArgumentException
|
|
6
|
+
local ____functions = require("utility.functions")
|
|
7
|
+
local identity = ____functions.identity
|
|
6
8
|
local mathMax = math.max
|
|
7
9
|
local mathMin = math.min
|
|
10
|
+
local next = _G.next
|
|
8
11
|
local select = _G.select
|
|
9
12
|
local tableConcat = table.concat
|
|
10
13
|
local tableSort = table.sort
|
|
@@ -12,6 +15,10 @@ local EMPTY_ARRAY = {}
|
|
|
12
15
|
____exports.emptyArray = function()
|
|
13
16
|
return EMPTY_ARRAY
|
|
14
17
|
end
|
|
18
|
+
--- Checks for any element with `next` instead of computing the length.
|
|
19
|
+
____exports.isNonEmptyArray = function(array)
|
|
20
|
+
return (next(array)) ~= nil
|
|
21
|
+
end
|
|
15
22
|
____exports.joinToString = function(array, separator, transform)
|
|
16
23
|
if transform == nil then
|
|
17
24
|
transform = tostring
|
|
@@ -47,6 +54,14 @@ ____exports.toLuaSet = function(array)
|
|
|
47
54
|
end
|
|
48
55
|
return result
|
|
49
56
|
end
|
|
57
|
+
____exports.contains = function(array, element)
|
|
58
|
+
for i = 1, #array do
|
|
59
|
+
if array[i] == element then
|
|
60
|
+
return true
|
|
61
|
+
end
|
|
62
|
+
end
|
|
63
|
+
return false
|
|
64
|
+
end
|
|
50
65
|
____exports.forEach = function(array, consumerOrKey, ...)
|
|
51
66
|
if type(consumerOrKey) == "function" then
|
|
52
67
|
for i = 1, #array do
|
|
@@ -120,6 +135,7 @@ ____exports.mapToLuaSet = function(array, transform)
|
|
|
120
135
|
end
|
|
121
136
|
return result
|
|
122
137
|
end
|
|
138
|
+
____exports.flatten = function(array) return ____exports.flatMap(array, identity) end
|
|
123
139
|
____exports.flatMap = function(array, transform)
|
|
124
140
|
local result = {}
|
|
125
141
|
local k = 1
|
|
@@ -227,6 +243,18 @@ ____exports.filter = function(array, predicate)
|
|
|
227
243
|
end
|
|
228
244
|
return result
|
|
229
245
|
end
|
|
246
|
+
____exports.filterNot = function(array, predicate)
|
|
247
|
+
local result = {}
|
|
248
|
+
local j = 1
|
|
249
|
+
for i = 1, #array do
|
|
250
|
+
local value = array[i]
|
|
251
|
+
if not predicate(value) then
|
|
252
|
+
result[j] = value
|
|
253
|
+
j = j + 1
|
|
254
|
+
end
|
|
255
|
+
end
|
|
256
|
+
return result
|
|
257
|
+
end
|
|
230
258
|
____exports.average = function(array)
|
|
231
259
|
local sum = 0
|
|
232
260
|
local count = #array
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/** @noSelfInFile */
|
|
2
|
+
type Callback = {
|
|
3
|
+
readonly __callback: unique symbol;
|
|
4
|
+
};
|
|
5
|
+
export type CallbackId = number & {
|
|
6
|
+
readonly __callbackId: unique symbol;
|
|
7
|
+
};
|
|
8
|
+
export type CallbackArray = {
|
|
9
|
+
readonly __callbackArray: unique symbol;
|
|
10
|
+
} & Callback[];
|
|
11
|
+
export declare const callbackArray: () => CallbackArray;
|
|
12
|
+
export declare function addCallback<Args extends any[]>(this: void, array: CallbackArray, callback: (...args: Args) => unknown, ...args: Args): CallbackId;
|
|
13
|
+
export declare function clearCallbacks(this: void, array: CallbackArray): void;
|
|
14
|
+
export declare function consumeCallback(this: void, array: CallbackArray, id: CallbackId): void;
|
|
15
|
+
export declare function consumeCallbacks(this: void, array: CallbackArray): void;
|
|
16
|
+
export declare function invokeCallbacks(this: void, array: CallbackArray): void;
|
|
17
|
+
export {};
|