warscript 0.0.1-dev.47f470c → 0.0.1-dev.4cfb266

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 (86) hide show
  1. package/core/types/effect.d.ts +1 -3
  2. package/core/types/effect.lua +26 -29
  3. package/core/types/sound.d.ts +17 -25
  4. package/core/types/sound.lua +91 -46
  5. package/core/types/timer.d.ts +6 -7
  6. package/core/types/timer.lua +18 -21
  7. package/core/util.lua +6 -1
  8. package/decl/native.d.ts +840 -786
  9. package/engine/behaviour/ability/apply-unit-behavior.lua +1 -0
  10. package/engine/behaviour/ability/damage.d.ts +5 -1
  11. package/engine/behaviour/ability/damage.lua +2 -2
  12. package/engine/behaviour/ability/emulate-impact.lua +7 -0
  13. package/engine/behaviour/ability.d.ts +5 -1
  14. package/engine/behaviour/ability.lua +18 -4
  15. package/engine/behaviour/unit.d.ts +2 -0
  16. package/engine/buff.d.ts +13 -8
  17. package/engine/buff.lua +81 -50
  18. package/engine/internal/item.d.ts +2 -1
  19. package/engine/internal/mechanics/ability-duration.lua +1 -1
  20. package/engine/internal/misc/damage-metadata-by-target.d.ts +2 -0
  21. package/engine/internal/misc/damage-metadata-by-target.lua +5 -0
  22. package/engine/internal/unit+damage.d.ts +2 -11
  23. package/engine/internal/unit+damage.lua +10 -14
  24. package/engine/internal/unit+spellSteal.lua +1 -2
  25. package/engine/internal/unit.d.ts +16 -2
  26. package/engine/internal/unit.lua +81 -32
  27. package/engine/object-data/auxiliary/attachment-preset.d.ts +7 -2
  28. package/engine/object-data/auxiliary/attachment-preset.lua +4 -3
  29. package/engine/object-data/auxiliary/attack-type.d.ts +7 -8
  30. package/engine/object-data/auxiliary/attack-type.lua +42 -0
  31. package/engine/object-data/auxiliary/movement-type.d.ts +7 -7
  32. package/engine/object-data/auxiliary/movement-type.lua +22 -0
  33. package/engine/object-data/auxiliary/sound-eax.d.ts +10 -0
  34. package/engine/object-data/auxiliary/sound-eax.lua +2 -0
  35. package/engine/object-data/auxiliary/unit-attribute.d.ts +6 -0
  36. package/engine/object-data/auxiliary/unit-attribute.lua +9 -0
  37. package/engine/object-data/entry/ability-type/berserk.d.ts +2 -0
  38. package/engine/object-data/entry/ability-type/berserk.lua +13 -0
  39. package/engine/object-data/entry/ability-type/blank-configurable.lua +0 -9
  40. package/engine/object-data/entry/ability-type/carrion-swarm.d.ts +14 -0
  41. package/engine/object-data/entry/ability-type/carrion-swarm.lua +65 -0
  42. package/engine/object-data/entry/ability-type/curse.lua +2 -2
  43. package/engine/object-data/entry/ability-type/ensnare.d.ts +12 -0
  44. package/engine/object-data/entry/ability-type/ensnare.lua +52 -0
  45. package/engine/object-data/entry/ability-type/phase-shift.d.ts +10 -0
  46. package/engine/object-data/entry/ability-type/phase-shift.lua +39 -0
  47. package/engine/object-data/entry/ability-type/raise-dead.d.ts +17 -0
  48. package/engine/object-data/entry/ability-type/raise-dead.lua +78 -0
  49. package/engine/object-data/entry/ability-type/shock-wave.d.ts +4 -0
  50. package/engine/object-data/entry/ability-type/shock-wave.lua +26 -0
  51. package/engine/object-data/entry/ability-type/slow-poison.d.ts +10 -0
  52. package/engine/object-data/entry/ability-type/slow-poison.lua +58 -0
  53. package/engine/object-data/entry/ability-type/web.d.ts +12 -0
  54. package/engine/object-data/entry/ability-type/web.lua +52 -0
  55. package/engine/object-data/entry/ability-type.d.ts +18 -16
  56. package/engine/object-data/entry/ability-type.lua +73 -13
  57. package/engine/object-data/entry/buff-type/applicable.lua +9 -4
  58. package/engine/object-data/entry/buff-type.d.ts +5 -11
  59. package/engine/object-data/entry/buff-type.lua +11 -27
  60. package/engine/object-data/entry/sound-preset.d.ts +18 -2
  61. package/engine/object-data/entry/sound-preset.lua +105 -15
  62. package/engine/object-data/entry/unit-type.d.ts +2 -2
  63. package/engine/object-data/entry/unit-type.lua +97 -87
  64. package/engine/object-data/entry.d.ts +2 -2
  65. package/engine/object-data/entry.lua +14 -7
  66. package/engine/object-field/ability.d.ts +1 -1
  67. package/engine/object-field/unit.d.ts +46 -3
  68. package/engine/object-field/unit.lua +173 -7
  69. package/engine/object-field.d.ts +9 -1
  70. package/engine/object-field.lua +158 -76
  71. package/engine/standard/entries/buff-type.d.ts +3 -0
  72. package/engine/standard/entries/buff-type.lua +3 -0
  73. package/objutil/buff.lua +1 -2
  74. package/objutil/unit.lua +2 -2
  75. package/package.json +2 -2
  76. package/utility/arrays.d.ts +1 -0
  77. package/utility/arrays.lua +3 -0
  78. package/utility/functions.d.ts +1 -0
  79. package/utility/functions.lua +1 -0
  80. package/utility/linked-set.d.ts +1 -0
  81. package/utility/linked-set.lua +3 -0
  82. package/utility/lua-maps.d.ts +3 -0
  83. package/utility/lua-maps.lua +16 -0
  84. package/utility/lua-sets.d.ts +1 -0
  85. package/utility/lua-sets.lua +3 -0
  86. package/utility/reflection.lua +11 -7
