warscript 0.0.1-dev.ee2345e → 0.0.1-dev.ee6e396

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 (279) hide show
  1. package/attributes.d.ts +6 -1
  2. package/attributes.lua +17 -1
  3. package/binaryreader.d.ts +1 -0
  4. package/binaryreader.lua +3 -0
  5. package/config.d.ts +5 -0
  6. package/config.lua +10 -0
  7. package/core/types/effect.d.ts +14 -6
  8. package/core/types/effect.lua +131 -35
  9. package/core/types/frame.d.ts +8 -1
  10. package/core/types/frame.lua +117 -22
  11. package/core/types/group.d.ts +0 -1
  12. package/core/types/image.d.ts +0 -1
  13. package/core/types/missile.d.ts +2 -2
  14. package/core/types/missile.lua +8 -2
  15. package/core/types/player.d.ts +16 -0
  16. package/core/types/player.lua +60 -15
  17. package/core/types/playerCamera.d.ts +2 -0
  18. package/core/types/playerCamera.lua +123 -5
  19. package/core/types/sound.d.ts +17 -24
  20. package/core/types/sound.lua +99 -24
  21. package/core/types/tileCell.d.ts +11 -1
  22. package/core/types/tileCell.lua +97 -0
  23. package/core/types/timer.d.ts +9 -8
  24. package/core/types/timer.lua +45 -23
  25. package/core/types/unit.lua +8 -0
  26. package/core/util.d.ts +1 -1
  27. package/core/util.lua +18 -1
  28. package/decl/index.d.ts +1 -0
  29. package/decl/native.d.ts +846 -790
  30. package/destroyable.d.ts +1 -0
  31. package/destroyable.lua +9 -0
  32. package/engine/ability.d.ts +1 -1
  33. package/engine/behavior.d.ts +24 -11
  34. package/engine/behavior.lua +233 -73
  35. package/engine/behaviour/ability/always-enabled.d.ts +7 -0
  36. package/engine/behaviour/ability/always-enabled.lua +31 -0
  37. package/engine/behaviour/ability/apply-buff.d.ts +8 -5
  38. package/engine/behaviour/ability/apply-buff.lua +36 -4
  39. package/engine/behaviour/ability/apply-unit-behavior.d.ts +6 -1
  40. package/engine/behaviour/ability/apply-unit-behavior.lua +1 -0
  41. package/engine/behaviour/ability/damage.d.ts +39 -11
  42. package/engine/behaviour/ability/damage.lua +83 -37
  43. package/engine/behaviour/ability/emulate-impact.d.ts +6 -0
  44. package/engine/behaviour/ability/emulate-impact.lua +43 -0
  45. package/engine/behaviour/ability/heal.d.ts +33 -6
  46. package/engine/behaviour/ability/heal.lua +89 -10
  47. package/engine/behaviour/ability/instant-impact.d.ts +2 -2
  48. package/engine/behaviour/ability/instant-impact.lua +4 -15
  49. package/engine/behaviour/ability/on-command-impact.d.ts +8 -0
  50. package/engine/behaviour/ability/on-command-impact.lua +25 -0
  51. package/engine/behaviour/ability/remove-buffs.d.ts +25 -0
  52. package/engine/behaviour/ability/remove-buffs.lua +49 -0
  53. package/engine/behaviour/ability/restore-mana.d.ts +15 -0
  54. package/engine/behaviour/ability/restore-mana.lua +29 -0
  55. package/engine/behaviour/ability.d.ts +33 -5
  56. package/engine/behaviour/ability.lua +183 -27
  57. package/engine/behaviour/unit/stun-immunity.d.ts +12 -7
  58. package/engine/behaviour/unit/stun-immunity.lua +57 -31
  59. package/engine/behaviour/unit.d.ts +48 -4
  60. package/engine/behaviour/unit.lua +292 -2
  61. package/engine/buff.d.ts +121 -46
  62. package/engine/buff.lua +567 -248
  63. package/engine/game-map.d.ts +7 -0
  64. package/engine/game-map.lua +32 -0
  65. package/engine/internal/ability.d.ts +23 -14
  66. package/engine/internal/ability.lua +129 -85
  67. package/engine/internal/item/ability.lua +162 -4
  68. package/engine/internal/item+owner.lua +12 -6
  69. package/engine/internal/item.d.ts +20 -19
  70. package/engine/internal/item.lua +191 -74
  71. package/engine/internal/mechanics/ability-duration.lua +1 -1
  72. package/engine/internal/mechanics/cast-ability.lua +6 -3
  73. package/engine/internal/misc/ability-disable-counter.d.ts +2 -0
  74. package/engine/internal/misc/ability-disable-counter.lua +13 -0
  75. package/engine/internal/misc/damage-metadata-by-target.d.ts +2 -0
  76. package/engine/internal/misc/damage-metadata-by-target.lua +5 -0
  77. package/engine/internal/misc/frame-coordinates.d.ts +2 -0
  78. package/engine/internal/misc/frame-coordinates.lua +21 -0
  79. package/engine/internal/misc/get-terrain-z.d.ts +2 -0
  80. package/engine/internal/misc/get-terrain-z.lua +11 -0
  81. package/engine/internal/misc/player-local-handle.d.ts +2 -0
  82. package/engine/internal/misc/player-local-handle.lua +5 -0
  83. package/engine/internal/object-data/auto-attack-speed-increase.d.ts +1 -1
  84. package/engine/internal/object-data/auto-attack-speed-increase.lua +2 -0
  85. package/engine/internal/object-data/evasion-probability.d.ts +2 -0
  86. package/engine/internal/object-data/evasion-probability.lua +16 -0
  87. package/engine/internal/object-data/mana-regeneration-rate-increase-factor.d.ts +2 -0
  88. package/engine/internal/object-data/mana-regeneration-rate-increase-factor.lua +16 -0
  89. package/engine/internal/unit/ability.d.ts +45 -1
  90. package/engine/internal/unit/ability.lua +128 -17
  91. package/engine/internal/unit/add-item-to-slot-init.d.ts +2 -0
  92. package/engine/internal/unit/add-item-to-slot-init.lua +23 -0
  93. package/engine/internal/unit/add-item-to-slot.d.ts +2 -0
  94. package/engine/internal/unit/add-item-to-slot.lua +52 -0
  95. package/engine/internal/unit/allowed-targets.d.ts +1 -1
  96. package/engine/internal/unit/allowed-targets.lua +9 -1
  97. package/engine/internal/unit/attributes.d.ts +17 -0
  98. package/engine/internal/unit/attributes.lua +46 -0
  99. package/engine/internal/unit/bonus.d.ts +13 -8
  100. package/engine/internal/unit/bonus.lua +33 -1
  101. package/engine/internal/unit/fly-height.d.ts +7 -0
  102. package/engine/internal/unit/fly-height.lua +20 -0
  103. package/engine/internal/unit/ignore-events-items.d.ts +2 -0
  104. package/engine/internal/unit/ignore-events-items.lua +5 -0
  105. package/engine/internal/unit/interrupts.d.ts +12 -0
  106. package/engine/internal/unit/interrupts.lua +28 -0
  107. package/engine/internal/unit/item.d.ts +24 -0
  108. package/engine/internal/unit/item.lua +78 -0
  109. package/engine/internal/unit/main-selected.d.ts +13 -0
  110. package/engine/internal/unit/main-selected.lua +36 -0
  111. package/engine/internal/unit/order.d.ts +20 -0
  112. package/engine/internal/unit/order.lua +136 -0
  113. package/engine/internal/unit/range-event.d.ts +12 -0
  114. package/engine/internal/unit/range-event.lua +90 -0
  115. package/engine/internal/unit/scale.d.ts +7 -0
  116. package/engine/internal/unit/scale.lua +20 -0
  117. package/engine/internal/unit+ability.lua +12 -3
  118. package/engine/internal/unit+damage.d.ts +2 -11
  119. package/engine/internal/unit+damage.lua +10 -14
  120. package/engine/internal/unit+spellSteal.lua +1 -2
  121. package/engine/internal/unit+transport.lua +4 -10
  122. package/engine/internal/unit-missile-launch.lua +70 -13
  123. package/engine/internal/unit.d.ts +97 -36
  124. package/engine/internal/unit.lua +701 -336
  125. package/engine/internal/utility.lua +12 -0
  126. package/engine/lightning.d.ts +12 -5
  127. package/engine/lightning.lua +48 -14
  128. package/engine/local-client.d.ts +9 -2
  129. package/engine/local-client.lua +112 -0
  130. package/engine/object-data/auxiliary/animation-name.d.ts +1 -0
  131. package/engine/object-data/auxiliary/animation-name.lua +16 -0
  132. package/engine/object-data/auxiliary/armor-type.d.ts +11 -0
  133. package/engine/object-data/auxiliary/armor-type.lua +46 -0
  134. package/engine/object-data/auxiliary/attachment-preset.d.ts +7 -3
  135. package/engine/object-data/auxiliary/attachment-preset.lua +4 -3
  136. package/engine/object-data/auxiliary/attack-type.d.ts +7 -8
  137. package/engine/object-data/auxiliary/attack-type.lua +42 -0
  138. package/engine/object-data/auxiliary/combat-classification.d.ts +0 -2
  139. package/engine/object-data/auxiliary/health-regeneration-type.d.ts +8 -0
  140. package/engine/object-data/auxiliary/health-regeneration-type.lua +2 -0
  141. package/engine/object-data/auxiliary/movement-type.d.ts +7 -7
  142. package/engine/object-data/auxiliary/movement-type.lua +22 -0
  143. package/engine/object-data/auxiliary/sound-eax.d.ts +10 -0
  144. package/engine/object-data/auxiliary/sound-eax.lua +2 -0
  145. package/engine/object-data/auxiliary/sound-preset-name.d.ts +5 -1
  146. package/engine/object-data/auxiliary/tech-tree-dependency.d.ts +1 -1
  147. package/engine/object-data/auxiliary/unit-attribute.d.ts +6 -0
  148. package/engine/object-data/auxiliary/unit-attribute.lua +9 -0
  149. package/engine/object-data/entry/ability-type/berserk.d.ts +2 -0
  150. package/engine/object-data/entry/ability-type/berserk.lua +13 -0
  151. package/engine/object-data/entry/ability-type/blank-configurable.d.ts +0 -1
  152. package/engine/object-data/entry/ability-type/blank-configurable.lua +12 -1
  153. package/engine/object-data/entry/ability-type/blank-passive.d.ts +0 -1
  154. package/engine/object-data/entry/ability-type/carrion-swarm.d.ts +14 -0
  155. package/engine/object-data/entry/ability-type/carrion-swarm.lua +65 -0
  156. package/engine/object-data/entry/ability-type/channel.d.ts +0 -1
  157. package/engine/object-data/entry/ability-type/disease-cloud.lua +2 -2
  158. package/engine/object-data/entry/ability-type/engineering-upgrade.lua +2 -2
  159. package/engine/object-data/entry/ability-type/ensnare.d.ts +12 -0
  160. package/engine/object-data/entry/ability-type/ensnare.lua +52 -0
  161. package/engine/object-data/entry/ability-type/feral-spirit.lua +2 -2
  162. package/engine/object-data/entry/ability-type/mana-regeneration.d.ts +8 -0
  163. package/engine/object-data/entry/ability-type/mana-regeneration.lua +26 -0
  164. package/engine/object-data/entry/ability-type/mine.d.ts +10 -0
  165. package/engine/object-data/entry/ability-type/mine.lua +39 -0
  166. package/engine/object-data/entry/ability-type/permanent-invisibility.d.ts +8 -0
  167. package/engine/object-data/entry/ability-type/permanent-invisibility.lua +26 -0
  168. package/engine/object-data/entry/ability-type/phase-shift.d.ts +10 -0
  169. package/engine/object-data/entry/ability-type/phase-shift.lua +39 -0
  170. package/engine/object-data/entry/ability-type/phoenix-morph.lua +4 -4
  171. package/engine/object-data/entry/ability-type/raise-dead.d.ts +17 -0
  172. package/engine/object-data/entry/ability-type/raise-dead.lua +78 -0
  173. package/engine/object-data/entry/ability-type/shock-wave.d.ts +4 -0
  174. package/engine/object-data/entry/ability-type/shock-wave.lua +26 -0
  175. package/engine/object-data/entry/ability-type/slow-poison.d.ts +10 -0
  176. package/engine/object-data/entry/ability-type/slow-poison.lua +58 -0
  177. package/engine/object-data/entry/ability-type/spirit-touch.d.ts +2 -2
  178. package/engine/object-data/entry/ability-type/spirit-touch.lua +6 -6
  179. package/engine/object-data/entry/ability-type/summon-quilbeast.lua +2 -2
  180. package/engine/object-data/entry/ability-type/summon-water-elemental.lua +2 -2
  181. package/engine/object-data/entry/ability-type/web.d.ts +12 -0
  182. package/engine/object-data/entry/ability-type/web.lua +52 -0
  183. package/engine/object-data/entry/ability-type.d.ts +19 -18
  184. package/engine/object-data/entry/ability-type.lua +93 -36
  185. package/engine/object-data/entry/buff-type/applicable.d.ts +0 -1
  186. package/engine/object-data/entry/buff-type/applicable.lua +18 -37
  187. package/engine/object-data/entry/buff-type/blank.d.ts +0 -1
  188. package/engine/object-data/entry/buff-type.d.ts +6 -13
  189. package/engine/object-data/entry/buff-type.lua +13 -29
  190. package/engine/object-data/entry/destructible-type.d.ts +28 -3
  191. package/engine/object-data/entry/destructible-type.lua +155 -0
  192. package/engine/object-data/entry/item-type/blank.d.ts +0 -1
  193. package/engine/object-data/entry/item-type.d.ts +15 -2
  194. package/engine/object-data/entry/item-type.lua +93 -2
  195. package/engine/object-data/entry/lightning-type.d.ts +1 -2
  196. package/engine/object-data/entry/sound-preset.d.ts +33 -0
  197. package/engine/object-data/entry/sound-preset.lua +140 -0
  198. package/engine/object-data/entry/unit-type.d.ts +62 -7
  199. package/engine/object-data/entry/unit-type.lua +524 -75
  200. package/engine/object-data/entry/upgrade/blank.d.ts +0 -1
  201. package/engine/object-data/entry/upgrade.d.ts +1 -2
  202. package/engine/object-data/entry/upgrade.lua +4 -4
  203. package/engine/object-data/entry.d.ts +18 -17
  204. package/engine/object-data/entry.lua +60 -32
  205. package/engine/object-data/utility/object-data-entry-id-generator.lua +7 -0
  206. package/engine/object-field/ability.d.ts +28 -5
  207. package/engine/object-field/ability.lua +59 -5
  208. package/engine/object-field/unit.d.ts +72 -3
  209. package/engine/object-field/unit.lua +268 -7
  210. package/engine/object-field.d.ts +25 -7
  211. package/engine/object-field.lua +359 -116
  212. package/engine/random.d.ts +10 -0
  213. package/engine/random.lua +22 -0
  214. package/engine/standard/entries/buff-type.d.ts +3 -0
  215. package/engine/standard/entries/buff-type.lua +3 -0
  216. package/engine/standard/entries/sound-preset.d.ts +10 -0
  217. package/engine/standard/entries/sound-preset.lua +10 -0
  218. package/engine/standard/entries/unit-type.d.ts +39 -1
  219. package/engine/standard/entries/unit-type.lua +39 -1
  220. package/engine/standard/fields/ability.d.ts +5 -3
  221. package/engine/standard/fields/ability.lua +5 -3
  222. package/engine/standard/fields/unit.d.ts +12 -0
  223. package/engine/standard/fields/unit.lua +20 -0
  224. package/engine/synchronization.d.ts +11 -0
  225. package/engine/synchronization.lua +77 -0
  226. package/engine/text-tag.d.ts +36 -2
  227. package/engine/text-tag.lua +250 -10
  228. package/engine/unit.d.ts +9 -0
  229. package/engine/unit.lua +18 -2
  230. package/event.d.ts +2 -3
  231. package/event.lua +9 -5
  232. package/index.d.ts +1 -0
  233. package/index.lua +1 -0
  234. package/lualib_bundle.lua +146 -42
  235. package/math/vec2.d.ts +2 -9
  236. package/math.d.ts +0 -2
  237. package/net/socket.d.ts +7 -1
  238. package/net/socket.lua +45 -4
  239. package/network.d.ts +1 -0
  240. package/network.lua +3 -2
  241. package/objutil/ability.d.ts +0 -1
  242. package/objutil/buff.d.ts +0 -1
  243. package/objutil/buff.lua +12 -11
  244. package/objutil/object.d.ts +0 -1
  245. package/objutil/unit.d.ts +0 -1
  246. package/objutil/unit.lua +8 -0
  247. package/package.json +13 -14
  248. package/patch-lua.d.ts +0 -0
  249. package/patch-lua.lua +25 -0
  250. package/patch-lualib.lua +1 -1
  251. package/property.d.ts +55 -0
  252. package/property.lua +374 -0
  253. package/string.d.ts +30 -0
  254. package/string.lua +14 -0
  255. package/util/stream.d.ts +0 -1
  256. package/utility/arrays.d.ts +13 -5
  257. package/utility/arrays.lua +45 -3
  258. package/utility/bit-set.d.ts +0 -2
  259. package/utility/callback-array.d.ts +17 -0
  260. package/utility/callback-array.lua +61 -0
  261. package/utility/functions.d.ts +8 -0
  262. package/utility/functions.lua +13 -0
  263. package/utility/lazy.d.ts +2 -0
  264. package/utility/lazy.lua +14 -0
  265. package/utility/linked-map.d.ts +34 -0
  266. package/utility/linked-map.lua +101 -0
  267. package/utility/linked-set.d.ts +15 -4
  268. package/utility/linked-set.lua +48 -3
  269. package/utility/lua-maps.d.ts +16 -4
  270. package/utility/lua-maps.lua +53 -2
  271. package/utility/lua-sets.d.ts +3 -2
  272. package/utility/lua-sets.lua +7 -0
  273. package/utility/records.lua +20 -1
  274. package/utility/reflection.lua +11 -7
  275. package/utility/types.d.ts +4 -0
  276. package/core/mapbounds.d.ts +0 -8
  277. package/core/mapbounds.lua +0 -12
  278. package/core/types/order.d.ts +0 -25
  279. package/core/types/order.lua +0 -55
