@sbugallo/pokecode 0.0.0 → 0.2.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/LICENSE +201 -0
- package/README.md +331 -2
- package/dist/adapters/opencode/rpc/contract.d.ts +813 -0
- package/dist/adapters/opencode/rpc/contract.d.ts.map +1 -0
- package/dist/adapters/opencode/rpc/contract.js +254 -0
- package/dist/adapters/opencode/rpc/contract.js.map +1 -0
- package/dist/adapters/opencode/server/handlers.d.ts +20 -0
- package/dist/adapters/opencode/server/handlers.d.ts.map +1 -0
- package/dist/adapters/opencode/server/handlers.js +41 -0
- package/dist/adapters/opencode/server/handlers.js.map +1 -0
- package/dist/adapters/opencode/server/plugin.d.ts +19 -0
- package/dist/adapters/opencode/server/plugin.d.ts.map +1 -0
- package/dist/adapters/opencode/server/plugin.js +101 -0
- package/dist/adapters/opencode/server/plugin.js.map +1 -0
- package/dist/adapters/opencode/server/usage-reconciliation.d.ts +24 -0
- package/dist/adapters/opencode/server/usage-reconciliation.d.ts.map +1 -0
- package/dist/adapters/opencode/server/usage-reconciliation.js +60 -0
- package/dist/adapters/opencode/server/usage-reconciliation.js.map +1 -0
- package/dist/adapters/opencode/tui/choices/cards.d.ts +32 -0
- package/dist/adapters/opencode/tui/choices/cards.d.ts.map +1 -0
- package/dist/adapters/opencode/tui/choices/cards.jsx +114 -0
- package/dist/adapters/opencode/tui/choices/cards.jsx.map +1 -0
- package/dist/adapters/opencode/tui/choices/encounter.d.ts +13 -0
- package/dist/adapters/opencode/tui/choices/encounter.d.ts.map +1 -0
- package/dist/adapters/opencode/tui/choices/encounter.jsx +30 -0
- package/dist/adapters/opencode/tui/choices/encounter.jsx.map +1 -0
- package/dist/adapters/opencode/tui/client.d.ts +164 -0
- package/dist/adapters/opencode/tui/client.d.ts.map +1 -0
- package/dist/adapters/opencode/tui/client.js +30 -0
- package/dist/adapters/opencode/tui/client.js.map +1 -0
- package/dist/adapters/opencode/tui/commands/commands.d.ts +21 -0
- package/dist/adapters/opencode/tui/commands/commands.d.ts.map +1 -0
- package/dist/adapters/opencode/tui/commands/commands.jsx +78 -0
- package/dist/adapters/opencode/tui/commands/commands.jsx.map +1 -0
- package/dist/adapters/opencode/tui/components/action-button.d.ts +12 -0
- package/dist/adapters/opencode/tui/components/action-button.d.ts.map +1 -0
- package/dist/adapters/opencode/tui/components/action-button.jsx +13 -0
- package/dist/adapters/opencode/tui/components/action-button.jsx.map +1 -0
- package/dist/adapters/opencode/tui/components/move-list.d.ts +13 -0
- package/dist/adapters/opencode/tui/components/move-list.d.ts.map +1 -0
- package/dist/adapters/opencode/tui/components/move-list.jsx +91 -0
- package/dist/adapters/opencode/tui/components/move-list.jsx.map +1 -0
- package/dist/adapters/opencode/tui/components/owner.d.ts +3 -0
- package/dist/adapters/opencode/tui/components/owner.d.ts.map +1 -0
- package/dist/adapters/opencode/tui/components/owner.js +16 -0
- package/dist/adapters/opencode/tui/components/owner.js.map +1 -0
- package/dist/adapters/opencode/tui/components/sprite.d.ts +13 -0
- package/dist/adapters/opencode/tui/components/sprite.d.ts.map +1 -0
- package/dist/adapters/opencode/tui/components/sprite.jsx +30 -0
- package/dist/adapters/opencode/tui/components/sprite.jsx.map +1 -0
- package/dist/adapters/opencode/tui/controls/native.d.ts +2 -0
- package/dist/adapters/opencode/tui/controls/native.d.ts.map +1 -0
- package/dist/adapters/opencode/tui/controls/native.js +22 -0
- package/dist/adapters/opencode/tui/controls/native.js.map +1 -0
- package/dist/adapters/opencode/tui/dex/actions.d.ts +12 -0
- package/dist/adapters/opencode/tui/dex/actions.d.ts.map +1 -0
- package/dist/adapters/opencode/tui/dex/actions.jsx +15 -0
- package/dist/adapters/opencode/tui/dex/actions.jsx.map +1 -0
- package/dist/adapters/opencode/tui/dex/dialog.d.ts +12 -0
- package/dist/adapters/opencode/tui/dex/dialog.d.ts.map +1 -0
- package/dist/adapters/opencode/tui/dex/dialog.jsx +79 -0
- package/dist/adapters/opencode/tui/dex/dialog.jsx.map +1 -0
- package/dist/adapters/opencode/tui/export/actions.d.ts +14 -0
- package/dist/adapters/opencode/tui/export/actions.d.ts.map +1 -0
- package/dist/adapters/opencode/tui/export/actions.js +25 -0
- package/dist/adapters/opencode/tui/export/actions.js.map +1 -0
- package/dist/adapters/opencode/tui/export/presentation.d.ts +16 -0
- package/dist/adapters/opencode/tui/export/presentation.d.ts.map +1 -0
- package/dist/adapters/opencode/tui/export/presentation.js +15 -0
- package/dist/adapters/opencode/tui/export/presentation.js.map +1 -0
- package/dist/adapters/opencode/tui/pc/actions.d.ts +22 -0
- package/dist/adapters/opencode/tui/pc/actions.d.ts.map +1 -0
- package/dist/adapters/opencode/tui/pc/actions.jsx +47 -0
- package/dist/adapters/opencode/tui/pc/actions.jsx.map +1 -0
- package/dist/adapters/opencode/tui/pc/details.d.ts +10 -0
- package/dist/adapters/opencode/tui/pc/details.d.ts.map +1 -0
- package/dist/adapters/opencode/tui/pc/details.jsx +51 -0
- package/dist/adapters/opencode/tui/pc/details.jsx.map +1 -0
- package/dist/adapters/opencode/tui/pc/dialog.d.ts +19 -0
- package/dist/adapters/opencode/tui/pc/dialog.d.ts.map +1 -0
- package/dist/adapters/opencode/tui/pc/dialog.jsx +263 -0
- package/dist/adapters/opencode/tui/pc/dialog.jsx.map +1 -0
- package/dist/adapters/opencode/tui/plugin.d.ts +14 -0
- package/dist/adapters/opencode/tui/plugin.d.ts.map +1 -0
- package/dist/adapters/opencode/tui/plugin.jsx +103 -0
- package/dist/adapters/opencode/tui/plugin.jsx.map +1 -0
- package/dist/adapters/opencode/tui/sidebar/actions.d.ts +21 -0
- package/dist/adapters/opencode/tui/sidebar/actions.d.ts.map +1 -0
- package/dist/adapters/opencode/tui/sidebar/actions.js +54 -0
- package/dist/adapters/opencode/tui/sidebar/actions.js.map +1 -0
- package/dist/adapters/opencode/tui/sidebar/register.d.ts +30 -0
- package/dist/adapters/opencode/tui/sidebar/register.d.ts.map +1 -0
- package/dist/adapters/opencode/tui/sidebar/register.jsx +21 -0
- package/dist/adapters/opencode/tui/sidebar/register.jsx.map +1 -0
- package/dist/adapters/opencode/tui/sidebar/view.d.ts +43 -0
- package/dist/adapters/opencode/tui/sidebar/view.d.ts.map +1 -0
- package/dist/adapters/opencode/tui/sidebar/view.jsx +166 -0
- package/dist/adapters/opencode/tui/sidebar/view.jsx.map +1 -0
- package/dist/adapters/opencode/tui/state/cleanup.d.ts +8 -0
- package/dist/adapters/opencode/tui/state/cleanup.d.ts.map +1 -0
- package/dist/adapters/opencode/tui/state/cleanup.js +68 -0
- package/dist/adapters/opencode/tui/state/cleanup.js.map +1 -0
- package/dist/adapters/opencode/tui/state/coordinator.d.ts +122 -0
- package/dist/adapters/opencode/tui/state/coordinator.d.ts.map +1 -0
- package/dist/adapters/opencode/tui/state/coordinator.js +40 -0
- package/dist/adapters/opencode/tui/state/coordinator.js.map +1 -0
- package/dist/adapters/opencode/tui/state/setup-failure.d.ts +2 -0
- package/dist/adapters/opencode/tui/state/setup-failure.d.ts.map +1 -0
- package/dist/adapters/opencode/tui/state/setup-failure.js +10 -0
- package/dist/adapters/opencode/tui/state/setup-failure.js.map +1 -0
- package/dist/adapters/opencode/tui/travel/actions.d.ts +16 -0
- package/dist/adapters/opencode/tui/travel/actions.d.ts.map +1 -0
- package/dist/adapters/opencode/tui/travel/actions.jsx +31 -0
- package/dist/adapters/opencode/tui/travel/actions.jsx.map +1 -0
- package/dist/adapters/opencode/tui/travel/dialog.d.ts +29 -0
- package/dist/adapters/opencode/tui/travel/dialog.d.ts.map +1 -0
- package/dist/adapters/opencode/tui/travel/dialog.jsx +128 -0
- package/dist/adapters/opencode/tui/travel/dialog.jsx.map +1 -0
- package/dist/adapters/opencode/tui/travel/projection.d.ts +29 -0
- package/dist/adapters/opencode/tui/travel/projection.d.ts.map +1 -0
- package/dist/adapters/opencode/tui/travel/projection.js +44 -0
- package/dist/adapters/opencode/tui/travel/projection.js.map +1 -0
- package/dist/adapters/presentation/game-notifications.d.ts +13 -0
- package/dist/adapters/presentation/game-notifications.d.ts.map +1 -0
- package/dist/adapters/presentation/game-notifications.js +111 -0
- package/dist/adapters/presentation/game-notifications.js.map +1 -0
- package/dist/adapters/presentation/localization.d.ts +12 -0
- package/dist/adapters/presentation/localization.d.ts.map +1 -0
- package/dist/adapters/presentation/localization.js +65 -0
- package/dist/adapters/presentation/localization.js.map +1 -0
- package/dist/adapters/presentation/move-details.d.ts +11 -0
- package/dist/adapters/presentation/move-details.d.ts.map +1 -0
- package/dist/adapters/presentation/move-details.js +47 -0
- package/dist/adapters/presentation/move-details.js.map +1 -0
- package/dist/adapters/presentation/pc-copy.d.ts +31 -0
- package/dist/adapters/presentation/pc-copy.d.ts.map +1 -0
- package/dist/adapters/presentation/pc-copy.js +56 -0
- package/dist/adapters/presentation/pc-copy.js.map +1 -0
- package/dist/adapters/presentation/ui-copy.d.ts +49 -0
- package/dist/adapters/presentation/ui-copy.d.ts.map +1 -0
- package/dist/adapters/presentation/ui-copy.js +81 -0
- package/dist/adapters/presentation/ui-copy.js.map +1 -0
- package/dist/adapters/showdown/format-team.d.ts +3 -0
- package/dist/adapters/showdown/format-team.d.ts.map +1 -0
- package/dist/adapters/showdown/format-team.js +23 -0
- package/dist/adapters/showdown/format-team.js.map +1 -0
- package/dist/adapters/sprites/cache.d.ts +12 -0
- package/dist/adapters/sprites/cache.d.ts.map +1 -0
- package/dist/adapters/sprites/cache.js +43 -0
- package/dist/adapters/sprites/cache.js.map +1 -0
- package/dist/adapters/sprites/contracts.d.ts +20 -0
- package/dist/adapters/sprites/contracts.d.ts.map +1 -0
- package/dist/adapters/sprites/contracts.js +12 -0
- package/dist/adapters/sprites/contracts.js.map +1 -0
- package/dist/adapters/sqlite/game-repository.d.ts +14 -0
- package/dist/adapters/sqlite/game-repository.d.ts.map +1 -0
- package/dist/adapters/sqlite/game-repository.js +48 -0
- package/dist/adapters/sqlite/game-repository.js.map +1 -0
- package/dist/adapters/sqlite/game-transaction.d.ts +5 -0
- package/dist/adapters/sqlite/game-transaction.d.ts.map +1 -0
- package/dist/adapters/sqlite/game-transaction.js +35 -0
- package/dist/adapters/sqlite/game-transaction.js.map +1 -0
- package/dist/adapters/sqlite/initialize-database.d.ts +6 -0
- package/dist/adapters/sqlite/initialize-database.d.ts.map +1 -0
- package/dist/adapters/sqlite/initialize-database.js +15 -0
- package/dist/adapters/sqlite/initialize-database.js.map +1 -0
- package/dist/adapters/sqlite/pokemon-mapper.d.ts +23 -0
- package/dist/adapters/sqlite/pokemon-mapper.d.ts.map +1 -0
- package/dist/adapters/sqlite/pokemon-mapper.js +41 -0
- package/dist/adapters/sqlite/pokemon-mapper.js.map +1 -0
- package/dist/adapters/sqlite/queries/collection.d.ts +8 -0
- package/dist/adapters/sqlite/queries/collection.d.ts.map +1 -0
- package/dist/adapters/sqlite/queries/collection.js +58 -0
- package/dist/adapters/sqlite/queries/collection.js.map +1 -0
- package/dist/adapters/sqlite/queries/game-state.d.ts +4 -0
- package/dist/adapters/sqlite/queries/game-state.d.ts.map +1 -0
- package/dist/adapters/sqlite/queries/game-state.js +165 -0
- package/dist/adapters/sqlite/queries/game-state.js.map +1 -0
- package/dist/adapters/sqlite/schema.d.ts +4 -0
- package/dist/adapters/sqlite/schema.d.ts.map +1 -0
- package/dist/adapters/sqlite/schema.js +284 -0
- package/dist/adapters/sqlite/schema.js.map +1 -0
- package/dist/adapters/sqlite/starter-selection-store.d.ts +4 -0
- package/dist/adapters/sqlite/starter-selection-store.d.ts.map +1 -0
- package/dist/adapters/sqlite/starter-selection-store.js +55 -0
- package/dist/adapters/sqlite/starter-selection-store.js.map +1 -0
- package/dist/adapters/sqlite/transaction-stores/choices.d.ts +7 -0
- package/dist/adapters/sqlite/transaction-stores/choices.d.ts.map +1 -0
- package/dist/adapters/sqlite/transaction-stores/choices.js +54 -0
- package/dist/adapters/sqlite/transaction-stores/choices.js.map +1 -0
- package/dist/adapters/sqlite/transaction-stores/encounters.d.ts +7 -0
- package/dist/adapters/sqlite/transaction-stores/encounters.d.ts.map +1 -0
- package/dist/adapters/sqlite/transaction-stores/encounters.js +59 -0
- package/dist/adapters/sqlite/transaction-stores/encounters.js.map +1 -0
- package/dist/adapters/sqlite/transaction-stores/exploration.d.ts +7 -0
- package/dist/adapters/sqlite/transaction-stores/exploration.d.ts.map +1 -0
- package/dist/adapters/sqlite/transaction-stores/exploration.js +65 -0
- package/dist/adapters/sqlite/transaction-stores/exploration.js.map +1 -0
- package/dist/adapters/sqlite/transaction-stores/pokemon.d.ts +7 -0
- package/dist/adapters/sqlite/transaction-stores/pokemon.d.ts.map +1 -0
- package/dist/adapters/sqlite/transaction-stores/pokemon.js +160 -0
- package/dist/adapters/sqlite/transaction-stores/pokemon.js.map +1 -0
- package/dist/adapters/sqlite/transaction-stores/queue-order.d.ts +5 -0
- package/dist/adapters/sqlite/transaction-stores/queue-order.d.ts.map +1 -0
- package/dist/adapters/sqlite/transaction-stores/queue-order.js +15 -0
- package/dist/adapters/sqlite/transaction-stores/queue-order.js.map +1 -0
- package/dist/adapters/sqlite/transaction-stores/receipts.d.ts +4 -0
- package/dist/adapters/sqlite/transaction-stores/receipts.d.ts.map +1 -0
- package/dist/adapters/sqlite/transaction-stores/receipts.js +11 -0
- package/dist/adapters/sqlite/transaction-stores/receipts.js.map +1 -0
- package/dist/adapters/sqlite/transaction-stores/trainers.d.ts +4 -0
- package/dist/adapters/sqlite/transaction-stores/trainers.d.ts.map +1 -0
- package/dist/adapters/sqlite/transaction-stores/trainers.js +11 -0
- package/dist/adapters/sqlite/transaction-stores/trainers.js.map +1 -0
- package/dist/application/contracts/game.d.ts +1412 -0
- package/dist/application/contracts/game.d.ts.map +1 -0
- package/dist/application/contracts/game.js +126 -0
- package/dist/application/contracts/game.js.map +1 -0
- package/dist/application/contracts/starter-choice.d.ts +6 -0
- package/dist/application/contracts/starter-choice.d.ts.map +1 -0
- package/dist/application/contracts/starter-choice.js +2 -0
- package/dist/application/contracts/starter-choice.js.map +1 -0
- package/dist/application/game.d.ts +34 -0
- package/dist/application/game.d.ts.map +1 -0
- package/dist/application/game.js +67 -0
- package/dist/application/game.js.map +1 -0
- package/dist/application/ports/game-transaction.d.ts +173 -0
- package/dist/application/ports/game-transaction.d.ts.map +1 -0
- package/dist/application/ports/game-transaction.js +2 -0
- package/dist/application/ports/game-transaction.js.map +1 -0
- package/dist/application/ports/game.d.ts +11 -0
- package/dist/application/ports/game.d.ts.map +1 -0
- package/dist/application/ports/game.js +2 -0
- package/dist/application/ports/game.js.map +1 -0
- package/dist/application/ports/starter-selection-store.d.ts +23 -0
- package/dist/application/ports/starter-selection-store.d.ts.map +1 -0
- package/dist/application/ports/starter-selection-store.js +2 -0
- package/dist/application/ports/starter-selection-store.js.map +1 -0
- package/dist/application/use-cases/choices.d.ts +9 -0
- package/dist/application/use-cases/choices.d.ts.map +1 -0
- package/dist/application/use-cases/choices.js +113 -0
- package/dist/application/use-cases/choices.js.map +1 -0
- package/dist/application/use-cases/choose-regional-starter.d.ts +4 -0
- package/dist/application/use-cases/choose-regional-starter.d.ts.map +1 -0
- package/dist/application/use-cases/choose-regional-starter.js +37 -0
- package/dist/application/use-cases/choose-regional-starter.js.map +1 -0
- package/dist/application/use-cases/choose-starter.d.ts +15 -0
- package/dist/application/use-cases/choose-starter.d.ts.map +1 -0
- package/dist/application/use-cases/choose-starter.js +26 -0
- package/dist/application/use-cases/choose-starter.js.map +1 -0
- package/dist/application/use-cases/encounters.d.ts +234 -0
- package/dist/application/use-cases/encounters.d.ts.map +1 -0
- package/dist/application/use-cases/encounters.js +39 -0
- package/dist/application/use-cases/encounters.js.map +1 -0
- package/dist/application/use-cases/game-command-support.d.ts +16 -0
- package/dist/application/use-cases/game-command-support.d.ts.map +1 -0
- package/dist/application/use-cases/game-command-support.js +16 -0
- package/dist/application/use-cases/game-command-support.js.map +1 -0
- package/dist/application/use-cases/game-commands.d.ts +244 -0
- package/dist/application/use-cases/game-commands.d.ts.map +1 -0
- package/dist/application/use-cases/game-commands.js +14 -0
- package/dist/application/use-cases/game-commands.js.map +1 -0
- package/dist/application/use-cases/learn-move.d.ts +22 -0
- package/dist/application/use-cases/learn-move.d.ts.map +1 -0
- package/dist/application/use-cases/learn-move.js +24 -0
- package/dist/application/use-cases/learn-move.js.map +1 -0
- package/dist/application/use-cases/party.d.ts +8 -0
- package/dist/application/use-cases/party.d.ts.map +1 -0
- package/dist/application/use-cases/party.js +44 -0
- package/dist/application/use-cases/party.js.map +1 -0
- package/dist/application/use-cases/record-usage.d.ts +10 -0
- package/dist/application/use-cases/record-usage.d.ts.map +1 -0
- package/dist/application/use-cases/record-usage.js +145 -0
- package/dist/application/use-cases/record-usage.js.map +1 -0
- package/dist/application/use-cases/resolve-progression.d.ts +9 -0
- package/dist/application/use-cases/resolve-progression.d.ts.map +1 -0
- package/dist/application/use-cases/resolve-progression.js +82 -0
- package/dist/application/use-cases/resolve-progression.js.map +1 -0
- package/dist/application/use-cases/travel.d.ts +7 -0
- package/dist/application/use-cases/travel.d.ts.map +1 -0
- package/dist/application/use-cases/travel.js +58 -0
- package/dist/application/use-cases/travel.js.map +1 -0
- package/dist/cli/command.d.ts +16 -0
- package/dist/cli/command.d.ts.map +1 -0
- package/dist/cli/command.js +73 -0
- package/dist/cli/command.js.map +1 -0
- package/dist/cli/install.d.ts +9 -0
- package/dist/cli/install.d.ts.map +1 -0
- package/dist/cli/install.js +23 -0
- package/dist/cli/install.js.map +1 -0
- package/dist/cli.d.ts +3 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +124 -0
- package/dist/cli.js.map +1 -0
- package/dist/domain/choices/choices.d.ts +79 -0
- package/dist/domain/choices/choices.d.ts.map +1 -0
- package/dist/domain/choices/choices.js +54 -0
- package/dist/domain/choices/choices.js.map +1 -0
- package/dist/domain/content/catalog.d.ts +241 -0
- package/dist/domain/content/catalog.d.ts.map +1 -0
- package/dist/domain/content/catalog.js +286 -0
- package/dist/domain/content/catalog.js.map +1 -0
- package/dist/domain/content/catalogs/abilities-catalog.d.ts +8 -0
- package/dist/domain/content/catalogs/abilities-catalog.d.ts.map +1 -0
- package/dist/domain/content/catalogs/abilities-catalog.js +2054 -0
- package/dist/domain/content/catalogs/abilities-catalog.js.map +1 -0
- package/dist/domain/content/catalogs/alola-locations-catalog.d.ts +4949 -0
- package/dist/domain/content/catalogs/alola-locations-catalog.d.ts.map +1 -0
- package/dist/domain/content/catalogs/alola-locations-catalog.js +5994 -0
- package/dist/domain/content/catalogs/alola-locations-catalog.js.map +1 -0
- package/dist/domain/content/catalogs/encouter-methods.d.ts +2 -0
- package/dist/domain/content/catalogs/encouter-methods.d.ts.map +1 -0
- package/dist/domain/content/catalogs/encouter-methods.js +69 -0
- package/dist/domain/content/catalogs/encouter-methods.js.map +1 -0
- package/dist/domain/content/catalogs/galar-locations-catalog.d.ts +6707 -0
- package/dist/domain/content/catalogs/galar-locations-catalog.d.ts.map +1 -0
- package/dist/domain/content/catalogs/galar-locations-catalog.js +8089 -0
- package/dist/domain/content/catalogs/galar-locations-catalog.js.map +1 -0
- package/dist/domain/content/catalogs/hoenn-locations-catalog.d.ts +2922 -0
- package/dist/domain/content/catalogs/hoenn-locations-catalog.d.ts.map +1 -0
- package/dist/domain/content/catalogs/hoenn-locations-catalog.js +3541 -0
- package/dist/domain/content/catalogs/hoenn-locations-catalog.js.map +1 -0
- package/dist/domain/content/catalogs/johto-locations-catalog.d.ts +29 -0
- package/dist/domain/content/catalogs/johto-locations-catalog.d.ts.map +1 -0
- package/dist/domain/content/catalogs/johto-locations-catalog.js +4151 -0
- package/dist/domain/content/catalogs/johto-locations-catalog.js.map +1 -0
- package/dist/domain/content/catalogs/kalos-locations-catalog.d.ts +29 -0
- package/dist/domain/content/catalogs/kalos-locations-catalog.d.ts.map +1 -0
- package/dist/domain/content/catalogs/kalos-locations-catalog.js +4346 -0
- package/dist/domain/content/catalogs/kalos-locations-catalog.js.map +1 -0
- package/dist/domain/content/catalogs/kanto-locations-catalog.d.ts +2304 -0
- package/dist/domain/content/catalogs/kanto-locations-catalog.d.ts.map +1 -0
- package/dist/domain/content/catalogs/kanto-locations-catalog.js +2796 -0
- package/dist/domain/content/catalogs/kanto-locations-catalog.js.map +1 -0
- package/dist/domain/content/catalogs/moves-catalog.d.ts +62 -0
- package/dist/domain/content/catalogs/moves-catalog.d.ts.map +1 -0
- package/dist/domain/content/catalogs/moves-catalog.js +12883 -0
- package/dist/domain/content/catalogs/moves-catalog.js.map +1 -0
- package/dist/domain/content/catalogs/natures-catalog.d.ts +202 -0
- package/dist/domain/content/catalogs/natures-catalog.d.ts.map +1 -0
- package/dist/domain/content/catalogs/natures-catalog.js +228 -0
- package/dist/domain/content/catalogs/natures-catalog.js.map +1 -0
- package/dist/domain/content/catalogs/paldea-locations-catalog.d.ts +14756 -0
- package/dist/domain/content/catalogs/paldea-locations-catalog.d.ts.map +1 -0
- package/dist/domain/content/catalogs/paldea-locations-catalog.js +17762 -0
- package/dist/domain/content/catalogs/paldea-locations-catalog.js.map +1 -0
- package/dist/domain/content/catalogs/pokemon-catalog.d.ts +75 -0
- package/dist/domain/content/catalogs/pokemon-catalog.d.ts.map +1 -0
- package/dist/domain/content/catalogs/pokemon-catalog.js +100649 -0
- package/dist/domain/content/catalogs/pokemon-catalog.js.map +1 -0
- package/dist/domain/content/catalogs/regional-forms-catalog.d.ts +3033 -0
- package/dist/domain/content/catalogs/regional-forms-catalog.d.ts.map +1 -0
- package/dist/domain/content/catalogs/regional-forms-catalog.js +4358 -0
- package/dist/domain/content/catalogs/regional-forms-catalog.js.map +1 -0
- package/dist/domain/content/catalogs/regions-catalog.d.ts +8 -0
- package/dist/domain/content/catalogs/regions-catalog.d.ts.map +1 -0
- package/dist/domain/content/catalogs/regions-catalog.js +66 -0
- package/dist/domain/content/catalogs/regions-catalog.js.map +1 -0
- package/dist/domain/content/catalogs/sinnoh-locations-catalog.d.ts +5955 -0
- package/dist/domain/content/catalogs/sinnoh-locations-catalog.d.ts.map +1 -0
- package/dist/domain/content/catalogs/sinnoh-locations-catalog.js +7184 -0
- package/dist/domain/content/catalogs/sinnoh-locations-catalog.js.map +1 -0
- package/dist/domain/content/catalogs/stats-catalog.d.ts +38 -0
- package/dist/domain/content/catalogs/stats-catalog.d.ts.map +1 -0
- package/dist/domain/content/catalogs/stats-catalog.js +45 -0
- package/dist/domain/content/catalogs/stats-catalog.js.map +1 -0
- package/dist/domain/content/catalogs/types-catalog.d.ts +8 -0
- package/dist/domain/content/catalogs/types-catalog.d.ts.map +1 -0
- package/dist/domain/content/catalogs/types-catalog.js +129 -0
- package/dist/domain/content/catalogs/types-catalog.js.map +1 -0
- package/dist/domain/content/catalogs/unova-locations-catalog.d.ts +29 -0
- package/dist/domain/content/catalogs/unova-locations-catalog.d.ts.map +1 -0
- package/dist/domain/content/catalogs/unova-locations-catalog.js +6552 -0
- package/dist/domain/content/catalogs/unova-locations-catalog.js.map +1 -0
- package/dist/domain/content/encounter-catalog.d.ts +27 -0
- package/dist/domain/content/encounter-catalog.d.ts.map +1 -0
- package/dist/domain/content/encounter-catalog.js +75 -0
- package/dist/domain/content/encounter-catalog.js.map +1 -0
- package/dist/domain/content/names.d.ts +6 -0
- package/dist/domain/content/names.d.ts.map +1 -0
- package/dist/domain/content/names.js +7 -0
- package/dist/domain/content/names.js.map +1 -0
- package/dist/domain/content/schema.d.ts +153 -0
- package/dist/domain/content/schema.d.ts.map +1 -0
- package/dist/domain/content/schema.js +81 -0
- package/dist/domain/content/schema.js.map +1 -0
- package/dist/domain/content/sprites.d.ts +5 -0
- package/dist/domain/content/sprites.d.ts.map +1 -0
- package/dist/domain/content/sprites.js +22 -0
- package/dist/domain/content/sprites.js.map +1 -0
- package/dist/domain/encounters/encounter.d.ts +56 -0
- package/dist/domain/encounters/encounter.d.ts.map +1 -0
- package/dist/domain/encounters/encounter.js +74 -0
- package/dist/domain/encounters/encounter.js.map +1 -0
- package/dist/domain/exploration/exploration.d.ts +63 -0
- package/dist/domain/exploration/exploration.d.ts.map +1 -0
- package/dist/domain/exploration/exploration.js +48 -0
- package/dist/domain/exploration/exploration.js.map +1 -0
- package/dist/domain/party/party.d.ts +59 -0
- package/dist/domain/party/party.d.ts.map +1 -0
- package/dist/domain/party/party.js +19 -0
- package/dist/domain/party/party.js.map +1 -0
- package/dist/domain/pokemon/model.d.ts +43 -0
- package/dist/domain/pokemon/model.d.ts.map +1 -0
- package/dist/domain/pokemon/model.js +18 -0
- package/dist/domain/pokemon/model.js.map +1 -0
- package/dist/domain/pokemon/nature.d.ts +10 -0
- package/dist/domain/pokemon/nature.d.ts.map +1 -0
- package/dist/domain/pokemon/nature.js +23 -0
- package/dist/domain/pokemon/nature.js.map +1 -0
- package/dist/domain/pokemon/starter.d.ts +23 -0
- package/dist/domain/pokemon/starter.d.ts.map +1 -0
- package/dist/domain/pokemon/starter.js +59 -0
- package/dist/domain/pokemon/starter.js.map +1 -0
- package/dist/domain/pokemon/stats.d.ts +6 -0
- package/dist/domain/pokemon/stats.d.ts.map +1 -0
- package/dist/domain/pokemon/stats.js +35 -0
- package/dist/domain/pokemon/stats.js.map +1 -0
- package/dist/domain/pokemon/types.d.ts +37 -0
- package/dist/domain/pokemon/types.d.ts.map +1 -0
- package/dist/domain/pokemon/types.js +30 -0
- package/dist/domain/pokemon/types.js.map +1 -0
- package/dist/domain/progression/catalog.d.ts +34 -0
- package/dist/domain/progression/catalog.d.ts.map +1 -0
- package/dist/domain/progression/catalog.js +258 -0
- package/dist/domain/progression/catalog.js.map +1 -0
- package/dist/domain/progression/level-evolution.d.ts +13 -0
- package/dist/domain/progression/level-evolution.d.ts.map +1 -0
- package/dist/domain/progression/level-evolution.js +245 -0
- package/dist/domain/progression/level-evolution.js.map +1 -0
- package/dist/domain/progression/policies.d.ts +38 -0
- package/dist/domain/progression/policies.d.ts.map +1 -0
- package/dist/domain/progression/policies.js +78 -0
- package/dist/domain/progression/policies.js.map +1 -0
- package/dist/domain/shared/identifiers.d.ts +12 -0
- package/dist/domain/shared/identifiers.d.ts.map +1 -0
- package/dist/domain/shared/identifiers.js +7 -0
- package/dist/domain/shared/identifiers.js.map +1 -0
- package/dist/domain/shared/language.d.ts +7 -0
- package/dist/domain/shared/language.d.ts.map +1 -0
- package/dist/domain/shared/language.js +3 -0
- package/dist/domain/shared/language.js.map +1 -0
- package/dist/domain/trainer/trainer.d.ts +7 -0
- package/dist/domain/trainer/trainer.d.ts.map +1 -0
- package/dist/domain/trainer/trainer.js +2 -0
- package/dist/domain/trainer/trainer.js.map +1 -0
- package/dist/domain/usage/usage.d.ts +21 -0
- package/dist/domain/usage/usage.d.ts.map +1 -0
- package/dist/domain/usage/usage.js +23 -0
- package/dist/domain/usage/usage.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +183819 -0
- package/dist/index.js.map +1 -0
- package/dist/package.json +10 -0
- package/dist/rpc.d.ts +2 -0
- package/dist/rpc.d.ts.map +1 -0
- package/dist/rpc.js +568 -0
- package/dist/rpc.js.map +1 -0
- package/dist/tui.d.ts +2 -0
- package/dist/tui.d.ts.map +1 -0
- package/dist/tui.js +184828 -0
- package/package.json +78 -5
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import type { Language } from "../../../../domain/shared/language.js";
|
|
2
|
+
import type { SpriteResolver } from "../../../sprites/contracts.js";
|
|
3
|
+
type TravelLocation = {
|
|
4
|
+
readonly id: string;
|
|
5
|
+
readonly name: string;
|
|
6
|
+
readonly unlocked: boolean;
|
|
7
|
+
readonly encounterless: boolean;
|
|
8
|
+
readonly regionId?: string | undefined;
|
|
9
|
+
};
|
|
10
|
+
type LocationPokemonPreview = {
|
|
11
|
+
readonly speciesId: string;
|
|
12
|
+
readonly name: string;
|
|
13
|
+
readonly status: "caught" | "seen" | "unknown";
|
|
14
|
+
};
|
|
15
|
+
export declare function LocationTravelDialog(properties: {
|
|
16
|
+
readonly currentLocationId: string;
|
|
17
|
+
readonly language: Language;
|
|
18
|
+
readonly locations: readonly TravelLocation[];
|
|
19
|
+
readonly regions?: readonly {
|
|
20
|
+
readonly id: string;
|
|
21
|
+
readonly name: string;
|
|
22
|
+
}[] | undefined;
|
|
23
|
+
readonly onClose: () => void;
|
|
24
|
+
readonly onTravel: (locationId: string) => Promise<void>;
|
|
25
|
+
readonly pokemonByLocation: Readonly<Record<string, readonly LocationPokemonPreview[]>>;
|
|
26
|
+
readonly resolveSprite: SpriteResolver;
|
|
27
|
+
}): any;
|
|
28
|
+
export {};
|
|
29
|
+
//# sourceMappingURL=dialog.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dialog.d.ts","sourceRoot":"","sources":["../../../../../src/adapters/opencode/tui/travel/dialog.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uCAAuC,CAAA;AAErE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAA;AAInE,KAAK,cAAc,GAAG;IACpB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAA;IAC1B,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAA;IAC/B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CACvC,CAAA;AAED,KAAK,sBAAsB,GAAG;IAC5B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,MAAM,EAAE,QAAQ,GAAG,MAAM,GAAG,SAAS,CAAA;CAC/C,CAAA;AAED,wBAAgB,oBAAoB,CAAC,UAAU,EAAE;IAC/C,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAA;IAClC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAA;IAC3B,QAAQ,CAAC,SAAS,EAAE,SAAS,cAAc,EAAE,CAAA;IAC7C,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS;QAAE,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,GAAG,SAAS,CAAA;IACxF,QAAQ,CAAC,OAAO,EAAE,MAAM,IAAI,CAAA;IAC5B,QAAQ,CAAC,QAAQ,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACxD,QAAQ,CAAC,iBAAiB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,sBAAsB,EAAE,CAAC,CAAC,CAAA;IACvF,QAAQ,CAAC,aAAa,EAAE,cAAc,CAAA;CACvC,OA+OA"}
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
import { useKeyboard } from "@opentui/solid";
|
|
2
|
+
import { createSignal, For, Show } from "solid-js";
|
|
3
|
+
import { uiCopy } from "../../../presentation/ui-copy.js";
|
|
4
|
+
import { bold, PokecodeActionButton } from "../components/action-button.js";
|
|
5
|
+
import { Sprite } from "../components/sprite.js";
|
|
6
|
+
export function LocationTravelDialog(properties) {
|
|
7
|
+
const copy = () => uiCopy(properties.language);
|
|
8
|
+
const initialLocationId = properties.locations.some((location) => location.id === properties.currentLocationId)
|
|
9
|
+
? properties.currentLocationId
|
|
10
|
+
: (properties.locations[0]?.id ?? "");
|
|
11
|
+
const [selectedLocationId, setSelectedLocationId] = createSignal(initialLocationId);
|
|
12
|
+
let locationsScrollbox;
|
|
13
|
+
let pokemonScrollbox;
|
|
14
|
+
const selectedLocation = () => properties.locations.find((location) => location.id === selectedLocationId());
|
|
15
|
+
const locationGroups = () => properties.regions?.length
|
|
16
|
+
? properties.regions
|
|
17
|
+
.map((region) => ({
|
|
18
|
+
...region,
|
|
19
|
+
locations: properties.locations.filter((location) => location.regionId === region.id),
|
|
20
|
+
}))
|
|
21
|
+
.filter((region) => region.locations.length > 0)
|
|
22
|
+
: [{ id: "", name: "", locations: properties.locations }];
|
|
23
|
+
const pokemonRows = () => {
|
|
24
|
+
const pokemon = properties.pokemonByLocation[selectedLocationId()] ?? [];
|
|
25
|
+
const rows = [];
|
|
26
|
+
for (let index = 0; index < pokemon.length; index += 3) {
|
|
27
|
+
rows.push(pokemon.slice(index, index + 3));
|
|
28
|
+
}
|
|
29
|
+
return rows;
|
|
30
|
+
};
|
|
31
|
+
const selectLocation = (locationId) => {
|
|
32
|
+
setSelectedLocationId(locationId);
|
|
33
|
+
pokemonScrollbox?.scrollTo(0);
|
|
34
|
+
locationsScrollbox?.scrollChildIntoView(`travel-location-${locationId}`);
|
|
35
|
+
};
|
|
36
|
+
const travel = () => {
|
|
37
|
+
const location = selectedLocation();
|
|
38
|
+
if (location !== undefined)
|
|
39
|
+
void properties.onTravel(location.id);
|
|
40
|
+
};
|
|
41
|
+
useKeyboard((event) => {
|
|
42
|
+
if (event.name === "escape") {
|
|
43
|
+
event.preventDefault();
|
|
44
|
+
event.stopPropagation();
|
|
45
|
+
properties.onClose();
|
|
46
|
+
return;
|
|
47
|
+
}
|
|
48
|
+
if (event.name === "return") {
|
|
49
|
+
event.preventDefault();
|
|
50
|
+
event.stopPropagation();
|
|
51
|
+
travel();
|
|
52
|
+
return;
|
|
53
|
+
}
|
|
54
|
+
if (event.name === "pageup" || event.name === "pagedown") {
|
|
55
|
+
event.preventDefault();
|
|
56
|
+
event.stopPropagation();
|
|
57
|
+
pokemonScrollbox?.scrollBy(event.name === "pageup" ? -1 : 1, "viewport");
|
|
58
|
+
return;
|
|
59
|
+
}
|
|
60
|
+
if (event.name !== "up" && event.name !== "down")
|
|
61
|
+
return;
|
|
62
|
+
event.preventDefault();
|
|
63
|
+
event.stopPropagation();
|
|
64
|
+
const selectedIndex = properties.locations.findIndex((location) => location.id === selectedLocationId());
|
|
65
|
+
const offset = event.name === "up" ? -1 : 1;
|
|
66
|
+
const nextLocation = properties.locations[Math.max(0, Math.min(properties.locations.length - 1, selectedIndex + offset))];
|
|
67
|
+
if (nextLocation !== undefined)
|
|
68
|
+
selectLocation(nextLocation.id);
|
|
69
|
+
});
|
|
70
|
+
return (<box backgroundColor="#111827" border borderColor="#4b5563" borderStyle="rounded" flexDirection="column" gap={1} padding={1} shouldFill width="100%" height="100%">
|
|
71
|
+
<text attributes={bold}>{copy().locationsDialog}</text>
|
|
72
|
+
<box backgroundColor="#111827" flexDirection="row" flexGrow={1} gap={1} minHeight={0} width="100%">
|
|
73
|
+
<scrollbox backgroundColor="#111827" contentOptions={{ flexDirection: "column" }} flexShrink={0} height="100%" ref={(renderable) => {
|
|
74
|
+
locationsScrollbox = renderable;
|
|
75
|
+
}} shouldFill scrollY verticalScrollbarOptions={{ width: 1 }} width="30%">
|
|
76
|
+
<For each={locationGroups()}>
|
|
77
|
+
{(region) => (<box flexDirection="column" flexShrink={0}>
|
|
78
|
+
<Show when={region.name}>
|
|
79
|
+
<text attributes={bold}>{region.name}</text>
|
|
80
|
+
</Show>
|
|
81
|
+
<For each={region.locations}>
|
|
82
|
+
{(location) => (<button id={`travel-location-${location.id}`} focusable paddingLeft={1} paddingRight={1} type="button" onMouseUp={() => selectLocation(location.id)}>
|
|
83
|
+
<text fg={selectedLocationId() === location.id ? "#22c55e" : "#d1d5db"}>
|
|
84
|
+
{`${selectedLocationId() === location.id ? "› " : " "}${location.name}`}
|
|
85
|
+
</text>
|
|
86
|
+
</button>)}
|
|
87
|
+
</For>
|
|
88
|
+
</box>)}
|
|
89
|
+
</For>
|
|
90
|
+
</scrollbox>
|
|
91
|
+
<box backgroundColor="#111827" flexDirection="column" flexGrow={1} minWidth={0} minHeight={0} shouldFill>
|
|
92
|
+
<text attributes={bold}>{selectedLocation()?.name ?? copy().unknown}</text>
|
|
93
|
+
<scrollbox backgroundColor="#111827" contentOptions={{ flexDirection: "column" }} flexGrow={1} flexShrink={1} minHeight={0} ref={(renderable) => {
|
|
94
|
+
pokemonScrollbox = renderable;
|
|
95
|
+
}} shouldFill scrollY verticalScrollbarOptions={{ width: 1 }} width="100%">
|
|
96
|
+
<Show when={pokemonRows().length > 0} fallback={<text>{copy().noLocationPokemon}</text>}>
|
|
97
|
+
<For each={pokemonRows()}>
|
|
98
|
+
{(row) => (<box flexDirection="row" flexShrink={0} width="100%">
|
|
99
|
+
<For each={row}>
|
|
100
|
+
{(pokemon) => (<box alignItems="center" backgroundColor="#111827" flexBasis={0} flexDirection="column" flexGrow={1} gap={1} height={8} justifyContent="center" minWidth={0} shouldFill>
|
|
101
|
+
<box alignItems="center" height={4} justifyContent="center" width="100%">
|
|
102
|
+
<Sprite compactFallback height={3} language={() => properties.language} resolve={properties.resolveSprite} shiny={false} gender="genderless" speciesId={pokemon.status === "unknown" ? "0" : pokemon.speciesId} width={6}/>
|
|
103
|
+
</box>
|
|
104
|
+
<box alignItems="center" flexDirection="row" height={3} justifyContent="center" width="100%">
|
|
105
|
+
<text fg={pokemon.status === "caught"
|
|
106
|
+
? "#22c55e"
|
|
107
|
+
: pokemon.status === "seen"
|
|
108
|
+
? "#9ca3af"
|
|
109
|
+
: "#ffffff"}>
|
|
110
|
+
{pokemon.status === "unknown" ? " " : "● "}
|
|
111
|
+
</text>
|
|
112
|
+
<text>{pokemon.status === "unknown" ? "???" : pokemon.name}</text>
|
|
113
|
+
</box>
|
|
114
|
+
</box>)}
|
|
115
|
+
</For>
|
|
116
|
+
</box>)}
|
|
117
|
+
</For>
|
|
118
|
+
</Show>
|
|
119
|
+
</scrollbox>
|
|
120
|
+
</box>
|
|
121
|
+
</box>
|
|
122
|
+
<box flexDirection="row" gap={1} justifyContent="center">
|
|
123
|
+
<PokecodeActionButton hovered={() => false} label={copy().dismiss} onActivate={async () => properties.onClose()} onHover={() => { }} onLeave={() => { }} tone="secondary"/>
|
|
124
|
+
<PokecodeActionButton hovered={() => false} label={copy().travel} onActivate={async () => travel()} onHover={() => { }} onLeave={() => { }} tone="success"/>
|
|
125
|
+
</box>
|
|
126
|
+
</box>);
|
|
127
|
+
}
|
|
128
|
+
//# sourceMappingURL=dialog.jsx.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dialog.jsx","sourceRoot":"","sources":["../../../../../src/adapters/opencode/tui/travel/dialog.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import type { GameState, PokemonDex } from "../../../../application/contracts/game.js";
|
|
2
|
+
export type TravelPokemonPreview = {
|
|
3
|
+
readonly speciesId: string;
|
|
4
|
+
readonly name: string;
|
|
5
|
+
readonly status: "caught" | "seen" | "unknown";
|
|
6
|
+
};
|
|
7
|
+
export declare function locationTravelProjection(state: GameState, dex: PokemonDex): {
|
|
8
|
+
currentLocationId: string;
|
|
9
|
+
language: "en" | "es";
|
|
10
|
+
locations: {
|
|
11
|
+
regionId: string;
|
|
12
|
+
id: string & import("zod").$brand<"LocationId">;
|
|
13
|
+
name: string;
|
|
14
|
+
unlocked: boolean;
|
|
15
|
+
encounterless: boolean;
|
|
16
|
+
}[];
|
|
17
|
+
regions: {
|
|
18
|
+
id: string;
|
|
19
|
+
name: string;
|
|
20
|
+
}[];
|
|
21
|
+
pokemonByLocation: {
|
|
22
|
+
[k: string]: {
|
|
23
|
+
speciesId: string & import("zod").$brand<"SpeciesId">;
|
|
24
|
+
name: string;
|
|
25
|
+
status: "unknown" | "caught" | "seen";
|
|
26
|
+
}[];
|
|
27
|
+
};
|
|
28
|
+
} | null;
|
|
29
|
+
//# sourceMappingURL=projection.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"projection.d.ts","sourceRoot":"","sources":["../../../../../src/adapters/opencode/tui/travel/projection.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,2CAA2C,CAAA;AAOtF,MAAM,MAAM,oBAAoB,GAAG;IACjC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,MAAM,EAAE,QAAQ,GAAG,MAAM,GAAG,SAAS,CAAA;CAC/C,CAAA;AAED,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,UAAU;;;;;;;;;;;;;;;;;;;;;SA+CzE"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { fixedSpecialEncountersForLocation, localizedSpeciesName, ordinaryEncountersForLocation, } from "../../../../domain/content/catalog.js";
|
|
2
|
+
export function locationTravelProjection(state, dex) {
|
|
3
|
+
const exploration = state.exploration;
|
|
4
|
+
const regionId = state.region;
|
|
5
|
+
if (exploration === null || regionId === null)
|
|
6
|
+
return null;
|
|
7
|
+
const visitedRegions = exploration.regions.filter((region) => region.visited);
|
|
8
|
+
const locations = visitedRegions.length === 0
|
|
9
|
+
? exploration.locations
|
|
10
|
+
.filter((location) => location.unlocked)
|
|
11
|
+
.map((location) => ({ ...location, regionId }))
|
|
12
|
+
: visitedRegions.flatMap((region) => region.locations
|
|
13
|
+
.filter((location) => location.unlocked)
|
|
14
|
+
.map((location) => ({ ...location, regionId: region.id })));
|
|
15
|
+
const speciesStatus = new Map(dex.discoveries.map((pokemon) => [pokemon.speciesId, pokemon.status]));
|
|
16
|
+
const pokemonByLocation = Object.fromEntries(locations.map((location) => {
|
|
17
|
+
const encounters = [
|
|
18
|
+
...ordinaryEncountersForLocation(location.id),
|
|
19
|
+
...fixedSpecialEncountersForLocation(location.regionId, location.id),
|
|
20
|
+
];
|
|
21
|
+
const seenSpecies = new Set();
|
|
22
|
+
const pokemon = encounters.flatMap((encounter) => {
|
|
23
|
+
if (seenSpecies.has(encounter.speciesId))
|
|
24
|
+
return [];
|
|
25
|
+
seenSpecies.add(encounter.speciesId);
|
|
26
|
+
return [
|
|
27
|
+
{
|
|
28
|
+
speciesId: encounter.speciesId,
|
|
29
|
+
name: localizedSpeciesName(encounter.speciesId, state.locale),
|
|
30
|
+
status: speciesStatus.get(encounter.speciesId) ?? "unknown",
|
|
31
|
+
},
|
|
32
|
+
];
|
|
33
|
+
});
|
|
34
|
+
return [location.id, pokemon];
|
|
35
|
+
}));
|
|
36
|
+
return {
|
|
37
|
+
currentLocationId: state.location ?? "",
|
|
38
|
+
language: state.locale,
|
|
39
|
+
locations,
|
|
40
|
+
regions: visitedRegions.map((region) => ({ id: region.id, name: region.name })),
|
|
41
|
+
pokemonByLocation,
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=projection.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"projection.js","sourceRoot":"","sources":["../../../../../src/adapters/opencode/tui/travel/projection.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { GameState } from "../../application/contracts/game.js";
|
|
2
|
+
import type { PendingEncounter } from "../../domain/encounters/encounter.js";
|
|
3
|
+
import { type Language } from "./localization.js";
|
|
4
|
+
export type GameNotification = {
|
|
5
|
+
readonly title: string;
|
|
6
|
+
readonly message: string;
|
|
7
|
+
readonly variant: "info" | "success" | "warning" | "error";
|
|
8
|
+
};
|
|
9
|
+
/** Only compare established snapshots; the parent installs the initial status silently. */
|
|
10
|
+
export declare function gameNotifications(previous: GameState, next: GameState): readonly GameNotification[];
|
|
11
|
+
/** Call only for a confirmed RPC `caught` result, using the pre-resolution encounter. */
|
|
12
|
+
export declare function captureNotification(encounter: PendingEncounter, destination: "party" | "pc", language: Language): GameNotification;
|
|
13
|
+
//# sourceMappingURL=game-notifications.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"game-notifications.d.ts","sourceRoot":"","sources":["../../../src/adapters/presentation/game-notifications.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qCAAqC,CAAA;AAEpE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sCAAsC,CAAA;AAC5E,OAAO,EACL,KAAK,QAAQ,EAKd,MAAM,mBAAmB,CAAA;AAG1B,MAAM,MAAM,gBAAgB,GAAG;IAC7B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,CAAA;CAC3D,CAAA;AA4CD,2FAA2F;AAC3F,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,SAAS,EACnB,IAAI,EAAE,SAAS,GACd,SAAS,gBAAgB,EAAE,CAkF7B;AAED,yFAAyF;AACzF,wBAAgB,mBAAmB,CACjC,SAAS,EAAE,gBAAgB,EAC3B,WAAW,EAAE,OAAO,GAAG,IAAI,EAC3B,QAAQ,EAAE,QAAQ,GACjB,gBAAgB,CASlB"}
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
import { regionsCatalog } from "../../domain/content/catalogs/regions-catalog.js";
|
|
2
|
+
import { localizedLocationName, localizedName, localizedPokemonName, localizePokemon, } from "./localization.js";
|
|
3
|
+
import { uiCopy } from "./ui-copy.js";
|
|
4
|
+
const copies = {
|
|
5
|
+
en: {
|
|
6
|
+
level: (name, from, to) => `${name}: Lv.${from} → Lv.${to}`,
|
|
7
|
+
evolution: (from, to) => `${from} evolved into ${to}.`,
|
|
8
|
+
unlocked: (name) => `Location unlocked: ${name}.`,
|
|
9
|
+
travel: (name) => `Arrived at ${name}.`,
|
|
10
|
+
party: "Your party has changed.",
|
|
11
|
+
move: "A new move choice is available.",
|
|
12
|
+
capture: (name, destination) => `${name} caught! ${destination === "pc" ? "Sent to the PC." : "Added to your party."}`,
|
|
13
|
+
},
|
|
14
|
+
es: {
|
|
15
|
+
level: (name, from, to) => `${name}: Nv.${from} → Nv.${to}`,
|
|
16
|
+
evolution: (from, to) => `${from} evolucionó a ${to}.`,
|
|
17
|
+
unlocked: (name) => `Ubicación desbloqueada: ${name}.`,
|
|
18
|
+
travel: (name) => `Has llegado a ${name}.`,
|
|
19
|
+
party: "Tu equipo ha cambiado.",
|
|
20
|
+
move: "Hay una nueva elección de movimiento.",
|
|
21
|
+
capture: (name, destination) => `¡${name} capturado! ${destination === "pc" ? "Enviado al PC." : "Añadido a tu equipo."}`,
|
|
22
|
+
},
|
|
23
|
+
};
|
|
24
|
+
function notificationCopy(language) {
|
|
25
|
+
return copies[language];
|
|
26
|
+
}
|
|
27
|
+
function regionName(id, language) {
|
|
28
|
+
const region = regionsCatalog.find((entry) => entry.id === id);
|
|
29
|
+
return region === undefined ? id : localizedName(region.localization, language, id);
|
|
30
|
+
}
|
|
31
|
+
/** Only compare established snapshots; the parent installs the initial status silently. */
|
|
32
|
+
export function gameNotifications(previous, next) {
|
|
33
|
+
if (previous.phase !== "active" || next.phase !== "active")
|
|
34
|
+
return [];
|
|
35
|
+
const language = next.locale;
|
|
36
|
+
const ui = uiCopy(language);
|
|
37
|
+
const copy = notificationCopy(language);
|
|
38
|
+
// Accumulate descriptors in a stable order without changing either snapshot.
|
|
39
|
+
const notifications = [];
|
|
40
|
+
const add = (message, variant) => {
|
|
41
|
+
notifications.push({ title: ui.title, message, variant });
|
|
42
|
+
};
|
|
43
|
+
const encounter = next.pendingEncounter;
|
|
44
|
+
if (encounter !== null && encounter.id !== previous.pendingEncounter?.id) {
|
|
45
|
+
add(ui.encounter({
|
|
46
|
+
...encounter,
|
|
47
|
+
name: localizedPokemonName(encounter.speciesId, language, encounter.name),
|
|
48
|
+
genderSymbol: encounter.gender === "male" ? "♂" : encounter.gender === "female" ? "♀" : "",
|
|
49
|
+
}), encounter.kind === "special" || encounter.shiny ? "warning" : "info");
|
|
50
|
+
}
|
|
51
|
+
const previousParty = new Map(previous.party.flatMap(({ pokemon }) => (pokemon === null ? [] : [[pokemon.id, pokemon]])));
|
|
52
|
+
const nextParty = new Map(next.party.flatMap(({ pokemon }) => (pokemon === null ? [] : [[pokemon.id, pokemon]])));
|
|
53
|
+
for (const pokemon of nextParty.values()) {
|
|
54
|
+
const before = previousParty.get(pokemon.id);
|
|
55
|
+
if (before === undefined)
|
|
56
|
+
continue;
|
|
57
|
+
const name = localizePokemon(pokemon, language).name;
|
|
58
|
+
if (pokemon.level > before.level) {
|
|
59
|
+
add(copy.level(name, before.level, pokemon.level), "success");
|
|
60
|
+
}
|
|
61
|
+
if (pokemon.speciesId !== before.speciesId) {
|
|
62
|
+
add(copy.evolution(localizePokemon(before, language).name, name), "success");
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
const previousChoices = new Set(previous.pendingChoices.map((choice) => choice.id));
|
|
66
|
+
for (const choice of next.pendingChoices) {
|
|
67
|
+
if (previousChoices.has(choice.id))
|
|
68
|
+
continue;
|
|
69
|
+
if (choice.kind === "move")
|
|
70
|
+
add(copy.move, "info");
|
|
71
|
+
if (choice.kind === "evolution")
|
|
72
|
+
add(ui.chooseEvolution, "info");
|
|
73
|
+
}
|
|
74
|
+
if (previous.region === next.region &&
|
|
75
|
+
previous.exploration !== null &&
|
|
76
|
+
next.exploration !== null) {
|
|
77
|
+
const unlocked = new Set(previous.exploration.locations.filter((location) => location.unlocked).map(({ id }) => id));
|
|
78
|
+
for (const location of next.exploration.locations) {
|
|
79
|
+
if (location.unlocked && !unlocked.has(location.id)) {
|
|
80
|
+
add(copy.unlocked(localizedLocationName(location.id, language, location.name)), "success");
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
if (!previous.exploration.regionComplete && next.exploration.regionComplete) {
|
|
84
|
+
add(ui.regionComplete(regionName(next.region ?? "", language)), "success");
|
|
85
|
+
}
|
|
86
|
+
if (next.exploration.regions.length > 0 &&
|
|
87
|
+
next.exploration.regions.every((region) => region.completed) &&
|
|
88
|
+
!previous.exploration.regions.every((region) => region.completed)) {
|
|
89
|
+
add(ui.allRegionsComplete, "success");
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
if ((previous.region !== next.region || previous.location !== next.location) &&
|
|
93
|
+
next.location !== null) {
|
|
94
|
+
const name = next.exploration?.locations.find(({ id }) => id === next.location)?.name;
|
|
95
|
+
add(copy.travel(localizedLocationName(next.location, language, name ?? next.location)), "info");
|
|
96
|
+
}
|
|
97
|
+
if (previousParty.size !== nextParty.size ||
|
|
98
|
+
[...nextParty.keys()].some((id) => !previousParty.has(id))) {
|
|
99
|
+
add(copy.party, "info");
|
|
100
|
+
}
|
|
101
|
+
return notifications;
|
|
102
|
+
}
|
|
103
|
+
/** Call only for a confirmed RPC `caught` result, using the pre-resolution encounter. */
|
|
104
|
+
export function captureNotification(encounter, destination, language) {
|
|
105
|
+
return {
|
|
106
|
+
title: uiCopy(language).title,
|
|
107
|
+
message: notificationCopy(language).capture(localizedPokemonName(encounter.speciesId, language, encounter.name), destination),
|
|
108
|
+
variant: "success",
|
|
109
|
+
};
|
|
110
|
+
}
|
|
111
|
+
//# sourceMappingURL=game-notifications.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"game-notifications.js","sourceRoot":"","sources":["../../../src/adapters/presentation/game-notifications.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { GameState, PokemonCollection, PokemonDex } from "../../application/contracts/game.js";
|
|
2
|
+
import { localizedLocationName, localizedMoveName, localizedPokemonName } from "../../domain/content/catalog.js";
|
|
3
|
+
import { localizedName } from "../../domain/content/names.js";
|
|
4
|
+
import type { PokemonInstance } from "../../domain/pokemon/model.js";
|
|
5
|
+
import { type Language, languageSchema } from "../../domain/shared/language.js";
|
|
6
|
+
export type { Language };
|
|
7
|
+
export { languageSchema, localizedLocationName, localizedMoveName, localizedName, localizedPokemonName, };
|
|
8
|
+
export declare function localizePokemon(pokemon: PokemonInstance, language: Language): PokemonInstance;
|
|
9
|
+
export declare function localizeCollection(collection: PokemonCollection, language: Language): PokemonCollection;
|
|
10
|
+
export declare function localizeDex(dex: PokemonDex, language: Language): PokemonDex;
|
|
11
|
+
export declare function localizeGameState(state: GameState, language: Language): GameState;
|
|
12
|
+
//# sourceMappingURL=localization.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"localization.d.ts","sourceRoot":"","sources":["../../../src/adapters/presentation/localization.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,iBAAiB,EAAE,UAAU,EAAE,MAAM,qCAAqC,CAAA;AACnG,OAAO,EAEL,qBAAqB,EACrB,iBAAiB,EACjB,oBAAoB,EAErB,MAAM,iCAAiC,CAAA;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAA;AAC7D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAA;AACpE,OAAO,EAAE,KAAK,QAAQ,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAA;AAE/E,YAAY,EAAE,QAAQ,EAAE,CAAA;AACxB,OAAO,EACL,cAAc,EACd,qBAAqB,EACrB,iBAAiB,EACjB,aAAa,EACb,oBAAoB,GACrB,CAAA;AAED,wBAAgB,eAAe,CAAC,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,QAAQ,GAAG,eAAe,CAc7F;AAED,wBAAgB,kBAAkB,CAChC,UAAU,EAAE,iBAAiB,EAC7B,QAAQ,EAAE,QAAQ,GACjB,iBAAiB,CAEnB;AAED,wBAAgB,WAAW,CAAC,GAAG,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,GAAG,UAAU,CAQ3E;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,GAAG,SAAS,CAuCjF"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import { localizedAbilityName, localizedLocationName, localizedMoveName, localizedPokemonName, regions, } from "../../domain/content/catalog.js";
|
|
2
|
+
import { localizedName } from "../../domain/content/names.js";
|
|
3
|
+
import { languageSchema } from "../../domain/shared/language.js";
|
|
4
|
+
export { languageSchema, localizedLocationName, localizedMoveName, localizedName, localizedPokemonName, };
|
|
5
|
+
export function localizePokemon(pokemon, language) {
|
|
6
|
+
return {
|
|
7
|
+
...pokemon,
|
|
8
|
+
name: pokemon.name === pokemon.speciesId ||
|
|
9
|
+
pokemon.name === localizedPokemonName(pokemon.speciesId, "en", pokemon.speciesId)
|
|
10
|
+
? localizedPokemonName(pokemon.speciesId, language, pokemon.name)
|
|
11
|
+
: pokemon.name,
|
|
12
|
+
ability: localizedAbilityName(pokemon.ability, language, pokemon.ability),
|
|
13
|
+
moves: pokemon.moves.map((move) => ({
|
|
14
|
+
...move,
|
|
15
|
+
name: localizedMoveName(move.id, language, move.name),
|
|
16
|
+
})),
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
export function localizeCollection(collection, language) {
|
|
20
|
+
return { pokemon: collection.pokemon.map((pokemon) => localizePokemon(pokemon, language)) };
|
|
21
|
+
}
|
|
22
|
+
export function localizeDex(dex, language) {
|
|
23
|
+
return {
|
|
24
|
+
...dex,
|
|
25
|
+
pokemon: dex.pokemon.map((pokemon) => ({
|
|
26
|
+
...pokemon,
|
|
27
|
+
name: localizedPokemonName(pokemon.speciesId, language, pokemon.name),
|
|
28
|
+
})),
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
export function localizeGameState(state, language) {
|
|
32
|
+
return {
|
|
33
|
+
...state,
|
|
34
|
+
locale: language,
|
|
35
|
+
party: state.party.map((slot) => ({
|
|
36
|
+
...slot,
|
|
37
|
+
pokemon: slot.pokemon === null ? null : localizePokemon(slot.pokemon, language),
|
|
38
|
+
})),
|
|
39
|
+
choicePokemon: state.choicePokemon.map((pokemon) => localizePokemon(pokemon, language)),
|
|
40
|
+
pendingEncounter: state.pendingEncounter === null
|
|
41
|
+
? null
|
|
42
|
+
: {
|
|
43
|
+
...state.pendingEncounter,
|
|
44
|
+
name: localizedPokemonName(state.pendingEncounter.speciesId, language, state.pendingEncounter.name),
|
|
45
|
+
},
|
|
46
|
+
exploration: state.exploration === null
|
|
47
|
+
? null
|
|
48
|
+
: {
|
|
49
|
+
...state.exploration,
|
|
50
|
+
regions: state.exploration.regions.map((region) => ({
|
|
51
|
+
...region,
|
|
52
|
+
name: regions(language).find((entry) => entry.id === region.id)?.name ?? region.name,
|
|
53
|
+
locations: region.locations.map((location) => ({
|
|
54
|
+
...location,
|
|
55
|
+
name: localizedLocationName(location.id, language, location.name),
|
|
56
|
+
})),
|
|
57
|
+
})),
|
|
58
|
+
locations: state.exploration.locations.map((location) => ({
|
|
59
|
+
...location,
|
|
60
|
+
name: localizedLocationName(location.id, language, location.name),
|
|
61
|
+
})),
|
|
62
|
+
},
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
//# sourceMappingURL=localization.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"localization.js","sourceRoot":"","sources":["../../../src/adapters/presentation/localization.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { Move } from "../../domain/pokemon/types.js";
|
|
2
|
+
import type { Language } from "../../domain/shared/language.js";
|
|
3
|
+
export declare function presentMove(move: Move, language: Language): {
|
|
4
|
+
id: string;
|
|
5
|
+
name: string;
|
|
6
|
+
classification: string;
|
|
7
|
+
stats: string;
|
|
8
|
+
description: string;
|
|
9
|
+
};
|
|
10
|
+
export declare function moveInspectionHint(language: Language): "Pasa el ratón por encima de un movimiento para ver su descripción." | "Hover over a move to see its description.";
|
|
11
|
+
//# sourceMappingURL=move-details.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"move-details.d.ts","sourceRoot":"","sources":["../../../src/adapters/presentation/move-details.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,+BAA+B,CAAA;AACzD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iCAAiC,CAAA;AA4B/D,wBAAgB,WAAW,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ;;;;;;EAczD;AAED,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,QAAQ,sHAIpD"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { localizedMoveName, moveDetails } from "../../domain/content/catalog.js";
|
|
2
|
+
const types = {
|
|
3
|
+
normal: ["Normal", "Normal"],
|
|
4
|
+
fire: ["Fire", "Fuego"],
|
|
5
|
+
water: ["Water", "Agua"],
|
|
6
|
+
electric: ["Electric", "Eléctrico"],
|
|
7
|
+
grass: ["Grass", "Planta"],
|
|
8
|
+
ice: ["Ice", "Hielo"],
|
|
9
|
+
fighting: ["Fighting", "Lucha"],
|
|
10
|
+
poison: ["Poison", "Veneno"],
|
|
11
|
+
ground: ["Ground", "Tierra"],
|
|
12
|
+
flying: ["Flying", "Volador"],
|
|
13
|
+
psychic: ["Psychic", "Psíquico"],
|
|
14
|
+
bug: ["Bug", "Bicho"],
|
|
15
|
+
rock: ["Rock", "Roca"],
|
|
16
|
+
ghost: ["Ghost", "Fantasma"],
|
|
17
|
+
dragon: ["Dragon", "Dragón"],
|
|
18
|
+
dark: ["Dark", "Siniestro"],
|
|
19
|
+
steel: ["Steel", "Acero"],
|
|
20
|
+
fairy: ["Fairy", "Hada"],
|
|
21
|
+
};
|
|
22
|
+
const categories = {
|
|
23
|
+
physical: ["Physical", "Físico"],
|
|
24
|
+
special: ["Special", "Especial"],
|
|
25
|
+
status: ["Status", "Estado"],
|
|
26
|
+
};
|
|
27
|
+
export function presentMove(move, language) {
|
|
28
|
+
const details = moveDetails(move.id);
|
|
29
|
+
const locale = language === "es" ? 1 : 0;
|
|
30
|
+
const powerLabel = language === "es" ? "Pot" : "Pow";
|
|
31
|
+
const accuracyLabel = language === "es" ? "Prec" : "Acc";
|
|
32
|
+
// Zero accuracy is also used by PokéAPI for moves without a normal accuracy check.
|
|
33
|
+
const accuracy = details?.accuracy ? `${details.accuracy}%` : "—";
|
|
34
|
+
return {
|
|
35
|
+
id: move.id,
|
|
36
|
+
name: localizedMoveName(move.id, language, move.name),
|
|
37
|
+
classification: `${types[details?.type ?? ""]?.[locale] ?? "—"} · ${categories[details?.category ?? ""]?.[locale] ?? "—"}`,
|
|
38
|
+
stats: `${powerLabel} ${details === undefined ? "—" : (details.power ?? 0)} · ${accuracyLabel} ${accuracy} · PP ${details?.pp ?? "—"}`,
|
|
39
|
+
description: details?.descriptions[language] ?? "",
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
export function moveInspectionHint(language) {
|
|
43
|
+
return language === "es"
|
|
44
|
+
? "Pasa el ratón por encima de un movimiento para ver su descripción."
|
|
45
|
+
: "Hover over a move to see its description.";
|
|
46
|
+
}
|
|
47
|
+
//# sourceMappingURL=move-details.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"move-details.js","sourceRoot":"","sources":["../../../src/adapters/presentation/move-details.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import type { Language } from "../../domain/shared/language.js";
|
|
2
|
+
export declare function pcCopy(language: Language): {
|
|
3
|
+
title: string;
|
|
4
|
+
nature: string;
|
|
5
|
+
ability: string;
|
|
6
|
+
moves: string;
|
|
7
|
+
stats: {
|
|
8
|
+
name: string;
|
|
9
|
+
value: string;
|
|
10
|
+
};
|
|
11
|
+
statNames: string[];
|
|
12
|
+
empty: string;
|
|
13
|
+
minimum: string;
|
|
14
|
+
maximum: string;
|
|
15
|
+
saving: string;
|
|
16
|
+
failed: string;
|
|
17
|
+
navigation: string;
|
|
18
|
+
actions: string;
|
|
19
|
+
rename: string;
|
|
20
|
+
release: string;
|
|
21
|
+
renamePrompt: string;
|
|
22
|
+
releasePrompt: string;
|
|
23
|
+
editActions: string;
|
|
24
|
+
invalidName: string;
|
|
25
|
+
lastPartyPokemon: string;
|
|
26
|
+
managing: string;
|
|
27
|
+
managementFailed: string;
|
|
28
|
+
renamed: string;
|
|
29
|
+
released: string;
|
|
30
|
+
};
|
|
31
|
+
//# sourceMappingURL=pc-copy.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pc-copy.d.ts","sourceRoot":"","sources":["../../../src/adapters/presentation/pc-copy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iCAAiC,CAAA;AAwD/D,wBAAgB,MAAM,CAAC,QAAQ,EAAE,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAExC"}
|