@@ -2,6 +2,7 @@ local ____lualib = require("lualib_bundle")
2
2
  local __TS__Class = ____lualib.__TS__Class
3
3
  local __TS__ClassExtends = ____lualib.__TS__ClassExtends
4
4
  local __TS__SetDescriptor = ____lualib.__TS__SetDescriptor
5
+ local __TS__InstanceOf = ____lualib.__TS__InstanceOf
5
6
  local ____exports = {}
6
7
  local ____unit = require("engine.internal.unit")
7
8
  local Unit = ____unit.Unit
@@ -19,7 +20,7 @@ local mapIndexed = ____arrays.mapIndexed
19
20
  local ____attachment_2Dpreset = require("engine.object-data.auxiliary.attachment-preset")
20
21
  local extractAttachmentPresetInputModelPath = ____attachment_2Dpreset.extractAttachmentPresetInputModelPath
21
22
  local extractAttachmentPresetInputNodeFQN = ____attachment_2Dpreset.extractAttachmentPresetInputNodeFQN
22
- local toAttachmentPreset = ____attachment_2Dpreset.toAttachmentPreset
23
+ local toEffectPreset = ____attachment_2Dpreset.toEffectPreset
23
24
  local ____combat_2Dclassification = require("engine.object-data.auxiliary.combat-classification")
24
25
  local combatClassificationsToStringArray = ____combat_2Dclassification.combatClassificationsToStringArray
25
26
  local stringArrayToCombatClassifications = ____combat_2Dclassification.stringArrayToCombatClassifications
