warscript 0.0.1-dev.75f6e33 → 0.0.1-dev.7769f27
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 +18 -26
- package/core/types/sound.lua +99 -53
- 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 +6 -0
- package/engine/behaviour/ability/damage.d.ts +13 -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 +17 -6
- package/engine/behaviour/ability.lua +81 -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 +41 -2
- package/engine/behaviour/unit.lua +270 -6
- package/engine/buff.d.ts +79 -27
- package/engine/buff.lua +454 -186
- 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/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 +14 -0
- package/engine/internal/unit/bonus.lua +102 -8
- package/engine/internal/unit/buff.d.ts +2 -2
- package/engine/internal/unit/buff.lua +34 -19
- package/engine/internal/unit/equipment-inventory.d.ts +44 -0
- package/engine/internal/unit/equipment-inventory.lua +233 -0
- package/engine/internal/unit/expiration-timer.lua +1 -1
- package/engine/internal/unit/extended-inventory.d.ts +25 -0
- package/engine/internal/unit/extended-inventory.lua +99 -0
- package/engine/internal/unit/fly-height.d.ts +7 -0
- package/engine/internal/unit/fly-height.lua +20 -0
- package/engine/internal/unit/ignore-events-items.lua +10 -1
- package/engine/internal/unit/interrupts.d.ts +12 -0
- package/engine/internal/unit/interrupts.lua +28 -0
- package/engine/internal/unit/{item.d.ts → inventory.d.ts} +7 -3
- package/engine/internal/unit/inventory.lua +87 -0
- package/engine/internal/unit/item-container.d.ts +25 -0
- package/engine/internal/unit/item-container.lua +11 -0
- package/engine/internal/unit/item-order-events.d.ts +17 -0
- package/engine/internal/unit/item-order-events.lua +67 -0
- package/engine/internal/unit/item-slot.d.ts +27 -0
- package/engine/internal/unit/item-slot.lua +92 -0
- package/engine/internal/unit/main-selected.lua +12 -27
- package/engine/internal/unit/order.d.ts +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 +44 -34
- package/engine/internal/unit.lua +398 -324
- 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-eax.d.ts +10 -0
- package/engine/object-data/auxiliary/sound-eax.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/curse.lua +2 -2
- 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/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/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-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/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 +318 -21
- 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 +19 -2
- package/engine/object-data/entry/sound-preset.lua +104 -0
- package/engine/object-data/entry/unit-type.d.ts +64 -6
- package/engine/object-data/entry/unit-type.lua +531 -85
- 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
|
@@ -3,33 +3,52 @@ local __TS__Class = ____lualib.__TS__Class
|
|
|
3
3
|
local __TS__New = ____lualib.__TS__New
|
|
4
4
|
local __TS__SetDescriptor = ____lualib.__TS__SetDescriptor
|
|
5
5
|
local ____exports = {}
|
|
6
|
+
local ____timer = require("core.types.timer")
|
|
7
|
+
local Timer = ____timer.Timer
|
|
8
|
+
local ____player_2Dlocal_2Dhandle = require("engine.internal.misc.player-local-handle")
|
|
9
|
+
local PLAYER_LOCAL_HANDLE = ____player_2Dlocal_2Dhandle.PLAYER_LOCAL_HANDLE
|
|
10
|
+
local ____preconditions = require("utility.preconditions")
|
|
11
|
+
local check = ____preconditions.check
|
|
12
|
+
local ____frame_2Dcoordinates = require("engine.internal.misc.frame-coordinates")
|
|
13
|
+
local FRAME_MAX_Y = ____frame_2Dcoordinates.FRAME_MAX_Y
|
|
14
|
+
local FRAME_MIN_Y = ____frame_2Dcoordinates.FRAME_MIN_Y
|
|
15
|
+
local getFrameMinXMaxX = ____frame_2Dcoordinates.getFrameMinXMaxX
|
|
16
|
+
local ____get_2Dterrain_2Dz = require("engine.internal.misc.get-terrain-z")
|
|
17
|
+
local getTerrainZ = ____get_2Dterrain_2Dz.getTerrainZ
|
|
6
18
|
local getHandleId = GetHandleId
|
|
7
19
|
local setCameraField = SetCameraField
|
|
8
20
|
local getCameraField = GetCameraField
|
|
9
21
|
local setCameraPosition = SetCameraPosition
|
|
22
|
+
local getCameraEyePositionX = GetCameraEyePositionX
|
|
23
|
+
local getCameraEyePositionY = GetCameraEyePositionY
|
|
24
|
+
local getCameraEyePositionZ = GetCameraEyePositionZ
|
|
10
25
|
local getCameraTargetPositionX = GetCameraTargetPositionX
|
|
11
26
|
local getCameraTargetPositionY = GetCameraTargetPositionY
|
|
12
27
|
local resetToGameCamera = ResetToGameCamera
|
|
28
|
+
local cos = math.cos
|
|
13
29
|
local deg = math.deg
|
|
14
|
-
local
|
|
30
|
+
local sin = math.sin
|
|
31
|
+
local sqrt = math.sqrt
|
|
15
32
|
local memoized = {}
|
|
16
33
|
____exports.PlayerCamera = __TS__Class()
|
|
17
34
|
local PlayerCamera = ____exports.PlayerCamera
|
|
18
35
|
PlayerCamera.name = "PlayerCamera"
|
|
19
36
|
function PlayerCamera.prototype.____constructor(self, player)
|
|
20
37
|
local id = getHandleId(player)
|
|
21
|
-
|
|
22
|
-
error("Double-constructor run player camera!")
|
|
23
|
-
end
|
|
38
|
+
check(memoized[id] == nil)
|
|
24
39
|
memoized[id] = self
|
|
25
40
|
self.player = player
|
|
26
|
-
self.isLocal = player ==
|
|
41
|
+
self.isLocal = player == PLAYER_LOCAL_HANDLE
|
|
27
42
|
end
|
|
28
43
|
function PlayerCamera.prototype.reset(self)
|
|
29
44
|
if self.isLocal then
|
|
30
45
|
resetToGameCamera(0)
|
|
31
46
|
end
|
|
32
47
|
end
|
|
48
|
+
function PlayerCamera.isUnitInView(self, unit)
|
|
49
|
+
local ____, ____, isInView = ____exports.worldCoordinatesToFrame(unit.x, unit.y, unit.z)
|
|
50
|
+
return isInView
|
|
51
|
+
end
|
|
33
52
|
function PlayerCamera.of(self, player)
|
|
34
53
|
return memoized[getHandleId(player)] or __TS__New(____exports.PlayerCamera, player)
|
|
35
54
|
end
|
|
@@ -159,4 +178,103 @@ __TS__SetDescriptor(
|
|
|
159
178
|
},
|
|
160
179
|
true
|
|
161
180
|
)
|
|
181
|
+
local cameraEyeX = 0
|
|
182
|
+
local cameraEyeY = 0
|
|
183
|
+
local cameraEyeZ = 0
|
|
184
|
+
local cameraAngleOfAttack = 0
|
|
185
|
+
local cameraAngleOfAttackCos = 0
|
|
186
|
+
local cameraAngleOfAttackSin = 0
|
|
187
|
+
local cameraRotation = 0
|
|
188
|
+
local cameraRotationCos = 0
|
|
189
|
+
local cameraRotationSin = 0
|
|
190
|
+
local cameraAngleOfAttackCosRotationCos = 0
|
|
191
|
+
local cameraAngleOfAttackCosRotationSin = 0
|
|
192
|
+
local cameraAngleOfAttackSinRotationCos = 0
|
|
193
|
+
local cameraAngleOfAttackSinRotationSin = 0
|
|
194
|
+
local yCenterScreenShift = 0
|
|
195
|
+
local scaleFactor = 0
|
|
196
|
+
local frameMinX = 0
|
|
197
|
+
local frameMaxX = 0
|
|
198
|
+
local isCameraViewPrecalculated = false
|
|
199
|
+
local function precalculateCameraView()
|
|
200
|
+
cameraEyeX = getCameraEyePositionX()
|
|
201
|
+
cameraEyeY = getCameraEyePositionY()
|
|
202
|
+
cameraEyeZ = getCameraEyePositionZ()
|
|
203
|
+
cameraAngleOfAttack = getCameraField(CAMERA_FIELD_ANGLE_OF_ATTACK)
|
|
204
|
+
cameraAngleOfAttackCos = cos(cameraAngleOfAttack)
|
|
205
|
+
cameraAngleOfAttackSin = sin(cameraAngleOfAttack)
|
|
206
|
+
cameraRotation = getCameraField(CAMERA_FIELD_ROTATION)
|
|
207
|
+
cameraRotationCos = cos(cameraRotation)
|
|
208
|
+
cameraRotationSin = sin(cameraRotation)
|
|
209
|
+
cameraAngleOfAttackCosRotationCos = cameraAngleOfAttackCos * cameraRotationCos
|
|
210
|
+
cameraAngleOfAttackCosRotationSin = cameraAngleOfAttackCos * cameraRotationSin
|
|
211
|
+
cameraAngleOfAttackSinRotationCos = cameraAngleOfAttackSin * cameraRotationCos
|
|
212
|
+
cameraAngleOfAttackSinRotationSin = cameraAngleOfAttackSin * cameraRotationSin
|
|
213
|
+
yCenterScreenShift = 0.1284 * cameraAngleOfAttackCos
|
|
214
|
+
local cameraFieldOfView = getCameraField(CAMERA_FIELD_FIELD_OF_VIEW)
|
|
215
|
+
scaleFactor = 0.0524 * cameraFieldOfView ^ 3 - 0.0283 * cameraFieldOfView ^ 2 + 1.061 * cameraFieldOfView
|
|
216
|
+
frameMinX, frameMaxX = getFrameMinXMaxX()
|
|
217
|
+
isCameraViewPrecalculated = true
|
|
218
|
+
end
|
|
219
|
+
Timer.onPeriod[1 / 64]:addListener(
|
|
220
|
+
4,
|
|
221
|
+
function()
|
|
222
|
+
isCameraViewPrecalculated = false
|
|
223
|
+
end
|
|
224
|
+
)
|
|
225
|
+
---
|
|
226
|
+
-- @internal For use by internal systems only.
|
|
227
|
+
____exports.worldCoordinatesToFrame = function(x, y, z)
|
|
228
|
+
if not isCameraViewPrecalculated then
|
|
229
|
+
precalculateCameraView()
|
|
230
|
+
end
|
|
231
|
+
local dx = x - cameraEyeX
|
|
232
|
+
local dy = y - cameraEyeY
|
|
233
|
+
local dz = z - cameraEyeZ
|
|
234
|
+
local xPrime = scaleFactor * (-cameraAngleOfAttackCosRotationCos * dx - cameraAngleOfAttackCosRotationSin * dy - cameraAngleOfAttackSin * dz)
|
|
235
|
+
local frameX = 0.4 + (cameraRotationCos * dy - cameraRotationSin * dx) / xPrime
|
|
236
|
+
local frameY = 0.42625 - yCenterScreenShift + (cameraAngleOfAttackSinRotationCos * dx + cameraAngleOfAttackSinRotationSin * dy - cameraAngleOfAttackCos * dz) / xPrime
|
|
237
|
+
return frameX, frameY, xPrime < 0 and frameX >= frameMinX and frameX <= frameMaxX and frameY >= FRAME_MIN_Y and frameY <= FRAME_MAX_Y
|
|
238
|
+
end
|
|
239
|
+
---
|
|
240
|
+
-- @internal For use by internal systems only.
|
|
241
|
+
____exports.frameCoordinatesToWorld = function(x, y)
|
|
242
|
+
if not isCameraViewPrecalculated then
|
|
243
|
+
precalculateCameraView()
|
|
244
|
+
end
|
|
245
|
+
local a = (x - 0.4) * scaleFactor
|
|
246
|
+
local b = (0.42625 - yCenterScreenShift - y) * scaleFactor
|
|
247
|
+
local nx = 1 / sqrt(1 + a * a + b * b)
|
|
248
|
+
local ny = sqrt(1 - (1 + b * b) * nx * nx)
|
|
249
|
+
local nz = sqrt(1 - nx * nx - ny * ny)
|
|
250
|
+
if a > 0 then
|
|
251
|
+
ny = -ny
|
|
252
|
+
end
|
|
253
|
+
if b < 0 then
|
|
254
|
+
nz = -nz
|
|
255
|
+
end
|
|
256
|
+
local nxPrime = cameraAngleOfAttackCosRotationCos * nx - cameraRotationSin * ny + cameraAngleOfAttackSinRotationCos * nz
|
|
257
|
+
local nyPrime = cameraAngleOfAttackCosRotationSin * nx + cameraRotationCos * ny + cameraAngleOfAttackSinRotationSin * nz
|
|
258
|
+
local nzPrime = -cameraAngleOfAttackSin * nx + cameraAngleOfAttackCos * nz
|
|
259
|
+
local zGuess = getTerrainZ(cameraEyeX, cameraEyeY)
|
|
260
|
+
local xGuess = cameraEyeX + nxPrime * (cameraEyeZ - zGuess) / nzPrime
|
|
261
|
+
local yGuess = cameraEyeY + nyPrime * (cameraEyeZ - zGuess) / nzPrime
|
|
262
|
+
local zWorld = getTerrainZ(xGuess, yGuess)
|
|
263
|
+
local deltaZ = zWorld - zGuess
|
|
264
|
+
zGuess = zWorld
|
|
265
|
+
local zWorldOld = zWorld
|
|
266
|
+
local deltaZOld = deltaZ
|
|
267
|
+
local i = 0
|
|
268
|
+
while (deltaZ > 1 or deltaZ < -1) and i < 50 do
|
|
269
|
+
xGuess = cameraEyeX + nxPrime * (cameraEyeZ - zGuess) / nzPrime
|
|
270
|
+
yGuess = cameraEyeY + nyPrime * (cameraEyeZ - zGuess) / nzPrime
|
|
271
|
+
zWorld = getTerrainZ(xGuess, yGuess)
|
|
272
|
+
deltaZ = zWorld - zGuess
|
|
273
|
+
zGuess = (deltaZOld * zWorld - deltaZ * zWorldOld) / (deltaZOld - deltaZ)
|
|
274
|
+
zWorldOld = zWorld
|
|
275
|
+
deltaZOld = deltaZ
|
|
276
|
+
i = i + 1
|
|
277
|
+
end
|
|
278
|
+
return xGuess, yGuess, zWorld, i < 50
|
|
279
|
+
end
|
|
162
280
|
return ____exports
|
|
@@ -10,6 +10,7 @@ local ____color = require("core.types.color")
|
|
|
10
10
|
local Color = ____color.Color
|
|
11
11
|
local ____exception = require("exception")
|
|
12
12
|
local IllegalStateException = ____exception.IllegalStateException
|
|
13
|
+
local getHandleId = GetHandleId
|
|
13
14
|
local byId = {}
|
|
14
15
|
local byName = {}
|
|
15
16
|
____exports.PlayerColor = __TS__Class()
|
|
@@ -81,7 +82,7 @@ PlayerColor.data = util.contextFn(
|
|
|
81
82
|
PLAYER_COLOR_SNOW,
|
|
82
83
|
PLAYER_COLOR_EMERALD,
|
|
83
84
|
PLAYER_COLOR_PEANUT,
|
|
84
|
-
|
|
85
|
+
PLAYER_COLOR_BLACK
|
|
85
86
|
}
|
|
86
87
|
local rgbaColors = {
|
|
87
88
|
Color:of(255, 2, 2),
|
|
@@ -141,7 +142,7 @@ PlayerColor.data = util.contextFn(
|
|
|
141
142
|
do
|
|
142
143
|
local i = 0
|
|
143
144
|
while i < #handles do
|
|
144
|
-
data[
|
|
145
|
+
data[getHandleId(handles[i + 1])] = {rgba = rgbaColors[i + 1], name = names[i + 1]}
|
|
145
146
|
i = i + 1
|
|
146
147
|
end
|
|
147
148
|
end
|
|
@@ -172,7 +173,7 @@ PlayerColor.coal = ____exports.PlayerColor:of(PLAYER_COLOR_COAL)
|
|
|
172
173
|
PlayerColor.snow = ____exports.PlayerColor:of(PLAYER_COLOR_SNOW)
|
|
173
174
|
PlayerColor.emerald = ____exports.PlayerColor:of(PLAYER_COLOR_EMERALD)
|
|
174
175
|
PlayerColor.peanut = ____exports.PlayerColor:of(PLAYER_COLOR_PEANUT)
|
|
175
|
-
PlayerColor.black = ____exports.PlayerColor:of(
|
|
176
|
+
PlayerColor.black = ____exports.PlayerColor:of(PLAYER_COLOR_BLACK)
|
|
176
177
|
PlayerColor.all = {
|
|
177
178
|
____exports.PlayerColor.red,
|
|
178
179
|
____exports.PlayerColor.blue,
|
package/core/types/sound.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
/** @noSelfInFile */
|
|
2
2
|
import { Handle, HandleDestructor } from "./handle";
|
|
3
3
|
import { Unit } from "./unit";
|
|
4
|
+
import { SoundEax } from "../../engine/object-data/auxiliary/sound-eax";
|
|
4
5
|
export declare enum SoundChannel {
|
|
5
6
|
General = 0,
|
|
6
7
|
UnitSelection = 1,
|
|
@@ -18,16 +19,7 @@ export declare enum SoundChannel {
|
|
|
18
19
|
Birth = 13,
|
|
19
20
|
Fire = 14
|
|
20
21
|
}
|
|
21
|
-
export
|
|
22
|
-
Default = "DefaultEAXON",
|
|
23
|
-
Acknowledgements = "HeroAcksEAX",
|
|
24
|
-
Environment = "DoodadsEAX",
|
|
25
|
-
Drums = "KotoDrumsEAX",
|
|
26
|
-
Attacks = "CombatSoundsEAX",
|
|
27
|
-
Abilities = "SpellsEAX",
|
|
28
|
-
Missiles = "MissilesEAX"
|
|
29
|
-
}
|
|
30
|
-
export type SoundPreset = Readonly<{
|
|
22
|
+
export type SoundSettings = Readonly<{
|
|
31
23
|
channel?: SoundChannel;
|
|
32
24
|
eax?: SoundEax;
|
|
33
25
|
fadeInRate?: number;
|
|
@@ -36,35 +28,35 @@ export type SoundPreset = Readonly<{
|
|
|
36
28
|
volume?: number;
|
|
37
29
|
pitch?: number;
|
|
38
30
|
}>;
|
|
39
|
-
export type
|
|
31
|
+
export type Sound3DSettings = SoundSettings & Readonly<{
|
|
40
32
|
stopWhenOutOfRange?: boolean;
|
|
41
33
|
minDistance?: number;
|
|
42
34
|
maxDistance?: number;
|
|
43
35
|
distanceCutoff?: number;
|
|
44
36
|
}>;
|
|
45
|
-
export declare namespace
|
|
46
|
-
const UI:
|
|
47
|
-
const Music:
|
|
48
|
-
const Attack:
|
|
49
|
-
const Ability:
|
|
50
|
-
const AbilityLooping:
|
|
51
|
-
const Missile:
|
|
37
|
+
export declare namespace SoundSettings {
|
|
38
|
+
const UI: SoundSettings;
|
|
39
|
+
const Music: SoundSettings;
|
|
40
|
+
const Attack: Sound3DSettings;
|
|
41
|
+
const Ability: Sound3DSettings;
|
|
42
|
+
const AbilityLooping: Sound3DSettings;
|
|
43
|
+
const Missile: Sound3DSettings;
|
|
52
44
|
}
|
|
53
45
|
export declare class Sound extends Handle<jsound, [fadeOut?: boolean]> {
|
|
54
46
|
private _volume?;
|
|
55
47
|
protected onDestroy(fadeOut?: boolean): HandleDestructor;
|
|
56
48
|
get volume(): number;
|
|
57
49
|
set volume(v: number);
|
|
58
|
-
start(milliseconds?: number): void;
|
|
50
|
+
start(milliseconds?: number, fadeIn?: boolean): void;
|
|
59
51
|
stop(fadeOut?: boolean): void;
|
|
60
52
|
restart(milliseconds?: number): void;
|
|
61
|
-
static play(fileName: string, preset:
|
|
62
|
-
static create(fileName: string, preset:
|
|
53
|
+
static play(fileName: string, preset: SoundSettings): void;
|
|
54
|
+
static create(fileName: string, preset: SoundSettings): Sound;
|
|
63
55
|
}
|
|
64
56
|
export declare class Sound3D extends Sound {
|
|
65
|
-
static playAtPosition(fileName: string, preset:
|
|
66
|
-
static playOnUnit(fileName: string, preset:
|
|
67
|
-
static playFromLabel(label: string, preset:
|
|
68
|
-
static createAtPosition(fileName: string, preset:
|
|
69
|
-
static createOnUnit(fileName: string, preset:
|
|
57
|
+
static playAtPosition(fileName: string, preset: Sound3DSettings, x?: number, y?: number, z?: number): void;
|
|
58
|
+
static playOnUnit(fileName: string, preset: Sound3DSettings, unit: Unit): void;
|
|
59
|
+
static playFromLabel(label: string, preset: Sound3DSettings, ...positionOrUnit: [Unit] | [number, number, number?]): void;
|
|
60
|
+
static createAtPosition(fileName: string, preset: Sound3DSettings, x?: number, y?: number, z?: number): Sound3D;
|
|
61
|
+
static createOnUnit(fileName: string, preset: Sound3DSettings, unit: Unit): Sound3D;
|
|
70
62
|
}
|
package/core/types/sound.lua
CHANGED
|
@@ -5,20 +5,25 @@ local __TS__SetDescriptor = ____lualib.__TS__SetDescriptor
|
|
|
5
5
|
local ____exports = {}
|
|
6
6
|
local ____handle = require("core.types.handle")
|
|
7
7
|
local Handle = ____handle.Handle
|
|
8
|
+
local ____sound_2Dpreset = require("engine.object-data.entry.sound-preset")
|
|
9
|
+
local SoundPreset = ____sound_2Dpreset.SoundPreset
|
|
10
|
+
local ____random = require("engine.random")
|
|
11
|
+
local randomInteger = ____random.randomInteger
|
|
12
|
+
local attachSoundToUnit = AttachSoundToUnit
|
|
8
13
|
local createSound = CreateSound
|
|
9
14
|
local createSoundFromLabel = CreateSoundFromLabel
|
|
10
|
-
local
|
|
15
|
+
local killSoundWhenDone = KillSoundWhenDone
|
|
11
16
|
local setSoundChannel = SetSoundChannel
|
|
17
|
+
local setSoundDistanceCutoff = SetSoundDistanceCutoff
|
|
18
|
+
local setSoundDistances = SetSoundDistances
|
|
19
|
+
local setSoundPitch = SetSoundPitch
|
|
20
|
+
local setSoundPlayPosition = SetSoundPlayPosition
|
|
12
21
|
local setSoundPosition = SetSoundPosition
|
|
13
22
|
local setSoundVolume = SetSoundVolume
|
|
14
|
-
local setSoundDistances = SetSoundDistances
|
|
15
|
-
local setSoundDistanceCutoff = SetSoundDistanceCutoff
|
|
16
23
|
local startSound = StartSound
|
|
17
|
-
local
|
|
24
|
+
local startSoundEx = StartSoundEx
|
|
18
25
|
local stopSound = StopSound
|
|
19
|
-
|
|
20
|
-
local killSoundWhenDone = KillSoundWhenDone
|
|
21
|
-
____exports.SoundChannel = SoundChannel or ({})
|
|
26
|
+
____exports.SoundChannel = ____exports.SoundChannel or ({})
|
|
22
27
|
____exports.SoundChannel.General = 0
|
|
23
28
|
____exports.SoundChannel[____exports.SoundChannel.General] = "General"
|
|
24
29
|
____exports.SoundChannel.UnitSelection = 1
|
|
@@ -49,29 +54,21 @@ ____exports.SoundChannel.Birth = 13
|
|
|
49
54
|
____exports.SoundChannel[____exports.SoundChannel.Birth] = "Birth"
|
|
50
55
|
____exports.SoundChannel.Fire = 14
|
|
51
56
|
____exports.SoundChannel[____exports.SoundChannel.Fire] = "Fire"
|
|
52
|
-
____exports.
|
|
53
|
-
|
|
54
|
-
____exports.SoundEax.Acknowledgements = "HeroAcksEAX"
|
|
55
|
-
____exports.SoundEax.Environment = "DoodadsEAX"
|
|
56
|
-
____exports.SoundEax.Drums = "KotoDrumsEAX"
|
|
57
|
-
____exports.SoundEax.Attacks = "CombatSoundsEAX"
|
|
58
|
-
____exports.SoundEax.Abilities = "SpellsEAX"
|
|
59
|
-
____exports.SoundEax.Missiles = "MissilesEAX"
|
|
60
|
-
____exports.SoundPreset = {}
|
|
61
|
-
local SoundPreset = ____exports.SoundPreset
|
|
57
|
+
____exports.SoundSettings = {}
|
|
58
|
+
local SoundSettings = ____exports.SoundSettings
|
|
62
59
|
do
|
|
63
|
-
|
|
64
|
-
|
|
60
|
+
SoundSettings.UI = {channel = ____exports.SoundChannel.UI, eax = "DefaultEAXON", fadeInRate = 12700, fadeOutRate = 12700}
|
|
61
|
+
SoundSettings.Music = {
|
|
65
62
|
channel = ____exports.SoundChannel.Music,
|
|
66
|
-
eax =
|
|
63
|
+
eax = "DefaultEAXON",
|
|
67
64
|
fadeInRate = 12700,
|
|
68
65
|
fadeOutRate = 12700,
|
|
69
66
|
looping = true
|
|
70
67
|
}
|
|
71
|
-
|
|
72
|
-
|
|
68
|
+
SoundSettings.Attack = {channel = ____exports.SoundChannel.Combat, eax = "CombatSoundsEAX", fadeInRate = 10, fadeOutRate = 10}
|
|
69
|
+
SoundSettings.Ability = {
|
|
73
70
|
channel = ____exports.SoundChannel.Animations,
|
|
74
|
-
eax =
|
|
71
|
+
eax = "SpellsEAX",
|
|
75
72
|
stopWhenOutOfRange = true,
|
|
76
73
|
volume = 127,
|
|
77
74
|
fadeInRate = 1,
|
|
@@ -81,9 +78,9 @@ do
|
|
|
81
78
|
maxDistance = 3500,
|
|
82
79
|
distanceCutoff = 3000
|
|
83
80
|
}
|
|
84
|
-
|
|
81
|
+
SoundSettings.AbilityLooping = {
|
|
85
82
|
channel = ____exports.SoundChannel.Birth,
|
|
86
|
-
eax =
|
|
83
|
+
eax = "SpellsEAX",
|
|
87
84
|
looping = true,
|
|
88
85
|
stopWhenOutOfRange = true,
|
|
89
86
|
volume = 127,
|
|
@@ -94,9 +91,9 @@ do
|
|
|
94
91
|
maxDistance = 3000,
|
|
95
92
|
distanceCutoff = 3000
|
|
96
93
|
}
|
|
97
|
-
|
|
94
|
+
SoundSettings.Missile = {
|
|
98
95
|
channel = ____exports.SoundChannel.Animations,
|
|
99
|
-
eax =
|
|
96
|
+
eax = "MissilesEAX",
|
|
100
97
|
stopWhenOutOfRange = true,
|
|
101
98
|
volume = 127,
|
|
102
99
|
fadeInRate = 1,
|
|
@@ -107,6 +104,29 @@ do
|
|
|
107
104
|
distanceCutoff = 3000
|
|
108
105
|
}
|
|
109
106
|
end
|
|
107
|
+
local customSoundPresetDataByLabel = postcompile(function()
|
|
108
|
+
local customSoundPresetDataByLabel = {}
|
|
109
|
+
for ____, soundPreset in ipairs(SoundPreset:getAll()) do
|
|
110
|
+
if soundPreset.isCustom then
|
|
111
|
+
customSoundPresetDataByLabel[soundPreset.id] = {
|
|
112
|
+
filePaths = soundPreset.filePaths,
|
|
113
|
+
volume = soundPreset.volume,
|
|
114
|
+
pitch = soundPreset.pitch,
|
|
115
|
+
channel = soundPreset.channel,
|
|
116
|
+
minimumDistance = soundPreset.minimumDistance,
|
|
117
|
+
maximumDistance = soundPreset.maximumDistance,
|
|
118
|
+
distanceCutoff = soundPreset.distanceCutoff,
|
|
119
|
+
eax = soundPreset.eax
|
|
120
|
+
}
|
|
121
|
+
end
|
|
122
|
+
end
|
|
123
|
+
return customSoundPresetDataByLabel
|
|
124
|
+
end)
|
|
125
|
+
---
|
|
126
|
+
-- @internal For use by internal systems only.
|
|
127
|
+
____exports.isSoundLabelCustom = function(label)
|
|
128
|
+
return customSoundPresetDataByLabel[label] ~= nil
|
|
129
|
+
end
|
|
110
130
|
local function createPresetSound(fileName, preset)
|
|
111
131
|
local ____fileName_1 = fileName
|
|
112
132
|
local ____preset_looping_0 = preset.looping
|
|
@@ -120,7 +140,7 @@ local function createPresetSound(fileName, preset)
|
|
|
120
140
|
true,
|
|
121
141
|
preset.fadeInRate or 12700,
|
|
122
142
|
preset.fadeOutRate or 12700,
|
|
123
|
-
preset.eax or
|
|
143
|
+
preset.eax or "DefaultEAXON"
|
|
124
144
|
)
|
|
125
145
|
setSoundChannel(sound, preset.channel or ____exports.SoundChannel.General)
|
|
126
146
|
setSoundVolume(sound, preset.volume or 127)
|
|
@@ -143,7 +163,7 @@ local function createPreset3DSound(fileName, preset)
|
|
|
143
163
|
____preset_stopWhenOutOfRange_3,
|
|
144
164
|
preset.fadeInRate or 12700,
|
|
145
165
|
preset.fadeOutRate or 12700,
|
|
146
|
-
preset.eax or
|
|
166
|
+
preset.eax or "DefaultEAXON"
|
|
147
167
|
)
|
|
148
168
|
setSoundChannel(sound, preset.channel or ____exports.SoundChannel.General)
|
|
149
169
|
setSoundVolume(sound, preset.volume or 127)
|
|
@@ -153,29 +173,51 @@ local function createPreset3DSound(fileName, preset)
|
|
|
153
173
|
return sound
|
|
154
174
|
end
|
|
155
175
|
local function createPreset3DSoundFromLabel(label, preset)
|
|
156
|
-
local
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
____preset_looping_5 =
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
____preset_stopWhenOutOfRange_6 =
|
|
176
|
+
local customSoundPresetData = customSoundPresetDataByLabel[label]
|
|
177
|
+
if customSoundPresetData == nil then
|
|
178
|
+
local ____label_7 = label
|
|
179
|
+
local ____preset_looping_5 = preset.looping
|
|
180
|
+
if ____preset_looping_5 == nil then
|
|
181
|
+
____preset_looping_5 = false
|
|
182
|
+
end
|
|
183
|
+
local ____preset_stopWhenOutOfRange_6 = preset.stopWhenOutOfRange
|
|
184
|
+
if ____preset_stopWhenOutOfRange_6 == nil then
|
|
185
|
+
____preset_stopWhenOutOfRange_6 = true
|
|
186
|
+
end
|
|
187
|
+
return createSoundFromLabel(
|
|
188
|
+
____label_7,
|
|
189
|
+
____preset_looping_5,
|
|
190
|
+
true,
|
|
191
|
+
____preset_stopWhenOutOfRange_6,
|
|
192
|
+
preset.fadeInRate or 12700,
|
|
193
|
+
preset.fadeOutRate or 12700
|
|
194
|
+
)
|
|
195
|
+
else
|
|
196
|
+
local ____customSoundPresetData_filePaths_index_10 = customSoundPresetData.filePaths[randomInteger(#customSoundPresetData.filePaths - 1) + 1]
|
|
197
|
+
local ____preset_looping_8 = preset.looping
|
|
198
|
+
if ____preset_looping_8 == nil then
|
|
199
|
+
____preset_looping_8 = false
|
|
200
|
+
end
|
|
201
|
+
local ____preset_stopWhenOutOfRange_9 = preset.stopWhenOutOfRange
|
|
202
|
+
if ____preset_stopWhenOutOfRange_9 == nil then
|
|
203
|
+
____preset_stopWhenOutOfRange_9 = true
|
|
204
|
+
end
|
|
205
|
+
local sound = createSound(
|
|
206
|
+
____customSoundPresetData_filePaths_index_10,
|
|
207
|
+
____preset_looping_8,
|
|
208
|
+
true,
|
|
209
|
+
____preset_stopWhenOutOfRange_9,
|
|
210
|
+
preset.fadeInRate or 12700,
|
|
211
|
+
preset.fadeOutRate or 12700,
|
|
212
|
+
customSoundPresetData.eax
|
|
213
|
+
)
|
|
214
|
+
setSoundChannel(sound, customSoundPresetData.channel)
|
|
215
|
+
setSoundVolume(sound, customSoundPresetData.volume)
|
|
216
|
+
setSoundPitch(sound, customSoundPresetData.pitch)
|
|
217
|
+
setSoundDistances(sound, customSoundPresetData.minimumDistance, customSoundPresetData.maximumDistance)
|
|
218
|
+
setSoundDistanceCutoff(sound, customSoundPresetData.distanceCutoff)
|
|
219
|
+
return sound
|
|
164
220
|
end
|
|
165
|
-
local sound = createSoundFromLabel(
|
|
166
|
-
____label_7,
|
|
167
|
-
____preset_looping_5,
|
|
168
|
-
true,
|
|
169
|
-
____preset_stopWhenOutOfRange_6,
|
|
170
|
-
preset.fadeInRate or 12700,
|
|
171
|
-
preset.fadeOutRate or 12700
|
|
172
|
-
)
|
|
173
|
-
setSoundChannel(sound, preset.channel or ____exports.SoundChannel.General)
|
|
174
|
-
setSoundVolume(sound, preset.volume or 127)
|
|
175
|
-
setSoundPitch(sound, preset.pitch or 1)
|
|
176
|
-
setSoundDistances(sound, preset.minDistance or 600, preset.maxDistance or 8000)
|
|
177
|
-
setSoundDistanceCutoff(sound, preset.distanceCutoff or 1500)
|
|
178
|
-
return sound
|
|
179
221
|
end
|
|
180
222
|
____exports.Sound = __TS__Class()
|
|
181
223
|
local Sound = ____exports.Sound
|
|
@@ -185,8 +227,12 @@ function Sound.prototype.onDestroy(self, fadeOut)
|
|
|
185
227
|
stopSound(self.handle, true, fadeOut or false)
|
|
186
228
|
return Handle.prototype.onDestroy(self)
|
|
187
229
|
end
|
|
188
|
-
function Sound.prototype.start(self, milliseconds)
|
|
189
|
-
|
|
230
|
+
function Sound.prototype.start(self, milliseconds, fadeIn)
|
|
231
|
+
if fadeIn == nil then
|
|
232
|
+
startSound(self.handle)
|
|
233
|
+
else
|
|
234
|
+
startSoundEx(self.handle, fadeIn)
|
|
235
|
+
end
|
|
190
236
|
if milliseconds then
|
|
191
237
|
setSoundPlayPosition(self.handle, milliseconds)
|
|
192
238
|
end
|
package/core/types/tileCell.d.ts
CHANGED
|
@@ -1,13 +1,28 @@
|
|
|
1
1
|
/** @noSelfInFile */
|
|
2
|
-
|
|
3
|
-
|
|
2
|
+
import { AttributesHolder } from "../../attributes";
|
|
3
|
+
export declare class TileCell extends AttributesHolder implements Readonly<Vec2> {
|
|
4
|
+
/** Identifies the cell the same way on every client; see {@link TileCell.getById}. */
|
|
5
|
+
readonly id: number;
|
|
4
6
|
readonly x: number;
|
|
5
7
|
readonly y: number;
|
|
6
8
|
readonly z: undefined;
|
|
7
|
-
protected constructor(
|
|
9
|
+
protected constructor(
|
|
10
|
+
/** Identifies the cell the same way on every client; see {@link TileCell.getById}. */
|
|
11
|
+
id: number, x: number, y: number, z: undefined);
|
|
12
|
+
get up(): TileCell;
|
|
13
|
+
get down(): TileCell;
|
|
14
|
+
get left(): TileCell;
|
|
15
|
+
get right(): TileCell;
|
|
16
|
+
get terrainTypeId(): number;
|
|
17
|
+
set terrainTypeId(terrainTypeId: number);
|
|
18
|
+
get terrainVariance(): number;
|
|
19
|
+
set terrainVariance(terrainVariance: number);
|
|
20
|
+
randomizeTerrainVariance(): void;
|
|
8
21
|
isInRangeOf(x: number, y: number, range: number): boolean;
|
|
9
22
|
isInRangeOf(tileCell: TileCell, range: number): boolean;
|
|
10
23
|
static getInRect(minX: number, minY: number, maxX: number, maxY: number): TileCell[];
|
|
11
24
|
static getInRange(x: number, y: number, range: number): TileCell[];
|
|
12
25
|
static of(this: void, x: number, y: number): TileCell;
|
|
26
|
+
/** The cell with the given {@link id}, e.g. one received over the network. */
|
|
27
|
+
static getById(this: void, id: number): TileCell;
|
|
13
28
|
}
|
package/core/types/tileCell.lua
CHANGED
|
@@ -1,7 +1,14 @@
|
|
|
1
1
|
local ____lualib = require("lualib_bundle")
|
|
2
2
|
local __TS__Class = ____lualib.__TS__Class
|
|
3
|
+
local __TS__ClassExtends = ____lualib.__TS__ClassExtends
|
|
3
4
|
local __TS__New = ____lualib.__TS__New
|
|
5
|
+
local __TS__SetDescriptor = ____lualib.__TS__SetDescriptor
|
|
4
6
|
local ____exports = {}
|
|
7
|
+
local ____attributes = require("attributes")
|
|
8
|
+
local AttributesHolder = ____attributes.AttributesHolder
|
|
9
|
+
local getTerrainType = GetTerrainType
|
|
10
|
+
local setTerrainType = SetTerrainType
|
|
11
|
+
local getTerrainVariance = GetTerrainVariance
|
|
5
12
|
local abs = math.abs
|
|
6
13
|
local ____type = math.type
|
|
7
14
|
local ult = math.ult
|
|
@@ -9,13 +16,27 @@ local tileCellById = {}
|
|
|
9
16
|
____exports.TileCell = __TS__Class()
|
|
10
17
|
local TileCell = ____exports.TileCell
|
|
11
18
|
TileCell.name = "TileCell"
|
|
19
|
+
__TS__ClassExtends(TileCell, AttributesHolder)
|
|
12
20
|
function TileCell.prototype.____constructor(self, id, x, y, z)
|
|
21
|
+
AttributesHolder.prototype.____constructor(self)
|
|
13
22
|
self.id = id
|
|
14
23
|
self.x = x
|
|
15
24
|
self.y = y
|
|
16
25
|
self.z = z
|
|
17
26
|
tileCellById[id] = self
|
|
18
27
|
end
|
|
28
|
+
function TileCell.prototype.randomizeTerrainVariance(self)
|
|
29
|
+
local x = self.x
|
|
30
|
+
local y = self.y
|
|
31
|
+
setTerrainType(
|
|
32
|
+
x,
|
|
33
|
+
y,
|
|
34
|
+
getTerrainType(x, y),
|
|
35
|
+
-1,
|
|
36
|
+
1,
|
|
37
|
+
1
|
|
38
|
+
)
|
|
39
|
+
end
|
|
19
40
|
function TileCell.prototype.isInRangeOf(self, x, y, range)
|
|
20
41
|
if range == nil then
|
|
21
42
|
range = y
|
|
@@ -97,4 +118,91 @@ function TileCell.of(x, y)
|
|
|
97
118
|
nil
|
|
98
119
|
)
|
|
99
120
|
end
|
|
121
|
+
function TileCell.getById(id)
|
|
122
|
+
local yId = (id + 16384) // 32768
|
|
123
|
+
local xId = id - yId * 32768
|
|
124
|
+
return tileCellById[id] or __TS__New(
|
|
125
|
+
____exports.TileCell,
|
|
126
|
+
id,
|
|
127
|
+
xId * 128,
|
|
128
|
+
yId * 128,
|
|
129
|
+
nil
|
|
130
|
+
)
|
|
131
|
+
end
|
|
132
|
+
__TS__SetDescriptor(
|
|
133
|
+
TileCell.prototype,
|
|
134
|
+
"up",
|
|
135
|
+
{get = function(self)
|
|
136
|
+
return ____exports.TileCell.of(self.x, self.y + 128)
|
|
137
|
+
end},
|
|
138
|
+
true
|
|
139
|
+
)
|
|
140
|
+
__TS__SetDescriptor(
|
|
141
|
+
TileCell.prototype,
|
|
142
|
+
"down",
|
|
143
|
+
{get = function(self)
|
|
144
|
+
return ____exports.TileCell.of(self.x, self.y - 128)
|
|
145
|
+
end},
|
|
146
|
+
true
|
|
147
|
+
)
|
|
148
|
+
__TS__SetDescriptor(
|
|
149
|
+
TileCell.prototype,
|
|
150
|
+
"left",
|
|
151
|
+
{get = function(self)
|
|
152
|
+
return ____exports.TileCell.of(self.x - 128, self.y)
|
|
153
|
+
end},
|
|
154
|
+
true
|
|
155
|
+
)
|
|
156
|
+
__TS__SetDescriptor(
|
|
157
|
+
TileCell.prototype,
|
|
158
|
+
"right",
|
|
159
|
+
{get = function(self)
|
|
160
|
+
return ____exports.TileCell.of(self.x + 128, self.y)
|
|
161
|
+
end},
|
|
162
|
+
true
|
|
163
|
+
)
|
|
164
|
+
__TS__SetDescriptor(
|
|
165
|
+
TileCell.prototype,
|
|
166
|
+
"terrainTypeId",
|
|
167
|
+
{
|
|
168
|
+
get = function(self)
|
|
169
|
+
return getTerrainType(self.x, self.y)
|
|
170
|
+
end,
|
|
171
|
+
set = function(self, terrainTypeId)
|
|
172
|
+
local x = self.x
|
|
173
|
+
local y = self.y
|
|
174
|
+
setTerrainType(
|
|
175
|
+
x,
|
|
176
|
+
y,
|
|
177
|
+
terrainTypeId,
|
|
178
|
+
getTerrainVariance(x, y),
|
|
179
|
+
1,
|
|
180
|
+
1
|
|
181
|
+
)
|
|
182
|
+
end
|
|
183
|
+
},
|
|
184
|
+
true
|
|
185
|
+
)
|
|
186
|
+
__TS__SetDescriptor(
|
|
187
|
+
TileCell.prototype,
|
|
188
|
+
"terrainVariance",
|
|
189
|
+
{
|
|
190
|
+
get = function(self)
|
|
191
|
+
return getTerrainVariance(self.x, self.y)
|
|
192
|
+
end,
|
|
193
|
+
set = function(self, terrainVariance)
|
|
194
|
+
local x = self.x
|
|
195
|
+
local y = self.y
|
|
196
|
+
setTerrainType(
|
|
197
|
+
x,
|
|
198
|
+
y,
|
|
199
|
+
getTerrainType(x, y),
|
|
200
|
+
terrainVariance,
|
|
201
|
+
1,
|
|
202
|
+
1
|
|
203
|
+
)
|
|
204
|
+
end
|
|
205
|
+
},
|
|
206
|
+
true
|
|
207
|
+
)
|
|
100
208
|
return ____exports
|