@v12-engine/engine 0.1.1 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/abilities/amounts.d.ts +28 -0
- package/dist/abilities/amounts.js +74 -0
- package/dist/abilities/amounts.js.map +1 -0
- package/dist/abilities/buffs.d.ts +106 -6
- package/dist/abilities/buffs.js +443 -0
- package/dist/abilities/buffs.js.map +1 -0
- package/dist/abilities/castTold.d.ts +2 -0
- package/dist/abilities/castTold.js +66 -0
- package/dist/abilities/castTold.js.map +1 -0
- package/dist/abilities/chance.d.ts +38 -0
- package/dist/abilities/chance.js +77 -0
- package/dist/abilities/chance.js.map +1 -0
- package/dist/abilities/charges.d.ts +18 -0
- package/dist/abilities/charges.js +101 -0
- package/dist/abilities/charges.js.map +1 -0
- package/dist/abilities/control.d.ts +28 -0
- package/dist/abilities/control.js +113 -0
- package/dist/abilities/control.js.map +1 -0
- package/dist/abilities/dispel.js +51 -0
- package/dist/abilities/dispel.js.map +1 -0
- package/dist/abilities/effectFields.d.ts +1 -1
- package/dist/abilities/effectFields.js +676 -0
- package/dist/abilities/effectFields.js.map +1 -0
- package/dist/abilities/effectIndex.d.ts +27 -0
- package/dist/abilities/effectIndex.js +64 -0
- package/dist/abilities/effectIndex.js.map +1 -0
- package/dist/abilities/effects/buff.d.ts +9 -3
- package/dist/abilities/effects/buff.js +84 -0
- package/dist/abilities/effects/buff.js.map +1 -0
- package/dist/abilities/effects/conditions.d.ts +2 -0
- package/dist/abilities/effects/conditions.js +41 -0
- package/dist/abilities/effects/conditions.js.map +1 -0
- package/dist/abilities/effects/core.js +54 -0
- package/dist/abilities/effects/core.js.map +1 -0
- package/dist/abilities/effects/damage.d.ts +1 -1
- package/dist/abilities/effects/damage.js +43 -0
- package/dist/abilities/effects/damage.js.map +1 -0
- package/dist/abilities/effects/heal.d.ts +2 -2
- package/dist/abilities/effects/heal.js +51 -0
- package/dist/abilities/effects/heal.js.map +1 -0
- package/dist/abilities/effects/missile.d.ts +13 -1
- package/dist/abilities/effects/missile.js +104 -0
- package/dist/abilities/effects/missile.js.map +1 -0
- package/dist/abilities/effects/morph.d.ts +5 -0
- package/dist/abilities/effects/morph.js +43 -0
- package/dist/abilities/effects/morph.js.map +1 -0
- package/dist/abilities/effects/moves.d.ts +16 -4
- package/dist/abilities/effects/moves.js +212 -0
- package/dist/abilities/effects/moves.js.map +1 -0
- package/dist/abilities/effects/passives.d.ts +19 -9
- package/dist/abilities/effects/passives.js +131 -0
- package/dist/abilities/effects/passives.js.map +1 -0
- package/dist/abilities/effects/proxy.d.ts +5 -0
- package/dist/abilities/effects/proxy.js +60 -0
- package/dist/abilities/effects/proxy.js.map +1 -0
- package/dist/abilities/effects/sight.d.ts +2 -2
- package/dist/abilities/effects/sight.js +39 -0
- package/dist/abilities/effects/sight.js.map +1 -0
- package/dist/abilities/effects/spawn.d.ts +5 -2
- package/dist/abilities/effects/spawn.js +40 -0
- package/dist/abilities/effects/spawn.js.map +1 -0
- package/dist/abilities/effects/timed.d.ts +2 -2
- package/dist/abilities/effects/timed.js +96 -0
- package/dist/abilities/effects/timed.js.map +1 -0
- package/dist/abilities/effects/trade.d.ts +1 -1
- package/dist/abilities/effects/trade.js +25 -0
- package/dist/abilities/effects/trade.js.map +1 -0
- package/dist/abilities/effects.d.ts +97 -23
- package/dist/abilities/effects.js +860 -0
- package/dist/abilities/effects.js.map +1 -0
- package/dist/abilities/land.d.ts +38 -4
- package/dist/abilities/land.js +189 -0
- package/dist/abilities/land.js.map +1 -0
- package/dist/abilities/recast.d.ts +45 -0
- package/dist/abilities/recast.js +118 -0
- package/dist/abilities/recast.js.map +1 -0
- package/dist/abilities/scaled.js +40 -0
- package/dist/abilities/scaled.js.map +1 -0
- package/dist/abilities/screen.d.ts +6 -0
- package/dist/abilities/screen.js +83 -0
- package/dist/abilities/screen.js.map +1 -0
- package/dist/abilities/shapes.d.ts +66 -0
- package/dist/abilities/shapes.js +122 -0
- package/dist/abilities/shapes.js.map +1 -0
- package/dist/abilities/text.d.ts +14 -2
- package/dist/abilities/text.js +204 -0
- package/dist/abilities/text.js.map +1 -0
- package/dist/abilities/triggers.d.ts +98 -0
- package/dist/abilities/triggers.js +351 -0
- package/dist/abilities/triggers.js.map +1 -0
- package/dist/abilityChanges.d.ts +131 -0
- package/dist/abilityChanges.js +345 -0
- package/dist/abilityChanges.js.map +1 -0
- package/dist/ai/area.d.ts +4 -1
- package/dist/ai/brain.d.ts +4 -1
- package/dist/ai/brain.js +844 -0
- package/dist/ai/brain.js.map +1 -0
- package/dist/ai/budget.js +74 -0
- package/dist/ai/budget.js.map +1 -0
- package/dist/ai/checks.d.ts +9 -1
- package/dist/ai/checks.js +242 -0
- package/dist/ai/checks.js.map +1 -0
- package/dist/ai/computer.d.ts +11 -4
- package/dist/ai/computer.js +251 -0
- package/dist/ai/computer.js.map +1 -0
- package/dist/ai/defence.d.ts +4 -0
- package/dist/ai/defence.js +430 -0
- package/dist/ai/defence.js.map +1 -0
- package/dist/ai/define.d.ts +3 -2
- package/dist/ai/define.js +31 -0
- package/dist/ai/define.js.map +1 -0
- package/dist/ai/economy.d.ts +10 -7
- package/dist/ai/economy.js +780 -0
- package/dist/ai/economy.js.map +1 -0
- package/dist/ai/geometry.js +38 -0
- package/dist/ai/geometry.js.map +1 -0
- package/dist/ai/goals.d.ts +1 -0
- package/dist/ai/goals.js +560 -0
- package/dist/ai/goals.js.map +1 -0
- package/dist/ai/knowledge.d.ts +72 -7
- package/dist/ai/knowledge.js +804 -0
- package/dist/ai/knowledge.js.map +1 -0
- package/dist/ai/lanes.d.ts +10 -2
- package/dist/ai/lanes.js +715 -0
- package/dist/ai/lanes.js.map +1 -0
- package/dist/ai/melee/build.js +264 -0
- package/dist/ai/melee/build.js.map +1 -0
- package/dist/ai/melee/goals.d.ts +7 -0
- package/dist/ai/melee/goals.js +720 -0
- package/dist/ai/melee/goals.js.map +1 -0
- package/dist/ai/melee/heroes.js +68 -0
- package/dist/ai/melee/heroes.js.map +1 -0
- package/dist/ai/melee/index.d.ts +1 -1
- package/dist/ai/melee/index.js +51 -0
- package/dist/ai/melee/index.js.map +1 -0
- package/dist/ai/melee/production.js +29 -0
- package/dist/ai/melee/production.js.map +1 -0
- package/dist/ai/melee/surrender.js +64 -0
- package/dist/ai/melee/surrender.js.map +1 -0
- package/dist/ai/micro.d.ts +9 -0
- package/dist/ai/micro.js +1316 -0
- package/dist/ai/micro.js.map +1 -0
- package/dist/ai/mission.d.ts +9 -2
- package/dist/ai/mission.js +538 -0
- package/dist/ai/mission.js.map +1 -0
- package/dist/ai/missionRules.d.ts +1 -1
- package/dist/ai/missionRules.js +26 -0
- package/dist/ai/missionRules.js.map +1 -0
- package/dist/ai/module.d.ts +6 -2
- package/dist/ai/module.js +37 -0
- package/dist/ai/module.js.map +1 -0
- package/dist/ai/options.d.ts +3 -3
- package/dist/ai/plans/build.d.ts +20 -1
- package/dist/ai/plans/build.js +608 -0
- package/dist/ai/plans/build.js.map +1 -0
- package/dist/ai/plans/placement.d.ts +4 -1
- package/dist/ai/plans/placement.js +295 -0
- package/dist/ai/plans/placement.js.map +1 -0
- package/dist/ai/plans/plans.d.ts +9 -0
- package/dist/ai/plans/plans.js +110 -0
- package/dist/ai/plans/plans.js.map +1 -0
- package/dist/ai/plans/production.d.ts +14 -2
- package/dist/ai/plans/production.js +434 -0
- package/dist/ai/plans/production.js.map +1 -0
- package/dist/ai/plans/purse.d.ts +6 -3
- package/dist/ai/plans/purse.js +139 -0
- package/dist/ai/plans/purse.js.map +1 -0
- package/dist/ai/plans/tech.d.ts +6 -0
- package/dist/ai/plans/tech.js +122 -0
- package/dist/ai/plans/tech.js.map +1 -0
- package/dist/ai/profiles.d.ts +4 -4
- package/dist/{profiles-B3NS9jwk.js → ai/profiles.js} +3 -98
- package/dist/ai/profiles.js.map +1 -0
- package/dist/ai/reach.js +54 -0
- package/dist/ai/reach.js.map +1 -0
- package/dist/ai/report.d.ts +8 -0
- package/dist/ai/report.js +87 -0
- package/dist/ai/report.js.map +1 -0
- package/dist/ai/roles.d.ts +4 -0
- package/dist/ai/roles.js +207 -0
- package/dist/ai/roles.js.map +1 -0
- package/dist/ai/rules.d.ts +8 -2
- package/dist/ai/rules.js +416 -0
- package/dist/ai/rules.js.map +1 -0
- package/dist/ai/scouting.d.ts +6 -0
- package/dist/ai/scouting.js +324 -0
- package/dist/ai/scouting.js.map +1 -0
- package/dist/ai/settings.js +99 -0
- package/dist/ai/settings.js.map +1 -0
- package/dist/ai/squads.d.ts +21 -2
- package/dist/ai/squads.js +916 -0
- package/dist/ai/squads.js.map +1 -0
- package/dist/ai/strength.js +320 -0
- package/dist/ai/strength.js.map +1 -0
- package/dist/ai/task.d.ts +3 -1
- package/dist/ai/task.js +17 -0
- package/dist/ai/task.js.map +1 -0
- package/dist/ai/tasks/attack.js +24 -0
- package/dist/ai/tasks/attack.js.map +1 -0
- package/dist/ai/tasks/capture.d.ts +3 -3
- package/dist/ai/tasks/capture.js +37 -0
- package/dist/ai/tasks/capture.js.map +1 -0
- package/dist/ai/tasks/creep.js +29 -0
- package/dist/ai/tasks/creep.js.map +1 -0
- package/dist/ai/tasks/defend.js +61 -0
- package/dist/ai/tasks/defend.js.map +1 -0
- package/dist/ai/tasks/drop.js +81 -0
- package/dist/ai/tasks/drop.js.map +1 -0
- package/dist/ai/tasks/escort.js +59 -0
- package/dist/ai/tasks/escort.js.map +1 -0
- package/dist/ai/tasks/gather.js +48 -0
- package/dist/ai/tasks/gather.js.map +1 -0
- package/dist/ai/tasks/harass.js +39 -0
- package/dist/ai/tasks/harass.js.map +1 -0
- package/dist/ai/tasks/hold.js +32 -0
- package/dist/ai/tasks/hold.js.map +1 -0
- package/dist/ai/tasks/index.js +34 -0
- package/dist/ai/tasks/index.js.map +1 -0
- package/dist/ai/tasks/move.js +26 -0
- package/dist/ai/tasks/move.js.map +1 -0
- package/dist/ai/tasks/patrol.js +59 -0
- package/dist/ai/tasks/patrol.js.map +1 -0
- package/dist/ai/tasks/retreat.js +28 -0
- package/dist/ai/tasks/retreat.js.map +1 -0
- package/dist/ai/tasks/scout.js +73 -0
- package/dist/ai/tasks/scout.js.map +1 -0
- package/dist/ai/tasks/shared.d.ts +1 -1
- package/dist/ai/tasks/shared.js +137 -0
- package/dist/ai/tasks/shared.js.map +1 -0
- package/dist/ai/team.d.ts +18 -1
- package/dist/ai/team.js +492 -0
- package/dist/ai/team.js.map +1 -0
- package/dist/ai/threat.d.ts +6 -0
- package/dist/ai/threat.js +206 -0
- package/dist/ai/threat.js.map +1 -0
- package/dist/ai/view.d.ts +21 -7
- package/dist/ai/view.js +677 -0
- package/dist/ai/view.js.map +1 -0
- package/dist/ai/waves.d.ts +6 -0
- package/dist/ai/waves.js +410 -0
- package/dist/ai/waves.js.map +1 -0
- package/dist/ai.js +54 -6239
- package/dist/aiTesting.d.ts +6 -3
- package/dist/aiTesting.js +229 -0
- package/dist/aiTesting.js.map +1 -0
- package/dist/areas.d.ts +4 -1
- package/dist/areas.js +295 -0
- package/dist/areas.js.map +1 -0
- package/dist/attacks.d.ts +3 -3
- package/dist/attacks.js +127 -0
- package/dist/attacks.js.map +1 -0
- package/dist/burning.d.ts +267 -0
- package/dist/burning.js +795 -0
- package/dist/burning.js.map +1 -0
- package/dist/bytes.js +21 -0
- package/dist/bytes.js.map +1 -0
- package/dist/callings.d.ts +71 -0
- package/dist/callings.js +157 -0
- package/dist/callings.js.map +1 -0
- package/dist/cameraOrders.d.ts +78 -0
- package/dist/cameraOrders.js +114 -0
- package/dist/cameraOrders.js.map +1 -0
- package/dist/camps.d.ts +70 -4
- package/dist/camps.js +501 -0
- package/dist/camps.js.map +1 -0
- package/dist/capture.d.ts +15 -3
- package/dist/capture.js +304 -0
- package/dist/capture.js.map +1 -0
- package/dist/cellLayers.d.ts +78 -13
- package/dist/cellLayers.js +275 -0
- package/dist/cellLayers.js.map +1 -0
- package/dist/cellPatches.d.ts +24 -0
- package/dist/cellPatches.js +73 -0
- package/dist/cellPatches.js.map +1 -0
- package/dist/cinematics.d.ts +10 -5
- package/dist/cinematics.js +161 -0
- package/dist/cinematics.js.map +1 -0
- package/dist/clock.d.ts +2 -2
- package/dist/clock.js +78 -0
- package/dist/clock.js.map +1 -0
- package/dist/commands.d.ts +36 -4
- package/dist/commands.js +636 -0
- package/dist/commands.js.map +1 -0
- package/dist/components.d.ts +31 -10
- package/dist/components.js +74 -0
- package/dist/components.js.map +1 -0
- package/dist/computers.d.ts +4 -4
- package/dist/computers.js +194 -0
- package/dist/computers.js.map +1 -0
- package/dist/concealment.d.ts +25 -2
- package/dist/concealment.js +409 -0
- package/dist/concealment.js.map +1 -0
- package/dist/coreComponents.js +130 -0
- package/dist/coreComponents.js.map +1 -0
- package/dist/createGame.d.ts +306 -0
- package/dist/createGame.js +405 -0
- package/dist/createGame.js.map +1 -0
- package/dist/dashing.d.ts +18 -2
- package/dist/dashing.js +41 -0
- package/dist/dashing.js.map +1 -0
- package/dist/debug.d.ts +8 -0
- package/dist/debug.js +5 -3
- package/dist/debug2.js +76 -0
- package/dist/debug2.js.map +1 -0
- package/dist/debugCommands.d.ts +6 -6
- package/dist/debugCommands.js +537 -0
- package/dist/debugCommands.js.map +1 -0
- package/dist/debugging.d.ts +1 -0
- package/dist/defaultSets.d.ts +183 -0
- package/dist/defaultSets.js +216 -0
- package/dist/defaultSets.js.map +1 -0
- package/dist/definitions.d.ts +6 -0
- package/dist/definitions.js +78 -0
- package/dist/definitions.js.map +1 -0
- package/dist/defs.d.ts +1895 -165
- package/dist/defs.js +380 -0
- package/dist/defs.js.map +1 -0
- package/dist/denying.d.ts +4 -4
- package/dist/denying.js +106 -0
- package/dist/denying.js.map +1 -0
- package/dist/destructibles.d.ts +2 -2
- package/dist/destructibles.js +36 -0
- package/dist/destructibles.js.map +1 -0
- package/dist/determinism.d.ts +4 -4
- package/dist/determinism.js +247 -0
- package/dist/determinism.js.map +1 -0
- package/dist/dialog.d.ts +17 -2
- package/dist/dialog.js +108 -0
- package/dist/dialog.js.map +1 -0
- package/dist/effectRefs.js +28 -0
- package/dist/effectRefs.js.map +1 -0
- package/dist/effects.d.ts +27 -11
- package/dist/effects.js +110 -0
- package/dist/effects.js.map +1 -0
- package/dist/endings.d.ts +1 -1
- package/dist/endings.js +78 -0
- package/dist/endings.js.map +1 -0
- package/dist/engagement.d.ts +40 -6
- package/dist/engagement.js +530 -0
- package/dist/engagement.js.map +1 -0
- package/dist/engineEvents.d.ts +72 -9
- package/dist/engineEvents.js +520 -0
- package/dist/engineEvents.js.map +1 -0
- package/dist/entity.d.ts +275 -26
- package/dist/entity.js +441 -0
- package/dist/entity.js.map +1 -0
- package/dist/entityIndex.d.ts +10 -3
- package/dist/entityIndex.js +149 -0
- package/dist/entityIndex.js.map +1 -0
- package/dist/errors.d.ts +6 -2
- package/dist/errors.js +59 -0
- package/dist/errors.js.map +1 -0
- package/dist/events.d.ts +11 -5
- package/dist/events.js +158 -0
- package/dist/events.js.map +1 -0
- package/dist/exactMath.js +273 -0
- package/dist/exactMath.js.map +1 -0
- package/dist/features.d.ts +1 -1
- package/dist/features.js +127 -0
- package/dist/features.js.map +1 -0
- package/dist/fields.d.ts +25 -5
- package/dist/fields.js +140 -0
- package/dist/fields.js.map +1 -0
- package/dist/fixture.d.ts +3 -3
- package/dist/fixture.js +512 -0
- package/dist/fixture.js.map +1 -0
- package/dist/fog.d.ts +26 -3
- package/dist/fog.js +333 -0
- package/dist/fog.js.map +1 -0
- package/dist/foliage.d.ts +476 -0
- package/dist/foliage.js +1478 -0
- package/dist/foliage.js.map +1 -0
- package/dist/foliageDebug.d.ts +57 -0
- package/dist/foliageDebug.js +172 -0
- package/dist/foliageDebug.js.map +1 -0
- package/dist/foliageRegrowth.d.ts +20 -0
- package/dist/foliageRegrowth.js +332 -0
- package/dist/foliageRegrowth.js.map +1 -0
- package/dist/formState.d.ts +67 -0
- package/dist/formState.js +65 -0
- package/dist/formState.js.map +1 -0
- package/dist/formation.d.ts +46 -8
- package/dist/formation.js +297 -0
- package/dist/formation.js.map +1 -0
- package/dist/forms.d.ts +58 -0
- package/dist/forms.js +146 -0
- package/dist/forms.js.map +1 -0
- package/dist/friendlyFire.d.ts +2 -2
- package/dist/friendlyFire.js +37 -0
- package/dist/friendlyFire.js.map +1 -0
- package/dist/game.d.ts +141 -48
- package/dist/game.js +834 -0
- package/dist/game.js.map +1 -0
- package/dist/gameData.d.ts +96 -22
- package/dist/gameData.js +1690 -0
- package/dist/gameData.js.map +1 -0
- package/dist/gameFiles.d.ts +3 -3
- package/dist/gameFiles.js +14 -0
- package/dist/gameFiles.js.map +1 -0
- package/dist/gates.js +92 -0
- package/dist/gates.js.map +1 -0
- package/dist/generate.d.ts +28 -1
- package/dist/generate.js +1062 -0
- package/dist/generate.js.map +1 -0
- package/dist/generateWorker.d.ts +7 -3
- package/dist/generateWorker.js +86 -0
- package/dist/generateWorker.js.map +1 -0
- package/dist/grid.d.ts +9 -0
- package/dist/grid.js +102 -0
- package/dist/grid.js.map +1 -0
- package/dist/ground.d.ts +17 -1
- package/dist/ground.js +375 -0
- package/dist/ground.js.map +1 -0
- package/dist/groundObjects.d.ts +70 -0
- package/dist/groundObjects.js +371 -0
- package/dist/groundObjects.js.map +1 -0
- package/dist/groundSpeed.d.ts +20 -3
- package/dist/groundSpeed.js +117 -0
- package/dist/groundSpeed.js.map +1 -0
- package/dist/hero.d.ts +126 -10
- package/dist/hero.js +432 -0
- package/dist/hero.js.map +1 -0
- package/dist/holds.d.ts +94 -0
- package/dist/holds.js +305 -0
- package/dist/holds.js.map +1 -0
- package/dist/home.d.ts +1 -1
- package/dist/home.js +30 -0
- package/dist/home.js.map +1 -0
- package/dist/hooks.d.ts +339 -57
- package/dist/hooks.js +105 -0
- package/dist/hooks.js.map +1 -0
- package/dist/hotReload.d.ts +6 -5
- package/dist/hotReload.js +145 -0
- package/dist/hotReload.js.map +1 -0
- package/dist/ids.d.ts +3 -3
- package/dist/ids.js +30 -0
- package/dist/ids.js.map +1 -0
- package/dist/idsFile.d.ts +36 -0
- package/dist/idsFile.js +134 -0
- package/dist/idsFile.js.map +1 -0
- package/dist/index.d.ts +105 -68
- package/dist/index.js +194 -4701
- package/dist/inspect.d.ts +29 -2
- package/dist/{inspect-D9dWHmZ0.js → inspect.js} +21 -12
- package/dist/inspect.js.map +1 -0
- package/dist/inventory.d.ts +14 -1
- package/dist/inventory.js +84 -0
- package/dist/inventory.js.map +1 -0
- package/dist/items.d.ts +136 -8
- package/dist/items.js +585 -0
- package/dist/items.js.map +1 -0
- package/dist/lanes.d.ts +12 -3
- package/dist/lanes.js +496 -0
- package/dist/lanes.js.map +1 -0
- package/dist/life.d.ts +6 -2
- package/dist/life.js +287 -0
- package/dist/life.js.map +1 -0
- package/dist/log.d.ts +26 -3
- package/dist/log.js +192 -0
- package/dist/log.js.map +1 -0
- package/dist/manaBurn.d.ts +2 -2
- package/dist/manaBurn.js +75 -0
- package/dist/manaBurn.js.map +1 -0
- package/dist/map/file.d.ts +56 -3
- package/dist/map/file.js +264 -0
- package/dist/map/file.js.map +1 -0
- package/dist/map/images.js +61 -0
- package/dist/map/images.js.map +1 -0
- package/dist/map/look.d.ts +1 -1
- package/dist/map/look.js +30 -0
- package/dist/map/look.js.map +1 -0
- package/dist/map/pathProfile.js +183 -0
- package/dist/map/pathProfile.js.map +1 -0
- package/dist/map/resize.d.ts +4 -0
- package/dist/map/resize.js +136 -0
- package/dist/map/resize.js.map +1 -0
- package/dist/map/schema.js +257 -0
- package/dist/map/schema.js.map +1 -0
- package/dist/map/terrain.js +214 -0
- package/dist/map/terrain.js.map +1 -0
- package/dist/map/types.d.ts +92 -13
- package/dist/map/types.js +251 -0
- package/dist/map/types.js.map +1 -0
- package/dist/mapCheck/cells.js +94 -0
- package/dist/mapCheck/cells.js.map +1 -0
- package/dist/mapCheck/rules/foliage.d.ts +9 -0
- package/dist/mapCheck/rules/foliage.js +83 -0
- package/dist/mapCheck/rules/foliage.js.map +1 -0
- package/dist/mapCheck/rules/names.js +39 -0
- package/dist/mapCheck/rules/names.js.map +1 -0
- package/dist/mapCheck/rules/objects.d.ts +1 -1
- package/dist/mapCheck/rules/objects.js +56 -0
- package/dist/mapCheck/rules/objects.js.map +1 -0
- package/dist/mapCheck/rules/paths.js +32 -0
- package/dist/mapCheck/rules/paths.js.map +1 -0
- package/dist/mapCheck/rules/players.js +20 -0
- package/dist/mapCheck/rules/players.js.map +1 -0
- package/dist/mapCheck/rules/races.js +56 -0
- package/dist/mapCheck/rules/races.js.map +1 -0
- package/dist/mapCheck/rules/random.js +47 -0
- package/dist/mapCheck/rules/random.js.map +1 -0
- package/dist/mapCheck/rules/regions.js +30 -0
- package/dist/mapCheck/rules/regions.js.map +1 -0
- package/dist/mapCheck/rules/targets.js +31 -0
- package/dist/mapCheck/rules/targets.js.map +1 -0
- package/dist/mapCheck/rules/walking.js +45 -0
- package/dist/mapCheck/rules/walking.js.map +1 -0
- package/dist/mapCheck.d.ts +2 -2
- package/dist/mapCheck.js +63 -0
- package/dist/mapCheck.js.map +1 -0
- package/dist/mapFields.d.ts +25 -2
- package/dist/mapFields.js +134 -0
- package/dist/mapFields.js.map +1 -0
- package/dist/mapFile.js +176 -0
- package/dist/mapFile.js.map +1 -0
- package/dist/mapMeasure.d.ts +8 -0
- package/dist/mapMeasure.js +283 -0
- package/dist/mapMeasure.js.map +1 -0
- package/dist/mapMerge.d.ts +1 -0
- package/dist/mapMerge.js +172 -0
- package/dist/mapMerge.js.map +1 -0
- package/dist/mapObjectives.js +138 -0
- package/dist/mapObjectives.js.map +1 -0
- package/dist/mapObjects.js +80 -0
- package/dist/mapObjects.js.map +1 -0
- package/dist/math.d.ts +37 -7
- package/dist/math.js +155 -0
- package/dist/math.js.map +1 -0
- package/dist/messages.d.ts +71 -4
- package/dist/messages.js +29 -0
- package/dist/messages.js.map +1 -0
- package/dist/missionRules.d.ts +10 -2
- package/dist/{missionRules-C-bGxm0Q.js → missionRules.js} +30 -150
- package/dist/missionRules.js.map +1 -0
- package/dist/mods.d.ts +39 -20
- package/dist/mods.js +271 -0
- package/dist/mods.js.map +1 -0
- package/dist/moves.d.ts +87 -0
- package/dist/moves.js +539 -0
- package/dist/moves.js.map +1 -0
- package/dist/names.d.ts +7 -0
- package/dist/names.js +122 -0
- package/dist/names.js.map +1 -0
- package/dist/navigation/agentParams.js +14 -0
- package/dist/navigation/agentParams.js.map +1 -0
- package/dist/navigation/air.d.ts +7 -3
- package/dist/navigation/air.js +401 -0
- package/dist/navigation/air.js.map +1 -0
- package/dist/navigation/builds.d.ts +34 -2
- package/dist/navigation/builds.js +287 -0
- package/dist/navigation/builds.js.map +1 -0
- package/dist/navigation/groundAreas.d.ts +59 -1
- package/dist/navigation/groundAreas.js +407 -0
- package/dist/navigation/groundAreas.js.map +1 -0
- package/dist/navigation/navigation.d.ts +98 -9
- package/dist/navigation/recast.d.ts +194 -18
- package/dist/navigation/recast.js +1379 -0
- package/dist/navigation/recast.js.map +1 -0
- package/dist/navigation/sidePaths.d.ts +8 -3
- package/dist/navigation/sidePaths.js +241 -0
- package/dist/navigation/sidePaths.js.map +1 -0
- package/dist/navigation/sized.js +243 -0
- package/dist/navigation/sized.js.map +1 -0
- package/dist/nearest.js +32 -0
- package/dist/nearest.js.map +1 -0
- package/dist/noise.js +59 -0
- package/dist/noise.js.map +1 -0
- package/dist/objectives.d.ts +12 -3
- package/dist/objectives.js +144 -0
- package/dist/objectives.js.map +1 -0
- package/dist/orders/basic.d.ts +5 -5
- package/dist/orders/basic.js +417 -0
- package/dist/orders/basic.js.map +1 -0
- package/dist/orders/build.js +278 -0
- package/dist/orders/build.js.map +1 -0
- package/dist/orders/cast.d.ts +13 -3
- package/dist/orders/cast.js +558 -0
- package/dist/orders/cast.js.map +1 -0
- package/dist/orders/facts.js +16 -0
- package/dist/orders/facts.js.map +1 -0
- package/dist/orders/harvest.d.ts +21 -5
- package/dist/orders/harvest.js +540 -0
- package/dist/orders/harvest.js.map +1 -0
- package/dist/orders/idle.d.ts +3 -1
- package/dist/orders/idle.js +234 -0
- package/dist/orders/idle.js.map +1 -0
- package/dist/orders/items.js +92 -0
- package/dist/orders/items.js.map +1 -0
- package/dist/orders/queue.js +108 -0
- package/dist/orders/queue.js.map +1 -0
- package/dist/orders/waiting.d.ts +39 -0
- package/dist/orders/waiting.js +149 -0
- package/dist/orders/waiting.js.map +1 -0
- package/dist/pack.schema.js +13 -0
- package/dist/pack.schema.js.map +1 -0
- package/dist/pack.schema.json +7622 -841
- package/dist/packs/director/index.d.ts +13 -5
- package/dist/packs/director/index.js +204 -0
- package/dist/packs/director/index.js.map +1 -0
- package/dist/packs/heroes/campaign.d.ts +3 -2
- package/dist/packs/heroes/campaign.js +241 -0
- package/dist/packs/heroes/campaign.js.map +1 -0
- package/dist/packs/heroes/carry.d.ts +6 -0
- package/dist/packs/heroes/carry.js +112 -0
- package/dist/packs/heroes/carry.js.map +1 -0
- package/dist/packs/heroes/commands.js +115 -0
- package/dist/packs/heroes/commands.js.map +1 -0
- package/dist/packs/heroes/fallen.d.ts +43 -0
- package/dist/packs/heroes/fallen.js +61 -0
- package/dist/packs/heroes/fallen.js.map +1 -0
- package/dist/packs/heroes/hire.js +60 -0
- package/dist/packs/heroes/hire.js.map +1 -0
- package/dist/packs/heroes/index.d.ts +7 -6
- package/dist/packs/heroes/index.js +130 -0
- package/dist/packs/heroes/index.js.map +1 -0
- package/dist/packs/heroes/loop.d.ts +95 -0
- package/dist/packs/heroes/loop.js +250 -0
- package/dist/packs/heroes/loop.js.map +1 -0
- package/dist/packs/heroes/making.d.ts +6 -3
- package/dist/packs/heroes/making.js +55 -0
- package/dist/packs/heroes/making.js.map +1 -0
- package/dist/packs/heroes/respawn.d.ts +3 -3
- package/dist/packs/heroes/respawn.js +87 -0
- package/dist/packs/heroes/respawn.js.map +1 -0
- package/dist/packs/heroes/sets.d.ts +32 -0
- package/dist/packs/heroes/sets.js +51 -0
- package/dist/packs/heroes/sets.js.map +1 -0
- package/dist/packs/heroes/spells.d.ts +16 -0
- package/dist/packs/heroes/spells.js +269 -0
- package/dist/packs/heroes/spells.js.map +1 -0
- package/dist/packs/items/defaults.d.ts +43 -0
- package/dist/packs/items/defaults.js +1504 -0
- package/dist/packs/items/defaults.js.map +1 -0
- package/dist/packs/items/index.d.ts +27 -0
- package/dist/packs/items/index.js +214 -0
- package/dist/packs/items/index.js.map +1 -0
- package/dist/packs/moba/index.d.ts +3 -3
- package/dist/packs/moba/index.js +174 -0
- package/dist/packs/moba/index.js.map +1 -0
- package/dist/packs/pack.d.ts +15 -15
- package/dist/packs/pack.js +14 -0
- package/dist/packs/pack.js.map +1 -0
- package/dist/packs.d.ts +15 -7
- package/dist/packs.js +222 -0
- package/dist/packs.js.map +1 -0
- package/dist/paths.d.ts +2 -0
- package/dist/paths.js +109 -0
- package/dist/paths.js.map +1 -0
- package/dist/plain.js +57 -0
- package/dist/plain.js.map +1 -0
- package/dist/player.d.ts +33 -10
- package/dist/player.js +159 -0
- package/dist/player.js.map +1 -0
- package/dist/portals.d.ts +1 -1
- package/dist/portals.js +194 -0
- package/dist/portals.js.map +1 -0
- package/dist/prefabs.d.ts +25 -2
- package/dist/prefabs.js +239 -0
- package/dist/prefabs.js.map +1 -0
- package/dist/presetBuildings.js +58 -0
- package/dist/presetBuildings.js.map +1 -0
- package/dist/presetFoliage.d.ts +27 -0
- package/dist/presetFoliage.js +98 -0
- package/dist/presetFoliage.js.map +1 -0
- package/dist/presetGround.js +65 -0
- package/dist/presetGround.js.map +1 -0
- package/dist/proxies.d.ts +12 -0
- package/dist/proxies.js +79 -0
- package/dist/proxies.js.map +1 -0
- package/dist/query.d.ts +56 -0
- package/dist/query.js +88 -0
- package/dist/query.js.map +1 -0
- package/dist/races.d.ts +15 -14
- package/dist/races.js +172 -0
- package/dist/races.js.map +1 -0
- package/dist/randomGroups.js +91 -0
- package/dist/randomGroups.js.map +1 -0
- package/dist/registry.d.ts +117 -53
- package/dist/registry.js +323 -0
- package/dist/registry.js.map +1 -0
- package/dist/remains.d.ts +11 -9
- package/dist/remains.js +188 -0
- package/dist/remains.js.map +1 -0
- package/dist/replication.d.ts +12 -7
- package/dist/replication.js +100 -0
- package/dist/replication.js.map +1 -0
- package/dist/rng.d.ts +2 -0
- package/dist/rng.js +40 -0
- package/dist/rng.js.map +1 -0
- package/dist/rules.d.ts +186 -99
- package/dist/rules.js +179 -0
- package/dist/rules.js.map +1 -0
- package/dist/rulesCheck.d.ts +5 -4
- package/dist/rulesCheck.js +693 -0
- package/dist/rulesCheck.js.map +1 -0
- package/dist/runes.d.ts +2 -2
- package/dist/runes.js +80 -0
- package/dist/runes.js.map +1 -0
- package/dist/save.d.ts +37 -12
- package/dist/save.js +532 -0
- package/dist/save.js.map +1 -0
- package/dist/scenario.d.ts +2 -2
- package/dist/scenario.js +99 -0
- package/dist/scenario.js.map +1 -0
- package/dist/scheduler.d.ts +3 -0
- package/dist/scheduler.js +156 -0
- package/dist/scheduler.js.map +1 -0
- package/dist/score.d.ts +19 -19
- package/dist/score.js +709 -0
- package/dist/score.js.map +1 -0
- package/dist/sequences.d.ts +10 -6
- package/dist/sequences.js +206 -0
- package/dist/sequences.js.map +1 -0
- package/dist/server/doorman.js +154 -0
- package/dist/server/doorman.js.map +1 -0
- package/dist/server/gameServer.d.ts +16 -1
- package/dist/server/gameServer.js +643 -0
- package/dist/server/gameServer.js.map +1 -0
- package/dist/server/index.d.ts +1 -1
- package/dist/server/lobby.js +199 -0
- package/dist/server/lobby.js.map +1 -0
- package/dist/server/log.js +18 -0
- package/dist/server/log.js.map +1 -0
- package/dist/server/match.js +267 -0
- package/dist/server/match.js.map +1 -0
- package/dist/server/mode.d.ts +18 -9
- package/dist/server/mode.js +220 -0
- package/dist/server/mode.js.map +1 -0
- package/dist/{navigation-worker.js → server/navigation-worker.js} +1 -1
- package/dist/server/navigation-worker.js.map +1 -0
- package/dist/server/navigation.js +39 -0
- package/dist/server/navigation.js.map +1 -0
- package/dist/server/ops.d.ts +4 -0
- package/dist/server/ops.js +137 -0
- package/dist/server/ops.js.map +1 -0
- package/dist/server/packs.d.ts +3 -3
- package/dist/server/packs.js +32 -0
- package/dist/server/packs.js.map +1 -0
- package/dist/server/ratings.d.ts +5 -0
- package/dist/server/ratings.js +104 -0
- package/dist/server/ratings.js.map +1 -0
- package/dist/server/relay.d.ts +12 -2
- package/dist/server/relay.js +144 -0
- package/dist/server/relay.js.map +1 -0
- package/dist/server/rooms.d.ts +9 -2
- package/dist/server/rooms.js +442 -0
- package/dist/server/rooms.js.map +1 -0
- package/dist/server/seat.js +116 -0
- package/dist/server/seat.js.map +1 -0
- package/dist/server/seatSettings.d.ts +3 -3
- package/dist/server/seatSettings.js +63 -0
- package/dist/server/seatSettings.js.map +1 -0
- package/dist/server/secret.js +13 -0
- package/dist/server/secret.js.map +1 -0
- package/dist/server/start.d.ts +13 -6
- package/dist/server/start.js +76 -0
- package/dist/server/start.js.map +1 -0
- package/dist/server/websocket.d.ts +9 -1
- package/dist/server/websocket.js +306 -0
- package/dist/server/websocket.js.map +1 -0
- package/dist/server.js +15 -2861
- package/dist/session/can.js +26 -0
- package/dist/session/can.js.map +1 -0
- package/dist/session/commandReplay.d.ts +8 -2
- package/dist/session/commandReplay.js +293 -0
- package/dist/session/commandReplay.js.map +1 -0
- package/dist/session/debug.js +151 -0
- package/dist/session/debug.js.map +1 -0
- package/dist/session/delay.js +62 -0
- package/dist/session/delay.js.map +1 -0
- package/dist/session/delta.d.ts +14 -1
- package/dist/session/delta.js +407 -0
- package/dist/session/delta.js.map +1 -0
- package/dist/session/entityState.js +415 -0
- package/dist/session/entityState.js.map +1 -0
- package/dist/session/local.d.ts +47 -5
- package/dist/session/local.js +670 -0
- package/dist/session/local.js.map +1 -0
- package/dist/session/memory.d.ts +20 -2
- package/dist/session/memory.js +131 -0
- package/dist/session/memory.js.map +1 -0
- package/dist/session/protocol.d.ts +325 -31
- package/dist/session/protocol.js +55 -0
- package/dist/session/protocol.js.map +1 -0
- package/dist/session/remote.d.ts +74 -12
- package/dist/session/remote.js +1394 -0
- package/dist/session/remote.js.map +1 -0
- package/dist/session/replay.d.ts +11 -2
- package/dist/session/replay.js +160 -0
- package/dist/session/replay.js.map +1 -0
- package/dist/session/seed.js +12 -0
- package/dist/session/seed.js.map +1 -0
- package/dist/session/share.d.ts +5 -1
- package/dist/session/share.js +94 -0
- package/dist/session/share.js.map +1 -0
- package/dist/session/socket.d.ts +1 -1
- package/dist/session/socket.js +29 -0
- package/dist/session/socket.js.map +1 -0
- package/dist/session/wire.d.ts +5 -0
- package/dist/session/wire.js +84 -0
- package/dist/session/wire.js.map +1 -0
- package/dist/session/worker.d.ts +77 -12
- package/dist/session/worker.js +499 -0
- package/dist/session/worker.js.map +1 -0
- package/dist/shared.d.ts +31 -5
- package/dist/shared.js +166 -0
- package/dist/shared.js.map +1 -0
- package/dist/sides.d.ts +9 -3
- package/dist/sides.js +149 -0
- package/dist/sides.js.map +1 -0
- package/dist/sight.js +85 -0
- package/dist/sight.js.map +1 -0
- package/dist/simulate-worker.js +1 -1
- package/dist/simulate.d.ts +12 -8
- package/dist/{simulate-oXBiw1Ff.js → simulate.js} +10 -11
- package/dist/simulate.js.map +1 -0
- package/dist/smart.js +77 -0
- package/dist/smart.js.map +1 -0
- package/dist/spatial.d.ts +32 -16
- package/dist/spatial.js +234 -0
- package/dist/spatial.js.map +1 -0
- package/dist/spawning.d.ts +1 -0
- package/dist/spawning.js +224 -0
- package/dist/spawning.js.map +1 -0
- package/dist/stances.d.ts +6 -3
- package/dist/stances.js +169 -0
- package/dist/stances.js.map +1 -0
- package/dist/start.d.ts +10 -10
- package/dist/start.js +75 -0
- package/dist/start.js.map +1 -0
- package/dist/stats.d.ts +42 -16
- package/dist/stats.js +290 -0
- package/dist/stats.js.map +1 -0
- package/dist/summoned.d.ts +52 -0
- package/dist/summoned.js +38 -0
- package/dist/summoned.js.map +1 -0
- package/dist/summons.d.ts +10 -13
- package/dist/summons.js +271 -0
- package/dist/summons.js.map +1 -0
- package/dist/systems/abilities.js +224 -0
- package/dist/systems/abilities.js.map +1 -0
- package/dist/systems/combat.d.ts +35 -1
- package/dist/systems/combat.js +677 -0
- package/dist/systems/combat.js.map +1 -0
- package/dist/systems/combatTold.d.ts +3 -1
- package/dist/systems/combatTold.js +85 -0
- package/dist/systems/combatTold.js.map +1 -0
- package/dist/systems/construction.js +80 -0
- package/dist/systems/construction.js.map +1 -0
- package/dist/systems/economy.d.ts +0 -6
- package/dist/systems/economy.js +128 -0
- package/dist/systems/economy.js.map +1 -0
- package/dist/systems/fog.d.ts +1 -1
- package/dist/systems/fog.js +120 -0
- package/dist/systems/fog.js.map +1 -0
- package/dist/systems/life.js +32 -0
- package/dist/systems/life.js.map +1 -0
- package/dist/systems/movement.d.ts +24 -12
- package/dist/systems/movement.js +1247 -0
- package/dist/systems/movement.js.map +1 -0
- package/dist/systems/orders.js +64 -0
- package/dist/systems/orders.js.map +1 -0
- package/dist/systems/production.js +322 -0
- package/dist/systems/production.js.map +1 -0
- package/dist/systems/productionQueue.js +120 -0
- package/dist/systems/productionQueue.js.map +1 -0
- package/dist/systems/victory.d.ts +1 -1
- package/dist/systems/victory.js +56 -0
- package/dist/systems/victory.js.map +1 -0
- package/dist/talk.d.ts +6 -6
- package/dist/talk.js +153 -0
- package/dist/talk.js.map +1 -0
- package/dist/targeting.d.ts +142 -0
- package/dist/targeting.js +49 -0
- package/dist/targeting.js.map +1 -0
- package/dist/tech.d.ts +20 -3
- package/dist/tech.js +239 -0
- package/dist/tech.js.map +1 -0
- package/dist/techTree.d.ts +7 -0
- package/dist/techTree.js +90 -0
- package/dist/techTree.js.map +1 -0
- package/dist/terrain.d.ts +59 -7
- package/dist/terrain.js +389 -0
- package/dist/terrain.js.map +1 -0
- package/dist/terrainSave.d.ts +6 -0
- package/dist/terrainSave.js +74 -0
- package/dist/terrainSave.js.map +1 -0
- package/dist/testing.d.ts +8 -7
- package/dist/testing.js +13 -739
- package/dist/testing.js.map +1 -1
- package/dist/tiles.d.ts +1 -1
- package/dist/tiles.js +43 -0
- package/dist/tiles.js.map +1 -0
- package/dist/timers.d.ts +29 -4
- package/dist/timers.js +242 -0
- package/dist/timers.js.map +1 -0
- package/dist/tomes.d.ts +4 -4
- package/dist/tomes.js +94 -0
- package/dist/tomes.js.map +1 -0
- package/dist/trade.js +103 -0
- package/dist/trade.js.map +1 -0
- package/dist/transport.d.ts +6 -1
- package/dist/transport.js +281 -0
- package/dist/transport.js.map +1 -0
- package/dist/tunables.d.ts +10 -3
- package/dist/tunables.js +56 -0
- package/dist/tunables.js.map +1 -0
- package/dist/unitResources.d.ts +67 -0
- package/dist/unitResources.js +266 -0
- package/dist/unitResources.js.map +1 -0
- package/dist/upkeep.d.ts +6 -1
- package/dist/upkeep.js +26 -0
- package/dist/upkeep.js.map +1 -0
- package/dist/veterancy.d.ts +8 -3
- package/dist/veterancy.js +131 -0
- package/dist/veterancy.js.map +1 -0
- package/dist/vision.d.ts +36 -0
- package/dist/vision.js +133 -0
- package/dist/vision.js.map +1 -0
- package/dist/walls.d.ts +1 -1
- package/dist/walls.js +278 -0
- package/dist/walls.js.map +1 -0
- package/dist/world.d.ts +606 -88
- package/dist/world.js +1263 -0
- package/dist/world.js.map +1 -0
- package/package.json +2 -2
- package/dist/ai.js.map +0 -1
- package/dist/attributes.d.ts +0 -66
- package/dist/brain-BvVdUhX8.js +0 -7659
- package/dist/brain-BvVdUhX8.js.map +0 -1
- package/dist/builds-C6LfgvEU.js +0 -460
- package/dist/builds-C6LfgvEU.js.map +0 -1
- package/dist/coreComponents-syuh2fPG.js +0 -5149
- package/dist/coreComponents-syuh2fPG.js.map +0 -1
- package/dist/debugCommands-CzjrSm66.js +0 -14739
- package/dist/debugCommands-CzjrSm66.js.map +0 -1
- package/dist/determinism-BCymQwiE.js +0 -518
- package/dist/determinism-BCymQwiE.js.map +0 -1
- package/dist/game-DiJEN-Ks.js +0 -5800
- package/dist/game-DiJEN-Ks.js.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/inspect-D9dWHmZ0.js.map +0 -1
- package/dist/local-Dkovq42k.js +0 -1379
- package/dist/local-Dkovq42k.js.map +0 -1
- package/dist/missionRules-C-bGxm0Q.js.map +0 -1
- package/dist/navigation-worker.js.map +0 -1
- package/dist/packs-g5thvmGn.js +0 -3199
- package/dist/packs-g5thvmGn.js.map +0 -1
- package/dist/profiles-B3NS9jwk.js.map +0 -1
- package/dist/server.js.map +0 -1
- package/dist/simulate-oXBiw1Ff.js.map +0 -1
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { detection, distanceToEdge } from "../../entity.js";
|
|
2
|
+
import { valueOf } from "../amounts.js";
|
|
3
|
+
import { defineEffect } from "../effects.js";
|
|
4
|
+
//#region src/abilities/effects/sight.ts
|
|
5
|
+
/**
|
|
6
|
+
* Sight: the engine's effects that show a spot (`EffectTypes.reveal`) and find what is invisible (`detect`)
|
|
7
|
+
*/
|
|
8
|
+
var near = [];
|
|
9
|
+
/** The caster's team sees the spot for a while, with nothing standing there */
|
|
10
|
+
var revealEffect = defineEffect({
|
|
11
|
+
type: "reveal",
|
|
12
|
+
run: (context, effect) => {
|
|
13
|
+
const { world, caster, point } = context;
|
|
14
|
+
world.reveal(world.player(caster.owner).team, point, valueOf(context, effect.radius, void 0, 8), valueOf(context, effect.duration, void 0, 5));
|
|
15
|
+
},
|
|
16
|
+
fields: ["duration"]
|
|
17
|
+
});
|
|
18
|
+
/** Finds what is invisible around the spot: the caster's team sees it for as long as `duration` says */
|
|
19
|
+
var detectEffect = defineEffect({
|
|
20
|
+
type: "detect",
|
|
21
|
+
run: (context, effect) => {
|
|
22
|
+
const { world, caster, point } = context;
|
|
23
|
+
const team = world.player(caster.owner).team;
|
|
24
|
+
const radius = valueOf(context, effect.radius, void 0, 10);
|
|
25
|
+
const seconds = valueOf(context, effect.duration, void 0, 8);
|
|
26
|
+
for (const entity of world.spatial.query(point.x, point.z, radius, near)) {
|
|
27
|
+
if (!entity.alive || !world.sight.isInvisible(entity) || !world.areEnemies(caster.owner, entity.owner)) continue;
|
|
28
|
+
if (distanceToEdge(point, entity) > radius) continue;
|
|
29
|
+
let found = entity.get(detection);
|
|
30
|
+
if (!found) entity.set(detection, found = /* @__PURE__ */ new Map());
|
|
31
|
+
found.set(team, Math.max(found.get(team) ?? 0, seconds));
|
|
32
|
+
}
|
|
33
|
+
},
|
|
34
|
+
fields: ["duration"]
|
|
35
|
+
});
|
|
36
|
+
//#endregion
|
|
37
|
+
export { detectEffect, revealEffect };
|
|
38
|
+
|
|
39
|
+
//# sourceMappingURL=sight.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sight.js","names":[],"sources":["../../../src/abilities/effects/sight.ts"],"sourcesContent":["/**\n * Sight: the engine's effects that show a spot (`EffectTypes.reveal`) and find what is invisible (`detect`)\n */\nimport { detection, distanceToEdge, type Entity } from '#engine/entity'\nimport { valueOf } from '../amounts'\nimport { defineEffect } from '../effects'\n\nconst near: Entity[] = []\n\n/** The caster's team sees the spot for a while, with nothing standing there */\nexport const revealEffect = defineEffect({ type: 'reveal', run: (context, effect) => {\n\t\tconst { world, caster, point } = context\n\t\tworld.reveal(world.player(caster.owner).team, point, valueOf(context, effect.radius, undefined, 8), valueOf(context, effect.duration, undefined, 5))\n\t}, fields: ['duration'] })\n\n/** Finds what is invisible around the spot: the caster's team sees it for as long as `duration` says */\nexport const detectEffect = defineEffect({ type: 'detect', run: (context, effect) => {\n\t\tconst { world, caster, point } = context\n\t\tconst team = world.player(caster.owner).team\n\t\tconst radius = valueOf(context, effect.radius, undefined, 10)\n\t\tconst seconds = valueOf(context, effect.duration, undefined, 8)\n\t\tfor (const entity of world.spatial.query(point.x, point.z, radius, near)) {\n\t\t\tif (!entity.alive || !world.sight.isInvisible(entity) || !world.areEnemies(caster.owner, entity.owner)) continue\n\t\t\tif (distanceToEdge(point, entity) > radius) continue\n\t\t\tlet found = entity.get(detection)\n\t\t\tif (!found) entity.set(detection, (found = new Map()))\n\t\t\tfound.set(team, Math.max(found.get(team) ?? 0, seconds))\n\t\t}\n\t}, fields: ['duration'] })\n"],"mappings":";;;;;;;AAOA,IAAM,OAAiB,CAAC;;AAGxB,IAAa,eAAe,aAAa;CAAE,MAAM;CAAU,MAAM,SAAS,WAAW;EACnF,MAAM,EAAE,OAAO,QAAQ,UAAU;EACjC,MAAM,OAAO,MAAM,OAAO,OAAO,KAAK,CAAC,CAAC,MAAM,OAAO,QAAQ,SAAS,OAAO,QAAQ,KAAA,GAAW,CAAC,GAAG,QAAQ,SAAS,OAAO,UAAU,KAAA,GAAW,CAAC,CAAC;CACpJ;CAAG,QAAQ,CAAC,UAAU;AAAE,CAAC;;AAG1B,IAAa,eAAe,aAAa;CAAE,MAAM;CAAU,MAAM,SAAS,WAAW;EACnF,MAAM,EAAE,OAAO,QAAQ,UAAU;EACjC,MAAM,OAAO,MAAM,OAAO,OAAO,KAAK,CAAC,CAAC;EACxC,MAAM,SAAS,QAAQ,SAAS,OAAO,QAAQ,KAAA,GAAW,EAAE;EAC5D,MAAM,UAAU,QAAQ,SAAS,OAAO,UAAU,KAAA,GAAW,CAAC;EAC9D,KAAK,MAAM,UAAU,MAAM,QAAQ,MAAM,MAAM,GAAG,MAAM,GAAG,QAAQ,IAAI,GAAG;GACzE,IAAI,CAAC,OAAO,SAAS,CAAC,MAAM,MAAM,YAAY,MAAM,KAAK,CAAC,MAAM,WAAW,OAAO,OAAO,OAAO,KAAK,GAAG;GACxG,IAAI,eAAe,OAAO,MAAM,IAAI,QAAQ;GAC5C,IAAI,QAAQ,OAAO,IAAI,SAAS;GAChC,IAAI,CAAC,OAAO,OAAO,IAAI,WAAY,wBAAQ,IAAI,IAAI,CAAE;GACrD,MAAM,IAAI,MAAM,KAAK,IAAI,MAAM,IAAI,IAAI,KAAK,GAAG,OAAO,CAAC;EACxD;CACD;CAAG,QAAQ,CAAC,UAAU;AAAE,CAAC"}
|
|
@@ -1,2 +1,5 @@
|
|
|
1
|
-
/**
|
|
2
|
-
|
|
1
|
+
/**
|
|
2
|
+
* Brings a unit into the world where it landed, like a ward: the caster's, or the neutral player's (`owner`).
|
|
3
|
+
* `duration` is how long it lasts; `looksLike` draws it as the target or the caster is, and `data` gives it components
|
|
4
|
+
*/
|
|
5
|
+
export declare const spawnEffect: import("../effects").EffectType<"spawn">;
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { valueOf } from "../amounts.js";
|
|
2
|
+
import { defineEffect } from "../effects.js";
|
|
3
|
+
//#region src/abilities/effects/spawn.ts
|
|
4
|
+
/**
|
|
5
|
+
* The engine's effect that brings a unit into the world (`EffectTypes.spawn`)
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Brings a unit into the world where it landed, like a ward: the caster's, or the neutral player's (`owner`).
|
|
9
|
+
* `duration` is how long it lasts; `looksLike` draws it as the target or the caster is, and `data` gives it components
|
|
10
|
+
*/
|
|
11
|
+
var spawnEffect = defineEffect({
|
|
12
|
+
type: "spawn",
|
|
13
|
+
run: (context, effect) => {
|
|
14
|
+
const { world, caster, point } = context;
|
|
15
|
+
if (!effect.unit) return;
|
|
16
|
+
const lifetime = effect.duration === void 0 ? void 0 : valueOf(context, effect.duration);
|
|
17
|
+
const looksLike = effect.looksLike === "target" ? context.target : effect.looksLike === "caster" ? caster : void 0;
|
|
18
|
+
const data = effect.data && Object.fromEntries(Object.entries(effect.data).map(([id, value]) => {
|
|
19
|
+
const component = world.registry.component(id);
|
|
20
|
+
return [id, component?.load ? component.load(value, world.registry) : value];
|
|
21
|
+
}));
|
|
22
|
+
world.spawn(effect.unit, effect.owner === "neutral" ? world.neutral : caster.owner, point, {
|
|
23
|
+
facing: caster.facing,
|
|
24
|
+
lifetime,
|
|
25
|
+
looksLike,
|
|
26
|
+
data
|
|
27
|
+
});
|
|
28
|
+
},
|
|
29
|
+
fields: [
|
|
30
|
+
"unit",
|
|
31
|
+
"duration",
|
|
32
|
+
"owner",
|
|
33
|
+
"looksLike",
|
|
34
|
+
"data"
|
|
35
|
+
]
|
|
36
|
+
});
|
|
37
|
+
//#endregion
|
|
38
|
+
export { spawnEffect };
|
|
39
|
+
|
|
40
|
+
//# sourceMappingURL=spawn.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"spawn.js","names":[],"sources":["../../../src/abilities/effects/spawn.ts"],"sourcesContent":["/**\n * The engine's effect that brings a unit into the world (`EffectTypes.spawn`)\n */\nimport { valueOf } from '../amounts'\nimport { defineEffect } from '../effects'\n\n/**\n * Brings a unit into the world where it landed, like a ward: the caster's, or the neutral player's (`owner`).\n * `duration` is how long it lasts; `looksLike` draws it as the target or the caster is, and `data` gives it components\n */\nexport const spawnEffect = defineEffect({ type: 'spawn', run: (context, effect) => {\n\t\tconst { world, caster, point } = context\n\t\tif (!effect.unit) return\n\t\tconst lifetime = effect.duration === undefined ? undefined : valueOf(context, effect.duration)\n\t\tconst looksLike = effect.looksLike === 'target' ? context.target : effect.looksLike === 'caster' ? caster : undefined\n\t\t// the form a save keeps a component in: what its `load` reads\n\t\tconst data = effect.data && Object.fromEntries(Object.entries(effect.data).map(([id, value]) => {\n\t\t\tconst component = world.registry.component(id)\n\t\t\treturn [id, component?.load ? component.load(value, world.registry) : value]\n\t\t}))\n\t\tworld.spawn(effect.unit, effect.owner === 'neutral' ? world.neutral : caster.owner, point, {\n\t\t\tfacing: caster.facing,\n\t\t\tlifetime,\n\t\t\tlooksLike,\n\t\t\tdata\n\t\t})\n\t}, fields: ['unit', 'duration', 'owner', 'looksLike', 'data'] })\n"],"mappings":";;;;;;;;;;AAUA,IAAa,cAAc,aAAa;CAAE,MAAM;CAAS,MAAM,SAAS,WAAW;EACjF,MAAM,EAAE,OAAO,QAAQ,UAAU;EACjC,IAAI,CAAC,OAAO,MAAM;EAClB,MAAM,WAAW,OAAO,aAAa,KAAA,IAAY,KAAA,IAAY,QAAQ,SAAS,OAAO,QAAQ;EAC7F,MAAM,YAAY,OAAO,cAAc,WAAW,QAAQ,SAAS,OAAO,cAAc,WAAW,SAAS,KAAA;EAE5G,MAAM,OAAO,OAAO,QAAQ,OAAO,YAAY,OAAO,QAAQ,OAAO,IAAI,CAAC,CAAC,KAAK,CAAC,IAAI,WAAW;GAC/F,MAAM,YAAY,MAAM,SAAS,UAAU,EAAE;GAC7C,OAAO,CAAC,IAAI,WAAW,OAAO,UAAU,KAAK,OAAO,MAAM,QAAQ,IAAI,KAAK;EAC5E,CAAC,CAAC;EACF,MAAM,MAAM,OAAO,MAAM,OAAO,UAAU,YAAY,MAAM,UAAU,OAAO,OAAO,OAAO;GAC1F,QAAQ,OAAO;GACf;GACA;GACA;EACD,CAAC;CACF;CAAG,QAAQ;EAAC;EAAQ;EAAY;EAAS;EAAa;CAAM;AAAE,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
/** `effects` happen at the spot, `delay` seconds from now */
|
|
2
|
-
export declare const afterEffect: import("../effects").
|
|
2
|
+
export declare const afterEffect: import("../effects").EffectType<"after">;
|
|
3
3
|
/** For `duration` seconds `effects` happen to what is at the spot, over and over, and `onEnd` to what is there at the end */
|
|
4
|
-
export declare const zoneEffect: import("../effects").
|
|
4
|
+
export declare const zoneEffect: import("../effects").EffectType<"zone">;
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
import { at } from "../../defs.js";
|
|
2
|
+
import { effectOrigin } from "../land.js";
|
|
3
|
+
import { valueOf } from "../amounts.js";
|
|
4
|
+
import { effectHeading, shaped } from "../shapes.js";
|
|
5
|
+
import { defineEffect } from "../effects.js";
|
|
6
|
+
//#region src/abilities/effects/timed.ts
|
|
7
|
+
/**
|
|
8
|
+
* Later and over time: the engine's effects that go off after a while (`EffectTypes.after`) and over and over in a
|
|
9
|
+
* place (`zone`)
|
|
10
|
+
*/
|
|
11
|
+
/** Where the effects of a context go off from and the way they face, kept for later where some have a shape (AB10) */
|
|
12
|
+
function kept(context, effects, own) {
|
|
13
|
+
if (!shaped(effects) && (!own || own === "circle")) return {};
|
|
14
|
+
const from = effectOrigin(context);
|
|
15
|
+
return {
|
|
16
|
+
from: {
|
|
17
|
+
x: from.x,
|
|
18
|
+
z: from.z
|
|
19
|
+
},
|
|
20
|
+
heading: effectHeading(context)
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
/** `effects` happen at the spot, `delay` seconds from now */
|
|
24
|
+
var afterEffect = defineEffect({
|
|
25
|
+
type: "after",
|
|
26
|
+
run: (context, effect) => {
|
|
27
|
+
const { world, caster, ability, level, point } = context;
|
|
28
|
+
world.delayed.push({
|
|
29
|
+
left: at(effect.delay, level),
|
|
30
|
+
caster,
|
|
31
|
+
ability,
|
|
32
|
+
level,
|
|
33
|
+
point: {
|
|
34
|
+
x: point.x,
|
|
35
|
+
z: point.z
|
|
36
|
+
},
|
|
37
|
+
effects: effect.effects ?? [],
|
|
38
|
+
impact: effect.impact,
|
|
39
|
+
...kept(context, effect.effects)
|
|
40
|
+
});
|
|
41
|
+
},
|
|
42
|
+
fields: [
|
|
43
|
+
"delay",
|
|
44
|
+
"effects",
|
|
45
|
+
"impact"
|
|
46
|
+
]
|
|
47
|
+
});
|
|
48
|
+
/** For `duration` seconds `effects` happen to what is at the spot, over and over, and `onEnd` to what is there at the end */
|
|
49
|
+
var zoneEffect = defineEffect({
|
|
50
|
+
type: "zone",
|
|
51
|
+
run: (context, effect) => {
|
|
52
|
+
const { world, caster, ability, level, point, target } = context;
|
|
53
|
+
const followed = effect.follow === "caster" ? caster : effect.follow === "target" ? target : void 0;
|
|
54
|
+
const at = followed?.pos ?? point;
|
|
55
|
+
const lists = [
|
|
56
|
+
...effect.effects ?? [],
|
|
57
|
+
...effect.onEnd ?? [],
|
|
58
|
+
...effect.onEnter ?? [],
|
|
59
|
+
...effect.onLeave ?? [],
|
|
60
|
+
...effect.edge ?? []
|
|
61
|
+
];
|
|
62
|
+
world.zones.push({
|
|
63
|
+
id: world.newId(),
|
|
64
|
+
caster,
|
|
65
|
+
ability,
|
|
66
|
+
level,
|
|
67
|
+
x: at.x,
|
|
68
|
+
z: at.z,
|
|
69
|
+
left: valueOf(context, effect.duration, void 0, 1),
|
|
70
|
+
next: 0,
|
|
71
|
+
effect,
|
|
72
|
+
...kept(context, lists, effect.shape),
|
|
73
|
+
...followed && {
|
|
74
|
+
follows: followed.id,
|
|
75
|
+
from: {
|
|
76
|
+
x: at.x,
|
|
77
|
+
z: at.z
|
|
78
|
+
},
|
|
79
|
+
heading: followed.facing
|
|
80
|
+
}
|
|
81
|
+
});
|
|
82
|
+
},
|
|
83
|
+
fields: [
|
|
84
|
+
"duration",
|
|
85
|
+
"effects",
|
|
86
|
+
"onEnd",
|
|
87
|
+
"follow",
|
|
88
|
+
"onEnter",
|
|
89
|
+
"onLeave",
|
|
90
|
+
"edge"
|
|
91
|
+
]
|
|
92
|
+
});
|
|
93
|
+
//#endregion
|
|
94
|
+
export { afterEffect, zoneEffect };
|
|
95
|
+
|
|
96
|
+
//# sourceMappingURL=timed.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"timed.js","names":[],"sources":["../../../src/abilities/effects/timed.ts"],"sourcesContent":["/**\n * Later and over time: the engine's effects that go off after a while (`EffectTypes.after`) and over and over in a\n * place (`zone`)\n */\nimport { at, type EffectDef, type EffectShape } from '#engine/defs'\nimport { valueOf } from '../amounts'\nimport { defineEffect, type EffectContext } from '../effects'\nimport { effectOrigin } from '../land'\nimport { effectHeading, shaped } from '../shapes'\n\n/** Where the effects of a context go off from and the way they face, kept for later where some have a shape (AB10) */\nfunction kept(context: EffectContext, effects: readonly EffectDef[] | undefined, own?: EffectShape) {\n\tif (!shaped(effects) && (!own || own === 'circle')) return {}\n\tconst from = effectOrigin(context)\n\treturn { from: { x: from.x, z: from.z }, heading: effectHeading(context) }\n}\n\n/** `effects` happen at the spot, `delay` seconds from now */\nexport const afterEffect = defineEffect({ type: 'after', run: (context, effect) => {\n\t\tconst { world, caster, ability, level, point } = context\n\t\tworld.delayed.push({\n\t\t\tleft: at(effect.delay, level),\n\t\t\tcaster,\n\t\t\tability,\n\t\t\tlevel,\n\t\t\tpoint: { x: point.x, z: point.z },\n\t\t\teffects: effect.effects ?? [],\n\t\t\timpact: effect.impact,\n\t\t\t...kept(context, effect.effects)\n\t\t})\n\t}, fields: ['delay', 'effects', 'impact'] })\n\n/** For `duration` seconds `effects` happen to what is at the spot, over and over, and `onEnd` to what is there at the end */\nexport const zoneEffect = defineEffect({ type: 'zone', run: (context, effect) => {\n\t\tconst { world, caster, ability, level, point, target } = context\n\t\t// one that goes with a unit is where it is, the way it faces (AB11)\n\t\tconst followed = effect.follow === 'caster' ? caster : effect.follow === 'target' ? target : undefined\n\t\tconst at = followed?.pos ?? point\n\t\tconst lists = [...(effect.effects ?? []), ...(effect.onEnd ?? []), ...(effect.onEnter ?? []), ...(effect.onLeave ?? []), ...(effect.edge ?? [])]\n\t\tworld.zones.push({\n\t\t\tid: world.newId(),\n\t\t\tcaster,\n\t\t\tability,\n\t\t\tlevel,\n\t\t\tx: at.x,\n\t\t\tz: at.z,\n\t\t\tleft: valueOf(context, effect.duration, undefined, 1),\n\t\t\tnext: 0,\n\t\t\teffect,\n\t\t\t...kept(context, lists, effect.shape),\n\t\t\t...(followed && { follows: followed.id, from: { x: at.x, z: at.z }, heading: followed.facing })\n\t\t})\n\t}, fields: ['duration', 'effects', 'onEnd', 'follow', 'onEnter', 'onLeave', 'edge'] })\n"],"mappings":";;;;;;;;;;;AAWA,SAAS,KAAK,SAAwB,SAA2C,KAAmB;CACnG,IAAI,CAAC,OAAO,OAAO,MAAM,CAAC,OAAO,QAAQ,WAAW,OAAO,CAAC;CAC5D,MAAM,OAAO,aAAa,OAAO;CACjC,OAAO;EAAE,MAAM;GAAE,GAAG,KAAK;GAAG,GAAG,KAAK;EAAE;EAAG,SAAS,cAAc,OAAO;CAAE;AAC1E;;AAGA,IAAa,cAAc,aAAa;CAAE,MAAM;CAAS,MAAM,SAAS,WAAW;EACjF,MAAM,EAAE,OAAO,QAAQ,SAAS,OAAO,UAAU;EACjD,MAAM,QAAQ,KAAK;GAClB,MAAM,GAAG,OAAO,OAAO,KAAK;GAC5B;GACA;GACA;GACA,OAAO;IAAE,GAAG,MAAM;IAAG,GAAG,MAAM;GAAE;GAChC,SAAS,OAAO,WAAW,CAAC;GAC5B,QAAQ,OAAO;GACf,GAAG,KAAK,SAAS,OAAO,OAAO;EAChC,CAAC;CACF;CAAG,QAAQ;EAAC;EAAS;EAAW;CAAQ;AAAE,CAAC;;AAG5C,IAAa,aAAa,aAAa;CAAE,MAAM;CAAQ,MAAM,SAAS,WAAW;EAC/E,MAAM,EAAE,OAAO,QAAQ,SAAS,OAAO,OAAO,WAAW;EAEzD,MAAM,WAAW,OAAO,WAAW,WAAW,SAAS,OAAO,WAAW,WAAW,SAAS,KAAA;EAC7F,MAAM,KAAK,UAAU,OAAO;EAC5B,MAAM,QAAQ;GAAC,GAAI,OAAO,WAAW,CAAC;GAAI,GAAI,OAAO,SAAS,CAAC;GAAI,GAAI,OAAO,WAAW,CAAC;GAAI,GAAI,OAAO,WAAW,CAAC;GAAI,GAAI,OAAO,QAAQ,CAAC;EAAE;EAC/I,MAAM,MAAM,KAAK;GAChB,IAAI,MAAM,MAAM;GAChB;GACA;GACA;GACA,GAAG,GAAG;GACN,GAAG,GAAG;GACN,MAAM,QAAQ,SAAS,OAAO,UAAU,KAAA,GAAW,CAAC;GACpD,MAAM;GACN;GACA,GAAG,KAAK,SAAS,OAAO,OAAO,KAAK;GACpC,GAAI,YAAY;IAAE,SAAS,SAAS;IAAI,MAAM;KAAE,GAAG,GAAG;KAAG,GAAG,GAAG;IAAE;IAAG,SAAS,SAAS;GAAO;EAC9F,CAAC;CACF;CAAG,QAAQ;EAAC;EAAY;EAAW;EAAS;EAAU;EAAW;EAAW;CAAM;AAAE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const exchangeEffect: import("../effects").
|
|
1
|
+
export declare const exchangeEffect: import("../effects").EffectType<"exchange">;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { at } from "../../defs.js";
|
|
2
|
+
import { defineEffect } from "../effects.js";
|
|
3
|
+
import { exchange } from "../../trade.js";
|
|
4
|
+
//#region src/abilities/effects/trade.ts
|
|
5
|
+
/**
|
|
6
|
+
* A market's: the caster's owner trades one resource for another at a rate (`EffectTypes.exchange`, `exchange` in
|
|
7
|
+
* `trade.ts`)
|
|
8
|
+
*/
|
|
9
|
+
var exchangeEffect = defineEffect({
|
|
10
|
+
type: "exchange",
|
|
11
|
+
run: (context, effect) => {
|
|
12
|
+
const { world, caster, level } = context;
|
|
13
|
+
exchange(world, caster.owner, effect.sell, effect.buy, at(effect.amount, level), effect.rate);
|
|
14
|
+
},
|
|
15
|
+
fields: [
|
|
16
|
+
"sell",
|
|
17
|
+
"buy",
|
|
18
|
+
"amount",
|
|
19
|
+
"rate"
|
|
20
|
+
]
|
|
21
|
+
});
|
|
22
|
+
//#endregion
|
|
23
|
+
export { exchangeEffect };
|
|
24
|
+
|
|
25
|
+
//# sourceMappingURL=trade.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"trade.js","names":[],"sources":["../../../src/abilities/effects/trade.ts"],"sourcesContent":["/**\n * A market's: the caster's owner trades one resource for another at a rate (`EffectTypes.exchange`, `exchange` in\n * `trade.ts`)\n */\nimport { at } from '#engine/defs'\nimport { exchange } from '#engine/trade'\nimport { defineEffect } from '../effects'\n\nexport const exchangeEffect = defineEffect({ type: 'exchange', run: (context, effect) => {\n\t\tconst { world, caster, level } = context\n\t\texchange(world, caster.owner, effect.sell, effect.buy, at(effect.amount, level), effect.rate)\n\t}, fields: ['sell', 'buy', 'amount', 'rate'] })\n"],"mappings":";;;;;;;;AAQA,IAAa,iBAAiB,aAAa;CAAE,MAAM;CAAY,MAAM,SAAS,WAAW;EACvF,MAAM,EAAE,OAAO,QAAQ,UAAU;EACjC,SAAS,OAAO,OAAO,OAAO,OAAO,MAAM,OAAO,KAAK,GAAG,OAAO,QAAQ,KAAK,GAAG,OAAO,IAAI;CAC7F;CAAG,QAAQ;EAAC;EAAQ;EAAO;EAAU;CAAM;AAAE,CAAC"}
|
|
@@ -2,11 +2,18 @@ import { type AbilityDef, type EffectCommon, type EffectDef, type EffectFields,
|
|
|
2
2
|
import type { EditableField } from '#engine/gameData';
|
|
3
3
|
import { type Dash, type Entity } from '#engine/entity';
|
|
4
4
|
import { type Vec2 } from '#engine/math';
|
|
5
|
-
import type { World } from '#engine/world';
|
|
6
|
-
/**
|
|
5
|
+
import type { Missile, World, Zone } from '#engine/world';
|
|
6
|
+
/**
|
|
7
|
+
* What an effect is run with: the world, the caster, the ability and its level, the target and where it landed
|
|
8
|
+
*
|
|
9
|
+
* @beta
|
|
10
|
+
*/
|
|
7
11
|
export interface EffectContext {
|
|
12
|
+
/** The world the ability is cast in */
|
|
8
13
|
world: World;
|
|
14
|
+
/** The unit that cast the ability */
|
|
9
15
|
caster: Entity;
|
|
16
|
+
/** The definition of the ability being cast */
|
|
10
17
|
ability: AbilityDef;
|
|
11
18
|
/** Level the ability was cast at */
|
|
12
19
|
level: number;
|
|
@@ -14,6 +21,23 @@ export interface EffectContext {
|
|
|
14
21
|
target?: Entity;
|
|
15
22
|
/** Where the ability landed: the target, the chosen spot, or the caster */
|
|
16
23
|
point: Vec2;
|
|
24
|
+
/**
|
|
25
|
+
* What the effects go off from, when not the caster: a unit of its (a ball, a shadow, a soldier) or a place. A
|
|
26
|
+
* missile starts there and aims from there, an area of the effects never takes it in, and the strike the screens
|
|
27
|
+
* hear says it came from there; the caster stays who does it (whose the damage and the kills are, whose stats scale
|
|
28
|
+
* it). The caster when left out (`effectOrigin`)
|
|
29
|
+
*
|
|
30
|
+
* @beta
|
|
31
|
+
*/
|
|
32
|
+
origin?: Entity | Vec2;
|
|
33
|
+
/**
|
|
34
|
+
* The way the effects face, for those with a shape (`EffectCommon.shape`): radians, as a unit's `facing`. From where
|
|
35
|
+
* they go off from to where they landed when left out (`effectHeading`): a zone keeps the way it was cast, or the way
|
|
36
|
+
* the unit it follows faces
|
|
37
|
+
*
|
|
38
|
+
* @beta
|
|
39
|
+
*/
|
|
40
|
+
heading?: number;
|
|
17
41
|
/** How far what carried the effect here has come, for what a missile does */
|
|
18
42
|
distance?: number;
|
|
19
43
|
/**
|
|
@@ -25,6 +49,20 @@ export interface EffectContext {
|
|
|
25
49
|
stacks?: number;
|
|
26
50
|
/** The ability went off charged, see `charge` on the ability */
|
|
27
51
|
charged?: boolean;
|
|
52
|
+
/**
|
|
53
|
+
* For an ability held to charge and let go (`AbilityDef.hold`): how full it was, 0 let go at once to 1 full. Its
|
|
54
|
+
* amounts are grown by it (`HoldDef.scale`); a game's own amounts read it. Carried by its missiles
|
|
55
|
+
*
|
|
56
|
+
* @beta
|
|
57
|
+
*/
|
|
58
|
+
held?: number;
|
|
59
|
+
/**
|
|
60
|
+
* For the effects of a trigger set off by damage (`onDamaged`, `onAbilityHit`, an `onHit`): the damage that did,
|
|
61
|
+
* after armor and shields, for the formula `byDamage` and a game's own amounts
|
|
62
|
+
*
|
|
63
|
+
* @beta
|
|
64
|
+
*/
|
|
65
|
+
damage?: number;
|
|
28
66
|
/**
|
|
29
67
|
* For an effect that is kept up all the time (a passive asked every round): the seconds since it was last asked.
|
|
30
68
|
* Something that works per second multiplies by this, rather than counting on how often it is asked
|
|
@@ -40,11 +78,12 @@ export interface EffectContext {
|
|
|
40
78
|
export type EffectHandler = (context: EffectContext, effect: EffectDef) => void;
|
|
41
79
|
/**
|
|
42
80
|
* A kind of effect: its type and what it does (`defineEffect`). The engine's are the game's from the start; a game
|
|
43
|
-
* lists its own in `
|
|
81
|
+
* lists its own in `Rules.effects`, and one of a type the engine has takes its place
|
|
44
82
|
*
|
|
45
83
|
* @beta
|
|
46
84
|
*/
|
|
47
|
-
export interface
|
|
85
|
+
export interface EffectType<K extends keyof EffectTypes = keyof EffectTypes> {
|
|
86
|
+
/** The effect type this is the definition of: the `type` an effect of it carries in an ability's list */
|
|
48
87
|
readonly type: K;
|
|
49
88
|
/** Carries out an effect of the type, for a cast (or a passive asked, a missile's hit...) */
|
|
50
89
|
run(context: EffectContext, effect: EffectOf<K>): void;
|
|
@@ -62,36 +101,42 @@ export interface EffectKind<K extends keyof EffectTypes = keyof EffectTypes> {
|
|
|
62
101
|
*
|
|
63
102
|
* @beta
|
|
64
103
|
*/
|
|
65
|
-
export interface
|
|
104
|
+
export interface EffectTypeOptions {
|
|
105
|
+
/** The fields an effect of the type reads, each the name of an engine field (`EffectFields`) or a full `EditableField` */
|
|
66
106
|
fields?: readonly (keyof EffectFields | EditableField)[];
|
|
67
107
|
}
|
|
68
108
|
/**
|
|
69
|
-
* A kind of effect, its type and what it does together: `defineEffect('pull', (context, effect) => ...)`, listed in
|
|
70
|
-
* `
|
|
109
|
+
* A kind of effect, its type and what it does together: `defineEffect({ type: 'pull', run: (context, effect) => ... })`, listed in
|
|
110
|
+
* `Rules.effects`. Its fields are said by declaring the type in `EffectTypes`
|
|
71
111
|
* (`declare module '@v12-engine/engine' { interface EffectTypes { pull: { distance: number } } }`), so that a handler
|
|
72
112
|
* reads them typed, and an ability's effect of the type is checked for them
|
|
73
113
|
*
|
|
74
|
-
* @
|
|
114
|
+
* @public
|
|
75
115
|
*/
|
|
76
|
-
export declare function defineEffect<K extends keyof EffectTypes>(
|
|
116
|
+
export declare function defineEffect<K extends keyof EffectTypes>(def: {
|
|
117
|
+
type: K;
|
|
118
|
+
run: (context: EffectContext, effect: EffectOf<K>) => void;
|
|
119
|
+
} & EffectTypeOptions): EffectType<K>;
|
|
77
120
|
/**
|
|
78
|
-
*
|
|
121
|
+
* Whether an effect may reach a target, as the game says (the `beforeEffect` hook): what a game's own effect asks of
|
|
122
|
+
* each unit it does something to without `effectTargets` (which asks it of every one it gives). True where no handler is
|
|
123
|
+
* there. `missile`: the missile that reached it, for a missile's hit
|
|
79
124
|
*
|
|
80
125
|
* @beta
|
|
81
126
|
*/
|
|
82
|
-
export declare function
|
|
127
|
+
export declare function mayReach(context: EffectContext, effect: EffectDef, target: Entity, missile?: Missile): boolean;
|
|
83
128
|
/**
|
|
84
|
-
*
|
|
85
|
-
*
|
|
129
|
+
* Who an effect applies to: the caster (`on: 'caster'`), the target or the caster (no `radius`), or who is within its
|
|
130
|
+
* `radius` of where it landed, as `affects` (`fallback` when it says nothing), `layers`, `kinds`, `tags`, `ifBuff`, `only` and
|
|
131
|
+
* what keeps out of the ability's way (`avoids`) say, the unit it went off from aside (`EffectContext.origin`); and of
|
|
132
|
+
* those, who the game lets it reach (`beforeEffect`, `mayReach`). A handler of a game's own effect calls it as the
|
|
133
|
+
* engine's do: who it gives is told to `effectLanded` once the handler is done
|
|
134
|
+
*
|
|
135
|
+
* @beta
|
|
86
136
|
*/
|
|
87
|
-
export declare function
|
|
137
|
+
export declare function effectTargets(context: EffectContext, effect: EffectDef, fallback: 'enemies' | 'allies'): Entity[];
|
|
88
138
|
/** Whether an ability of the caster is charged: its `charge` buff is on it with as many stacks as it can have */
|
|
89
139
|
export declare function isCharged(world: World, caster: Entity, ability: AbilityDef): boolean;
|
|
90
|
-
/**
|
|
91
|
-
* What the passives of the caster do whenever it casts an ability: for a hero, one of the abilities it learns.
|
|
92
|
-
* Called once the ability went off, and not for one that went off charged: what spends a charge does not count to the next
|
|
93
|
-
*/
|
|
94
|
-
export declare function onCast(world: World, caster: Entity, cast: AbilityDef): void;
|
|
95
140
|
/**
|
|
96
141
|
* Takes someone off the ground for a leap or a throw. Up there it is nobody's obstacle: it pushes no one
|
|
97
142
|
* on its way over them, and goes straight over what cannot be walked
|
|
@@ -104,10 +149,39 @@ export declare function onCast(world: World, caster: Entity, cast: AbilityDef):
|
|
|
104
149
|
*/
|
|
105
150
|
export declare function startDash(world: World, entity: Entity, dash: Omit<Dash, 'from'>): void;
|
|
106
151
|
/**
|
|
107
|
-
*
|
|
108
|
-
*
|
|
152
|
+
* Takes a missile of an ability out of the world before it is done: blocked by a wall of wind, caught, swallowed. It
|
|
153
|
+
* hits nothing more, and every screen is told (`missileRemoved`). With `end`, what happens where it ends
|
|
154
|
+
* (`EffectFields.onEnd`) happens where it is, as if it had come to the end of its way. False for one that is not in the
|
|
155
|
+
* world (`world.missiles`) any more
|
|
156
|
+
*
|
|
157
|
+
* @beta
|
|
158
|
+
*/
|
|
159
|
+
export declare function removeMissile(world: World, missile: Missile, options?: {
|
|
160
|
+
end?: boolean;
|
|
161
|
+
}): boolean;
|
|
162
|
+
/**
|
|
163
|
+
* Ends a zone of an ability (`world.zones`) before its time: what happens at its end (`onEnd`) happens now, unless
|
|
164
|
+
* `onEnd` is false (a zone called off, not finished). False for one that is not in the world any more
|
|
165
|
+
*
|
|
166
|
+
* @beta
|
|
167
|
+
*/
|
|
168
|
+
export declare function endZone(world: World, zone: Zone, options?: {
|
|
169
|
+
onEnd?: boolean;
|
|
170
|
+
}): boolean;
|
|
171
|
+
/**
|
|
172
|
+
* Splits a missile where it is now (`EffectFields.split`), as it would once done: what a game's own recast does (Vel'Koz's
|
|
173
|
+
* Plasma Fission). It is gone, its `onEnd` not happening; false for one not in the world, or with no caster or ability left
|
|
174
|
+
*
|
|
175
|
+
* @beta
|
|
176
|
+
*/
|
|
177
|
+
export declare function splitMissile(world: World, missile: Missile): boolean;
|
|
178
|
+
/**
|
|
179
|
+
* Turns a missile that is steered (`EffectFields.steer`) towards a point, as its owner's `steer` command does: it turns
|
|
180
|
+
* that way as it flies, as fast as its `rate` lets it. False for one that is not steered, or not in the world
|
|
181
|
+
*
|
|
182
|
+
* @beta
|
|
109
183
|
*/
|
|
110
|
-
export declare function
|
|
184
|
+
export declare function steerMissile(world: World, missile: Missile, point: Vec2): boolean;
|
|
111
185
|
/** Moves the missiles of abilities along, and lets them do what they do to what they pass through and where they come down */
|
|
112
186
|
export declare function updateMissiles(world: World, dt: number): void;
|
|
113
187
|
/** What abilities left behind to happen later, and the ground they go on working on */
|
|
@@ -119,4 +193,4 @@ export declare const toldMissileHit: import("..").ReplicatedEvent;
|
|
|
119
193
|
/** Mana given or taken: its side's alone */
|
|
120
194
|
export declare const toldMana: import("..").ReplicatedEvent;
|
|
121
195
|
/** The missiles of abilities in flight the player is told of: their side's, and those where they see (`Snapshot.missiles`); none to a computer */
|
|
122
|
-
export declare const missilesPart: import("..").
|
|
196
|
+
export declare const missilesPart: import("..").SnapshotField<keyof import("..").Snapshot>;
|