@@ -33,11 +34,16 @@ local ____object_2Ddata_2Dentry_2Did_2Dgenerator = require("engine.object-data.u
33
34
  local abilityTypeIdGenerator = ____object_2Ddata_2Dentry_2Did_2Dgenerator.abilityTypeIdGenerator
34
35
  local ____upgrade = require("engine.object-data.entry.upgrade")
35
36
  local Upgrade = ____upgrade.Upgrade
37
+ local ____sound = require("core.types.sound")
38
+ local isSoundLabelCustom = ____sound.isSoundLabelCustom
39
+ local Sound3D = ____sound.Sound3D
40
+ local SoundSettings = ____sound.SoundSettings
36
41
  local castAnimationFQNByAbilityTypeId = {}
37
42
  local isButtonVisibleFalseAbilityTypes = {}
38
43
  local casterCastingEffectPresetsByAbilityTypeId = {}
39
44
  local casterChannelingEffectPresetsByAbilityTypeId = {}
40
45
  local targetCastingEffectPresetsByAbilityTypeId = {}
46
+ local targetEffectSoundPresetByAbilityTypeId = {}
41
47
  ____exports.AbilityType = __TS__Class()
42
48
  local AbilityType = ____exports.AbilityType
43
49
  AbilityType.name = "AbilityType"
@@ -113,7 +119,7 @@ __TS__SetDescriptor(
113
119
  return casterCastingEffectPresetsByAbilityTypeId[self.id] or ({})
114
120
  end,
115
121
  set = function(self, casterCastingEffectPresets)
116
- casterCastingEffectPresetsByAbilityTypeId[self.id] = map(casterCastingEffectPresets, toAttachmentPreset)
122
+ casterCastingEffectPresetsByAbilityTypeId[self.id] = map(casterCastingEffectPresets, toEffectPreset)
117
123
  end
118
124
  },
119
125
  true
@@ -126,7 +132,7 @@ __TS__SetDescriptor(
126
132
  return casterChannelingEffectPresetsByAbilityTypeId[self.id] or ({})
127
133
  end,
128
134
  set = function(self, casterChannelingEffectPresets)
129
- casterChannelingEffectPresetsByAbilityTypeId[self.id] = map(casterChannelingEffectPresets, toAttachmentPreset)
135
+ casterChannelingEffectPresetsByAbilityTypeId[self.id] = map(casterChannelingEffectPresets, toEffectPreset)
130
136
  end
131
137
  },
132
138
  true
@@ -365,7 +371,7 @@ __TS__SetDescriptor(
365
371
  return targetCastingEffectPresetsByAbilityTypeId[self.id] or ({})
366
372
  end,
367
373
  set = function(self, targetCastingEffectPresets)
368
- targetCastingEffectPresetsByAbilityTypeId[self.id] = map(targetCastingEffectPresets, toAttachmentPreset)
374
+ targetCastingEffectPresetsByAbilityTypeId[self.id] = map(targetCastingEffectPresets, toEffectPreset)
369
375
  end
370
376
  },
371
377
  true
@@ -718,26 +724,40 @@ __TS__SetDescriptor(
718
724
  )
719
725
  __TS__SetDescriptor(
720
726
  AbilityType.prototype,
721
- "soundPresetName",
727
+ "casterEffectSoundPresetId",
722
728
  {
723
729
  get = function(self)
724
- return self:getStringField("aefs")
730
+ local casterEffectSoundPresetId = self:getStringField("aefs")
731
+ return casterEffectSoundPresetId ~= "" and casterEffectSoundPresetId or nil
725
732
  end,
726
- set = function(self, soundPresetName)
727
- self:setStringField("aefs", soundPresetName)
733
+ set = function(self, casterEffectSoundPresetId)
734
+ self:setStringField("aefs", casterEffectSoundPresetId or "")
728
735
  end
729
736
  },
730
737
  true
731
738
  )
732
739
  __TS__SetDescriptor(
733
740
  AbilityType.prototype,
734
- "loopingSoundPresetName",
741
+ "casterEffectLoopingSoundPresetId",
735
742
  {
736
743
  get = function(self)
737
744
  return self:getStringField("aefl")
738
745
  end,
739
- set = function(self, loopingSoundPresetName)
740
- self:setStringField("aefl", loopingSoundPresetName)
746
+ set = function(self, casterEffectLoopingSoundPresetId)
747
+ self:setStringField("aefl", casterEffectLoopingSoundPresetId)
748
+ end
749
+ },
750
+ true
751
+ )
752
+ __TS__SetDescriptor(
753
+ AbilityType.prototype,
754
+ "targetEffectSoundPresetId",
755
+ {
756
+ get = function(self)
757
+ return targetEffectSoundPresetByAbilityTypeId[self.id]
758
+ end,
759
+ set = function(self, targetEffectSoundPresetId)
760
+ targetEffectSoundPresetByAbilityTypeId[self.id] = targetEffectSoundPresetId
741
761
  end
742
762
  },
743
763
  true
@@ -966,6 +986,32 @@ for abilityTypeId, animationFQN in pairs(postcompile(function() return castAnima
966
986
  end
967
987
  )
968
988
  end
989
+ for abilityTypeId, soundPresetId in pairs(postcompile(function() return targetEffectSoundPresetByAbilityTypeId end)) do
990
+ if soundPresetId ~= nil then
991
+ Unit.abilityWidgetTargetChannelingStartEvent[abilityTypeId]:addListener(
992
+ 4,
993
+ function(caster, ability, target)
994
+ if __TS__InstanceOf(target, Unit) then
995
+ Sound3D:playFromLabel(soundPresetId, SoundSettings.Ability, target)
996
+ else
997
+ Sound3D:playFromLabel(soundPresetId, SoundSettings.Ability, target.x, target.y)
998
+ end
999
+ end
1000
+ )
1001
+ Unit.abilityPointTargetChannelingStartEvent[abilityTypeId]:addListener(
1002
+ 4,
1003
+ function(caster, ability, x, y)
1004
+ Sound3D:playFromLabel(soundPresetId, SoundSettings.Ability, x, y)
1005
+ end
1006
+ )
1007
+ end
1008
+ end
1009
+ Unit.abilityChannelingStartEvent:addListener(function(caster, ability)
1010
+ local soundPresetId = ability:getField(ABILITY_SF_EFFECT_SOUND)
1011
+ if isSoundLabelCustom(soundPresetId) then
1012
+ Sound3D:playFromLabel(soundPresetId, SoundSettings.Ability, caster)
1013
+ end
1014
+ end)
969
1015
  local casterCastingEffectModelPathsByAbilityTypeId = postcompile(function()
970
1016
  return mapValues(
971
1017
  casterCastingEffectPresetsByAbilityTypeId,
@@ -978,10 +1024,17 @@ local casterCastingEffectAttachmentPointsByAbilityTypeId = postcompile(function(
978
1024
  function(casterCastingEffectPresets) return map(casterCastingEffectPresets, extractAttachmentPresetInputNodeFQN) end
979
1025
  )
980
1026
  end)
1027
+ local casterCastingEffectParametersByAbilityTypeId = postcompile(function()
1028
+ return mapValues(
1029
+ casterCastingEffectPresetsByAbilityTypeId,
1030
+ function(casterCastingEffectPresets) return map(casterCastingEffectPresets, "parameters") end
1031
+ )
1032
+ end)
981
1033
  local casterCastingEffectsByCaster = {}
982
1034
  local function handleAbilityCastingStartEvent(caster, ability)
983
1035
  local effectModelPaths = casterCastingEffectModelPathsByAbilityTypeId[ability.typeId]
984
1036
  local attachmentPoints = casterCastingEffectAttachmentPointsByAbilityTypeId[ability.typeId]
1037
+ local parameters = casterCastingEffectParametersByAbilityTypeId[ability.typeId]
985
1038
  local effects = {}
986
1039
  if effectModelPaths ~= nil then
987
1040
  for i = 1, #effectModelPaths do
@@ -990,7 +1043,7 @@ local function handleAbilityCastingStartEvent(caster, ability)
990
1043
  if attachmentPoint == nil or attachmentPoint == "" then
991
1044
  attachmentPoint = "origin"
992
1045
  end
993
- effects[i] = Effect:createTarget(effectModelPath, caster, attachmentPoint)
1046
+ effects[i] = Effect:create(effectModelPath, caster, attachmentPoint, parameters and parameters[i])
994
1047
  end
995
1048
  end
996
1049
  casterCastingEffectsByCaster[caster] = effects
@@ -1021,10 +1074,17 @@ local casterChannelingEffectAttachmentPointsByAbilityTypeId = postcompile(functi
1021
1074
  function(casterChannelingEffectPresets) return map(casterChannelingEffectPresets, extractAttachmentPresetInputNodeFQN) end
1022
1075
  )
1023
1076
  end)
1077
+ local casterChannelingEffectParametersByAbilityTypeId = postcompile(function()
1078
+ return mapValues(
1079
+ casterChannelingEffectPresetsByAbilityTypeId,
1080
+ function(casterChannelingEffectPresets) return map(casterChannelingEffectPresets, "parameters") end
1081
+ )
1082
+ end)
1024
1083
  local casterChannelingEffectsByCaster = {}
1025
1084
  local function handleAbilityChannelingStartEvent(caster, ability)
1026
1085
  local effectModelPaths = casterChannelingEffectModelPathsByAbilityTypeId[ability.typeId]
1027
1086
  local attachmentPoints = casterChannelingEffectAttachmentPointsByAbilityTypeId[ability.typeId]
1087
+ local parameters = casterChannelingEffectParametersByAbilityTypeId[ability.typeId]
1028
1088
  local effects = {}
1029
1089
  if effectModelPaths ~= nil then
1030
1090
  for i = 1, #effectModelPaths do
@@ -1033,7 +1093,7 @@ local function handleAbilityChannelingStartEvent(caster, ability)
1033
1093
  if attachmentPoint == nil or attachmentPoint == "" then
1034
1094
  attachmentPoint = "origin"
1035
1095
  end
1036
- effects[i] = Effect:createTarget(effectModelPath, caster, attachmentPoint)
1096
+ effects[i] = Effect:create(effectModelPath, caster, attachmentPoint, parameters and parameters[i])
1037
1097
  end
1038
1098
  end
1039
1099
  casterChannelingEffectsByCaster[caster] = effects
@@ -74,7 +74,7 @@ local applicatorAbilityTypeIdByApplicatorTypeByApplicableBuffTypeId, applicatorU
74
74
  abilityType.buttonPositionY = -11
75
75
  abilityType.casterAttachmentPresets = {}
76
76
  abilityType.targetEffectPresets = {}
77
- abilityType.soundPresetName = ""
77
+ abilityType.casterEffectSoundPresetId = nil
78
78
  abilityType.learnLevelMinimum = 6
79
79
  abilityType.race = "other"
80
80
  abilityType.shouldCheckTechTreeDependencies = false
@@ -104,7 +104,7 @@ local applicatorAbilityTypeIdByApplicatorTypeByApplicableBuffTypeId, applicatorU
104
104
  local applicatorAbilityType = prepareAbilityType(CurseAbilityType, applicableBuffType)
105
105
  applicatorAbilityType.missProbability = 0
106
106
  applicatorAbilityType.buffTypeIds = {applicableBuffType.id}
107
- applicatorAbilityTypeIdByApplicatorType[852189] = applicatorAbilityType.id
107
+ applicatorAbilityTypeIdByApplicatorType[852190] = applicatorAbilityType.id
108
108
  end
109
109
  if applicableBuffType.polarity == 1 or applicableBuffType.polarity == nil then
110
110
  local applicatorAbilityType = prepareAbilityType(BloodLustAbilityType, applicableBuffType)
@@ -121,6 +121,10 @@ local applicatorAbilityTypeIdByApplicatorTypeByApplicableBuffTypeId, applicatorU
121
121
  applicatorAbilityType.damagePerSecond = 0
122
122
  applicatorAbilityType.movementSpeedDecreaseFactor = 0
123
123
  applicatorAbilityType.attackSpeedDecreaseFactor = 0
124
+ applicatorAbilityType.isDamageStacking = false
125
+ applicatorAbilityType.isMovementSpeedFactorStacking = false
126
+ applicatorAbilityType.isAttackSpeedFactorStacking = false
127
+ applicatorAbilityType.isAbleToKill = false
124
128
  applicatorAbilityType.buffTypeIds = {applicableBuffType.id, applicableBuffType.id}
125
129
  applicatorAbilityTypeIdByApplicatorType[852173] = applicatorAbilityType.id
126
130
  end
@@ -128,6 +132,7 @@ local applicatorAbilityTypeIdByApplicatorTypeByApplicableBuffTypeId, applicatorU
128
132
  local applicatorAbilityType = prepareAbilityType(BerserkAbilityType, applicableBuffType)
129
133
  applicatorAbilityType.attackSpeedIncreaseFactor = 0
130
134
  applicatorAbilityType.movementSpeedIncreaseFactor = 0
135
+ applicatorAbilityType.receivedDamageIncreaseFactor = 0
131
136
  applicatorAbilityType.buffTypeIds = {applicableBuffType.id}
132
137
  if applicatorAbilityType.levelCount > 1 then
133
138
  multilevelPhysicalPositiveApplicatorAbilityTypes[#multilevelPhysicalPositiveApplicatorAbilityTypes + 1] = applicatorAbilityType
@@ -222,7 +227,7 @@ Unit.abilityCastingStartEvent[SEARING_ARROWS_DUMMY_ABILITY_TYPE_ID]:addListener(
222
227
  ---
223
228
  -- @internal For use by internal systems only.
224
229
  ____exports.internalApplyBuff = function(unit, applicableBuffTypeId, polarity, resistanceType, level, duration, spellStealPriority, learnLevelMinimum, missProbability)
225
- local applicatorType = polarity == 1 and (resistanceType == 1 and 852101 or 852100) or (polarity == 2 and (resistanceType == 1 and 852189 or 852173) or 0)
230
+ local applicatorType = polarity == 1 and (resistanceType == 1 and 852101 or 852100) or (polarity == 2 and (resistanceType == 1 and 852190 or 852173) or 0)
226
231
  local ____opt_1 = applicatorAbilityTypeIdByApplicatorTypeByApplicableBuffTypeId[applicableBuffTypeId]
227
232
  local applicatorAbilityTypeId = ____opt_1 and ____opt_1[applicatorType]
228
233
  if applicatorAbilityTypeId == nil then
@@ -274,7 +279,7 @@ ____exports.internalApplyBuff = function(unit, applicableBuffTypeId, polarity, r
274
279
  ability:setField(ABILITY_RLF_DURATION_HERO, level, actualDuration)
275
280
  ability:setField(ABILITY_IF_PRIORITY, spellStealPriority or 0)
276
281
  ability:setField(ABILITY_IF_REQUIRED_LEVEL, learnLevelMinimum or 6)
277
- if missProbability ~= nil and applicatorType == 852189 then
282
+ if missProbability ~= nil and applicatorType == 852190 then
278
283
  ability:setField(ABILITY_RLF_CHANCE_TO_MISS_CRS, missProbability)
279
284
  end
280
285
  end,
@@ -3,12 +3,16 @@ import { TupleOf } from "../../../utility/types";
3
3
  import { AttachmentPreset, AttachmentPresetInput } from "../auxiliary/attachment-preset";
4
4
  import { Race } from "../auxiliary/race";
5
5
  import { SoundPresetName } from "../auxiliary/sound-preset-name";
6
- import { ObjectDataEntry, ObjectDataEntryId } from "../entry";
6
+ import { ObjectDataEntry, ObjectDataEntryConstructor, ObjectDataEntryId } from "../entry";
7
7
  import { LightningTypeId } from "./lightning-type";
8
8
  export type BuffTypeId = ObjectDataEntryId & number & {
9
9
  readonly __buffTypeId: unique symbol;
10
10
  };
11
+ export type StandardBuffTypeId = BuffTypeId & {
12
+ readonly __standardBuffTypeId: unique symbol;
13
+ };
11
14
  export declare abstract class BuffType<Id extends BuffTypeId = BuffTypeId> extends ObjectDataEntry<Id> {
15
+ static readonly [id: StandardBuffTypeId]: ObjectDataEntryConstructor<BuffType>;
12
16
  private static readonly idGenerator;
13
17
  protected static generateId(): number;
14
18
  protected static getObjectData(map: WarMap): WarObjects;
@@ -51,13 +55,3 @@ export declare abstract class BuffType<Id extends BuffTypeId = BuffTypeId> exten
51
55
  get tooltipExtendedText(): string;
52
56
  set tooltipExtendedText(tooltipText: string);
53
57
  }
54
- declare const AvatarBuffType_base: typeof BuffType;
55
- export declare class AvatarBuffType extends AvatarBuffType_base {
56
- }
57
- declare const DevotionAuraBuffType_base: typeof BuffType;
58
- export declare class DevotionAuraBuffType extends DevotionAuraBuffType_base {
59
- }
60
- declare const DivineShieldBuffType_base: typeof BuffType;
61
- export declare class DivineShieldBuffType extends DivineShieldBuffType_base {
62
- }
63
- export {};
@@ -6,6 +6,8 @@ local __TS__SetDescriptor = ____lualib.__TS__SetDescriptor
6
6
  local ____exports = {}
7
7
  local ____arrays = require("utility.arrays")
8
8
  local array = ____arrays.array
9
+ local ____reflection = require("utility.reflection")
10
+ local implementReadonlyNumberIndexSupplier = ____reflection.implementReadonlyNumberIndexSupplier
9
11
  local ____entry = require("engine.object-data.entry")
10
12
  local ObjectDataEntry = ____entry.ObjectDataEntry
11
13
  local ____object_2Ddata_2Dentry_2Did_2Dgenerator = require("engine.object-data.utility.object-data-entry-id-generator")
@@ -285,32 +287,14 @@ __TS__SetDescriptor(
285
287
  },
286
288
  true
287
289
  )
288
- local function makeBaseBuffType(id)
289
- local BaseBuffType = __TS__Class()
290
- BaseBuffType.name = "BaseBuffType"
291
- __TS__ClassExtends(BaseBuffType, ____exports.BuffType)
292
- BaseBuffType.BASE_ID = id
293
- return BaseBuffType
294
- end
295
- ____exports.AvatarBuffType = __TS__Class()
296
- local AvatarBuffType = ____exports.AvatarBuffType
297
- AvatarBuffType.name = "AvatarBuffType"
298
- __TS__ClassExtends(
299
- AvatarBuffType,
300
- makeBaseBuffType(fourCC("BHav"))
301
- )
302
- ____exports.DevotionAuraBuffType = __TS__Class()
303
- local DevotionAuraBuffType = ____exports.DevotionAuraBuffType
304
- DevotionAuraBuffType.name = "DevotionAuraBuffType"
305
- __TS__ClassExtends(
306
- DevotionAuraBuffType,
307
- makeBaseBuffType(fourCC("BHad"))
308
- )
309
- ____exports.DivineShieldBuffType = __TS__Class()
310
- local DivineShieldBuffType = ____exports.DivineShieldBuffType
311
- DivineShieldBuffType.name = "DivineShieldBuffType"
312
- __TS__ClassExtends(
313
- DivineShieldBuffType,
314
- makeBaseBuffType(fourCC("BHds"))
290
+ implementReadonlyNumberIndexSupplier(
291
+ ____exports.BuffType,
292
+ function(id)
293
+ local ____class_0 = __TS__Class()
294
+ ____class_0.name = ____class_0.name
295
+ __TS__ClassExtends(____class_0, ____exports.BuffType)
296
+ ____class_0.BASE_ID = id
297
+ return ____class_0
298
+ end
315
299
  )
316
300
  return ____exports
@@ -1,5 +1,6 @@
1
1
  /** @noSelfInFile */
2
- import { ObjectDataEntry, ObjectDataEntryConstructor, ObjectDataEntryId } from "../entry";
2
+ import { ObjectDataEntry, ObjectDataEntryId } from "../entry";
3
+ import { SoundEax } from "../auxiliary/sound-eax";
3
4
  export type SoundPresetId = ObjectDataEntryId & string & {
4
5
  readonly __soundPresetId: unique symbol;
5
6
  };
@@ -7,11 +8,26 @@ export type StandardSoundPresetId = SoundPresetId & {
7
8
  readonly __standardSoundPresetId: unique symbol;
8
9
  };
9
10
  export declare class SoundPreset extends ObjectDataEntry<SoundPresetId> {
10
- static readonly [id: StandardSoundPresetId]: ObjectDataEntryConstructor<SoundPreset>;
11
11
  static readonly BASE_ID: SoundPresetId;
12
12
  private static nextId;
13
13
  protected static generateId(): string;
14
14
  protected static getObjectData(map: WarMap): WarObjects;
15
15
  get filePaths(): string[];
16
16
  set filePaths(filePaths: string[]);
17
+ get volume(): number;
18
+ set volume(volume: number);
19
+ get pitch(): number;
20
+ set pitch(pitch: number);
21
+ get priority(): number;
22
+ set priority(priority: number);
23
+ get channel(): number;
24
+ set channel(channel: number);
25
+ get minimumDistance(): number;
26
+ set minimumDistance(minimumDistance: number);
27
+ get maximumDistance(): number;
28
+ set maximumDistance(maximumDistance: number);
29
+ get distanceCutoff(): number;
30
+ set distanceCutoff(distanceCutoff: number);
31
+ get eax(): SoundEax;
32
+ set eax(eax: SoundEax);
17
33
  }
@@ -5,8 +5,6 @@ local __TS__SetDescriptor = ____lualib.__TS__SetDescriptor
5
5
  local ____exports = {}
6
6
  local ____entry = require("engine.object-data.entry")
7
7
  local ObjectDataEntry = ____entry.ObjectDataEntry
8
- local ____reflection = require("utility.reflection")
9
- local implementReadonlyNumberIndexSupplier = ____reflection.implementReadonlyNumberIndexSupplier
10
8
  ____exports.SoundPreset = __TS__Class()
11
9
  local SoundPreset = ____exports.SoundPreset
12
10
  SoundPreset.name = "SoundPreset"
@@ -19,19 +17,7 @@ function SoundPreset.generateId(self)
19
17
  end
20
18
  function SoundPreset.getObjectData(self, map)
21
19
  return map.objects.sound
22
- end;
23
- (function(self)
24
- implementReadonlyNumberIndexSupplier(
25
- ____exports.SoundPreset,
26
- function(id)
27
- local ____class_3 = __TS__Class()
28
- ____class_3.name = ____class_3.name
29
- __TS__ClassExtends(____class_3, ____exports.SoundPreset)
30
- ____class_3.BASE_ID = id
31
- return ____class_3
32
- end
33
- )
34
- end)(SoundPreset)
20
+ end
35
21
  SoundPreset.BASE_ID = "BlizzardWave"
36
22
  SoundPreset.nextId = 0
37
23
  __TS__SetDescriptor(
@@ -47,4 +33,108 @@ __TS__SetDescriptor(
47
33
  },
48
34
  true
49
35
  )
36
+ __TS__SetDescriptor(
37
+ SoundPreset.prototype,
38
+ "volume",
39
+ {
40
+ get = function(self)
41
+ return self:getNumberField("Volume")
42
+ end,
43
+ set = function(self, volume)
44
+ self:setNumberField("Volume", volume)
45
+ end
46
+ },
47
+ true
48
+ )
49
+ __TS__SetDescriptor(
50
+ SoundPreset.prototype,
51
+ "pitch",
52
+ {
53
+ get = function(self)
54
+ return self:getNumberField("Pitch")
55
+ end,
56
+ set = function(self, pitch)
57
+ self:setNumberField("Pitch", pitch)
58
+ end
59
+ },
60
+ true
61
+ )
62
+ __TS__SetDescriptor(
63
+ SoundPreset.prototype,
64
+ "priority",
65
+ {
66
+ get = function(self)
67
+ return self:getNumberField("Priority")
68
+ end,
69
+ set = function(self, priority)
70
+ self:setNumberField("Priority", priority)
71
+ end
72
+ },
73
+ true
74
+ )
75
+ __TS__SetDescriptor(
76
+ SoundPreset.prototype,
77
+ "channel",
78
+ {
79
+ get = function(self)
80
+ return self:getNumberField("Channel")
81
+ end,
82
+ set = function(self, channel)
83
+ self:setNumberField("Channel", channel)
84
+ end
85
+ },
86
+ true
87
+ )
88
+ __TS__SetDescriptor(
89
+ SoundPreset.prototype,
90
+ "minimumDistance",
91
+ {
92
+ get = function(self)
93
+ return self:getNumberField("MinDistance")
94
+ end,
95
+ set = function(self, minimumDistance)
96
+ self:setNumberField("MinDistance", minimumDistance)
97
+ end
98
+ },
99
+ true
100
+ )
101
+ __TS__SetDescriptor(
102
+ SoundPreset.prototype,
103
+ "maximumDistance",
104
+ {
105
+ get = function(self)
106
+ return self:getNumberField("MaxDistance")
107
+ end,
108
+ set = function(self, maximumDistance)
109
+ self:setNumberField("MaxDistance", maximumDistance)
110
+ end
111
+ },
112
+ true
113
+ )
114
+ __TS__SetDescriptor(
115
+ SoundPreset.prototype,
116
+ "distanceCutoff",
117
+ {
118
+ get = function(self)
119
+ return self:getNumberField("DistanceCutoff")
120
+ end,
121
+ set = function(self, distanceCutoff)
122
+ self:setNumberField("DistanceCutoff", distanceCutoff)
123
+ end
124
+ },
125
+ true
126
+ )
127
+ __TS__SetDescriptor(
128
+ SoundPreset.prototype,
129
+ "eax",
130
+ {
131
+ get = function(self)
132
+ return self:getStringField("EAXFlags")
133
+ end,
134
+ set = function(self, eax)
135
+ self:setStringField("EAXFlags", eax)
136
+ end
137
+ },
138
+ true
139
+ )
50
140
  return ____exports
@@ -23,8 +23,8 @@ export declare class UnitTypeWeapon {
23
23
  private readonly unitType;
24
24
  private readonly index;
25
25
  private constructor();
26
- get attackType(): AttackType;
27
- set attackType(attackType: AttackType);
26
+ get attackType(): AttackType | undefined;
27
+ set attackType(attackType: AttackType | undefined);
28
28
  get backSwingDuration(): number;
29
29
  set backSwingDuration(backSwingDuration: number);
30
30
  get cooldown(): number;