@@ -20,6 +20,15 @@ local extractObjectDataEntryLevelFieldValue = ____entry.extractObjectDataEntryLe
20
20
  local ObjectDataEntry = ____entry.ObjectDataEntry
21
21
  local ____object_2Ddata_2Dentry_2Did_2Dgenerator = require("engine.object-data.utility.object-data-entry-id-generator")
22
22
  local ObjectDataEntryIdGenerator = ____object_2Ddata_2Dentry_2Did_2Dgenerator.ObjectDataEntryIdGenerator
23
+ local ____linked_2Dset = require("utility.linked-set")
24
+ local mutableLinkedSet = ____linked_2Dset.mutableLinkedSet
25
+ local ____lua_2Dmaps = require("utility.lua-maps")
26
+ local emptyLuaMap = ____lua_2Dmaps.emptyLuaMap
27
+ local getOrPut = ____lua_2Dmaps.getOrPut
28
+ local mutableLuaMap = ____lua_2Dmaps.mutableLuaMap
29
+ local mutableWeakLuaMap = ____lua_2Dmaps.mutableWeakLuaMap
30
+ local ____arrays = require("utility.arrays")
31
+ local emptyArray = ____arrays.emptyArray
23
32
  local compiletimeDefaultValueByObjectDataEntryIdByObjectFieldId = {}
