@v12-engine/engine 0.1.0 → 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
package/dist/attacks.d.ts
CHANGED
|
@@ -18,7 +18,7 @@ export declare function reaches(targets: AttackDef['targets'], target: {
|
|
|
18
18
|
export declare function attackStat(stats: Readonly<Stats>, attack: AttackDef | undefined, which: keyof AttackStats): number;
|
|
19
19
|
/**
|
|
20
20
|
* The first of an attacker's attacks that reaches the target where it is (its `targets`), by place, or -1 for none:
|
|
21
|
-
* the engine's `
|
|
21
|
+
* the engine's `RuleSettings.combat.pickAttack`
|
|
22
22
|
*
|
|
23
23
|
* @beta
|
|
24
24
|
*/
|
|
@@ -32,14 +32,14 @@ export declare function defaultPickAttack(world: World, attacker: Entity, target
|
|
|
32
32
|
export declare function tooNear(attacker: Entity, target: Entity, weapon: number): boolean;
|
|
33
33
|
/**
|
|
34
34
|
* Which of an attacker's attacks it uses against a target, by place in `UnitTypeDef.attacks`, as the game's rules pick
|
|
35
|
-
* it (`
|
|
35
|
+
* it (`RuleSettings.combat.pickAttack`): -1 for none, its attacks reach not where the target is
|
|
36
36
|
*
|
|
37
37
|
* @beta
|
|
38
38
|
*/
|
|
39
39
|
export declare function pickAttack(world: World, attacker: Entity, target: Entity): number;
|
|
40
40
|
/**
|
|
41
41
|
* The farthest any attack of a type looks for enemies by itself (`AttackDef.acquisitionRange`): the engine's
|
|
42
|
-
* `
|
|
42
|
+
* `RuleSettings.combat.acquisitionRange`. 0 for what does not attack
|
|
43
43
|
*
|
|
44
44
|
* @beta
|
|
45
45
|
*/
|
package/dist/attacks.js
ADDED
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
import { statsOf } from "./stats.js";
|
|
2
|
+
import { edgeDistance } from "./entity.js";
|
|
3
|
+
import { layerOf } from "./abilities/buffs.js";
|
|
4
|
+
//#region src/attacks.ts
|
|
5
|
+
var KINDS = [
|
|
6
|
+
"unit",
|
|
7
|
+
"building",
|
|
8
|
+
"resource"
|
|
9
|
+
];
|
|
10
|
+
/**
|
|
11
|
+
* Whether an attack that is for these targets is for this one
|
|
12
|
+
*
|
|
13
|
+
* @beta
|
|
14
|
+
*/
|
|
15
|
+
function reaches(targets, target, layer) {
|
|
16
|
+
const flying = layer ? layer === "air" : target.def.flying === true;
|
|
17
|
+
if (!targets) return !flying;
|
|
18
|
+
if (flying ? !targets.includes("air") : targets.includes("air") && !targets.includes("ground")) return false;
|
|
19
|
+
return targets.includes(target.def.kind) || !targets.some((entry) => KINDS.includes(entry));
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* The stats an attack reads when it names none of its own (`AttackDef.stats`)
|
|
23
|
+
*
|
|
24
|
+
* @internal
|
|
25
|
+
*/
|
|
26
|
+
var ATTACK_STATS = Object.freeze({
|
|
27
|
+
damage: "attackDamage",
|
|
28
|
+
speed: "attackSpeed",
|
|
29
|
+
range: "attackRange"
|
|
30
|
+
});
|
|
31
|
+
/**
|
|
32
|
+
* How hard, how fast or how far an attack hits, from the attacker's stats: the stat the attack names
|
|
33
|
+
* (`AttackDef.stats`), or the unit's own (`attackDamage`, `attackSpeed`, `attackRange`). The unit's own for no attack
|
|
34
|
+
*
|
|
35
|
+
* @beta
|
|
36
|
+
*/
|
|
37
|
+
function attackStat(stats, attack, which) {
|
|
38
|
+
return stats[attack?.stats?.[which] ?? ATTACK_STATS[which]] ?? 0;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* The first of an attacker's attacks that reaches the target where it is (its `targets`), by place, or -1 for none:
|
|
42
|
+
* the engine's `RuleSettings.combat.pickAttack`
|
|
43
|
+
*
|
|
44
|
+
* @beta
|
|
45
|
+
*/
|
|
46
|
+
function defaultPickAttack(world, attacker, target) {
|
|
47
|
+
const attacks = attacker.def.attacks;
|
|
48
|
+
if (!attacks) return -1;
|
|
49
|
+
const layer = target.flying ? layerOf(world, target) : "ground";
|
|
50
|
+
let reaching = -1;
|
|
51
|
+
let distance = -1;
|
|
52
|
+
for (let i = 0; i < attacks.length; i++) {
|
|
53
|
+
if (!reaches(attacks[i].targets, target, layer)) continue;
|
|
54
|
+
const near = attacks[i].minRange;
|
|
55
|
+
if (!near) return i;
|
|
56
|
+
if (distance < 0) distance = edgeDistance(attacker, target);
|
|
57
|
+
if (distance >= near) return i;
|
|
58
|
+
if (reaching < 0) reaching = i;
|
|
59
|
+
}
|
|
60
|
+
return reaching;
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Whether a target is too near for one of an attacker's attacks (`AttackDef.minRange`), by place in its attacks: within
|
|
64
|
+
* its dead zone, edge to edge
|
|
65
|
+
*
|
|
66
|
+
* @beta
|
|
67
|
+
*/
|
|
68
|
+
function tooNear(attacker, target, weapon) {
|
|
69
|
+
const near = attacker.def.attacks?.[weapon]?.minRange;
|
|
70
|
+
return !!near && edgeDistance(attacker, target) < near;
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Which of an attacker's attacks it uses against a target, by place in `UnitTypeDef.attacks`, as the game's rules pick
|
|
74
|
+
* it (`RuleSettings.combat.pickAttack`): -1 for none, its attacks reach not where the target is
|
|
75
|
+
*
|
|
76
|
+
* @beta
|
|
77
|
+
*/
|
|
78
|
+
function pickAttack(world, attacker, target) {
|
|
79
|
+
return attacker.def.attacks?.length ? world.settings.combat.pickAttack(world, attacker, target) : -1;
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* The farthest any attack of a type looks for enemies by itself (`AttackDef.acquisitionRange`): the engine's
|
|
83
|
+
* `RuleSettings.combat.acquisitionRange`. 0 for what does not attack
|
|
84
|
+
*
|
|
85
|
+
* @beta
|
|
86
|
+
*/
|
|
87
|
+
function farthestAcquisition(def) {
|
|
88
|
+
let most = 0;
|
|
89
|
+
for (const attack of def.attacks ?? []) if (attack.acquisitionRange > most) most = attack.acquisitionRange;
|
|
90
|
+
return most;
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* How far the farthest of a unit's attacks reaches, by its stats (its `attackRange`, or a stat an attack names): what
|
|
94
|
+
* it may hit anything from. 0 for what does not attack
|
|
95
|
+
*
|
|
96
|
+
* @beta
|
|
97
|
+
*/
|
|
98
|
+
function farthestReach(def, stats) {
|
|
99
|
+
const attacks = def.attacks;
|
|
100
|
+
if (!attacks?.length) return 0;
|
|
101
|
+
let most = attackStat(stats, attacks[0], "range");
|
|
102
|
+
for (let i = 1; i < attacks.length; i++) most = Math.max(most, attackStat(stats, attacks[i], "range"));
|
|
103
|
+
return most;
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* How far an attacker's attack reaches a target: the range of the one it uses against it (`pickAttack`), the first's
|
|
107
|
+
* when none does
|
|
108
|
+
*
|
|
109
|
+
* @beta
|
|
110
|
+
*/
|
|
111
|
+
function rangeAgainst(world, attacker, target) {
|
|
112
|
+
const attacks = attacker.def.attacks;
|
|
113
|
+
const attack = attacks && attacks.length > 1 ? attacks[Math.max(pickAttack(world, attacker, target), 0)] : attacks?.[0];
|
|
114
|
+
return attackStat(statsOf(world, attacker), attack, "range");
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* The first of a type's attacks that can be told to attack the ground (`AttackDef.ground`), by place, or -1 for none
|
|
118
|
+
*
|
|
119
|
+
* @beta
|
|
120
|
+
*/
|
|
121
|
+
function groundAttack(def) {
|
|
122
|
+
return def.attacks?.findIndex((attack) => attack.ground) ?? -1;
|
|
123
|
+
}
|
|
124
|
+
//#endregion
|
|
125
|
+
export { ATTACK_STATS, attackStat, defaultPickAttack, farthestAcquisition, farthestReach, groundAttack, pickAttack, rangeAgainst, reaches, tooNear };
|
|
126
|
+
|
|
127
|
+
//# sourceMappingURL=attacks.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"attacks.js","names":[],"sources":["../src/attacks.ts"],"sourcesContent":["import { layerOf } from '#engine/abilities/buffs'\nimport type { AttackDef, AttackStats, Layer, Stats, UnitTypeDef } from '#engine/defs'\nimport { edgeDistance, type Entity } from '#engine/entity'\nimport { statsOf } from '#engine/stats'\nimport type { World } from '#engine/world'\n\n/*\n * A unit's attacks (`UnitTypeDef.attacks`, the classic RTS two weapons): what each reaches, which one it uses against\n * a target, and its numbers by the stats it reads. Apart from the combat system, for what counts room and reach\n * (`engagement.ts`, the stances pack) to ask without loading it\n */\n\nconst KINDS = ['unit', 'building', 'resource']\n\n/**\n * Whether an attack that is for these targets is for this one\n *\n * @beta\n */\nexport function reaches(targets: AttackDef['targets'], target: { def: UnitTypeDef }, layer?: Layer): boolean {\n\tconst flying = layer ? layer === 'air' : target.def.flying === true\n\tif (!targets) return !flying\n\tif (flying ? !targets.includes('air') : targets.includes('air') && !targets.includes('ground')) return false\n\t// kinds only count when some are named\n\treturn targets.includes(target.def.kind) || !targets.some((entry) => KINDS.includes(entry))\n}\n\n/**\n * The stats an attack reads when it names none of its own (`AttackDef.stats`)\n *\n * @internal\n */\nexport const ATTACK_STATS: Readonly<Required<AttackStats>> = Object.freeze({ damage: 'attackDamage', speed: 'attackSpeed', range: 'attackRange' })\n\n/**\n * How hard, how fast or how far an attack hits, from the attacker's stats: the stat the attack names\n * (`AttackDef.stats`), or the unit's own (`attackDamage`, `attackSpeed`, `attackRange`). The unit's own for no attack\n *\n * @beta\n */\nexport function attackStat(stats: Readonly<Stats>, attack: AttackDef | undefined, which: keyof AttackStats): number {\n\treturn stats[attack?.stats?.[which] ?? ATTACK_STATS[which]] ?? 0\n}\n\n/**\n * The first of an attacker's attacks that reaches the target where it is (its `targets`), by place, or -1 for none:\n * the engine's `RuleSettings.combat.pickAttack`\n *\n * @beta\n */\nexport function defaultPickAttack(world: World, attacker: Entity, target: Entity): number {\n\tconst attacks = attacker.def.attacks\n\tif (!attacks) return -1\n\tconst layer = target.flying ? layerOf(world, target) : 'ground'\n\t// the first that reaches where it is and of which it is not too near (`AttackDef.minRange`); else the first that\n\t// reaches where it is, too near or not (the unit steps back to use it)\n\tlet reaching = -1\n\tlet distance = -1\n\tfor (let i = 0; i < attacks.length; i++) {\n\t\tif (!reaches(attacks[i].targets, target, layer)) continue\n\t\tconst near = attacks[i].minRange\n\t\tif (!near) return i\n\t\tif (distance < 0) distance = edgeDistance(attacker, target)\n\t\tif (distance >= near) return i\n\t\tif (reaching < 0) reaching = i\n\t}\n\treturn reaching\n}\n\n/**\n * Whether a target is too near for one of an attacker's attacks (`AttackDef.minRange`), by place in its attacks: within\n * its dead zone, edge to edge\n *\n * @beta\n */\nexport function tooNear(attacker: Entity, target: Entity, weapon: number): boolean {\n\tconst near = attacker.def.attacks?.[weapon]?.minRange\n\treturn !!near && edgeDistance(attacker, target) < near\n}\n\n/**\n * Which of an attacker's attacks it uses against a target, by place in `UnitTypeDef.attacks`, as the game's rules pick\n * it (`RuleSettings.combat.pickAttack`): -1 for none, its attacks reach not where the target is\n *\n * @beta\n */\nexport function pickAttack(world: World, attacker: Entity, target: Entity): number {\n\treturn attacker.def.attacks?.length ? world.settings.combat.pickAttack(world, attacker, target) : -1\n}\n\n/**\n * The farthest any attack of a type looks for enemies by itself (`AttackDef.acquisitionRange`): the engine's\n * `RuleSettings.combat.acquisitionRange`. 0 for what does not attack\n *\n * @beta\n */\nexport function farthestAcquisition(def: UnitTypeDef): number {\n\tlet most = 0\n\tfor (const attack of def.attacks ?? []) if (attack.acquisitionRange > most) most = attack.acquisitionRange\n\treturn most\n}\n\n/**\n * How far the farthest of a unit's attacks reaches, by its stats (its `attackRange`, or a stat an attack names): what\n * it may hit anything from. 0 for what does not attack\n *\n * @beta\n */\nexport function farthestReach(def: UnitTypeDef, stats: Readonly<Stats>): number {\n\tconst attacks = def.attacks\n\tif (!attacks?.length) return 0\n\tlet most = attackStat(stats, attacks[0], 'range')\n\tfor (let i = 1; i < attacks.length; i++) most = Math.max(most, attackStat(stats, attacks[i], 'range'))\n\treturn most\n}\n\n/**\n * How far an attacker's attack reaches a target: the range of the one it uses against it (`pickAttack`), the first's\n * when none does\n *\n * @beta\n */\nexport function rangeAgainst(world: World, attacker: Entity, target: Entity): number {\n\tconst attacks = attacker.def.attacks\n\tconst attack = attacks && attacks.length > 1 ? attacks[Math.max(pickAttack(world, attacker, target), 0)] : attacks?.[0]\n\treturn attackStat(statsOf(world, attacker), attack, 'range')\n}\n\n/**\n * The first of a type's attacks that can be told to attack the ground (`AttackDef.ground`), by place, or -1 for none\n *\n * @beta\n */\nexport function groundAttack(def: UnitTypeDef): number {\n\treturn def.attacks?.findIndex((attack) => attack.ground) ?? -1\n}\n"],"mappings":";;;;AAYA,IAAM,QAAQ;CAAC;CAAQ;CAAY;AAAU;;;;;;AAO7C,SAAgB,QAAQ,SAA+B,QAA8B,OAAwB;CAC5G,MAAM,SAAS,QAAQ,UAAU,QAAQ,OAAO,IAAI,WAAW;CAC/D,IAAI,CAAC,SAAS,OAAO,CAAC;CACtB,IAAI,SAAS,CAAC,QAAQ,SAAS,KAAK,IAAI,QAAQ,SAAS,KAAK,KAAK,CAAC,QAAQ,SAAS,QAAQ,GAAG,OAAO;CAEvG,OAAO,QAAQ,SAAS,OAAO,IAAI,IAAI,KAAK,CAAC,QAAQ,MAAM,UAAU,MAAM,SAAS,KAAK,CAAC;AAC3F;;;;;;AAOA,IAAa,eAAgD,OAAO,OAAO;CAAE,QAAQ;CAAgB,OAAO;CAAe,OAAO;AAAc,CAAC;;;;;;;AAQjJ,SAAgB,WAAW,OAAwB,QAA+B,OAAkC;CACnH,OAAO,MAAM,QAAQ,QAAQ,UAAU,aAAa,WAAW;AAChE;;;;;;;AAQA,SAAgB,kBAAkB,OAAc,UAAkB,QAAwB;CACzF,MAAM,UAAU,SAAS,IAAI;CAC7B,IAAI,CAAC,SAAS,OAAO;CACrB,MAAM,QAAQ,OAAO,SAAS,QAAQ,OAAO,MAAM,IAAI;CAGvD,IAAI,WAAW;CACf,IAAI,WAAW;CACf,KAAK,IAAI,IAAI,GAAG,IAAI,QAAQ,QAAQ,KAAK;EACxC,IAAI,CAAC,QAAQ,QAAQ,EAAE,CAAC,SAAS,QAAQ,KAAK,GAAG;EACjD,MAAM,OAAO,QAAQ,EAAE,CAAC;EACxB,IAAI,CAAC,MAAM,OAAO;EAClB,IAAI,WAAW,GAAG,WAAW,aAAa,UAAU,MAAM;EAC1D,IAAI,YAAY,MAAM,OAAO;EAC7B,IAAI,WAAW,GAAG,WAAW;CAC9B;CACA,OAAO;AACR;;;;;;;AAQA,SAAgB,QAAQ,UAAkB,QAAgB,QAAyB;CAClF,MAAM,OAAO,SAAS,IAAI,UAAU,OAAO,EAAE;CAC7C,OAAO,CAAC,CAAC,QAAQ,aAAa,UAAU,MAAM,IAAI;AACnD;;;;;;;AAQA,SAAgB,WAAW,OAAc,UAAkB,QAAwB;CAClF,OAAO,SAAS,IAAI,SAAS,SAAS,MAAM,SAAS,OAAO,WAAW,OAAO,UAAU,MAAM,IAAI;AACnG;;;;;;;AAQA,SAAgB,oBAAoB,KAA0B;CAC7D,IAAI,OAAO;CACX,KAAK,MAAM,UAAU,IAAI,WAAW,CAAC,GAAG,IAAI,OAAO,mBAAmB,MAAM,OAAO,OAAO;CAC1F,OAAO;AACR;;;;;;;AAQA,SAAgB,cAAc,KAAkB,OAAgC;CAC/E,MAAM,UAAU,IAAI;CACpB,IAAI,CAAC,SAAS,QAAQ,OAAO;CAC7B,IAAI,OAAO,WAAW,OAAO,QAAQ,IAAI,OAAO;CAChD,KAAK,IAAI,IAAI,GAAG,IAAI,QAAQ,QAAQ,KAAK,OAAO,KAAK,IAAI,MAAM,WAAW,OAAO,QAAQ,IAAI,OAAO,CAAC;CACrG,OAAO;AACR;;;;;;;AAQA,SAAgB,aAAa,OAAc,UAAkB,QAAwB;CACpF,MAAM,UAAU,SAAS,IAAI;CAC7B,MAAM,SAAS,WAAW,QAAQ,SAAS,IAAI,QAAQ,KAAK,IAAI,WAAW,OAAO,UAAU,MAAM,GAAG,CAAC,KAAK,UAAU;CACrH,OAAO,WAAW,QAAQ,OAAO,QAAQ,GAAG,QAAQ,OAAO;AAC5D;;;;;;AAOA,SAAgB,aAAa,KAA0B;CACtD,OAAO,IAAI,SAAS,WAAW,WAAW,OAAO,MAAM,KAAK;AAC7D"}
|
|
@@ -0,0 +1,267 @@
|
|
|
1
|
+
import type { DamageType } from './defs';
|
|
2
|
+
import { type Entity, type EntityId } from './entity';
|
|
3
|
+
import { type Cancellable } from './hooks';
|
|
4
|
+
import type { GamePack } from './packs/pack';
|
|
5
|
+
import type { World } from './world';
|
|
6
|
+
/**
|
|
7
|
+
* The burning pack's id (`burningPack`), for `hasPack`
|
|
8
|
+
*
|
|
9
|
+
* @beta
|
|
10
|
+
*/
|
|
11
|
+
export declare const BURNING = "burning";
|
|
12
|
+
/**
|
|
13
|
+
* How a thing burns (`UnitTypeDef.burns`, `BurningOptions`): for how long, what is left of it, whether its wood is kept,
|
|
14
|
+
* and what kind of burning it is. What a type does not say is the pack's, then what each field says it is when left
|
|
15
|
+
* out. Plain data: the editor writes it
|
|
16
|
+
*
|
|
17
|
+
* @beta
|
|
18
|
+
*/
|
|
19
|
+
export interface BurnsDef {
|
|
20
|
+
/** Seconds it burns before it is burnt down: 20 when left out */
|
|
21
|
+
seconds?: number;
|
|
22
|
+
/**
|
|
23
|
+
* What is left once it has burnt down: `felled` (it comes down, as a tree a blast brings down: the death's reason is
|
|
24
|
+
* `felled`), `nothing` (it burns away: the reason is `burnt`), or the id of a unit type put down where it stood (a
|
|
25
|
+
* charred stump, a heap of ash: the reason `burnt` too). `felled` when left out
|
|
26
|
+
*/
|
|
27
|
+
leaves?: 'felled' | 'nothing' | (string & {});
|
|
28
|
+
/**
|
|
29
|
+
* Whether what it leaves keeps its wood: a resource left in its place (`leaves` a type with `resource`) holds what
|
|
30
|
+
* it had left of its own. No when left out, and what is left holds what its type says
|
|
31
|
+
*/
|
|
32
|
+
wood?: boolean;
|
|
33
|
+
/**
|
|
34
|
+
* What kind of burning it is, for the screen (the look's `burning.how`) and its death (`death.how`): `burnt` when
|
|
35
|
+
* left out. Another word for another kind: a blight that withers it, frost that shatters it
|
|
36
|
+
*/
|
|
37
|
+
how?: string;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* How fire passes from a burning thing to what burns about it (`BurningOptions.spread`): how far, how likely, how much
|
|
41
|
+
* the wind decides, how often it tries. It passes to what stands (trees, buildings, a wall): a unit that burns is set
|
|
42
|
+
* alight by a call or an ability alone
|
|
43
|
+
*
|
|
44
|
+
* @beta
|
|
45
|
+
*/
|
|
46
|
+
export interface BurningSpread {
|
|
47
|
+
/** How far it reaches, edge to edge, in cells: 1.5 when left out */
|
|
48
|
+
reach?: number;
|
|
49
|
+
/** How likely a try is to light one thing within reach in still air, 0 to 1: 0.15 when left out */
|
|
50
|
+
chance?: number;
|
|
51
|
+
/** How much the wind decides which way it goes (`MapEnvironment.wind`), 0 (not at all) and up: 1 when left out */
|
|
52
|
+
wind?: number;
|
|
53
|
+
/** Seconds between a burning thing's tries: 1 when left out */
|
|
54
|
+
every?: number;
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* What the burning pack is made with (`burningPack`): what burns, how (the defaults of `BurnsDef`, under what a type
|
|
58
|
+
* says), whether fire passes from one thing to the next, what it does to those who stand by, and how much may burn
|
|
59
|
+
*
|
|
60
|
+
* @beta
|
|
61
|
+
*/
|
|
62
|
+
export interface BurningOptions extends BurnsDef {
|
|
63
|
+
/**
|
|
64
|
+
* What burns, and how, in code: `true` (as its type and the pack say), a `BurnsDef` over those, or `false`. Where it
|
|
65
|
+
* says nothing, its type's `burns`; where that says nothing, what can be felled (`fellable`: trees)
|
|
66
|
+
*/
|
|
67
|
+
burns?: (world: World, entity: Entity) => boolean | BurnsDef | undefined;
|
|
68
|
+
/** Whether a burning thing lights what burns about it (`BurningSpread`): `true` for the defaults. Never when left out */
|
|
69
|
+
spread?: BurningSpread | boolean;
|
|
70
|
+
/**
|
|
71
|
+
* Damage a second to units on the ground within `damageReach` of a burning thing, by whoever lit it (the first of
|
|
72
|
+
* those about it, in order of their ids): none when left out. Dealt twice a second, each unit on a turn of its own
|
|
73
|
+
*/
|
|
74
|
+
damage?: number;
|
|
75
|
+
/** How far its heat hurts, edge to edge, in cells: 1 when left out */
|
|
76
|
+
damageReach?: number;
|
|
77
|
+
/** The type that damage is dealt as: magic when left out */
|
|
78
|
+
damageType?: DamageType;
|
|
79
|
+
/** The most things that burn at once: past it, nothing more catches until something has burnt down. 2000 when left out */
|
|
80
|
+
maxBurning?: number;
|
|
81
|
+
/**
|
|
82
|
+
* Whether a burning thing may set alight the grass about it, in a game with the foliage pack too (`foliagePack`):
|
|
83
|
+
* the cells under it and one cell round, of every layer of that pack, or of those named. No when left out. It
|
|
84
|
+
* passes as fire does, not at once: once a second while it burns, each cell by a chance of its own (0.2 for a style
|
|
85
|
+
* of `flammable` 1 in still, dry air, likelier downwind), asked of the game (`foliageIgnite`, `cause: 'burning'`),
|
|
86
|
+
* under the most that may burn there (`FoliageFire.maxBurning`). What caught is set alight at the end of this pack's
|
|
87
|
+
* turn, and tries nothing before its own next turn. The other way is that pack's to say (`FoliageFire.lights`)
|
|
88
|
+
*/
|
|
89
|
+
lightsFoliage?: boolean | readonly string[];
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* What sets a thing alight: set alight by a call or an ability (`light`), caught from a burning thing about it
|
|
93
|
+
* (`spread`), or from burning grass (`foliage`)
|
|
94
|
+
*
|
|
95
|
+
* @beta
|
|
96
|
+
*/
|
|
97
|
+
export type BurnCause = 'light' | 'spread' | 'foliage';
|
|
98
|
+
/**
|
|
99
|
+
* A thing about to catch fire (the `burnStart` hook): `cancel()` keeps it from catching; `chance` is a handler's to
|
|
100
|
+
* change (a wet grove, a building that does not burn while it is being built). Asked once a try
|
|
101
|
+
*
|
|
102
|
+
* @beta
|
|
103
|
+
*/
|
|
104
|
+
export interface BurnStart extends Cancellable {
|
|
105
|
+
/** What is about to catch */
|
|
106
|
+
readonly entity: Entity;
|
|
107
|
+
/** How it catches */
|
|
108
|
+
readonly cause: BurnCause;
|
|
109
|
+
/** The burning thing it catches from, for a spread */
|
|
110
|
+
readonly from?: Entity;
|
|
111
|
+
/** The layer of grass of the burning cell it catches from, for one caught from grass (`foliage`) */
|
|
112
|
+
readonly layer?: string;
|
|
113
|
+
/** The burning cell it catches from, by its index in that layer, for one caught from grass (`foliage`) */
|
|
114
|
+
readonly cell?: number;
|
|
115
|
+
/** Who set alight the fire it is of, where someone did */
|
|
116
|
+
readonly by?: Entity;
|
|
117
|
+
/** What kind of burning it is (`BurnsDef.how`) */
|
|
118
|
+
readonly how: string;
|
|
119
|
+
/**
|
|
120
|
+
* How likely it is to catch, 0 to 1: 1 for one set alight, the spread's chance in the wind for one caught from a
|
|
121
|
+
* burning thing, the grass's for one caught from grass (`FoliageFire.lights`). What a handler leaves it at is held
|
|
122
|
+
* to 0 to 1 (more than 1 is sure, less than 0 never)
|
|
123
|
+
*/
|
|
124
|
+
chance: number;
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* Asked before a thing catches fire (`BurnStart`): a handler refuses it or changes its chance. Once for every try:
|
|
128
|
+
* of a call, a spread, or grass burning beside it; so a handler does little
|
|
129
|
+
*
|
|
130
|
+
* @beta
|
|
131
|
+
*/
|
|
132
|
+
export declare const burnStart: import("./hooks").HookKey<BurnStart>;
|
|
133
|
+
/**
|
|
134
|
+
* Something caught fire: how, who lit the fire it is of, what kind of burning it is. What a game's rules and its computer
|
|
135
|
+
* players hear; the screens are told by what burns (`onFire`)
|
|
136
|
+
*
|
|
137
|
+
* @beta
|
|
138
|
+
*/
|
|
139
|
+
export declare const burnStarted: import("./events").EventKey<{
|
|
140
|
+
entity: EntityId;
|
|
141
|
+
cause: BurnCause;
|
|
142
|
+
how: string;
|
|
143
|
+
by?: EntityId;
|
|
144
|
+
}>;
|
|
145
|
+
/**
|
|
146
|
+
* Something burnt down: what kind of burning it was, who lit it, and what it left where it stood (`BurnsDef.leaves`), where
|
|
147
|
+
* it left a thing
|
|
148
|
+
*
|
|
149
|
+
* @beta
|
|
150
|
+
*/
|
|
151
|
+
export declare const burnt: import("./events").EventKey<{
|
|
152
|
+
entity: EntityId;
|
|
153
|
+
how: string;
|
|
154
|
+
by?: EntityId;
|
|
155
|
+
left?: EntityId;
|
|
156
|
+
}>;
|
|
157
|
+
/**
|
|
158
|
+
* Something that burnt was put out (`putOut`, an ability): it stands, charred as far as it burnt
|
|
159
|
+
*
|
|
160
|
+
* @beta
|
|
161
|
+
*/
|
|
162
|
+
export declare const burnPutOut: import("./events").EventKey<{
|
|
163
|
+
entity: EntityId;
|
|
164
|
+
}>;
|
|
165
|
+
/**
|
|
166
|
+
* What burns, as everyone who sees it is told (`onFire`): the kind of burning, the tick it started and the tick it burns
|
|
167
|
+
* down at; `out`, the tick it was put out at, for one that burns no more (charred as far as it came: `(out - since) /
|
|
168
|
+
* (ends - since)`). A screen draws how far it has burnt from these and its own tick, with nothing sent as it goes
|
|
169
|
+
*
|
|
170
|
+
* @beta
|
|
171
|
+
*/
|
|
172
|
+
export interface FireShown {
|
|
173
|
+
/** What kind of burning it is (`BurnsDef.how`) */
|
|
174
|
+
how: string;
|
|
175
|
+
/** The tick it started to burn at: as far back as it had burnt already, for one lit again */
|
|
176
|
+
since: number;
|
|
177
|
+
/** The tick it burns down at */
|
|
178
|
+
ends: number;
|
|
179
|
+
/** The tick it was put out at, for one that burns no more */
|
|
180
|
+
out?: number;
|
|
181
|
+
}
|
|
182
|
+
/**
|
|
183
|
+
* What burns or burnt and was put out, on the thing itself (`FireShown`): told to everyone who sees it as it is (no
|
|
184
|
+
* part of it one player's, so that what a team remembers of a tree is the same for each of them), kept by a save.
|
|
185
|
+
* `snapshotOf(entity.state, onFire)` on a screen; `isBurning` and `burningOf` in the rules
|
|
186
|
+
*
|
|
187
|
+
* @beta
|
|
188
|
+
*/
|
|
189
|
+
export declare const onFire: import("./components").Component<FireShown, FireShown>;
|
|
190
|
+
/**
|
|
191
|
+
* Sets a thing alight: it burns for its time (`BurnsDef.seconds`), then burns down and leaves what it leaves
|
|
192
|
+
* (`BurnsDef.leaves`). `by`: who lit it, whom its damage and its kill are by; `how`: another kind of burning than its
|
|
193
|
+
* own; `seconds`: another time. The game is asked first (`burnStart`). One that burns already, does not burn, or is
|
|
194
|
+
* past the most that may burn at once (`BurningOptions.maxBurning`) does not catch. One put out before goes on from
|
|
195
|
+
* as far as it had burnt. Whether it caught
|
|
196
|
+
*
|
|
197
|
+
* @beta
|
|
198
|
+
*/
|
|
199
|
+
export declare function setAlight(world: World, entity: Entity, options?: {
|
|
200
|
+
by?: Entity;
|
|
201
|
+
how?: string;
|
|
202
|
+
seconds?: number;
|
|
203
|
+
}): boolean;
|
|
204
|
+
/**
|
|
205
|
+
* Puts out a thing that burns: it stands, charred as far as it burnt, and may be set alight again. Whether it burnt
|
|
206
|
+
*
|
|
207
|
+
* @beta
|
|
208
|
+
*/
|
|
209
|
+
export declare function putOut(world: World, entity: Entity): boolean;
|
|
210
|
+
/**
|
|
211
|
+
* Whether a thing burns now: not one put out, nor one burnt down (or killed by other means while it burnt)
|
|
212
|
+
*
|
|
213
|
+
* @beta
|
|
214
|
+
*/
|
|
215
|
+
export declare function isBurning(entity: Entity): boolean;
|
|
216
|
+
/**
|
|
217
|
+
* What the rules know of a thing that burns, or burnt and was put out (`burningOf`)
|
|
218
|
+
*
|
|
219
|
+
* @beta
|
|
220
|
+
*/
|
|
221
|
+
export interface BurningInfo {
|
|
222
|
+
/** Whether it burns now (`isBurning`): false for one put out, or burnt down */
|
|
223
|
+
burning: boolean;
|
|
224
|
+
/** What kind of burning it is (`BurnsDef.how`) */
|
|
225
|
+
how: string;
|
|
226
|
+
/** How far it has burnt, 0 (just caught) to 1 (about to burn down) */
|
|
227
|
+
share: number;
|
|
228
|
+
/** Seconds it still burns: 0 for one put out, or burnt down */
|
|
229
|
+
left: number;
|
|
230
|
+
/** Who set alight the fire it is of, where someone did */
|
|
231
|
+
by?: EntityId;
|
|
232
|
+
}
|
|
233
|
+
/**
|
|
234
|
+
* What the rules know of a thing that burns or burnt (`BurningInfo`): none for one that never caught
|
|
235
|
+
*
|
|
236
|
+
* @beta
|
|
237
|
+
*/
|
|
238
|
+
export declare function burningOf(world: World, entity: Entity): BurningInfo | undefined;
|
|
239
|
+
/**
|
|
240
|
+
* The ids of what burns now, in order: for a game's rules and its computer players (one killed by other means, a
|
|
241
|
+
* catapult's blast, is taken out within a second). Not to be kept or changed: the pack's own list
|
|
242
|
+
*
|
|
243
|
+
* @beta
|
|
244
|
+
*/
|
|
245
|
+
export declare function burningThings(world: World): readonly EntityId[];
|
|
246
|
+
/**
|
|
247
|
+
* Whether a thing burns at all in a world's game (`BurningOptions.burns`, `UnitTypeDef.burns`, trees): false in a game
|
|
248
|
+
* without the burning pack
|
|
249
|
+
*
|
|
250
|
+
* @beta
|
|
251
|
+
*/
|
|
252
|
+
export declare function canBurn(world: World, entity: Entity): boolean;
|
|
253
|
+
/**
|
|
254
|
+
* Things that burn (`BurningOptions`): trees by default (what can be felled), any type that says `burns`
|
|
255
|
+
* (`UnitTypeDef.burns`: a wooden wall, a hut), or what the game decides in code. Set alight by `setAlight`, an ability
|
|
256
|
+
* (`{ type: 'burn', act: 'light' }`), the grass's fire (`FoliageFire.lights`) or one another (`spread`), a thing burns
|
|
257
|
+
* for its seconds and burns down: felled, burnt away, or leaving a thing of its own (a charred stump), with or
|
|
258
|
+
* without its wood. Put out with `putOut`. Its look says what plays on it while it burns (`UnitLook.burning`: fire
|
|
259
|
+
* by default, or a game's own effect for its own kind of burning, `how`). Off unless a game turns it on:
|
|
260
|
+
*
|
|
261
|
+
* export const rules = { ...myGame, packs: [burningPack({ spread: { chance: 0.2 }, damage: 10 })] }
|
|
262
|
+
*
|
|
263
|
+
* What burns is not woken (`world.wake`): a forest costs nothing a tick while nothing in it burns
|
|
264
|
+
*
|
|
265
|
+
* @beta
|
|
266
|
+
*/
|
|
267
|
+
export declare function burningPack(options?: BurningOptions): GamePack;
|