warscript 0.0.1-dev.b530e1f → 0.0.1-dev.c16baee

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.
Files changed (93) hide show
  1. package/attributes.d.ts +12 -0
  2. package/attributes.lua +16 -0
  3. package/core/types/frame.d.ts +0 -1
  4. package/core/types/group.d.ts +0 -1
  5. package/core/types/handle.d.ts +2 -1
  6. package/core/types/handle.lua +5 -2
  7. package/core/types/image.d.ts +0 -1
  8. package/core/types/missile.d.ts +2 -2
  9. package/core/types/missile.lua +8 -2
  10. package/core/types/unit.lua +8 -0
  11. package/decl/index.d.ts +1 -0
  12. package/engine/ability.d.ts +1 -1
  13. package/engine/behavior.d.ts +10 -10
  14. package/engine/behaviour/ability/apply-unit-behavior.d.ts +13 -4
  15. package/engine/behaviour/ability/apply-unit-behavior.lua +31 -9
  16. package/engine/behaviour/ability/instant-impact.lua +4 -0
  17. package/engine/behaviour/ability.d.ts +8 -1
  18. package/engine/behaviour/ability.lua +62 -0
  19. package/engine/behaviour/unit/stun-immunity.d.ts +0 -1
  20. package/engine/behaviour/unit.d.ts +3 -2
  21. package/engine/behaviour/unit.lua +7 -0
  22. package/engine/buff.d.ts +2 -2
  23. package/engine/buff.lua +8 -10
  24. package/engine/internal/ability.d.ts +1 -1
  25. package/engine/internal/mechanics/ability-duration.d.ts +1 -3
  26. package/engine/internal/mechanics/ability-duration.lua +2 -0
  27. package/engine/internal/mechanics/cast-ability.d.ts +2 -0
  28. package/engine/internal/mechanics/cast-ability.lua +86 -0
  29. package/engine/internal/unit/bonus.d.ts +5 -6
  30. package/engine/internal/unit/detach-missiles.d.ts +7 -0
  31. package/engine/internal/unit/detach-missiles.lua +30 -0
  32. package/engine/internal/unit-missile-launch.lua +1 -1
  33. package/engine/internal/unit.d.ts +37 -10
  34. package/engine/internal/unit.lua +241 -84
  35. package/engine/object-data/auxiliary/attachment-preset.d.ts +0 -1
  36. package/engine/object-data/auxiliary/combat-classification.d.ts +0 -2
  37. package/engine/object-data/entry/ability-type/blank-configurable.d.ts +0 -1
  38. package/engine/object-data/entry/ability-type/blank-passive.d.ts +0 -1
  39. package/engine/object-data/entry/ability-type/blink.d.ts +10 -0
  40. package/engine/object-data/entry/ability-type/blink.lua +39 -0
  41. package/engine/object-data/entry/ability-type/channel.d.ts +0 -1
  42. package/engine/object-data/entry/ability-type/mine.d.ts +10 -0
  43. package/engine/object-data/entry/ability-type/mine.lua +39 -0
  44. package/engine/object-data/entry/ability-type/spirit-touch.d.ts +2 -2
  45. package/engine/object-data/entry/ability-type/spirit-touch.lua +6 -6
  46. package/engine/object-data/entry/ability-type.d.ts +0 -1
  47. package/engine/object-data/entry/buff-type/applicable.d.ts +0 -1
  48. package/engine/object-data/entry/buff-type/applicable.lua +27 -71
  49. package/engine/object-data/entry/buff-type/blank.d.ts +0 -1
  50. package/engine/object-data/entry/buff-type.d.ts +0 -1
  51. package/engine/object-data/entry/destructible-type.d.ts +0 -1
  52. package/engine/object-data/entry/item-type/blank.d.ts +0 -1
  53. package/engine/object-data/entry/item-type.d.ts +0 -1
  54. package/engine/object-data/entry/lightning-type.d.ts +0 -1
  55. package/engine/object-data/entry/unit-type.d.ts +42 -2
  56. package/engine/object-data/entry/unit-type.lua +378 -50
  57. package/engine/object-data/entry/upgrade/blank.d.ts +0 -1
  58. package/engine/object-data/entry/upgrade.d.ts +0 -1
  59. package/engine/object-data/entry.d.ts +2 -3
  60. package/engine/object-field/ability.d.ts +8 -6
  61. package/engine/object-field/ability.lua +6 -0
  62. package/engine/object-field/unit.d.ts +1 -0
  63. package/engine/object-field/unit.lua +3 -0
  64. package/engine/object-field.d.ts +2 -1
  65. package/engine/object-field.lua +16 -12
  66. package/engine/random.d.ts +1 -0
  67. package/engine/random.lua +9 -0
  68. package/engine/standard/entries/unit-type.d.ts +42 -1
  69. package/engine/standard/entries/unit-type.lua +42 -1
  70. package/engine/standard/fields/ability.d.ts +1 -1
  71. package/engine/standard/fields/ability.lua +1 -1
  72. package/engine/unit.d.ts +1 -0
  73. package/engine/unit.lua +10 -2
  74. package/event.d.ts +2 -3
  75. package/event.lua +9 -5
  76. package/global/vec2.lua +1 -0
  77. package/lualib_bundle.lua +139 -40
  78. package/math/vec2.d.ts +2 -9
  79. package/math.d.ts +0 -2
  80. package/objutil/ability.d.ts +0 -1
  81. package/objutil/buff.d.ts +0 -1
  82. package/objutil/object.d.ts +0 -1
  83. package/objutil/unit.d.ts +0 -1
  84. package/package.json +13 -14
  85. package/string.d.ts +30 -0
  86. package/string.lua +14 -0
  87. package/util/stream.d.ts +0 -1
  88. package/utility/arrays.d.ts +3 -4
  89. package/utility/bit-set.d.ts +0 -2
  90. package/utility/linked-set.d.ts +1 -2
  91. package/utility/lua-maps.d.ts +1 -2
  92. package/utility/lua-sets.d.ts +1 -2
  93. package/utility/types.d.ts +2 -2