24
33
  local defaultValueByObjectDataEntryIdByObjectFieldId = postcompile(function() return compiletimeDefaultValueByObjectDataEntryIdByObjectFieldId end)
25
34
  local objectFieldById = {}
@@ -29,7 +38,11 @@ local idGenerator = __TS__New(
29
38
  )
30
39
  local ObjectFieldBase = __TS__Class()
31
40
  ObjectFieldBase.name = "ObjectFieldBase"
32
- function ObjectFieldBase.prototype.____constructor(self, id)
41
+ function ObjectFieldBase.prototype.____constructor(self, id, isGlobal)
42
+ if isGlobal == nil then
43
+ isGlobal = false
44
+ end
45
+ self.isGlobal = isGlobal
33
46
  self.valueByInstance = setmetatable({}, {__mode = "k"})
34
47
  if objectFieldById[id] ~= nil then
35
48
  error(
@@ -46,10 +59,15 @@ end
46
59
  function ObjectFieldBase.prototype.supports(self, instance)
47
60
  return __TS__InstanceOf(instance, self.instanceClass)
48
61
  end
49
- function ObjectFieldBase.create(self, id)
62
+ function ObjectFieldBase.prototype.hasValue(self, objectDataEntryId)
63
+ local defaultValueByObjectDataEntryId = defaultValueByObjectDataEntryIdByObjectFieldId[self.id]
64
+ return self.isGlobal or defaultValueByObjectDataEntryId ~= nil and defaultValueByObjectDataEntryId[objectDataEntryId] ~= nil or self:hasNativeFieldValue(objectDataEntryId)
65
+ end
66
+ function ObjectFieldBase.create(self, id, isGlobal)
50
67
  return __TS__New(
51
68
  self,
52
- id or idGenerator:next()
69
+ id or idGenerator:next(),
70
+ isGlobal
53
71
  )
54
72
  end
55
73
  function ObjectFieldBase.of(self, id)
@@ -71,7 +89,7 @@ ____exports.ObjectField = __TS__Class()
71
89
  local ObjectField = ____exports.ObjectField
72
90
  ObjectField.name = "ObjectField"
73
91
  __TS__ClassExtends(ObjectField, ObjectFieldBase)
74
- function ObjectField.prototype.getValue(self, entry)
92
+ function ObjectField.prototype.getValue(self, entry, includeModifiers)
75
93
  if __TS__InstanceOf(entry, ObjectDataEntry) then
76
94
  local defaultValueByObjectDataEntryId = (warpack.compiletime and compiletimeDefaultValueByObjectDataEntryIdByObjectFieldId or defaultValueByObjectDataEntryIdByObjectFieldId)[self.id]
77
95
  if defaultValueByObjectDataEntryId ~= nil then
@@ -82,22 +100,16 @@ function ObjectField.prototype.getValue(self, entry)
82
100
  end
83
101
  return self.defaultValue
84
102
  end
85
- local defaultValueByObjectDataEntryId = defaultValueByObjectDataEntryIdByObjectFieldId[self.id]
86
- if defaultValueByObjectDataEntryId ~= nil then
87
- local defaultValue = defaultValueByObjectDataEntryId[self:getObjectDataEntryId(entry)]
88
- if defaultValue ~= nil then
89
- local ____self_valueByInstance_entry_0 = self.valueByInstance[entry]
90
- if ____self_valueByInstance_entry_0 == nil then
91
- ____self_valueByInstance_entry_0 = defaultValue
103
+ if not includeModifiers then
104
+ local originalValueByInstance = self.originalValueByInstance
105
+ if originalValueByInstance ~= nil then
106
+ local originalValue = originalValueByInstance[entry]
107
+ if originalValue ~= nil then
108
+ return originalValue
92
109
  end
93
- return ____self_valueByInstance_entry_0
94
110
  end
95
111
  end
96
- local ____temp_1 = self:getNativeFieldValue(entry)
97
- if ____temp_1 == nil then
98
- ____temp_1 = self.defaultValue
99
- end
100
- return ____temp_1
112
+ return self:getActualValue(entry)
101
113
  end
102
114
  function ObjectField.prototype.setValue(self, entry, value)
103
115
  if __TS__InstanceOf(entry, ObjectDataEntry) then
@@ -112,38 +124,84 @@ function ObjectField.prototype.setValue(self, entry, value)
112
124
  defaultValueByObjectDataEntryId[entry.id] = value
113
125
  return true
114
126
  end
115
- local defaultValueByObjectDataEntryId = defaultValueByObjectDataEntryIdByObjectFieldId[self.id]
116
- if defaultValueByObjectDataEntryId ~= nil then
117
- local defaultValue = defaultValueByObjectDataEntryId[self:getObjectDataEntryId(entry)]
118
- if defaultValue ~= nil then
119
- local ____self_valueByInstance_entry_2 = self.valueByInstance[entry]
120
- if ____self_valueByInstance_entry_2 == nil then
121
- ____self_valueByInstance_entry_2 = defaultValue
122
- end
123
- local ____self_valueByInstance_entry_2_3 = ____self_valueByInstance_entry_2
124
- if ____self_valueByInstance_entry_2_3 == nil then
125
- ____self_valueByInstance_entry_2_3 = self.defaultValue
127
+ local previousOriginalValue
128
+ local modifiersByInstance = self.modifiersByInstance
129
+ if modifiersByInstance ~= nil then
130
+ local modifiers = modifiersByInstance[entry]
131
+ if modifiers ~= nil and modifiers.size ~= 0 then
132
+ local originalValueByInstance = self.originalValueByInstance
133
+ if originalValueByInstance == nil then
134
+ originalValueByInstance = mutableWeakLuaMap()
135
+ self.originalValueByInstance = originalValueByInstance
126
136
  end
127
- local previousValue = ____self_valueByInstance_entry_2_3
128
- if value ~= previousValue then
129
- self.valueByInstance[entry] = value
130
- self:invokeValueChangeEvent(entry, self, previousValue, value)
137
+ previousOriginalValue = originalValueByInstance[entry]
138
+ if value == previousOriginalValue then
139
+ return true
131
140
  end
132
- return true
141
+ originalValueByInstance[entry] = value
142
+ value = (self:calculateActualValue(entry))
133
143
  end
134
144
  end
135
- if not self:hasNativeFieldValue(entry) then
145
+ local previousValue = self:setActualValue(entry, value)
146
+ if previousValue == nil then
136
147
  return false
137
148
  end
138
- local previousValue = self:getNativeFieldValue(entry)
139
- if value ~= previousValue then
140
- if not self:setNativeFieldValue(entry, value) then
141
- return false
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
142
155
  end
143
- self:invokeValueChangeEvent(entry, self, previousValue, value)
156
+ ____self_invokeValueChangeEvent_2(
157
+ self,
158
+ ____entry_1,
159
+ self,
160
+ ____previousOriginalValue_0,
161
+ value
162
+ )
144
163
  end
145
164
  return true
146
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
171
+ end
172
+ function ObjectField.prototype.applyModifier(self, instance, modifier)
173
+ local modifiersByInstance = self.modifiersByInstance
174
+ if modifiersByInstance == nil then
175
+ modifiersByInstance = mutableWeakLuaMap()
176
+ self.modifiersByInstance = modifiersByInstance
177
+ end
178
+ if getOrPut(modifiersByInstance, instance, mutableLinkedSet):add(modifier) then
179
+ local originalValueByInstance = self.originalValueByInstance
180
+ if originalValueByInstance == nil then
181
+ originalValueByInstance = mutableWeakLuaMap()
182
+ self.originalValueByInstance = originalValueByInstance
183
+ end
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)))
192
+ end
193
+ end
194
+ function ObjectField.prototype.removeModifier(self, instance, modifier)
195
+ local modifiersByInstance = self.modifiersByInstance
196
+ if modifiersByInstance ~= nil then
197
+ local modifiers = modifiersByInstance[instance]
198
+ if modifiers ~= nil and modifiers:remove(modifier) then
199
+ self:setActualValue(instance, (self:calculateActualValue(instance)))
200
+ return true
201
+ end
202
+ end
203
+ return false
204
+ end
147
205
  function ObjectField.prototype.removeValue(self, entry)
