@datamoc/mw_games 0.3.1 → 0.4.1
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/README.md +401 -395
- package/dist/actors/Advancement.d.ts +17 -0
- package/dist/actors/Advancement.d.ts.map +1 -1
- package/dist/actors/Advancement.js +17 -0
- package/dist/actors/Advancement.js.map +1 -1
- package/dist/actors/Affix.d.ts +46 -0
- package/dist/actors/Affix.d.ts.map +1 -1
- package/dist/actors/Affix.js +32 -1
- package/dist/actors/Affix.js.map +1 -1
- package/dist/actors/Appearances.d.ts +12 -0
- package/dist/actors/Appearances.d.ts.map +1 -1
- package/dist/actors/Appearances.js +12 -0
- package/dist/actors/Appearances.js.map +1 -1
- package/dist/actors/Aura.d.ts +16 -0
- package/dist/actors/Aura.d.ts.map +1 -1
- package/dist/actors/Aura.js +16 -0
- package/dist/actors/Aura.js.map +1 -1
- package/dist/actors/Barrier.d.ts +60 -0
- package/dist/actors/Barrier.d.ts.map +1 -0
- package/dist/actors/Barrier.js +70 -0
- package/dist/actors/Barrier.js.map +1 -0
- package/dist/actors/Charges.d.ts +35 -0
- package/dist/actors/Charges.d.ts.map +1 -1
- package/dist/actors/Charges.js +26 -0
- package/dist/actors/Charges.js.map +1 -1
- package/dist/actors/Equipment.d.ts +48 -0
- package/dist/actors/Equipment.d.ts.map +1 -1
- package/dist/actors/Equipment.js +51 -1
- package/dist/actors/Equipment.js.map +1 -1
- package/dist/actors/Inventory.d.ts +70 -3
- package/dist/actors/Inventory.d.ts.map +1 -1
- package/dist/actors/Inventory.js +109 -5
- package/dist/actors/Inventory.js.map +1 -1
- package/dist/actors/ItemState.d.ts +24 -2
- package/dist/actors/ItemState.d.ts.map +1 -1
- package/dist/actors/ItemState.js +31 -2
- package/dist/actors/ItemState.js.map +1 -1
- package/dist/actors/ItemStatusEffect.d.ts +13 -0
- package/dist/actors/ItemStatusEffect.d.ts.map +1 -1
- package/dist/actors/ItemStatusEffect.js +13 -0
- package/dist/actors/ItemStatusEffect.js.map +1 -1
- package/dist/actors/Loot.d.ts +15 -1
- package/dist/actors/Loot.d.ts.map +1 -1
- package/dist/actors/Loot.js +16 -2
- package/dist/actors/Loot.js.map +1 -1
- package/dist/actors/Progression.d.ts +23 -1
- package/dist/actors/Progression.d.ts.map +1 -1
- package/dist/actors/Progression.js +21 -1
- package/dist/actors/Progression.js.map +1 -1
- package/dist/actors/Resource.d.ts +30 -0
- package/dist/actors/Resource.d.ts.map +1 -1
- package/dist/actors/Resource.js +22 -0
- package/dist/actors/Resource.js.map +1 -1
- package/dist/actors/Scaling.d.ts +8 -0
- package/dist/actors/Scaling.d.ts.map +1 -1
- package/dist/actors/Scaling.js.map +1 -1
- package/dist/actors/Shop.d.ts +15 -0
- package/dist/actors/Shop.d.ts.map +1 -1
- package/dist/actors/Shop.js.map +1 -1
- package/dist/actors/SkillPoints.d.ts +27 -0
- package/dist/actors/SkillPoints.d.ts.map +1 -1
- package/dist/actors/SkillPoints.js +29 -0
- package/dist/actors/SkillPoints.js.map +1 -1
- package/dist/actors/StatBlock.d.ts +16 -0
- package/dist/actors/StatBlock.d.ts.map +1 -1
- package/dist/actors/StatBlock.js +21 -0
- package/dist/actors/StatBlock.js.map +1 -1
- package/dist/actors/StatusEffect.d.ts +18 -0
- package/dist/actors/StatusEffect.d.ts.map +1 -1
- package/dist/actors/StatusEffect.js +18 -0
- package/dist/actors/StatusEffect.js.map +1 -1
- package/dist/actors/Support.d.ts +13 -2
- package/dist/actors/Support.d.ts.map +1 -1
- package/dist/actors/Support.js +13 -2
- package/dist/actors/Support.js.map +1 -1
- package/dist/actors/Traits.d.ts +14 -0
- package/dist/actors/Traits.d.ts.map +1 -1
- package/dist/actors/Traits.js +14 -0
- package/dist/actors/Traits.js.map +1 -1
- package/dist/actors/craft.d.ts +16 -0
- package/dist/actors/craft.d.ts.map +1 -1
- package/dist/actors/craft.js +16 -0
- package/dist/actors/craft.js.map +1 -1
- package/dist/actors/index.d.ts +8 -5
- package/dist/actors/index.d.ts.map +1 -1
- package/dist/actors/index.js +3 -2
- package/dist/actors/index.js.map +1 -1
- package/dist/actors/skillCheck.d.ts +8 -0
- package/dist/actors/skillCheck.d.ts.map +1 -1
- package/dist/actors/skillCheck.js +8 -0
- package/dist/actors/skillCheck.js.map +1 -1
- package/dist/assets/ByteProgress.d.ts +37 -0
- package/dist/assets/ByteProgress.d.ts.map +1 -0
- package/dist/assets/ByteProgress.js +54 -0
- package/dist/assets/ByteProgress.js.map +1 -0
- package/dist/assets/Streaming.d.ts +11 -1
- package/dist/assets/Streaming.d.ts.map +1 -1
- package/dist/assets/Streaming.js +11 -1
- package/dist/assets/Streaming.js.map +1 -1
- package/dist/assets/index.d.ts +11 -52
- package/dist/assets/index.d.ts.map +1 -1
- package/dist/assets/index.js +9 -80
- package/dist/assets/index.js.map +1 -1
- package/dist/assets/loader.d.ts +45 -0
- package/dist/assets/loader.d.ts.map +1 -0
- package/dist/assets/loader.js +72 -0
- package/dist/assets/loader.js.map +1 -0
- package/dist/assets/paths.d.ts +50 -0
- package/dist/assets/paths.d.ts.map +1 -0
- package/dist/assets/paths.js +59 -0
- package/dist/assets/paths.js.map +1 -0
- package/dist/audio/Captions.d.ts +13 -1
- package/dist/audio/Captions.d.ts.map +1 -1
- package/dist/audio/Captions.js +13 -1
- package/dist/audio/Captions.js.map +1 -1
- package/dist/audio/Midi.d.ts +19 -1
- package/dist/audio/Midi.d.ts.map +1 -1
- package/dist/audio/Midi.js +19 -1
- package/dist/audio/Midi.js.map +1 -1
- package/dist/audio/Music.d.ts +11 -0
- package/dist/audio/Music.d.ts.map +1 -1
- package/dist/audio/Music.js +11 -0
- package/dist/audio/Music.js.map +1 -1
- package/dist/audio/Orchestrator.d.ts +14 -0
- package/dist/audio/Orchestrator.d.ts.map +1 -1
- package/dist/audio/Orchestrator.js +14 -0
- package/dist/audio/Orchestrator.js.map +1 -1
- package/dist/audio/Playable.d.ts +11 -1
- package/dist/audio/Playable.d.ts.map +1 -1
- package/dist/audio/Playable.js +12 -2
- package/dist/audio/Playable.js.map +1 -1
- package/dist/audio/Sound.d.ts +8 -0
- package/dist/audio/Sound.d.ts.map +1 -1
- package/dist/audio/Sound.js +8 -0
- package/dist/audio/Sound.js.map +1 -1
- package/dist/audio/Synth.d.ts +15 -0
- package/dist/audio/Synth.d.ts.map +1 -1
- package/dist/audio/Synth.js +15 -0
- package/dist/audio/Synth.js.map +1 -1
- package/dist/battle/BattleAI.d.ts +18 -2
- package/dist/battle/BattleAI.d.ts.map +1 -1
- package/dist/battle/BattleAI.js +18 -2
- package/dist/battle/BattleAI.js.map +1 -1
- package/dist/battle/Evolution.d.ts +12 -0
- package/dist/battle/Evolution.d.ts.map +1 -1
- package/dist/battle/Evolution.js +12 -0
- package/dist/battle/Evolution.js.map +1 -1
- package/dist/battle/Field.d.ts +13 -2
- package/dist/battle/Field.d.ts.map +1 -1
- package/dist/battle/Field.js +3 -3
- package/dist/battle/Field.js.map +1 -1
- package/dist/battle/Hooks.d.ts +23 -13
- package/dist/battle/Hooks.d.ts.map +1 -1
- package/dist/battle/Hooks.js +36 -18
- package/dist/battle/Hooks.js.map +1 -1
- package/dist/battle/Move.d.ts +13 -0
- package/dist/battle/Move.d.ts.map +1 -1
- package/dist/battle/Move.js +13 -0
- package/dist/battle/Move.js.map +1 -1
- package/dist/battle/Party.d.ts +11 -0
- package/dist/battle/Party.d.ts.map +1 -1
- package/dist/battle/Party.js +11 -0
- package/dist/battle/Party.js.map +1 -1
- package/dist/battle/Species.d.ts +10 -0
- package/dist/battle/Species.d.ts.map +1 -1
- package/dist/battle/Species.js +10 -0
- package/dist/battle/Species.js.map +1 -1
- package/dist/battle/StatStages.d.ts +14 -0
- package/dist/battle/StatStages.d.ts.map +1 -1
- package/dist/battle/StatStages.js.map +1 -1
- package/dist/battle/TypeMatrix.d.ts +11 -0
- package/dist/battle/TypeMatrix.d.ts.map +1 -1
- package/dist/battle/TypeMatrix.js +11 -0
- package/dist/battle/TypeMatrix.js.map +1 -1
- package/dist/core/Achievements.d.ts +15 -0
- package/dist/core/Achievements.d.ts.map +1 -1
- package/dist/core/Achievements.js +15 -0
- package/dist/core/Achievements.js.map +1 -1
- package/dist/core/Collection.d.ts +12 -0
- package/dist/core/Collection.d.ts.map +1 -1
- package/dist/core/Collection.js +12 -0
- package/dist/core/Collection.js.map +1 -1
- package/dist/core/Entity.d.ts +42 -0
- package/dist/core/Entity.d.ts.map +1 -0
- package/dist/core/Entity.js +47 -0
- package/dist/core/Entity.js.map +1 -0
- package/dist/core/Feedback.d.ts +11 -1
- package/dist/core/Feedback.d.ts.map +1 -1
- package/dist/core/Feedback.js +11 -1
- package/dist/core/Feedback.js.map +1 -1
- package/dist/core/Hex.d.ts +14 -0
- package/dist/core/Hex.d.ts.map +1 -1
- package/dist/core/Hex.js +14 -0
- package/dist/core/Hex.js.map +1 -1
- package/dist/core/Hooks.d.ts +48 -0
- package/dist/core/Hooks.d.ts.map +1 -0
- package/dist/core/Hooks.js +33 -0
- package/dist/core/Hooks.js.map +1 -0
- package/dist/core/Input.d.ts +53 -0
- package/dist/core/Input.d.ts.map +1 -1
- package/dist/core/Input.js +126 -21
- package/dist/core/Input.js.map +1 -1
- package/dist/core/Loading.d.ts +17 -0
- package/dist/core/Loading.d.ts.map +1 -1
- package/dist/core/Loading.js +17 -0
- package/dist/core/Loading.js.map +1 -1
- package/dist/core/Log.d.ts +9 -0
- package/dist/core/Log.d.ts.map +1 -1
- package/dist/core/Log.js +9 -0
- package/dist/core/Log.js.map +1 -1
- package/dist/core/Multiplayer.d.ts +12 -0
- package/dist/core/Multiplayer.d.ts.map +1 -1
- package/dist/core/Multiplayer.js +12 -0
- package/dist/core/Multiplayer.js.map +1 -1
- package/dist/core/News.d.ts +12 -0
- package/dist/core/News.d.ts.map +1 -1
- package/dist/core/News.js.map +1 -1
- package/dist/core/PlayerInput.d.ts +19 -0
- package/dist/core/PlayerInput.d.ts.map +1 -1
- package/dist/core/PlayerInput.js +25 -0
- package/dist/core/PlayerInput.js.map +1 -1
- package/dist/core/Presentation.d.ts +56 -0
- package/dist/core/Presentation.d.ts.map +1 -0
- package/dist/core/Presentation.js +78 -0
- package/dist/core/Presentation.js.map +1 -0
- package/dist/core/Random.d.ts +38 -5
- package/dist/core/Random.d.ts.map +1 -1
- package/dist/core/Random.js +38 -5
- package/dist/core/Random.js.map +1 -1
- package/dist/core/Replay.d.ts +31 -0
- package/dist/core/Replay.d.ts.map +1 -1
- package/dist/core/Replay.js +31 -0
- package/dist/core/Replay.js.map +1 -1
- package/dist/core/RunHistory.d.ts +12 -0
- package/dist/core/RunHistory.d.ts.map +1 -1
- package/dist/core/RunHistory.js.map +1 -1
- package/dist/core/Sanitize.d.ts +18 -0
- package/dist/core/Sanitize.d.ts.map +1 -1
- package/dist/core/Sanitize.js +18 -0
- package/dist/core/Sanitize.js.map +1 -1
- package/dist/core/Save.d.ts.map +1 -1
- package/dist/core/Save.js +13 -0
- package/dist/core/Save.js.map +1 -1
- package/dist/core/SaveSync.d.ts +14 -0
- package/dist/core/SaveSync.d.ts.map +1 -1
- package/dist/core/SaveSync.js.map +1 -1
- package/dist/core/Scene.d.ts +29 -6
- package/dist/core/Scene.d.ts.map +1 -1
- package/dist/core/Scene.js +31 -6
- package/dist/core/Scene.js.map +1 -1
- package/dist/core/SceneStack.d.ts +28 -4
- package/dist/core/SceneStack.d.ts.map +1 -1
- package/dist/core/SceneStack.js +24 -0
- package/dist/core/SceneStack.js.map +1 -1
- package/dist/core/Scramble.d.ts +8 -0
- package/dist/core/Scramble.d.ts.map +1 -1
- package/dist/core/Scramble.js +8 -0
- package/dist/core/Scramble.js.map +1 -1
- package/dist/core/Session.d.ts +10 -0
- package/dist/core/Session.d.ts.map +1 -1
- package/dist/core/Session.js.map +1 -1
- package/dist/core/Signal.d.ts +11 -0
- package/dist/core/Signal.d.ts.map +1 -1
- package/dist/core/Signal.js.map +1 -1
- package/dist/core/Spawner.d.ts +17 -0
- package/dist/core/Spawner.d.ts.map +1 -1
- package/dist/core/Spawner.js +17 -0
- package/dist/core/Spawner.js.map +1 -1
- package/dist/core/Stats.d.ts +14 -0
- package/dist/core/Stats.d.ts.map +1 -1
- package/dist/core/Stats.js +14 -0
- package/dist/core/Stats.js.map +1 -1
- package/dist/core/Telemetry.d.ts +11 -0
- package/dist/core/Telemetry.d.ts.map +1 -1
- package/dist/core/Telemetry.js +11 -0
- package/dist/core/Telemetry.js.map +1 -1
- package/dist/core/Tween.d.ts +16 -1
- package/dist/core/Tween.d.ts.map +1 -1
- package/dist/core/Tween.js +16 -1
- package/dist/core/Tween.js.map +1 -1
- package/dist/core/UndoHistory.d.ts +15 -0
- package/dist/core/UndoHistory.d.ts.map +1 -1
- package/dist/core/UndoHistory.js.map +1 -1
- package/dist/core/index.d.ts +7 -2
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +3 -1
- package/dist/core/index.js.map +1 -1
- package/dist/i18n/Format.d.ts +25 -0
- package/dist/i18n/Format.d.ts.map +1 -0
- package/dist/i18n/Format.js +32 -0
- package/dist/i18n/Format.js.map +1 -0
- package/dist/i18n/SemanticMessage.d.ts +71 -0
- package/dist/i18n/SemanticMessage.d.ts.map +1 -0
- package/dist/i18n/SemanticMessage.js +40 -0
- package/dist/i18n/SemanticMessage.js.map +1 -0
- package/dist/i18n/Validate.d.ts +56 -0
- package/dist/i18n/Validate.d.ts.map +1 -0
- package/dist/i18n/Validate.js +65 -0
- package/dist/i18n/Validate.js.map +1 -0
- package/dist/i18n/index.d.ts +39 -0
- package/dist/i18n/index.d.ts.map +1 -1
- package/dist/i18n/index.js +48 -1
- package/dist/i18n/index.js.map +1 -1
- package/dist/index.d.ts +4 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -5
- package/dist/index.js.map +1 -1
- package/dist/mw_games.global.js +153 -88
- package/dist/roguelike/Blob.d.ts +11 -0
- package/dist/roguelike/Blob.d.ts.map +1 -1
- package/dist/roguelike/Blob.js +11 -0
- package/dist/roguelike/Blob.js.map +1 -1
- package/dist/roguelike/Boss.d.ts +16 -4
- package/dist/roguelike/Boss.d.ts.map +1 -1
- package/dist/roguelike/Boss.js +18 -6
- package/dist/roguelike/Boss.js.map +1 -1
- package/dist/roguelike/Combat.d.ts +23 -11
- package/dist/roguelike/Combat.d.ts.map +1 -1
- package/dist/roguelike/Combat.js +22 -16
- package/dist/roguelike/Combat.js.map +1 -1
- package/dist/roguelike/ContentRoll.d.ts +53 -0
- package/dist/roguelike/ContentRoll.d.ts.map +1 -0
- package/dist/roguelike/ContentRoll.js +48 -0
- package/dist/roguelike/ContentRoll.js.map +1 -0
- package/dist/roguelike/Doors.d.ts +13 -0
- package/dist/roguelike/Doors.d.ts.map +1 -1
- package/dist/roguelike/Doors.js +13 -0
- package/dist/roguelike/Doors.js.map +1 -1
- package/dist/roguelike/DungeonParity.d.ts +57 -0
- package/dist/roguelike/DungeonParity.d.ts.map +1 -0
- package/dist/roguelike/DungeonParity.js +78 -0
- package/dist/roguelike/DungeonParity.js.map +1 -0
- package/dist/roguelike/Elevation.d.ts +15 -0
- package/dist/roguelike/Elevation.d.ts.map +1 -1
- package/dist/roguelike/Elevation.js +15 -0
- package/dist/roguelike/Elevation.js.map +1 -1
- package/dist/roguelike/Features.d.ts +59 -0
- package/dist/roguelike/Features.d.ts.map +1 -0
- package/dist/roguelike/Features.js +76 -0
- package/dist/roguelike/Features.js.map +1 -0
- package/dist/roguelike/FieldOfView.d.ts +13 -0
- package/dist/roguelike/FieldOfView.d.ts.map +1 -1
- package/dist/roguelike/FieldOfView.js +13 -0
- package/dist/roguelike/FieldOfView.js.map +1 -1
- package/dist/roguelike/Level.d.ts +26 -1
- package/dist/roguelike/Level.d.ts.map +1 -1
- package/dist/roguelike/Level.js +26 -1
- package/dist/roguelike/Level.js.map +1 -1
- package/dist/roguelike/MonsterAI.d.ts +14 -0
- package/dist/roguelike/MonsterAI.d.ts.map +1 -1
- package/dist/roguelike/MonsterAI.js +15 -1
- package/dist/roguelike/MonsterAI.js.map +1 -1
- package/dist/roguelike/MultiStageAbility.d.ts +59 -0
- package/dist/roguelike/MultiStageAbility.d.ts.map +1 -0
- package/dist/roguelike/MultiStageAbility.js +76 -0
- package/dist/roguelike/MultiStageAbility.js.map +1 -0
- package/dist/roguelike/Pathfinder.d.ts +23 -2
- package/dist/roguelike/Pathfinder.d.ts.map +1 -1
- package/dist/roguelike/Pathfinder.js +23 -2
- package/dist/roguelike/Pathfinder.js.map +1 -1
- package/dist/roguelike/RoomBuilders.d.ts +60 -0
- package/dist/roguelike/RoomBuilders.d.ts.map +1 -0
- package/dist/roguelike/RoomBuilders.js +57 -0
- package/dist/roguelike/RoomBuilders.js.map +1 -0
- package/dist/roguelike/Scheduler.d.ts +48 -1
- package/dist/roguelike/Scheduler.d.ts.map +1 -1
- package/dist/roguelike/Scheduler.js +58 -1
- package/dist/roguelike/Scheduler.js.map +1 -1
- package/dist/roguelike/Secrets.d.ts +13 -0
- package/dist/roguelike/Secrets.d.ts.map +1 -1
- package/dist/roguelike/Secrets.js +13 -0
- package/dist/roguelike/Secrets.js.map +1 -1
- package/dist/roguelike/Stealth.d.ts +13 -0
- package/dist/roguelike/Stealth.d.ts.map +1 -1
- package/dist/roguelike/Stealth.js +13 -0
- package/dist/roguelike/Stealth.js.map +1 -1
- package/dist/roguelike/Targeting.d.ts +67 -1
- package/dist/roguelike/Targeting.d.ts.map +1 -1
- package/dist/roguelike/Targeting.js +53 -1
- package/dist/roguelike/Targeting.js.map +1 -1
- package/dist/roguelike/TriggerTracker.d.ts +46 -0
- package/dist/roguelike/TriggerTracker.d.ts.map +1 -0
- package/dist/roguelike/TriggerTracker.js +59 -0
- package/dist/roguelike/TriggerTracker.js.map +1 -0
- package/dist/roguelike/generate.d.ts +90 -1
- package/dist/roguelike/generate.d.ts.map +1 -1
- package/dist/roguelike/generate.js +79 -11
- package/dist/roguelike/generate.js.map +1 -1
- package/dist/roguelike/index.d.ts +17 -5
- package/dist/roguelike/index.d.ts.map +1 -1
- package/dist/roguelike/index.js +8 -2
- package/dist/roguelike/index.js.map +1 -1
- package/dist/rpg/Collision.d.ts +19 -0
- package/dist/rpg/Collision.d.ts.map +1 -1
- package/dist/rpg/Collision.js +19 -0
- package/dist/rpg/Collision.js.map +1 -1
- package/dist/rpg/Event.d.ts +17 -0
- package/dist/rpg/Event.d.ts.map +1 -1
- package/dist/rpg/Event.js +17 -0
- package/dist/rpg/Event.js.map +1 -1
- package/dist/rpg/EventRunner.d.ts +44 -8
- package/dist/rpg/EventRunner.d.ts.map +1 -1
- package/dist/rpg/EventRunner.js +15 -13
- package/dist/rpg/EventRunner.js.map +1 -1
- package/dist/rpg/FreeMover.d.ts +16 -2
- package/dist/rpg/FreeMover.d.ts.map +1 -1
- package/dist/rpg/FreeMover.js +19 -5
- package/dist/rpg/FreeMover.js.map +1 -1
- package/dist/rpg/GameState.d.ts +14 -0
- package/dist/rpg/GameState.d.ts.map +1 -1
- package/dist/rpg/GameState.js +14 -0
- package/dist/rpg/GameState.js.map +1 -1
- package/dist/rpg/GridMover.d.ts +16 -2
- package/dist/rpg/GridMover.d.ts.map +1 -1
- package/dist/rpg/GridMover.js +19 -5
- package/dist/rpg/GridMover.js.map +1 -1
- package/dist/rpg/Marshal.d.ts +16 -0
- package/dist/rpg/Marshal.d.ts.map +1 -1
- package/dist/rpg/Marshal.js +16 -0
- package/dist/rpg/Marshal.js.map +1 -1
- package/dist/rpg/MovableSprite.d.ts +25 -0
- package/dist/rpg/MovableSprite.d.ts.map +1 -0
- package/dist/rpg/MovableSprite.js +2 -0
- package/dist/rpg/MovableSprite.js.map +1 -0
- package/dist/rpg/Quest.d.ts +21 -1
- package/dist/rpg/Quest.d.ts.map +1 -1
- package/dist/rpg/Quest.js +21 -1
- package/dist/rpg/Quest.js.map +1 -1
- package/dist/rpg/automap.d.ts +39 -2
- package/dist/rpg/automap.d.ts.map +1 -1
- package/dist/rpg/automap.js +24 -1
- package/dist/rpg/automap.js.map +1 -1
- package/dist/rpg/index.d.ts +4 -4
- package/dist/rpg/index.d.ts.map +1 -1
- package/dist/rpg/index.js +1 -1
- package/dist/rpg/index.js.map +1 -1
- package/dist/simulation/Runtime.d.ts +98 -0
- package/dist/simulation/Runtime.d.ts.map +1 -0
- package/dist/simulation/Runtime.js +91 -0
- package/dist/simulation/Runtime.js.map +1 -0
- package/dist/simulation/Scenario.d.ts +15 -0
- package/dist/simulation/Scenario.d.ts.map +1 -1
- package/dist/simulation/Scenario.js +15 -0
- package/dist/simulation/Scenario.js.map +1 -1
- package/dist/simulation/Turns.d.ts +11 -0
- package/dist/simulation/Turns.d.ts.map +1 -1
- package/dist/simulation/Turns.js +11 -0
- package/dist/simulation/Turns.js.map +1 -1
- package/dist/simulation/index.d.ts +10 -0
- package/dist/simulation/index.d.ts.map +1 -1
- package/dist/simulation/index.js +8 -0
- package/dist/simulation/index.js.map +1 -1
- package/dist/three-d/Character3D.d.ts +26 -1
- package/dist/three-d/Character3D.d.ts.map +1 -1
- package/dist/three-d/Character3D.js +31 -14
- package/dist/three-d/Character3D.js.map +1 -1
- package/dist/three-d/Collision3D.d.ts +63 -0
- package/dist/three-d/Collision3D.d.ts.map +1 -0
- package/dist/three-d/Collision3D.js +75 -0
- package/dist/three-d/Collision3D.js.map +1 -0
- package/dist/three-d/Models.js +1 -1
- package/dist/three-d/index.d.ts +3 -1
- package/dist/three-d/index.d.ts.map +1 -1
- package/dist/three-d/index.js +1 -0
- package/dist/three-d/index.js.map +1 -1
- package/dist/{core → two-d}/Game.d.ts +15 -17
- package/dist/two-d/Game.d.ts.map +1 -0
- package/dist/{core → two-d}/Game.js +3 -3
- package/dist/two-d/Game.js.map +1 -0
- package/dist/two-d/Scene2D.d.ts +19 -0
- package/dist/two-d/Scene2D.d.ts.map +1 -0
- package/dist/two-d/Scene2D.js +23 -0
- package/dist/two-d/Scene2D.js.map +1 -0
- package/dist/two-d/index.d.ts +20 -0
- package/dist/two-d/index.d.ts.map +1 -0
- package/dist/two-d/index.js +18 -0
- package/dist/two-d/index.js.map +1 -0
- package/dist/two-d/pixi-interop.d.ts +13 -0
- package/dist/two-d/pixi-interop.d.ts.map +1 -0
- package/dist/two-d/pixi-interop.js +12 -0
- package/dist/two-d/pixi-interop.js.map +1 -0
- package/dist/two-d/render/ActorAnimator.d.ts.map +1 -0
- package/dist/two-d/render/ActorAnimator.js.map +1 -0
- package/dist/{render → two-d/render}/AnimatedSprite.d.ts +4 -4
- package/dist/two-d/render/AnimatedSprite.d.ts.map +1 -0
- package/dist/two-d/render/AnimatedSprite.js.map +1 -0
- package/dist/two-d/render/Autotile.d.ts.map +1 -0
- package/dist/two-d/render/Autotile.js.map +1 -0
- package/dist/two-d/render/Camera.d.ts.map +1 -0
- package/dist/{render → two-d/render}/Camera.js +2 -2
- package/dist/two-d/render/Camera.js.map +1 -0
- package/dist/two-d/render/Capabilities.d.ts.map +1 -0
- package/dist/two-d/render/Capabilities.js.map +1 -0
- package/dist/two-d/render/ColorBlindness.d.ts.map +1 -0
- package/dist/two-d/render/ColorBlindness.js.map +1 -0
- package/dist/{render → two-d/render}/ColorTransformBatcher.d.ts +8 -3
- package/dist/two-d/render/ColorTransformBatcher.d.ts.map +1 -0
- package/dist/{render → two-d/render}/ColorTransformBatcher.js +11 -5
- package/dist/two-d/render/ColorTransformBatcher.js.map +1 -0
- package/dist/{render → two-d/render}/LayeredSprite.d.ts +3 -3
- package/dist/two-d/render/LayeredSprite.d.ts.map +1 -0
- package/dist/two-d/render/LayeredSprite.js.map +1 -0
- package/dist/two-d/render/Minimap.d.ts.map +1 -0
- package/dist/{render → two-d/render}/Minimap.js +1 -1
- package/dist/two-d/render/Minimap.js.map +1 -0
- package/dist/two-d/render/Particles.d.ts +109 -0
- package/dist/two-d/render/Particles.d.ts.map +1 -0
- package/dist/two-d/render/Particles.js +178 -0
- package/dist/two-d/render/Particles.js.map +1 -0
- package/dist/two-d/render/Projectile.d.ts.map +1 -0
- package/dist/two-d/render/Projectile.js.map +1 -0
- package/dist/two-d/render/ScreenEffects.d.ts +71 -0
- package/dist/two-d/render/ScreenEffects.d.ts.map +1 -0
- package/dist/two-d/render/ScreenEffects.js +133 -0
- package/dist/two-d/render/ScreenEffects.js.map +1 -0
- package/dist/two-d/render/Shape2D.d.ts +40 -0
- package/dist/two-d/render/Shape2D.d.ts.map +1 -0
- package/dist/two-d/render/Shape2D.js +40 -0
- package/dist/two-d/render/Shape2D.js.map +1 -0
- package/dist/{render → two-d/render}/SpriteSheet.d.ts +9 -6
- package/dist/two-d/render/SpriteSheet.d.ts.map +1 -0
- package/dist/{render → two-d/render}/SpriteSheet.js +8 -1
- package/dist/two-d/render/SpriteSheet.js.map +1 -0
- package/dist/two-d/render/StatusVisuals.d.ts.map +1 -0
- package/dist/two-d/render/StatusVisuals.js.map +1 -0
- package/dist/two-d/render/TileMap.d.ts.map +1 -0
- package/dist/{render → two-d/render}/TileMap.js +1 -1
- package/dist/two-d/render/TileMap.js.map +1 -0
- package/dist/{rpg → two-d/render}/TiledMap.d.ts +2 -2
- package/dist/two-d/render/TiledMap.d.ts.map +1 -0
- package/dist/{rpg → two-d/render}/TiledMap.js +2 -2
- package/dist/two-d/render/TiledMap.js.map +1 -0
- package/dist/{render → two-d/render}/TintedSprite.d.ts +3 -2
- package/dist/two-d/render/TintedSprite.d.ts.map +1 -0
- package/dist/{render → two-d/render}/TintedSprite.js +5 -1
- package/dist/two-d/render/TintedSprite.js.map +1 -0
- package/dist/two-d/render/Types2D.d.ts +27 -0
- package/dist/two-d/render/Types2D.d.ts.map +1 -0
- package/dist/two-d/render/Types2D.js +6 -0
- package/dist/two-d/render/Types2D.js.map +1 -0
- package/dist/two-d/render/Viewport.d.ts.map +1 -0
- package/dist/two-d/render/Viewport.js.map +1 -0
- package/dist/{render → two-d/render}/index.d.ts +9 -0
- package/dist/two-d/render/index.d.ts.map +1 -0
- package/dist/{render → two-d/render}/index.js +5 -0
- package/dist/two-d/render/index.js.map +1 -0
- package/dist/{stage → two-d/stage}/DialogueStage.d.ts +16 -0
- package/dist/two-d/stage/DialogueStage.d.ts.map +1 -0
- package/dist/{stage → two-d/stage}/DialogueStage.js +17 -1
- package/dist/two-d/stage/DialogueStage.js.map +1 -0
- package/dist/two-d/stage/index.d.ts.map +1 -0
- package/dist/two-d/stage/index.js.map +1 -0
- package/dist/{stage → two-d/stage}/script.d.ts +20 -0
- package/dist/two-d/stage/script.d.ts.map +1 -0
- package/dist/{stage → two-d/stage}/script.js +0 -0
- package/dist/two-d/stage/script.js.map +1 -0
- package/dist/{stage → two-d/stage}/twee.d.ts +11 -0
- package/dist/two-d/stage/twee.d.ts.map +1 -0
- package/dist/{stage → two-d/stage}/twee.js +11 -0
- package/dist/two-d/stage/twee.js.map +1 -0
- package/dist/two-d/ui/Bar.d.ts.map +1 -0
- package/dist/two-d/ui/Bar.js.map +1 -0
- package/dist/two-d/ui/BitmapLabel.d.ts.map +1 -0
- package/dist/two-d/ui/BitmapLabel.js.map +1 -0
- package/dist/{ui → two-d/ui}/Button.d.ts +11 -4
- package/dist/two-d/ui/Button.d.ts.map +1 -0
- package/dist/{ui → two-d/ui}/Button.js +20 -4
- package/dist/two-d/ui/Button.js.map +1 -0
- package/dist/two-d/ui/EventDialogue.d.ts +23 -0
- package/dist/two-d/ui/EventDialogue.d.ts.map +1 -0
- package/dist/two-d/ui/EventDialogue.js +27 -0
- package/dist/two-d/ui/EventDialogue.js.map +1 -0
- package/dist/two-d/ui/FloatingText.d.ts.map +1 -0
- package/dist/two-d/ui/FloatingText.js.map +1 -0
- package/dist/{ui → two-d/ui}/HelpScreen.d.ts +1 -1
- package/dist/two-d/ui/HelpScreen.d.ts.map +1 -0
- package/dist/two-d/ui/HelpScreen.js.map +1 -0
- package/dist/{ui → two-d/ui}/IconGrid.d.ts +3 -2
- package/dist/two-d/ui/IconGrid.d.ts.map +1 -0
- package/dist/two-d/ui/IconGrid.js.map +1 -0
- package/dist/two-d/ui/Label.d.ts.map +1 -0
- package/dist/two-d/ui/Label.js.map +1 -0
- package/dist/{ui → two-d/ui}/ListView.d.ts +3 -2
- package/dist/two-d/ui/ListView.d.ts.map +1 -0
- package/dist/two-d/ui/ListView.js.map +1 -0
- package/dist/{ui → two-d/ui}/LoadingScreen.d.ts +1 -1
- package/dist/two-d/ui/LoadingScreen.d.ts.map +1 -0
- package/dist/two-d/ui/LoadingScreen.js.map +1 -0
- package/dist/{ui → two-d/ui}/MessageBox.d.ts +1 -1
- package/dist/two-d/ui/MessageBox.d.ts.map +1 -0
- package/dist/two-d/ui/MessageBox.js.map +1 -0
- package/dist/{ui → two-d/ui}/NinePatch.d.ts +3 -2
- package/dist/two-d/ui/NinePatch.d.ts.map +1 -0
- package/dist/{ui → two-d/ui}/NinePatch.js +1 -1
- package/dist/two-d/ui/NinePatch.js.map +1 -0
- package/dist/{ui → two-d/ui}/RebindScreen.d.ts +1 -1
- package/dist/two-d/ui/RebindScreen.d.ts.map +1 -0
- package/dist/{ui → two-d/ui}/RebindScreen.js +1 -1
- package/dist/two-d/ui/RebindScreen.js.map +1 -0
- package/dist/two-d/ui/StatsScreen.d.ts.map +1 -0
- package/dist/two-d/ui/StatsScreen.js.map +1 -0
- package/dist/{ui → two-d/ui}/Toast.d.ts +2 -1
- package/dist/two-d/ui/Toast.d.ts.map +1 -0
- package/dist/{ui → two-d/ui}/Toast.js +1 -1
- package/dist/two-d/ui/Toast.js.map +1 -0
- package/dist/two-d/ui/Tooltip.d.ts +94 -0
- package/dist/two-d/ui/Tooltip.d.ts.map +1 -0
- package/dist/two-d/ui/Tooltip.js +149 -0
- package/dist/two-d/ui/Tooltip.js.map +1 -0
- package/dist/two-d/ui/VerticalLabel.d.ts.map +1 -0
- package/dist/two-d/ui/VerticalLabel.js.map +1 -0
- package/dist/{ui → two-d/ui}/Window.d.ts +2 -2
- package/dist/two-d/ui/Window.d.ts.map +1 -0
- package/dist/{ui → two-d/ui}/Window.js +1 -1
- package/dist/two-d/ui/Window.js.map +1 -0
- package/dist/two-d/ui/WindowStack.d.ts.map +1 -0
- package/dist/{ui → two-d/ui}/WindowStack.js +1 -1
- package/dist/two-d/ui/WindowStack.js.map +1 -0
- package/dist/{ui → two-d/ui}/index.d.ts +4 -0
- package/dist/two-d/ui/index.d.ts.map +1 -0
- package/dist/{ui → two-d/ui}/index.js +2 -0
- package/dist/two-d/ui/index.js.map +1 -0
- package/dist/{ui → two-d/ui}/theme.d.ts +4 -4
- package/dist/two-d/ui/theme.d.ts.map +1 -0
- package/dist/{ui → two-d/ui}/theme.js +1 -1
- package/dist/two-d/ui/theme.js.map +1 -0
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/dist/world/Encounters.d.ts +12 -0
- package/dist/world/Encounters.d.ts.map +1 -1
- package/dist/world/Encounters.js +1 -1
- package/dist/world/Encounters.js.map +1 -1
- package/dist/world/Environment.d.ts +27 -4
- package/dist/world/Environment.d.ts.map +1 -1
- package/dist/world/Environment.js +33 -10
- package/dist/world/Environment.js.map +1 -1
- package/dist/world/Overworld.d.ts +14 -0
- package/dist/world/Overworld.d.ts.map +1 -1
- package/dist/world/Overworld.js +14 -0
- package/dist/world/Overworld.js.map +1 -1
- package/dist/world/TurnClock.d.ts +16 -0
- package/dist/world/TurnClock.d.ts.map +1 -1
- package/dist/world/TurnClock.js +16 -0
- package/dist/world/TurnClock.js.map +1 -1
- package/dist/world/World.d.ts +14 -0
- package/dist/world/World.d.ts.map +1 -1
- package/dist/world/World.js +14 -0
- package/dist/world/World.js.map +1 -1
- package/package.json +228 -147
- package/dist/core/Game.d.ts.map +0 -1
- package/dist/core/Game.js.map +0 -1
- package/dist/render/ActorAnimator.d.ts.map +0 -1
- package/dist/render/ActorAnimator.js.map +0 -1
- package/dist/render/AnimatedSprite.d.ts.map +0 -1
- package/dist/render/AnimatedSprite.js.map +0 -1
- package/dist/render/Autotile.d.ts.map +0 -1
- package/dist/render/Autotile.js.map +0 -1
- package/dist/render/Camera.d.ts.map +0 -1
- package/dist/render/Camera.js.map +0 -1
- package/dist/render/Capabilities.d.ts.map +0 -1
- package/dist/render/Capabilities.js.map +0 -1
- package/dist/render/ColorBlindness.d.ts.map +0 -1
- package/dist/render/ColorBlindness.js.map +0 -1
- package/dist/render/ColorTransformBatcher.d.ts.map +0 -1
- package/dist/render/ColorTransformBatcher.js.map +0 -1
- package/dist/render/LayeredSprite.d.ts.map +0 -1
- package/dist/render/LayeredSprite.js.map +0 -1
- package/dist/render/Minimap.d.ts.map +0 -1
- package/dist/render/Minimap.js.map +0 -1
- package/dist/render/Projectile.d.ts.map +0 -1
- package/dist/render/Projectile.js.map +0 -1
- package/dist/render/SpriteSheet.d.ts.map +0 -1
- package/dist/render/SpriteSheet.js.map +0 -1
- package/dist/render/StatusVisuals.d.ts.map +0 -1
- package/dist/render/StatusVisuals.js.map +0 -1
- package/dist/render/TileMap.d.ts.map +0 -1
- package/dist/render/TileMap.js.map +0 -1
- package/dist/render/TintedSprite.d.ts.map +0 -1
- package/dist/render/TintedSprite.js.map +0 -1
- package/dist/render/Viewport.d.ts.map +0 -1
- package/dist/render/Viewport.js.map +0 -1
- package/dist/render/index.d.ts.map +0 -1
- package/dist/render/index.js.map +0 -1
- package/dist/rpg/TiledMap.d.ts.map +0 -1
- package/dist/rpg/TiledMap.js.map +0 -1
- package/dist/stage/DialogueStage.d.ts.map +0 -1
- package/dist/stage/DialogueStage.js.map +0 -1
- package/dist/stage/index.d.ts.map +0 -1
- package/dist/stage/index.js.map +0 -1
- package/dist/stage/script.d.ts.map +0 -1
- package/dist/stage/script.js.map +0 -1
- package/dist/stage/twee.d.ts.map +0 -1
- package/dist/stage/twee.js.map +0 -1
- package/dist/ui/Bar.d.ts.map +0 -1
- package/dist/ui/Bar.js.map +0 -1
- package/dist/ui/BitmapLabel.d.ts.map +0 -1
- package/dist/ui/BitmapLabel.js.map +0 -1
- package/dist/ui/Button.d.ts.map +0 -1
- package/dist/ui/Button.js.map +0 -1
- package/dist/ui/FloatingText.d.ts.map +0 -1
- package/dist/ui/FloatingText.js.map +0 -1
- package/dist/ui/HelpScreen.d.ts.map +0 -1
- package/dist/ui/HelpScreen.js.map +0 -1
- package/dist/ui/IconGrid.d.ts.map +0 -1
- package/dist/ui/IconGrid.js.map +0 -1
- package/dist/ui/Label.d.ts.map +0 -1
- package/dist/ui/Label.js.map +0 -1
- package/dist/ui/ListView.d.ts.map +0 -1
- package/dist/ui/ListView.js.map +0 -1
- package/dist/ui/LoadingScreen.d.ts.map +0 -1
- package/dist/ui/LoadingScreen.js.map +0 -1
- package/dist/ui/MessageBox.d.ts.map +0 -1
- package/dist/ui/MessageBox.js.map +0 -1
- package/dist/ui/NinePatch.d.ts.map +0 -1
- package/dist/ui/NinePatch.js.map +0 -1
- package/dist/ui/RebindScreen.d.ts.map +0 -1
- package/dist/ui/RebindScreen.js.map +0 -1
- package/dist/ui/StatsScreen.d.ts.map +0 -1
- package/dist/ui/StatsScreen.js.map +0 -1
- package/dist/ui/Toast.d.ts.map +0 -1
- package/dist/ui/Toast.js.map +0 -1
- package/dist/ui/VerticalLabel.d.ts.map +0 -1
- package/dist/ui/VerticalLabel.js.map +0 -1
- package/dist/ui/Window.d.ts.map +0 -1
- package/dist/ui/Window.js.map +0 -1
- package/dist/ui/WindowStack.d.ts.map +0 -1
- package/dist/ui/WindowStack.js.map +0 -1
- package/dist/ui/index.d.ts.map +0 -1
- package/dist/ui/index.js.map +0 -1
- package/dist/ui/theme.d.ts.map +0 -1
- package/dist/ui/theme.js.map +0 -1
- /package/dist/{render → two-d/render}/ActorAnimator.d.ts +0 -0
- /package/dist/{render → two-d/render}/ActorAnimator.js +0 -0
- /package/dist/{render → two-d/render}/AnimatedSprite.js +0 -0
- /package/dist/{render → two-d/render}/Autotile.d.ts +0 -0
- /package/dist/{render → two-d/render}/Autotile.js +0 -0
- /package/dist/{render → two-d/render}/Camera.d.ts +0 -0
- /package/dist/{render → two-d/render}/Capabilities.d.ts +0 -0
- /package/dist/{render → two-d/render}/Capabilities.js +0 -0
- /package/dist/{render → two-d/render}/ColorBlindness.d.ts +0 -0
- /package/dist/{render → two-d/render}/ColorBlindness.js +0 -0
- /package/dist/{render → two-d/render}/LayeredSprite.js +0 -0
- /package/dist/{render → two-d/render}/Minimap.d.ts +0 -0
- /package/dist/{render → two-d/render}/Projectile.d.ts +0 -0
- /package/dist/{render → two-d/render}/Projectile.js +0 -0
- /package/dist/{render → two-d/render}/StatusVisuals.d.ts +0 -0
- /package/dist/{render → two-d/render}/StatusVisuals.js +0 -0
- /package/dist/{render → two-d/render}/TileMap.d.ts +0 -0
- /package/dist/{render → two-d/render}/Viewport.d.ts +0 -0
- /package/dist/{render → two-d/render}/Viewport.js +0 -0
- /package/dist/{stage → two-d/stage}/index.d.ts +0 -0
- /package/dist/{stage → two-d/stage}/index.js +0 -0
- /package/dist/{ui → two-d/ui}/Bar.d.ts +0 -0
- /package/dist/{ui → two-d/ui}/Bar.js +0 -0
- /package/dist/{ui → two-d/ui}/BitmapLabel.d.ts +0 -0
- /package/dist/{ui → two-d/ui}/BitmapLabel.js +0 -0
- /package/dist/{ui → two-d/ui}/FloatingText.d.ts +0 -0
- /package/dist/{ui → two-d/ui}/FloatingText.js +0 -0
- /package/dist/{ui → two-d/ui}/HelpScreen.js +0 -0
- /package/dist/{ui → two-d/ui}/IconGrid.js +0 -0
- /package/dist/{ui → two-d/ui}/Label.d.ts +0 -0
- /package/dist/{ui → two-d/ui}/Label.js +0 -0
- /package/dist/{ui → two-d/ui}/ListView.js +0 -0
- /package/dist/{ui → two-d/ui}/LoadingScreen.js +0 -0
- /package/dist/{ui → two-d/ui}/MessageBox.js +0 -0
- /package/dist/{ui → two-d/ui}/StatsScreen.d.ts +0 -0
- /package/dist/{ui → two-d/ui}/StatsScreen.js +0 -0
- /package/dist/{ui → two-d/ui}/VerticalLabel.d.ts +0 -0
- /package/dist/{ui → two-d/ui}/VerticalLabel.js +0 -0
- /package/dist/{ui → two-d/ui}/WindowStack.d.ts +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TypeMatrix.d.ts","sourceRoot":"","sources":["../../src/battle/TypeMatrix.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"TypeMatrix.d.ts","sourceRoot":"","sources":["../../src/battle/TypeMatrix.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,qBAAa,UAAU;IACtB,OAAO,CAAC,WAAW,CAA6B;IAEhD,OAAO,CAAC,GAAG;IAIX,GAAG,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI,CAElE;IAED,GAAG,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAEhD;IAED,0FAA0F;IAC1F,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,cAAc,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,CAE1E;CACD"}
|
|
@@ -2,6 +2,17 @@
|
|
|
2
2
|
* An effectiveness matrix between arbitrary types - `mwg` supplies the matrix, not a type
|
|
3
3
|
* chart. Type names are whatever strings a game defines; an unset pairing multiplies by 1,
|
|
4
4
|
* so a matrix only has to name the pairings that are not neutral.
|
|
5
|
+
*
|
|
6
|
+
* @example
|
|
7
|
+
* ```ts
|
|
8
|
+
* import { TypeMatrix } from '@datamoc/mw_games/battle';
|
|
9
|
+
*
|
|
10
|
+
* const matrix = new TypeMatrix();
|
|
11
|
+
* matrix.set('fire', 'grass', 2); // super effective
|
|
12
|
+
* matrix.set('fire', 'water', 0.5); // not very effective
|
|
13
|
+
*
|
|
14
|
+
* const total = matrix.multiplierFor('fire', ['grass', 'ice']); // 2 * 1 = 2
|
|
15
|
+
* ```
|
|
5
16
|
*/
|
|
6
17
|
export class TypeMatrix {
|
|
7
18
|
constructor() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TypeMatrix.js","sourceRoot":"","sources":["../../src/battle/TypeMatrix.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"TypeMatrix.js","sourceRoot":"","sources":["../../src/battle/TypeMatrix.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,MAAM,OAAO,UAAU;IAAvB;QACS,gBAAW,GAAG,IAAI,GAAG,EAAkB,CAAC;IAkBjD,CAAC;IAhBQ,GAAG,CAAC,SAAiB,EAAE,SAAiB;QAC/C,OAAO,GAAG,SAAS,IAAI,SAAS,EAAE,CAAC;IACpC,CAAC;IAED,GAAG,CAAC,SAAiB,EAAE,SAAiB,EAAE,UAAkB;QAC3D,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,EAAE,UAAU,CAAC,CAAC;IAClE,CAAC;IAED,GAAG,CAAC,SAAiB,EAAE,SAAiB;QACvC,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC;IAClE,CAAC;IAED,0FAA0F;IAC1F,aAAa,CAAC,SAAiB,EAAE,cAAiC;QACjE,OAAO,cAAc,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC;IAC/F,CAAC;CACD"}
|
|
@@ -8,6 +8,21 @@
|
|
|
8
8
|
* can only ever move one way and an unlocked achievement can never disagree with the
|
|
9
9
|
* count behind it. Descriptions are display text `mwg` never reads; persistence is the
|
|
10
10
|
* usual definitions-fresh, progress-saved split (`QuestLog`'s own convention).
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* ```ts
|
|
14
|
+
* import { Achievements } from '@datamoc/mw_games/core';
|
|
15
|
+
*
|
|
16
|
+
* const achievements = new Achievements();
|
|
17
|
+
* achievements.define({ id: 'first-blood', counter: 'kills', target: 1 });
|
|
18
|
+
* achievements.define({ id: 'slayer', counter: 'kills', target: 100 });
|
|
19
|
+
*
|
|
20
|
+
* const unlocked = achievements.increment('kills', 1);
|
|
21
|
+
* console.log(unlocked); // ['first-blood']
|
|
22
|
+
*
|
|
23
|
+
* // later, a UI drains and announces whatever unlocked since it last checked
|
|
24
|
+
* const toast = achievements.drainNew();
|
|
25
|
+
* ```
|
|
11
26
|
*/
|
|
12
27
|
export interface AchievementDef {
|
|
13
28
|
id: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Achievements.d.ts","sourceRoot":"","sources":["../../src/core/Achievements.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"Achievements.d.ts","sourceRoot":"","sources":["../../src/core/Achievements.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,MAAM,WAAW,cAAc;IAC9B,EAAE,EAAE,MAAM,CAAC;IAEX,yEAAyE;IACzE,OAAO,EAAE,MAAM,CAAC;IAEhB,wCAAwC;IACxC,MAAM,EAAE,MAAM,CAAC;IAEf,oEAAoE;IACpE,WAAW,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,qBAAa,YAAY;IACxB,OAAO,CAAC,WAAW,CAAqC;IACxD,OAAO,CAAC,MAAM,CAA6B;IAE3C,iFAAiF;IACjF,OAAO,CAAC,KAAK,CAAgB;IAE7B,MAAM,CAAC,UAAU,EAAE,cAAc,GAAG,IAAI,CAEvC;IAED,wEAAwE;IACxE,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAE7B;IAED;;;;;OAKG;IACH,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,SAAI,GAAG,MAAM,EAAE,CAa/C;IAED,yFAAyF;IACzF,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAI5B;IAED,2FAA2F;IAC3F,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAItD;IAED,8EAA8E;IAC9E,QAAQ,IAAI,MAAM,EAAE,CAInB;IAED,MAAM,IAAI;QAAE,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAA;KAAE,CAEvC;IAED,oGAAoG;IACpG,MAAM,CAAC,QAAQ,CAAC,WAAW,EAAE,cAAc,EAAE,EAAE,IAAI,EAAE;QAAE,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAA;KAAE,GAAG,YAAY,CAMjG;CACD"}
|
|
@@ -8,6 +8,21 @@
|
|
|
8
8
|
* can only ever move one way and an unlocked achievement can never disagree with the
|
|
9
9
|
* count behind it. Descriptions are display text `mwg` never reads; persistence is the
|
|
10
10
|
* usual definitions-fresh, progress-saved split (`QuestLog`'s own convention).
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* ```ts
|
|
14
|
+
* import { Achievements } from '@datamoc/mw_games/core';
|
|
15
|
+
*
|
|
16
|
+
* const achievements = new Achievements();
|
|
17
|
+
* achievements.define({ id: 'first-blood', counter: 'kills', target: 1 });
|
|
18
|
+
* achievements.define({ id: 'slayer', counter: 'kills', target: 100 });
|
|
19
|
+
*
|
|
20
|
+
* const unlocked = achievements.increment('kills', 1);
|
|
21
|
+
* console.log(unlocked); // ['first-blood']
|
|
22
|
+
*
|
|
23
|
+
* // later, a UI drains and announces whatever unlocked since it last checked
|
|
24
|
+
* const toast = achievements.drainNew();
|
|
25
|
+
* ```
|
|
11
26
|
*/
|
|
12
27
|
export class Achievements {
|
|
13
28
|
constructor() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Achievements.js","sourceRoot":"","sources":["../../src/core/Achievements.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"Achievements.js","sourceRoot":"","sources":["../../src/core/Achievements.ts"],"names":[],"mappings":"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"}
|
|
@@ -23,6 +23,18 @@ export interface CollectionOptions {
|
|
|
23
23
|
* to go stale, and two `Collection` objects over the same name agree trivially.
|
|
24
24
|
* Records come back in insertion order. Built for logs and bestiaries (hundreds
|
|
25
25
|
* of records), not for anything scanned per frame.
|
|
26
|
+
*
|
|
27
|
+
* @example
|
|
28
|
+
* ```ts
|
|
29
|
+
* import { Collection } from '@datamoc/mw_games/core';
|
|
30
|
+
*
|
|
31
|
+
* const quests = new Collection('quests');
|
|
32
|
+
* quests.put({ id: 'rats', stage: 1, done: false });
|
|
33
|
+
* quests.put({ id: 'shopkeeper', stage: 3, done: true });
|
|
34
|
+
*
|
|
35
|
+
* const active = quests.where((q) => !q.done);
|
|
36
|
+
* console.log(quests.size, active.length); // 2 1
|
|
37
|
+
* ```
|
|
26
38
|
*/
|
|
27
39
|
export declare class Collection {
|
|
28
40
|
private readonly prefix;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Collection.d.ts","sourceRoot":"","sources":["../../src/core/Collection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,KAAK,WAAW,EAAE,MAAM,WAAW,CAAC;AAE7D;;;GAGG;AACH,MAAM,WAAW,QAAQ;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC;CACzB;AAED,MAAM,WAAW,iBAAiB;IACjC,yFAAyF;IACzF,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iFAAiF;IACjF,OAAO,CAAC,EAAE,WAAW,CAAC;CACtB;AAED
|
|
1
|
+
{"version":3,"file":"Collection.d.ts","sourceRoot":"","sources":["../../src/core/Collection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,KAAK,WAAW,EAAE,MAAM,WAAW,CAAC;AAE7D;;;GAGG;AACH,MAAM,WAAW,QAAQ;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC;CACzB;AAED,MAAM,WAAW,iBAAiB;IACjC,yFAAyF;IACzF,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iFAAiF;IACjF,OAAO,CAAC,EAAE,WAAW,CAAC;CACtB;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,qBAAa,UAAU;IACtB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAc;IAEtC,YAAY,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE,iBAAsB,EAIxD;IAED,4CAA4C;IAC5C,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,uCAAuC;IACvC,GAAG,IAAI,QAAQ,EAAE,CAEhB;IAED,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS,CAGpC;IAED,sDAAsD;IACtD,GAAG,CAAC,MAAM,EAAE,QAAQ,GAAG,IAAI,CAQ1B;IAED,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAEvB;IAED,6FAA6F;IAC7F,KAAK,CAAC,SAAS,EAAE,CAAC,MAAM,EAAE,QAAQ,KAAK,OAAO,GAAG,QAAQ,EAAE,CAE1D;IAED,oEAAoE;IACpE,KAAK,IAAI,IAAI,CAEZ;IAED,OAAO,CAAC,IAAI;IAIZ,OAAO,CAAC,IAAI;CAGZ"}
|
package/dist/core/Collection.js
CHANGED
|
@@ -9,6 +9,18 @@ import { defaultStorage } from './Save.js';
|
|
|
9
9
|
* to go stale, and two `Collection` objects over the same name agree trivially.
|
|
10
10
|
* Records come back in insertion order. Built for logs and bestiaries (hundreds
|
|
11
11
|
* of records), not for anything scanned per frame.
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* ```ts
|
|
15
|
+
* import { Collection } from '@datamoc/mw_games/core';
|
|
16
|
+
*
|
|
17
|
+
* const quests = new Collection('quests');
|
|
18
|
+
* quests.put({ id: 'rats', stage: 1, done: false });
|
|
19
|
+
* quests.put({ id: 'shopkeeper', stage: 3, done: true });
|
|
20
|
+
*
|
|
21
|
+
* const active = quests.where((q) => !q.done);
|
|
22
|
+
* console.log(quests.size, active.length); // 2 1
|
|
23
|
+
* ```
|
|
12
24
|
*/
|
|
13
25
|
export class Collection {
|
|
14
26
|
constructor(name, options = {}) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Collection.js","sourceRoot":"","sources":["../../src/core/Collection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAoB,MAAM,WAAW,CAAC;AAkB7D
|
|
1
|
+
{"version":3,"file":"Collection.js","sourceRoot":"","sources":["../../src/core/Collection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAoB,MAAM,WAAW,CAAC;AAkB7D;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,OAAO,UAAU;IAItB,YAAY,IAAY,EAAE,OAAO,GAAsB,EAAE;QACxD,IAAI,CAAC,IAAI;YAAE,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;QACxD,IAAI,CAAC,MAAM,GAAG,UAAU,OAAO,CAAC,SAAS,IAAI,SAAS,IAAI,IAAI,GAAG,CAAC;QAClE,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,cAAc,EAAE,CAAC;IACpD,CAAC;IAED,4CAA4C;IAC5C,IAAI,IAAI;QACP,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC;IAC3B,CAAC;IAED,uCAAuC;IACvC,GAAG;QACF,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IACjD,CAAC;IAED,GAAG,CAAC,EAAU;QACb,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;QAChD,OAAO,GAAG,KAAK,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAc,CAAC;IACjE,CAAC;IAED,sDAAsD;IACtD,GAAG,CAAC,MAAgB;QACnB,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YAC5E,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;QAChE,CAAC;QACD,IAAI,OAAO,MAAM,CAAC,EAAE,KAAK,QAAQ,IAAI,MAAM,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC;YACvD,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;QAChE,CAAC;QACD,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;IACrE,CAAC;IAED,MAAM,CAAC,EAAU;QAChB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;IACvC,CAAC;IAED,6FAA6F;IAC7F,KAAK,CAAC,SAAwC;QAC7C,OAAO,IAAI,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IACrC,CAAC;IAED,oEAAoE;IACpE,KAAK;QACJ,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,IAAI,EAAE;YAAE,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IACzD,CAAC;IAEO,IAAI;QACX,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IACzE,CAAC;IAEO,IAAI,CAAC,GAAW;QACvB,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAW,CAAa,CAAC;IACjE,CAAC;CACD"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A logical identity for a live object, so events, saves, AI targets and buffs can name a
|
|
3
|
+
* creature or item without holding the object itself - a sprite can be swapped, a save can
|
|
4
|
+
* be reloaded into fresh objects, but the id names the same thing across both.
|
|
5
|
+
*
|
|
6
|
+
* @example
|
|
7
|
+
* ```ts
|
|
8
|
+
* import { EntityRegistry, type EntityId } from '@datamoc/mw_games/core';
|
|
9
|
+
*
|
|
10
|
+
* interface Monster { name: string }
|
|
11
|
+
*
|
|
12
|
+
* const monsters = new EntityRegistry<Monster>();
|
|
13
|
+
* const rat: EntityId = monsters.add({ name: 'rat' });
|
|
14
|
+
*
|
|
15
|
+
* console.log(monsters.get(rat)?.name); // 'rat'
|
|
16
|
+
* console.log(monsters.idOf(monsters.get(rat)!)); // same id back - the reverse lookup a
|
|
17
|
+
* // game passes as `SimulationRuntime`'s or `Scheduler`'s `actorId`
|
|
18
|
+
* ```
|
|
19
|
+
*/
|
|
20
|
+
export type EntityId = string;
|
|
21
|
+
/**
|
|
22
|
+
* Assigns and looks up stable ids for live objects.
|
|
23
|
+
*
|
|
24
|
+
* Deliberately not an ECS: it holds no components and imposes no shape on `T` beyond being
|
|
25
|
+
* an object. A game that needs one still owns its own entity type; this only solves the
|
|
26
|
+
* "how do I name it" problem `roguelike.Scheduler.toJSON`/`simulation.SimulationRuntime.
|
|
27
|
+
* snapshot` already need an answer to.
|
|
28
|
+
*/
|
|
29
|
+
export declare class EntityRegistry<T extends object> {
|
|
30
|
+
private entities;
|
|
31
|
+
private ids;
|
|
32
|
+
private sequence;
|
|
33
|
+
/** registers a new entity and returns the id it is known by from now on */
|
|
34
|
+
add(entity: T): EntityId;
|
|
35
|
+
get(id: EntityId): T | undefined;
|
|
36
|
+
/** the reverse lookup - what a game passes as another API's `actorId`/`id` callback */
|
|
37
|
+
idOf(entity: T): EntityId | undefined;
|
|
38
|
+
has(id: EntityId): boolean;
|
|
39
|
+
remove(id: EntityId): boolean;
|
|
40
|
+
get size(): number;
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=Entity.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Entity.d.ts","sourceRoot":"","sources":["../../src/core/Entity.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,MAAM,QAAQ,GAAG,MAAM,CAAC;AAE9B;;;;;;;GAOG;AACH,qBAAa,cAAc,CAAC,CAAC,SAAS,MAAM;IAC3C,OAAO,CAAC,QAAQ,CAA0B;IAC1C,OAAO,CAAC,GAAG,CAA0B;IACrC,OAAO,CAAC,QAAQ,CAAK;IAErB,2EAA2E;IAC3E,GAAG,CAAC,MAAM,EAAE,CAAC,GAAG,QAAQ,CAQvB;IAED,GAAG,CAAC,EAAE,EAAE,QAAQ,GAAG,CAAC,GAAG,SAAS,CAE/B;IAED,uFAAuF;IACvF,IAAI,CAAC,MAAM,EAAE,CAAC,GAAG,QAAQ,GAAG,SAAS,CAEpC;IAED,GAAG,CAAC,EAAE,EAAE,QAAQ,GAAG,OAAO,CAEzB;IAED,MAAM,CAAC,EAAE,EAAE,QAAQ,GAAG,OAAO,CAO5B;IAED,IAAI,IAAI,IAAI,MAAM,CAEjB;CACD"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Assigns and looks up stable ids for live objects.
|
|
3
|
+
*
|
|
4
|
+
* Deliberately not an ECS: it holds no components and imposes no shape on `T` beyond being
|
|
5
|
+
* an object. A game that needs one still owns its own entity type; this only solves the
|
|
6
|
+
* "how do I name it" problem `roguelike.Scheduler.toJSON`/`simulation.SimulationRuntime.
|
|
7
|
+
* snapshot` already need an answer to.
|
|
8
|
+
*/
|
|
9
|
+
export class EntityRegistry {
|
|
10
|
+
constructor() {
|
|
11
|
+
this.entities = new Map();
|
|
12
|
+
this.ids = new Map();
|
|
13
|
+
this.sequence = 0;
|
|
14
|
+
}
|
|
15
|
+
/** registers a new entity and returns the id it is known by from now on */
|
|
16
|
+
add(entity) {
|
|
17
|
+
const existing = this.ids.get(entity);
|
|
18
|
+
if (existing !== undefined)
|
|
19
|
+
return existing;
|
|
20
|
+
const id = `e${this.sequence++}`;
|
|
21
|
+
this.entities.set(id, entity);
|
|
22
|
+
this.ids.set(entity, id);
|
|
23
|
+
return id;
|
|
24
|
+
}
|
|
25
|
+
get(id) {
|
|
26
|
+
return this.entities.get(id);
|
|
27
|
+
}
|
|
28
|
+
/** the reverse lookup - what a game passes as another API's `actorId`/`id` callback */
|
|
29
|
+
idOf(entity) {
|
|
30
|
+
return this.ids.get(entity);
|
|
31
|
+
}
|
|
32
|
+
has(id) {
|
|
33
|
+
return this.entities.has(id);
|
|
34
|
+
}
|
|
35
|
+
remove(id) {
|
|
36
|
+
const entity = this.entities.get(id);
|
|
37
|
+
if (entity === undefined)
|
|
38
|
+
return false;
|
|
39
|
+
this.entities.delete(id);
|
|
40
|
+
this.ids.delete(entity);
|
|
41
|
+
return true;
|
|
42
|
+
}
|
|
43
|
+
get size() {
|
|
44
|
+
return this.entities.size;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
//# sourceMappingURL=Entity.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Entity.js","sourceRoot":"","sources":["../../src/core/Entity.ts"],"names":[],"mappings":"AAqBA;;;;;;;GAOG;AACH,MAAM,OAAO,cAAc;IAA3B;QACS,aAAQ,GAAG,IAAI,GAAG,EAAe,CAAC;QAClC,QAAG,GAAG,IAAI,GAAG,EAAe,CAAC;QAC7B,aAAQ,GAAG,CAAC,CAAC;IAsCtB,CAAC;IApCA,2EAA2E;IAC3E,GAAG,CAAC,MAAS;QACZ,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACtC,IAAI,QAAQ,KAAK,SAAS;YAAE,OAAO,QAAQ,CAAC;QAE5C,MAAM,EAAE,GAAG,IAAI,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC;QACjC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;QAC9B,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QACzB,OAAO,EAAE,CAAC;IACX,CAAC;IAED,GAAG,CAAC,EAAY;QACf,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAC9B,CAAC;IAED,uFAAuF;IACvF,IAAI,CAAC,MAAS;QACb,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAC7B,CAAC;IAED,GAAG,CAAC,EAAY;QACf,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAC9B,CAAC;IAED,MAAM,CAAC,EAAY;QAClB,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACrC,IAAI,MAAM,KAAK,SAAS;YAAE,OAAO,KAAK,CAAC;QAEvC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACzB,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACxB,OAAO,IAAI,CAAC;IACb,CAAC;IAED,IAAI,IAAI;QACP,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;IAC3B,CAAC;CACD"}
|
package/dist/core/Feedback.d.ts
CHANGED
|
@@ -9,7 +9,17 @@ export interface FeedbackResponse {
|
|
|
9
9
|
ok: boolean;
|
|
10
10
|
status: number;
|
|
11
11
|
}
|
|
12
|
-
/**
|
|
12
|
+
/**
|
|
13
|
+
* Small, injectable transport for a game's own feedback endpoint.
|
|
14
|
+
*
|
|
15
|
+
* @example
|
|
16
|
+
* ```ts
|
|
17
|
+
* import { FeedbackClient } from '@datamoc/mw_games/core';
|
|
18
|
+
*
|
|
19
|
+
* const feedback = new FeedbackClient({ endpoint: 'https://example.com/api/feedback' });
|
|
20
|
+
* await feedback.submit({ message: 'the boss fight softlocks on floor 5', contact: 'a@b.com' });
|
|
21
|
+
* ```
|
|
22
|
+
*/
|
|
13
23
|
export declare class FeedbackClient extends HttpTransport {
|
|
14
24
|
constructor(options: FeedbackOptions);
|
|
15
25
|
submit(request: FeedbackRequest): Promise<FeedbackResponse>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Feedback.d.ts","sourceRoot":"","sources":["../../src/core/Feedback.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,KAAK,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAE9E,MAAM,WAAW,eAAe;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC;CACpD;AAED,MAAM,MAAM,eAAe,GAAG,oBAAoB,CAAC;AAEnD,MAAM,WAAW,gBAAgB;IAChC,EAAE,EAAE,OAAO,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;CACf;AAED
|
|
1
|
+
{"version":3,"file":"Feedback.d.ts","sourceRoot":"","sources":["../../src/core/Feedback.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,KAAK,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAE9E,MAAM,WAAW,eAAe;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC;CACpD;AAED,MAAM,MAAM,eAAe,GAAG,oBAAoB,CAAC;AAEnD,MAAM,WAAW,gBAAgB;IAChC,EAAE,EAAE,OAAO,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;CACf;AAED;;;;;;;;;;GAUG;AACH,qBAAa,cAAe,SAAQ,aAAa;IAChD,YAAY,OAAO,EAAE,eAAe,EAEnC;IAEK,MAAM,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAYhE;CACD"}
|
package/dist/core/Feedback.js
CHANGED
|
@@ -1,5 +1,15 @@
|
|
|
1
1
|
import { HttpTransport } from './HttpTransport.js';
|
|
2
|
-
/**
|
|
2
|
+
/**
|
|
3
|
+
* Small, injectable transport for a game's own feedback endpoint.
|
|
4
|
+
*
|
|
5
|
+
* @example
|
|
6
|
+
* ```ts
|
|
7
|
+
* import { FeedbackClient } from '@datamoc/mw_games/core';
|
|
8
|
+
*
|
|
9
|
+
* const feedback = new FeedbackClient({ endpoint: 'https://example.com/api/feedback' });
|
|
10
|
+
* await feedback.submit({ message: 'the boss fight softlocks on floor 5', contact: 'a@b.com' });
|
|
11
|
+
* ```
|
|
12
|
+
*/
|
|
3
13
|
export class FeedbackClient extends HttpTransport {
|
|
4
14
|
constructor(options) {
|
|
5
15
|
super(options, 'feedback');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Feedback.js","sourceRoot":"","sources":["../../src/core/Feedback.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAA6B,MAAM,oBAAoB,CAAC;AAe9E
|
|
1
|
+
{"version":3,"file":"Feedback.js","sourceRoot":"","sources":["../../src/core/Feedback.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAA6B,MAAM,oBAAoB,CAAC;AAe9E;;;;;;;;;;GAUG;AACH,MAAM,OAAO,cAAe,SAAQ,aAAa;IAChD,YAAY,OAAwB;QACnC,KAAK,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;IAC5B,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,OAAwB;QACpC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,EAAE;YAAE,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;QAClF,OAAO,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE;YACxC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE;gBAClD,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;gBAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;gBAC7B,MAAM;aACN,CAAC,CAAC;YACH,IAAI,CAAC,QAAQ,CAAC,EAAE;gBAAE,MAAM,IAAI,KAAK,CAAC,qCAAqC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;YAC1F,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC;QAC9C,CAAC,CAAC,CAAC;IACJ,CAAC;CACD"}
|
package/dist/core/Hex.d.ts
CHANGED
|
@@ -12,6 +12,20 @@
|
|
|
12
12
|
* cube math round-trip back to integers; nothing about it is rot.js's, which is deliberate
|
|
13
13
|
* (see the roadmap: rot.js's own hex `Path` topology is doubled-width coordinates built for
|
|
14
14
|
* *pointy-top* hexagons, and does not match this orientation).
|
|
15
|
+
*
|
|
16
|
+
* @example
|
|
17
|
+
* ```ts
|
|
18
|
+
* import { hexNeighbors, hexDistance, hexLine, hexRange, hexToPixel, pixelToHex } from '@datamoc/mw_games/core';
|
|
19
|
+
*
|
|
20
|
+
* const start = { x: 2, y: 2 };
|
|
21
|
+
* const neighbours = hexNeighbors(start.x, start.y); // the 6 adjacent cells
|
|
22
|
+
* const cellsAway = hexDistance(start, { x: 4, y: 1 });
|
|
23
|
+
* const path = hexLine(start, { x: 4, y: 1 }); // every cell the line crosses
|
|
24
|
+
* const nearby = hexRange(start, 2); // every cell within 2 hexes
|
|
25
|
+
*
|
|
26
|
+
* const pixel = hexToPixel(start.x, start.y, 32, 28); // tile width/height in pixels
|
|
27
|
+
* const backToHex = pixelToHex(pixel.x, pixel.y, 32, 28); // round-trips to { x: 2, y: 2 }
|
|
28
|
+
* ```
|
|
15
29
|
*/
|
|
16
30
|
export interface HexCoord {
|
|
17
31
|
x: number;
|
package/dist/core/Hex.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Hex.d.ts","sourceRoot":"","sources":["../../src/core/Hex.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"Hex.d.ts","sourceRoot":"","sources":["../../src/core/Hex.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH,MAAM,WAAW,QAAQ;IACxB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACV;AA+BD,kDAAkD;AAClD,wBAAgB,YAAY,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,QAAQ,EAAE,CAG7D;AAED,gDAAgD;AAChD,wBAAgB,WAAW,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,GAAG,MAAM,CAI5D;AAoBD;;;;GAIG;AACH,wBAAgB,OAAO,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,GAAG,QAAQ,EAAE,CAsB5D;AAED,iFAAiF;AACjF,wBAAgB,QAAQ,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,GAAG,QAAQ,EAAE,CAYrE;AAED,uFAAuF;AACvF,wBAAgB,UAAU,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,CAKhH;AAED;;;;;;GAMG;AACH,wBAAgB,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,QAAQ,CASlG"}
|
package/dist/core/Hex.js
CHANGED
|
@@ -12,6 +12,20 @@
|
|
|
12
12
|
* cube math round-trip back to integers; nothing about it is rot.js's, which is deliberate
|
|
13
13
|
* (see the roadmap: rot.js's own hex `Path` topology is doubled-width coordinates built for
|
|
14
14
|
* *pointy-top* hexagons, and does not match this orientation).
|
|
15
|
+
*
|
|
16
|
+
* @example
|
|
17
|
+
* ```ts
|
|
18
|
+
* import { hexNeighbors, hexDistance, hexLine, hexRange, hexToPixel, pixelToHex } from '@datamoc/mw_games/core';
|
|
19
|
+
*
|
|
20
|
+
* const start = { x: 2, y: 2 };
|
|
21
|
+
* const neighbours = hexNeighbors(start.x, start.y); // the 6 adjacent cells
|
|
22
|
+
* const cellsAway = hexDistance(start, { x: 4, y: 1 });
|
|
23
|
+
* const path = hexLine(start, { x: 4, y: 1 }); // every cell the line crosses
|
|
24
|
+
* const nearby = hexRange(start, 2); // every cell within 2 hexes
|
|
25
|
+
*
|
|
26
|
+
* const pixel = hexToPixel(start.x, start.y, 32, 28); // tile width/height in pixels
|
|
27
|
+
* const backToHex = pixelToHex(pixel.x, pixel.y, 32, 28); // round-trips to { x: 2, y: 2 }
|
|
28
|
+
* ```
|
|
15
29
|
*/
|
|
16
30
|
function toCube(x, y) {
|
|
17
31
|
const cx = x;
|
package/dist/core/Hex.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Hex.js","sourceRoot":"","sources":["../../src/core/Hex.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"Hex.js","sourceRoot":"","sources":["../../src/core/Hex.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A named-event registry whose handlers can be removed in bulk by whatever registered them.
|
|
3
|
+
*
|
|
4
|
+
* Distinct from `Signal`, which is one event with one payload and a consuming, LIFO listener
|
|
5
|
+
* order: this is many events keyed by name, dispatched in registration order, with a `source`
|
|
6
|
+
* tag so everything an ability or a worn item put here comes off in one call when that thing
|
|
7
|
+
* leaves. `mwg` names no events of its own - the strings are whatever a game's own loop
|
|
8
|
+
* actually fires.
|
|
9
|
+
*
|
|
10
|
+
* `battle.BattleHooks` and `roguelike.CombatHooks` are both this, with their argument types
|
|
11
|
+
* fixed and their own documentation attached. They used to be two line-for-line copies of the
|
|
12
|
+
* same class; the difference between them was never the registry, only what a handler is
|
|
13
|
+
* handed when it runs.
|
|
14
|
+
*
|
|
15
|
+
* @example
|
|
16
|
+
* ```ts
|
|
17
|
+
* import { HookRegistry } from '@datamoc/mw_games/core';
|
|
18
|
+
*
|
|
19
|
+
* const hooks = new HookRegistry<[amount: number]>();
|
|
20
|
+
* const poisonRing = {};
|
|
21
|
+
*
|
|
22
|
+
* hooks.on('turnStart', (amount) => console.log('poison ticks for', amount), poisonRing);
|
|
23
|
+
* hooks.emit('turnStart', 3);
|
|
24
|
+
*
|
|
25
|
+
* // the ring is removed - every hook it registered comes off in one call
|
|
26
|
+
* hooks.offSource(poisonRing);
|
|
27
|
+
* ```
|
|
28
|
+
*/
|
|
29
|
+
export interface Hook<TArgs extends unknown[]> {
|
|
30
|
+
event: string;
|
|
31
|
+
handler: (...args: TArgs) => void;
|
|
32
|
+
/** whatever registered this hook - an ability, a held item - for bulk removal via `offSource` */
|
|
33
|
+
source?: unknown;
|
|
34
|
+
}
|
|
35
|
+
export declare class HookRegistry<TArgs extends unknown[]> {
|
|
36
|
+
private hooks;
|
|
37
|
+
on(event: string, handler: (...args: TArgs) => void, source?: unknown): void;
|
|
38
|
+
/** removes one specific handler; `offSource` is the usual way, this is for a one-off */
|
|
39
|
+
off(handler: (...args: TArgs) => void): void;
|
|
40
|
+
/** removes every hook registered with this `source` - a fainted creature's ability leaving */
|
|
41
|
+
offSource(source: unknown): void;
|
|
42
|
+
/** runs every handler registered for `event`, in registration order */
|
|
43
|
+
emit(event: string, ...args: TArgs): void;
|
|
44
|
+
/** how many handlers are registered, across every event */
|
|
45
|
+
get size(): number;
|
|
46
|
+
clear(): void;
|
|
47
|
+
}
|
|
48
|
+
//# sourceMappingURL=Hooks.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Hooks.d.ts","sourceRoot":"","sources":["../../src/core/Hooks.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,MAAM,WAAW,IAAI,CAAC,KAAK,SAAS,OAAO,EAAE;IAC5C,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,CAAC,GAAG,IAAI,EAAE,KAAK,KAAK,IAAI,CAAC;IAElC,iGAAiG;IACjG,MAAM,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,qBAAa,YAAY,CAAC,KAAK,SAAS,OAAO,EAAE;IAChD,OAAO,CAAC,KAAK,CAAqB;IAElC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,GAAG,IAAI,EAAE,KAAK,KAAK,IAAI,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,IAAI,CAE3E;IAED,wFAAwF;IACxF,GAAG,CAAC,OAAO,EAAE,CAAC,GAAG,IAAI,EAAE,KAAK,KAAK,IAAI,GAAG,IAAI,CAE3C;IAED,8FAA8F;IAC9F,SAAS,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI,CAE/B;IAED,uEAAuE;IACvE,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,KAAK,GAAG,IAAI,CAMxC;IAED,2DAA2D;IAC3D,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,KAAK,IAAI,IAAI,CAEZ;CACD"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
export class HookRegistry {
|
|
2
|
+
constructor() {
|
|
3
|
+
this.hooks = [];
|
|
4
|
+
}
|
|
5
|
+
on(event, handler, source) {
|
|
6
|
+
this.hooks.push({ event, handler, source });
|
|
7
|
+
}
|
|
8
|
+
/** removes one specific handler; `offSource` is the usual way, this is for a one-off */
|
|
9
|
+
off(handler) {
|
|
10
|
+
this.hooks = this.hooks.filter((hook) => hook.handler !== handler);
|
|
11
|
+
}
|
|
12
|
+
/** removes every hook registered with this `source` - a fainted creature's ability leaving */
|
|
13
|
+
offSource(source) {
|
|
14
|
+
this.hooks = this.hooks.filter((hook) => hook.source !== source);
|
|
15
|
+
}
|
|
16
|
+
/** runs every handler registered for `event`, in registration order */
|
|
17
|
+
emit(event, ...args) {
|
|
18
|
+
//iterate a copy: a handler may remove itself or another, which must not shift the
|
|
19
|
+
//iteration out from under this loop mid-dispatch
|
|
20
|
+
for (const hook of [...this.hooks]) {
|
|
21
|
+
if (hook.event === event)
|
|
22
|
+
hook.handler(...args);
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
/** how many handlers are registered, across every event */
|
|
26
|
+
get size() {
|
|
27
|
+
return this.hooks.length;
|
|
28
|
+
}
|
|
29
|
+
clear() {
|
|
30
|
+
this.hooks = [];
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=Hooks.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Hooks.js","sourceRoot":"","sources":["../../src/core/Hooks.ts"],"names":[],"mappings":"AAoCA,MAAM,OAAO,YAAY;IAAzB;QACS,UAAK,GAAkB,EAAE,CAAC;IAiCnC,CAAC;IA/BA,EAAE,CAAC,KAAa,EAAE,OAAiC,EAAE,MAAgB;QACpE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;IAC7C,CAAC;IAED,wFAAwF;IACxF,GAAG,CAAC,OAAiC;QACpC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,KAAK,OAAO,CAAC,CAAC;IACpE,CAAC;IAED,8FAA8F;IAC9F,SAAS,CAAC,MAAe;QACxB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC;IAClE,CAAC;IAED,uEAAuE;IACvE,IAAI,CAAC,KAAa,EAAE,GAAG,IAAW;QACjC,kFAAkF;QAClF,iDAAiD;QACjD,KAAK,MAAM,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YACpC,IAAI,IAAI,CAAC,KAAK,KAAK,KAAK;gBAAE,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC;QACjD,CAAC;IACF,CAAC;IAED,2DAA2D;IAC3D,IAAI,IAAI;QACP,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;IAC1B,CAAC;IAED,KAAK;QACJ,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;IACjB,CAAC;CACD"}
|
package/dist/core/Input.d.ts
CHANGED
|
@@ -9,6 +9,18 @@ import { Signal } from './Signal.ts';
|
|
|
9
9
|
* Keys are identified by `KeyboardEvent.code` (the physical key), so a binding to `KeyZ`
|
|
10
10
|
* lands on the same place under AZERTY as under QWERTY, which is what a player actually
|
|
11
11
|
* wants from a movement key.
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* ```ts
|
|
15
|
+
* import { Input } from '@datamoc/mw_games/core';
|
|
16
|
+
*
|
|
17
|
+
* Input.bind('confirm', ['Enter', 'Space']);
|
|
18
|
+
* Input.bind('left', ['ArrowLeft', 'KeyA']);
|
|
19
|
+
*
|
|
20
|
+
* // in the game loop:
|
|
21
|
+
* if (Input.justPressed('confirm')) console.log('confirmed');
|
|
22
|
+
* if (Input.isDown('left')) console.log('moving left');
|
|
23
|
+
* ```
|
|
12
24
|
*/
|
|
13
25
|
export type Action = string;
|
|
14
26
|
/** fires when an action starts; a listener returning true stops it reaching anything else */
|
|
@@ -94,6 +106,47 @@ export interface RumbleOptions {
|
|
|
94
106
|
* game reaching for "juice" should not have to feature-test this itself.
|
|
95
107
|
*/
|
|
96
108
|
export declare function rumble(padIndex: number, options: RumbleOptions, pads?: readonly (Gamepad | null)[]): void;
|
|
109
|
+
/** the pseudo key code for an on-screen touch control identified by `id` - bind it the same way a `KeyboardEvent.code` is bound */
|
|
110
|
+
export declare function touchCode(id: string): string;
|
|
111
|
+
/** binds this player's own action to an on-screen touch control, the same way `bindButton` wires up a gamepad button - call once during setup, then toggle it with `pressTouch`/`releaseTouch` */
|
|
112
|
+
export declare function bindTouch(action: Action, id?: string): void;
|
|
113
|
+
/**
|
|
114
|
+
* Presses an on-screen touch control bound with `bindTouch`, e.g. from a `Button`'s
|
|
115
|
+
* `onPress` - shares the same held/`justPressed` state a real key does, so holding a virtual
|
|
116
|
+
* d-pad button repeats a move the same way holding an arrow key does, rather than firing
|
|
117
|
+
* once per tap the way `Button.onClick` alone would.
|
|
118
|
+
*/
|
|
119
|
+
export declare function pressTouch(id: string): void;
|
|
120
|
+
export declare function releaseTouch(id: string): void;
|
|
121
|
+
/** where a swipe's own 8 directions and its short in-place tap map to, defaulting to this project's own default movement/wait bindings */
|
|
122
|
+
export interface SwipeActions {
|
|
123
|
+
up?: Action;
|
|
124
|
+
down?: Action;
|
|
125
|
+
left?: Action;
|
|
126
|
+
right?: Action;
|
|
127
|
+
upLeft?: Action;
|
|
128
|
+
upRight?: Action;
|
|
129
|
+
downLeft?: Action;
|
|
130
|
+
downRight?: Action;
|
|
131
|
+
/** dispatched for a touch that moved less than `minDistance`; omit to ignore taps */
|
|
132
|
+
tap?: Action;
|
|
133
|
+
}
|
|
134
|
+
export interface SwipeOptions {
|
|
135
|
+
actions?: SwipeActions;
|
|
136
|
+
/** minimum drag distance, in CSS pixels, before a touch counts as a swipe rather than a tap; default 24 */
|
|
137
|
+
minDistance?: number;
|
|
138
|
+
}
|
|
139
|
+
/**
|
|
140
|
+
* Turns a one-finger drag on `target` into a single directional action pulse - press
|
|
141
|
+
* immediately followed by release, the same shape a quick key tap produces - resolved to one
|
|
142
|
+
* of 8 directions by angle, or to `actions.tap` for a touch that barely moved. Movement by
|
|
143
|
+
* swipe rather than a held virtual d-pad is the more common mobile roguelike control scheme
|
|
144
|
+
* (a swipe per tile, not a held direction), so this dispatches one pulse per gesture rather
|
|
145
|
+
* than holding an action down for the drag's duration.
|
|
146
|
+
*
|
|
147
|
+
* Returns a function that removes the listeners this attached.
|
|
148
|
+
*/
|
|
149
|
+
export declare function attachSwipe(target: EventTarget, options?: SwipeOptions): () => void;
|
|
97
150
|
export declare function attach(target?: EventTarget): void;
|
|
98
151
|
export declare function detach(target?: EventTarget): void;
|
|
99
152
|
//# sourceMappingURL=Input.d.ts.map
|
package/dist/core/Input.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Input.d.ts","sourceRoot":"","sources":["../../src/core/Input.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC
|
|
1
|
+
{"version":3,"file":"Input.d.ts","sourceRoot":"","sources":["../../src/core/Input.ts"],"names":[],"mappings":"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"}
|