warscript 0.0.1-dev.47f470c → 0.0.1-dev.4b6e45a
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 +21 -2
- package/core/types/frame.lua +165 -87
- 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/missile.lua +8 -7
- 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 +105 -55
- 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 +115 -4
- package/decl/native.d.ts +1719 -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 +15 -1
- package/engine/behaviour/ability/emulate-impact.lua +96 -7
- package/engine/behaviour/ability/instant-impact.d.ts +12 -1
- package/engine/behaviour/ability/instant-impact.lua +17 -2
- 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 +23 -6
- package/engine/behaviour/ability.lua +145 -29
- 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 +130 -57
- package/engine/buff.lua +643 -294
- package/engine/index.d.ts +2 -1
- package/engine/internal/ability.d.ts +14 -1
- package/engine/internal/ability.lua +113 -44
- package/engine/internal/item/ability.lua +63 -11
- package/engine/internal/item/fields.d.ts +12 -0
- package/engine/internal/item/fields.lua +33 -0
- package/engine/internal/item/owner-cache.d.ts +5 -0
- package/engine/internal/item/owner-cache.lua +4 -0
- package/engine/internal/item+owner.d.ts +2 -0
- package/engine/internal/item+owner.lua +37 -8
- package/engine/internal/item.d.ts +32 -16
- package/engine/internal/item.lua +257 -82
- package/engine/internal/mechanics/ability-duration.lua +1 -1
- package/engine/internal/mechanics/cast-ability.lua +6 -3
- package/engine/internal/misc/damage-metadata-by-target.lua +5 -0
- package/engine/internal/misc/frame-coordinates.d.ts +2 -0
- package/engine/internal/misc/frame-coordinates.lua +21 -0
- package/engine/internal/misc/get-terrain-z.d.ts +2 -0
- package/engine/internal/misc/get-terrain-z.lua +11 -0
- package/engine/internal/misc/player-local-handle.d.ts +2 -0
- package/engine/internal/misc/player-local-handle.lua +5 -0
- package/engine/internal/misc/unit-ability-level-natives.d.ts +2 -0
- package/engine/internal/misc/unit-ability-level-natives.lua +12 -0
- package/engine/internal/object-data/armor-bonus.d.ts +2 -0
- package/engine/internal/object-data/attribute-bonus.lua +2 -2
- package/engine/internal/object-data/health-bonus.d.ts +2 -0
- package/engine/internal/object-data/health-bonus.lua +16 -0
- package/engine/internal/object-data/health-regeneration-rate-increase.d.ts +2 -0
- package/engine/internal/object-data/health-regeneration-rate-increase.lua +48 -0
- package/engine/internal/object-data/mana-bonus.d.ts +2 -0
- package/engine/internal/object-data/mana-bonus.lua +16 -0
- package/engine/internal/object-data/mana-regeneration-rate-increase-factor.d.ts +2 -0
- package/engine/internal/object-data/mana-regeneration-rate-increase-factor.lua +16 -0
- package/engine/internal/object-data/returned-melee-damage-factor.d.ts +2 -0
- package/engine/internal/object-data/returned-melee-damage-factor.lua +21 -0
- package/engine/internal/unit/ability.d.ts +35 -0
- package/engine/internal/unit/ability.lua +114 -9
- package/engine/internal/unit/add-item-to-slot-init.lua +3 -14
- package/engine/internal/unit/add-item-to-slot.lua +53 -12
- package/engine/internal/unit/allowed-targets.d.ts +1 -1
- package/engine/internal/unit/allowed-targets.lua +9 -1
- package/engine/internal/unit/appearance.d.ts +15 -0
- package/engine/internal/unit/appearance.lua +85 -0
- package/engine/internal/unit/attributes.d.ts +17 -0
- package/engine/internal/unit/attributes.lua +46 -0
- package/engine/internal/unit/bonus.d.ts +17 -0
- package/engine/internal/unit/bonus.lua +113 -8
- package/engine/internal/unit/buff.d.ts +2 -2
- package/engine/internal/unit/buff.lua +34 -19
- package/engine/internal/unit/equipment-inventory.d.ts +44 -0
- package/engine/internal/unit/equipment-inventory.lua +233 -0
- package/engine/internal/unit/expiration-timer.lua +1 -1
- package/engine/internal/unit/extended-inventory.d.ts +25 -0
- package/engine/internal/unit/extended-inventory.lua +99 -0
- package/engine/internal/unit/fly-height.d.ts +7 -0
- package/engine/internal/unit/fly-height.lua +20 -0
- package/engine/internal/unit/ignore-events-items.lua +10 -1
- package/engine/internal/unit/interrupts.d.ts +12 -0
- package/engine/internal/unit/interrupts.lua +28 -0
- package/engine/internal/unit/{item.d.ts → inventory.d.ts} +7 -3
- package/engine/internal/unit/inventory.lua +87 -0
- package/engine/internal/unit/item-container.d.ts +25 -0
- package/engine/internal/unit/item-container.lua +11 -0
- package/engine/internal/unit/item-order-events.d.ts +17 -0
- package/engine/internal/unit/item-order-events.lua +67 -0
- package/engine/internal/unit/item-slot.d.ts +27 -0
- package/engine/internal/unit/item-slot.lua +92 -0
- package/engine/internal/unit/main-selected.lua +12 -27
- package/engine/internal/unit/order.d.ts +20 -0
- package/engine/internal/unit/order.lua +136 -0
- package/engine/internal/unit/range-event.d.ts +12 -0
- package/engine/internal/unit/range-event.lua +90 -0
- package/engine/internal/unit/scale.d.ts +7 -0
- package/engine/internal/unit/scale.lua +20 -0
- package/engine/internal/unit/shared-vision-counter.d.ts +18 -0
- package/engine/internal/unit/shared-vision-counter.lua +31 -0
- package/engine/internal/unit+ability.d.ts +2 -1
- package/engine/internal/unit+ability.lua +83 -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 +96 -68
- package/engine/internal/unit-missile-launch.lua +65 -27
- package/engine/internal/unit.d.ts +47 -34
- package/engine/internal/unit.lua +413 -323
- package/engine/lightning.lua +4 -4
- 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/auxiliary/unit-weapon-type.d.ts +21 -0
- package/engine/object-data/auxiliary/unit-weapon-type.lua +2 -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/barrage.d.ts +12 -0
- package/engine/object-data/entry/ability-type/barrage.lua +52 -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.lua +2 -11
- 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/channel.d.ts +2 -2
- package/engine/object-data/entry/ability-type/channel.lua +3 -3
- 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 +50 -21
- package/engine/object-data/entry/ability-type.lua +376 -27
- package/engine/object-data/entry/buff-type/applicable.lua +124 -108
- 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 -3
- package/engine/object-data/entry/sound-preset.lua +105 -15
- package/engine/object-data/entry/unit-type.d.ts +74 -6
- package/engine/object-data/entry/unit-type.lua +560 -100
- package/engine/object-data/entry/upgrade.d.ts +2 -2
- package/engine/object-data/entry.d.ts +8 -3
- package/engine/object-data/entry.lua +22 -7
- 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 +4 -4
- package/engine/standard/fields/ability.lua +4 -4
- 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 +48 -2
- package/engine/text-tag.lua +287 -10
- package/engine/unit.d.ts +12 -1
- package/engine/unit.lua +12 -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/objutil/unit.lua +2 -2
- 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/reflection.lua +11 -7
- 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
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
/** @noSelfInFile */
|
|
2
2
|
import { TupleOf } from "../../../utility/types";
|
|
3
3
|
import { TechTreeDependency, TechTreeDependencyInput } from "../auxiliary/tech-tree-dependency";
|
|
4
|
-
import { ObjectDataEntry,
|
|
4
|
+
import { ObjectDataEntry, CustomObjectDataEntryId, ObjectDataEntryLevelFieldValueSupplier } from "../entry";
|
|
5
5
|
import { AbilityTypeId } from "./ability-type";
|
|
6
|
-
export type UpgradeId =
|
|
6
|
+
export type UpgradeId = CustomObjectDataEntryId & number & {
|
|
7
7
|
readonly __upgradeId: unique symbol;
|
|
8
8
|
};
|
|
9
9
|
export declare const enum UpgradeEffectType {
|
|
@@ -1,9 +1,13 @@
|
|
|
1
1
|
/** @noSelfInFile */
|
|
2
2
|
import { AttachmentPreset, AttachmentPresetInput } from "./auxiliary/attachment-preset";
|
|
3
3
|
import { MutableKeys } from "../../utility/types";
|
|
4
|
-
|
|
4
|
+
import { StandardAbilityTypeId } from "../standard/entries/ability-type";
|
|
5
|
+
import { StandardItemTypeId } from "../standard/entries/item-type";
|
|
6
|
+
import { StandardLightningTypeId } from "../standard/entries/lightning-type";
|
|
7
|
+
export type CustomObjectDataEntryId = (number | string) & {
|
|
5
8
|
readonly __objectDataEntryId: unique symbol;
|
|
6
9
|
};
|
|
10
|
+
export type ObjectDataEntryId = CustomObjectDataEntryId | StandardAbilityTypeId | StandardItemTypeId | StandardLightningTypeId;
|
|
7
11
|
export type ObjectDataEntryIdType<T extends ObjectDataEntry> = T extends ObjectDataEntry<infer Id> ? Id : never;
|
|
8
12
|
export type ObjectDataEntryConstructor<T extends ObjectDataEntry> = OmitConstructor<typeof ObjectDataEntry> & (new (object: WarObject) => T);
|
|
9
13
|
export type ObjectDataEntryAbstractConstructor<T extends ObjectDataEntry> = OmitConstructor<typeof ObjectDataEntry> & (abstract new (object: WarObject) => T);
|
|
@@ -14,17 +18,17 @@ export declare const extractObjectDataEntryLevelArrayFieldValue: <T extends stri
|
|
|
14
18
|
export declare abstract class ObjectDataEntry<Id extends ObjectDataEntryId = ObjectDataEntryId> {
|
|
15
19
|
protected readonly object: WarObject;
|
|
16
20
|
static readonly BASE_ID: ObjectDataEntryId;
|
|
17
|
-
static readonly ID_TYPE: string;
|
|
18
21
|
protected static readonly IS_SYNTHETIC: boolean;
|
|
19
22
|
private readonly levelFieldParametersByField;
|
|
20
23
|
private readonly maxAffectedLevelByField;
|
|
21
24
|
private _isInternal;
|
|
22
25
|
private get type();
|
|
23
26
|
get isInternal(): boolean;
|
|
27
|
+
static get idType(): "number" | "string";
|
|
24
28
|
protected static generateId(): number | string;
|
|
25
29
|
protected static getObjectData(map: WarMap): WarObjects;
|
|
26
30
|
static getAllIdsByBaseIds<T extends ObjectDataEntry>(this: ObjectDataEntryAbstractConstructor<T>, baseIds: number | number[] | string | string[]): ObjectDataEntryIdType<T>[];
|
|
27
|
-
static create<T extends ObjectDataEntry>(this: ObjectDataEntryConstructor<T>, ...args: [id?: number, properties?: ObjectDataEntryProperties<T>] | [properties: ObjectDataEntryProperties<T>]): T;
|
|
31
|
+
static create<T extends ObjectDataEntry>(this: ObjectDataEntryConstructor<T>, ...args: [id?: number | string, properties?: ObjectDataEntryProperties<T>] | [properties: ObjectDataEntryProperties<T>]): T;
|
|
28
32
|
static getAllByBaseIds<T extends ObjectDataEntry>(this: ObjectDataEntryAbstractConstructor<T>, baseIds: number | number[] | string | string[]): T[];
|
|
29
33
|
static getAll<T extends ObjectDataEntry>(this: ObjectDataEntryAbstractConstructor<T>): T[];
|
|
30
34
|
static of<T extends ObjectDataEntry>(this: ObjectDataEntryAbstractConstructor<T>, id: number | string): T | undefined;
|
|
@@ -38,6 +42,7 @@ export declare abstract class ObjectDataEntry<Id extends ObjectDataEntryId = Obj
|
|
|
38
42
|
setFieldValue<This extends this, Args extends any[]>(this: This, field: {
|
|
39
43
|
setValue(entry: This, ...args: Args): boolean;
|
|
40
44
|
}, ...args: Args): void;
|
|
45
|
+
copyFrom(id: Id): void;
|
|
41
46
|
protected getBooleanField(field: string): boolean;
|
|
42
47
|
protected setBooleanField(field: string, value: boolean): void;
|
|
43
48
|
protected getNumberField(field: string): number;
|
|
@@ -7,6 +7,7 @@ local __TS__ClassExtends = ____lualib.__TS__ClassExtends
|
|
|
7
7
|
local __TS__InstanceOf = ____lualib.__TS__InstanceOf
|
|
8
8
|
local __TS__ArrayMap = ____lualib.__TS__ArrayMap
|
|
9
9
|
local __TS__SetDescriptor = ____lualib.__TS__SetDescriptor
|
|
10
|
+
local __TS__ObjectDefineProperty = ____lualib.__TS__ObjectDefineProperty
|
|
10
11
|
local __TS__StringSplit = ____lualib.__TS__StringSplit
|
|
11
12
|
local __TS__ArrayFilter = ____lualib.__TS__ArrayFilter
|
|
12
13
|
local ____exports = {}
|
|
@@ -124,7 +125,7 @@ function ObjectDataEntry.getAllByBaseIds(self, baseIds)
|
|
|
124
125
|
local constructor = self
|
|
125
126
|
for id, object in pairs(constructor:getObjectData(currentMap).all) do
|
|
126
127
|
if dataBaseIds[object.parentId or id] ~= nil then
|
|
127
|
-
local objectDataEntry = self:of(dataToObjectDataEntryId(id, self.
|
|
128
|
+
local objectDataEntry = self:of(dataToObjectDataEntryId(id, self.idType))
|
|
128
129
|
if objectDataEntry ~= nil and not objectDataEntry.isInternal then
|
|
129
130
|
result[#result + 1] = objectDataEntry
|
|
130
131
|
end
|
|
@@ -139,7 +140,7 @@ function ObjectDataEntry.getAll(self)
|
|
|
139
140
|
local constructor = self
|
|
140
141
|
local result = {}
|
|
141
142
|
for id in pairs(constructor:getObjectData(currentMap).all) do
|
|
142
|
-
local objectDataEntry = self:of(dataToObjectDataEntryId(id, self.
|
|
143
|
+
local objectDataEntry = self:of(dataToObjectDataEntryId(id, self.idType))
|
|
143
144
|
if objectDataEntry ~= nil and not objectDataEntry.isInternal then
|
|
144
145
|
result[#result + 1] = objectDataEntry
|
|
145
146
|
end
|
|
@@ -156,9 +157,9 @@ function ObjectDataEntry.of(self, id)
|
|
|
156
157
|
if object == nil then
|
|
157
158
|
return nil
|
|
158
159
|
end
|
|
159
|
-
local objectDataEntry = objectDataEntryByObjectDataEntryId[dataToObjectDataEntryId(object.id, self.
|
|
160
|
+
local objectDataEntry = objectDataEntryByObjectDataEntryId[dataToObjectDataEntryId(object.id, self.idType)]
|
|
160
161
|
if objectDataEntry == nil then
|
|
161
|
-
if not constructor.IS_SYNTHETIC and (self.BASE_ID == 0 or dataToObjectDataEntryId(object.parentId, self.
|
|
162
|
+
if not constructor.IS_SYNTHETIC and (self.BASE_ID == 0 or dataToObjectDataEntryId(object.parentId, self.idType) == self.BASE_ID) then
|
|
162
163
|
local AbstractObjectDataEntryView = __TS__Class()
|
|
163
164
|
AbstractObjectDataEntryView.name = "AbstractObjectDataEntryView"
|
|
164
165
|
__TS__ClassExtends(AbstractObjectDataEntryView, constructor)
|
|
@@ -180,6 +181,14 @@ end
|
|
|
180
181
|
function ObjectDataEntry.prototype.setFieldValue(self, field, ...)
|
|
181
182
|
check(field:setValue(self, ...))
|
|
182
183
|
end
|
|
184
|
+
function ObjectDataEntry.prototype.copyFrom(self, id)
|
|
185
|
+
local that = self.type:of(id)
|
|
186
|
+
if that == nil then
|
|
187
|
+
return
|
|
188
|
+
end
|
|
189
|
+
for ____, field in ipairs(self.object.all) do
|
|
190
|
+
end
|
|
191
|
+
end
|
|
183
192
|
function ObjectDataEntry.prototype.getBooleanField(self, field)
|
|
184
193
|
return dataToBoolean(self.object:getField(field))
|
|
185
194
|
end
|
|
@@ -475,7 +484,6 @@ function ObjectDataEntry.prototype.setLevelField(self, field, supplier, extracto
|
|
|
475
484
|
end
|
|
476
485
|
end
|
|
477
486
|
ObjectDataEntry.BASE_ID = 0
|
|
478
|
-
ObjectDataEntry.ID_TYPE = type(self.BASE_ID) == "number" and "number" or "string"
|
|
479
487
|
ObjectDataEntry.IS_SYNTHETIC = false
|
|
480
488
|
__TS__SetDescriptor(
|
|
481
489
|
ObjectDataEntry.prototype,
|
|
@@ -503,11 +511,18 @@ __TS__SetDescriptor(
|
|
|
503
511
|
},
|
|
504
512
|
true
|
|
505
513
|
)
|
|
514
|
+
__TS__ObjectDefineProperty(
|
|
515
|
+
ObjectDataEntry,
|
|
516
|
+
"idType",
|
|
517
|
+
{get = function(self)
|
|
518
|
+
return type(self.BASE_ID) == "number" and "number" or "string"
|
|
519
|
+
end}
|
|
520
|
+
)
|
|
506
521
|
__TS__SetDescriptor(
|
|
507
522
|
ObjectDataEntry.prototype,
|
|
508
523
|
"id",
|
|
509
524
|
{get = function(self)
|
|
510
|
-
return dataToObjectDataEntryId(self.object.id, self.type.
|
|
525
|
+
return dataToObjectDataEntryId(self.object.id, self.type.idType)
|
|
511
526
|
end},
|
|
512
527
|
true
|
|
513
528
|
)
|
|
@@ -515,7 +530,7 @@ __TS__SetDescriptor(
|
|
|
515
530
|
ObjectDataEntry.prototype,
|
|
516
531
|
"baseId",
|
|
517
532
|
{get = function(self)
|
|
518
|
-
return dataToObjectDataEntryId(self.object.parentId or self.object.id, self.type.
|
|
533
|
+
return dataToObjectDataEntryId(self.object.parentId or self.object.id, self.type.idType)
|
|
519
534
|
end},
|
|
520
535
|
true
|
|
521
536
|
)
|
|
@@ -12,7 +12,7 @@ import { ReadonlyNonEmptyLinkedSet } from "../../utility/linked-set";
|
|
|
12
12
|
export declare abstract class AbilityField<ValueType extends number | string | boolean = number | string | boolean, NativeFieldType extends jabilityfield = jabilityfield> extends ObjectField<AbilityType, Ability, ValueType, NativeFieldType> {
|
|
13
13
|
protected get instanceClass(): typeof Ability;
|
|
14
14
|
protected getObjectDataEntryId(instance: Ability): AbilityTypeId;
|
|
15
|
-
protected hasNativeFieldValue(
|
|
15
|
+
protected hasNativeFieldValue(abilityTypeId: AbilityTypeId): boolean;
|
|
16
16
|
static get valueChangeEvent(): ObjectFieldValueChangeEvent<ReadonlyObjectFieldType<AbilityField>>;
|
|
17
17
|
}
|
|
18
18
|
export declare class AbilityBooleanField extends AbilityField<boolean, jabilitybooleanfield> {
|
|
@@ -48,7 +48,7 @@ export declare class AbilityStringField extends AbilityField<string, jabilitystr
|
|
|
48
48
|
export declare abstract class AbilityArrayField<ValueType extends number | string | boolean = number | string | boolean, NativeFieldType extends jabilityfield = jabilityfield> extends ObjectArrayField<AbilityType, Ability, ValueType, NativeFieldType> {
|
|
49
49
|
protected get instanceClass(): typeof Ability;
|
|
50
50
|
protected getObjectDataEntryId(instance: Ability): AbilityTypeId;
|
|
51
|
-
protected hasNativeFieldValue(
|
|
51
|
+
protected hasNativeFieldValue(abilityTypeId: AbilityTypeId): boolean;
|
|
52
52
|
}
|
|
53
53
|
export declare class AbilityStringArrayField extends AbilityArrayField<string, jabilitystringlevelfield> {
|
|
54
54
|
protected get defaultValue(): string;
|
|
@@ -68,7 +68,7 @@ export declare abstract class AbilityLevelField<ValueType extends number | strin
|
|
|
68
68
|
protected get instanceClass(): typeof Ability;
|
|
69
69
|
protected getLevelCount(entry: AbilityType | Ability): number;
|
|
70
70
|
protected getObjectDataEntryId(instance: Ability): AbilityTypeId;
|
|
71
|
-
protected hasNativeFieldValue(
|
|
71
|
+
protected hasNativeFieldValue(abilityTypeId: AbilityTypeId): boolean;
|
|
72
72
|
static get valueChangeEvent(): ObjectLevelFieldValueChangeEvent<ReadonlyObjectLevelFieldType<AbilityLevelField>>;
|
|
73
73
|
}
|
|
74
74
|
export declare class AbilityBooleanLevelField extends AbilityLevelField<boolean, boolean, jabilityintegerlevelfield> {
|
|
@@ -117,7 +117,7 @@ export declare abstract class AbilityEnumLevelField<T extends number> extends Ab
|
|
|
117
117
|
protected getNativeFieldById(id: number): jabilityintegerlevelfield;
|
|
118
118
|
protected getNativeFieldValue(instance: Ability, level: number): T;
|
|
119
119
|
protected setNativeFieldValue(instance: Ability, level: number, value: T): boolean;
|
|
120
|
-
static get valueChangeEvent(): ObjectLevelFieldValueChangeEvent<
|
|
120
|
+
static get valueChangeEvent(): ObjectLevelFieldValueChangeEvent<AbilityEnumLevelField<number>>;
|
|
121
121
|
}
|
|
122
122
|
export declare class AbilityBuffPolarityLevelField extends AbilityEnumLevelField<BuffPolarity> {
|
|
123
123
|
protected values: ReadonlyNonEmptyLinkedSet<BuffPolarity>;
|
|
@@ -7,6 +7,7 @@ local __TS__InstanceOf = ____lualib.__TS__InstanceOf
|
|
|
7
7
|
local ____exports = {}
|
|
8
8
|
local ____ability = require("engine.internal.ability")
|
|
9
9
|
local Ability = ____ability.Ability
|
|
10
|
+
local abilityTypeHasField = ____ability.abilityTypeHasField
|
|
10
11
|
local ____object_2Dfield = require("engine.object-field")
|
|
11
12
|
local ObjectArrayField = ____object_2Dfield.ObjectArrayField
|
|
12
13
|
local ObjectField = ____object_2Dfield.ObjectField
|
|
@@ -29,8 +30,8 @@ __TS__ClassExtends(AbilityField, ObjectField)
|
|
|
29
30
|
function AbilityField.prototype.getObjectDataEntryId(self, instance)
|
|
30
31
|
return instance.typeId
|
|
31
32
|
end
|
|
32
|
-
function AbilityField.prototype.hasNativeFieldValue(self,
|
|
33
|
-
return
|
|
33
|
+
function AbilityField.prototype.hasNativeFieldValue(self, abilityTypeId)
|
|
34
|
+
return abilityTypeHasField(abilityTypeId, self.nativeField)
|
|
34
35
|
end
|
|
35
36
|
__TS__SetDescriptor(
|
|
36
37
|
AbilityField.prototype,
|
|
@@ -197,8 +198,8 @@ __TS__ClassExtends(AbilityArrayField, ObjectArrayField)
|
|
|
197
198
|
function AbilityArrayField.prototype.getObjectDataEntryId(self, instance)
|
|
198
199
|
return instance.typeId
|
|
199
200
|
end
|
|
200
|
-
function AbilityArrayField.prototype.hasNativeFieldValue(self,
|
|
201
|
-
return
|
|
201
|
+
function AbilityArrayField.prototype.hasNativeFieldValue(self, abilityTypeId)
|
|
202
|
+
return abilityTypeHasField(abilityTypeId, self.nativeField)
|
|
202
203
|
end
|
|
203
204
|
__TS__SetDescriptor(
|
|
204
205
|
AbilityArrayField.prototype,
|
|
@@ -269,8 +270,8 @@ end
|
|
|
269
270
|
function AbilityLevelField.prototype.getObjectDataEntryId(self, instance)
|
|
270
271
|
return instance.typeId
|
|
271
272
|
end
|
|
272
|
-
function AbilityLevelField.prototype.hasNativeFieldValue(self,
|
|
273
|
-
return
|
|
273
|
+
function AbilityLevelField.prototype.hasNativeFieldValue(self, abilityTypeId)
|
|
274
|
+
return abilityTypeHasField(abilityTypeId, self.nativeField)
|
|
274
275
|
end
|
|
275
276
|
__TS__SetDescriptor(
|
|
276
277
|
AbilityLevelField.prototype,
|
|
@@ -518,9 +519,9 @@ __TS__SetDescriptor(
|
|
|
518
519
|
)
|
|
519
520
|
____exports.resolveCurrentAbilityDependentValue = function(ability, value)
|
|
520
521
|
if __TS__InstanceOf(value, ____exports.AbilityField) then
|
|
521
|
-
return value:getValue(ability)
|
|
522
|
+
return value:getValue(ability, true)
|
|
522
523
|
elseif __TS__InstanceOf(value, ____exports.AbilityLevelField) then
|
|
523
|
-
return value:getValue(ability, ability.level)
|
|
524
|
+
return value:getValue(ability, ability.level, true)
|
|
524
525
|
elseif type(value) == "function" then
|
|
525
526
|
return value(ability)
|
|
526
527
|
else
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/** @noSelfInFile */
|
|
2
|
+
import { ObjectField } from "../object-field";
|
|
3
|
+
import { Item } from "../internal/item";
|
|
4
|
+
import { ItemType, ItemTypeId } from "../object-data/entry/item-type";
|
|
5
|
+
export declare abstract class ItemField<ValueType extends number | string | boolean = number | string | boolean, NativeFieldType = any> extends ObjectField<ItemType, Item, ValueType, NativeFieldType> {
|
|
6
|
+
protected get instanceClass(): typeof Item;
|
|
7
|
+
protected getObjectDataEntryId(instance: Item): ItemTypeId;
|
|
8
|
+
}
|
|
9
|
+
export declare class ItemBooleanField extends ItemField<boolean, jitembooleanfield> {
|
|
10
|
+
protected get defaultValue(): boolean;
|
|
11
|
+
protected getNativeFieldById(id: number): jitembooleanfield;
|
|
12
|
+
protected hasNativeFieldValue(): boolean;
|
|
13
|
+
protected getNativeFieldValue(instance: Item): boolean;
|
|
14
|
+
protected setNativeFieldValue(instance: Item, value: boolean): boolean;
|
|
15
|
+
}
|
|
16
|
+
export declare class ItemIntegerField extends ItemField<number, jitemintegerfield> {
|
|
17
|
+
protected get defaultValue(): number;
|
|
18
|
+
protected getNativeFieldById(id: number): jitemintegerfield;
|
|
19
|
+
protected hasNativeFieldValue(): boolean;
|
|
20
|
+
protected getNativeFieldValue(instance: Item): number;
|
|
21
|
+
protected setNativeFieldValue(instance: Item, value: number): boolean;
|
|
22
|
+
}
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
local ____lualib = require("lualib_bundle")
|
|
2
|
+
local __TS__Class = ____lualib.__TS__Class
|
|
3
|
+
local __TS__ClassExtends = ____lualib.__TS__ClassExtends
|
|
4
|
+
local __TS__SetDescriptor = ____lualib.__TS__SetDescriptor
|
|
5
|
+
local ____exports = {}
|
|
6
|
+
local ____object_2Dfield = require("engine.object-field")
|
|
7
|
+
local ObjectField = ____object_2Dfield.ObjectField
|
|
8
|
+
local ____item = require("engine.internal.item")
|
|
9
|
+
local Item = ____item.Item
|
|
10
|
+
local ____lua_2Dsets = require("utility.lua-sets")
|
|
11
|
+
local luaSetOf = ____lua_2Dsets.luaSetOf
|
|
12
|
+
local convertItemBooleanField = ConvertItemBooleanField
|
|
13
|
+
local convertItemIntegerField = ConvertItemIntegerField
|
|
14
|
+
local getItemBooleanField = BlzGetItemBooleanField
|
|
15
|
+
local getItemIntegerField = BlzGetItemIntegerField
|
|
16
|
+
local isItemPawnable = IsItemPawnable
|
|
17
|
+
local isItemPowerup = IsItemPowerup
|
|
18
|
+
local setItemBooleanField = BlzSetItemBooleanField
|
|
19
|
+
local setItemDropOnDeath = SetItemDropOnDeath
|
|
20
|
+
local setItemDroppable = SetItemDroppable
|
|
21
|
+
local setItemPawnable = SetItemPawnable
|
|
22
|
+
local setItemIntegerField = BlzSetItemIntegerField
|
|
23
|
+
____exports.ItemField = __TS__Class()
|
|
24
|
+
local ItemField = ____exports.ItemField
|
|
25
|
+
ItemField.name = "ItemField"
|
|
26
|
+
__TS__ClassExtends(ItemField, ObjectField)
|
|
27
|
+
function ItemField.prototype.getObjectDataEntryId(self, instance)
|
|
28
|
+
return instance.typeId
|
|
29
|
+
end
|
|
30
|
+
__TS__SetDescriptor(
|
|
31
|
+
ItemField.prototype,
|
|
32
|
+
"instanceClass",
|
|
33
|
+
{get = function(self)
|
|
34
|
+
return Item
|
|
35
|
+
end},
|
|
36
|
+
true
|
|
37
|
+
)
|
|
38
|
+
local nativeItemBooleanFieldIds = luaSetOf(
|
|
39
|
+
fourCC("ipaw"),
|
|
40
|
+
fourCC("iusa")
|
|
41
|
+
)
|
|
42
|
+
____exports.ItemBooleanField = __TS__Class()
|
|
43
|
+
local ItemBooleanField = ____exports.ItemBooleanField
|
|
44
|
+
ItemBooleanField.name = "ItemBooleanField"
|
|
45
|
+
__TS__ClassExtends(ItemBooleanField, ____exports.ItemField)
|
|
46
|
+
function ItemBooleanField.prototype.getNativeFieldById(self, id)
|
|
47
|
+
return convertItemBooleanField(id)
|
|
48
|
+
end
|
|
49
|
+
function ItemBooleanField.prototype.hasNativeFieldValue(self)
|
|
50
|
+
return nativeItemBooleanFieldIds[self.id] ~= nil
|
|
51
|
+
end
|
|
52
|
+
function ItemBooleanField.prototype.getNativeFieldValue(self, instance)
|
|
53
|
+
return getItemBooleanField(instance.handle, self.nativeField)
|
|
54
|
+
end
|
|
55
|
+
function ItemBooleanField.prototype.setNativeFieldValue(self, instance, value)
|
|
56
|
+
if self.id == fourCC("iusa") then
|
|
57
|
+
local handle = instance.handle
|
|
58
|
+
local powerUp = isItemPowerup(handle)
|
|
59
|
+
local perishes = getItemBooleanField(handle, ITEM_BF_PERISHABLE)
|
|
60
|
+
local dropsOnDeath = getItemBooleanField(handle, ITEM_BF_DROPPED_WHEN_CARRIER_DIES)
|
|
61
|
+
local canBeDropped = getItemBooleanField(handle, ITEM_BF_CAN_BE_DROPPED)
|
|
62
|
+
local canBeSold = isItemPawnable(handle)
|
|
63
|
+
local result = setItemBooleanField(handle, ITEM_BF_ACTIVELY_USED, value)
|
|
64
|
+
setItemPawnable(handle, canBeSold)
|
|
65
|
+
setItemDroppable(handle, canBeDropped)
|
|
66
|
+
setItemDropOnDeath(handle, dropsOnDeath)
|
|
67
|
+
setItemBooleanField(handle, ITEM_BF_PERISHABLE, perishes)
|
|
68
|
+
setItemBooleanField(handle, ITEM_BF_USE_AUTOMATICALLY_WHEN_ACQUIRED, powerUp)
|
|
69
|
+
return result
|
|
70
|
+
end
|
|
71
|
+
return setItemBooleanField(instance.handle, self.nativeField, value)
|
|
72
|
+
end
|
|
73
|
+
__TS__SetDescriptor(
|
|
74
|
+
ItemBooleanField.prototype,
|
|
75
|
+
"defaultValue",
|
|
76
|
+
{get = function(self)
|
|
77
|
+
return false
|
|
78
|
+
end},
|
|
79
|
+
true
|
|
80
|
+
)
|
|
81
|
+
local nativeItemIntegerFieldIds = luaSetOf(
|
|
82
|
+
fourCC("ilev"),
|
|
83
|
+
fourCC("iuse"),
|
|
84
|
+
fourCC("icid"),
|
|
85
|
+
fourCC("ihtp"),
|
|
86
|
+
fourCC("ihpc"),
|
|
87
|
+
fourCC("ipri"),
|
|
88
|
+
fourCC("iarm"),
|
|
89
|
+
fourCC("iclr"),
|
|
90
|
+
fourCC("iclg"),
|
|
91
|
+
fourCC("iclb"),
|
|
92
|
+
fourCC("ical")
|
|
93
|
+
)
|
|
94
|
+
____exports.ItemIntegerField = __TS__Class()
|
|
95
|
+
local ItemIntegerField = ____exports.ItemIntegerField
|
|
96
|
+
ItemIntegerField.name = "ItemIntegerField"
|
|
97
|
+
__TS__ClassExtends(ItemIntegerField, ____exports.ItemField)
|
|
98
|
+
function ItemIntegerField.prototype.getNativeFieldById(self, id)
|
|
99
|
+
return convertItemIntegerField(id)
|
|
100
|
+
end
|
|
101
|
+
function ItemIntegerField.prototype.hasNativeFieldValue(self)
|
|
102
|
+
return nativeItemIntegerFieldIds[self.id] ~= nil
|
|
103
|
+
end
|
|
104
|
+
function ItemIntegerField.prototype.getNativeFieldValue(self, instance)
|
|
105
|
+
return getItemIntegerField(instance.handle, self.nativeField)
|
|
106
|
+
end
|
|
107
|
+
function ItemIntegerField.prototype.setNativeFieldValue(self, instance, value)
|
|
108
|
+
return setItemIntegerField(instance.handle, self.nativeField, value)
|
|
109
|
+
end
|
|
110
|
+
__TS__SetDescriptor(
|
|
111
|
+
ItemIntegerField.prototype,
|
|
112
|
+
"defaultValue",
|
|
113
|
+
{get = function(self)
|
|
114
|
+
return 0
|
|
115
|
+
end},
|
|
116
|
+
true
|
|
117
|
+
)
|
|
118
|
+
return ____exports
|
|
@@ -1,16 +1,85 @@
|
|
|
1
1
|
/** @noSelfInFile */
|
|
2
2
|
import { Unit } from "../internal/unit";
|
|
3
|
-
import { ObjectField } from "../object-field";
|
|
3
|
+
import { ObjectField, ObjectFieldValueChangeEvent, ObjectLevelField, ObjectLevelFieldValueChangeEvent, ReadonlyObjectFieldType, ReadonlyObjectLevelFieldType } from "../object-field";
|
|
4
4
|
import { UnitType, UnitTypeId } from "../object-data/entry/unit-type";
|
|
5
|
+
import { ReadonlyNonEmptyLinkedSet } from "../../utility/linked-set";
|
|
6
|
+
import { AttackType } from "../object-data/auxiliary/attack-type";
|
|
7
|
+
import { UnitClassifications } from "../object-data/auxiliary/unit-classification";
|
|
8
|
+
import { HealthRegenerationType } from "../object-data/auxiliary/health-regeneration-type";
|
|
5
9
|
export declare abstract class UnitField<ValueType extends number | string | boolean = number | string | boolean, NativeFieldType = any> extends ObjectField<UnitType, Unit, ValueType, NativeFieldType> {
|
|
6
10
|
protected get instanceClass(): typeof Unit;
|
|
7
11
|
protected getObjectDataEntryId(instance: Unit): UnitTypeId;
|
|
12
|
+
protected hasNativeFieldValue(): boolean;
|
|
13
|
+
static get valueChangeEvent(): ObjectFieldValueChangeEvent<ReadonlyObjectFieldType<UnitField>>;
|
|
14
|
+
}
|
|
15
|
+
export declare class UnitBooleanField extends UnitField<boolean, junitbooleanfield> {
|
|
16
|
+
protected get defaultValue(): boolean;
|
|
17
|
+
protected getNativeFieldById(id: number): junitbooleanfield;
|
|
18
|
+
protected getNativeFieldValue(instance: Unit): boolean;
|
|
19
|
+
protected setNativeFieldValue(instance: Unit, value: boolean): boolean;
|
|
20
|
+
static get valueChangeEvent(): ObjectFieldValueChangeEvent<ReadonlyObjectFieldType<UnitBooleanField>>;
|
|
21
|
+
}
|
|
22
|
+
export declare class UnitFloatField extends UnitField<number, junitrealfield> {
|
|
23
|
+
protected get defaultValue(): number;
|
|
24
|
+
protected getNativeFieldById(id: number): junitrealfield;
|
|
25
|
+
protected getNativeFieldValue(instance: Unit): number;
|
|
26
|
+
protected setNativeFieldValue(instance: Unit, value: number): boolean;
|
|
27
|
+
static get valueChangeEvent(): ObjectFieldValueChangeEvent<ReadonlyObjectFieldType<UnitFloatField>>;
|
|
28
|
+
}
|
|
29
|
+
export declare class UnitIntegerField<T extends number = number> extends UnitField<T, junitintegerfield> {
|
|
30
|
+
protected get defaultValue(): T;
|
|
31
|
+
protected getNativeFieldById(id: number): junitintegerfield;
|
|
32
|
+
protected getNativeFieldValue(instance: Unit): T;
|
|
33
|
+
protected setNativeFieldValue(instance: Unit, value: T): boolean;
|
|
34
|
+
static get valueChangeEvent(): ObjectFieldValueChangeEvent<ReadonlyObjectFieldType<UnitIntegerField>>;
|
|
8
35
|
}
|
|
9
36
|
export declare class UnitStringField extends UnitField<string, junitstringfield> {
|
|
10
37
|
protected get defaultValue(): string;
|
|
11
38
|
protected getNativeFieldById(id: number): junitstringfield;
|
|
12
|
-
protected hasNativeFieldValue(): boolean;
|
|
13
39
|
protected getNativeFieldValue(instance: Unit): string;
|
|
14
|
-
protected getObjectDataEntryId(instance: Unit): UnitTypeId;
|
|
15
40
|
protected setNativeFieldValue(instance: Unit, value: string): boolean;
|
|
41
|
+
static get valueChangeEvent(): ObjectFieldValueChangeEvent<ReadonlyObjectFieldType<UnitStringField>>;
|
|
42
|
+
}
|
|
43
|
+
type junitweaponfield = junitweaponbooleanfield | junitweaponintegerfield | junitweaponrealfield | junitweaponstringfield;
|
|
44
|
+
export declare abstract class UnitWeaponField<ValueType extends number | string | boolean = number | string | boolean, InputValueType extends ValueType = never, NativeFieldType extends junitweaponfield = junitweaponfield> extends ObjectLevelField<UnitType, Unit, ValueType, InputValueType, NativeFieldType> {
|
|
45
|
+
protected get instanceClass(): typeof Unit;
|
|
46
|
+
protected getLevelCount(): number;
|
|
47
|
+
protected getObjectDataEntryId(instance: Unit): UnitTypeId;
|
|
48
|
+
protected hasNativeFieldValue(): boolean;
|
|
49
|
+
static get valueChangeEvent(): ObjectLevelFieldValueChangeEvent<ReadonlyObjectLevelFieldType<UnitWeaponField>>;
|
|
50
|
+
}
|
|
51
|
+
export declare abstract class UnitNumberWeaponField<NativeFieldType extends junitweaponintegerfield | junitweaponrealfield = junitweaponintegerfield | junitweaponrealfield> extends UnitWeaponField<number, number, NativeFieldType> {
|
|
52
|
+
protected get defaultValue(): number;
|
|
53
|
+
static get valueChangeEvent(): ObjectLevelFieldValueChangeEvent<UnitNumberWeaponField>;
|
|
54
|
+
}
|
|
55
|
+
export declare abstract class UnitEnumWeaponField<T extends number> extends UnitWeaponField<T, T, junitweaponintegerfield> {
|
|
56
|
+
protected abstract values: ReadonlyNonEmptyLinkedSet<T>;
|
|
57
|
+
protected get defaultValue(): T;
|
|
58
|
+
protected getNativeFieldById(id: number): junitweaponintegerfield;
|
|
59
|
+
protected getNativeFieldValue(instance: Unit, index: number): T;
|
|
60
|
+
protected setNativeFieldValue(instance: Unit, index: number, value: T): boolean;
|
|
61
|
+
static get valueChangeEvent(): ObjectLevelFieldValueChangeEvent<UnitEnumWeaponField<number>>;
|
|
62
|
+
}
|
|
63
|
+
export declare class UnitAttackTypeWeaponField extends UnitEnumWeaponField<AttackType> {
|
|
64
|
+
protected values: ReadonlyNonEmptyLinkedSet<AttackType>;
|
|
65
|
+
}
|
|
66
|
+
export declare class UnitClassificationsField extends UnitField<UnitClassifications, junitintegerfield> {
|
|
67
|
+
protected get defaultValue(): UnitClassifications;
|
|
68
|
+
protected getNativeFieldById(id: number): junitintegerfield;
|
|
69
|
+
protected getNativeFieldValue(instance: Unit): UnitClassifications;
|
|
70
|
+
protected setNativeFieldValue(instance: Unit, value: UnitClassifications): boolean;
|
|
71
|
+
}
|
|
72
|
+
export declare class UnitFlyHeightField extends UnitFloatField {
|
|
73
|
+
protected getNativeFieldValue(instance: Unit): number;
|
|
74
|
+
protected setNativeFieldValue(instance: Unit, value: number): boolean;
|
|
75
|
+
}
|
|
76
|
+
export declare class UnitPropulsionWindowField extends UnitFloatField {
|
|
77
|
+
protected getNativeFieldValue(instance: Unit): number;
|
|
78
|
+
protected setNativeFieldValue(instance: Unit, value: number): boolean;
|
|
79
|
+
}
|
|
80
|
+
export declare class UnitHealthRegenerationTypeField extends UnitIntegerField<HealthRegenerationType> {
|
|
81
|
+
}
|
|
82
|
+
export declare class UnitScalingValueField extends UnitFloatField {
|
|
83
|
+
protected setNativeFieldValue(instance: Unit, value: number): boolean;
|
|
16
84
|
}
|
|
85
|
+
export {};
|