@sbugallo/pokecode 0.0.0-stage → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/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 +172 -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 +111 -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 +80 -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 +183817 -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 +83 -4
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../src/domain/content/schema.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { PokemonGender } from "../pokemon/types.js";
|
|
2
|
+
export declare const missingPokemonSpriteUrl = "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/0.png";
|
|
3
|
+
export declare function spriteUrlForSpecies(speciesId: string, shiny?: boolean, gender?: PokemonGender): string | null;
|
|
4
|
+
export declare function spriteSourcesForSpecies(speciesId: string, shiny: boolean, gender: PokemonGender): readonly string[];
|
|
5
|
+
//# sourceMappingURL=sprites.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sprites.d.ts","sourceRoot":"","sources":["../../../src/domain/content/sprites.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAGxD,eAAO,MAAM,uBAAuB,mFAC8C,CAAA;AASlF,wBAAgB,mBAAmB,CACjC,SAAS,EAAE,MAAM,EACjB,KAAK,UAAQ,EACb,MAAM,GAAE,aAA4B,GACnC,MAAM,GAAG,IAAI,CAKf;AAED,wBAAgB,uBAAuB,CACrC,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,OAAO,EACd,MAAM,EAAE,aAAa,GACpB,SAAS,MAAM,EAAE,CAKnB"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { generatedContentCatalog } from "./catalog.js";
|
|
2
|
+
export const missingPokemonSpriteUrl = "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/0.png";
|
|
3
|
+
const spritesBySpecies = new Map([...generatedContentCatalog.species, ...generatedContentCatalog.regionalForms].map((species) => [
|
|
4
|
+
species.id,
|
|
5
|
+
species.sprites,
|
|
6
|
+
]));
|
|
7
|
+
export function spriteUrlForSpecies(speciesId, shiny = false, gender = "genderless") {
|
|
8
|
+
const sprites = spritesBySpecies.get(speciesId);
|
|
9
|
+
if (sprites === undefined)
|
|
10
|
+
return null;
|
|
11
|
+
const variant = gender === "female" ? (sprites.female ?? sprites.default) : sprites.default;
|
|
12
|
+
return shiny ? variant.shiny : variant.normal;
|
|
13
|
+
}
|
|
14
|
+
export function spriteSourcesForSpecies(speciesId, shiny, gender) {
|
|
15
|
+
const normal = spriteUrlForSpecies(speciesId, false, gender);
|
|
16
|
+
if (normal === null)
|
|
17
|
+
return [missingPokemonSpriteUrl];
|
|
18
|
+
if (!shiny)
|
|
19
|
+
return [normal, missingPokemonSpriteUrl];
|
|
20
|
+
return [spriteUrlForSpecies(speciesId, true, gender) ?? normal, normal, missingPokemonSpriteUrl];
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=sprites.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sprites.js","sourceRoot":"","sources":["../../../src/domain/content/sprites.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAA;AAEtD,MAAM,CAAC,MAAM,uBAAuB,GAClC,gFAAgF,CAAA;AAElF,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAC9B,CAAC,GAAG,uBAAuB,CAAC,OAAO,EAAE,GAAG,uBAAuB,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC;IAC9F,OAAO,CAAC,EAAE;IACV,OAAO,CAAC,OAAO;CAChB,CAAC,CACH,CAAA;AAED,MAAM,UAAU,mBAAmB,CACjC,SAAiB,EACjB,KAAK,GAAG,KAAK,EACb,SAAwB,YAAY;IAEpC,MAAM,OAAO,GAAG,gBAAgB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;IAC/C,IAAI,OAAO,KAAK,SAAS;QAAE,OAAO,IAAI,CAAA;IACtC,MAAM,OAAO,GAAG,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAA;IAC3F,OAAO,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAA;AAC/C,CAAC;AAED,MAAM,UAAU,uBAAuB,CACrC,SAAiB,EACjB,KAAc,EACd,MAAqB;IAErB,MAAM,MAAM,GAAG,mBAAmB,CAAC,SAAS,EAAE,KAAK,EAAE,MAAM,CAAC,CAAA;IAC5D,IAAI,MAAM,KAAK,IAAI;QAAE,OAAO,CAAC,uBAAuB,CAAC,CAAA;IACrD,IAAI,CAAC,KAAK;QAAE,OAAO,CAAC,MAAM,EAAE,uBAAuB,CAAC,CAAA;IACpD,OAAO,CAAC,mBAAmB,CAAC,SAAS,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,MAAM,EAAE,MAAM,EAAE,uBAAuB,CAAC,CAAA;AAClG,CAAC"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { type AvailablePokemonGender, type PokemonGender } from "../pokemon/types.js";
|
|
3
|
+
export declare const encounterKindSchema: z.ZodEnum<{
|
|
4
|
+
special: "special";
|
|
5
|
+
ordinary: "ordinary";
|
|
6
|
+
}>;
|
|
7
|
+
export type EncounterKind = z.infer<typeof encounterKindSchema>;
|
|
8
|
+
export declare const pendingEncounterSchema: z.ZodObject<{
|
|
9
|
+
id: z.ZodString;
|
|
10
|
+
kind: z.ZodEnum<{
|
|
11
|
+
special: "special";
|
|
12
|
+
ordinary: "ordinary";
|
|
13
|
+
}>;
|
|
14
|
+
speciesId: z.core.$ZodBranded<z.ZodString, "SpeciesId", "out">;
|
|
15
|
+
name: z.ZodString;
|
|
16
|
+
level: z.ZodNumber;
|
|
17
|
+
gender: z.ZodEnum<{
|
|
18
|
+
male: "male";
|
|
19
|
+
female: "female";
|
|
20
|
+
genderless: "genderless";
|
|
21
|
+
}>;
|
|
22
|
+
shiny: z.ZodBoolean;
|
|
23
|
+
spriteUrl: z.ZodString;
|
|
24
|
+
}, z.core.$strip>;
|
|
25
|
+
export type PendingEncounter = z.infer<typeof pendingEncounterSchema>;
|
|
26
|
+
export type RandomSource = () => number;
|
|
27
|
+
export type EncounterCandidate = {
|
|
28
|
+
readonly minimumLevel: number;
|
|
29
|
+
readonly maximumLevel: number;
|
|
30
|
+
readonly weight: number;
|
|
31
|
+
};
|
|
32
|
+
export type SpecialCandidate = EncounterCandidate & {
|
|
33
|
+
readonly specialEncounterId: string;
|
|
34
|
+
};
|
|
35
|
+
export type GeneratedEncounterAttributes = {
|
|
36
|
+
readonly level: number;
|
|
37
|
+
readonly gender: PokemonGender;
|
|
38
|
+
readonly shiny: boolean;
|
|
39
|
+
};
|
|
40
|
+
export type CapturedAttributes = {
|
|
41
|
+
readonly nature: string;
|
|
42
|
+
readonly ivs: readonly [number, number, number, number, number, number];
|
|
43
|
+
};
|
|
44
|
+
export declare function randomInteger(minimum: number, maximum: number, random: RandomSource): number;
|
|
45
|
+
export declare function randomEncounterInterval(minimumTokens: number, maximumTokens: number, random: RandomSource): number;
|
|
46
|
+
export declare function selectWeightedEncounter<T extends {
|
|
47
|
+
readonly weight: number;
|
|
48
|
+
}>(candidates: readonly T[], random: RandomSource): T | null;
|
|
49
|
+
export declare function selectSpecialEncounter<T extends SpecialCandidate>(candidates: readonly T[], random: RandomSource): T | null;
|
|
50
|
+
export declare function eligibleOrdinaryEncounters<T extends EncounterCandidate>(candidates: readonly T[], maximumLevel: number): readonly (T & {
|
|
51
|
+
readonly maximumLevel: number;
|
|
52
|
+
})[];
|
|
53
|
+
export declare function eligibleSpecialEncounters<T extends SpecialCandidate>(candidates: readonly T[], maximumLevel: number, alreadyTriggered: ReadonlySet<string>): readonly T[];
|
|
54
|
+
export declare function generateEncounterAttributes(minimumLevel: number, maximumLevel: number, availableGenders: readonly AvailablePokemonGender[], random: RandomSource): GeneratedEncounterAttributes;
|
|
55
|
+
export declare function generateCapturedAttributes(random: RandomSource, natures: readonly string[]): CapturedAttributes;
|
|
56
|
+
//# sourceMappingURL=encounter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"encounter.d.ts","sourceRoot":"","sources":["../../../src/domain/encounters/encounter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,EACL,KAAK,sBAAsB,EAC3B,KAAK,aAAa,EAEnB,MAAM,qBAAqB,CAAA;AAG5B,eAAO,MAAM,mBAAmB;;;EAAkC,CAAA;AAClE,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAA;AAE/D,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;iBASjC,CAAA;AACF,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAA;AAErE,MAAM,MAAM,YAAY,GAAG,MAAM,MAAM,CAAA;AACvC,MAAM,MAAM,kBAAkB,GAAG;IAC/B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAA;IAC7B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAA;IAC7B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CACxB,CAAA;AACD,MAAM,MAAM,gBAAgB,GAAG,kBAAkB,GAAG;IAAE,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAA;CAAE,CAAA;AAC3F,MAAM,MAAM,4BAA4B,GAAG;IACzC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAA;IAC9B,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAA;CACxB,CAAA;AACD,MAAM,MAAM,kBAAkB,GAAG;IAC/B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,GAAG,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;CACxE,CAAA;AAED,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,GAAG,MAAM,CAE5F;AAED,wBAAgB,uBAAuB,CACrC,aAAa,EAAE,MAAM,EACrB,aAAa,EAAE,MAAM,EACrB,MAAM,EAAE,YAAY,GACnB,MAAM,CAER;AAED,wBAAgB,uBAAuB,CAAC,CAAC,SAAS;IAAE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CAAE,EAC3E,UAAU,EAAE,SAAS,CAAC,EAAE,EACxB,MAAM,EAAE,YAAY,GACnB,CAAC,GAAG,IAAI,CASV;AAED,wBAAgB,sBAAsB,CAAC,CAAC,SAAS,gBAAgB,EAC/D,UAAU,EAAE,SAAS,CAAC,EAAE,EACxB,MAAM,EAAE,YAAY,GACnB,CAAC,GAAG,IAAI,CAKV;AAED,wBAAgB,0BAA0B,CAAC,CAAC,SAAS,kBAAkB,EACrE,UAAU,EAAE,SAAS,CAAC,EAAE,EACxB,YAAY,EAAE,MAAM,GACnB,SAAS,CAAC,CAAC,GAAG;IAAE,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAA;CAAE,CAAC,EAAE,CAOpD;AAED,wBAAgB,yBAAyB,CAAC,CAAC,SAAS,gBAAgB,EAClE,UAAU,EAAE,SAAS,CAAC,EAAE,EACxB,YAAY,EAAE,MAAM,EACpB,gBAAgB,EAAE,WAAW,CAAC,MAAM,CAAC,GACpC,SAAS,CAAC,EAAE,CAKd;AAED,wBAAgB,2BAA2B,CACzC,YAAY,EAAE,MAAM,EACpB,YAAY,EAAE,MAAM,EACpB,gBAAgB,EAAE,SAAS,sBAAsB,EAAE,EACnD,MAAM,EAAE,YAAY,GACnB,4BAA4B,CAQ9B;AAED,wBAAgB,0BAA0B,CACxC,MAAM,EAAE,YAAY,EACpB,OAAO,EAAE,SAAS,MAAM,EAAE,GACzB,kBAAkB,CAYpB"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { pokemonGenderSchema, } from "../pokemon/types.js";
|
|
3
|
+
import { speciesIdSchema } from "../shared/identifiers.js";
|
|
4
|
+
export const encounterKindSchema = z.enum(["ordinary", "special"]);
|
|
5
|
+
export const pendingEncounterSchema = z.object({
|
|
6
|
+
id: z.string().uuid(),
|
|
7
|
+
kind: encounterKindSchema,
|
|
8
|
+
speciesId: speciesIdSchema,
|
|
9
|
+
name: z.string().min(1),
|
|
10
|
+
level: z.number().int().min(1).max(100),
|
|
11
|
+
gender: pokemonGenderSchema,
|
|
12
|
+
shiny: z.boolean(),
|
|
13
|
+
spriteUrl: z.string().url(),
|
|
14
|
+
});
|
|
15
|
+
export function randomInteger(minimum, maximum, random) {
|
|
16
|
+
return minimum + Math.min(Math.floor(random() * (maximum - minimum + 1)), maximum - minimum);
|
|
17
|
+
}
|
|
18
|
+
export function randomEncounterInterval(minimumTokens, maximumTokens, random) {
|
|
19
|
+
return randomInteger(minimumTokens, maximumTokens, random);
|
|
20
|
+
}
|
|
21
|
+
export function selectWeightedEncounter(candidates, random) {
|
|
22
|
+
const totalWeight = candidates.reduce((total, candidate) => total + candidate.weight, 0);
|
|
23
|
+
if (totalWeight === 0)
|
|
24
|
+
return null;
|
|
25
|
+
let remaining = random() * totalWeight;
|
|
26
|
+
for (const candidate of candidates) {
|
|
27
|
+
remaining -= candidate.weight;
|
|
28
|
+
if (remaining < 0)
|
|
29
|
+
return candidate;
|
|
30
|
+
}
|
|
31
|
+
return candidates.at(-1) ?? null;
|
|
32
|
+
}
|
|
33
|
+
export function selectSpecialEncounter(candidates, random) {
|
|
34
|
+
const roll = candidates.length > 0 ? random() : 1;
|
|
35
|
+
return roll < candidates.length * 0.01
|
|
36
|
+
? (candidates[Math.min(Math.floor(roll * 100), candidates.length - 1)] ?? null)
|
|
37
|
+
: null;
|
|
38
|
+
}
|
|
39
|
+
export function eligibleOrdinaryEncounters(candidates, maximumLevel) {
|
|
40
|
+
return candidates
|
|
41
|
+
.filter((candidate) => candidate.minimumLevel <= maximumLevel)
|
|
42
|
+
.map((candidate) => ({
|
|
43
|
+
...candidate,
|
|
44
|
+
maximumLevel: Math.min(candidate.maximumLevel, maximumLevel),
|
|
45
|
+
}));
|
|
46
|
+
}
|
|
47
|
+
export function eligibleSpecialEncounters(candidates, maximumLevel, alreadyTriggered) {
|
|
48
|
+
return candidates.filter((candidate) => candidate.minimumLevel <= maximumLevel && !alreadyTriggered.has(candidate.specialEncounterId));
|
|
49
|
+
}
|
|
50
|
+
export function generateEncounterAttributes(minimumLevel, maximumLevel, availableGenders, random) {
|
|
51
|
+
if (availableGenders.length === 0)
|
|
52
|
+
throw new Error("Encounter species has no available genders");
|
|
53
|
+
const level = randomInteger(minimumLevel, maximumLevel, random);
|
|
54
|
+
const selectedGender = availableGenders[randomInteger(0, availableGenders.length - 1, random)];
|
|
55
|
+
if (selectedGender === undefined)
|
|
56
|
+
throw new Error("Invalid encounter gender selection");
|
|
57
|
+
const gender = selectedGender === "unknown" ? "genderless" : selectedGender;
|
|
58
|
+
const shiny = random() < 1 / 4096;
|
|
59
|
+
return { level, gender, shiny };
|
|
60
|
+
}
|
|
61
|
+
export function generateCapturedAttributes(random, natures) {
|
|
62
|
+
const natureIndex = randomInteger(0, natures.length - 1, random);
|
|
63
|
+
const nature = natures[natureIndex] ?? "Hardy";
|
|
64
|
+
const ivs = [
|
|
65
|
+
randomInteger(0, 31, random),
|
|
66
|
+
randomInteger(0, 31, random),
|
|
67
|
+
randomInteger(0, 31, random),
|
|
68
|
+
randomInteger(0, 31, random),
|
|
69
|
+
randomInteger(0, 31, random),
|
|
70
|
+
randomInteger(0, 31, random),
|
|
71
|
+
];
|
|
72
|
+
return { nature, ivs };
|
|
73
|
+
}
|
|
74
|
+
//# sourceMappingURL=encounter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"encounter.js","sourceRoot":"","sources":["../../../src/domain/encounters/encounter.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
export declare const locationStatusSchema: z.ZodObject<{
|
|
3
|
+
id: z.core.$ZodBranded<z.ZodString, "LocationId", "out">;
|
|
4
|
+
name: z.ZodString;
|
|
5
|
+
unlocked: z.ZodBoolean;
|
|
6
|
+
encounterless: z.ZodBoolean;
|
|
7
|
+
}, z.core.$strip>;
|
|
8
|
+
export type LocationStatus = z.infer<typeof locationStatusSchema>;
|
|
9
|
+
export declare const explorationStatusSchema: z.ZodObject<{
|
|
10
|
+
regions: z.ZodDefault<z.ZodArray<z.ZodObject<{
|
|
11
|
+
id: z.ZodString;
|
|
12
|
+
name: z.ZodString;
|
|
13
|
+
visited: z.ZodBoolean;
|
|
14
|
+
completed: z.ZodBoolean;
|
|
15
|
+
locations: z.ZodArray<z.ZodObject<{
|
|
16
|
+
id: z.core.$ZodBranded<z.ZodString, "LocationId", "out">;
|
|
17
|
+
name: z.ZodString;
|
|
18
|
+
unlocked: z.ZodBoolean;
|
|
19
|
+
encounterless: z.ZodBoolean;
|
|
20
|
+
}, z.core.$strip>>;
|
|
21
|
+
}, z.core.$strip>>>;
|
|
22
|
+
locations: z.ZodArray<z.ZodObject<{
|
|
23
|
+
id: z.core.$ZodBranded<z.ZodString, "LocationId", "out">;
|
|
24
|
+
name: z.ZodString;
|
|
25
|
+
unlocked: z.ZodBoolean;
|
|
26
|
+
encounterless: z.ZodBoolean;
|
|
27
|
+
}, z.core.$strip>>;
|
|
28
|
+
locationUnlockProgress: z.ZodNumber;
|
|
29
|
+
locationUnlockThreshold: z.ZodNumber;
|
|
30
|
+
regionComplete: z.ZodBoolean;
|
|
31
|
+
}, z.core.$strip>;
|
|
32
|
+
export type ExplorationStatus = z.infer<typeof explorationStatusSchema>;
|
|
33
|
+
export type UnlockProgressResult = {
|
|
34
|
+
readonly kind: "accumulating";
|
|
35
|
+
readonly tokenCount: number;
|
|
36
|
+
} | {
|
|
37
|
+
readonly kind: "unlock";
|
|
38
|
+
readonly tokenCount: 0;
|
|
39
|
+
} | {
|
|
40
|
+
readonly kind: "complete-region";
|
|
41
|
+
readonly tokenCount: number;
|
|
42
|
+
};
|
|
43
|
+
export declare function calculateUnlockProgress(input: {
|
|
44
|
+
readonly currentTokens: number;
|
|
45
|
+
readonly gainedTokens: number;
|
|
46
|
+
readonly threshold: number;
|
|
47
|
+
readonly hasNextLocation: boolean;
|
|
48
|
+
readonly currentLocationIsLatestUnlocked: boolean;
|
|
49
|
+
}): UnlockProgressResult | {
|
|
50
|
+
readonly kind: "not-latest";
|
|
51
|
+
};
|
|
52
|
+
export type LocationTravelEligibility = "invalid-location" | "locked-location" | "allowed";
|
|
53
|
+
export declare function locationTravelEligibility(input: {
|
|
54
|
+
readonly locationExists: boolean;
|
|
55
|
+
readonly unlocked: boolean;
|
|
56
|
+
}): LocationTravelEligibility;
|
|
57
|
+
export type RegionTravelEligibility = "invalid-region" | "region-incomplete" | "already-visited" | "allowed";
|
|
58
|
+
export declare function regionTravelEligibility(input: {
|
|
59
|
+
readonly regionExists: boolean;
|
|
60
|
+
readonly currentRegionComplete: boolean;
|
|
61
|
+
readonly targetAlreadyVisited: boolean;
|
|
62
|
+
}): RegionTravelEligibility;
|
|
63
|
+
//# sourceMappingURL=exploration.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"exploration.d.ts","sourceRoot":"","sources":["../../../src/domain/exploration/exploration.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAGvB,eAAO,MAAM,oBAAoB;;;;;iBAK/B,CAAA;AACF,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAA;AAEjE,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;iBAgBlC,CAAA;AACF,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAA;AAEvE,MAAM,MAAM,oBAAoB,GAC5B;IAAE,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC;IAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;CAAE,GAC9D;IAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IAAC,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAA;CAAE,GACnD;IAAE,QAAQ,CAAC,IAAI,EAAE,iBAAiB,CAAC;IAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;CAAE,CAAA;AAErE,wBAAgB,uBAAuB,CAAC,KAAK,EAAE;IAC7C,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAA;IAC9B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAA;IAC7B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAA;IACjC,QAAQ,CAAC,+BAA+B,EAAE,OAAO,CAAA;CAClD,GAAG,oBAAoB,GAAG;IAAE,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAA;CAAE,CAOzD;AAED,MAAM,MAAM,yBAAyB,GAAG,kBAAkB,GAAG,iBAAiB,GAAG,SAAS,CAAA;AAC1F,wBAAgB,yBAAyB,CAAC,KAAK,EAAE;IAC/C,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAA;IAChC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAA;CAC3B,GAAG,yBAAyB,CAG5B;AAED,MAAM,MAAM,uBAAuB,GAC/B,gBAAgB,GAChB,mBAAmB,GACnB,iBAAiB,GACjB,SAAS,CAAA;AACb,wBAAgB,uBAAuB,CAAC,KAAK,EAAE;IAC7C,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAA;IAC9B,QAAQ,CAAC,qBAAqB,EAAE,OAAO,CAAA;IACvC,QAAQ,CAAC,oBAAoB,EAAE,OAAO,CAAA;CACvC,GAAG,uBAAuB,CAK1B"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { locationIdSchema } from "../shared/identifiers.js";
|
|
3
|
+
export const locationStatusSchema = z.object({
|
|
4
|
+
id: locationIdSchema,
|
|
5
|
+
name: z.string().min(1),
|
|
6
|
+
unlocked: z.boolean(),
|
|
7
|
+
encounterless: z.boolean(),
|
|
8
|
+
});
|
|
9
|
+
export const explorationStatusSchema = z.object({
|
|
10
|
+
regions: z
|
|
11
|
+
.array(z.object({
|
|
12
|
+
id: z.string().min(1),
|
|
13
|
+
name: z.string().min(1),
|
|
14
|
+
visited: z.boolean(),
|
|
15
|
+
completed: z.boolean(),
|
|
16
|
+
locations: z.array(locationStatusSchema),
|
|
17
|
+
}))
|
|
18
|
+
.default([]),
|
|
19
|
+
locations: z.array(locationStatusSchema).min(1),
|
|
20
|
+
locationUnlockProgress: z.number().int().nonnegative(),
|
|
21
|
+
locationUnlockThreshold: z.number().int().positive(),
|
|
22
|
+
regionComplete: z.boolean(),
|
|
23
|
+
});
|
|
24
|
+
export function calculateUnlockProgress(input) {
|
|
25
|
+
if (!input.currentLocationIsLatestUnlocked)
|
|
26
|
+
return { kind: "not-latest" };
|
|
27
|
+
if (!input.hasNextLocation)
|
|
28
|
+
return { kind: "complete-region", tokenCount: input.currentTokens };
|
|
29
|
+
const tokenCount = input.currentTokens + input.gainedTokens;
|
|
30
|
+
return tokenCount < input.threshold
|
|
31
|
+
? { kind: "accumulating", tokenCount }
|
|
32
|
+
: { kind: "unlock", tokenCount: 0 };
|
|
33
|
+
}
|
|
34
|
+
export function locationTravelEligibility(input) {
|
|
35
|
+
if (!input.locationExists)
|
|
36
|
+
return "invalid-location";
|
|
37
|
+
return input.unlocked ? "allowed" : "locked-location";
|
|
38
|
+
}
|
|
39
|
+
export function regionTravelEligibility(input) {
|
|
40
|
+
if (!input.regionExists)
|
|
41
|
+
return "invalid-region";
|
|
42
|
+
if (!input.currentRegionComplete)
|
|
43
|
+
return "region-incomplete";
|
|
44
|
+
if (input.targetAlreadyVisited)
|
|
45
|
+
return "already-visited";
|
|
46
|
+
return "allowed";
|
|
47
|
+
}
|
|
48
|
+
//# sourceMappingURL=exploration.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"exploration.js","sourceRoot":"","sources":["../../../src/domain/exploration/exploration.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAA;AAE3D,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3C,EAAE,EAAE,gBAAgB;IACpB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACvB,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE;IACrB,aAAa,EAAE,CAAC,CAAC,OAAO,EAAE;CAC3B,CAAC,CAAA;AAGF,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC9C,OAAO,EAAE,CAAC;SACP,KAAK,CACJ,CAAC,CAAC,MAAM,CAAC;QACP,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;QACrB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;QACvB,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE;QACpB,SAAS,EAAE,CAAC,CAAC,OAAO,EAAE;QACtB,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC,oBAAoB,CAAC;KACzC,CAAC,CACH;SACA,OAAO,CAAC,EAAE,CAAC;IACd,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAC/C,sBAAsB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE;IACtD,uBAAuB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;IACpD,cAAc,EAAE,CAAC,CAAC,OAAO,EAAE;CAC5B,CAAC,CAAA;AAQF,MAAM,UAAU,uBAAuB,CAAC,KAMvC;IACC,IAAI,CAAC,KAAK,CAAC,+BAA+B;QAAE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,CAAA;IACzE,IAAI,CAAC,KAAK,CAAC,eAAe;QAAE,OAAO,EAAE,IAAI,EAAE,iBAAiB,EAAE,UAAU,EAAE,KAAK,CAAC,aAAa,EAAE,CAAA;IAC/F,MAAM,UAAU,GAAG,KAAK,CAAC,aAAa,GAAG,KAAK,CAAC,YAAY,CAAA;IAC3D,OAAO,UAAU,GAAG,KAAK,CAAC,SAAS;QACjC,CAAC,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,UAAU,EAAE;QACtC,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC,EAAE,CAAA;AACvC,CAAC;AAGD,MAAM,UAAU,yBAAyB,CAAC,KAGzC;IACC,IAAI,CAAC,KAAK,CAAC,cAAc;QAAE,OAAO,kBAAkB,CAAA;IACpD,OAAO,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,iBAAiB,CAAA;AACvD,CAAC;AAOD,MAAM,UAAU,uBAAuB,CAAC,KAIvC;IACC,IAAI,CAAC,KAAK,CAAC,YAAY;QAAE,OAAO,gBAAgB,CAAA;IAChD,IAAI,CAAC,KAAK,CAAC,qBAAqB;QAAE,OAAO,mBAAmB,CAAA;IAC5D,IAAI,KAAK,CAAC,oBAAoB;QAAE,OAAO,iBAAiB,CAAA;IACxD,OAAO,SAAS,CAAA;AAClB,CAAC"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import type { TrainerId } from "../shared/identifiers.js";
|
|
3
|
+
export declare const partySlotSchema: z.ZodObject<{
|
|
4
|
+
position: z.ZodNumber;
|
|
5
|
+
pokemon: z.ZodNullable<z.ZodObject<{
|
|
6
|
+
id: z.core.$ZodBranded<z.ZodString, "PokemonId", "out">;
|
|
7
|
+
speciesId: z.core.$ZodBranded<z.ZodString, "SpeciesId", "out">;
|
|
8
|
+
name: z.ZodString;
|
|
9
|
+
gender: z.ZodDefault<z.ZodEnum<{
|
|
10
|
+
male: "male";
|
|
11
|
+
female: "female";
|
|
12
|
+
genderless: "genderless";
|
|
13
|
+
}>>;
|
|
14
|
+
level: z.ZodNumber;
|
|
15
|
+
experience: z.ZodNumber;
|
|
16
|
+
ability: z.ZodString;
|
|
17
|
+
nature: z.ZodString;
|
|
18
|
+
shiny: z.ZodBoolean;
|
|
19
|
+
ivs: z.ZodObject<{
|
|
20
|
+
hp: z.ZodNumber;
|
|
21
|
+
attack: z.ZodNumber;
|
|
22
|
+
defense: z.ZodNumber;
|
|
23
|
+
specialAttack: z.ZodNumber;
|
|
24
|
+
specialDefense: z.ZodNumber;
|
|
25
|
+
speed: z.ZodNumber;
|
|
26
|
+
}, z.core.$strip>;
|
|
27
|
+
evs: z.ZodObject<{
|
|
28
|
+
hp: z.ZodLiteral<0>;
|
|
29
|
+
attack: z.ZodLiteral<0>;
|
|
30
|
+
defense: z.ZodLiteral<0>;
|
|
31
|
+
specialAttack: z.ZodLiteral<0>;
|
|
32
|
+
specialDefense: z.ZodLiteral<0>;
|
|
33
|
+
speed: z.ZodLiteral<0>;
|
|
34
|
+
}, z.core.$strip>;
|
|
35
|
+
moves: z.ZodArray<z.ZodObject<{
|
|
36
|
+
id: z.ZodString;
|
|
37
|
+
name: z.ZodString;
|
|
38
|
+
}, z.core.$strip>>;
|
|
39
|
+
}, z.core.$strip>>;
|
|
40
|
+
}, z.core.$strip>;
|
|
41
|
+
export type PartySlot = z.infer<typeof partySlotSchema>;
|
|
42
|
+
export type Party = {
|
|
43
|
+
readonly trainerId: TrainerId;
|
|
44
|
+
readonly slots: readonly PartySlot[];
|
|
45
|
+
};
|
|
46
|
+
export type PartyReplacementFacts = {
|
|
47
|
+
readonly pokemonIds: readonly string[];
|
|
48
|
+
readonly ownedPokemonCount?: number;
|
|
49
|
+
readonly maximumSize?: number;
|
|
50
|
+
};
|
|
51
|
+
export type PartyValidation = {
|
|
52
|
+
readonly valid: true;
|
|
53
|
+
readonly pokemonIds: readonly string[];
|
|
54
|
+
} | {
|
|
55
|
+
readonly valid: false;
|
|
56
|
+
readonly reason: "empty" | "too-large" | "duplicate" | "not-owned";
|
|
57
|
+
};
|
|
58
|
+
export declare function validatePartyReplacement(facts: PartyReplacementFacts): PartyValidation;
|
|
59
|
+
//# sourceMappingURL=party.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"party.d.ts","sourceRoot":"","sources":["../../../src/domain/party/party.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAA;AAEzD,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAG1B,CAAA;AACF,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAA;AAEvD,MAAM,MAAM,KAAK,GAAG;IAClB,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAA;IAC7B,QAAQ,CAAC,KAAK,EAAE,SAAS,SAAS,EAAE,CAAA;CACrC,CAAA;AAED,MAAM,MAAM,qBAAqB,GAAG;IAClC,QAAQ,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,CAAA;IACtC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAA;IACnC,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAC9B,CAAA;AAED,MAAM,MAAM,eAAe,GACvB;IAAE,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC;IAAC,QAAQ,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,CAAA;CAAE,GAChE;IAAE,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,GAAG,WAAW,GAAG,WAAW,GAAG,WAAW,CAAA;CAAE,CAAA;AAEjG,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,qBAAqB,GAAG,eAAe,CAStF"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { pokemonInstanceSchema } from "../pokemon/model.js";
|
|
3
|
+
export const partySlotSchema = z.object({
|
|
4
|
+
position: z.number().int().min(1).max(6),
|
|
5
|
+
pokemon: pokemonInstanceSchema.nullable(),
|
|
6
|
+
});
|
|
7
|
+
export function validatePartyReplacement(facts) {
|
|
8
|
+
const maximumSize = facts.maximumSize ?? 6;
|
|
9
|
+
if (facts.pokemonIds.length === 0)
|
|
10
|
+
return { valid: false, reason: "empty" };
|
|
11
|
+
if (facts.pokemonIds.length > maximumSize)
|
|
12
|
+
return { valid: false, reason: "too-large" };
|
|
13
|
+
if (new Set(facts.pokemonIds).size !== facts.pokemonIds.length)
|
|
14
|
+
return { valid: false, reason: "duplicate" };
|
|
15
|
+
if (facts.ownedPokemonCount !== undefined && facts.ownedPokemonCount !== facts.pokemonIds.length)
|
|
16
|
+
return { valid: false, reason: "not-owned" };
|
|
17
|
+
return { valid: true, pokemonIds: facts.pokemonIds };
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=party.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"party.js","sourceRoot":"","sources":["../../../src/domain/party/party.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAA;AAG3D,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC;IACtC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IACxC,OAAO,EAAE,qBAAqB,CAAC,QAAQ,EAAE;CAC1C,CAAC,CAAA;AAkBF,MAAM,UAAU,wBAAwB,CAAC,KAA4B;IACnE,MAAM,WAAW,GAAG,KAAK,CAAC,WAAW,IAAI,CAAC,CAAA;IAC1C,IAAI,KAAK,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,CAAA;IAC3E,IAAI,KAAK,CAAC,UAAU,CAAC,MAAM,GAAG,WAAW;QAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,CAAA;IACvF,IAAI,IAAI,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,UAAU,CAAC,MAAM;QAC5D,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,CAAA;IAC9C,IAAI,KAAK,CAAC,iBAAiB,KAAK,SAAS,IAAI,KAAK,CAAC,iBAAiB,KAAK,KAAK,CAAC,UAAU,CAAC,MAAM;QAC9F,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,CAAA;IAC9C,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU,EAAE,CAAA;AACtD,CAAC"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { type TrainerId } from "../shared/identifiers.js";
|
|
3
|
+
export declare const pokemonInstanceSchema: z.ZodObject<{
|
|
4
|
+
id: z.core.$ZodBranded<z.ZodString, "PokemonId", "out">;
|
|
5
|
+
speciesId: z.core.$ZodBranded<z.ZodString, "SpeciesId", "out">;
|
|
6
|
+
name: z.ZodString;
|
|
7
|
+
gender: z.ZodDefault<z.ZodEnum<{
|
|
8
|
+
male: "male";
|
|
9
|
+
female: "female";
|
|
10
|
+
genderless: "genderless";
|
|
11
|
+
}>>;
|
|
12
|
+
level: z.ZodNumber;
|
|
13
|
+
experience: z.ZodNumber;
|
|
14
|
+
ability: z.ZodString;
|
|
15
|
+
nature: z.ZodString;
|
|
16
|
+
shiny: z.ZodBoolean;
|
|
17
|
+
ivs: z.ZodObject<{
|
|
18
|
+
hp: z.ZodNumber;
|
|
19
|
+
attack: z.ZodNumber;
|
|
20
|
+
defense: z.ZodNumber;
|
|
21
|
+
specialAttack: z.ZodNumber;
|
|
22
|
+
specialDefense: z.ZodNumber;
|
|
23
|
+
speed: z.ZodNumber;
|
|
24
|
+
}, z.core.$strip>;
|
|
25
|
+
evs: z.ZodObject<{
|
|
26
|
+
hp: z.ZodLiteral<0>;
|
|
27
|
+
attack: z.ZodLiteral<0>;
|
|
28
|
+
defense: z.ZodLiteral<0>;
|
|
29
|
+
specialAttack: z.ZodLiteral<0>;
|
|
30
|
+
specialDefense: z.ZodLiteral<0>;
|
|
31
|
+
speed: z.ZodLiteral<0>;
|
|
32
|
+
}, z.core.$strip>;
|
|
33
|
+
moves: z.ZodArray<z.ZodObject<{
|
|
34
|
+
id: z.ZodString;
|
|
35
|
+
name: z.ZodString;
|
|
36
|
+
}, z.core.$strip>>;
|
|
37
|
+
}, z.core.$strip>;
|
|
38
|
+
export type PokemonInstance = z.infer<typeof pokemonInstanceSchema>;
|
|
39
|
+
export type PC = {
|
|
40
|
+
readonly trainerId: TrainerId;
|
|
41
|
+
readonly pokemon: readonly PokemonInstance[];
|
|
42
|
+
};
|
|
43
|
+
//# sourceMappingURL=model.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../../../src/domain/pokemon/model.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,EAAoC,KAAK,SAAS,EAAE,MAAM,0BAA0B,CAAA;AAG3F,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAahC,CAAA;AACF,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAA;AAEnE,MAAM,MAAM,EAAE,GAAG;IACf,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAA;IAC7B,QAAQ,CAAC,OAAO,EAAE,SAAS,eAAe,EAAE,CAAA;CAC7C,CAAA"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { pokemonIdSchema, speciesIdSchema } from "../shared/identifiers.js";
|
|
3
|
+
import { evsSchema, ivsSchema, moveSchema, pokemonGenderSchema } from "./types.js";
|
|
4
|
+
export const pokemonInstanceSchema = z.object({
|
|
5
|
+
id: pokemonIdSchema,
|
|
6
|
+
speciesId: speciesIdSchema,
|
|
7
|
+
name: z.string().min(1),
|
|
8
|
+
gender: pokemonGenderSchema.default("genderless"),
|
|
9
|
+
level: z.number().int().min(1).max(100),
|
|
10
|
+
experience: z.number().nonnegative(),
|
|
11
|
+
ability: z.string().min(1),
|
|
12
|
+
nature: z.string().min(1),
|
|
13
|
+
shiny: z.boolean(),
|
|
14
|
+
ivs: ivsSchema,
|
|
15
|
+
evs: evsSchema,
|
|
16
|
+
moves: z.array(moveSchema).max(4),
|
|
17
|
+
});
|
|
18
|
+
//# sourceMappingURL=model.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"model.js","sourceRoot":"","sources":["../../../src/domain/pokemon/model.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,EAAE,eAAe,EAAE,eAAe,EAAkB,MAAM,0BAA0B,CAAA;AAC3F,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAA;AAElF,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC5C,EAAE,EAAE,eAAe;IACnB,SAAS,EAAE,eAAe;IAC1B,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACvB,MAAM,EAAE,mBAAmB,CAAC,OAAO,CAAC,YAAY,CAAC;IACjD,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;IACvC,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,WAAW,EAAE;IACpC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC1B,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACzB,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE;IAClB,GAAG,EAAE,SAAS;IACd,GAAG,EAAE,SAAS;IACd,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;CAClC,CAAC,CAAA"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { Ivs } from "./types.js";
|
|
2
|
+
type NatureStat = Exclude<keyof Ivs, "hp">;
|
|
3
|
+
type NatureModifiers = {
|
|
4
|
+
readonly increased: NatureStat | null;
|
|
5
|
+
readonly decreased: NatureStat | null;
|
|
6
|
+
};
|
|
7
|
+
/** Resolves the persisted English nature, independently of the display language. */
|
|
8
|
+
export declare function pokemonNatureModifiers(nature: string): NatureModifiers;
|
|
9
|
+
export {};
|
|
10
|
+
//# sourceMappingURL=nature.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nature.d.ts","sourceRoot":"","sources":["../../../src/domain/pokemon/nature.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,YAAY,CAAA;AAErC,KAAK,UAAU,GAAG,OAAO,CAAC,MAAM,GAAG,EAAE,IAAI,CAAC,CAAA;AAC1C,KAAK,eAAe,GAAG;IACrB,QAAQ,CAAC,SAAS,EAAE,UAAU,GAAG,IAAI,CAAA;IACrC,QAAQ,CAAC,SAAS,EAAE,UAAU,GAAG,IAAI,CAAA;CACtC,CAAA;AAoBD,oFAAoF;AACpF,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,MAAM,GAAG,eAAe,CAItE"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { naturesCatalog } from "../content/catalogs/natures-catalog.js";
|
|
2
|
+
const statNames = {
|
|
3
|
+
attack: "attack",
|
|
4
|
+
defense: "defense",
|
|
5
|
+
"special-attack": "specialAttack",
|
|
6
|
+
"special-defense": "specialDefense",
|
|
7
|
+
speed: "speed",
|
|
8
|
+
};
|
|
9
|
+
const modifiersByNature = new Map(naturesCatalog.map((nature) => [
|
|
10
|
+
nature.localization.en,
|
|
11
|
+
{
|
|
12
|
+
increased: nature.statIncreased === null ? null : statNames[nature.statIncreased],
|
|
13
|
+
decreased: nature.statDecreased === null ? null : statNames[nature.statDecreased],
|
|
14
|
+
},
|
|
15
|
+
]));
|
|
16
|
+
/** Resolves the persisted English nature, independently of the display language. */
|
|
17
|
+
export function pokemonNatureModifiers(nature) {
|
|
18
|
+
const modifiers = modifiersByNature.get(nature);
|
|
19
|
+
if (modifiers === undefined)
|
|
20
|
+
throw new RangeError(`Unknown canonical Pokemon nature: ${nature}`);
|
|
21
|
+
return modifiers;
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=nature.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nature.js","sourceRoot":"","sources":["../../../src/domain/pokemon/nature.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,wCAAwC,CAAA;AASvE,MAAM,SAAS,GAAG;IAChB,MAAM,EAAE,QAAQ;IAChB,OAAO,EAAE,SAAS;IAClB,gBAAgB,EAAE,eAAe;IACjC,iBAAiB,EAAE,gBAAgB;IACnC,KAAK,EAAE,OAAO;CAC+B,CAAA;AAE/C,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAC/B,cAAc,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC;IAC7B,MAAM,CAAC,YAAY,CAAC,EAAE;IACtB;QACE,SAAS,EAAE,MAAM,CAAC,aAAa,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,aAAa,CAAC;QACjF,SAAS,EAAE,MAAM,CAAC,aAAa,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,aAAa,CAAC;KAClF;CACF,CAAC,CACH,CAAA;AAED,oFAAoF;AACpF,MAAM,UAAU,sBAAsB,CAAC,MAAc;IACnD,MAAM,SAAS,GAAG,iBAAiB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;IAC/C,IAAI,SAAS,KAAK,SAAS;QAAE,MAAM,IAAI,UAAU,CAAC,qCAAqC,MAAM,EAAE,CAAC,CAAA;IAChG,OAAO,SAAS,CAAA;AAClB,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type { Evs, Ivs, Move, PokemonGender } from "./types.js";
|
|
2
|
+
export type StarterGender = Exclude<PokemonGender, "genderless">;
|
|
3
|
+
export type StarterTemplate = {
|
|
4
|
+
readonly speciesId: string;
|
|
5
|
+
readonly name: string;
|
|
6
|
+
readonly ability: string;
|
|
7
|
+
readonly initialMoves: readonly Move[];
|
|
8
|
+
};
|
|
9
|
+
export type StarterCreationData = {
|
|
10
|
+
readonly speciesId: string;
|
|
11
|
+
readonly name: string;
|
|
12
|
+
readonly gender: StarterGender;
|
|
13
|
+
readonly ability: string;
|
|
14
|
+
readonly nature: string;
|
|
15
|
+
readonly level: 5;
|
|
16
|
+
readonly experience: 0;
|
|
17
|
+
readonly shiny: false;
|
|
18
|
+
readonly ivs: Ivs;
|
|
19
|
+
readonly evs: Evs;
|
|
20
|
+
readonly moves: readonly Move[];
|
|
21
|
+
};
|
|
22
|
+
export declare function generateStarter(starter: StarterTemplate, random: () => number): StarterCreationData;
|
|
23
|
+
//# sourceMappingURL=starter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"starter.d.ts","sourceRoot":"","sources":["../../../src/domain/pokemon/starter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAE/D,MAAM,MAAM,aAAa,GAAG,OAAO,CAAC,aAAa,EAAE,YAAY,CAAC,CAAA;AAEhE,MAAM,MAAM,eAAe,GAAG;IAC5B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,YAAY,EAAE,SAAS,IAAI,EAAE,CAAA;CACvC,CAAA;AAED,MAAM,MAAM,mBAAmB,GAAG;IAChC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAA;IAC9B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAA;IACjB,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAA;IACtB,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAA;IACrB,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAA;IACjB,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAA;IACjB,QAAQ,CAAC,KAAK,EAAE,SAAS,IAAI,EAAE,CAAA;CAChC,CAAA;AA8BD,wBAAgB,eAAe,CAC7B,OAAO,EAAE,eAAe,EACxB,MAAM,EAAE,MAAM,MAAM,GACnB,mBAAmB,CAyBrB"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
const natures = [
|
|
2
|
+
"Hardy",
|
|
3
|
+
"Lonely",
|
|
4
|
+
"Brave",
|
|
5
|
+
"Adamant",
|
|
6
|
+
"Naughty",
|
|
7
|
+
"Bold",
|
|
8
|
+
"Docile",
|
|
9
|
+
"Relaxed",
|
|
10
|
+
"Impish",
|
|
11
|
+
"Lax",
|
|
12
|
+
"Timid",
|
|
13
|
+
"Hasty",
|
|
14
|
+
"Serious",
|
|
15
|
+
"Jolly",
|
|
16
|
+
"Naive",
|
|
17
|
+
"Modest",
|
|
18
|
+
"Mild",
|
|
19
|
+
"Quiet",
|
|
20
|
+
"Bashful",
|
|
21
|
+
"Rash",
|
|
22
|
+
"Calm",
|
|
23
|
+
"Gentle",
|
|
24
|
+
"Sassy",
|
|
25
|
+
"Careful",
|
|
26
|
+
"Quirky",
|
|
27
|
+
];
|
|
28
|
+
export function generateStarter(starter, random) {
|
|
29
|
+
const gender = random() < 0.5 ? "male" : "female";
|
|
30
|
+
const nature = natures[randomIndex(natures.length, random)] ?? "Hardy";
|
|
31
|
+
const ivs = {
|
|
32
|
+
hp: randomIv(random),
|
|
33
|
+
attack: randomIv(random),
|
|
34
|
+
defense: randomIv(random),
|
|
35
|
+
specialAttack: randomIv(random),
|
|
36
|
+
specialDefense: randomIv(random),
|
|
37
|
+
speed: randomIv(random),
|
|
38
|
+
};
|
|
39
|
+
return {
|
|
40
|
+
speciesId: starter.speciesId,
|
|
41
|
+
name: starter.name,
|
|
42
|
+
gender,
|
|
43
|
+
ability: starter.ability,
|
|
44
|
+
nature,
|
|
45
|
+
level: 5,
|
|
46
|
+
experience: 0,
|
|
47
|
+
shiny: false,
|
|
48
|
+
ivs,
|
|
49
|
+
evs: { hp: 0, attack: 0, defense: 0, specialAttack: 0, specialDefense: 0, speed: 0 },
|
|
50
|
+
moves: starter.initialMoves,
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
function randomIndex(length, random) {
|
|
54
|
+
return Math.min(Math.floor(random() * length), length - 1);
|
|
55
|
+
}
|
|
56
|
+
function randomIv(random) {
|
|
57
|
+
return Math.floor(random() * 32);
|
|
58
|
+
}
|
|
59
|
+
//# sourceMappingURL=starter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"starter.js","sourceRoot":"","sources":["../../../src/domain/pokemon/starter.ts"],"names":[],"mappings":"AAyBA,MAAM,OAAO,GAAG;IACd,OAAO;IACP,QAAQ;IACR,OAAO;IACP,SAAS;IACT,SAAS;IACT,MAAM;IACN,QAAQ;IACR,SAAS;IACT,QAAQ;IACR,KAAK;IACL,OAAO;IACP,OAAO;IACP,SAAS;IACT,OAAO;IACP,OAAO;IACP,QAAQ;IACR,MAAM;IACN,OAAO;IACP,SAAS;IACT,MAAM;IACN,MAAM;IACN,QAAQ;IACR,OAAO;IACP,SAAS;IACT,QAAQ;CACA,CAAA;AAEV,MAAM,UAAU,eAAe,CAC7B,OAAwB,EACxB,MAAoB;IAEpB,MAAM,MAAM,GAAkB,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAA;IAChE,MAAM,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,IAAI,OAAO,CAAA;IACtE,MAAM,GAAG,GAAG;QACV,EAAE,EAAE,QAAQ,CAAC,MAAM,CAAC;QACpB,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC;QACxB,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC;QACzB,aAAa,EAAE,QAAQ,CAAC,MAAM,CAAC;QAC/B,cAAc,EAAE,QAAQ,CAAC,MAAM,CAAC;QAChC,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC;KACxB,CAAA;IAED,OAAO;QACL,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,MAAM;QACN,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,MAAM;QACN,KAAK,EAAE,CAAC;QACR,UAAU,EAAE,CAAC;QACb,KAAK,EAAE,KAAK;QACZ,GAAG;QACH,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE,cAAc,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE;QACpF,KAAK,EAAE,OAAO,CAAC,YAAY;KAC5B,CAAA;AACH,CAAC;AAED,SAAS,WAAW,CAAC,MAAc,EAAE,MAAoB;IACvD,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,GAAG,MAAM,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,CAAA;AAC5D,CAAC;AAED,SAAS,QAAQ,CAAC,MAAoB;IACpC,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAA;AAClC,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { PokemonInstance } from "./model.js";
|
|
2
|
+
import type { Ivs } from "./types.js";
|
|
3
|
+
export type PokemonStats = Readonly<Ivs>;
|
|
4
|
+
/** Uses canonical species ID and persisted English nature, never localized display names. */
|
|
5
|
+
export declare function pokemonStats(pokemon: PokemonInstance): PokemonStats;
|
|
6
|
+
//# sourceMappingURL=stats.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stats.d.ts","sourceRoot":"","sources":["../../../src/domain/pokemon/stats.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAEjD,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,YAAY,CAAA;AAErC,MAAM,MAAM,YAAY,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAA;AAmBxC,6FAA6F;AAC7F,wBAAgB,YAAY,CAAC,OAAO,EAAE,eAAe,GAAG,YAAY,CAuBnE"}
|