open-optcg 0.0.0-stage → 0.1.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 +26 -0
- package/README.md +74 -2
- package/dist/cards.js +1 -0
- package/dist/chunks/chunk-4I54H2QI.js +1 -0
- package/dist/chunks/chunk-5QCGQIMI.js +1 -0
- package/dist/decks.js +2 -0
- package/dist/engine.js +1 -0
- package/dist/protocol.js +1 -0
- package/dist/types/cards.d.ts +1 -0
- package/dist/types/decks.d.ts +1 -0
- package/dist/types/engine.d.ts +1 -0
- package/dist/types/internal/cards/src/block-icons.d.ts +26 -0
- package/dist/types/internal/cards/src/eb01.d.ts +2 -0
- package/dist/types/internal/cards/src/eb02.d.ts +2 -0
- package/dist/types/internal/cards/src/eb03.d.ts +2 -0
- package/dist/types/internal/cards/src/eb04.d.ts +2 -0
- package/dist/types/internal/cards/src/eb05.d.ts +2 -0
- package/dist/types/internal/cards/src/generated-blocks.d.ts +3 -0
- package/dist/types/internal/cards/src/generated-community.d.ts +5972 -0
- package/dist/types/internal/cards/src/generated-eb01.d.ts +2981 -0
- package/dist/types/internal/cards/src/generated-eb02.d.ts +2994 -0
- package/dist/types/internal/cards/src/generated-eb03.d.ts +3133 -0
- package/dist/types/internal/cards/src/generated-eb04.d.ts +3068 -0
- package/dist/types/internal/cards/src/generated-eb05.d.ts +3046 -0
- package/dist/types/internal/cards/src/generated-op05.d.ts +5816 -0
- package/dist/types/internal/cards/src/generated-op06.d.ts +5813 -0
- package/dist/types/internal/cards/src/generated-op07.d.ts +5793 -0
- package/dist/types/internal/cards/src/generated-op08.d.ts +5833 -0
- package/dist/types/internal/cards/src/generated-op09.d.ts +5800 -0
- package/dist/types/internal/cards/src/generated-op10.d.ts +5815 -0
- package/dist/types/internal/cards/src/generated-op11.d.ts +5787 -0
- package/dist/types/internal/cards/src/generated-op12.d.ts +5765 -0
- package/dist/types/internal/cards/src/generated-op13.d.ts +5870 -0
- package/dist/types/internal/cards/src/generated-op14.d.ts +5926 -0
- package/dist/types/internal/cards/src/generated-op15.d.ts +5900 -0
- package/dist/types/internal/cards/src/generated-op16.d.ts +5887 -0
- package/dist/types/internal/cards/src/generated-op17.d.ts +5961 -0
- package/dist/types/internal/cards/src/generated-p.d.ts +5265 -0
- package/dist/types/internal/cards/src/generated-prb02.d.ts +891 -0
- package/dist/types/internal/cards/src/generated-st10.d.ts +840 -0
- package/dist/types/internal/cards/src/generated-st11.d.ts +248 -0
- package/dist/types/internal/cards/src/generated-st12.d.ts +832 -0
- package/dist/types/internal/cards/src/generated-st13.d.ts +946 -0
- package/dist/types/internal/cards/src/generated-st14.d.ts +820 -0
- package/dist/types/internal/cards/src/generated-st15.d.ts +246 -0
- package/dist/types/internal/cards/src/generated-st16.d.ts +239 -0
- package/dist/types/internal/cards/src/generated-st17.d.ts +248 -0
- package/dist/types/internal/cards/src/generated-st19.d.ts +256 -0
- package/dist/types/internal/cards/src/generated-st20.d.ts +241 -0
- package/dist/types/internal/cards/src/generated-st21.d.ts +814 -0
- package/dist/types/internal/cards/src/generated-st22.d.ts +822 -0
- package/dist/types/internal/cards/src/generated-st24.d.ts +250 -0
- package/dist/types/internal/cards/src/generated-st25.d.ts +247 -0
- package/dist/types/internal/cards/src/generated-st27.d.ts +258 -0
- package/dist/types/internal/cards/src/generated-st29.d.ts +816 -0
- package/dist/types/internal/cards/src/generated-st30.d.ts +832 -0
- package/dist/types/internal/cards/src/generated.d.ts +4328 -0
- package/dist/types/internal/cards/src/index.d.ts +58 -0
- package/dist/types/internal/cards/src/op05.d.ts +2 -0
- package/dist/types/internal/cards/src/op06.d.ts +2 -0
- package/dist/types/internal/cards/src/op07.d.ts +2 -0
- package/dist/types/internal/cards/src/op08.d.ts +2 -0
- package/dist/types/internal/cards/src/op09.d.ts +2 -0
- package/dist/types/internal/cards/src/op10.d.ts +2 -0
- package/dist/types/internal/cards/src/op11.d.ts +2 -0
- package/dist/types/internal/cards/src/op12.d.ts +2 -0
- package/dist/types/internal/cards/src/op13.d.ts +2 -0
- package/dist/types/internal/cards/src/op14.d.ts +2 -0
- package/dist/types/internal/cards/src/op15.d.ts +2 -0
- package/dist/types/internal/cards/src/op16.d.ts +2 -0
- package/dist/types/internal/cards/src/op17-rarity.d.ts +3 -0
- package/dist/types/internal/cards/src/op17.d.ts +2 -0
- package/dist/types/internal/cards/src/p.d.ts +2 -0
- package/dist/types/internal/cards/src/prb02.d.ts +2 -0
- package/dist/types/internal/cards/src/rules-derivation.d.ts +16 -0
- package/dist/types/internal/cards/src/sealed-promo.d.ts +43 -0
- package/dist/types/internal/cards/src/st10.d.ts +2 -0
- package/dist/types/internal/cards/src/st11.d.ts +2 -0
- package/dist/types/internal/cards/src/st12.d.ts +2 -0
- package/dist/types/internal/cards/src/st13.d.ts +2 -0
- package/dist/types/internal/cards/src/st14.d.ts +2 -0
- package/dist/types/internal/cards/src/st15.d.ts +2 -0
- package/dist/types/internal/cards/src/st16.d.ts +2 -0
- package/dist/types/internal/cards/src/st17.d.ts +2 -0
- package/dist/types/internal/cards/src/st19.d.ts +2 -0
- package/dist/types/internal/cards/src/st20.d.ts +2 -0
- package/dist/types/internal/cards/src/st21.d.ts +2 -0
- package/dist/types/internal/cards/src/st22.d.ts +2 -0
- package/dist/types/internal/cards/src/st24.d.ts +2 -0
- package/dist/types/internal/cards/src/st25.d.ts +2 -0
- package/dist/types/internal/cards/src/st27.d.ts +2 -0
- package/dist/types/internal/cards/src/st29.d.ts +2 -0
- package/dist/types/internal/cards/src/st30.d.ts +2 -0
- package/dist/types/internal/cards/src/text.d.ts +20 -0
- package/dist/types/internal/cards/src/unimplemented-clauses.d.ts +7 -0
- package/dist/types/internal/decks/src/deck-provenance.d.ts +30 -0
- package/dist/types/internal/decks/src/decklist.d.ts +3 -0
- package/dist/types/internal/decks/src/eb02-luffy-manifest.d.ts +2 -0
- package/dist/types/internal/decks/src/eb02-luffy-tournament-manifest.d.ts +2 -0
- package/dist/types/internal/decks/src/eb03-vivi-manifest.d.ts +2 -0
- package/dist/types/internal/decks/src/eb03-vivi-tournament-manifest.d.ts +2 -0
- package/dist/types/internal/decks/src/eb04-bonney-manifest.d.ts +2 -0
- package/dist/types/internal/decks/src/eb04-bonney-tournament-manifest.d.ts +2 -0
- package/dist/types/internal/decks/src/eb05-robin-manifest.d.ts +2 -0
- package/dist/types/internal/decks/src/generated.d.ts +115 -0
- package/dist/types/internal/decks/src/index.d.ts +64 -0
- package/dist/types/internal/decks/src/legality.d.ts +14 -0
- package/dist/types/internal/decks/src/op05-enel-tcgmm-manifest.d.ts +2 -0
- package/dist/types/internal/decks/src/op05-luffy-tournament-manifest.d.ts +2 -0
- package/dist/types/internal/decks/src/op06-reiju-regional-manifest.d.ts +2 -0
- package/dist/types/internal/decks/src/op06-yamato-manifest.d.ts +2 -0
- package/dist/types/internal/decks/src/op06-yamato-tournament-manifest.d.ts +2 -0
- package/dist/types/internal/decks/src/op07-vegapunk-store-battle-manifest.d.ts +2 -0
- package/dist/types/internal/decks/src/op08-pudding-manifest.d.ts +2 -0
- package/dist/types/internal/decks/src/op09-buggy-manifest.d.ts +2 -0
- package/dist/types/internal/decks/src/op09-buggy-tournament-manifest.d.ts +2 -0
- package/dist/types/internal/decks/src/op09-luffy-tournament-manifest.d.ts +2 -0
- package/dist/types/internal/decks/src/op09-robin-manifest.d.ts +2 -0
- package/dist/types/internal/decks/src/op09-shanks-tournament-manifest.d.ts +2 -0
- package/dist/types/internal/decks/src/op10-kid-tournament-manifest.d.ts +2 -0
- package/dist/types/internal/decks/src/op10-usopp-manifest.d.ts +2 -0
- package/dist/types/internal/decks/src/op11-jinbe-manifest.d.ts +2 -0
- package/dist/types/internal/decks/src/op11-jinbe-tournament-manifest.d.ts +2 -0
- package/dist/types/internal/decks/src/op11-katakuri-tournament-manifest.d.ts +2 -0
- package/dist/types/internal/decks/src/op11-koby-tournament-manifest.d.ts +2 -0
- package/dist/types/internal/decks/src/op11-shirahoshi-manifest.d.ts +2 -0
- package/dist/types/internal/decks/src/op11-shirahoshi-tournament-manifest.d.ts +2 -0
- package/dist/types/internal/decks/src/op12-koala-manifest.d.ts +2 -0
- package/dist/types/internal/decks/src/op12-koala-tournament-manifest.d.ts +2 -0
- package/dist/types/internal/decks/src/op12-rayleigh-manifest.d.ts +2 -0
- package/dist/types/internal/decks/src/op12-rayleigh-tournament-manifest.d.ts +2 -0
- package/dist/types/internal/decks/src/op12-sanji-manifest.d.ts +2 -0
- package/dist/types/internal/decks/src/op12-sanji-tournament-manifest.d.ts +2 -0
- package/dist/types/internal/decks/src/op12-zoro-manifest.d.ts +2 -0
- package/dist/types/internal/decks/src/op13-ace-manifest.d.ts +2 -0
- package/dist/types/internal/decks/src/op13-ace-tournament-manifest.d.ts +2 -0
- package/dist/types/internal/decks/src/op13-imu-manifest.d.ts +2 -0
- package/dist/types/internal/decks/src/op13-luffy-miracle-manifest.d.ts +2 -0
- package/dist/types/internal/decks/src/op13-roger-manifest.d.ts +2 -0
- package/dist/types/internal/decks/src/op13-roger-tournament-manifest.d.ts +2 -0
- package/dist/types/internal/decks/src/op13-sabo-tournament-manifest.d.ts +2 -0
- package/dist/types/internal/decks/src/op14-crocodile-manifest.d.ts +2 -0
- package/dist/types/internal/decks/src/op14-doflamingo-manifest.d.ts +2 -0
- package/dist/types/internal/decks/src/op14-doflamingo-tournament-manifest.d.ts +2 -0
- package/dist/types/internal/decks/src/op14-hancock-manifest.d.ts +2 -0
- package/dist/types/internal/decks/src/op14-hancock-tournament-manifest.d.ts +2 -0
- package/dist/types/internal/decks/src/op14-jinbe-manifest.d.ts +2 -0
- package/dist/types/internal/decks/src/op14-jinbe-tournament-manifest.d.ts +2 -0
- package/dist/types/internal/decks/src/op14-law-manifest.d.ts +2 -0
- package/dist/types/internal/decks/src/op14-law-tournament-manifest.d.ts +2 -0
- package/dist/types/internal/decks/src/op14-moria-manifest.d.ts +2 -0
- package/dist/types/internal/decks/src/op14-moria-tournament-manifest.d.ts +2 -0
- package/dist/types/internal/decks/src/op15-brook-manifest.d.ts +2 -0
- package/dist/types/internal/decks/src/op15-enel-chinoize-manifest.d.ts +2 -0
- package/dist/types/internal/decks/src/op15-krieg-manifest.d.ts +2 -0
- package/dist/types/internal/decks/src/op15-lucy-manifest.d.ts +2 -0
- package/dist/types/internal/decks/src/op15-luffy-manifest.d.ts +2 -0
- package/dist/types/internal/decks/src/op15-rebecca-manifest.d.ts +2 -0
- package/dist/types/internal/decks/src/op16-ace-manifest.d.ts +2 -0
- package/dist/types/internal/decks/src/op16-ace-open-manifest.d.ts +2 -0
- package/dist/types/internal/decks/src/op16-enel-manifest.d.ts +2 -0
- package/dist/types/internal/decks/src/op16-nami-manifest.d.ts +2 -0
- package/dist/types/internal/decks/src/op16-sengoku-manifest.d.ts +2 -0
- package/dist/types/internal/decks/src/op16-teach-manifest.d.ts +2 -0
- package/dist/types/internal/decks/src/op16-yamato-manifest.d.ts +2 -0
- package/dist/types/internal/decks/src/op17-kaido-field-manifest.d.ts +2 -0
- package/dist/types/internal/decks/src/op17-kaido-manifest.d.ts +2 -0
- package/dist/types/internal/decks/src/op17-linlin-manifest.d.ts +2 -0
- package/dist/types/internal/decks/src/op17-linlin-tournament-manifest.d.ts +2 -0
- package/dist/types/internal/decks/src/op17-luffy-ace-manifest.d.ts +2 -0
- package/dist/types/internal/decks/src/op17-luffy-manifest.d.ts +2 -0
- package/dist/types/internal/decks/src/op17-luffy-tournament-manifest.d.ts +2 -0
- package/dist/types/internal/decks/src/op17-newgate-manifest.d.ts +2 -0
- package/dist/types/internal/decks/src/op17-shanks-manifest.d.ts +2 -0
- package/dist/types/internal/decks/src/op17-shanks-tournament-manifest.d.ts +2 -0
- package/dist/types/internal/decks/src/op17-xebec-manifest.d.ts +2 -0
- package/dist/types/internal/decks/src/op17-xebec-open-manifest.d.ts +2 -0
- package/dist/types/internal/decks/src/sealed.d.ts +73 -0
- package/dist/types/internal/decks/src/st18-luffy-manifest.d.ts +2 -0
- package/dist/types/internal/decks/src/st21-luffy-open-manifest.d.ts +2 -0
- package/dist/types/internal/decks/src/st22-ace-newgate-manifest.d.ts +2 -0
- package/dist/types/internal/decks/src/st23-shanks-manifest.d.ts +2 -0
- package/dist/types/internal/decks/src/st26-luffy-manifest.d.ts +2 -0
- package/dist/types/internal/decks/src/st27-teach-manifest.d.ts +2 -0
- package/dist/types/internal/decks/src/st29-luffy-manifest.d.ts +2 -0
- package/dist/types/internal/decks/src/st29-luffy-tournament-manifest.d.ts +2 -0
- package/dist/types/internal/decks/src/st30-luffy-ace-manifest.d.ts +2 -0
- package/dist/types/internal/decks/src/st33-kuzan-tournament-manifest.d.ts +2 -0
- package/dist/types/internal/engine-core/src/ability-availability.d.ts +13 -0
- package/dist/types/internal/engine-core/src/actions/activate-counter-event.d.ts +2 -0
- package/dist/types/internal/engine-core/src/actions/activate-main.d.ts +2 -0
- package/dist/types/internal/engine-core/src/actions/attach-don.d.ts +2 -0
- package/dist/types/internal/engine-core/src/actions/attack.d.ts +2 -0
- package/dist/types/internal/engine-core/src/actions/block.d.ts +2 -0
- package/dist/types/internal/engine-core/src/actions/context.d.ts +19 -0
- package/dist/types/internal/engine-core/src/actions/counter.d.ts +2 -0
- package/dist/types/internal/engine-core/src/actions/index.d.ts +3 -0
- package/dist/types/internal/engine-core/src/actions/mulligan-decision.d.ts +2 -0
- package/dist/types/internal/engine-core/src/actions/pass.d.ts +2 -0
- package/dist/types/internal/engine-core/src/actions/play-card.d.ts +2 -0
- package/dist/types/internal/engine-core/src/actions/resolve-effect.d.ts +2 -0
- package/dist/types/internal/engine-core/src/actions/resolve-trigger.d.ts +2 -0
- package/dist/types/internal/engine-core/src/base-power.d.ts +4 -0
- package/dist/types/internal/engine-core/src/battle.d.ts +34 -0
- package/dist/types/internal/engine-core/src/board.d.ts +40 -0
- package/dist/types/internal/engine-core/src/canonical.d.ts +2 -0
- package/dist/types/internal/engine-core/src/card-mechanics.d.ts +57 -0
- package/dist/types/internal/engine-core/src/clone.d.ts +1 -0
- package/dist/types/internal/engine-core/src/condition-text.d.ts +3 -0
- package/dist/types/internal/engine-core/src/damage-replacement.d.ts +8 -0
- package/dist/types/internal/engine-core/src/don.d.ts +18 -0
- package/dist/types/internal/engine-core/src/effect-options.d.ts +4 -0
- package/dist/types/internal/engine-core/src/effects.d.ts +50 -0
- package/dist/types/internal/engine-core/src/engine.d.ts +31 -0
- package/dist/types/internal/engine-core/src/errors.d.ts +4 -0
- package/dist/types/internal/engine-core/src/event-text.d.ts +14 -0
- package/dist/types/internal/engine-core/src/hand-price.d.ts +7 -0
- package/dist/types/internal/engine-core/src/index.d.ts +26 -0
- package/dist/types/internal/engine-core/src/invariants.d.ts +10 -0
- package/dist/types/internal/engine-core/src/legal-actions/action-costs.d.ts +13 -0
- package/dist/types/internal/engine-core/src/legal-actions/block.d.ts +4 -0
- package/dist/types/internal/engine-core/src/legal-actions/counter.d.ts +4 -0
- package/dist/types/internal/engine-core/src/legal-actions/index.d.ts +6 -0
- package/dist/types/internal/engine-core/src/legal-actions/main/activations.d.ts +4 -0
- package/dist/types/internal/engine-core/src/legal-actions/main/attacks.d.ts +4 -0
- package/dist/types/internal/engine-core/src/legal-actions/main/don.d.ts +4 -0
- package/dist/types/internal/engine-core/src/legal-actions/main/hand.d.ts +4 -0
- package/dist/types/internal/engine-core/src/legal-actions/main/index.d.ts +4 -0
- package/dist/types/internal/engine-core/src/legal-actions/main/pass.d.ts +3 -0
- package/dist/types/internal/engine-core/src/legal-actions/mulligan.d.ts +3 -0
- package/dist/types/internal/engine-core/src/legal-actions/pending-effect.d.ts +4 -0
- package/dist/types/internal/engine-core/src/legal-actions/trigger.d.ts +3 -0
- package/dist/types/internal/engine-core/src/life.d.ts +27 -0
- package/dist/types/internal/engine-core/src/mechanic-choices.d.ts +14 -0
- package/dist/types/internal/engine-core/src/mechanic-conditions.d.ts +21 -0
- package/dist/types/internal/engine-core/src/mechanic-dsl.d.ts +696 -0
- package/dist/types/internal/engine-core/src/mechanics/eb01-battle.d.ts +2 -0
- package/dist/types/internal/engine-core/src/mechanics/eb01-main.d.ts +7 -0
- package/dist/types/internal/engine-core/src/mechanics/eb01-on-play.d.ts +7 -0
- package/dist/types/internal/engine-core/src/mechanics/eb01-reactions.d.ts +2 -0
- package/dist/types/internal/engine-core/src/mechanics/eb01-replacements.d.ts +2 -0
- package/dist/types/internal/engine-core/src/mechanics/eb01-shared.d.ts +7 -0
- package/dist/types/internal/engine-core/src/mechanics/eb01-static.d.ts +2 -0
- package/dist/types/internal/engine-core/src/mechanics/eb01-triggers.d.ts +2 -0
- package/dist/types/internal/engine-core/src/mechanics/eb02-battle.d.ts +2 -0
- package/dist/types/internal/engine-core/src/mechanics/eb02-main.d.ts +2 -0
- package/dist/types/internal/engine-core/src/mechanics/eb02-on-play.d.ts +8 -0
- package/dist/types/internal/engine-core/src/mechanics/eb02-reactions.d.ts +2 -0
- package/dist/types/internal/engine-core/src/mechanics/eb02-shared.d.ts +4 -0
- package/dist/types/internal/engine-core/src/mechanics/eb02-static.d.ts +2 -0
- package/dist/types/internal/engine-core/src/mechanics/eb02-triggers.d.ts +2 -0
- package/dist/types/internal/engine-core/src/mechanics/eb03-battle.d.ts +2 -0
- package/dist/types/internal/engine-core/src/mechanics/eb03-main.d.ts +5 -0
- package/dist/types/internal/engine-core/src/mechanics/eb03-on-play.d.ts +40 -0
- package/dist/types/internal/engine-core/src/mechanics/eb03-reactions.d.ts +2 -0
- package/dist/types/internal/engine-core/src/mechanics/eb03-replacements.d.ts +2 -0
- package/dist/types/internal/engine-core/src/mechanics/eb03-static.d.ts +3 -0
- package/dist/types/internal/engine-core/src/mechanics/eb03-triggers.d.ts +2 -0
- package/dist/types/internal/engine-core/src/mechanics/eb04-battle.d.ts +2 -0
- package/dist/types/internal/engine-core/src/mechanics/eb04-bonney.d.ts +2 -0
- package/dist/types/internal/engine-core/src/mechanics/eb04-main.d.ts +5 -0
- package/dist/types/internal/engine-core/src/mechanics/eb04-on-play.d.ts +5 -0
- package/dist/types/internal/engine-core/src/mechanics/eb04-reactions.d.ts +2 -0
- package/dist/types/internal/engine-core/src/mechanics/eb04-replacements.d.ts +2 -0
- package/dist/types/internal/engine-core/src/mechanics/eb04-static.d.ts +3 -0
- package/dist/types/internal/engine-core/src/mechanics/eb04-triggers.d.ts +2 -0
- package/dist/types/internal/engine-core/src/mechanics/eb05-battle.d.ts +2 -0
- package/dist/types/internal/engine-core/src/mechanics/eb05-main.d.ts +4 -0
- package/dist/types/internal/engine-core/src/mechanics/eb05-on-play.d.ts +4 -0
- package/dist/types/internal/engine-core/src/mechanics/eb05-reactions.d.ts +2 -0
- package/dist/types/internal/engine-core/src/mechanics/eb05-replacements.d.ts +2 -0
- package/dist/types/internal/engine-core/src/mechanics/eb05-shared.d.ts +12 -0
- package/dist/types/internal/engine-core/src/mechanics/eb05-static.d.ts +3 -0
- package/dist/types/internal/engine-core/src/mechanics/eb05-triggers.d.ts +2 -0
- package/dist/types/internal/engine-core/src/mechanics/format-static.d.ts +2 -0
- package/dist/types/internal/engine-core/src/mechanics/format.d.ts +2 -0
- package/dist/types/internal/engine-core/src/mechanics/index.d.ts +15 -0
- package/dist/types/internal/engine-core/src/mechanics/op02.d.ts +2 -0
- package/dist/types/internal/engine-core/src/mechanics/op03-static.d.ts +2 -0
- package/dist/types/internal/engine-core/src/mechanics/op03.d.ts +2 -0
- package/dist/types/internal/engine-core/src/mechanics/op04-static.d.ts +2 -0
- package/dist/types/internal/engine-core/src/mechanics/op04.d.ts +2 -0
- package/dist/types/internal/engine-core/src/mechanics/op05-battle.d.ts +2 -0
- package/dist/types/internal/engine-core/src/mechanics/op05-main.d.ts +6 -0
- package/dist/types/internal/engine-core/src/mechanics/op05-on-play.d.ts +5 -0
- package/dist/types/internal/engine-core/src/mechanics/op05-reactions.d.ts +2 -0
- package/dist/types/internal/engine-core/src/mechanics/op05-replacements.d.ts +2 -0
- package/dist/types/internal/engine-core/src/mechanics/op05-shared.d.ts +17 -0
- package/dist/types/internal/engine-core/src/mechanics/op05-static.d.ts +2 -0
- package/dist/types/internal/engine-core/src/mechanics/op05-triggers.d.ts +2 -0
- package/dist/types/internal/engine-core/src/mechanics/op06-battle.d.ts +2 -0
- package/dist/types/internal/engine-core/src/mechanics/op06-main.d.ts +8 -0
- package/dist/types/internal/engine-core/src/mechanics/op06-on-play.d.ts +2 -0
- package/dist/types/internal/engine-core/src/mechanics/op06-reactions.d.ts +2 -0
- package/dist/types/internal/engine-core/src/mechanics/op06-shared.d.ts +18 -0
- package/dist/types/internal/engine-core/src/mechanics/op06-static.d.ts +3 -0
- package/dist/types/internal/engine-core/src/mechanics/op06-triggers.d.ts +2 -0
- package/dist/types/internal/engine-core/src/mechanics/op06-yamato.d.ts +2 -0
- package/dist/types/internal/engine-core/src/mechanics/op07-battle.d.ts +2 -0
- package/dist/types/internal/engine-core/src/mechanics/op07-main.d.ts +2 -0
- package/dist/types/internal/engine-core/src/mechanics/op07-on-play.d.ts +2 -0
- package/dist/types/internal/engine-core/src/mechanics/op07-reactions.d.ts +2 -0
- package/dist/types/internal/engine-core/src/mechanics/op07-replacements.d.ts +2 -0
- package/dist/types/internal/engine-core/src/mechanics/op07-shared.d.ts +19 -0
- package/dist/types/internal/engine-core/src/mechanics/op07-static.d.ts +3 -0
- package/dist/types/internal/engine-core/src/mechanics/op07-triggers.d.ts +2 -0
- package/dist/types/internal/engine-core/src/mechanics/op08-battle.d.ts +2 -0
- package/dist/types/internal/engine-core/src/mechanics/op08-main.d.ts +6 -0
- package/dist/types/internal/engine-core/src/mechanics/op08-on-play.d.ts +4 -0
- package/dist/types/internal/engine-core/src/mechanics/op08-reactions.d.ts +2 -0
- package/dist/types/internal/engine-core/src/mechanics/op08-replacements.d.ts +2 -0
- package/dist/types/internal/engine-core/src/mechanics/op08-shared.d.ts +14 -0
- package/dist/types/internal/engine-core/src/mechanics/op08-static.d.ts +3 -0
- package/dist/types/internal/engine-core/src/mechanics/op08-triggers.d.ts +10 -0
- package/dist/types/internal/engine-core/src/mechanics/op09-battle.d.ts +2 -0
- package/dist/types/internal/engine-core/src/mechanics/op09-main.d.ts +2 -0
- package/dist/types/internal/engine-core/src/mechanics/op09-on-play.d.ts +2 -0
- package/dist/types/internal/engine-core/src/mechanics/op09-reactions.d.ts +2 -0
- package/dist/types/internal/engine-core/src/mechanics/op09-replacements.d.ts +2 -0
- package/dist/types/internal/engine-core/src/mechanics/op09-shared.d.ts +4 -0
- package/dist/types/internal/engine-core/src/mechanics/op09-static.d.ts +3 -0
- package/dist/types/internal/engine-core/src/mechanics/op09-triggers.d.ts +2 -0
- package/dist/types/internal/engine-core/src/mechanics/op10-battle.d.ts +2 -0
- package/dist/types/internal/engine-core/src/mechanics/op10-main.d.ts +4 -0
- package/dist/types/internal/engine-core/src/mechanics/op10-on-play.d.ts +2 -0
- package/dist/types/internal/engine-core/src/mechanics/op10-reactions.d.ts +2 -0
- package/dist/types/internal/engine-core/src/mechanics/op10-replacements.d.ts +2 -0
- package/dist/types/internal/engine-core/src/mechanics/op10-shared.d.ts +8 -0
- package/dist/types/internal/engine-core/src/mechanics/op10-static.d.ts +3 -0
- package/dist/types/internal/engine-core/src/mechanics/op10-triggers.d.ts +2 -0
- package/dist/types/internal/engine-core/src/mechanics/op11-battle.d.ts +2 -0
- package/dist/types/internal/engine-core/src/mechanics/op11-main.d.ts +4 -0
- package/dist/types/internal/engine-core/src/mechanics/op11-on-play.d.ts +2 -0
- package/dist/types/internal/engine-core/src/mechanics/op11-reactions.d.ts +2 -0
- package/dist/types/internal/engine-core/src/mechanics/op11-replacements.d.ts +2 -0
- package/dist/types/internal/engine-core/src/mechanics/op11-shared.d.ts +9 -0
- package/dist/types/internal/engine-core/src/mechanics/op11-static.d.ts +3 -0
- package/dist/types/internal/engine-core/src/mechanics/op11-triggers.d.ts +2 -0
- package/dist/types/internal/engine-core/src/mechanics/op12-battle.d.ts +2 -0
- package/dist/types/internal/engine-core/src/mechanics/op12-main.d.ts +6 -0
- package/dist/types/internal/engine-core/src/mechanics/op12-on-play.d.ts +10 -0
- package/dist/types/internal/engine-core/src/mechanics/op12-reactions.d.ts +2 -0
- package/dist/types/internal/engine-core/src/mechanics/op12-replacements.d.ts +2 -0
- package/dist/types/internal/engine-core/src/mechanics/op12-rosinante.d.ts +2 -0
- package/dist/types/internal/engine-core/src/mechanics/op12-shared.d.ts +2 -0
- package/dist/types/internal/engine-core/src/mechanics/op12-static.d.ts +3 -0
- package/dist/types/internal/engine-core/src/mechanics/op12-triggers.d.ts +5 -0
- package/dist/types/internal/engine-core/src/mechanics/op13-battle.d.ts +4 -0
- package/dist/types/internal/engine-core/src/mechanics/op13-main.d.ts +8 -0
- package/dist/types/internal/engine-core/src/mechanics/op13-on-play.d.ts +5 -0
- package/dist/types/internal/engine-core/src/mechanics/op13-reactions.d.ts +2 -0
- package/dist/types/internal/engine-core/src/mechanics/op13-replacements.d.ts +2 -0
- package/dist/types/internal/engine-core/src/mechanics/op13-shared.d.ts +7 -0
- package/dist/types/internal/engine-core/src/mechanics/op13-static.d.ts +3 -0
- package/dist/types/internal/engine-core/src/mechanics/op13-triggers.d.ts +2 -0
- package/dist/types/internal/engine-core/src/mechanics/op14-battle.d.ts +2 -0
- package/dist/types/internal/engine-core/src/mechanics/op14-main.d.ts +4 -0
- package/dist/types/internal/engine-core/src/mechanics/op14-mihawk.d.ts +2 -0
- package/dist/types/internal/engine-core/src/mechanics/op14-on-play.d.ts +2 -0
- package/dist/types/internal/engine-core/src/mechanics/op14-reactions.d.ts +2 -0
- package/dist/types/internal/engine-core/src/mechanics/op14-replacements.d.ts +2 -0
- package/dist/types/internal/engine-core/src/mechanics/op14-shared.d.ts +7 -0
- package/dist/types/internal/engine-core/src/mechanics/op14-static.d.ts +2 -0
- package/dist/types/internal/engine-core/src/mechanics/op14-triggers.d.ts +2 -0
- package/dist/types/internal/engine-core/src/mechanics/op15-battle.d.ts +2 -0
- package/dist/types/internal/engine-core/src/mechanics/op15-main.d.ts +2 -0
- package/dist/types/internal/engine-core/src/mechanics/op15-on-play.d.ts +2 -0
- package/dist/types/internal/engine-core/src/mechanics/op15-reactions.d.ts +2 -0
- package/dist/types/internal/engine-core/src/mechanics/op15-shared.d.ts +4 -0
- package/dist/types/internal/engine-core/src/mechanics/op15-static.d.ts +3 -0
- package/dist/types/internal/engine-core/src/mechanics/op15-triggers.d.ts +2 -0
- package/dist/types/internal/engine-core/src/mechanics/op16-ace.d.ts +2 -0
- package/dist/types/internal/engine-core/src/mechanics/op16-battle.d.ts +2 -0
- package/dist/types/internal/engine-core/src/mechanics/op16-enel.d.ts +2 -0
- package/dist/types/internal/engine-core/src/mechanics/op16-luffy.d.ts +2 -0
- package/dist/types/internal/engine-core/src/mechanics/op16-main.d.ts +2 -0
- package/dist/types/internal/engine-core/src/mechanics/op16-nami.d.ts +2 -0
- package/dist/types/internal/engine-core/src/mechanics/op16-on-play.d.ts +2 -0
- package/dist/types/internal/engine-core/src/mechanics/op16-reactions.d.ts +2 -0
- package/dist/types/internal/engine-core/src/mechanics/op16-replacements.d.ts +2 -0
- package/dist/types/internal/engine-core/src/mechanics/op16-shared.d.ts +8 -0
- package/dist/types/internal/engine-core/src/mechanics/op16-static.d.ts +2 -0
- package/dist/types/internal/engine-core/src/mechanics/op16-teach.d.ts +2 -0
- package/dist/types/internal/engine-core/src/mechanics/op16-triggers.d.ts +4 -0
- package/dist/types/internal/engine-core/src/mechanics/op17-battle.d.ts +2 -0
- package/dist/types/internal/engine-core/src/mechanics/op17-kaido.d.ts +2 -0
- package/dist/types/internal/engine-core/src/mechanics/op17-luffy-ace.d.ts +2 -0
- package/dist/types/internal/engine-core/src/mechanics/op17-main.d.ts +2 -0
- package/dist/types/internal/engine-core/src/mechanics/op17-meta.d.ts +2 -0
- package/dist/types/internal/engine-core/src/mechanics/op17-on-play.d.ts +2 -0
- package/dist/types/internal/engine-core/src/mechanics/op17-replacements.d.ts +2 -0
- package/dist/types/internal/engine-core/src/mechanics/op17-static.d.ts +2 -0
- package/dist/types/internal/engine-core/src/mechanics/op17-triggers.d.ts +2 -0
- package/dist/types/internal/engine-core/src/mechanics/prb02-battle.d.ts +2 -0
- package/dist/types/internal/engine-core/src/mechanics/prb02-on-play.d.ts +2 -0
- package/dist/types/internal/engine-core/src/mechanics/prb02-replacements.d.ts +2 -0
- package/dist/types/internal/engine-core/src/mechanics/prb02-static.d.ts +2 -0
- package/dist/types/internal/engine-core/src/mechanics/prb02-triggers.d.ts +2 -0
- package/dist/types/internal/engine-core/src/mechanics/promo-battle.d.ts +2 -0
- package/dist/types/internal/engine-core/src/mechanics/promo-main.d.ts +6 -0
- package/dist/types/internal/engine-core/src/mechanics/promo-on-play.d.ts +2 -0
- package/dist/types/internal/engine-core/src/mechanics/promo-reactions.d.ts +2 -0
- package/dist/types/internal/engine-core/src/mechanics/promo-replacements.d.ts +2 -0
- package/dist/types/internal/engine-core/src/mechanics/promo-shared.d.ts +4 -0
- package/dist/types/internal/engine-core/src/mechanics/promo-static.d.ts +3 -0
- package/dist/types/internal/engine-core/src/mechanics/promo-triggers.d.ts +2 -0
- package/dist/types/internal/engine-core/src/mechanics/reaction-shared.d.ts +7 -0
- package/dist/types/internal/engine-core/src/mechanics/registry.d.ts +29 -0
- package/dist/types/internal/engine-core/src/mechanics/shared.d.ts +53 -0
- package/dist/types/internal/engine-core/src/mechanics/st-main.d.ts +2 -0
- package/dist/types/internal/engine-core/src/mechanics/st01.d.ts +2 -0
- package/dist/types/internal/engine-core/src/mechanics/st02.d.ts +2 -0
- package/dist/types/internal/engine-core/src/mechanics/st06.d.ts +2 -0
- package/dist/types/internal/engine-core/src/mechanics/st10-battle.d.ts +2 -0
- package/dist/types/internal/engine-core/src/mechanics/st10-main.d.ts +2 -0
- package/dist/types/internal/engine-core/src/mechanics/st10-on-play.d.ts +2 -0
- package/dist/types/internal/engine-core/src/mechanics/st10-reactions.d.ts +2 -0
- package/dist/types/internal/engine-core/src/mechanics/st10-shared.d.ts +5 -0
- package/dist/types/internal/engine-core/src/mechanics/st10-static.d.ts +2 -0
- package/dist/types/internal/engine-core/src/mechanics/st10-triggers.d.ts +2 -0
- package/dist/types/internal/engine-core/src/mechanics/st11.d.ts +2 -0
- package/dist/types/internal/engine-core/src/mechanics/st12-battle.d.ts +2 -0
- package/dist/types/internal/engine-core/src/mechanics/st12-main.d.ts +4 -0
- package/dist/types/internal/engine-core/src/mechanics/st12-on-play.d.ts +2 -0
- package/dist/types/internal/engine-core/src/mechanics/st12-shared.d.ts +2 -0
- package/dist/types/internal/engine-core/src/mechanics/st12-triggers.d.ts +2 -0
- package/dist/types/internal/engine-core/src/mechanics/st13-main.d.ts +2 -0
- package/dist/types/internal/engine-core/src/mechanics/st13-on-play.d.ts +2 -0
- package/dist/types/internal/engine-core/src/mechanics/st13-shared.d.ts +9 -0
- package/dist/types/internal/engine-core/src/mechanics/st13-static.d.ts +2 -0
- package/dist/types/internal/engine-core/src/mechanics/st13-triggers.d.ts +2 -0
- package/dist/types/internal/engine-core/src/mechanics/st14-battle.d.ts +2 -0
- package/dist/types/internal/engine-core/src/mechanics/st14-main.d.ts +2 -0
- package/dist/types/internal/engine-core/src/mechanics/st14-on-play.d.ts +2 -0
- package/dist/types/internal/engine-core/src/mechanics/st14-shared.d.ts +5 -0
- package/dist/types/internal/engine-core/src/mechanics/st14-static.d.ts +3 -0
- package/dist/types/internal/engine-core/src/mechanics/st14-triggers.d.ts +2 -0
- package/dist/types/internal/engine-core/src/mechanics/st15-static.d.ts +2 -0
- package/dist/types/internal/engine-core/src/mechanics/st15.d.ts +2 -0
- package/dist/types/internal/engine-core/src/mechanics/st16-static.d.ts +2 -0
- package/dist/types/internal/engine-core/src/mechanics/st16.d.ts +2 -0
- package/dist/types/internal/engine-core/src/mechanics/st17.d.ts +2 -0
- package/dist/types/internal/engine-core/src/mechanics/st18.d.ts +2 -0
- package/dist/types/internal/engine-core/src/mechanics/st19-static.d.ts +2 -0
- package/dist/types/internal/engine-core/src/mechanics/st19.d.ts +2 -0
- package/dist/types/internal/engine-core/src/mechanics/st20.d.ts +2 -0
- package/dist/types/internal/engine-core/src/mechanics/st21-battle.d.ts +2 -0
- package/dist/types/internal/engine-core/src/mechanics/st21-main.d.ts +2 -0
- package/dist/types/internal/engine-core/src/mechanics/st21-shared.d.ts +2 -0
- package/dist/types/internal/engine-core/src/mechanics/st21-static.d.ts +2 -0
- package/dist/types/internal/engine-core/src/mechanics/st21-triggers.d.ts +2 -0
- package/dist/types/internal/engine-core/src/mechanics/st21.d.ts +2 -0
- package/dist/types/internal/engine-core/src/mechanics/st22-battle.d.ts +2 -0
- package/dist/types/internal/engine-core/src/mechanics/st22-main.d.ts +2 -0
- package/dist/types/internal/engine-core/src/mechanics/st22-on-play.d.ts +2 -0
- package/dist/types/internal/engine-core/src/mechanics/st22-replacements.d.ts +2 -0
- package/dist/types/internal/engine-core/src/mechanics/st22-shared.d.ts +2 -0
- package/dist/types/internal/engine-core/src/mechanics/st22-triggers.d.ts +2 -0
- package/dist/types/internal/engine-core/src/mechanics/st23-static.d.ts +2 -0
- package/dist/types/internal/engine-core/src/mechanics/st23.d.ts +2 -0
- package/dist/types/internal/engine-core/src/mechanics/st24.d.ts +2 -0
- package/dist/types/internal/engine-core/src/mechanics/st25-static.d.ts +2 -0
- package/dist/types/internal/engine-core/src/mechanics/st25.d.ts +2 -0
- package/dist/types/internal/engine-core/src/mechanics/st26-static.d.ts +2 -0
- package/dist/types/internal/engine-core/src/mechanics/st26.d.ts +2 -0
- package/dist/types/internal/engine-core/src/mechanics/st27-static.d.ts +2 -0
- package/dist/types/internal/engine-core/src/mechanics/st27.d.ts +2 -0
- package/dist/types/internal/engine-core/src/mechanics/st28-static.d.ts +2 -0
- package/dist/types/internal/engine-core/src/mechanics/st29-battle.d.ts +4 -0
- package/dist/types/internal/engine-core/src/mechanics/st29-main.d.ts +2 -0
- package/dist/types/internal/engine-core/src/mechanics/st29-on-play.d.ts +2 -0
- package/dist/types/internal/engine-core/src/mechanics/st29-replacements.d.ts +2 -0
- package/dist/types/internal/engine-core/src/mechanics/st29-shared.d.ts +2 -0
- package/dist/types/internal/engine-core/src/mechanics/st29-static.d.ts +2 -0
- package/dist/types/internal/engine-core/src/mechanics/st29-triggers.d.ts +4 -0
- package/dist/types/internal/engine-core/src/mechanics/st30-battle.d.ts +2 -0
- package/dist/types/internal/engine-core/src/mechanics/st30-main.d.ts +2 -0
- package/dist/types/internal/engine-core/src/mechanics/st30-on-play.d.ts +2 -0
- package/dist/types/internal/engine-core/src/mechanics/st30-replacements.d.ts +2 -0
- package/dist/types/internal/engine-core/src/mechanics/st30-shared.d.ts +4 -0
- package/dist/types/internal/engine-core/src/mechanics/st30-static.d.ts +2 -0
- package/dist/types/internal/engine-core/src/mechanics/st30-triggers.d.ts +2 -0
- package/dist/types/internal/engine-core/src/mechanics/static-shared.d.ts +37 -0
- package/dist/types/internal/engine-core/src/mechanics/types.d.ts +177 -0
- package/dist/types/internal/engine-core/src/mechanics-replacements.d.ts +10 -0
- package/dist/types/internal/engine-core/src/mechanics.d.ts +45 -0
- package/dist/types/internal/engine-core/src/model.d.ts +719 -0
- package/dist/types/internal/engine-core/src/offered-action.d.ts +9 -0
- package/dist/types/internal/engine-core/src/on-play-handlers.d.ts +8 -0
- package/dist/types/internal/engine-core/src/pending.d.ts +13 -0
- package/dist/types/internal/engine-core/src/program-analysis.d.ts +26 -0
- package/dist/types/internal/engine-core/src/provenance.d.ts +8 -0
- package/dist/types/internal/engine-core/src/queries.d.ts +26 -0
- package/dist/types/internal/engine-core/src/random-walk.d.ts +7 -0
- package/dist/types/internal/engine-core/src/reaction-rules.d.ts +60 -0
- package/dist/types/internal/engine-core/src/removal.d.ts +16 -0
- package/dist/types/internal/engine-core/src/replacement-eligibility.d.ts +16 -0
- package/dist/types/internal/engine-core/src/replay.d.ts +21 -0
- package/dist/types/internal/engine-core/src/resolve-effect/context.d.ts +15 -0
- package/dist/types/internal/engine-core/src/resolve-effect/costs.d.ts +10 -0
- package/dist/types/internal/engine-core/src/resolve-effect/deck.d.ts +6 -0
- package/dist/types/internal/engine-core/src/resolve-effect/discards.d.ts +11 -0
- package/dist/types/internal/engine-core/src/resolve-effect/don.d.ts +4 -0
- package/dist/types/internal/engine-core/src/resolve-effect/index.d.ts +3 -0
- package/dist/types/internal/engine-core/src/resolve-effect/leaders.d.ts +6 -0
- package/dist/types/internal/engine-core/src/resolve-effect/life.d.ts +6 -0
- package/dist/types/internal/engine-core/src/resolve-effect/mechanic-choice.d.ts +3 -0
- package/dist/types/internal/engine-core/src/resolve-effect/plays.d.ts +5 -0
- package/dist/types/internal/engine-core/src/resolve-effect/removal.d.ts +7 -0
- package/dist/types/internal/engine-core/src/resolve-effect/replacements.d.ts +7 -0
- package/dist/types/internal/engine-core/src/resolve-effect/restrictions.d.ts +7 -0
- package/dist/types/internal/engine-core/src/rng.d.ts +1 -0
- package/dist/types/internal/engine-core/src/rules-version.d.ts +1 -0
- package/dist/types/internal/engine-core/src/service.d.ts +25 -0
- package/dist/types/internal/engine-core/src/sha256.d.ts +1 -0
- package/dist/types/internal/engine-core/src/simulate.d.ts +19 -0
- package/dist/types/internal/engine-core/src/static-abilities.d.ts +102 -0
- package/dist/types/internal/engine-core/src/time-limit.d.ts +7 -0
- package/dist/types/internal/engine-core/src/turn.d.ts +9 -0
- package/dist/types/internal/protocol/src/index.d.ts +756 -0
- package/dist/types/internal/protocol/src/rng.d.ts +12 -0
- package/dist/types/internal/protocol/src/sha256.d.ts +3 -0
- package/dist/types/internal/protocol/src/version.d.ts +1 -0
- package/dist/types/protocol.d.ts +1 -0
- package/package.json +44 -3
package/LICENSE
ADDED
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 daavoo
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
|
22
|
+
|
|
23
|
+
This license covers the engine, tooling, and site code in this repository.
|
|
24
|
+
It does not cover One Piece Card Game trademarks, card text, or card artwork,
|
|
25
|
+
which remain the property of their respective owners (Bandai / Eiichiro Oda
|
|
26
|
+
/ Shueisha / Toei Animation). See README.md for how card art is handled.
|
package/README.md
CHANGED
|
@@ -1,3 +1,75 @@
|
|
|
1
|
-
#
|
|
1
|
+
# open-optcg
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
A deterministic rules engine for the One Piece Card Game, from the
|
|
4
|
+
[Open OPTCG](https://github.com/daavoo/open-optcg) project. MIT licensed.
|
|
5
|
+
|
|
6
|
+
The engine owns legality and transitions. Whenever a decision is due, it stops
|
|
7
|
+
and offers the seat to act a list of legal actions, and the caller (a person, a
|
|
8
|
+
bot or a model) picks one by its opaque `actionId`. Nothing advances on its own,
|
|
9
|
+
so every game replays exactly from its seed and the actions taken.
|
|
10
|
+
|
|
11
|
+
```sh
|
|
12
|
+
npm install open-optcg
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
## Play a game
|
|
16
|
+
|
|
17
|
+
```ts
|
|
18
|
+
import { GameService } from "open-optcg/engine";
|
|
19
|
+
import { resolveDeck, STARTER_DECK_IDS } from "open-optcg/decks";
|
|
20
|
+
|
|
21
|
+
const [deck1, deck2] = STARTER_DECK_IDS;
|
|
22
|
+
const service = new GameService();
|
|
23
|
+
let view = service.create({
|
|
24
|
+
p1: resolveDeck(deck1),
|
|
25
|
+
p2: resolveDeck(deck2),
|
|
26
|
+
seed: "readme",
|
|
27
|
+
});
|
|
28
|
+
|
|
29
|
+
// `view` is what the seat to act may see: its own hand, both boards, and the
|
|
30
|
+
// actions it may take. This loop always takes the first one.
|
|
31
|
+
for (let step = 0; view.phase !== "finished" && step < 5000; step++) {
|
|
32
|
+
const action = view.legalActions[0]!;
|
|
33
|
+
view = service.act(view.gameId, view.revision, action.actionId);
|
|
34
|
+
}
|
|
35
|
+
console.log(`${view.winner} wins on turn ${view.turn} (${view.resultReason})`);
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
To play against the learned opponent, see
|
|
39
|
+
[`open-optcg-model`](https://www.npmjs.com/package/open-optcg-model).
|
|
40
|
+
|
|
41
|
+
## Entry points
|
|
42
|
+
|
|
43
|
+
| Import | What it is |
|
|
44
|
+
| --------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
45
|
+
| `open-optcg/engine` | `GameService` (create, act, observe), and the functions under it for callers that hold the state themselves: `createGame`, `getLegalActions`, `applyAction`, `observe`, `replayActions`. |
|
|
46
|
+
| `open-optcg/protocol` | The types the engine and a caller exchange: `GameObservation`, `LegalAction`, events, and the `Agent` contract any player implements. |
|
|
47
|
+
| `open-optcg/cards` | Card records by card number, with the rules derived from each card. |
|
|
48
|
+
| `open-optcg/decks` | The deck lists the project ships, and `parseDeckList` for the plain-text format deck builders export (`4x OP01-016` per line). |
|
|
49
|
+
|
|
50
|
+
## Hidden information
|
|
51
|
+
|
|
52
|
+
`observe(state, seat)`, and every view `GameService` returns, withholds what that
|
|
53
|
+
seat cannot see: the opponent's hand, face-down Life and deck order. An online
|
|
54
|
+
game keeps the state on the server and sends each player only their own view.
|
|
55
|
+
|
|
56
|
+
## Card text and art
|
|
57
|
+
|
|
58
|
+
The package carries no printed card text and no card art. Records hold each
|
|
59
|
+
card's number, stats and derived rules. An app that shows card text loads a
|
|
60
|
+
text pack at runtime with `loadPrintedText`, and brings its own art. See
|
|
61
|
+
[asset packs](https://github.com/daavoo/open-optcg/blob/main/docs/asset-packs.md).
|
|
62
|
+
|
|
63
|
+
## Versions
|
|
64
|
+
|
|
65
|
+
While the version is `0.x`:
|
|
66
|
+
|
|
67
|
+
- The `LegalAction` and `GameObservation` types change only in a minor version,
|
|
68
|
+
with a changelog entry.
|
|
69
|
+
- An `actionId` is opaque and valid only for the view that offered it. Don't
|
|
70
|
+
parse it or store it across versions.
|
|
71
|
+
- A replay records the engine's rules stamp, and `replayActions` refuses a
|
|
72
|
+
replay from an incompatible version instead of diverging silently.
|
|
73
|
+
|
|
74
|
+
One Piece Card Game is a trademark of Bandai. This project is not affiliated
|
|
75
|
+
with or endorsed by Bandai.
|
package/dist/cards.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{cardFormatLegality,cardRegistry,createCardDatabase,isStandardLegal,loadPrintedText,parsePrintedTextPack,printedText,requireKnownCard}from"./chunks/chunk-4I54H2QI.js";export{cardFormatLegality,cardRegistry,createCardDatabase,isStandardLegal,loadPrintedText,parsePrintedTextPack,printedText,requireKnownCard};
|