warscript 0.0.1-dev.83957b1 → 0.0.1-dev.8466737
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 +1 -0
- package/attributes.lua +9 -0
- package/core/dummy.lua +4 -2
- package/core/types/effect.d.ts +11 -1
- package/core/types/effect.lua +43 -77
- package/core/types/frame.d.ts +16 -2
- package/core/types/frame.lua +141 -77
- package/core/types/handle.lua +9 -9
- package/core/types/item.d.ts +1 -0
- package/core/types/item.lua +1 -0
- package/core/types/player.d.ts +18 -1
- package/core/types/player.lua +76 -26
- package/core/types/playerCamera.d.ts +2 -0
- package/core/types/playerCamera.lua +123 -5
- package/core/types/playerColor.lua +4 -3
- package/core/types/sound.d.ts +1 -1
- package/core/types/sound.lua +14 -9
- package/core/types/tileCell.d.ts +18 -3
- package/core/types/tileCell.lua +108 -0
- package/core/types/timer.d.ts +3 -1
- package/core/types/timer.lua +27 -2
- 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 +711 -11
- package/destroyable.d.ts +1 -0
- package/destroyable.lua +9 -0
- package/engine/behavior.d.ts +14 -1
- package/engine/behavior.lua +230 -70
- package/engine/behaviour/ability/apply-buff.lua +5 -5
- package/engine/behaviour/ability/apply-unit-behavior.lua +5 -0
- package/engine/behaviour/ability/damage.d.ts +4 -0
- package/engine/behaviour/ability/damage.lua +19 -15
- package/engine/behaviour/ability/emulate-impact.d.ts +1 -1
- package/engine/behaviour/ability/emulate-impact.lua +7 -5
- 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 +13 -6
- package/engine/behaviour/ability.lua +62 -16
- 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 +27 -5
- package/engine/behaviour/unit.lua +181 -27
- package/engine/buff.d.ts +75 -28
- package/engine/buff.lua +433 -196
- package/engine/index.d.ts +2 -1
- package/engine/internal/ability.d.ts +10 -1
- package/engine/internal/ability.lua +99 -47
- package/engine/internal/item/ability.lua +51 -1
- 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 +27 -14
- package/engine/internal/item.lua +185 -82
- package/engine/internal/mechanics/cast-ability.lua +6 -3
- 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 -5
- package/engine/internal/unit/ability.lua +111 -24
- 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/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/pseudo-passive-abilities.d.ts +2 -0
- package/engine/internal/unit/pseudo-passive-abilities.lua +11 -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 +9 -0
- package/engine/internal/unit+damage.lua +33 -0
- package/engine/internal/unit+rally.lua +9 -31
- package/engine/internal/unit-missile-data.lua +58 -32
- package/engine/internal/unit-missile-launch.lua +65 -27
- package/engine/internal/unit.d.ts +21 -33
- package/engine/internal/unit.lua +254 -312
- 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 +7 -0
- package/engine/object-data/auxiliary/attachment-preset.lua +7 -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/order-type.d.ts +939 -0
- package/engine/object-data/auxiliary/order-type.lua +2 -0
- package/engine/object-data/auxiliary/sound-set-name.d.ts +14 -3
- package/engine/object-data/auxiliary/unit-attribute.lua +1 -1
- 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/blank-configurable.d.ts +3 -0
- package/engine/object-data/entry/ability-type/blank-configurable.lua +30 -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/cleansing-fire.d.ts +27 -0
- package/engine/object-data/entry/ability-type/cleansing-fire.lua +104 -0
- package/engine/object-data/entry/ability-type/consecration.d.ts +15 -0
- package/engine/object-data/entry/ability-type/consecration.lua +52 -0
- package/engine/object-data/entry/ability-type/cooldown-reduction.d.ts +12 -0
- package/engine/object-data/entry/ability-type/cooldown-reduction.lua +39 -0
- package/engine/object-data/entry/ability-type/critical-strike-system.d.ts +18 -0
- package/engine/object-data/entry/ability-type/critical-strike-system.lua +65 -0
- package/engine/object-data/entry/ability-type/deathseeker-arrows.d.ts +21 -0
- package/engine/object-data/entry/ability-type/deathseeker-arrows.lua +78 -0
- package/engine/object-data/entry/ability-type/equipment-inventory-interface.d.ts +8 -0
- package/engine/object-data/entry/ability-type/equipment-inventory-interface.lua +13 -0
- package/engine/object-data/entry/ability-type/equipment-inventory.d.ts +13 -0
- package/engine/object-data/entry/ability-type/equipment-inventory.lua +27 -0
- package/engine/object-data/entry/ability-type/equipment.d.ts +13 -0
- package/engine/object-data/entry/ability-type/equipment.lua +27 -0
- package/engine/object-data/entry/ability-type/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/provoke.d.ts +21 -0
- package/engine/object-data/entry/ability-type/provoke.lua +66 -0
- package/engine/object-data/entry/ability-type/rain-of-fire.d.ts +7 -0
- package/engine/object-data/entry/ability-type/rain-of-fire.lua +13 -0
- package/engine/object-data/entry/ability-type/raise-the-banner.d.ts +9 -0
- package/engine/object-data/entry/ability-type/raise-the-banner.lua +26 -0
- package/engine/object-data/entry/ability-type/reincarnation.d.ts +8 -0
- package/engine/object-data/entry/ability-type/reincarnation.lua +26 -0
- package/engine/object-data/entry/ability-type/resolve.d.ts +12 -0
- package/engine/object-data/entry/ability-type/resolve.lua +39 -0
- package/engine/object-data/entry/ability-type/righteous-fury.d.ts +33 -0
- package/engine/object-data/entry/ability-type/righteous-fury.lua +130 -0
- package/engine/object-data/entry/ability-type/sacred-aura.d.ts +27 -0
- package/engine/object-data/entry/ability-type/sacred-aura.lua +104 -0
- package/engine/object-data/entry/ability-type/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/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 +25 -6
- package/engine/object-data/entry/ability-type.lua +249 -12
- package/engine/object-data/entry/buff-type/applicable.lua +113 -109
- package/engine/object-data/entry/buff-type.d.ts +6 -2
- package/engine/object-data/entry/buff-type.lua +26 -0
- package/engine/object-data/entry/destructible-type.d.ts +32 -2
- package/engine/object-data/entry/destructible-type.lua +181 -0
- package/engine/object-data/entry/item-type.d.ts +18 -3
- package/engine/object-data/entry/item-type.lua +84 -0
- package/engine/object-data/entry/lightning-type.d.ts +6 -8
- package/engine/object-data/entry/lightning-type.lua +1 -1
- package/engine/object-data/entry/sound-preset.d.ts +2 -2
- package/engine/object-data/entry/unit-type.d.ts +62 -4
- package/engine/object-data/entry/unit-type.lua +474 -38
- 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 +3 -3
- 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 +31 -5
- package/engine/object-field/unit.lua +95 -0
- package/engine/object-field.d.ts +14 -4
- package/engine/object-field.lua +286 -132
- 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 +45 -0
- package/engine/standard/entries/buff-type.lua +43 -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 +11 -9
- 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 +8 -1
- package/utility/arrays.lua +25 -0
- package/utility/callback-array.d.ts +17 -0
- package/utility/callback-array.lua +61 -0
- package/utility/functions.d.ts +7 -0
- package/utility/functions.lua +12 -0
- package/utility/linked-map.d.ts +35 -0
- package/utility/linked-map.lua +107 -0
- package/utility/linked-set.d.ts +4 -1
- package/utility/linked-set.lua +46 -1
- package/utility/lua-maps.d.ts +12 -2
- package/utility/lua-maps.lua +37 -2
- package/utility/lua-sets.d.ts +1 -0
- package/utility/lua-sets.lua +4 -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 -26
- package/core/types/order.lua +0 -65
- package/engine/internal/unit/item.lua +0 -78
- /package/engine/internal/{object-data/armor-increase.d.ts → misc/frame-coordinates.d.ts} +0 -0
- /package/engine/internal/object-data/{armor-increase.lua → armor-bonus.lua} +0 -0
- /package/engine/object-data/entry/ability-type/{attribute-increase.d.ts → attribute-bonus.d.ts} +0 -0
- /package/engine/object-data/entry/ability-type/{attribute-increase.lua → attribute-bonus.lua} +0 -0
package/engine/object-field.lua
CHANGED
|
@@ -23,8 +23,12 @@ local ObjectDataEntryIdGenerator = ____object_2Ddata_2Dentry_2Did_2Dgenerator.Ob
|
|
|
23
23
|
local ____linked_2Dset = require("utility.linked-set")
|
|
24
24
|
local mutableLinkedSet = ____linked_2Dset.mutableLinkedSet
|
|
25
25
|
local ____lua_2Dmaps = require("utility.lua-maps")
|
|
26
|
+
local emptyLuaMap = ____lua_2Dmaps.emptyLuaMap
|
|
26
27
|
local getOrPut = ____lua_2Dmaps.getOrPut
|
|
28
|
+
local mutableLuaMap = ____lua_2Dmaps.mutableLuaMap
|
|
27
29
|
local mutableWeakLuaMap = ____lua_2Dmaps.mutableWeakLuaMap
|
|
30
|
+
local ____arrays = require("utility.arrays")
|
|
31
|
+
local emptyArray = ____arrays.emptyArray
|
|
28
32
|
local compiletimeDefaultValueByObjectDataEntryIdByObjectFieldId = {}
|
|
29
33
|
local defaultValueByObjectDataEntryIdByObjectFieldId = postcompile(function() return compiletimeDefaultValueByObjectDataEntryIdByObjectFieldId end)
|
|
30
34
|
local objectFieldById = {}
|
|
@@ -36,7 +40,7 @@ local ObjectFieldBase = __TS__Class()
|
|
|
36
40
|
ObjectFieldBase.name = "ObjectFieldBase"
|
|
37
41
|
function ObjectFieldBase.prototype.____constructor(self, id, isGlobal)
|
|
38
42
|
if isGlobal == nil then
|
|
39
|
-
isGlobal =
|
|
43
|
+
isGlobal = false
|
|
40
44
|
end
|
|
41
45
|
self.isGlobal = isGlobal
|
|
42
46
|
self.valueByInstance = setmetatable({}, {__mode = "k"})
|
|
@@ -55,9 +59,9 @@ end
|
|
|
55
59
|
function ObjectFieldBase.prototype.supports(self, instance)
|
|
56
60
|
return __TS__InstanceOf(instance, self.instanceClass)
|
|
57
61
|
end
|
|
58
|
-
function ObjectFieldBase.prototype.hasValue(self,
|
|
62
|
+
function ObjectFieldBase.prototype.hasValue(self, objectDataEntryId)
|
|
59
63
|
local defaultValueByObjectDataEntryId = defaultValueByObjectDataEntryIdByObjectFieldId[self.id]
|
|
60
|
-
return self.isGlobal or defaultValueByObjectDataEntryId ~= nil and defaultValueByObjectDataEntryId[
|
|
64
|
+
return self.isGlobal or defaultValueByObjectDataEntryId ~= nil and defaultValueByObjectDataEntryId[objectDataEntryId] ~= nil or self:hasNativeFieldValue(objectDataEntryId)
|
|
61
65
|
end
|
|
62
66
|
function ObjectFieldBase.create(self, id, isGlobal)
|
|
63
67
|
return __TS__New(
|
|
@@ -96,7 +100,7 @@ function ObjectField.prototype.getValue(self, entry, includeModifiers)
|
|
|
96
100
|
end
|
|
97
101
|
return self.defaultValue
|
|
98
102
|
end
|
|
99
|
-
if includeModifiers
|
|
103
|
+
if not includeModifiers then
|
|
100
104
|
local originalValueByInstance = self.originalValueByInstance
|
|
101
105
|
if originalValueByInstance ~= nil then
|
|
102
106
|
local originalValue = originalValueByInstance[entry]
|
|
@@ -120,6 +124,7 @@ function ObjectField.prototype.setValue(self, entry, value)
|
|
|
120
124
|
defaultValueByObjectDataEntryId[entry.id] = value
|
|
121
125
|
return true
|
|
122
126
|
end
|
|
127
|
+
local previousOriginalValue
|
|
123
128
|
local modifiersByInstance = self.modifiersByInstance
|
|
124
129
|
if modifiersByInstance ~= nil then
|
|
125
130
|
local modifiers = modifiersByInstance[entry]
|
|
@@ -129,11 +134,40 @@ function ObjectField.prototype.setValue(self, entry, value)
|
|
|
129
134
|
originalValueByInstance = mutableWeakLuaMap()
|
|
130
135
|
self.originalValueByInstance = originalValueByInstance
|
|
131
136
|
end
|
|
137
|
+
previousOriginalValue = originalValueByInstance[entry]
|
|
138
|
+
if value == previousOriginalValue then
|
|
139
|
+
return true
|
|
140
|
+
end
|
|
132
141
|
originalValueByInstance[entry] = value
|
|
133
|
-
value = self:calculateActualValue(entry)
|
|
142
|
+
value = (self:calculateActualValue(entry))
|
|
134
143
|
end
|
|
135
144
|
end
|
|
136
|
-
|
|
145
|
+
local previousValue = self:setActualValue(entry, value)
|
|
146
|
+
if previousValue == nil then
|
|
147
|
+
return false
|
|
148
|
+
end
|
|
149
|
+
if previousOriginalValue ~= nil or value ~= previousValue then
|
|
150
|
+
local ____self_invokeValueChangeEvent_2 = self.invokeValueChangeEvent
|
|
151
|
+
local ____entry_1 = entry
|
|
152
|
+
local ____previousOriginalValue_0 = previousOriginalValue
|
|
153
|
+
if ____previousOriginalValue_0 == nil then
|
|
154
|
+
____previousOriginalValue_0 = previousValue
|
|
155
|
+
end
|
|
156
|
+
____self_invokeValueChangeEvent_2(
|
|
157
|
+
self,
|
|
158
|
+
____entry_1,
|
|
159
|
+
self,
|
|
160
|
+
____previousOriginalValue_0,
|
|
161
|
+
value
|
|
162
|
+
)
|
|
163
|
+
end
|
|
164
|
+
return true
|
|
165
|
+
end
|
|
166
|
+
function ObjectField.prototype.updateActualValue(self, instance)
|
|
167
|
+
local actualValue, hasModifiers = self:calculateActualValue(instance)
|
|
168
|
+
if hasModifiers then
|
|
169
|
+
self:setActualValue(instance, actualValue)
|
|
170
|
+
end
|
|
137
171
|
end
|
|
138
172
|
function ObjectField.prototype.applyModifier(self, instance, modifier)
|
|
139
173
|
local modifiersByInstance = self.modifiersByInstance
|
|
@@ -147,11 +181,14 @@ function ObjectField.prototype.applyModifier(self, instance, modifier)
|
|
|
147
181
|
originalValueByInstance = mutableWeakLuaMap()
|
|
148
182
|
self.originalValueByInstance = originalValueByInstance
|
|
149
183
|
end
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
184
|
+
local ____originalValueByInstance_4 = originalValueByInstance
|
|
185
|
+
local ____instance_5 = instance
|
|
186
|
+
local ____originalValueByInstance_instance_3 = originalValueByInstance[instance]
|
|
187
|
+
if ____originalValueByInstance_instance_3 == nil then
|
|
188
|
+
____originalValueByInstance_instance_3 = self:getActualValue(instance)
|
|
189
|
+
end
|
|
190
|
+
____originalValueByInstance_4[____instance_5] = ____originalValueByInstance_instance_3
|
|
191
|
+
self:setActualValue(instance, (self:calculateActualValue(instance)))
|
|
155
192
|
end
|
|
156
193
|
end
|
|
157
194
|
function ObjectField.prototype.removeModifier(self, instance, modifier)
|
|
@@ -159,10 +196,7 @@ function ObjectField.prototype.removeModifier(self, instance, modifier)
|
|
|
159
196
|
if modifiersByInstance ~= nil then
|
|
160
197
|
local modifiers = modifiersByInstance[instance]
|
|
161
198
|
if modifiers ~= nil and modifiers:remove(modifier) then
|
|
162
|
-
self:setActualValue(
|
|
163
|
-
instance,
|
|
164
|
-
self:calculateActualValue(instance)
|
|
165
|
-
)
|
|
199
|
+
self:setActualValue(instance, (self:calculateActualValue(instance)))
|
|
166
200
|
return true
|
|
167
201
|
end
|
|
168
202
|
end
|
|
@@ -190,70 +224,70 @@ function ObjectField.prototype.trySetValue(self, entry, value)
|
|
|
190
224
|
end
|
|
191
225
|
function ObjectField.prototype.getActualValue(self, instance)
|
|
192
226
|
local defaultValueByObjectDataEntryId = defaultValueByObjectDataEntryIdByObjectFieldId[self.id]
|
|
193
|
-
if defaultValueByObjectDataEntryId ~= nil then
|
|
194
|
-
local defaultValue = defaultValueByObjectDataEntryId[self:getObjectDataEntryId(instance)]
|
|
195
|
-
if defaultValue ~= nil then
|
|
196
|
-
local
|
|
197
|
-
if
|
|
198
|
-
|
|
227
|
+
if defaultValueByObjectDataEntryId ~= nil or self.isGlobal then
|
|
228
|
+
local defaultValue = (defaultValueByObjectDataEntryId or emptyLuaMap())[self:getObjectDataEntryId(instance)]
|
|
229
|
+
if defaultValue ~= nil or self.isGlobal then
|
|
230
|
+
local ____self_valueByInstance_instance_6 = self.valueByInstance[instance]
|
|
231
|
+
if ____self_valueByInstance_instance_6 == nil then
|
|
232
|
+
____self_valueByInstance_instance_6 = defaultValue
|
|
199
233
|
end
|
|
200
|
-
|
|
234
|
+
local ____self_valueByInstance_instance_6_7 = ____self_valueByInstance_instance_6
|
|
235
|
+
if ____self_valueByInstance_instance_6_7 == nil then
|
|
236
|
+
____self_valueByInstance_instance_6_7 = self.defaultValue
|
|
237
|
+
end
|
|
238
|
+
return ____self_valueByInstance_instance_6_7
|
|
201
239
|
end
|
|
202
240
|
end
|
|
203
|
-
local
|
|
204
|
-
if
|
|
205
|
-
|
|
241
|
+
local ____temp_8 = self:getNativeFieldValue(instance)
|
|
242
|
+
if ____temp_8 == nil then
|
|
243
|
+
____temp_8 = self.defaultValue
|
|
206
244
|
end
|
|
207
|
-
return
|
|
245
|
+
return ____temp_8
|
|
208
246
|
end
|
|
209
247
|
function ObjectField.prototype.setActualValue(self, instance, value)
|
|
210
248
|
local defaultValueByObjectDataEntryId = defaultValueByObjectDataEntryIdByObjectFieldId[self.id]
|
|
211
|
-
|
|
212
|
-
|
|
249
|
+
local objectDataEntryId = self:getObjectDataEntryId(instance)
|
|
250
|
+
if defaultValueByObjectDataEntryId ~= nil or self.isGlobal then
|
|
251
|
+
local defaultValue = (defaultValueByObjectDataEntryId or emptyLuaMap())[objectDataEntryId]
|
|
213
252
|
if defaultValue ~= nil or self.isGlobal then
|
|
214
|
-
local
|
|
215
|
-
if
|
|
216
|
-
|
|
253
|
+
local ____self_valueByInstance_instance_9 = self.valueByInstance[instance]
|
|
254
|
+
if ____self_valueByInstance_instance_9 == nil then
|
|
255
|
+
____self_valueByInstance_instance_9 = defaultValue
|
|
217
256
|
end
|
|
218
|
-
local
|
|
219
|
-
if
|
|
220
|
-
|
|
257
|
+
local ____self_valueByInstance_instance_9_10 = ____self_valueByInstance_instance_9
|
|
258
|
+
if ____self_valueByInstance_instance_9_10 == nil then
|
|
259
|
+
____self_valueByInstance_instance_9_10 = self.defaultValue
|
|
221
260
|
end
|
|
222
|
-
local previousValue =
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
self:invokeValueChangeEvent(instance, self, previousValue, value)
|
|
226
|
-
end
|
|
227
|
-
return true
|
|
261
|
+
local previousValue = ____self_valueByInstance_instance_9_10
|
|
262
|
+
self.valueByInstance[instance] = value
|
|
263
|
+
return previousValue
|
|
228
264
|
end
|
|
229
265
|
end
|
|
230
|
-
if not self:hasNativeFieldValue(
|
|
231
|
-
return
|
|
266
|
+
if not self:hasNativeFieldValue(objectDataEntryId) then
|
|
267
|
+
return nil
|
|
232
268
|
end
|
|
233
269
|
local previousValue = self:getNativeFieldValue(instance)
|
|
234
|
-
if value ~= previousValue then
|
|
235
|
-
|
|
236
|
-
return false
|
|
237
|
-
end
|
|
238
|
-
self:invokeValueChangeEvent(instance, self, previousValue, value)
|
|
270
|
+
if value ~= previousValue and not self:setNativeFieldValue(instance, value) then
|
|
271
|
+
return nil
|
|
239
272
|
end
|
|
240
|
-
return
|
|
273
|
+
return previousValue
|
|
241
274
|
end
|
|
242
275
|
function ObjectField.prototype.calculateActualValue(self, instance)
|
|
243
|
-
local
|
|
244
|
-
local originalValue =
|
|
245
|
-
local
|
|
246
|
-
local modifiers =
|
|
276
|
+
local ____opt_11 = self.originalValueByInstance
|
|
277
|
+
local originalValue = ____opt_11 and ____opt_11[instance]
|
|
278
|
+
local ____opt_13 = self.modifiersByInstance
|
|
279
|
+
local modifiers = ____opt_13 and ____opt_13[instance]
|
|
247
280
|
if originalValue ~= nil then
|
|
248
281
|
local value = originalValue
|
|
249
282
|
if modifiers ~= nil then
|
|
250
283
|
for modifier in pairs(modifiers) do
|
|
251
284
|
value = modifier(instance, value, originalValue)
|
|
252
285
|
end
|
|
286
|
+
return value, true
|
|
253
287
|
end
|
|
254
|
-
return value
|
|
288
|
+
return value, false
|
|
255
289
|
end
|
|
256
|
-
return self.defaultValue
|
|
290
|
+
return self.defaultValue, false
|
|
257
291
|
end
|
|
258
292
|
function ObjectField.prototype.invokeValueChangeEvent(self, ...)
|
|
259
293
|
self:invokeValueChangeEventRecursive(
|
|
@@ -308,37 +342,37 @@ function ObjectArrayField.prototype.getValue(self, entry, index)
|
|
|
308
342
|
if defaultValueByObjectDataEntryId ~= nil then
|
|
309
343
|
local value = defaultValueByObjectDataEntryId[entry.id]
|
|
310
344
|
if value ~= nil then
|
|
311
|
-
local
|
|
345
|
+
local ____temp_16
|
|
312
346
|
if index == nil then
|
|
313
|
-
|
|
347
|
+
____temp_16 = value
|
|
314
348
|
else
|
|
315
|
-
local
|
|
316
|
-
if
|
|
317
|
-
|
|
349
|
+
local ____value_index_15 = value[index + 1]
|
|
350
|
+
if ____value_index_15 == nil then
|
|
351
|
+
____value_index_15 = self.defaultValue
|
|
318
352
|
end
|
|
319
|
-
|
|
353
|
+
____temp_16 = ____value_index_15
|
|
320
354
|
end
|
|
321
|
-
return
|
|
355
|
+
return ____temp_16
|
|
322
356
|
end
|
|
323
357
|
end
|
|
324
358
|
return index == nil and ({}) or self.defaultValue
|
|
325
359
|
end
|
|
326
360
|
local defaultValueByObjectDataEntryId = defaultValueByObjectDataEntryIdByObjectFieldId[self.id]
|
|
327
|
-
if defaultValueByObjectDataEntryId ~= nil then
|
|
328
|
-
local defaultValue = defaultValueByObjectDataEntryId[self:getObjectDataEntryId(entry)]
|
|
329
|
-
if defaultValue ~= nil then
|
|
330
|
-
local value = self.valueByInstance[entry] or defaultValue
|
|
331
|
-
local
|
|
361
|
+
if defaultValueByObjectDataEntryId ~= nil or self.isGlobal then
|
|
362
|
+
local defaultValue = (defaultValueByObjectDataEntryId or emptyLuaMap())[self:getObjectDataEntryId(entry)]
|
|
363
|
+
if defaultValue ~= nil or self.isGlobal then
|
|
364
|
+
local value = self.valueByInstance[entry] or defaultValue or emptyArray()
|
|
365
|
+
local ____temp_18
|
|
332
366
|
if index == nil then
|
|
333
|
-
|
|
367
|
+
____temp_18 = value
|
|
334
368
|
else
|
|
335
|
-
local
|
|
336
|
-
if
|
|
337
|
-
|
|
369
|
+
local ____value_index_17 = value[index + 1]
|
|
370
|
+
if ____value_index_17 == nil then
|
|
371
|
+
____value_index_17 = self.defaultValue
|
|
338
372
|
end
|
|
339
|
-
|
|
373
|
+
____temp_18 = ____value_index_17
|
|
340
374
|
end
|
|
341
|
-
return
|
|
375
|
+
return ____temp_18
|
|
342
376
|
end
|
|
343
377
|
end
|
|
344
378
|
if index ~= nil then
|
|
@@ -369,12 +403,12 @@ ____exports.ObjectLevelField = __TS__Class()
|
|
|
369
403
|
local ObjectLevelField = ____exports.ObjectLevelField
|
|
370
404
|
ObjectLevelField.name = "ObjectLevelField"
|
|
371
405
|
__TS__ClassExtends(ObjectLevelField, ObjectFieldBase)
|
|
372
|
-
function ObjectLevelField.prototype.getValue(self, entry, level)
|
|
406
|
+
function ObjectLevelField.prototype.getValue(self, entry, level, includeModifiers)
|
|
373
407
|
if level == nil then
|
|
374
408
|
local result = {}
|
|
375
409
|
local levelCount = self:getLevelCount(entry)
|
|
376
410
|
for i = 0, levelCount - 1 do
|
|
377
|
-
result[i + 1] = self:getValue(entry, i)
|
|
411
|
+
result[i + 1] = self:getValue(entry, i, includeModifiers)
|
|
378
412
|
end
|
|
379
413
|
return result
|
|
380
414
|
end
|
|
@@ -383,36 +417,24 @@ function ObjectLevelField.prototype.getValue(self, entry, level)
|
|
|
383
417
|
if defaultValueByObjectDataEntryId ~= nil then
|
|
384
418
|
local valueByLevel = defaultValueByObjectDataEntryId[entry.id]
|
|
385
419
|
if valueByLevel ~= nil then
|
|
386
|
-
local
|
|
387
|
-
if
|
|
388
|
-
|
|
420
|
+
local ____valueByLevel_index_19 = valueByLevel[level + 1]
|
|
421
|
+
if ____valueByLevel_index_19 == nil then
|
|
422
|
+
____valueByLevel_index_19 = self.defaultValue
|
|
389
423
|
end
|
|
390
|
-
return
|
|
424
|
+
return ____valueByLevel_index_19
|
|
391
425
|
end
|
|
392
426
|
end
|
|
393
427
|
return self.defaultValue
|
|
394
428
|
end
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
local
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
if ____temp_15 == nil then
|
|
402
|
-
____temp_15 = defaultValueByLevel[level + 1]
|
|
403
|
-
end
|
|
404
|
-
local ____temp_15_16 = ____temp_15
|
|
405
|
-
if ____temp_15_16 == nil then
|
|
406
|
-
____temp_15_16 = self.defaultValue
|
|
407
|
-
end
|
|
408
|
-
return ____temp_15_16
|
|
429
|
+
if not includeModifiers then
|
|
430
|
+
local ____opt_22 = self.originalValueByLevelByInstance
|
|
431
|
+
local ____opt_20 = ____opt_22 and ____opt_22[entry]
|
|
432
|
+
local originalValue = ____opt_20 and ____opt_20[level]
|
|
433
|
+
if originalValue ~= nil then
|
|
434
|
+
return originalValue
|
|
409
435
|
end
|
|
410
436
|
end
|
|
411
|
-
|
|
412
|
-
if ____temp_17 == nil then
|
|
413
|
-
____temp_17 = self.defaultValue
|
|
414
|
-
end
|
|
415
|
-
return ____temp_17
|
|
437
|
+
return self:getActualValue(entry, level)
|
|
416
438
|
end
|
|
417
439
|
function ObjectLevelField.prototype.setValue(self, entry, levelOrValue, value)
|
|
418
440
|
if value == nil then
|
|
@@ -452,55 +474,114 @@ function ObjectLevelField.prototype.setValue(self, entry, levelOrValue, value)
|
|
|
452
474
|
valueByLevel[level + 1] = value
|
|
453
475
|
return true
|
|
454
476
|
end
|
|
455
|
-
local
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
local ____valueByLevel_index_18 = valueByLevel[level + 1]
|
|
465
|
-
if ____valueByLevel_index_18 == nil then
|
|
466
|
-
____valueByLevel_index_18 = defaultValueByLevel[level + 1]
|
|
467
|
-
end
|
|
468
|
-
local ____valueByLevel_index_18_19 = ____valueByLevel_index_18
|
|
469
|
-
if ____valueByLevel_index_18_19 == nil then
|
|
470
|
-
____valueByLevel_index_18_19 = self.defaultValue
|
|
477
|
+
local previousOriginalValue
|
|
478
|
+
local modifiersByInstance = self.modifiersByInstance
|
|
479
|
+
if modifiersByInstance ~= nil then
|
|
480
|
+
local modifiers = modifiersByInstance[entry]
|
|
481
|
+
if modifiers ~= nil and modifiers.size ~= 0 then
|
|
482
|
+
local originalValueByLevelByInstance = self.originalValueByLevelByInstance
|
|
483
|
+
if originalValueByLevelByInstance == nil then
|
|
484
|
+
originalValueByLevelByInstance = mutableWeakLuaMap()
|
|
485
|
+
self.originalValueByLevelByInstance = originalValueByLevelByInstance
|
|
471
486
|
end
|
|
472
|
-
local
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
entry,
|
|
477
|
-
self,
|
|
478
|
-
level,
|
|
479
|
-
previousValue,
|
|
480
|
-
value
|
|
481
|
-
)
|
|
487
|
+
local originalValueByLevel = getOrPut(originalValueByLevelByInstance, entry, mutableLuaMap)
|
|
488
|
+
previousOriginalValue = originalValueByLevel[level]
|
|
489
|
+
if value == previousOriginalValue then
|
|
490
|
+
return true
|
|
482
491
|
end
|
|
483
|
-
|
|
492
|
+
originalValueByLevel[level] = value
|
|
493
|
+
value = self:calculateActualValue(entry, level)
|
|
484
494
|
end
|
|
485
495
|
end
|
|
486
|
-
|
|
496
|
+
local previousValue = self:setActualValue(entry, level, value)
|
|
497
|
+
if previousValue == nil then
|
|
487
498
|
return false
|
|
488
499
|
end
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
500
|
+
if previousOriginalValue ~= nil or value ~= previousValue then
|
|
501
|
+
local ____self_invokeValueChangeEvent_26 = self.invokeValueChangeEvent
|
|
502
|
+
local ____entry_25 = entry
|
|
503
|
+
local ____previousOriginalValue_24 = previousOriginalValue
|
|
504
|
+
if ____previousOriginalValue_24 == nil then
|
|
505
|
+
____previousOriginalValue_24 = previousValue
|
|
493
506
|
end
|
|
494
|
-
|
|
495
|
-
|
|
507
|
+
____self_invokeValueChangeEvent_26(
|
|
508
|
+
self,
|
|
509
|
+
____entry_25,
|
|
496
510
|
self,
|
|
497
511
|
level,
|
|
498
|
-
|
|
512
|
+
____previousOriginalValue_24,
|
|
499
513
|
value
|
|
500
514
|
)
|
|
501
515
|
end
|
|
502
516
|
return true
|
|
503
517
|
end
|
|
518
|
+
function ObjectLevelField.prototype.updateActualValue(self, instance, level)
|
|
519
|
+
local modifiersByInstance = self.modifiersByInstance
|
|
520
|
+
if modifiersByInstance == nil then
|
|
521
|
+
return
|
|
522
|
+
end
|
|
523
|
+
local modifiers = modifiersByInstance[instance]
|
|
524
|
+
if modifiers == nil or modifiers.size == 0 then
|
|
525
|
+
return
|
|
526
|
+
end
|
|
527
|
+
if level == nil then
|
|
528
|
+
for i = 0, self:getLevelCount(instance) - 1 do
|
|
529
|
+
self:updateActualValue(instance, i)
|
|
530
|
+
end
|
|
531
|
+
return
|
|
532
|
+
end
|
|
533
|
+
self:setActualValue(
|
|
534
|
+
instance,
|
|
535
|
+
level,
|
|
536
|
+
self:calculateActualValue(instance, level)
|
|
537
|
+
)
|
|
538
|
+
end
|
|
539
|
+
function ObjectLevelField.prototype.applyModifier(self, instance, modifier)
|
|
540
|
+
local modifiersByInstance = self.modifiersByInstance
|
|
541
|
+
if modifiersByInstance == nil then
|
|
542
|
+
modifiersByInstance = mutableWeakLuaMap()
|
|
543
|
+
self.modifiersByInstance = modifiersByInstance
|
|
544
|
+
end
|
|
545
|
+
if getOrPut(modifiersByInstance, instance, mutableLinkedSet):add(modifier) then
|
|
546
|
+
local originalValueByLevelByInstance = self.originalValueByLevelByInstance
|
|
547
|
+
if originalValueByLevelByInstance == nil then
|
|
548
|
+
originalValueByLevelByInstance = mutableWeakLuaMap()
|
|
549
|
+
self.originalValueByLevelByInstance = originalValueByLevelByInstance
|
|
550
|
+
end
|
|
551
|
+
local originalValueByLevel = getOrPut(originalValueByLevelByInstance, instance, mutableLuaMap)
|
|
552
|
+
local levelCount = self:getLevelCount(instance)
|
|
553
|
+
for level = 0, levelCount - 1 do
|
|
554
|
+
local ____originalValueByLevel_level_27 = originalValueByLevel[level]
|
|
555
|
+
if ____originalValueByLevel_level_27 == nil then
|
|
556
|
+
____originalValueByLevel_level_27 = self:getActualValue(instance, level)
|
|
557
|
+
end
|
|
558
|
+
originalValueByLevel[level] = ____originalValueByLevel_level_27
|
|
559
|
+
self:setActualValue(
|
|
560
|
+
instance,
|
|
561
|
+
level,
|
|
562
|
+
self:calculateActualValue(instance, level)
|
|
563
|
+
)
|
|
564
|
+
end
|
|
565
|
+
end
|
|
566
|
+
end
|
|
567
|
+
function ObjectLevelField.prototype.removeModifier(self, instance, modifier)
|
|
568
|
+
local modifiersByInstance = self.modifiersByInstance
|
|
569
|
+
if modifiersByInstance ~= nil then
|
|
570
|
+
local modifiers = modifiersByInstance[instance]
|
|
571
|
+
if modifiers ~= nil and modifiers:remove(modifier) then
|
|
572
|
+
local levelCount = self:getLevelCount(instance)
|
|
573
|
+
for level = 0, levelCount - 1 do
|
|
574
|
+
self:setActualValue(
|
|
575
|
+
instance,
|
|
576
|
+
level,
|
|
577
|
+
self:calculateActualValue(instance, level)
|
|
578
|
+
)
|
|
579
|
+
end
|
|
580
|
+
return true
|
|
581
|
+
end
|
|
582
|
+
end
|
|
583
|
+
return false
|
|
584
|
+
end
|
|
504
585
|
function ObjectLevelField.prototype.trySetValue(self, entry, levelOrValue, value)
|
|
505
586
|
if value ~= nil then
|
|
506
587
|
if __TS__TypeOf(value) ~= __TS__TypeOf(self.defaultValue) then
|
|
@@ -516,6 +597,79 @@ function ObjectLevelField.prototype.trySetValue(self, entry, levelOrValue, value
|
|
|
516
597
|
end
|
|
517
598
|
return self:setValue(entry, levelOrValue)
|
|
518
599
|
end
|
|
600
|
+
function ObjectLevelField.prototype.getActualValue(self, instance, level)
|
|
601
|
+
local defaultValueByObjectDataEntryId = defaultValueByObjectDataEntryIdByObjectFieldId[self.id]
|
|
602
|
+
if defaultValueByObjectDataEntryId ~= nil or self.isGlobal then
|
|
603
|
+
local defaultValueByLevel = (defaultValueByObjectDataEntryId or emptyLuaMap())[self:getObjectDataEntryId(instance)]
|
|
604
|
+
if defaultValueByLevel ~= nil or self.isGlobal then
|
|
605
|
+
local ____opt_28 = self.valueByInstance[instance]
|
|
606
|
+
local ____temp_30 = ____opt_28 and ____opt_28[level + 1]
|
|
607
|
+
if ____temp_30 == nil then
|
|
608
|
+
____temp_30 = (defaultValueByLevel or emptyArray())[level + 1]
|
|
609
|
+
end
|
|
610
|
+
local ____temp_30_31 = ____temp_30
|
|
611
|
+
if ____temp_30_31 == nil then
|
|
612
|
+
____temp_30_31 = self.defaultValue
|
|
613
|
+
end
|
|
614
|
+
return ____temp_30_31
|
|
615
|
+
end
|
|
616
|
+
end
|
|
617
|
+
local ____temp_32 = self:getNativeFieldValue(instance, level)
|
|
618
|
+
if ____temp_32 == nil then
|
|
619
|
+
____temp_32 = self.defaultValue
|
|
620
|
+
end
|
|
621
|
+
return ____temp_32
|
|
622
|
+
end
|
|
623
|
+
function ObjectLevelField.prototype.setActualValue(self, instance, level, value)
|
|
624
|
+
local defaultValueByObjectDataEntryId = defaultValueByObjectDataEntryIdByObjectFieldId[self.id]
|
|
625
|
+
local objectDataEntryId = self:getObjectDataEntryId(instance)
|
|
626
|
+
if defaultValueByObjectDataEntryId ~= nil or self.isGlobal then
|
|
627
|
+
local defaultValueByLevel = (defaultValueByObjectDataEntryId or emptyLuaMap())[objectDataEntryId]
|
|
628
|
+
if defaultValueByLevel ~= nil or self.isGlobal then
|
|
629
|
+
local valueByLevel = self.valueByInstance[instance]
|
|
630
|
+
if valueByLevel == nil then
|
|
631
|
+
valueByLevel = {}
|
|
632
|
+
self.valueByInstance[instance] = valueByLevel
|
|
633
|
+
end
|
|
634
|
+
local ____valueByLevel_index_33 = valueByLevel[level + 1]
|
|
635
|
+
if ____valueByLevel_index_33 == nil then
|
|
636
|
+
____valueByLevel_index_33 = (defaultValueByLevel or emptyArray())[level + 1]
|
|
637
|
+
end
|
|
638
|
+
local ____valueByLevel_index_33_34 = ____valueByLevel_index_33
|
|
639
|
+
if ____valueByLevel_index_33_34 == nil then
|
|
640
|
+
____valueByLevel_index_33_34 = self.defaultValue
|
|
641
|
+
end
|
|
642
|
+
local previousValue = ____valueByLevel_index_33_34
|
|
643
|
+
valueByLevel[level + 1] = value
|
|
644
|
+
return previousValue
|
|
645
|
+
end
|
|
646
|
+
end
|
|
647
|
+
if not self:hasNativeFieldValue(objectDataEntryId) then
|
|
648
|
+
return nil
|
|
649
|
+
end
|
|
650
|
+
local previousValue = self:getNativeFieldValue(instance, level)
|
|
651
|
+
if value ~= previousValue and not self:setNativeFieldValue(instance, level, value) then
|
|
652
|
+
return nil
|
|
653
|
+
end
|
|
654
|
+
return previousValue
|
|
655
|
+
end
|
|
656
|
+
function ObjectLevelField.prototype.calculateActualValue(self, instance, level)
|
|
657
|
+
local ____opt_37 = self.originalValueByLevelByInstance
|
|
658
|
+
local ____opt_35 = ____opt_37 and ____opt_37[instance]
|
|
659
|
+
local originalValue = ____opt_35 and ____opt_35[level]
|
|
660
|
+
local ____opt_39 = self.modifiersByInstance
|
|
661
|
+
local modifiers = ____opt_39 and ____opt_39[instance]
|
|
662
|
+
if originalValue ~= nil then
|
|
663
|
+
local value = originalValue
|
|
664
|
+
if modifiers ~= nil then
|
|
665
|
+
for modifier in pairs(modifiers) do
|
|
666
|
+
value = modifier(instance, level, value, originalValue)
|
|
667
|
+
end
|
|
668
|
+
end
|
|
669
|
+
return value
|
|
670
|
+
end
|
|
671
|
+
return self.defaultValue
|
|
672
|
+
end
|
|
519
673
|
function ObjectLevelField.prototype.invokeValueChangeEvent(self, ...)
|
|
520
674
|
self:invokeValueChangeEventRecursive(
|
|
521
675
|
getClass(self),
|
package/engine/random.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
/** @noSelfInFile */
|
|
2
|
+
import { ReadonlyNonEmptyArray } from "../utility/types";
|
|
2
3
|
export declare const randomAngle: () => number;
|
|
3
4
|
export declare const randomInteger: {
|
|
4
5
|
(upperBound?: number): number;
|
|
@@ -9,3 +10,12 @@ export declare const randomFloat: {
|
|
|
9
10
|
(lowerBound: number, upperBound: number): number;
|
|
10
11
|
};
|
|
11
12
|
export declare const randomXY: (centerX: number, centerY: number, range: number) => LuaMultiReturn<[x: number, y: number]>;
|
|
13
|
+
export declare const randomElement: {
|
|
14
|
+
<T>(array: ReadonlyNonEmptyArray<T>): T;
|
|
15
|
+
<T>(array: ReadonlyArray<T>): T | undefined;
|
|
16
|
+
};
|
|
17
|
+
export declare const random: {
|
|
18
|
+
<T>(element: T, ...elements: T[]): T;
|
|
19
|
+
<T>(...elements: T[]): T | undefined;
|
|
20
|
+
};
|
|
21
|
+
export declare const shuffle: (array: unknown[]) => void;
|
package/engine/random.lua
CHANGED
|
@@ -4,6 +4,7 @@ local MAXIMUM_INTEGER = ____math.MAXIMUM_INTEGER
|
|
|
4
4
|
local PI = ____math.PI
|
|
5
5
|
local getRandomInt = GetRandomInt
|
|
6
6
|
local getRandomReal = GetRandomReal
|
|
7
|
+
local select = _G.select
|
|
7
8
|
local cos = math.cos
|
|
8
9
|
local sin = math.sin
|
|
9
10
|
local sqrt = math.sqrt
|
|
@@ -15,4 +16,24 @@ ____exports.randomXY = function(centerX, centerY, range)
|
|
|
15
16
|
local t = getRandomReal(0, 1) * 2 * PI
|
|
16
17
|
return centerX + r * cos(t), centerY + r * sin(t)
|
|
17
18
|
end
|
|
19
|
+
____exports.randomElement = function(array)
|
|
20
|
+
return array[getRandomInt(1, #array)]
|
|
21
|
+
end
|
|
22
|
+
____exports.random = function(...)
|
|
23
|
+
return (select(
|
|
24
|
+
getRandomInt(
|
|
25
|
+
1,
|
|
26
|
+
select("#", ...)
|
|
27
|
+
),
|
|
28
|
+
...
|
|
29
|
+
))
|
|
30
|
+
end
|
|
31
|
+
____exports.shuffle = function(array)
|
|
32
|
+
for i = #array - 1, 1, -1 do
|
|
33
|
+
local j = getRandomInt(0, i)
|
|
34
|
+
local value = array[i + 1]
|
|
35
|
+
array[i + 1] = array[j + 1]
|
|
36
|
+
array[j + 1] = value
|
|
37
|
+
end
|
|
38
|
+
end
|
|
18
39
|
return ____exports
|