148
206
  if not warpack.compiletime then
149
207
  return false
@@ -164,6 +222,73 @@ function ObjectField.prototype.trySetValue(self, entry, value)
164
222
  end
165
223
  return self:setValue(entry, value)
166
224
  end
225
+ function ObjectField.prototype.getActualValue(self, instance)
226
+ local defaultValueByObjectDataEntryId = defaultValueByObjectDataEntryIdByObjectFieldId[self.id]
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
233
+ end
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
239
+ end
240
+ end
241
+ local ____temp_8 = self:getNativeFieldValue(instance)
242
+ if ____temp_8 == nil then
243
+ ____temp_8 = self.defaultValue
244
+ end
245
+ return ____temp_8
246
+ end
247
+ function ObjectField.prototype.setActualValue(self, instance, value)
248
+ local defaultValueByObjectDataEntryId = defaultValueByObjectDataEntryIdByObjectFieldId[self.id]
249
+ local objectDataEntryId = self:getObjectDataEntryId(instance)
250
+ if defaultValueByObjectDataEntryId ~= nil or self.isGlobal then
251
+ local defaultValue = (defaultValueByObjectDataEntryId or emptyLuaMap())[objectDataEntryId]
252
+ if defaultValue ~= nil or self.isGlobal then
253
+ local ____self_valueByInstance_instance_9 = self.valueByInstance[instance]
254
+ if ____self_valueByInstance_instance_9 == nil then
255
+ ____self_valueByInstance_instance_9 = defaultValue
256
+ end
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
260
+ end
261
+ local previousValue = ____self_valueByInstance_instance_9_10
262
+ self.valueByInstance[instance] = value
263
+ return previousValue
264
+ end
265
+ end
266
+ if not self:hasNativeFieldValue(objectDataEntryId) then
267
+ return nil
268
+ end
269
+ local previousValue = self:getNativeFieldValue(instance)
270
+ if value ~= previousValue and not self:setNativeFieldValue(instance, value) then
271
+ return nil
272
+ end
273
+ return previousValue
274
+ end
275
+ function ObjectField.prototype.calculateActualValue(self, instance)
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]
280
+ if originalValue ~= nil then
281
+ local value = originalValue
282
+ if modifiers ~= nil then
283
+ for modifier in pairs(modifiers) do
284
+ value = modifier(instance, value, originalValue)
285
+ end
286
+ return value, true
287
+ end
288
+ return value, false
289
+ end
290
+ return self.defaultValue, false
291
+ end
167
292
  function ObjectField.prototype.invokeValueChangeEvent(self, ...)