@@ -29,6 +29,9 @@ __TS__ClassExtends(UnitStringField, ____exports.UnitField)
29
29
  function UnitStringField.prototype.getNativeFieldById(self, id)
30
30
  return ConvertUnitStringField(id)
31
31
  end
32
+ function UnitStringField.prototype.hasNativeFieldValue(self)
33
+ return true
34
+ end
32
35
  function UnitStringField.prototype.getNativeFieldValue(self, instance)
33
36
  return instance:getField(self.nativeField)
34
37
  end
@@ -1,4 +1,3 @@
1
- /// <reference types="@typescript-to-lua/language-extensions" />
2
1
  /** @noSelfInFile */
3
2
  import { DispatchingEvent } from "../event";
4
3
  import { AbstractConstructor } from "../utility/types";
@@ -36,6 +35,7 @@ export type ReadonlyObjectFieldType<T extends ObjectField<any, any, any, any>> =
36
35
  type ReadonlyObjectFieldConstructor<T extends ObjectField> = OmitConstructor<typeof ObjectField> & (abstract new (...args: any[]) => ReadonlyObjectFieldType<T>);
37
36
  export declare abstract class ObjectField<ObjectDataEntryType extends ObjectDataEntry = ObjectDataEntry, InstanceType extends AnyNotNil = AnyNotNil, ValueType extends number | string | boolean = number | string | boolean, NativeFieldType = unknown> extends ObjectFieldBase<ObjectDataEntryType, InstanceType, ValueType, NativeFieldType> {
38
37
  protected abstract readonly defaultValue: ValueType;
38
+ protected abstract hasNativeFieldValue(instance: InstanceType): boolean;
39
39
  protected abstract getNativeFieldValue(instance: InstanceType): ValueType;
40
40
  protected abstract setNativeFieldValue(instance: InstanceType, value: ValueType): boolean;
41
41
  getValue(entry: ObjectDataEntryType | InstanceType): ValueType;
@@ -71,6 +71,7 @@ export declare abstract class ObjectArrayField<ObjectDataEntryType extends Objec
71
71
  }
