warscript 0.0.1-dev.c37d12c → 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 +18 -0
- package/attributes.lua +32 -0
- package/binaryreader.d.ts +1 -0
- package/binaryreader.lua +3 -0
- package/config.d.ts +5 -0
- package/config.lua +10 -0
- package/core/dummy.lua +4 -2
- package/core/types/effect.d.ts +24 -6
- package/core/types/effect.lua +169 -107
- package/core/types/frame.d.ts +24 -3
- package/core/types/frame.lua +198 -42
- package/core/types/group.d.ts +0 -1
- package/core/types/handle.d.ts +2 -1
- package/core/types/handle.lua +14 -9
- package/core/types/image.d.ts +0 -1
- package/core/types/item.d.ts +1 -0
- package/core/types/item.lua +1 -0
- package/core/types/missile.d.ts +2 -2
- package/core/types/missile.lua +8 -2
- 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 +18 -25
- package/core/types/sound.lua +113 -33
- 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 +13 -0
- package/core/util.d.ts +3 -1
- package/core/util.lua +127 -4
- package/decl/index.d.ts +1 -0
- 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/ability.d.ts +1 -1
- package/engine/behavior.d.ts +24 -11
- package/engine/behavior.lua +233 -73
- package/engine/behaviour/ability/always-enabled.d.ts +7 -0
- package/engine/behaviour/ability/always-enabled.lua +31 -0
- package/engine/behaviour/ability/apply-buff.d.ts +8 -5
- package/engine/behaviour/ability/apply-buff.lua +36 -4
- package/engine/behaviour/ability/apply-unit-behavior.d.ts +13 -4
- package/engine/behaviour/ability/apply-unit-behavior.lua +37 -9
- package/engine/behaviour/ability/damage.d.ts +43 -11
- package/engine/behaviour/ability/damage.lua +89 -39
- package/engine/behaviour/ability/emulate-impact.d.ts +6 -0
- package/engine/behaviour/ability/emulate-impact.lua +44 -0
- package/engine/behaviour/ability/heal.d.ts +33 -6
- package/engine/behaviour/ability/heal.lua +89 -10
- package/engine/behaviour/ability/instant-impact.d.ts +2 -2
- package/engine/behaviour/ability/instant-impact.lua +4 -15
- package/engine/behaviour/ability/on-command-impact.d.ts +9 -0
- package/engine/behaviour/ability/on-command-impact.lua +26 -0
- package/engine/behaviour/ability/remove-buffs.d.ts +25 -0
- package/engine/behaviour/ability/remove-buffs.lua +49 -0
- package/engine/behaviour/ability/restore-mana.d.ts +15 -0
- package/engine/behaviour/ability/restore-mana.lua +29 -0
- package/engine/behaviour/ability.d.ts +37 -7
- package/engine/behaviour/ability.lua +208 -27
- package/engine/behaviour/unit/stun-immunity.d.ts +12 -7
- package/engine/behaviour/unit/stun-immunity.lua +57 -31
- package/engine/behaviour/unit.d.ts +49 -4
- package/engine/behaviour/unit.lua +293 -2
- package/engine/buff.d.ts +177 -59
- package/engine/buff.lua +795 -281
- package/engine/game-map.d.ts +7 -0
- package/engine/game-map.lua +32 -0
- package/engine/index.d.ts +2 -1
- package/engine/internal/ability.d.ts +31 -15
- package/engine/internal/ability.lua +177 -104
- package/engine/internal/item/ability.lua +162 -4
- 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 +34 -18
- package/engine/internal/item.lua +308 -102
- package/engine/internal/mechanics/ability-duration.d.ts +1 -3
- package/engine/internal/mechanics/ability-duration.lua +3 -1
- package/engine/internal/mechanics/cast-ability.lua +89 -0
- package/engine/internal/misc/ability-disable-counter.d.ts +2 -0
- package/engine/internal/misc/ability-disable-counter.lua +13 -0
- package/engine/internal/misc/damage-metadata-by-target.d.ts +2 -0
- 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/auto-attack-speed-increase.d.ts +1 -1
- package/engine/internal/object-data/auto-attack-speed-increase.lua +2 -0
- package/engine/internal/object-data/evasion-probability.d.ts +2 -0
- package/engine/internal/object-data/evasion-probability.lua +16 -0
- 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 +45 -1
- package/engine/internal/unit/ability.lua +128 -17
- package/engine/internal/unit/add-item-to-slot-init.d.ts +2 -0
- package/engine/internal/unit/add-item-to-slot-init.lua +12 -0
- package/engine/internal/unit/add-item-to-slot.d.ts +2 -0
- package/engine/internal/unit/add-item-to-slot.lua +93 -0
- 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 +28 -8
- package/engine/internal/unit/bonus.lua +136 -9
- package/engine/internal/unit/buff.d.ts +2 -2
- package/engine/internal/unit/buff.lua +34 -19
- package/engine/internal/unit/detach-missiles.d.ts +7 -0
- package/engine/internal/unit/detach-missiles.lua +30 -0
- 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.d.ts +2 -0
- package/engine/internal/unit/ignore-events-items.lua +14 -0
- package/engine/internal/unit/interrupts.d.ts +12 -0
- package/engine/internal/unit/interrupts.lua +28 -0
- package/engine/internal/unit/inventory.d.ts +28 -0
- 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.d.ts +13 -0
- package/engine/internal/unit/main-selected.lua +36 -0
- 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 +75 -5
- 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+transport.lua +4 -10
- package/engine/internal/unit-missile-data.lua +58 -32
- package/engine/internal/unit-missile-launch.lua +70 -13
- package/engine/internal/unit.d.ts +91 -38
- package/engine/internal/unit.lua +669 -351
- package/engine/internal/utility.lua +12 -0
- package/engine/lightning.d.ts +12 -5
- package/engine/lightning.lua +48 -14
- package/engine/local-client.d.ts +35 -2
- package/engine/local-client.lua +367 -15
- package/engine/object-data/auxiliary/animation-name.d.ts +1 -0
- package/engine/object-data/auxiliary/animation-name.lua +16 -0
- 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 -3
- 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/combat-classification.d.ts +0 -2
- 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-eax.d.ts +10 -0
- package/engine/object-data/auxiliary/sound-eax.lua +2 -0
- package/engine/object-data/auxiliary/sound-preset-name.d.ts +5 -1
- package/engine/object-data/auxiliary/sound-set-name.d.ts +14 -3
- package/engine/object-data/auxiliary/tech-tree-dependency.d.ts +1 -1
- 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-configurable.d.ts +0 -1
- package/engine/object-data/entry/ability-type/blank-configurable.lua +12 -1
- 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 -1
- package/engine/object-data/entry/ability-type/blank-passive.lua +27 -7
- package/engine/object-data/entry/ability-type/blink.d.ts +10 -0
- package/engine/object-data/entry/ability-type/blink.lua +39 -0
- 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/channel.d.ts +0 -1
- 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/disease-cloud.lua +2 -2
- package/engine/object-data/entry/ability-type/engineering-upgrade.lua +2 -2
- package/engine/object-data/entry/ability-type/ensnare.d.ts +12 -0
- package/engine/object-data/entry/ability-type/ensnare.lua +52 -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/feral-spirit.lua +2 -2
- 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/mine.d.ts +10 -0
- package/engine/object-data/entry/ability-type/mine.lua +39 -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/phoenix-morph.lua +4 -4
- 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-dead.d.ts +17 -0
- package/engine/object-data/entry/ability-type/raise-dead.lua +78 -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/spirit-touch.d.ts +2 -2
- package/engine/object-data/entry/ability-type/spirit-touch.lua +6 -6
- 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/summon-quilbeast.lua +2 -2
- package/engine/object-data/entry/ability-type/summon-water-elemental.lua +2 -2
- 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 +48 -21
- package/engine/object-data/entry/ability-type.lua +377 -44
- package/engine/object-data/entry/buff-type/applicable.d.ts +0 -1
- package/engine/object-data/entry/buff-type/applicable.lua +143 -202
- package/engine/object-data/entry/buff-type/blank.d.ts +0 -1
- package/engine/object-data/entry/buff-type.d.ts +10 -13
- package/engine/object-data/entry/buff-type.lua +39 -29
- package/engine/object-data/entry/destructible-type.d.ts +32 -3
- package/engine/object-data/entry/destructible-type.lua +181 -0
- package/engine/object-data/entry/item-type/blank.d.ts +0 -1
- package/engine/object-data/entry/item-type.d.ts +32 -4
- package/engine/object-data/entry/item-type.lua +177 -2
- package/engine/object-data/entry/lightning-type.d.ts +6 -9
- package/engine/object-data/entry/lightning-type.lua +1 -1
- package/engine/object-data/entry/sound-preset.d.ts +33 -0
- package/engine/object-data/entry/sound-preset.lua +140 -0
- package/engine/object-data/entry/unit-type.d.ts +121 -6
- package/engine/object-data/entry/unit-type.lua +959 -118
- package/engine/object-data/entry/upgrade/blank.d.ts +0 -1
- package/engine/object-data/entry/upgrade.d.ts +2 -3
- package/engine/object-data/entry/upgrade.lua +4 -4
- package/engine/object-data/entry.d.ts +23 -17
- package/engine/object-data/entry.lua +68 -32
- package/engine/object-data/utility/object-data-entry-id-generator.lua +7 -0
- package/engine/object-field/ability.d.ts +33 -8
- package/engine/object-field/ability.lua +63 -3
- 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 -2
- package/engine/object-field/unit.lua +268 -4
- package/engine/object-field.d.ts +30 -11
- package/engine/object-field.lua +386 -122
- package/engine/random.d.ts +11 -0
- package/engine/random.lua +30 -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/sound-preset.d.ts +10 -0
- package/engine/standard/entries/sound-preset.lua +10 -0
- package/engine/standard/entries/unit-type.d.ts +47 -1
- package/engine/standard/entries/unit-type.lua +47 -1
- package/engine/standard/fields/ability.d.ts +5 -3
- package/engine/standard/fields/ability.lua +5 -3
- 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 +14 -0
- package/engine/unit.lua +23 -2
- package/event.d.ts +3 -4
- package/event.lua +9 -5
- package/global/vec2.lua +1 -0
- package/index.d.ts +1 -0
- package/index.lua +1 -0
- package/lualib_bundle.lua +147 -43
- package/math/vec2.d.ts +2 -9
- package/math.d.ts +2 -2
- package/math.lua +14 -0
- package/net/socket.d.ts +7 -1
- package/net/socket.lua +45 -4
- package/network.d.ts +1 -0
- package/network.lua +28 -3
- package/objutil/ability.d.ts +0 -1
- package/objutil/buff.d.ts +0 -1
- package/objutil/buff.lua +13 -12
- package/objutil/object.d.ts +0 -1
- package/objutil/object.lua +1 -1
- package/objutil/unit.d.ts +0 -1
- package/objutil/unit.lua +8 -0
- package/operation.d.ts +8 -1
- package/operation.lua +38 -18
- package/package.json +3 -24
- package/patch-lua.d.ts +0 -0
- package/patch-lua.lua +25 -0
- package/patch-lualib.lua +1 -1
- package/property.d.ts +55 -0
- package/property.lua +374 -0
- package/string.d.ts +30 -0
- package/string.lua +14 -0
- package/util/stream.d.ts +0 -1
- package/utility/arrays.d.ts +20 -6
- package/utility/arrays.lua +62 -3
- package/utility/bit-set.d.ts +0 -2
- 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/lazy.d.ts +2 -0
- package/utility/lazy.lua +14 -0
- package/utility/linked-map.d.ts +35 -0
- package/utility/linked-map.lua +107 -0
- package/utility/linked-set.d.ts +17 -4
- package/utility/linked-set.lua +70 -3
- package/utility/lua-maps.d.ts +16 -4
- package/utility/lua-maps.lua +53 -2
- package/utility/lua-sets.d.ts +3 -2
- 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/reflection.lua +11 -7
- package/utility/types.d.ts +6 -2
- package/utility/unordered-map.d.ts +27 -0
- package/utility/unordered-map.lua +99 -0
- package/core/mapbounds.d.ts +0 -8
- package/core/mapbounds.lua +0 -12
- package/core/types/order.d.ts +0 -25
- package/core/types/order.lua +0 -55
- /package/engine/internal/{object-data/armor-increase.d.ts → mechanics/cast-ability.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/local-client.lua
CHANGED
|
@@ -1,31 +1,186 @@
|
|
|
1
1
|
local ____lualib = require("lualib_bundle")
|
|
2
|
+
local __TS__New = ____lualib.__TS__New
|
|
2
3
|
local __TS__Class = ____lualib.__TS__Class
|
|
4
|
+
local __TS__InstanceOf = ____lualib.__TS__InstanceOf
|
|
3
5
|
local __TS__ObjectDefineProperty = ____lualib.__TS__ObjectDefineProperty
|
|
4
|
-
local __TS__New = ____lualib.__TS__New
|
|
5
6
|
local ____exports = {}
|
|
7
|
+
local actualizeTargetingModeState
|
|
6
8
|
local ____unit = require("core.types.unit")
|
|
7
9
|
local Unit = ____unit.Unit
|
|
8
10
|
local ____event = require("event")
|
|
11
|
+
local Event = ____event.Event
|
|
9
12
|
local TriggerEvent = ____event.TriggerEvent
|
|
10
|
-
local
|
|
11
|
-
local
|
|
13
|
+
local ____frame = require("core.types.frame")
|
|
14
|
+
local Frame = ____frame.Frame
|
|
15
|
+
local ____player = require("core.types.player")
|
|
16
|
+
local Player = ____player.Player
|
|
17
|
+
local ____timer = require("core.types.timer")
|
|
18
|
+
local Timer = ____timer.Timer
|
|
19
|
+
local ____color = require("core.types.color")
|
|
20
|
+
local Color = ____color.Color
|
|
21
|
+
local ____arrays = require("utility.arrays")
|
|
22
|
+
local array = ____arrays.array
|
|
23
|
+
local frameToPixelX = BlzFrameToPixelX
|
|
24
|
+
local frameToPixelY = BlzFrameToPixelY
|
|
25
|
+
local getHandleId = GetHandleId
|
|
12
26
|
local getLocalClientHeight = BlzGetLocalClientHeight
|
|
13
|
-
local
|
|
14
|
-
local getMouseFocusUnit = BlzGetMouseFocusUnit
|
|
27
|
+
local getLocalClientWidth = BlzGetLocalClientWidth
|
|
15
28
|
local getLocale = BlzGetLocale
|
|
16
|
-
local
|
|
29
|
+
local getMouseFocusUnit = BlzGetMouseFocusUnit
|
|
30
|
+
local getMouseScreenPosX = BlzGetMouseScreenPosX
|
|
31
|
+
local getMouseScreenPosY = BlzGetMouseScreenPosY
|
|
32
|
+
local frameGetText = BlzFrameGetText
|
|
33
|
+
local getUnitRealField = BlzGetUnitRealField
|
|
34
|
+
local getUnitState = GetUnitState
|
|
35
|
+
local getUnitTypeId = GetUnitTypeId
|
|
36
|
+
local isHeroUnitId = IsHeroUnitId
|
|
37
|
+
local isKeyPressed = BlzIsKeyPressed
|
|
38
|
+
local isLocalClientActive = BlzIsLocalClientActive
|
|
39
|
+
local isMetaKeyPressed = BlzIsMetaKeyPressed
|
|
40
|
+
local isMouseButtonPressed = BlzIsMouseButtonPressed
|
|
41
|
+
local loadTOCFile = BlzLoadTOCFile
|
|
42
|
+
local pingMinimap = PingMinimap
|
|
43
|
+
local pingMinimapEx = PingMinimapEx
|
|
44
|
+
local pixelToFrameX = BlzPixelToFrameX
|
|
45
|
+
local pixelToFrameY = BlzPixelToFrameY
|
|
46
|
+
local setFrameVisible = BlzFrameSetVisible
|
|
47
|
+
local tableSort = table.sort
|
|
48
|
+
local hdTocPath = "_warscript\\IsHD.toc"
|
|
49
|
+
local deTocPath = "_warscript\\IsDE.toc"
|
|
17
50
|
compiletime(function()
|
|
18
51
|
if currentMap then
|
|
19
|
-
local
|
|
20
|
-
currentMap:addFileString("_HD.w3mod\\" ..
|
|
21
|
-
currentMap:addFileString("_HD.w3mod\\" ..
|
|
52
|
+
local hdFdfPath = "_warscript\\IsHD.fdf"
|
|
53
|
+
currentMap:addFileString("_HD.w3mod\\" .. hdFdfPath, "\r\n")
|
|
54
|
+
currentMap:addFileString("_HD.w3mod\\" .. hdTocPath, hdFdfPath .. "\r\n")
|
|
55
|
+
local deFdfPath = "_warscript\\IsDE.fdf"
|
|
56
|
+
currentMap:addFileString("_DE.w3mod\\" .. deFdfPath, "\r\n")
|
|
57
|
+
currentMap:addFileString("_DE.w3mod\\" .. deTocPath, deFdfPath .. "\r\n")
|
|
22
58
|
end
|
|
23
59
|
end)
|
|
60
|
+
--- The portrait's health and mana texts show the focused unit's current and maximum values
|
|
61
|
+
-- as "current / maximum". Once they exist, these origin frames live for the whole game, so
|
|
62
|
+
-- the polling may read them every tick; the group panel's buttons, by contrast, are rebuilt
|
|
63
|
+
-- at any selection change and a retained button handle crashes the game on the first native
|
|
64
|
+
-- called with it. The frames are not there at map load, though, and appear at different
|
|
65
|
+
-- times on different clients: `Frame.byOrigin` returns undefined until then and balances
|
|
66
|
+
-- the handle allocation across clients, so it is asked again once a second.
|
|
67
|
+
local portraitHpText
|
|
68
|
+
local portraitManaText
|
|
69
|
+
local function actualizePortraitFrames()
|
|
70
|
+
portraitHpText = Frame:byOrigin(ORIGIN_FRAME_PORTRAIT_HP_TEXT)
|
|
71
|
+
portraitManaText = Frame:byOrigin(ORIGIN_FRAME_PORTRAIT_MANA_TEXT)
|
|
72
|
+
end
|
|
73
|
+
--- Finds "current / maximum" in the text, which may also carry color codes and other
|
|
74
|
+
-- decoration; returns -1 for both when there is no such pair.
|
|
75
|
+
local function parsePortraitValues(frame)
|
|
76
|
+
if frame == nil then
|
|
77
|
+
return -1, -1
|
|
78
|
+
end
|
|
79
|
+
local text = frameGetText(frame.handle)
|
|
80
|
+
local current, maximum = string.match(text, "(%d+)%s*/%s*(%d+)")
|
|
81
|
+
if current == nil or maximum == nil then
|
|
82
|
+
return -1, -1
|
|
83
|
+
end
|
|
84
|
+
return tonumber(current), tonumber(maximum)
|
|
85
|
+
end
|
|
86
|
+
--- Whether a unit value can be what the portrait shows as `shown`; the rounding rule is unknown.
|
|
87
|
+
local function matchesPortraitValue(value, shown)
|
|
88
|
+
return math.abs(value - shown) < 1
|
|
89
|
+
end
|
|
90
|
+
--- Whether the unit's health matches what the portrait shows; the health text is required.
|
|
91
|
+
local function matchesPortraitHealth(unit, hp, maxHp)
|
|
92
|
+
local handle = unit.handle
|
|
93
|
+
return maxHp >= 0 and matchesPortraitValue(
|
|
94
|
+
getUnitState(handle, UNIT_STATE_LIFE),
|
|
95
|
+
hp
|
|
96
|
+
) and matchesPortraitValue(
|
|
97
|
+
getUnitState(handle, UNIT_STATE_MAX_LIFE),
|
|
98
|
+
maxHp
|
|
99
|
+
)
|
|
100
|
+
end
|
|
101
|
+
--- Whether the unit has mana and it matches what the portrait shows. The mana text is not
|
|
102
|
+
-- redrawn for a unit without mana (it keeps the previously focused unit's values), so a
|
|
103
|
+
-- mana match is evidence for a unit, but a mismatch is no evidence against one without mana.
|
|
104
|
+
local function matchesPortraitMana(unit, mana, maxMana)
|
|
105
|
+
local handle = unit.handle
|
|
106
|
+
local unitMaxMana = getUnitState(handle, UNIT_STATE_MAX_MANA)
|
|
107
|
+
return maxMana >= 0 and unitMaxMana > 0 and matchesPortraitValue(
|
|
108
|
+
getUnitState(handle, UNIT_STATE_MANA),
|
|
109
|
+
mana
|
|
110
|
+
) and matchesPortraitValue(unitMaxMana, maxMana)
|
|
111
|
+
end
|
|
112
|
+
local localSelectedUnits = {}
|
|
113
|
+
local indexByLocalSelectedUnit = {}
|
|
114
|
+
local function compareUnitsSelectionPriority(a, b)
|
|
115
|
+
local aHandle = a.handle
|
|
116
|
+
local bHandle = b.handle
|
|
117
|
+
local priorityDelta = getUnitRealField(bHandle, UNIT_RF_PRIORITY) - getUnitRealField(aHandle, UNIT_RF_PRIORITY)
|
|
118
|
+
if priorityDelta ~= 0 then
|
|
119
|
+
return priorityDelta < 0
|
|
120
|
+
end
|
|
121
|
+
local aTypeId = getUnitTypeId(aHandle)
|
|
122
|
+
local bTypeId = getUnitTypeId(bHandle)
|
|
123
|
+
local orderDelta = (isHeroUnitId(aTypeId) and getHandleId(aHandle) or aTypeId) - (isHeroUnitId(bTypeId) and getHandleId(bHandle) or bTypeId)
|
|
124
|
+
return (orderDelta ~= 0 and orderDelta or indexByLocalSelectedUnit[a] - indexByLocalSelectedUnit[b]) < 0
|
|
125
|
+
end
|
|
126
|
+
local mainSelectedUnitChangeEvent
|
|
127
|
+
local previousMainSelectedUnit
|
|
128
|
+
local currentMainSelectedUnit
|
|
129
|
+
local lastTargetingModeState = false
|
|
130
|
+
local targetingModeEnterEvent = __TS__New(Event)
|
|
131
|
+
local targetingModeLeaveEvent = __TS__New(Event)
|
|
132
|
+
local targetingModeStateChangeEvent = __TS__New(Event)
|
|
24
133
|
____exports.LocalClient = __TS__Class()
|
|
25
134
|
local LocalClient = ____exports.LocalClient
|
|
26
135
|
LocalClient.name = "LocalClient"
|
|
27
136
|
function LocalClient.prototype.____constructor(self)
|
|
28
137
|
end
|
|
138
|
+
function LocalClient.pingMinimap(self, x, y, duration, redOrColor, greenOrFlashy, blue, flashy)
|
|
139
|
+
if redOrColor == nil then
|
|
140
|
+
pingMinimap(x, y, duration)
|
|
141
|
+
elseif __TS__InstanceOf(redOrColor, Color) then
|
|
142
|
+
pingMinimapEx(
|
|
143
|
+
x,
|
|
144
|
+
y,
|
|
145
|
+
duration,
|
|
146
|
+
redOrColor.r,
|
|
147
|
+
redOrColor.g,
|
|
148
|
+
redOrColor.b,
|
|
149
|
+
greenOrFlashy or false
|
|
150
|
+
)
|
|
151
|
+
else
|
|
152
|
+
pingMinimapEx(
|
|
153
|
+
x,
|
|
154
|
+
y,
|
|
155
|
+
duration,
|
|
156
|
+
redOrColor,
|
|
157
|
+
greenOrFlashy,
|
|
158
|
+
blue,
|
|
159
|
+
flashy or false
|
|
160
|
+
)
|
|
161
|
+
end
|
|
162
|
+
end
|
|
163
|
+
function LocalClient.isKeyPressed(self, key)
|
|
164
|
+
return isKeyPressed(key)
|
|
165
|
+
end
|
|
166
|
+
function LocalClient.isMetaKeyPressed(self, key)
|
|
167
|
+
return isMetaKeyPressed(key)
|
|
168
|
+
end
|
|
169
|
+
function LocalClient.isMouseButtonPressed(self, button)
|
|
170
|
+
return isMouseButtonPressed(button)
|
|
171
|
+
end
|
|
172
|
+
function LocalClient.screenToFrameX(self, x)
|
|
173
|
+
return pixelToFrameX(x)
|
|
174
|
+
end
|
|
175
|
+
function LocalClient.screenToFrameY(self, y)
|
|
176
|
+
return pixelToFrameY(y)
|
|
177
|
+
end
|
|
178
|
+
function LocalClient.frameToScreenX(self, x)
|
|
179
|
+
return frameToPixelX(x)
|
|
180
|
+
end
|
|
181
|
+
function LocalClient.frameToScreenY(self, y)
|
|
182
|
+
return frameToPixelY(y)
|
|
183
|
+
end
|
|
29
184
|
LocalClient.locale = getLocale()
|
|
30
185
|
__TS__ObjectDefineProperty(
|
|
31
186
|
LocalClient,
|
|
@@ -41,6 +196,13 @@ __TS__ObjectDefineProperty(
|
|
|
41
196
|
return getLocalClientHeight()
|
|
42
197
|
end}
|
|
43
198
|
)
|
|
199
|
+
__TS__ObjectDefineProperty(
|
|
200
|
+
LocalClient,
|
|
201
|
+
"isSD",
|
|
202
|
+
{get = function(self)
|
|
203
|
+
return true
|
|
204
|
+
end}
|
|
205
|
+
)
|
|
44
206
|
__TS__ObjectDefineProperty(
|
|
45
207
|
LocalClient,
|
|
46
208
|
"isHD",
|
|
@@ -48,11 +210,18 @@ __TS__ObjectDefineProperty(
|
|
|
48
210
|
return false
|
|
49
211
|
end}
|
|
50
212
|
)
|
|
213
|
+
__TS__ObjectDefineProperty(
|
|
214
|
+
LocalClient,
|
|
215
|
+
"isDE",
|
|
216
|
+
{get = function(self)
|
|
217
|
+
return false
|
|
218
|
+
end}
|
|
219
|
+
)
|
|
51
220
|
__TS__ObjectDefineProperty(
|
|
52
221
|
LocalClient,
|
|
53
222
|
"graphicsMode",
|
|
54
223
|
{get = function(self)
|
|
55
|
-
return
|
|
224
|
+
return 0
|
|
56
225
|
end}
|
|
57
226
|
)
|
|
58
227
|
__TS__ObjectDefineProperty(
|
|
@@ -62,6 +231,41 @@ __TS__ObjectDefineProperty(
|
|
|
62
231
|
return isLocalClientActive()
|
|
63
232
|
end}
|
|
64
233
|
)
|
|
234
|
+
__TS__ObjectDefineProperty(
|
|
235
|
+
LocalClient,
|
|
236
|
+
"isMinimized",
|
|
237
|
+
{get = function(self)
|
|
238
|
+
return getLocalClientHeight() == 0
|
|
239
|
+
end}
|
|
240
|
+
)
|
|
241
|
+
__TS__ObjectDefineProperty(
|
|
242
|
+
LocalClient,
|
|
243
|
+
"mouseScreenX",
|
|
244
|
+
{get = function(self)
|
|
245
|
+
return getMouseScreenPosX()
|
|
246
|
+
end}
|
|
247
|
+
)
|
|
248
|
+
__TS__ObjectDefineProperty(
|
|
249
|
+
LocalClient,
|
|
250
|
+
"mouseScreenY",
|
|
251
|
+
{get = function(self)
|
|
252
|
+
return getMouseScreenPosY()
|
|
253
|
+
end}
|
|
254
|
+
)
|
|
255
|
+
__TS__ObjectDefineProperty(
|
|
256
|
+
LocalClient,
|
|
257
|
+
"mouseFrameX",
|
|
258
|
+
{get = function(self)
|
|
259
|
+
return pixelToFrameX(getMouseScreenPosX())
|
|
260
|
+
end}
|
|
261
|
+
)
|
|
262
|
+
__TS__ObjectDefineProperty(
|
|
263
|
+
LocalClient,
|
|
264
|
+
"mouseFrameY",
|
|
265
|
+
{get = function(self)
|
|
266
|
+
return pixelToFrameY(getMouseScreenPosY())
|
|
267
|
+
end}
|
|
268
|
+
)
|
|
65
269
|
__TS__ObjectDefineProperty(
|
|
66
270
|
LocalClient,
|
|
67
271
|
"mouseFocusUnit",
|
|
@@ -69,6 +273,33 @@ __TS__ObjectDefineProperty(
|
|
|
69
273
|
return Unit:of(getMouseFocusUnit())
|
|
70
274
|
end}
|
|
71
275
|
)
|
|
276
|
+
__TS__ObjectDefineProperty(
|
|
277
|
+
LocalClient,
|
|
278
|
+
"mainSelectedUnit",
|
|
279
|
+
{get = function(self)
|
|
280
|
+
return currentMainSelectedUnit
|
|
281
|
+
end}
|
|
282
|
+
)
|
|
283
|
+
__TS__ObjectDefineProperty(
|
|
284
|
+
LocalClient,
|
|
285
|
+
"mainSelectedUnitChangeEvent",
|
|
286
|
+
{get = function(self)
|
|
287
|
+
if mainSelectedUnitChangeEvent == nil then
|
|
288
|
+
mainSelectedUnitChangeEvent = __TS__New(Event)
|
|
289
|
+
end
|
|
290
|
+
return mainSelectedUnitChangeEvent
|
|
291
|
+
end}
|
|
292
|
+
)
|
|
293
|
+
__TS__ObjectDefineProperty(
|
|
294
|
+
LocalClient,
|
|
295
|
+
"isInTargetingMode",
|
|
296
|
+
{get = function(self)
|
|
297
|
+
return actualizeTargetingModeState()
|
|
298
|
+
end}
|
|
299
|
+
)
|
|
300
|
+
LocalClient.targetingModeEnterEvent = targetingModeEnterEvent
|
|
301
|
+
LocalClient.targetingModeLeaveEvent = targetingModeLeaveEvent
|
|
302
|
+
LocalClient.targetingModeStateChangeEvent = targetingModeStateChangeEvent
|
|
72
303
|
LocalClient.onDisconnect = __TS__New(
|
|
73
304
|
TriggerEvent,
|
|
74
305
|
function(trigger)
|
|
@@ -76,11 +307,132 @@ LocalClient.onDisconnect = __TS__New(
|
|
|
76
307
|
end,
|
|
77
308
|
function() return end
|
|
78
309
|
)
|
|
310
|
+
local function actualizeMainSelectedUnit()
|
|
311
|
+
Unit:getSelectionOf(Player["local"], localSelectedUnits)
|
|
312
|
+
local selectionCount = #localSelectedUnits
|
|
313
|
+
for i = 1, selectionCount do
|
|
314
|
+
indexByLocalSelectedUnit[localSelectedUnits[i]] = i
|
|
315
|
+
end
|
|
316
|
+
tableSort(localSelectedUnits, compareUnitsSelectionPriority)
|
|
317
|
+
local mainSelectedUnit
|
|
318
|
+
if selectionCount <= 1 then
|
|
319
|
+
mainSelectedUnit = localSelectedUnits[1]
|
|
320
|
+
else
|
|
321
|
+
local hp, maxHp = parsePortraitValues(portraitHpText)
|
|
322
|
+
local mana, maxMana = parsePortraitValues(portraitManaText)
|
|
323
|
+
if maxHp >= 0 then
|
|
324
|
+
local healthMatch
|
|
325
|
+
for i = 1, selectionCount do
|
|
326
|
+
local unit = localSelectedUnits[i]
|
|
327
|
+
if matchesPortraitHealth(unit, hp, maxHp) then
|
|
328
|
+
if matchesPortraitMana(unit, mana, maxMana) then
|
|
329
|
+
mainSelectedUnit = unit
|
|
330
|
+
break
|
|
331
|
+
end
|
|
332
|
+
if healthMatch == nil then
|
|
333
|
+
healthMatch = unit
|
|
334
|
+
end
|
|
335
|
+
end
|
|
336
|
+
end
|
|
337
|
+
if mainSelectedUnit == nil then
|
|
338
|
+
mainSelectedUnit = healthMatch
|
|
339
|
+
end
|
|
340
|
+
end
|
|
341
|
+
if mainSelectedUnit == nil and previousMainSelectedUnit ~= nil then
|
|
342
|
+
for i = 1, selectionCount do
|
|
343
|
+
if localSelectedUnits[i] == previousMainSelectedUnit then
|
|
344
|
+
mainSelectedUnit = previousMainSelectedUnit
|
|
345
|
+
break
|
|
346
|
+
end
|
|
347
|
+
end
|
|
348
|
+
end
|
|
349
|
+
if mainSelectedUnit == nil then
|
|
350
|
+
mainSelectedUnit = localSelectedUnits[1]
|
|
351
|
+
end
|
|
352
|
+
end
|
|
353
|
+
for i = 1, selectionCount do
|
|
354
|
+
indexByLocalSelectedUnit[localSelectedUnits[i]] = nil
|
|
355
|
+
localSelectedUnits[i] = nil
|
|
356
|
+
end
|
|
357
|
+
currentMainSelectedUnit = mainSelectedUnit
|
|
358
|
+
if mainSelectedUnitChangeEvent ~= nil and mainSelectedUnit ~= previousMainSelectedUnit then
|
|
359
|
+
local previousPreviousMainSelectedUnit = previousMainSelectedUnit
|
|
360
|
+
previousMainSelectedUnit = mainSelectedUnit
|
|
361
|
+
Event.invoke(mainSelectedUnitChangeEvent, previousPreviousMainSelectedUnit, previousMainSelectedUnit)
|
|
362
|
+
end
|
|
363
|
+
end
|
|
364
|
+
local commandButtons = array(
|
|
365
|
+
12,
|
|
366
|
+
function(i) return Frame:byOrigin(ORIGIN_FRAME_COMMAND_BUTTON, i) end
|
|
367
|
+
)
|
|
368
|
+
local commandButtonContainers = array(
|
|
369
|
+
12,
|
|
370
|
+
function(i) return Frame:byName("CommandButton_" .. tostring(i)) end
|
|
371
|
+
)
|
|
372
|
+
local function getTargetingModeState()
|
|
373
|
+
for ____, container in ipairs(commandButtonContainers) do
|
|
374
|
+
if container.hideCounter > 0 then
|
|
375
|
+
setFrameVisible(container.handle, true)
|
|
376
|
+
end
|
|
377
|
+
end
|
|
378
|
+
local targeting = false
|
|
379
|
+
local failed = false
|
|
380
|
+
local failure
|
|
381
|
+
do
|
|
382
|
+
local function ____catch(____error)
|
|
383
|
+
failed = true
|
|
384
|
+
failure = ____error
|
|
385
|
+
end
|
|
386
|
+
local ____try, ____hasReturned = pcall(function()
|
|
387
|
+
targeting = commandButtons[12].visible
|
|
388
|
+
for i = 0, 10 do
|
|
389
|
+
if commandButtons[i + 1].visible then
|
|
390
|
+
targeting = false
|
|
391
|
+
break
|
|
392
|
+
end
|
|
393
|
+
end
|
|
394
|
+
end)
|
|
395
|
+
if not ____try then
|
|
396
|
+
____catch(____hasReturned)
|
|
397
|
+
end
|
|
398
|
+
end
|
|
399
|
+
for ____, container in ipairs(commandButtonContainers) do
|
|
400
|
+
if container.hideCounter > 0 then
|
|
401
|
+
setFrameVisible(container.handle, false)
|
|
402
|
+
end
|
|
403
|
+
end
|
|
404
|
+
if failed then
|
|
405
|
+
error(failure, 0)
|
|
406
|
+
end
|
|
407
|
+
return targeting
|
|
408
|
+
end
|
|
409
|
+
actualizeTargetingModeState = function()
|
|
410
|
+
if getTargetingModeState() then
|
|
411
|
+
if not lastTargetingModeState then
|
|
412
|
+
lastTargetingModeState = true
|
|
413
|
+
Event.invoke(targetingModeEnterEvent)
|
|
414
|
+
Event.invoke(targetingModeStateChangeEvent)
|
|
415
|
+
end
|
|
416
|
+
return true
|
|
417
|
+
end
|
|
418
|
+
if lastTargetingModeState then
|
|
419
|
+
lastTargetingModeState = false
|
|
420
|
+
Event.invoke(targetingModeLeaveEvent)
|
|
421
|
+
Event.invoke(targetingModeStateChangeEvent)
|
|
422
|
+
end
|
|
423
|
+
return false
|
|
424
|
+
end
|
|
425
|
+
Timer.onPeriod[1]:addListener(actualizePortraitFrames)
|
|
426
|
+
Timer.onPeriod[1 / 64]:addListener(function()
|
|
427
|
+
actualizeMainSelectedUnit()
|
|
428
|
+
actualizeTargetingModeState()
|
|
429
|
+
end)
|
|
79
430
|
warpack.afterMapInit(function()
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
)
|
|
431
|
+
local isDE = loadTOCFile(deTocPath)
|
|
432
|
+
local isHD = not isDE and loadTOCFile(hdTocPath)
|
|
433
|
+
rawset(____exports.LocalClient, "isDE", isDE)
|
|
434
|
+
rawset(____exports.LocalClient, "isHD", isHD)
|
|
435
|
+
rawset(____exports.LocalClient, "isSD", not isDE and not isHD)
|
|
436
|
+
rawset(____exports.LocalClient, "graphicsMode", isDE and 2 or (isHD and 1 or 0))
|
|
85
437
|
end)
|
|
86
438
|
return ____exports
|
|
@@ -1,2 +1,18 @@
|
|
|
1
1
|
local ____exports = {}
|
|
2
|
+
local animationNames = {
|
|
3
|
+
attack = true,
|
|
4
|
+
birth = true,
|
|
5
|
+
death = true,
|
|
6
|
+
decay = true,
|
|
7
|
+
dissipate = true,
|
|
8
|
+
morph = true,
|
|
9
|
+
portrait = true,
|
|
10
|
+
sleep = true,
|
|
11
|
+
spell = true,
|
|
12
|
+
stand = true,
|
|
13
|
+
walk = true
|
|
14
|
+
}
|
|
15
|
+
____exports.isAnimationName = function(value)
|
|
16
|
+
return animationNames[value] ~= nil
|
|
17
|
+
end
|
|
2
18
|
return ____exports
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
local ____exports = {}
|
|
2
|
+
local ____records = require("utility.records")
|
|
3
|
+
local invertRecord = ____records.invertRecord
|
|
4
|
+
local stringByArmorType = {
|
|
5
|
+
[0] = "small",
|
|
6
|
+
[1] = "medium",
|
|
7
|
+
[2] = "large",
|
|
8
|
+
[3] = "fort",
|
|
9
|
+
[4] = "normal",
|
|
10
|
+
[5] = "hero",
|
|
11
|
+
[6] = "divine",
|
|
12
|
+
[7] = "none"
|
|
13
|
+
}
|
|
14
|
+
local armorTypeByString = invertRecord(stringByArmorType)
|
|
15
|
+
local nativeByArmorType = {
|
|
16
|
+
[0] = DEFENSE_TYPE_LIGHT,
|
|
17
|
+
[1] = DEFENSE_TYPE_MEDIUM,
|
|
18
|
+
[2] = DEFENSE_TYPE_LARGE,
|
|
19
|
+
[3] = DEFENSE_TYPE_FORT,
|
|
20
|
+
[4] = DEFENSE_TYPE_NORMAL,
|
|
21
|
+
[5] = DEFENSE_TYPE_HERO,
|
|
22
|
+
[6] = DEFENSE_TYPE_DIVINE,
|
|
23
|
+
[7] = DEFENSE_TYPE_NONE
|
|
24
|
+
}
|
|
25
|
+
local armorTypeByNative = invertRecord(nativeByArmorType)
|
|
26
|
+
---
|
|
27
|
+
-- @internal For use by internal systems only.
|
|
28
|
+
____exports.armorTypeToString = function(armorType)
|
|
29
|
+
return stringByArmorType[armorType]
|
|
30
|
+
end
|
|
31
|
+
---
|
|
32
|
+
-- @internal For use by internal systems only.
|
|
33
|
+
____exports.stringToArmorType = function(____string)
|
|
34
|
+
return armorTypeByString[____string] or 7
|
|
35
|
+
end
|
|
36
|
+
---
|
|
37
|
+
-- @internal For use by internal systems only.
|
|
38
|
+
____exports.armorTypeToNative = function(armorType)
|
|
39
|
+
return nativeByArmorType[armorType]
|
|
40
|
+
end
|
|
41
|
+
---
|
|
42
|
+
-- @internal For use by internal systems only.
|
|
43
|
+
____exports.nativeToArmorType = function(armorType)
|
|
44
|
+
return armorTypeByNative[armorType]
|
|
45
|
+
end
|
|
46
|
+
return ____exports
|
|
@@ -1,15 +1,26 @@
|
|
|
1
|
-
/// <reference types="@typescript-to-lua/language-extensions" />
|
|
2
1
|
/** @noSelfInFile */
|
|
3
2
|
import { ModelNodeName } from "./model-node-name";
|
|
4
3
|
import { ModelNodeQualifier } from "./model-node-qualifier";
|
|
5
4
|
import { Optional } from "../../../utility/types";
|
|
5
|
+
import { EffectParameters } from "../../../core/types/effect";
|
|
6
6
|
export type AttachmentPreset = {
|
|
7
7
|
modelPath: string;
|
|
8
8
|
nodeName: ModelNodeName;
|
|
9
9
|
nodeQualifiers: ModelNodeQualifier[];
|
|
10
10
|
};
|
|
11
|
-
|
|
12
|
-
export
|
|
11
|
+
/** Where an effect attaches: a model node, e.g. the chest or the left hand. */
|
|
12
|
+
export type AttachmentPoint = {
|
|
13
|
+
nodeName: ModelNodeName;
|
|
14
|
+
nodeQualifiers: ModelNodeQualifier[];
|
|
15
|
+
};
|
|
16
|
+
export type AttachmentPointInput = Optional<AttachmentPoint, "nodeQualifiers">;
|
|
17
|
+
export declare const attachmentPointToNodeFQN: (attachmentPoint: AttachmentPointInput) => string;
|
|
18
|
+
export type EffectPresetWithParameters = AttachmentPreset & {
|
|
19
|
+
parameters?: EffectParameters;
|
|
20
|
+
};
|
|
21
|
+
export type AttachmentPresetInput<T extends AttachmentPreset = AttachmentPreset> = Optional<T, "nodeName" | "nodeQualifiers"> | string;
|
|
22
|
+
export type EffectPresetWithParametersInput = AttachmentPresetInput<EffectPresetWithParameters>;
|
|
23
|
+
export declare const toEffectPreset: (effectPresetInput: EffectPresetWithParametersInput) => EffectPresetWithParameters;
|
|
13
24
|
export declare const extractAttachmentPresetInputModelPath: (attachmentPresetInput: AttachmentPresetInput | undefined) => string;
|
|
14
25
|
export declare const extractAttachmentPresetInputNodeFQN: (attachmentPresetInput: AttachmentPresetInput | undefined) => string;
|
|
15
26
|
export declare const splitAttachmentNodeFQN: (attachmentNodeFQN: string) => LuaMultiReturn<[attachmentNodeName: ModelNodeName, attachmentNodeQualifiers: ModelNodeQualifier[]]>;
|
|
@@ -1,9 +1,17 @@
|
|
|
1
1
|
local ____lualib = require("lualib_bundle")
|
|
2
|
+
local __TS__ArrayJoin = ____lualib.__TS__ArrayJoin
|
|
2
3
|
local __TS__StringSplit = ____lualib.__TS__StringSplit
|
|
3
4
|
local __TS__ArraySlice = ____lualib.__TS__ArraySlice
|
|
4
5
|
local ____exports = {}
|
|
5
|
-
____exports.
|
|
6
|
-
|
|
6
|
+
____exports.attachmentPointToNodeFQN = function(attachmentPoint) return table.concat(
|
|
7
|
+
{
|
|
8
|
+
attachmentPoint.nodeName,
|
|
9
|
+
table.unpack(attachmentPoint.nodeQualifiers or ({}))
|
|
10
|
+
},
|
|
11
|
+
","
|
|
12
|
+
) end
|
|
13
|
+
____exports.toEffectPreset = function(effectPresetInput)
|
|
14
|
+
return type(effectPresetInput) == "string" and ({modelPath = effectPresetInput, nodeName = "origin", nodeQualifiers = {}}) or ({modelPath = effectPresetInput.modelPath, nodeName = effectPresetInput.nodeName or "origin", nodeQualifiers = effectPresetInput.nodeQualifiers or ({}), parameters = effectPresetInput.parameters})
|
|
7
15
|
end
|
|
8
16
|
____exports.extractAttachmentPresetInputModelPath = function(attachmentPresetInput)
|
|
9
17
|
return type(attachmentPresetInput) == "string" and attachmentPresetInput or (attachmentPresetInput and attachmentPresetInput.modelPath or "")
|
|
@@ -12,7 +20,7 @@ ____exports.extractAttachmentPresetInputNodeFQN = function(attachmentPresetInput
|
|
|
12
20
|
if type(attachmentPresetInput) == "string" or attachmentPresetInput == nil then
|
|
13
21
|
return ""
|
|
14
22
|
end
|
|
15
|
-
return
|
|
23
|
+
return __TS__ArrayJoin(
|
|
16
24
|
{
|
|
17
25
|
attachmentPresetInput.nodeName,
|
|
18
26
|
table.unpack(attachmentPresetInput.nodeQualifiers or ({}))
|
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
/** @noSelfInFile */
|
|
2
2
|
export declare const enum AttackType {
|
|
3
|
-
|
|
4
|
-
NORMAL =
|
|
5
|
-
PIERCE =
|
|
6
|
-
SIEGE =
|
|
7
|
-
|
|
8
|
-
CHAOS =
|
|
9
|
-
|
|
10
|
-
HERO = "hero"
|
|
3
|
+
SPELL = 0,
|
|
4
|
+
NORMAL = 1,
|
|
5
|
+
PIERCE = 2,
|
|
6
|
+
SIEGE = 3,
|
|
7
|
+
MAGIC = 4,
|
|
8
|
+
CHAOS = 5,
|
|
9
|
+
HERO = 6
|
|
11
10
|
}
|
|
@@ -1,2 +1,44 @@
|
|
|
1
1
|
local ____exports = {}
|
|
2
|
+
local ____records = require("utility.records")
|
|
3
|
+
local invertRecord = ____records.invertRecord
|
|
4
|
+
local stringByAttackType = {
|
|
5
|
+
[1] = "normal",
|
|
6
|
+
[2] = "pierce",
|
|
7
|
+
[3] = "siege",
|
|
8
|
+
[0] = "spells",
|
|
9
|
+
[5] = "chaos",
|
|
10
|
+
[4] = "magic",
|
|
11
|
+
[6] = "hero"
|
|
12
|
+
}
|
|
13
|
+
local attackTypeByString = invertRecord(stringByAttackType)
|
|
14
|
+
local nativeByAttackType = {
|
|
15
|
+
[1] = ATTACK_TYPE_MELEE,
|
|
16
|
+
[2] = ATTACK_TYPE_PIERCE,
|
|
17
|
+
[3] = ATTACK_TYPE_SIEGE,
|
|
18
|
+
[0] = ATTACK_TYPE_NORMAL,
|
|
19
|
+
[5] = ATTACK_TYPE_CHAOS,
|
|
20
|
+
[4] = ATTACK_TYPE_MAGIC,
|
|
21
|
+
[6] = ATTACK_TYPE_HERO
|
|
22
|
+
}
|
|
23
|
+
local attackTypeByNative = invertRecord(nativeByAttackType)
|
|
24
|
+
---
|
|
25
|
+
-- @internal For use by internal systems only.
|
|
26
|
+
____exports.attackTypeToString = function(attackType)
|
|
27
|
+
return attackType ~= nil and stringByAttackType[attackType] or "unknown"
|
|
28
|
+
end
|
|
29
|
+
---
|
|
30
|
+
-- @internal For use by internal systems only.
|
|
31
|
+
____exports.stringToAttackType = function(____string)
|
|
32
|
+
return attackTypeByString[____string]
|
|
33
|
+
end
|
|
34
|
+
---
|
|
35
|
+
-- @internal For use by internal systems only.
|
|
36
|
+
____exports.attackTypeToNative = function(attackType)
|
|
37
|
+
return nativeByAttackType[attackType]
|
|
38
|
+
end
|
|
39
|
+
---
|
|
40
|
+
-- @internal For use by internal systems only.
|
|
41
|
+
____exports.nativeToAttackType = function(attackType)
|
|
42
|
+
return attackTypeByNative[attackType]
|
|
43
|
+
end
|
|
2
44
|
return ____exports
|