warscript 0.0.1-dev.0eca47c → 0.0.1-dev.172070c

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.
@@ -14,12 +14,20 @@ export declare class DamageTargetAbilityBehavior extends AbilityBehavior {
14
14
  constructor(ability: Ability, damage: AbilityDependentValue<number>);
15
15
  onWidgetTargetImpact(caster: Unit, target: Widget): void;
16
16
  }
17
- export declare class DamageTargetAreaAbilityBehavior extends AbilityBehavior {
17
+ declare abstract class DamageAreaAbilityBehavior extends AbilityBehavior {
18
18
  private readonly damage;
19
19
  private readonly maximumDamage?;
20
- constructor(ability: Ability, damage: AbilityDependentValue<number>, maximumDamage?: AbilityDependentValue<number> | undefined);
20
+ protected constructor(ability: Ability, damage: AbilityDependentValue<number>, maximumDamage?: AbilityDependentValue<number> | undefined);
21
+ protected damageArea(caster: Unit, x: number, y: number): void;
22
+ }
23
+ export declare class DamageSelfAreaAbilityBehavior extends DamageAreaAbilityBehavior {
24
+ constructor(ability: Ability, damage: AbilityDependentValue<number>, maximumDamage?: AbilityDependentValue<number>);
25
+ onImpact(caster: Unit): void;
26
+ }
27
+ export declare class DamageTargetAreaAbilityBehavior extends DamageAreaAbilityBehavior {
28
+ constructor(ability: Ability, damage: AbilityDependentValue<number>, maximumDamage?: AbilityDependentValue<number>);
21
29
  onNoTargetImpact(caster: Unit): void;
22
30
  onWidgetTargetImpact(caster: Unit, target: Widget): void;
23
31
  onPointTargetImpact(caster: Unit, x: number, y: number): void;
24
- private damageArea;
25
32
  }
33
+ export {};
@@ -37,25 +37,15 @@ function DamageTargetAbilityBehavior.prototype.onWidgetTargetImpact(self, caster
37
37
  self:resolveCurrentAbilityDependentValue(self.damage)
38
38
  )
39
39
  end
40
- ____exports.DamageTargetAreaAbilityBehavior = __TS__Class()
41
- local DamageTargetAreaAbilityBehavior = ____exports.DamageTargetAreaAbilityBehavior
42
- DamageTargetAreaAbilityBehavior.name = "DamageTargetAreaAbilityBehavior"
43
- __TS__ClassExtends(DamageTargetAreaAbilityBehavior, AbilityBehavior)
44
- function DamageTargetAreaAbilityBehavior.prototype.____constructor(self, ability, damage, maximumDamage)
40
+ local DamageAreaAbilityBehavior = __TS__Class()
41
+ DamageAreaAbilityBehavior.name = "DamageAreaAbilityBehavior"
42
+ __TS__ClassExtends(DamageAreaAbilityBehavior, AbilityBehavior)
43
+ function DamageAreaAbilityBehavior.prototype.____constructor(self, ability, damage, maximumDamage)
45
44
  AbilityBehavior.prototype.____constructor(self, ability)
46
45
  self.damage = damage
47
46
  self.maximumDamage = maximumDamage
48
47
  end
49
- function DamageTargetAreaAbilityBehavior.prototype.onNoTargetImpact(self, caster)
50
- self:damageArea(caster, caster.x, caster.y)
51
- end
52
- function DamageTargetAreaAbilityBehavior.prototype.onWidgetTargetImpact(self, caster, target)
53
- self:damageArea(caster, target.x, target.y)
54
- end
55
- function DamageTargetAreaAbilityBehavior.prototype.onPointTargetImpact(self, caster, x, y)
56
- self:damageArea(caster, x, y)
57
- end
58
- function DamageTargetAreaAbilityBehavior.prototype.damageArea(self, caster, x, y)
48
+ function DamageAreaAbilityBehavior.prototype.damageArea(self, caster, x, y)
59
49
  local targets = Unit.getAllowedTargetsInCollisionRange(
60
50
  caster,
61
51
  self:resolveCurrentAbilityDependentValue(ALLOWED_TARGETS_ABILITY_COMBAT_CLASSIFICATIONS_LEVEL_FIELD),
@@ -72,4 +62,30 @@ function DamageTargetAreaAbilityBehavior.prototype.damageArea(self, caster, x, y
72
62
  caster:damageTarget(target, damage)
73
63
  end
74
64
  end
65
+ ____exports.DamageSelfAreaAbilityBehavior = __TS__Class()
66
+ local DamageSelfAreaAbilityBehavior = ____exports.DamageSelfAreaAbilityBehavior
67
+ DamageSelfAreaAbilityBehavior.name = "DamageSelfAreaAbilityBehavior"
68
+ __TS__ClassExtends(DamageSelfAreaAbilityBehavior, DamageAreaAbilityBehavior)
69
+ function DamageSelfAreaAbilityBehavior.prototype.____constructor(self, ability, damage, maximumDamage)
70
+ DamageAreaAbilityBehavior.prototype.____constructor(self, ability, damage, maximumDamage)
71
+ end
72
+ function DamageSelfAreaAbilityBehavior.prototype.onImpact(self, caster)
73
+ self:damageArea(caster, caster.x, caster.y)
74
+ end
75
+ ____exports.DamageTargetAreaAbilityBehavior = __TS__Class()
76
+ local DamageTargetAreaAbilityBehavior = ____exports.DamageTargetAreaAbilityBehavior
77
+ DamageTargetAreaAbilityBehavior.name = "DamageTargetAreaAbilityBehavior"
78
+ __TS__ClassExtends(DamageTargetAreaAbilityBehavior, DamageAreaAbilityBehavior)
79
+ function DamageTargetAreaAbilityBehavior.prototype.____constructor(self, ability, damage, maximumDamage)
80
+ DamageAreaAbilityBehavior.prototype.____constructor(self, ability, damage, maximumDamage)
81
+ end
82
+ function DamageTargetAreaAbilityBehavior.prototype.onNoTargetImpact(self, caster)
83
+ self:damageArea(caster, caster.x, caster.y)
84
+ end
85
+ function DamageTargetAreaAbilityBehavior.prototype.onWidgetTargetImpact(self, caster, target)
86
+ self:damageArea(caster, target.x, target.y)
87
+ end
88
+ function DamageTargetAreaAbilityBehavior.prototype.onPointTargetImpact(self, caster, x, y)
89
+ self:damageArea(caster, x, y)
90
+ end
75
91
  return ____exports
@@ -0,0 +1,7 @@
1
+ /** @noSelfInFile */
2
+ import { Rect } from "../core/types/rect";
3
+ import { Region } from "../core/types/region";
4
+ export declare class GameMap {
5
+ static get worldBoundsRect(): Rect;
6
+ static get worldBoundsRegion(): Region;
7
+ }
@@ -0,0 +1,32 @@
1
+ local ____lualib = require("lualib_bundle")
2
+ local __TS__Class = ____lualib.__TS__Class
3
+ local __TS__ObjectDefineProperty = ____lualib.__TS__ObjectDefineProperty
4
+ local ____exports = {}
5
+ local ____rect = require("core.types.rect")
6
+ local Rect = ____rect.Rect
7
+ local ____region = require("core.types.region")
8
+ local Region = ____region.Region
9
+ ____exports.GameMap = __TS__Class()
10
+ local GameMap = ____exports.GameMap
11
+ GameMap.name = "GameMap"
12
+ function GameMap.prototype.____constructor(self)
13
+ end
14
+ __TS__ObjectDefineProperty(
15
+ GameMap,
16
+ "worldBoundsRect",
17
+ {get = function(self)
18
+ local rect = Rect:of(GetWorldBounds())
19
+ rawset(self, "worldBoundsRect", rect)
20
+ return rect
21
+ end}
22
+ )
23
+ __TS__ObjectDefineProperty(
24
+ GameMap,
25
+ "worldBoundsRegion",
26
+ {get = function(self)
27
+ local region = Region:create(self.worldBoundsRect)
28
+ rawset(self, "worldBoundsRegion", region)
29
+ return region
30
+ end}
31
+ )
32
+ return ____exports
@@ -6,9 +6,8 @@ local ____unit = require("engine.internal.unit")
6
6
  local Unit = ____unit.Unit
7
7
  local ____event = require("event")
8
8
  local Event = ____event.Event
9
- local ____mapbounds = require("core.mapbounds")
10
- local boundMax = ____mapbounds.boundMax
11
- local boundRegion = ____mapbounds.boundRegion
9
+ local ____game_2Dmap = require("engine.game-map")
10
+ local GameMap = ____game_2Dmap.GameMap
12
11
  local eventInvoke = Event.invoke
13
12
  local tableRemove = table.remove
14
13
  local ____assert = _G.assert
@@ -58,8 +57,8 @@ triggerAddCondition(
58
57
  deboard(unit)
59
58
  end
60
59
  if not unitAlive(handle) then
61
- unit.x = boundMax.x
62
- unit.y = boundMax.y
60
+ unit.x = GameMap.worldBoundsRect.maxX
61
+ unit.y = GameMap.worldBoundsRect.maxY
63
62
  end
64
63
  local transport = Unit:of(getTransportUnit())
65
64
  transportByUnit[unit] = transport
@@ -68,11 +67,6 @@ triggerAddCondition(
68
67
  eventInvoke(onBoardEvent, unit, transport)
69
68
  end)
70
69
  )
71
- boundRegion.onUnitEnter:addListener(function(unit)
72
- if transportByUnit[unit] ~= nil and not isUnitLoaded(unit.handle) then
73
- deboard(unit)
74
- end
75
- end)
76
70
  Unit.deathEvent:addListener(function(unit)
77
71
  if transportByUnit[unit] ~= nil then
78
72
  deboard(unit)
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "https://json.schemastore.org/package",
3
3
  "name": "warscript",
4
- "version": "0.0.1-dev.0eca47c",
4
+ "version": "0.0.1-dev.172070c",
5
5
  "description": "A typescript library for Warcraft III using Warpack.",
6
6
  "keywords": [
7
7
  "warcraft",
@@ -1,8 +0,0 @@
1
- /** @noSelfInFile */
2
- import { Rect } from "./types/rect";
3
- import { Region } from "./types/region";
4
- export declare const boundRect: Rect;
5
- export declare const boundRegion: Region;
6
- export declare const boundMin: Readonly<Vec2>;
7
- export declare const boundMax: Readonly<Vec2>;
8
- export declare const boundCenter: Readonly<Vec2>;
@@ -1,12 +0,0 @@
1
- local ____exports = {}
2
- local ____rect = require("core.types.rect")
3
- local Rect = ____rect.Rect
4
- local ____region = require("core.types.region")
5
- local Region = ____region.Region
6
- ____exports.boundRect = Rect:of(GetWorldBounds())
7
- ____exports.boundRegion = Region:create()
8
- ____exports.boundRegion:addRect(____exports.boundRect)
9
- ____exports.boundMin = vec2(____exports.boundRect.minX, ____exports.boundRect.minY)
10
- ____exports.boundMax = vec2(____exports.boundRect.maxX, ____exports.boundRect.maxY)
11
- ____exports.boundCenter = (____exports.boundMin + ____exports.boundMax) * 0.5
12
- return ____exports