168
293
  self:invokeValueChangeEventRecursive(
169
294
  getClass(self),
@@ -217,37 +342,37 @@ function ObjectArrayField.prototype.getValue(self, entry, index)
217
342
  if defaultValueByObjectDataEntryId ~= nil then
218
343
  local value = defaultValueByObjectDataEntryId[entry.id]
219
344
  if value ~= nil then
220
- local ____temp_5
345
+ local ____temp_16
221
346
  if index == nil then
222
- ____temp_5 = value
347
+ ____temp_16 = value
223
348
  else
224
- local ____value_index_4 = value[index + 1]
225
- if ____value_index_4 == nil then
226
- ____value_index_4 = self.defaultValue
349
+ local ____value_index_15 = value[index + 1]
350
+ if ____value_index_15 == nil then
351
+ ____value_index_15 = self.defaultValue
227
352
  end
228
- ____temp_5 = ____value_index_4
353
+ ____temp_16 = ____value_index_15
229
354
  end
230
- return ____temp_5
355
+ return ____temp_16
231
356
  end
232
357
  end
233
358
  return index == nil and ({}) or self.defaultValue
234
359
  end
235
360
  local defaultValueByObjectDataEntryId = defaultValueByObjectDataEntryIdByObjectFieldId[self.id]
236
- if defaultValueByObjectDataEntryId ~= nil then
237
- local defaultValue = defaultValueByObjectDataEntryId[self:getObjectDataEntryId(entry)]
238
- if defaultValue ~= nil then
239
- local value = self.valueByInstance[entry] or defaultValue
240
- local ____temp_7
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
241
366
  if index == nil then
242
- ____temp_7 = value
367
+ ____temp_18 = value
243
368
  else
244
- local ____value_index_6 = value[index + 1]
245
- if ____value_index_6 == nil then
246
- ____value_index_6 = self.defaultValue
369
+ local ____value_index_17 = value[index + 1]
370
+ if ____value_index_17 == nil then
371
+ ____value_index_17 = self.defaultValue
247
372
  end
248
- ____temp_7 = ____value_index_6
373
+ ____temp_18 = ____value_index_17
249
374
  end
250
- return ____temp_7
375
+ return ____temp_18
251
376
  end
252
377
  end
253
378
  if index ~= nil then
@@ -292,36 +417,22 @@ function ObjectLevelField.prototype.getValue(self, entry, level)
292
417
  if defaultValueByObjectDataEntryId ~= nil then
293
418
  local valueByLevel = defaultValueByObjectDataEntryId[entry.id]
294
419
  if valueByLevel ~= nil then
295
- local ____valueByLevel_index_8 = valueByLevel[level + 1]
296
- if ____valueByLevel_index_8 == nil then
297
- ____valueByLevel_index_8 = self.defaultValue
420
+ local ____valueByLevel_index_19 = valueByLevel[level + 1]
421
+ if ____valueByLevel_index_19 == nil then
422
+ ____valueByLevel_index_19 = self.defaultValue
298
423
  end
299
- return ____valueByLevel_index_8
424
+ return ____valueByLevel_index_19
300
425
  end
301
426
  end
302
427
  return self.defaultValue
303
428
  end
304
- local defaultValueByObjectDataEntryId = defaultValueByObjectDataEntryIdByObjectFieldId[self.id]
305
- if defaultValueByObjectDataEntryId ~= nil then
306
- local defaultValueByLevel = defaultValueByObjectDataEntryId[self:getObjectDataEntryId(entry)]
307
- if defaultValueByLevel ~= nil then
308
- local ____opt_9 = self.valueByInstance[entry]
309
- local ____temp_11 = ____opt_9 and ____opt_9[level + 1]
310
- if ____temp_11 == nil then
311
- ____temp_11 = defaultValueByLevel[level + 1]
312
- end
313
- local ____temp_11_12 = ____temp_11
314
- if ____temp_11_12 == nil then
315
- ____temp_11_12 = self.defaultValue
316
- end
317
- return ____temp_11_12
318
- end
429
+ local ____opt_22 = self.originalValueByLevelByInstance
430
+ local ____opt_20 = ____opt_22 and ____opt_22[entry]
431
+ local originalValue = ____opt_20 and ____opt_20[level]
432
+ if originalValue ~= nil then
433
+ return originalValue
319
434
  end
320
- local ____temp_13 = self:getNativeFieldValue(entry, level)
321
- if ____temp_13 == nil then
322
- ____temp_13 = self.defaultValue
323
- end
324
- return ____temp_13
435
+ return self:getActualValue(entry, level)
325
436
  end
326
437
  function ObjectLevelField.prototype.setValue(self, entry, levelOrValue, value)
327
438
  if value == nil then
@@ -361,55 +472,114 @@ function ObjectLevelField.prototype.setValue(self, entry, levelOrValue, value)
361
472
  valueByLevel[level + 1] = value
362
473
  return true
363
474
  end
364
- local defaultValueByObjectDataEntryId = defaultValueByObjectDataEntryIdByObjectFieldId[self.id]
365
- if defaultValueByObjectDataEntryId ~= nil then
366
- local defaultValueByLevel = defaultValueByObjectDataEntryId[self:getObjectDataEntryId(entry)]
367
- if defaultValueByLevel ~= nil then
368
- local valueByLevel = self.valueByInstance[entry]
369
- if valueByLevel == nil then
370
- valueByLevel = {}
371
- self.valueByInstance[entry] = valueByLevel
475
+ local previousOriginalValue
476
+ local modifiersByInstance = self.modifiersByInstance
477
+ if modifiersByInstance ~= nil then
478
+ local modifiers = modifiersByInstance[entry]
479
+ if modifiers ~= nil and modifiers.size ~= 0 then
480
+ local originalValueByLevelByInstance = self.originalValueByLevelByInstance
481
+ if originalValueByLevelByInstance == nil then
482
+ originalValueByLevelByInstance = mutableWeakLuaMap()
483
+ self.originalValueByLevelByInstance = originalValueByLevelByInstance
372
484
  end
373
- local ____valueByLevel_index_14 = valueByLevel[level + 1]
374
- if ____valueByLevel_index_14 == nil then
375
- ____valueByLevel_index_14 = defaultValueByLevel[level + 1]
485
+ local originalValueByLevel = getOrPut(originalValueByLevelByInstance, entry, mutableLuaMap)
486
+ previousOriginalValue = originalValueByLevel[level]
487
+ if value == previousOriginalValue then
488
+ return true
376
489
  end
377
- local ____valueByLevel_index_14_15 = ____valueByLevel_index_14
378
- if ____valueByLevel_index_14_15 == nil then
379
- ____valueByLevel_index_14_15 = self.defaultValue
380
- end
381
- local previousValue = ____valueByLevel_index_14_15
382
- if value ~= previousValue then
383
- valueByLevel[level + 1] = value
384
- self:invokeValueChangeEvent(
385
- entry,
386
- self,
387
- level,
388
- previousValue,
389
- value
390
- )
391
- end
392
- return true
490
+ originalValueByLevel[level] = value
491
+ value = self:calculateActualValue(entry, level)
393
492
  end
394
493
  end
395
- if not self:hasNativeFieldValue(entry) then
494
+ local previousValue = self:setActualValue(entry, level, value)
495
+ if previousValue == nil then
396
496
  return false
397
497
  end
398
- local previousValue = self:getNativeFieldValue(entry, level)
399
- if value ~= previousValue then
400
- if not self:setNativeFieldValue(entry, level, value) then
401
- return false
498
+ if previousOriginalValue ~= nil or value ~= previousValue then
499
+ local ____self_invokeValueChangeEvent_26 = self.invokeValueChangeEvent
500
+ local ____entry_25 = entry
501
+ local ____previousOriginalValue_24 = previousOriginalValue
502
+ if ____previousOriginalValue_24 == nil then
503
+ ____previousOriginalValue_24 = previousValue
402
504
  end
403
- self:invokeValueChangeEvent(
404
- entry,
505
+ ____self_invokeValueChangeEvent_26(
506
+ self,
507
+ ____entry_25,
405
508
  self,
406
509
  level,
407
- previousValue,
510
+ ____previousOriginalValue_24,
408
511
  value
409
512
  )
410
513
  end
411
514
  return true
412
515
  end
516
+ function ObjectLevelField.prototype.updateActualValue(self, instance, level)
517
+ local modifiersByInstance = self.modifiersByInstance
518
+ if modifiersByInstance == nil then
519
+ return
520
+ end
521
+ local modifiers = modifiersByInstance[instance]
522
+ if modifiers == nil or modifiers.size == 0 then
523
+ return
524
+ end
525
+ if level == nil then
526
+ for i = 0, self:getLevelCount(instance) - 1 do
527
+ self:updateActualValue(instance, i)
528
+ end
529
+ return
530
+ end
531
+ self:setActualValue(
532
+ instance,
533
+ level,
534
+ self:calculateActualValue(instance, level)
535
+ )
536
+ end
537
+ function ObjectLevelField.prototype.applyModifier(self, instance, modifier)
538
+ local modifiersByInstance = self.modifiersByInstance
539
+ if modifiersByInstance == nil then
540
+ modifiersByInstance = mutableWeakLuaMap()
541
+ self.modifiersByInstance = modifiersByInstance
542
+ end
543
+ if getOrPut(modifiersByInstance, instance, mutableLinkedSet):add(modifier) then
544
+ local originalValueByLevelByInstance = self.originalValueByLevelByInstance
545
+ if originalValueByLevelByInstance == nil then
546
+ originalValueByLevelByInstance = mutableWeakLuaMap()
547
+ self.originalValueByLevelByInstance = originalValueByLevelByInstance
548
+ end
549
+ local originalValueByLevel = getOrPut(originalValueByLevelByInstance, instance, mutableLuaMap)
550
+ local levelCount = self:getLevelCount(instance)
551
+ for level = 0, levelCount - 1 do
552
+ local ____originalValueByLevel_level_27 = originalValueByLevel[level]
553
+ if ____originalValueByLevel_level_27 == nil then
554
+ ____originalValueByLevel_level_27 = self:getActualValue(instance, level)
555
+ end
556
+ originalValueByLevel[level] = ____originalValueByLevel_level_27
557
+ self:setActualValue(
558
+ instance,
559
+ level,
560
+ self:calculateActualValue(instance, level)
561
+ )
562
+ end
563
+ end
564
+ end
565
+ function ObjectLevelField.prototype.removeModifier(self, instance, modifier)
566
+ local modifiersByInstance = self.modifiersByInstance
567
+ if modifiersByInstance ~= nil then
568
+ local modifiers = modifiersByInstance[instance]
569
+ if modifiers ~= nil and modifiers:remove(modifier) then
570
+ local levelCount = self:getLevelCount(instance)
571
+ for level = 0, levelCount - 1 do
572
+ self:setActualValue(
573
+ instance,
574
+ level,
575
+ self:calculateActualValue(instance, level)
576
+ )
577
+ end
578
+ return true
579
+ end
580
+ end
581
+ return false
582
+ end
413
583
  function ObjectLevelField.prototype.trySetValue(self, entry, levelOrValue, value)
414
584
  if value ~= nil then
415
585
  if __TS__TypeOf(value) ~= __TS__TypeOf(self.defaultValue) then
@@ -425,6 +595,79 @@ function ObjectLevelField.prototype.trySetValue(self, entry, levelOrValue, value
425
595
  end
426
596
  return self:setValue(entry, levelOrValue)
427
597
  end
598
+ function ObjectLevelField.prototype.getActualValue(self, instance, level)
599
+ local defaultValueByObjectDataEntryId = defaultValueByObjectDataEntryIdByObjectFieldId[self.id]
600
+ if defaultValueByObjectDataEntryId ~= nil or self.isGlobal then
601
+ local defaultValueByLevel = (defaultValueByObjectDataEntryId or emptyLuaMap())[self:getObjectDataEntryId(instance)]
602
+ if defaultValueByLevel ~= nil or self.isGlobal then
603
+ local ____opt_28 = self.valueByInstance[instance]
604
+ local ____temp_30 = ____opt_28 and ____opt_28[level + 1]
605
+ if ____temp_30 == nil then
606
+ ____temp_30 = (defaultValueByLevel or emptyArray())[level + 1]
607
+ end
608
+ local ____temp_30_31 = ____temp_30
609
+ if ____temp_30_31 == nil then
610
+ ____temp_30_31 = self.defaultValue
611
+ end
612
+ return ____temp_30_31
613
+ end
614
+ end
615
+ local ____temp_32 = self:getNativeFieldValue(instance, level)
616
+ if ____temp_32 == nil then
617
+ ____temp_32 = self.defaultValue
618
+ end
619
+ return ____temp_32
620
+ end
621
+ function ObjectLevelField.prototype.setActualValue(self, instance, level, value)
622
+ local defaultValueByObjectDataEntryId = defaultValueByObjectDataEntryIdByObjectFieldId[self.id]
623
+ local objectDataEntryId = self:getObjectDataEntryId(instance)
624
+ if defaultValueByObjectDataEntryId ~= nil or self.isGlobal then
625
+ local defaultValueByLevel = (defaultValueByObjectDataEntryId or emptyLuaMap())[objectDataEntryId]
626
+ if defaultValueByLevel ~= nil or self.isGlobal then
627
+ local valueByLevel = self.valueByInstance[instance]
628
+ if valueByLevel == nil then
629
+ valueByLevel = {}
630
+ self.valueByInstance[instance] = valueByLevel
631
+ end
632
+ local ____valueByLevel_index_33 = valueByLevel[level + 1]
633
+ if ____valueByLevel_index_33 == nil then
634
+ ____valueByLevel_index_33 = (defaultValueByLevel or emptyArray())[level + 1]
635
+ end
636
+ local ____valueByLevel_index_33_34 = ____valueByLevel_index_33
637
+ if ____valueByLevel_index_33_34 == nil then
638
+ ____valueByLevel_index_33_34 = self.defaultValue
639
+ end
640
+ local previousValue = ____valueByLevel_index_33_34
641
+ valueByLevel[level + 1] = value
642
+ return previousValue
643
+ end
644
+ end
645
+ if not self:hasNativeFieldValue(objectDataEntryId) then
646
+ return nil
647
+ end
648
+ local previousValue = self:getNativeFieldValue(instance, level)
649
+ if value ~= previousValue and not self:setNativeFieldValue(instance, level, value) then
650
+ return nil
651
+ end
652
+ return previousValue
653
+ end
654
+ function ObjectLevelField.prototype.calculateActualValue(self, instance, level)
655
+ local ____opt_37 = self.originalValueByLevelByInstance
656
+ local ____opt_35 = ____opt_37 and ____opt_37[instance]
657
+ local originalValue = ____opt_35 and ____opt_35[level]
658
+ local ____opt_39 = self.modifiersByInstance
659
+ local modifiers = ____opt_39 and ____opt_39[instance]
660
+ if originalValue ~= nil then
661
+ local value = originalValue
662
+ if modifiers ~= nil then
663
+ for modifier in pairs(modifiers) do
664
+ value = modifier(instance, level, value, originalValue)
665
+ end
666
+ end
667
+ return value
668
+ end
669
+ return self.defaultValue
670
+ end
428
671
  function ObjectLevelField.prototype.invokeValueChangeEvent(self, ...)
429
672
  self:invokeValueChangeEventRecursive(
430
673
  getClass(self),
@@ -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;
@@ -8,3 +9,12 @@ export declare const randomFloat: {
8
9
  (upperBound?: number): number;
9
10
  (lowerBound: number, upperBound: number): number;
10
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
+ };
package/engine/random.lua CHANGED
@@ -1,9 +1,31 @@
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 select = _G.select
8
+ local cos = math.cos
9
+ local sin = math.sin
10
+ local sqrt = math.sqrt
6
11
  ____exports.randomAngle = function() return getRandomReal(0, 360) end
7
12
  ____exports.randomInteger = function(m, n) return n ~= nil and getRandomInt(m, n) or getRandomInt(0, m or MAXIMUM_INTEGER) end
8
13
  ____exports.randomFloat = function(m, n) return n ~= nil and getRandomReal(m, n) or getRandomReal(0, m or MAXIMUM_INTEGER) end
14
+ ____exports.randomXY = function(centerX, centerY, range)
15
+ local r = range * sqrt(getRandomReal(0, 1))
16
+ local t = getRandomReal(0, 1) * 2 * PI
17
+ return centerX + r * cos(t), centerY + r * sin(t)
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
9
31
  return ____exports
@@ -0,0 +1,3 @@
1
+ /** @noSelfInFile */
2
+ import { StandardBuffTypeId } from "../../object-data/entry/buff-type";
3
+ export declare const CHEMICAL_RAGE_BUFF_TYPE_ID: StandardBuffTypeId;
@@ -0,0 +1,3 @@
1
+ local ____exports = {}
2
+ ____exports.CHEMICAL_RAGE_BUFF_TYPE_ID = fourCC("BNcr")
3
+ return ____exports
@@ -0,0 +1,10 @@
1
+ /** @noSelfInFile */
2
+ import { StandardSoundPresetId } from "../../object-data/entry/sound-preset";
3
+ export declare const ABOMINATION_PISSED_SOUND_PRESET_ID: StandardSoundPresetId;
4
+ export declare const ABOMINATION_READY_SOUND_PRESET_ID: StandardSoundPresetId;
5
+ export declare const ABOMINATION_WAR_CRY_SOUND_PRESET_ID: StandardSoundPresetId;
6
+ export declare const AXE_MEDIUM_CHOP_WOOD_SOUND_PRESET_ID: StandardSoundPresetId;
7
+ export declare const IMPALE_SOUND_PRESET_ID: StandardSoundPresetId;
8
+ export declare const IMPALE_HIT_SOUND_PRESET_ID: StandardSoundPresetId;
9
+ export declare const IMPALE_LAND_SOUND_PRESET_ID: StandardSoundPresetId;
10
+ export declare const IMPALE_CAST_SOUND_PRESET_ID: StandardSoundPresetId;