72
72
  export declare abstract class ObjectLevelField<ObjectDataEntryType extends ObjectDataEntry = ObjectDataEntry, InstanceType extends AnyNotNil = AnyNotNil, ValueType extends number | string | boolean = number | string | boolean, InputValueType extends ValueType = never, NativeFieldType = unknown> extends ObjectFieldBase<ObjectDataEntryType, InstanceType, ValueType[], NativeFieldType> {
73
73
  protected abstract readonly defaultValue: ValueType;
74
+ protected abstract hasNativeFieldValue(instance: InstanceType): boolean;
74
75
  protected abstract getNativeFieldValue(instance: InstanceType, level: number): ValueType;
75
76
  protected abstract setNativeFieldValue(instance: InstanceType, level: number, value: ValueType): boolean;
76
77
  protected abstract getLevelCount(entry: ObjectDataEntryType | InstanceType): number;
@@ -132,13 +132,15 @@ function ObjectField.prototype.setValue(self, entry, value)
132
132
  return true
133
133
  end
134
134
  end
135
+ if not self:hasNativeFieldValue(entry) then
136
+ return false
137
+ end
135
138
  local previousValue = self:getNativeFieldValue(entry)
136
139
  if value ~= previousValue then
137
- if self:setNativeFieldValue(entry, value) then
138
- self:invokeValueChangeEvent(entry, self, previousValue, value)
139
- else
140
+ if not self:setNativeFieldValue(entry, value) then
140
141
  return false
141
142
  end
143
+ self:invokeValueChangeEvent(entry, self, previousValue, value)
142
144
  end
143
145
  return true
144
146
  end
@@ -390,19 +392,21 @@ function ObjectLevelField.prototype.setValue(self, entry, levelOrValue, value)
390
392
  return true
391
393
  end
392
394
  end
395
+ if not self:hasNativeFieldValue(entry) then
396
+ return false
397
+ end
393
398
  local previousValue = self:getNativeFieldValue(entry, level)
394
399
  if value ~= previousValue then
395
- if self:setNativeFieldValue(entry, level, value) then
396
- self:invokeValueChangeEvent(
397
- entry,
398
- self,
399
- level,
400
- previousValue,
401
- value
402
- )
403
- else
400
+ if not self:setNativeFieldValue(entry, level, value) then
404
401
  return false
405
402
  end
403
+ self:invokeValueChangeEvent(
404
+ entry,
405
+ self,
406
+ level,
407
+ previousValue,
408
+ value
409
+ )
406
410
  end
407
411
  return true
408
412
  end
@@ -8,3 +8,4 @@ export declare const randomFloat: {
8
8
  (upperBound?: number): number;
9
9
  (lowerBound: number, upperBound: number): number;
10
10
  };
11
+ export declare const randomXY: (centerX: number, centerY: number, range: number) => LuaMultiReturn<[x: number, y: number]>;
package/engine/random.lua CHANGED
@@ -1,9 +1,18 @@
1
1
  local ____exports = {}
2
2
  local ____math = require("math")
3
3
  local MAXIMUM_INTEGER = ____math.MAXIMUM_INTEGER
4
+ local PI = ____math.PI
4
5
  local getRandomInt = GetRandomInt
5
6
  local getRandomReal = GetRandomReal
7
+ local cos = math.cos
8
+ local sin = math.sin
9
+ local sqrt = math.sqrt
6
10
  ____exports.randomAngle = function() return getRandomReal(0, 360) end
7
11
  ____exports.randomInteger = function(m, n) return n ~= nil and getRandomInt(m, n) or getRandomInt(0, m or MAXIMUM_INTEGER) end
8
12
  ____exports.randomFloat = function(m, n) return n ~= nil and getRandomReal(m, n) or getRandomReal(0, m or MAXIMUM_INTEGER) end
13
+ ____exports.randomXY = function(centerX, centerY, range)
14
+ local r = range * sqrt(getRandomReal(0, 1))
15
+ local t = getRandomReal(0, 1) * 2 * PI
16
+ return centerX + r * cos(t), centerY + r * sin(t)
17
+ end
9
18
  return ____exports
@@ -9,11 +9,33 @@ export declare const RIFLEMAN_UNIT_TYPE_ID: StandardUnitTypeId;
9
9
  export declare const SIEGE_ENGINE_UNIT_TYPE_ID: StandardUnitTypeId;
10
10
  export declare const SORCERESS_UNIT_TYPE_ID: StandardUnitTypeId;
11
11
  export declare const SPELLBREAKER_UNIT_TYPE_ID: StandardUnitTypeId;
12
- export declare const PALADIN_HERO_UNIT_TYPE_ID: StandardHeroUnitTypeId;
13
12
  export declare const ARCHMAGE_HERO_UNIT_TYPE_ID: StandardHeroUnitTypeId;
13
+ export declare const BLOOD_MAGE_HERO_UNIT_TYPE_ID: StandardHeroUnitTypeId;
14
+ export declare const MOUNTAIN_KING_HERO_UNIT_TYPE_ID: StandardHeroUnitTypeId;
15
+ export declare const PALADIN_HERO_UNIT_TYPE_ID: StandardHeroUnitTypeId;
16
+ export declare const ARCHER_HIGH_ELF_UNIT_TYPE_ID: StandardUnitTypeId;
14
17
  export declare const CAPTAIN_UNIT_TYPE_ID: StandardUnitTypeId;
18
+ export declare const SWORDSMAN_UNIT_TYPE_ID: StandardUnitTypeId;
19
+ export declare const ADMIRAL_PROUDMOORE_HERO_UNIT_TYPE_ID: StandardHeroUnitTypeId;
20
+ export declare const ANASTERIAN_SUNSTRIDER_HERO_UNIT_TYPE_ID: StandardHeroUnitTypeId;
21
+ export declare const ANTONIDAS_HERO_UNIT_TYPE_ID: StandardHeroUnitTypeId;
22
+ export declare const ANTONIDAS_GHOST_HERO_UNIT_TYPE_ID: StandardHeroUnitTypeId;
15
23
  export declare const ARTHAS_HERO_UNIT_TYPE_ID: StandardHeroUnitTypeId;
16
24
  export declare const ARTHAS_WITH_FROSTMOURNE_HERO_UNIT_TYPE_ID: StandardHeroUnitTypeId;
25
+ export declare const DAGREN_THE_ORCSLAYER_HERO_UNIT_TYPE_ID: StandardHeroUnitTypeId;
26
+ export declare const HALAHK_THE_LIFEBRINGER_HERO_UNIT_TYPE_ID: StandardHeroUnitTypeId;
27
+ export declare const JAINA_HERO_UNIT_TYPE_ID: StandardHeroUnitTypeId;
28
+ export declare const JENNALLA_DEEMSPRING_HERO_UNIT_TYPE_ID: StandardHeroUnitTypeId;
29
+ export declare const KAEL_HERO_UNIT_TYPE_ID: StandardHeroUnitTypeId;
30
+ export declare const KELEN_THE_SEEKER_HERO_UNIT_TYPE_ID: StandardHeroUnitTypeId;
31
+ export declare const LORD_GARITHOS_HERO_UNIT_TYPE_ID: StandardHeroUnitTypeId;
32
+ export declare const LORD_NICHOLAS_BUZAN_HERO_UNIT_TYPE_ID: StandardHeroUnitTypeId;
33
+ export declare const MAGROTH_THE_DEFENDER_HERO_UNIT_TYPE_ID: StandardHeroUnitTypeId;
34
+ export declare const MURADIN_BRONZEBEARD_HERO_UNIT_TYPE_ID: StandardHeroUnitTypeId;
35
+ export declare const SIR_GREGORY_EDMUNSON_HERO_UNIT_TYPE_ID: StandardHeroUnitTypeId;
36
+ export declare const SYLVANAS_WINDRUNNER_HERO_UNIT_TYPE_ID: StandardHeroUnitTypeId;
37
+ export declare const THALORIEN_DAWNSEEKER_HERO_UNIT_TYPE_ID: StandardHeroUnitTypeId;
38
+ export declare const UTHER_HERO_UNIT_TYPE_ID: StandardHeroUnitTypeId;
17
39
  export declare const BATRIDER_UNIT_TYPE_ID: StandardUnitTypeId;
18
40
  export declare const DEMOLISHER_UNIT_TYPE_ID: StandardUnitTypeId;
19
41
  export declare const GRUNT_UNIT_TYPE_ID: StandardUnitTypeId;
@@ -25,11 +47,29 @@ export declare const SPIRIT_WALKER_UNIT_TYPE_ID: StandardUnitTypeId;
25
47
  export declare const TAUREN_UNIT_TYPE_ID: StandardUnitTypeId;
26
48
  export declare const WIND_RIDER_UNIT_TYPE_ID: StandardUnitTypeId;
27
49
  export declare const WITCH_DOCTOR_UNIT_TYPE_ID: StandardUnitTypeId;
50
+ export declare const ARCHER_UNIT_TYPE_ID: StandardUnitTypeId;
51
+ export declare const CHIMAERA_UNIT_TYPE_ID: StandardUnitTypeId;
52
+ export declare const DRUID_OF_THE_CLAW_UNIT_TYPE_ID: StandardUnitTypeId;
53
+ export declare const DRUID_OF_THE_TALON_UNIT_TYPE_ID: StandardUnitTypeId;
54
+ export declare const DRYAD_UNIT_TYPE_ID: StandardUnitTypeId;
55
+ export declare const FAERIE_DRAGON_UNIT_TYPE_ID: StandardUnitTypeId;
56
+ export declare const GLAIVE_THROWER_UNIT_TYPE_ID: StandardUnitTypeId;
57
+ export declare const HIPPOGRYPH_UNIT_TYPE_ID: StandardUnitTypeId;
58
+ export declare const HIPPOGRYPH_RIDER_UNIT_TYPE_ID: StandardUnitTypeId;
59
+ export declare const HUNTRESS_UNIT_TYPE_ID: StandardUnitTypeId;
60
+ export declare const MOUNTAIN_GIANT_THROWER_UNIT_TYPE_ID: StandardUnitTypeId;
61
+ export declare const WISP_UNIT_TYPE_ID: StandardUnitTypeId;
28
62
  export declare const DEMON_HUNTER_HERO_UNIT_TYPE_ID: StandardHeroUnitTypeId;
63
+ export declare const KEEPER_OF_THE_GROVE_HERO_UNIT_TYPE_ID: StandardHeroUnitTypeId;
64
+ export declare const MOON_PRIESTESS_HERO_UNIT_TYPE_ID: StandardHeroUnitTypeId;
65
+ export declare const WARDEN_HERO_UNIT_TYPE_ID: StandardHeroUnitTypeId;
29
66
  export declare const DEMON_HUNTER_DEMON_FORM_HERO_UNIT_TYPE_ID: StandardHeroUnitTypeId;
30
67
  export declare const ABOMINATION_UNIT_TYPE_ID: StandardUnitTypeId;
31
68
  export declare const GHOUL_UNIT_TYPE_ID: StandardUnitTypeId;
32
69
  export declare const DEATH_KNIGHT_HERO_UNIT_TYPE_ID: StandardHeroUnitTypeId;
70
+ export declare const ZOMBIE_UNIT_TYPE_ID: StandardUnitTypeId;
71
+ export declare const ZOMBIE_FEMALE_UNIT_TYPE_ID: StandardUnitTypeId;
72
+ export declare const ARTHAS_EVIL_HERO_UNIT_TYPE_ID: StandardHeroUnitTypeId;
33
73
  export declare const DIRE_MAMMOTH_UNIT_TYPE_ID: StandardUnitTypeId;
34
74
  export declare const ELDER_JUNGLE_STALKER_UNIT_TYPE_ID: StandardUnitTypeId;
35
75
  export declare const ENRAGED_ELEMENTAL_UNIT_TYPE_ID: StandardUnitTypeId;
@@ -58,6 +98,7 @@ export declare const WENDIGO_UNIT_TYPE_ID: StandardUnitTypeId;
58
98
  export declare const WENDIGO_SHAMAN_UNIT_TYPE_ID: StandardUnitTypeId;
59
99
  export declare const WILDKIN_UNIT_TYPE_ID: StandardUnitTypeId;
60
100
  export declare const WRAITH_UNIT_TYPE_ID: StandardUnitTypeId;
101
+ export declare const GOBLIN_LAND_MINE_UNIT_TYPE_ID: StandardUnitTypeId;
61
102
  export declare const CIRCLE_OF_POWER_UNIT_TYPE_ID: StandardUnitTypeId;
62
103
  export declare const CIRCLE_OF_POWER_MEDIUM_UNIT_TYPE_ID: StandardUnitTypeId;
63
104
  export declare const CIRCLE_OF_POWER_LARGE_UNIT_TYPE_ID: StandardUnitTypeId;
@@ -8,11 +8,33 @@ ____exports.RIFLEMAN_UNIT_TYPE_ID = fourCC("hrif")
8
8
  ____exports.SIEGE_ENGINE_UNIT_TYPE_ID = fourCC("hmtt")
9
9
  ____exports.SORCERESS_UNIT_TYPE_ID = fourCC("hsor")
10
10
  ____exports.SPELLBREAKER_UNIT_TYPE_ID = fourCC("hspt")
11
- ____exports.PALADIN_HERO_UNIT_TYPE_ID = fourCC("Hpal")
12
11
  ____exports.ARCHMAGE_HERO_UNIT_TYPE_ID = fourCC("Hamg")
12
+ ____exports.BLOOD_MAGE_HERO_UNIT_TYPE_ID = fourCC("Hblm")
13
+ ____exports.MOUNTAIN_KING_HERO_UNIT_TYPE_ID = fourCC("Hmkg")
14
+ ____exports.PALADIN_HERO_UNIT_TYPE_ID = fourCC("Hpal")
15
+ ____exports.ARCHER_HIGH_ELF_UNIT_TYPE_ID = fourCC("nhea")
13
16
  ____exports.CAPTAIN_UNIT_TYPE_ID = fourCC("hcth")
17
+ ____exports.SWORDSMAN_UNIT_TYPE_ID = fourCC("hhes")
18
+ ____exports.ADMIRAL_PROUDMOORE_HERO_UNIT_TYPE_ID = fourCC("Hapm")
19
+ ____exports.ANASTERIAN_SUNSTRIDER_HERO_UNIT_TYPE_ID = fourCC("Hssa")
20
+ ____exports.ANTONIDAS_HERO_UNIT_TYPE_ID = fourCC("Hant")
21
+ ____exports.ANTONIDAS_GHOST_HERO_UNIT_TYPE_ID = fourCC("Hgam")
14
22
  ____exports.ARTHAS_HERO_UNIT_TYPE_ID = fourCC("Hart")
15
23
  ____exports.ARTHAS_WITH_FROSTMOURNE_HERO_UNIT_TYPE_ID = fourCC("Harf")
24
+ ____exports.DAGREN_THE_ORCSLAYER_HERO_UNIT_TYPE_ID = fourCC("Hdgo")
25
+ ____exports.HALAHK_THE_LIFEBRINGER_HERO_UNIT_TYPE_ID = fourCC("Hhkl")
26
+ ____exports.JAINA_HERO_UNIT_TYPE_ID = fourCC("Hjai")
27
+ ____exports.JENNALLA_DEEMSPRING_HERO_UNIT_TYPE_ID = fourCC("Hjnd")
28
+ ____exports.KAEL_HERO_UNIT_TYPE_ID = fourCC("Hkal")
29
+ ____exports.KELEN_THE_SEEKER_HERO_UNIT_TYPE_ID = fourCC("Haah")
30
+ ____exports.LORD_GARITHOS_HERO_UNIT_TYPE_ID = fourCC("Hlgr")
31
+ ____exports.LORD_NICHOLAS_BUZAN_HERO_UNIT_TYPE_ID = fourCC("Hpb1")
32
+ ____exports.MAGROTH_THE_DEFENDER_HERO_UNIT_TYPE_ID = fourCC("Hmgd")
33
+ ____exports.MURADIN_BRONZEBEARD_HERO_UNIT_TYPE_ID = fourCC("Hmbr")
34
+ ____exports.SIR_GREGORY_EDMUNSON_HERO_UNIT_TYPE_ID = fourCC("Hpb2")
35
+ ____exports.SYLVANAS_WINDRUNNER_HERO_UNIT_TYPE_ID = fourCC("Hvwd")
36
+ ____exports.THALORIEN_DAWNSEEKER_HERO_UNIT_TYPE_ID = fourCC("Hddt")
37
+ ____exports.UTHER_HERO_UNIT_TYPE_ID = fourCC("Huth")
16
38
  ____exports.BATRIDER_UNIT_TYPE_ID = fourCC("otbr")
17
39
  ____exports.DEMOLISHER_UNIT_TYPE_ID = fourCC("ocat")
18
40
  ____exports.GRUNT_UNIT_TYPE_ID = fourCC("ogru")
@@ -24,11 +46,29 @@ ____exports.SPIRIT_WALKER_UNIT_TYPE_ID = fourCC("ospw")
24
46
  ____exports.TAUREN_UNIT_TYPE_ID = fourCC("otau")
25
47
  ____exports.WIND_RIDER_UNIT_TYPE_ID = fourCC("owyv")
26
48
  ____exports.WITCH_DOCTOR_UNIT_TYPE_ID = fourCC("odoc")
49
+ ____exports.ARCHER_UNIT_TYPE_ID = fourCC("earc")
50
+ ____exports.CHIMAERA_UNIT_TYPE_ID = fourCC("echm")
51
+ ____exports.DRUID_OF_THE_CLAW_UNIT_TYPE_ID = fourCC("edoc")
52
+ ____exports.DRUID_OF_THE_TALON_UNIT_TYPE_ID = fourCC("edot")
53
+ ____exports.DRYAD_UNIT_TYPE_ID = fourCC("edry")
54
+ ____exports.FAERIE_DRAGON_UNIT_TYPE_ID = fourCC("efdr")
55
+ ____exports.GLAIVE_THROWER_UNIT_TYPE_ID = fourCC("ebal")
56
+ ____exports.HIPPOGRYPH_UNIT_TYPE_ID = fourCC("ehip")
57
+ ____exports.HIPPOGRYPH_RIDER_UNIT_TYPE_ID = fourCC("ehpr")
58
+ ____exports.HUNTRESS_UNIT_TYPE_ID = fourCC("esen")
59
+ ____exports.MOUNTAIN_GIANT_THROWER_UNIT_TYPE_ID = fourCC("emtg")
60
+ ____exports.WISP_UNIT_TYPE_ID = fourCC("ewsp")
27
61
  ____exports.DEMON_HUNTER_HERO_UNIT_TYPE_ID = fourCC("Edem")
62
+ ____exports.KEEPER_OF_THE_GROVE_HERO_UNIT_TYPE_ID = fourCC("Ekee")
63
+ ____exports.MOON_PRIESTESS_HERO_UNIT_TYPE_ID = fourCC("Emoo")
64
+ ____exports.WARDEN_HERO_UNIT_TYPE_ID = fourCC("Ewar")
28
65
  ____exports.DEMON_HUNTER_DEMON_FORM_HERO_UNIT_TYPE_ID = fourCC("Edmm")
29
66
  ____exports.ABOMINATION_UNIT_TYPE_ID = fourCC("uabo")
30
67
  ____exports.GHOUL_UNIT_TYPE_ID = fourCC("ugho")
31
68
  ____exports.DEATH_KNIGHT_HERO_UNIT_TYPE_ID = fourCC("Udea")
69
+ ____exports.ZOMBIE_UNIT_TYPE_ID = fourCC("nzom")
70
+ ____exports.ZOMBIE_FEMALE_UNIT_TYPE_ID = fourCC("nzof")
71
+ ____exports.ARTHAS_EVIL_HERO_UNIT_TYPE_ID = fourCC("Uear")
32
72
  ____exports.DIRE_MAMMOTH_UNIT_TYPE_ID = fourCC("nmdr")
33
73
  ____exports.ELDER_JUNGLE_STALKER_UNIT_TYPE_ID = fourCC("njga")
34
74
  ____exports.ENRAGED_ELEMENTAL_UNIT_TYPE_ID = fourCC("nele")
@@ -57,6 +97,7 @@ ____exports.WENDIGO_UNIT_TYPE_ID = fourCC("nwen")
57
97
  ____exports.WENDIGO_SHAMAN_UNIT_TYPE_ID = fourCC("nwns")
58
98
  ____exports.WILDKIN_UNIT_TYPE_ID = fourCC("nowb")
59
99
  ____exports.WRAITH_UNIT_TYPE_ID = fourCC("ngh2")
100
+ ____exports.GOBLIN_LAND_MINE_UNIT_TYPE_ID = fourCC("nglm")
60
101
  ____exports.CIRCLE_OF_POWER_UNIT_TYPE_ID = fourCC("ncop")
61
102
  ____exports.CIRCLE_OF_POWER_MEDIUM_UNIT_TYPE_ID = fourCC("ncp2")
62
103
  ____exports.CIRCLE_OF_POWER_LARGE_UNIT_TYPE_ID = fourCC("ncp3")
@@ -16,7 +16,7 @@ export declare const LEVEL_SKIP_REQUIREMENT_ABILITY_INTEGER_FIELD: AbilityIntege
16
16
  export declare const HERO_ABILITY_ABILITY_BOOLEAN_FIELD: AbilityBooleanField & symbol;
17
17
  export declare const ITEM_ABILITY_ABILITY_BOOLEAN_FIELD: AbilityBooleanField & symbol;
18
18
  export declare const CHECK_DEPENDENCIES_ABILITY_BOOLEAN_FIELD: AbilityBooleanField & symbol;
19
- export declare const ARF_MISSILE_ARC_ABILITY_FLOAT_FIELD: AbilityFloatField & symbol;
19
+ export declare const MISSILE_ARC_ABILITY_FLOAT_FIELD: AbilityFloatField & symbol;
20
20
  export declare const NAME_ABILITY_STRING_FIELD: AbilityStringField & symbol;
21
21
  export declare const ICON_ACTIVATED_ABILITY_STRING_FIELD: AbilityStringField & symbol;
22
22
  export declare const ICON_RESEARCH_ABILITY_STRING_FIELD: AbilityStringField & symbol;
@@ -27,7 +27,7 @@ ____exports.LEVEL_SKIP_REQUIREMENT_ABILITY_INTEGER_FIELD = AbilityIntegerField:c
27
27
  ____exports.HERO_ABILITY_ABILITY_BOOLEAN_FIELD = AbilityBooleanField:create(fourCC("aher"))
28
28
  ____exports.ITEM_ABILITY_ABILITY_BOOLEAN_FIELD = AbilityBooleanField:create(fourCC("aite"))
29
29
  ____exports.CHECK_DEPENDENCIES_ABILITY_BOOLEAN_FIELD = AbilityBooleanField:create(fourCC("achd"))
30
- ____exports.ARF_MISSILE_ARC_ABILITY_FLOAT_FIELD = AbilityFloatField:create(fourCC("amac"))
30
+ ____exports.MISSILE_ARC_ABILITY_FLOAT_FIELD = AbilityFloatField:create(fourCC("amac"))
31
31
  ____exports.NAME_ABILITY_STRING_FIELD = AbilityStringField:create(fourCC("anam"))
32
32
  ____exports.ICON_ACTIVATED_ABILITY_STRING_FIELD = AbilityStringField:create(fourCC("auar"))
33
33
  ____exports.ICON_RESEARCH_ABILITY_STRING_FIELD = AbilityStringField:create(fourCC("arar"))
package/engine/unit.d.ts CHANGED
@@ -14,6 +14,7 @@ import "./internal/unit/missile";
14
14
  import "./internal/unit-missile-launch";
15
15
  import "./internal/unit/ghost-counter";
16
16
  import "./internal/unit/invulnerability-counter";
17
+ import "./internal/unit/detach-missiles";
17
18
  import "./internal/unit/band-aids/ancestral-spirit-cannibalize";
18
19
  export { Unit, DamagingEvent, DamageEvent } from "./internal/unit";
19
20
  export * from "./internal/unit+damage";
package/engine/unit.lua CHANGED
@@ -14,11 +14,11 @@ require("engine.internal.unit.missile")
14
14
  require("engine.internal.unit-missile-launch")
15
15
  require("engine.internal.unit.ghost-counter")
16
16
  require("engine.internal.unit.invulnerability-counter")
17
+ require("engine.internal.unit.detach-missiles")
17
18
  require("engine.internal.unit.band-aids.ancestral-spirit-cannibalize")
18
19
  do
19
20
  local ____unit = require("engine.internal.unit")
20
- local Unit = ____unit.Unit
21
- ____exports.Unit = Unit
21
+ ____exports.Unit = ____unit.Unit
22
22
  end
23
23
  do
24
24
  local ____export = require("engine.internal.unit+damage")
@@ -28,4 +28,12 @@ do
28
28
  end
29
29
  end
30
30
  end
31
+ do
32
+ local ____export = require("engine.internal.unit+rally")
33
+ for ____exportKey, ____exportValue in pairs(____export) do
34
+ if ____exportKey ~= "default" then
35
+ ____exports[____exportKey] = ____exportValue
36
+ end
37
+ end
38
+ end
31
39
  return ____exports
package/event.d.ts CHANGED
@@ -1,6 +1,5 @@
1
- /// <reference types="@typescript-to-lua/language-extensions" />
2
1
  /** @noSelfInFile */
3
- export type EventListener<T extends any[]> = (...args: T) => void;
2
+ export type EventListener<T extends any[]> = (this: void, ...args: T) => void;
4
3
  export declare const enum EventListenerPriority {
5
4
  LOWEST = 0,
6
5
  LOW = 1,
@@ -38,7 +37,7 @@ export type EventDispatchTable<EventType extends Event<any>, KeyType extends num
38
37
  };
39
38
  export type DispatchingEvent<P extends any[], T extends Event<P> = Event<P>, S extends Event<P> = Event<P>> = T & EventDispatchTable<S>;
40
39
  export declare const createDispatchingEvent: {
41
- <T extends Event<any>, S extends Event<EventParameters<T>>>(underlyingEvent: T, extractKey: (...args: EventParameters<T>) => number, ...createEvent: [...(Event<any> extends S ? [(() => S)?] : [() => S])]): DispatchingEvent<EventParameters<T>, T>;
40
+ <T extends Event<any>, S extends Event<EventParameters<T>>>(underlyingEvent: T, extractKey: (this: void, ...args: EventParameters<T>) => number, invokeEvent?: (this: void, event: S, ...args: EventParameters<T>) => unknown, ...createEvent: [...(Event<any> extends S ? [((this: void) => S)?] : [(this: void) => S])]): DispatchingEvent<EventParameters<T>, T, S>;
42
41
  };
43
42
  export declare class DependentInitializingEvent<T extends any[], R extends any[]> extends InitializingEvent<R, EventListener<T>> {
44
43
  constructor(underlyingEvent: Event<T>, priority: EventListenerPriority, collector: (...args: T) => LuaMultiReturn<[false] | [true, ...R]>);
package/event.lua CHANGED
@@ -146,8 +146,13 @@ function TriggerEvent.prototype.____constructor(self, r, c)
146
146
  end
147
147
  )
148
148
  end
149
- ____exports.createDispatchingEvent = function(underlyingEvent, extractKey, createEvent)
150
- local actualCreateEvent = createEvent or (function() return __TS__New(____exports.Event) end)
149
+ ____exports.createDispatchingEvent = function(underlyingEvent, extractKey, invokeEvent, createEvent)
150
+ if invokeEvent == nil then
151
+ invokeEvent = ____exports.Event.invoke
152
+ end
153
+ if createEvent == nil then
154
+ createEvent = function() return __TS__New(____exports.Event) end
155
+ end
151
156
  local initialized = false
152
157
  return setmetatable(
153
158
  {},
@@ -157,17 +162,16 @@ ____exports.createDispatchingEvent = function(underlyingEvent, extractKey, creat
157
162
  return underlyingEvent[id]
158
163
  end
159
164
  if not initialized then
160
- local invoke = ____exports.Event.invoke
161
165
  underlyingEvent:addListener(function(...)
162
166
  local key = extractKey(...)
163
167
  local event = rawget(self, key)
164
168
  if event then
165
- invoke(event, ...)
169
+ invokeEvent(event, ...)
166
170
  end
167
171
  end)
168
172
  initialized = true
169
173
  end
170
- local event = actualCreateEvent()
174
+ local event = createEvent()
171
175
  rawset(self, id, event)
172
176
  return event
173
177
  end,
package/global/vec2.lua CHANGED
@@ -15,6 +15,7 @@ local abs = math.abs
15
15
 
16
16
  local location = Location and Location(0, 0)
17
17
  local moveLocation = MoveLocation
18
+ local getLocationZ = GetLocationZ
18
19
 
19
20
  local vec2 = {}
20
21
 
package/lualib_bundle.lua CHANGED
@@ -193,8 +193,14 @@ do
193
193
  result[#result + 1] = v
194
194
  end
195
195
  else
196
- for i, v in arrayLikeIterator(arrayLike) do
197
- result[#result + 1] = mapFn(thisArg, v, i - 1)
196
+ local i = 0
197
+ for ____, v in arrayLikeIterator(arrayLike) do
198
+ local ____mapFn_3 = mapFn
199
+ local ____thisArg_1 = thisArg
200
+ local ____v_2 = v
201
+ local ____i_0 = i
202
+ i = ____i_0 + 1
203
+ result[#result + 1] = ____mapFn_3(____thisArg_1, ____v_2, ____i_0)
198
204
  end
199
205
  end
200
206
  return result
@@ -773,10 +779,11 @@ end
773
779
 
774
780
  local __TS__AsyncAwaiter, __TS__Await
775
781
  do
776
- local cocreate = coroutine.create
777
- local coresume = coroutine.resume
778
- local costatus = coroutine.status
779
- local coyield = coroutine.yield
782
+ local ____coroutine = _G.coroutine or ({})
783
+ local cocreate = ____coroutine.create
784
+ local coresume = ____coroutine.resume
785
+ local costatus = ____coroutine.status
786
+ local coyield = ____coroutine.yield
780
787
  function __TS__AsyncAwaiter(generator)
781
788
  return __TS__New(
782
789
  __TS__Promise,
@@ -1417,19 +1424,51 @@ do
1417
1424
  Map[Symbol.species] = Map
1418
1425
  end
1419
1426
 
1427
+ local function __TS__MapGroupBy(items, keySelector)
1428
+ local result = __TS__New(Map)
1429
+ local i = 0
1430
+ for ____, item in __TS__Iterator(items) do
1431
+ local key = keySelector(nil, item, i)
1432
+ if result:has(key) then
1433
+ local ____temp_0 = result:get(key)
1434
+ ____temp_0[#____temp_0 + 1] = item
1435
+ else
1436
+ result:set(key, {item})
1437
+ end
1438
+ i = i + 1
1439
+ end
1440
+ return result
1441
+ end
1442
+
1420
1443
  local __TS__Match = string.match
1421
1444
 
1422
1445
  local __TS__MathAtan2 = math.atan2 or math.atan
1423
1446
 
1424
1447
  local __TS__MathModf = math.modf
1425
1448
 
1449
+ local function __TS__NumberIsNaN(value)
1450
+ return value ~= value
1451
+ end
1452
+
1426
1453
  local function __TS__MathSign(val)
1427
- if val > 0 then
1428
- return 1
1429
- elseif val < 0 then
1454
+ if __TS__NumberIsNaN(val) or val == 0 then
1455
+ return val
1456
+ end
1457
+ if val < 0 then
1430
1458
  return -1
1431
1459
  end
1432
- return 0
1460
+ return 1
1461
+ end
1462
+
1463
+ local function __TS__NumberIsFinite(value)
1464
+ return type(value) == "number" and value == value and value ~= math.huge and value ~= -math.huge
1465
+ end
1466
+
1467
+ local function __TS__MathTrunc(val)
1468
+ if not __TS__NumberIsFinite(val) or val == 0 then
1469
+ return val
1470
+ end
1471
+ return val > 0 and math.floor(val) or math.ceil(val)
1433
1472
  end
1434
1473
 
1435
1474
  local function __TS__Number(value)
@@ -1459,18 +1498,10 @@ local function __TS__Number(value)
1459
1498
  end
1460
1499
  end
1461
1500
 
1462
- local function __TS__NumberIsFinite(value)
1463
- return type(value) == "number" and value == value and value ~= math.huge and value ~= -math.huge
1464
- end
1465
-
1466
1501
  local function __TS__NumberIsInteger(value)
1467
1502
  return __TS__NumberIsFinite(value) and math.floor(value) == value
1468
1503
  end
1469
1504
 
1470
- local function __TS__NumberIsNaN(value)
1471
- return value ~= value
1472
- end
1473
-
1474
1505
  local function __TS__StringSubstring(self, start, ____end)
1475
1506
  if ____end ~= ____end then
1476
1507
  ____end = 0
@@ -1603,23 +1634,17 @@ local function __TS__ObjectDefineProperty(target, key, desc)
1603
1634
  local valueExists = value ~= nil
1604
1635
  local ____desc_set_4 = desc.set
1605
1636
  local ____desc_get_5 = desc.get
1606
- local ____temp_0
1607
- if desc.configurable ~= nil then
1608
- ____temp_0 = desc.configurable
1609
- else
1610
- ____temp_0 = valueExists
1637
+ local ____desc_configurable_0 = desc.configurable
1638
+ if ____desc_configurable_0 == nil then
1639
+ ____desc_configurable_0 = valueExists
1611
1640
  end
1612
- local ____temp_1
1613
- if desc.enumerable ~= nil then
1614
- ____temp_1 = desc.enumerable
1615
- else
1616
- ____temp_1 = valueExists
1641
+ local ____desc_enumerable_1 = desc.enumerable
1642
+ if ____desc_enumerable_1 == nil then
1643
+ ____desc_enumerable_1 = valueExists
1617
1644
  end
1618
- local ____temp_2
1619
- if desc.writable ~= nil then
1620
- ____temp_2 = desc.writable
1621
- else
1622
- ____temp_2 = valueExists
1645
+ local ____desc_writable_2 = desc.writable
1646
+ if ____desc_writable_2 == nil then
1647
+ ____desc_writable_2 = valueExists
1623
1648
  end
1624
1649
  local ____temp_3
1625
1650
  if desc.value ~= nil then
@@ -1630,9 +1655,9 @@ local function __TS__ObjectDefineProperty(target, key, desc)
1630
1655
  descriptor = {
1631
1656
  set = ____desc_set_4,
1632
1657
  get = ____desc_get_5,
1633
- configurable = ____temp_0,
1634
- enumerable = ____temp_1,
1635
- writable = ____temp_2,
1658
+ configurable = ____desc_configurable_0,
1659
+ enumerable = ____desc_enumerable_1,
1660
+ writable = ____desc_writable_2,
1636
1661
  value = ____temp_3
1637
1662
  }
1638
1663
  end
@@ -1671,6 +1696,22 @@ local function __TS__ObjectFromEntries(entries)
1671
1696
  return obj
1672
1697
  end
1673
1698
 
1699
+ local function __TS__ObjectGroupBy(items, keySelector)
1700
+ local result = {}
1701
+ local i = 0
1702
+ for ____, item in __TS__Iterator(items) do
1703
+ local key = keySelector(nil, item, i)
1704
+ if result[key] ~= nil then
1705
+ local ____result_key_0 = result[key]
1706
+ ____result_key_0[#____result_key_0 + 1] = item
1707
+ else
1708
+ result[key] = {item}
1709
+ end
1710
+ i = i + 1
1711
+ end
1712
+ return result
1713
+ end
1714
+
1674
1715
  local function __TS__ObjectKeys(obj)
1675
1716
  local result = {}
1676
1717
  local len = 0
@@ -1994,6 +2035,64 @@ do
1994
2035
  end
1995
2036
  }
1996
2037
  end
2038
+ function Set.prototype.union(self, other)
2039
+ local result = __TS__New(Set, self)
2040
+ for ____, item in __TS__Iterator(other) do
2041
+ result:add(item)
2042
+ end
2043
+ return result
2044
+ end
2045
+ function Set.prototype.intersection(self, other)
2046
+ local result = __TS__New(Set)
2047
+ for ____, item in __TS__Iterator(self) do
2048
+ if other:has(item) then
2049
+ result:add(item)
2050
+ end
2051
+ end
2052
+ return result
2053
+ end
2054
+ function Set.prototype.difference(self, other)
2055
+ local result = __TS__New(Set, self)
2056
+ for ____, item in __TS__Iterator(other) do
2057
+ result:delete(item)
2058
+ end
2059
+ return result
2060
+ end
2061
+ function Set.prototype.symmetricDifference(self, other)
2062
+ local result = __TS__New(Set, self)
2063
+ for ____, item in __TS__Iterator(other) do
2064
+ if self:has(item) then
2065
+ result:delete(item)
2066
+ else
2067
+ result:add(item)
2068
+ end
2069
+ end
2070
+ return result
2071
+ end
2072
+ function Set.prototype.isSubsetOf(self, other)
2073
+ for ____, item in __TS__Iterator(self) do
2074
+ if not other:has(item) then
2075
+ return false
2076
+ end
2077
+ end
2078
+ return true
2079
+ end
2080
+ function Set.prototype.isSupersetOf(self, other)
2081
+ for ____, item in __TS__Iterator(other) do
2082
+ if not self:has(item) then
2083
+ return false
2084
+ end
2085
+ end
2086
+ return true
2087
+ end
2088
+ function Set.prototype.isDisjointFrom(self, other)
2089
+ for ____, item in __TS__Iterator(self) do
2090
+ if other:has(item) then
2091
+ return false
2092
+ end
2093
+ end
2094
+ return true
2095
+ end
1997
2096
  Set[Symbol.species] = Set
1998
2097
  end
1999
2098
 
@@ -2443,10 +2542,7 @@ local function __TS__Using(self, cb, ...)
2443
2542
  local args = {...}
2444
2543
  local thrownError
2445
2544
  local ok, result = xpcall(
2446
- function() return cb(
2447
- nil,
2448
- __TS__Unpack(args)
2449
- ) end,
2545
+ function() return cb(__TS__Unpack(args)) end,
2450
2546
  function(err)
2451
2547
  thrownError = err
2452
2548
  return thrownError
@@ -2563,10 +2659,12 @@ return {
2563
2659
  __TS__Iterator = __TS__Iterator,
2564
2660
  __TS__LuaIteratorSpread = __TS__LuaIteratorSpread,
2565
2661
  Map = Map,
2662
+ __TS__MapGroupBy = __TS__MapGroupBy,
2566
2663
  __TS__Match = __TS__Match,
2567
2664
  __TS__MathAtan2 = __TS__MathAtan2,
2568
2665
  __TS__MathModf = __TS__MathModf,
2569
2666
  __TS__MathSign = __TS__MathSign,
2667
+ __TS__MathTrunc = __TS__MathTrunc,
2570
2668
  __TS__New = __TS__New,
2571
2669
  __TS__Number = __TS__Number,
2572
2670
  __TS__NumberIsFinite = __TS__NumberIsFinite,
@@ -2582,6 +2680,7 @@ return {
2582
2680
  __TS__ObjectFromEntries = __TS__ObjectFromEntries,
2583
2681
  __TS__ObjectGetOwnPropertyDescriptor = __TS__ObjectGetOwnPropertyDescriptor,
2584
2682
  __TS__ObjectGetOwnPropertyDescriptors = __TS__ObjectGetOwnPropertyDescriptors,
2683
+ __TS__ObjectGroupBy = __TS__ObjectGroupBy,
2585
2684
  __TS__ObjectKeys = __TS__ObjectKeys,
2586
2685
  __TS__ObjectRest = __TS__ObjectRest,
2587
2686
  __TS__ObjectValues = __TS__ObjectValues,