@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 { type Entity, type EntityId, type Order } from '#engine/entity';
|
|
2
|
+
import type { Vec2 } from '#engine/math';
|
|
3
|
+
import type { World } from '#engine/world';
|
|
4
|
+
/**
|
|
5
|
+
* What an order that waits for room at its target keeps (`holdOff`): `attack`'s, and a game's own
|
|
6
|
+
*
|
|
7
|
+
* @beta
|
|
8
|
+
*/
|
|
9
|
+
export interface WaitState {
|
|
10
|
+
/** Waiting by its target for room there, out of the way of those fighting it */
|
|
11
|
+
waiting?: boolean;
|
|
12
|
+
/** What it hits while it waits, 0 for nothing: the target it was told to attack is still its order's */
|
|
13
|
+
meanwhile?: EntityId;
|
|
14
|
+
/** Where it goes in to by a building, once a place there is free */
|
|
15
|
+
spot?: Vec2;
|
|
16
|
+
/** The time it gives itself to get there, from the world's start (`World.time`): past it, it waits again */
|
|
17
|
+
until?: number;
|
|
18
|
+
/** Whether it has looked, once, for anchored allies between it and its place at the target */
|
|
19
|
+
looked?: boolean;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Has the attacker let go of the target and wait for room by it (`queuePoint`): no spot held there, no swing, walking
|
|
23
|
+
* out of the way of those fighting it to stand. What `holdOff` does when there is no room or no way; a game's own
|
|
24
|
+
* order may call it as it likes
|
|
25
|
+
*
|
|
26
|
+
* @beta
|
|
27
|
+
*/
|
|
28
|
+
export declare function waitBy(world: World, entity: Entity, order: Order<WaitState>, target: Entity): void;
|
|
29
|
+
/**
|
|
30
|
+
* One tick of an attacker that may have to wait for room at the target it was told to fight, called before `engage`.
|
|
31
|
+
* Closing in on a target with no room left for one like it (`isCrowded`), or held up on the way past the game's
|
|
32
|
+
* patience (`isBlocked`), it waits (`waitBy`): just behind those fighting it, on its own side, making way for others,
|
|
33
|
+
* hitting what else comes into its reach without letting go of its target. Every fourth tick it asks for a free place
|
|
34
|
+
* by the target (`freeSpot`) and, given one, goes in again. True while it holds off: the caller does not engage this
|
|
35
|
+
* tick; false when it is to fight as ever
|
|
36
|
+
*
|
|
37
|
+
* @beta
|
|
38
|
+
*/
|
|
39
|
+
export declare function holdOff(world: World, entity: Entity, order: Order<WaitState>, target: Entity, dt: number): boolean;
|
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
import { atan2, hypot } from "../exactMath.js";
|
|
2
|
+
import { edgeDistance, fighting, moving } from "../entity.js";
|
|
3
|
+
import { rangeAgainst } from "../attacks.js";
|
|
4
|
+
import { STRUCTURE_REACH, anchoredInWay, engageWith, freeSpot, isBlocked, isCrowded, queuePoint, release, ringSpot, takeSpot } from "../engagement.js";
|
|
5
|
+
import { halt, moveTo, setAnchored } from "../systems/movement.js";
|
|
6
|
+
import { acquireInRange, cancelSwing, engage } from "../systems/combat.js";
|
|
7
|
+
//#region src/orders/waiting.ts
|
|
8
|
+
/** How often, in ticks, a waiting attacker looks for a place by its target and for something in reach */
|
|
9
|
+
var LOOK_EVERY = 4;
|
|
10
|
+
/** Whether the attacker is still on its way to the target: not in reach of it, nor swinging at it */
|
|
11
|
+
function closingIn(world, entity, target) {
|
|
12
|
+
const combat = entity.get(fighting);
|
|
13
|
+
if (combat && combat.swing > 0 && combat.swingTarget === target.id) return false;
|
|
14
|
+
return edgeDistance(entity, target) > rangeAgainst(world, entity, target) + (target.isStructure ? STRUCTURE_REACH : 0);
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Has the attacker let go of the target and wait for room by it (`queuePoint`): no spot held there, no swing, walking
|
|
18
|
+
* out of the way of those fighting it to stand. What `holdOff` does when there is no room or no way; a game's own
|
|
19
|
+
* order may call it as it likes
|
|
20
|
+
*
|
|
21
|
+
* @beta
|
|
22
|
+
*/
|
|
23
|
+
function waitBy(world, entity, order, target) {
|
|
24
|
+
const { state } = order;
|
|
25
|
+
state.waiting = true;
|
|
26
|
+
state.spot = void 0;
|
|
27
|
+
state.until = void 0;
|
|
28
|
+
state.meanwhile = 0;
|
|
29
|
+
cancelSwing(world, entity);
|
|
30
|
+
release(entity, world);
|
|
31
|
+
if (!entity.get(moving)) return;
|
|
32
|
+
setAnchored(world, entity, false);
|
|
33
|
+
const point = roundPoint(world, entity, target) ?? queuePoint(world, entity, target);
|
|
34
|
+
if (hypot(point.x - entity.pos.x, point.z - entity.pos.z) > .5) moveTo(world, entity, point);
|
|
35
|
+
else halt(world, entity);
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Goes in to the free place by the target: to its spot around a unit, by `engage`; to the place by a building, walked
|
|
39
|
+
* to. True while it walks there
|
|
40
|
+
*/
|
|
41
|
+
function goIn(world, entity, order, target, spot) {
|
|
42
|
+
const { state } = order;
|
|
43
|
+
state.waiting = false;
|
|
44
|
+
if (state.meanwhile) {
|
|
45
|
+
cancelSwing(world, entity);
|
|
46
|
+
state.meanwhile = 0;
|
|
47
|
+
}
|
|
48
|
+
release(entity, world);
|
|
49
|
+
engageWith(world, entity, target);
|
|
50
|
+
if (entity.flying) return false;
|
|
51
|
+
if (target.def.footprint && closingIn(world, entity, target)) {
|
|
52
|
+
state.spot = {
|
|
53
|
+
x: spot.x,
|
|
54
|
+
z: spot.z
|
|
55
|
+
};
|
|
56
|
+
const speed = Math.max(entity.get(moving)?.speed ?? 0, .5);
|
|
57
|
+
const away = hypot(spot.x - entity.pos.x, spot.z - entity.pos.z);
|
|
58
|
+
state.until = world.time + away * 2 / speed + world.settings.combat.giveUpChase(world, entity, target);
|
|
59
|
+
moveTo(world, entity, state.spot);
|
|
60
|
+
return true;
|
|
61
|
+
}
|
|
62
|
+
takeSpot(world, entity, target, atan2(spot.x - target.pos.x, spot.z - target.pos.z) + 0);
|
|
63
|
+
return false;
|
|
64
|
+
}
|
|
65
|
+
/** Hits what else is in its reach while it waits, as long as it can: what has room for it, its order's target aside */
|
|
66
|
+
function hitMeanwhile(world, entity, order, target, dt) {
|
|
67
|
+
const { state } = order;
|
|
68
|
+
const other = state.meanwhile ? world.get(state.meanwhile) : void 0;
|
|
69
|
+
if (other) {
|
|
70
|
+
if (engage(world, entity, other, dt, false) === "attacking") return;
|
|
71
|
+
state.meanwhile = 0;
|
|
72
|
+
setAnchored(world, entity, false);
|
|
73
|
+
}
|
|
74
|
+
if ((world.tick + entity.id) % LOOK_EVERY !== 0 || !entity.def.attacks?.length) return;
|
|
75
|
+
const found = acquireInRange(world, entity);
|
|
76
|
+
if (!found || found === target || isCrowded(world, found, entity)) return;
|
|
77
|
+
state.meanwhile = found.id;
|
|
78
|
+
engageWith(world, entity, found);
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* One tick of an attacker that may have to wait for room at the target it was told to fight, called before `engage`.
|
|
82
|
+
* Closing in on a target with no room left for one like it (`isCrowded`), or held up on the way past the game's
|
|
83
|
+
* patience (`isBlocked`), it waits (`waitBy`): just behind those fighting it, on its own side, making way for others,
|
|
84
|
+
* hitting what else comes into its reach without letting go of its target. Every fourth tick it asks for a free place
|
|
85
|
+
* by the target (`freeSpot`) and, given one, goes in again. True while it holds off: the caller does not engage this
|
|
86
|
+
* tick; false when it is to fight as ever
|
|
87
|
+
*
|
|
88
|
+
* @beta
|
|
89
|
+
*/
|
|
90
|
+
function holdOff(world, entity, order, target, dt) {
|
|
91
|
+
const m = entity.get(moving);
|
|
92
|
+
if (!m) return false;
|
|
93
|
+
const { state } = order;
|
|
94
|
+
if (state.spot) {
|
|
95
|
+
if (m.status !== "moving" || !closingIn(world, entity, target)) {
|
|
96
|
+
state.spot = void 0;
|
|
97
|
+
state.until = void 0;
|
|
98
|
+
return false;
|
|
99
|
+
}
|
|
100
|
+
if (world.time > (state.until ?? 0)) waitBy(world, entity, order, target);
|
|
101
|
+
return true;
|
|
102
|
+
}
|
|
103
|
+
if (!state.waiting) {
|
|
104
|
+
if (!closingIn(world, entity, target)) return false;
|
|
105
|
+
if (!isCrowded(world, target, entity) && !isBlocked(world, entity, target)) {
|
|
106
|
+
if (state.looked || (world.tick + entity.id) % LOOK_EVERY !== 0) return false;
|
|
107
|
+
state.looked = true;
|
|
108
|
+
if (!anchoredInWay(world, entity, target)) return false;
|
|
109
|
+
}
|
|
110
|
+
waitBy(world, entity, order, target);
|
|
111
|
+
return true;
|
|
112
|
+
}
|
|
113
|
+
if ((world.tick + entity.id) % LOOK_EVERY === 0) {
|
|
114
|
+
const spot = closingIn(world, entity, target) ? freeSpot(world, entity, target) : isCrowded(world, target, entity) ? void 0 : entity.pos;
|
|
115
|
+
if (spot) return goIn(world, entity, order, target, spot);
|
|
116
|
+
if (!state.meanwhile && (m.status !== "moving" || m.goalEntity === 0 && hypot(m.goal.x - entity.pos.x, m.goal.z - entity.pos.z) < 1)) goRound(world, entity, target);
|
|
117
|
+
}
|
|
118
|
+
hitMeanwhile(world, entity, order, target, dt);
|
|
119
|
+
return true;
|
|
120
|
+
}
|
|
121
|
+
/** The most a waiting attacker goes round its target at a time, as an angle: a waypoint every 45 degrees, outside those fighting it */
|
|
122
|
+
var ROUND_STEP = Math.PI / 4;
|
|
123
|
+
/**
|
|
124
|
+
* The next waypoint for a waiting attacker, round a unit towards the nearest free place by angle that it can go in to
|
|
125
|
+
* from outside those fighting it (`ringSpot`): at queue distance, at most 45 degrees round from where it is. After a
|
|
126
|
+
* target that walked off, where it waits now. None when there is no place, or it is at the angle of it already (it goes
|
|
127
|
+
* in from there once its way is clear), or for a building (the way round is the navigation's)
|
|
128
|
+
*/
|
|
129
|
+
function roundPoint(world, entity, target) {
|
|
130
|
+
if (target.isStructure) return void 0;
|
|
131
|
+
if (hypot(entity.pos.x - target.pos.x, entity.pos.z - target.pos.z) > world.settings.combat.queueDistance(world, entity, target) + 2) return queuePoint(world, entity, target);
|
|
132
|
+
const spot = ringSpot(world, entity, target);
|
|
133
|
+
if (!spot) return void 0;
|
|
134
|
+
const from = atan2(entity.pos.x - target.pos.x, entity.pos.z - target.pos.z);
|
|
135
|
+
let turn = atan2(spot.x - target.pos.x, spot.z - target.pos.z) - from;
|
|
136
|
+
if (turn > Math.PI) turn -= Math.PI * 2;
|
|
137
|
+
else if (turn < -Math.PI) turn += Math.PI * 2;
|
|
138
|
+
if (Math.abs(turn) < .05) return void 0;
|
|
139
|
+
return queuePoint(world, entity, target, from + Math.min(Math.max(turn, -ROUND_STEP), ROUND_STEP));
|
|
140
|
+
}
|
|
141
|
+
/** Has a waiting attacker that stands still, or is all but at its waypoint, walk on round the ring (`roundPoint`) */
|
|
142
|
+
function goRound(world, entity, target) {
|
|
143
|
+
const point = roundPoint(world, entity, target);
|
|
144
|
+
if (point && hypot(point.x - entity.pos.x, point.z - entity.pos.z) > .5) moveTo(world, entity, point);
|
|
145
|
+
}
|
|
146
|
+
//#endregion
|
|
147
|
+
export { holdOff, waitBy };
|
|
148
|
+
|
|
149
|
+
//# sourceMappingURL=waiting.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"waiting.js","names":[],"sources":["../../src/orders/waiting.ts"],"sourcesContent":["/*\n * Waiting for room at a fight: an attacker that closes in on a target with no room left for it, or no way to it through\n * its own, does not push into the backs of those fighting it. It stands just behind them on its own side, out of the\n * way (it makes way for others: `OrderBehavior.waiting`), hits what else comes into its reach, and goes in again as a\n * place by the target frees up. `attack` waits so; a game's own order that fights can too\n */\nimport { edgeDistance, type Entity, type EntityId, fighting, moving, type Order } from '#engine/entity'\nimport type { Vec2 } from '#engine/math'\nimport type { World } from '#engine/world'\nimport { acquireInRange, cancelSwing, engage, STRUCTURE_REACH } from '#engine/systems/combat'\nimport { halt, moveTo, setAnchored } from '#engine/systems/movement'\nimport { anchoredInWay, engageWith, freeSpot, isBlocked, isCrowded, queuePoint, release, ringSpot, takeSpot } from '#engine/engagement'\nimport { rangeAgainst } from '#engine/attacks'\nimport { atan2, hypot } from '#engine/exactMath'\n\n/**\n * What an order that waits for room at its target keeps (`holdOff`): `attack`'s, and a game's own\n *\n * @beta\n */\nexport interface WaitState {\n\t/** Waiting by its target for room there, out of the way of those fighting it */\n\twaiting?: boolean\n\t/** What it hits while it waits, 0 for nothing: the target it was told to attack is still its order's */\n\tmeanwhile?: EntityId\n\t/** Where it goes in to by a building, once a place there is free */\n\tspot?: Vec2\n\t/** The time it gives itself to get there, from the world's start (`World.time`): past it, it waits again */\n\tuntil?: number\n\t/** Whether it has looked, once, for anchored allies between it and its place at the target */\n\tlooked?: boolean\n}\n\n/** How often, in ticks, a waiting attacker looks for a place by its target and for something in reach */\nconst LOOK_EVERY = 4\n\n/** Whether the attacker is still on its way to the target: not in reach of it, nor swinging at it */\nfunction closingIn(world: World, entity: Entity, target: Entity): boolean {\n\tconst combat = entity.get(fighting)\n\tif (combat && combat.swing > 0 && combat.swingTarget === target.id) return false\n\treturn edgeDistance(entity, target) > rangeAgainst(world, entity, target) + (target.isStructure ? STRUCTURE_REACH : 0)\n}\n\n/**\n * Has the attacker let go of the target and wait for room by it (`queuePoint`): no spot held there, no swing, walking\n * out of the way of those fighting it to stand. What `holdOff` does when there is no room or no way; a game's own\n * order may call it as it likes\n *\n * @beta\n */\nexport function waitBy(world: World, entity: Entity, order: Order<WaitState>, target: Entity): void {\n\tconst { state } = order\n\tstate.waiting = true\n\tstate.spot = undefined\n\tstate.until = undefined\n\tstate.meanwhile = 0\n\tcancelSwing(world, entity)\n\trelease(entity, world)\n\tconst m = entity.get(moving)\n\tif (!m) return\n\tsetAnchored(world, entity, false)\n\t// round the ring towards a place it can go in to, or just behind those fighting on its own side\n\tconst point = roundPoint(world, entity, target) ?? queuePoint(world, entity, target)\n\tif (hypot(point.x - entity.pos.x, point.z - entity.pos.z) > 0.5) moveTo(world, entity, point)\n\telse halt(world, entity)\n}\n\n/**\n * Goes in to the free place by the target: to its spot around a unit, by `engage`; to the place by a building, walked\n * to. True while it walks there\n */\nfunction goIn(world: World, entity: Entity, order: Order<WaitState>, target: Entity, spot: Vec2): boolean {\n\tconst { state } = order\n\tstate.waiting = false\n\tif (state.meanwhile) {\n\t\tcancelSwing(world, entity)\n\t\tstate.meanwhile = 0\n\t}\n\trelease(entity, world)\n\tengageWith(world, entity, target)\n\tif (entity.flying) return false\n\tif (target.def.footprint && closingIn(world, entity, target)) {\n\t\tstate.spot = { x: spot.x, z: spot.z }\n\t\t// as long as the walk would take at half its speed, and the game's patience with a chase that stalls\n\t\tconst speed = Math.max(entity.get(moving)?.speed ?? 0, 0.5)\n\t\tconst away = hypot(spot.x - entity.pos.x, spot.z - entity.pos.z)\n\t\tstate.until = world.time + (away * 2) / speed + world.settings.combat.giveUpChase(world, entity, target)\n\t\tmoveTo(world, entity, state.spot)\n\t\treturn true\n\t}\n\t// its spot there is the free one it found ('+ 0': no -0, which a save writes as 0)\n\ttakeSpot(world, entity, target, atan2(spot.x - target.pos.x, spot.z - target.pos.z) + 0)\n\treturn false\n}\n\n/** Hits what else is in its reach while it waits, as long as it can: what has room for it, its order's target aside */\nfunction hitMeanwhile(world: World, entity: Entity, order: Order<WaitState>, target: Entity, dt: number): void {\n\tconst { state } = order\n\tconst other = state.meanwhile ? world.get(state.meanwhile) : undefined\n\tif (other) {\n\t\tif (engage(world, entity, other, dt, false) === 'attacking') return\n\t\t// out of reach, or gone: let be, and free to be asked aside again\n\t\tstate.meanwhile = 0\n\t\tsetAnchored(world, entity, false)\n\t}\n\tif ((world.tick + entity.id) % LOOK_EVERY !== 0 || !entity.def.attacks?.length) return\n\tconst found = acquireInRange(world, entity)\n\tif (!found || found === target || isCrowded(world, found, entity)) return\n\tstate.meanwhile = found.id\n\t// claimed at once, so that others picking in the same tick count it\n\tengageWith(world, entity, found)\n}\n\n/**\n * One tick of an attacker that may have to wait for room at the target it was told to fight, called before `engage`.\n * Closing in on a target with no room left for one like it (`isCrowded`), or held up on the way past the game's\n * patience (`isBlocked`), it waits (`waitBy`): just behind those fighting it, on its own side, making way for others,\n * hitting what else comes into its reach without letting go of its target. Every fourth tick it asks for a free place\n * by the target (`freeSpot`) and, given one, goes in again. True while it holds off: the caller does not engage this\n * tick; false when it is to fight as ever\n *\n * @beta\n */\nexport function holdOff(world: World, entity: Entity, order: Order<WaitState>, target: Entity, dt: number): boolean {\n\tconst m = entity.get(moving)\n\t// what does not walk does not wait: it fights from where it is or not at all\n\tif (!m) return false\n\tconst { state } = order\n\tif (state.spot) {\n\t\t// on its way in to a free place by a building: there, in reach, or stopped, it fights as ever\n\t\tif (m.status !== 'moving' || !closingIn(world, entity, target)) {\n\t\t\tstate.spot = undefined\n\t\t\tstate.until = undefined\n\t\t\treturn false\n\t\t}\n\t\t// held up on the way, past the time it gave itself: back to wait\n\t\tif (world.time > (state.until ?? 0)) waitBy(world, entity, order, target)\n\t\treturn true\n\t}\n\tif (!state.waiting) {\n\t\tif (!closingIn(world, entity, target)) return false\n\t\tif (!isCrowded(world, target, entity) && !isBlocked(world, entity, target)) {\n\t\t\t// its side of the target held by those anchored in the fight: once, it trades its place for one it can get to\n\t\t\tif (state.looked || (world.tick + entity.id) % LOOK_EVERY !== 0) return false\n\t\t\tstate.looked = true\n\t\t\tif (!anchoredInWay(world, entity, target)) return false\n\t\t}\n\t\twaitBy(world, entity, order, target)\n\t\treturn true\n\t}\n\tif ((world.tick + entity.id) % LOOK_EVERY === 0) {\n\t\t// in reach where it stands, with room for it: in it goes from there\n\t\tconst spot = closingIn(world, entity, target) ? freeSpot(world, entity, target) : isCrowded(world, target, entity) ? undefined : entity.pos\n\t\tif (spot) return goIn(world, entity, order, target, spot)\n\t\t// standing, or all but at the waypoint it walks to: on to the next\n\t\tif (!state.meanwhile && (m.status !== 'moving' || (m.goalEntity === 0 && hypot(m.goal.x - entity.pos.x, m.goal.z - entity.pos.z) < 1)))\n\t\t\tgoRound(world, entity, target)\n\t}\n\thitMeanwhile(world, entity, order, target, dt)\n\treturn true\n}\n\n/** The most a waiting attacker goes round its target at a time, as an angle: a waypoint every 45 degrees, outside those fighting it */\nconst ROUND_STEP = Math.PI / 4\n\n/**\n * The next waypoint for a waiting attacker, round a unit towards the nearest free place by angle that it can go in to\n * from outside those fighting it (`ringSpot`): at queue distance, at most 45 degrees round from where it is. After a\n * target that walked off, where it waits now. None when there is no place, or it is at the angle of it already (it goes\n * in from there once its way is clear), or for a building (the way round is the navigation's)\n */\nfunction roundPoint(world: World, entity: Entity, target: Entity): Vec2 | undefined {\n\tif (target.isStructure) return undefined\n\tconst away = hypot(entity.pos.x - target.pos.x, entity.pos.z - target.pos.z)\n\tif (away > world.settings.combat.queueDistance(world, entity, target) + 2) return queuePoint(world, entity, target)\n\tconst spot = ringSpot(world, entity, target)\n\tif (!spot) return undefined\n\tconst from = atan2(entity.pos.x - target.pos.x, entity.pos.z - target.pos.z)\n\tlet turn = atan2(spot.x - target.pos.x, spot.z - target.pos.z) - from\n\tif (turn > Math.PI) turn -= Math.PI * 2\n\telse if (turn < -Math.PI) turn += Math.PI * 2\n\tif (Math.abs(turn) < 0.05) return undefined\n\treturn queuePoint(world, entity, target, from + Math.min(Math.max(turn, -ROUND_STEP), ROUND_STEP))\n}\n\n/** Has a waiting attacker that stands still, or is all but at its waypoint, walk on round the ring (`roundPoint`) */\nfunction goRound(world: World, entity: Entity, target: Entity): void {\n\tconst point = roundPoint(world, entity, target)\n\tif (point && hypot(point.x - entity.pos.x, point.z - entity.pos.z) > 0.5) moveTo(world, entity, point)\n}\n"],"mappings":"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"}
|